/*! For license information please see main.a8c85a887cbc66bdad38.js.LICENSE.txt */ (() => { var __webpack_modules__ = { 4184: (e, t) => { var i; ! function() { "use strict"; var n = {}.hasOwnProperty; function o() { for (var e = [], t = 0; t < arguments.length; t++) { var i = arguments[t]; if (i) { var r = typeof i; if ("string" === r || "number" === r) e.push(i); else if (Array.isArray(i)) { if (i.length) { var s = o.apply(null, i); s && e.push(s) } } else if ("object" === r) if (i.toString === Object.prototype.toString) for (var a in i) n.call(i, a) && i[a] && e.push(a); else e.push(i.toString()) } } return e.join(" ") } e.exports ? (o.default = o, e.exports = o) : void 0 === (i = function() { return o }.apply(t, [])) || (e.exports = i) }() }, 6168: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, ':root{--balloon-border-radius: 2px;--balloon-color: rgba(16,16,16,0.95);--balloon-text-color: #fff;--balloon-font-size: 12px;--balloon-move: 4px}button[aria-label][data-balloon-pos]{overflow:visible}[aria-label][data-balloon-pos]{position:relative;cursor:pointer}[aria-label][data-balloon-pos]:after{opacity:0;pointer-events:none;transition:all 0.18s ease-out 0.18s;text-indent:0;font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;font-weight:normal;font-style:normal;text-shadow:none;font-size:var(--balloon-font-size);background:var(--balloon-color);border-radius:2px;color:var(--balloon-text-color);border-radius:var(--balloon-border-radius);content:attr(aria-label);padding:.5em 1em;position:absolute;white-space:nowrap;z-index:10}[aria-label][data-balloon-pos]:before{width:0;height:0;border:5px solid transparent;border-top-color:var(--balloon-color);opacity:0;pointer-events:none;transition:all 0.18s ease-out 0.18s;content:"";position:absolute;z-index:10}[aria-label][data-balloon-pos]:hover:before,[aria-label][data-balloon-pos]:hover:after,[aria-label][data-balloon-pos][data-balloon-visible]:before,[aria-label][data-balloon-pos][data-balloon-visible]:after,[aria-label][data-balloon-pos]:not([data-balloon-nofocus]):focus:before,[aria-label][data-balloon-pos]:not([data-balloon-nofocus]):focus:after{opacity:1;pointer-events:none}[aria-label][data-balloon-pos].font-awesome:after{font-family:FontAwesome, -apple-system, BlinkMacSystemFont, \'Segoe UI\', Roboto, Oxygen, Ubuntu, Cantarell, \'Open Sans\', \'Helvetica Neue\', sans-serif}[aria-label][data-balloon-pos][data-balloon-break]:after{white-space:pre}[aria-label][data-balloon-pos][data-balloon-break][data-balloon-length]:after{white-space:pre-line;word-break:break-word}[aria-label][data-balloon-pos][data-balloon-blunt]:before,[aria-label][data-balloon-pos][data-balloon-blunt]:after{transition:none}[aria-label][data-balloon-pos][data-balloon-pos="up"]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos="up"][data-balloon-visible]:after,[aria-label][data-balloon-pos][data-balloon-pos="down"]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos="down"][data-balloon-visible]:after{transform:translate(-50%, 0)}[aria-label][data-balloon-pos][data-balloon-pos="up"]:hover:before,[aria-label][data-balloon-pos][data-balloon-pos="up"][data-balloon-visible]:before,[aria-label][data-balloon-pos][data-balloon-pos="down"]:hover:before,[aria-label][data-balloon-pos][data-balloon-pos="down"][data-balloon-visible]:before{transform:translate(-50%, 0)}[aria-label][data-balloon-pos][data-balloon-pos*="-left"]:after{left:0}[aria-label][data-balloon-pos][data-balloon-pos*="-left"]:before{left:5px}[aria-label][data-balloon-pos][data-balloon-pos*="-right"]:after{right:0}[aria-label][data-balloon-pos][data-balloon-pos*="-right"]:before{right:5px}[aria-label][data-balloon-pos][data-balloon-po*="-left"]:hover:after,[aria-label][data-balloon-pos][data-balloon-po*="-left"][data-balloon-visible]:after,[aria-label][data-balloon-pos][data-balloon-pos*="-right"]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos*="-right"][data-balloon-visible]:after{transform:translate(0, 0)}[aria-label][data-balloon-pos][data-balloon-po*="-left"]:hover:before,[aria-label][data-balloon-pos][data-balloon-po*="-left"][data-balloon-visible]:before,[aria-label][data-balloon-pos][data-balloon-pos*="-right"]:hover:before,[aria-label][data-balloon-pos][data-balloon-pos*="-right"][data-balloon-visible]:before{transform:translate(0, 0)}[aria-label][data-balloon-pos][data-balloon-pos^="up"]:before,[aria-label][data-balloon-pos][data-balloon-pos^="up"]:after{bottom:100%;transform-origin:top;transform:translate(0, var(--balloon-move))}[aria-label][data-balloon-pos][data-balloon-pos^="up"]:after{margin-bottom:10px}[aria-label][data-balloon-pos][data-balloon-pos="up"]:before,[aria-label][data-balloon-pos][data-balloon-pos="up"]:after{left:50%;transform:translate(-50%, var(--balloon-move))}[aria-label][data-balloon-pos][data-balloon-pos^="down"]:before,[aria-label][data-balloon-pos][data-balloon-pos^="down"]:after{top:100%;transform:translate(0, calc(var(--balloon-move) * -1))}[aria-label][data-balloon-pos][data-balloon-pos^="down"]:after{margin-top:10px}[aria-label][data-balloon-pos][data-balloon-pos^="down"]:before{width:0;height:0;border:5px solid transparent;border-bottom-color:var(--balloon-color)}[aria-label][data-balloon-pos][data-balloon-pos="down"]:after,[aria-label][data-balloon-pos][data-balloon-pos="down"]:before{left:50%;transform:translate(-50%, calc(var(--balloon-move) * -1))}[aria-label][data-balloon-pos][data-balloon-pos="left"]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos="left"][data-balloon-visible]:after,[aria-label][data-balloon-pos][data-balloon-pos="right"]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos="right"][data-balloon-visible]:after{transform:translate(0, -50%)}[aria-label][data-balloon-pos][data-balloon-pos="left"]:hover:before,[aria-label][data-balloon-pos][data-balloon-pos="left"][data-balloon-visible]:before,[aria-label][data-balloon-pos][data-balloon-pos="right"]:hover:before,[aria-label][data-balloon-pos][data-balloon-pos="right"][data-balloon-visible]:before{transform:translate(0, -50%)}[aria-label][data-balloon-pos][data-balloon-pos="left"]:after,[aria-label][data-balloon-pos][data-balloon-pos="left"]:before{right:100%;top:50%;transform:translate(var(--balloon-move), -50%)}[aria-label][data-balloon-pos][data-balloon-pos="left"]:after{margin-right:10px}[aria-label][data-balloon-pos][data-balloon-pos="left"]:before{width:0;height:0;border:5px solid transparent;border-left-color:var(--balloon-color)}[aria-label][data-balloon-pos][data-balloon-pos="right"]:after,[aria-label][data-balloon-pos][data-balloon-pos="right"]:before{left:100%;top:50%;transform:translate(calc(var(--balloon-move) * -1), -50%)}[aria-label][data-balloon-pos][data-balloon-pos="right"]:after{margin-left:10px}[aria-label][data-balloon-pos][data-balloon-pos="right"]:before{width:0;height:0;border:5px solid transparent;border-right-color:var(--balloon-color)}[aria-label][data-balloon-pos][data-balloon-length]:after{white-space:normal}[aria-label][data-balloon-pos][data-balloon-length="small"]:after{width:80px}[aria-label][data-balloon-pos][data-balloon-length="medium"]:after{width:150px}[aria-label][data-balloon-pos][data-balloon-length="large"]:after{width:260px}[aria-label][data-balloon-pos][data-balloon-length="xlarge"]:after{width:380px}@media screen and (max-width: 768px){[aria-label][data-balloon-pos][data-balloon-length="xlarge"]:after{width:90vw}}[aria-label][data-balloon-pos][data-balloon-length="fit"]:after{width:100%}\n', "" ]); const a = s }, 2757: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-action-bar {\r\n\twhite-space: nowrap;\r\n\theight: 100%;\r\n}\r\n\r\n.monaco-action-bar .actions-container {\r\n\tdisplay: flex;\r\n\tmargin: 0 auto;\r\n\tpadding: 0;\r\n\theight: 100%;\r\n\twidth: 100%;\r\n\talign-items: center;\r\n}\r\n\r\n.monaco-action-bar.vertical .actions-container {\r\n\tdisplay: inline-block;\r\n}\r\n\r\n.monaco-action-bar .action-item {\r\n\tdisplay: block;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n\tcursor: pointer;\r\n\tposition: relative; /* DO NOT REMOVE - this is the key to preventing the ghosting icon bug in Chrome 42 */\r\n}\r\n\r\n.monaco-action-bar .action-item.disabled {\r\n\tcursor: default;\r\n}\r\n\r\n.monaco-action-bar .action-item .icon,\r\n.monaco-action-bar .action-item .codicon {\r\n\tdisplay: block;\r\n}\r\n\r\n.monaco-action-bar .action-item .codicon {\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\twidth: 16px;\r\n\theight: 16px;\r\n}\r\n\r\n.monaco-action-bar .action-label {\r\n\tfont-size: 11px;\r\n\tpadding: 3px;\r\n\tborder-radius: 5px;\r\n}\r\n\r\n.monaco-action-bar .action-item.disabled .action-label,\r\n.monaco-action-bar .action-item.disabled .action-label::before,\r\n.monaco-action-bar .action-item.disabled .action-label:hover {\r\n\topacity: 0.4;\r\n}\r\n\r\n/* Vertical actions */\r\n\r\n.monaco-action-bar.vertical {\r\n\ttext-align: left;\r\n}\r\n\r\n.monaco-action-bar.vertical .action-item {\r\n\tdisplay: block;\r\n}\r\n\r\n.monaco-action-bar.vertical .action-label.separator {\r\n\tdisplay: block;\r\n\tborder-bottom: 1px solid #bbb;\r\n\tpadding-top: 1px;\r\n\tmargin-left: .8em;\r\n\tmargin-right: .8em;\r\n}\r\n\r\n.monaco-action-bar .action-item .action-label.separator {\r\n\twidth: 1px;\r\n\theight: 16px;\r\n\tmargin: 5px 4px !important;\r\n\tcursor: default;\r\n\tmin-width: 1px;\r\n\tpadding: 0;\r\n\tbackground-color: #bbb;\r\n}\r\n\r\n.secondary-actions .monaco-action-bar .action-label {\r\n\tmargin-left: 6px;\r\n}\r\n\r\n/* Action Items */\r\n.monaco-action-bar .action-item.select-container {\r\n\toverflow: hidden; /* somehow the dropdown overflows its container, we prevent it here to not push */\r\n\tflex: 1;\r\n\tmax-width: 170px;\r\n\tmin-width: 60px;\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n\tmargin-right: 10px;\r\n}\r\n\r\n.monaco-action-bar .action-item.action-dropdown-item {\r\n\tdisplay: flex;\r\n}\r\n\r\n.monaco-action-bar .action-item.action-dropdown-item > .action-label {\r\n\tmargin-right: 1px;\r\n}\r\n", "" ]); const a = s }, 93: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-aria-container {\r\n\tposition: absolute; /* try to hide from window but not from screen readers */\r\n\tleft:-999em;\r\n}", "" ]); const a = s }, 2013: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-text-button {\r\n\tbox-sizing: border-box;\r\n\tdisplay: flex;\r\n\twidth: 100%;\r\n\tpadding: 4px;\r\n\ttext-align: center;\r\n\tcursor: pointer;\r\n\tjustify-content: center;\r\n\talign-items: center;\r\n}\r\n\r\n.monaco-text-button:focus {\r\n\toutline-offset: 2px !important;\r\n}\r\n\r\n.monaco-text-button:hover {\r\n\ttext-decoration: none !important;\r\n}\r\n\r\n.monaco-button.disabled:focus,\r\n.monaco-button.disabled {\r\n\topacity: 0.4 !important;\r\n\tcursor: default;\r\n}\r\n\r\n.monaco-text-button > .codicon {\r\n\tmargin: 0 0.2em;\r\n\tcolor: inherit !important;\r\n}\r\n\r\n.monaco-button-dropdown {\r\n\tdisplay: flex;\r\n\tcursor: pointer;\r\n}\r\n\r\n.monaco-button-dropdown > .monaco-dropdown-button {\r\n\tmargin-left: 1px;\r\n}\r\n\r\n.monaco-description-button {\r\n\tflex-direction: column;\r\n}\r\n\r\n.monaco-description-button .monaco-button-label {\r\n\tfont-weight: 500;\r\n}\r\n\r\n.monaco-description-button .monaco-button-description {\r\n\tfont-style: italic;\r\n}\r\n", "" ]); const a = s }, 4664: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-custom-checkbox {\r\n\tmargin-left: 2px;\r\n\tfloat: left;\r\n\tcursor: pointer;\r\n\toverflow: hidden;\r\n\topacity: 0.7;\r\n\twidth: 20px;\r\n\theight: 20px;\r\n\tborder: 1px solid transparent;\r\n\tpadding: 1px;\r\n\tbox-sizing:\tborder-box;\r\n\tuser-select: none;\r\n\t-webkit-user-select: none;\r\n\t-ms-user-select: none;\r\n}\r\n\r\n.monaco-custom-checkbox:hover,\r\n.monaco-custom-checkbox.checked {\r\n\topacity: 1;\r\n}\r\n\r\n.hc-black .monaco-custom-checkbox {\r\n\tbackground: none;\r\n}\r\n\r\n.hc-black .monaco-custom-checkbox:hover {\r\n\tbackground: none;\r\n}\r\n\r\n.monaco-custom-checkbox.monaco-simple-checkbox {\r\n\theight: 18px;\r\n\twidth: 18px;\r\n\tborder: 1px solid transparent;\r\n\tborder-radius: 3px;\r\n\tmargin-right: 9px;\r\n\tmargin-left: 0px;\r\n\tpadding: 0px;\r\n\topacity: 1;\r\n\tbackground-size: 16px !important;\r\n}\r\n\r\n/* hide check when unchecked */\r\n.monaco-custom-checkbox.monaco-simple-checkbox:not(.checked)::before {\r\n\tvisibility: hidden;\r\n}\r\n", "" ]); const a = s }, 4081: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.codicon-wrench-subaction {\r\n\topacity: 0.5;\r\n}\r\n\r\n@keyframes codicon-spin {\r\n\t100% {\r\n\t\ttransform:rotate(360deg);\r\n\t}\r\n}\r\n\r\n.codicon-sync.codicon-modifier-spin,\r\n.codicon-loading.codicon-modifier-spin,\r\n.codicon-gear.codicon-modifier-spin,\r\n.codicon-notebook-state-executing.codicon-modifier-spin {\r\n\t/* Use steps to throttle FPS to reduce CPU usage */\r\n\tanimation: codicon-spin 1.5s steps(30) infinite;\r\n}\r\n\r\n.codicon-modifier-disabled {\r\n\topacity: 0.4;\r\n}\r\n\r\n/* custom speed & easing for loading icon */\r\n.codicon-loading,\r\n.codicon-tree-item-loading::before {\r\n\tanimation-duration: 1s !important;\r\n\tanimation-timing-function: cubic-bezier(0.53, 0.21, 0.29, 0.67) !important;\r\n}\r\n", "" ]); const a = s }, 58: (e, t, i) => { "use strict"; i.d(t, { Z: () => u }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r), a = i(1667), l = i.n(a), d = new URL(i(7485), i.b), c = s()(o()), h = l()(d); c.push([e.id, '/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n@font-face {\r\n\tfont-family: "codicon";\r\n\tfont-display: block;\r\n\tsrc: url(' + h + ") format(\"truetype\");\r\n}\r\n\r\n.codicon[class*='codicon-'] {\r\n\tfont: normal normal normal 16px/1 codicon;\r\n\tdisplay: inline-block;\r\n\ttext-decoration: none;\r\n\ttext-rendering: auto;\r\n\ttext-align: center;\r\n\t-webkit-font-smoothing: antialiased;\r\n\t-moz-osx-font-smoothing: grayscale;\r\n\tuser-select: none;\r\n\t-webkit-user-select: none;\r\n\t-ms-user-select: none;\r\n}\r\n\r\n/* icon rules are dynamically created in codiconStyles */\r\n", "" ]); const u = c }, 6328: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.context-view {\r\n\tposition: absolute;\r\n\tz-index: 2500;\r\n}\r\n\r\n.context-view.fixed {\r\n\tall: initial;\r\n\tfont-family: inherit;\r\n\tfont-size: 13px;\r\n\tposition: fixed;\r\n\tz-index: 2500;\r\n\tcolor: inherit;\r\n}\r\n", "" ]); const a = s }, 477: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-count-badge {\r\n\tpadding: 3px 6px;\r\n\tborder-radius: 11px;\r\n\tfont-size: 11px;\r\n\tmin-width: 18px;\r\n\tmin-height: 18px;\r\n\tline-height: 11px;\r\n\tfont-weight: normal;\r\n\ttext-align: center;\r\n\tdisplay: inline-block;\r\n\tbox-sizing: border-box;\r\n}\r\n\r\n.monaco-count-badge.long {\r\n\tpadding: 2px 3px;\r\n\tborder-radius: 2px;\r\n\tmin-height: auto;\r\n\tline-height: normal;\r\n}\r\n", "" ]); const a = s }, 5035: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-dropdown {\r\n\theight: 100%;\r\n\tpadding: 0;\r\n}\r\n\r\n.monaco-dropdown > .dropdown-label {\r\n\tcursor: pointer;\r\n\theight: 100%;\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n}\r\n\r\n.monaco-dropdown > .dropdown-label > .action-label.disabled {\r\n\tcursor: default;\r\n}\r\n\r\n.monaco-dropdown-with-primary {\r\n\tdisplay: flex !important;\r\n\tflex-direction: row;\r\n\tborder-radius: 5px;\r\n}\r\n\r\n.monaco-dropdown-with-primary > .action-container > .action-label {\r\n\tmargin-right: 0;\r\n}\r\n\r\n.monaco-dropdown-with-primary > .dropdown-action-container > .monaco-dropdown > .dropdown-label .codicon[class*='codicon-'] {\r\n\tfont-size: 12px;\r\n\tpadding-left: 0px;\r\n\tpadding-right: 0px;\r\n\tline-height: 16px;\r\n\tmargin-left: -3px;\r\n}\r\n\r\n.monaco-dropdown-with-primary > .dropdown-action-container > .monaco-dropdown > .dropdown-label > .action-label {\r\n\tdisplay: block;\r\n\tbackground-size: 16px;\r\n\tbackground-position: center center;\r\n\tbackground-repeat: no-repeat;\r\n}\r\n", "" ]); const a = s }, 6266: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n/* ---------- Find input ---------- */\r\n\r\n.monaco-findInput {\r\n\tposition: relative;\r\n}\r\n\r\n.monaco-findInput .monaco-inputbox {\r\n\tfont-size: 13px;\r\n\twidth: 100%;\r\n}\r\n\r\n.monaco-findInput > .controls {\r\n\tposition: absolute;\r\n\ttop: 3px;\r\n\tright: 2px;\r\n}\r\n\r\n.vs .monaco-findInput.disabled {\r\n\tbackground-color: #E1E1E1;\r\n}\r\n\r\n/* Theming */\r\n.vs-dark .monaco-findInput.disabled {\r\n\tbackground-color: #333;\r\n}\r\n\r\n/* Highlighting */\r\n.monaco-findInput.highlight-0 .controls {\r\n\tanimation: monaco-findInput-highlight-0 100ms linear 0s;\r\n}\r\n.monaco-findInput.highlight-1 .controls {\r\n\tanimation: monaco-findInput-highlight-1 100ms linear 0s;\r\n}\r\n.hc-black .monaco-findInput.highlight-0 .controls,\r\n.vs-dark .monaco-findInput.highlight-0 .controls {\r\n\tanimation: monaco-findInput-highlight-dark-0 100ms linear 0s;\r\n}\r\n.hc-black .monaco-findInput.highlight-1 .controls,\r\n.vs-dark .monaco-findInput.highlight-1 .controls {\r\n\tanimation: monaco-findInput-highlight-dark-1 100ms linear 0s;\r\n}\r\n\r\n@keyframes monaco-findInput-highlight-0 {\r\n\t0% { background: rgba(253, 255, 0, 0.8); }\r\n\t100% { background: transparent; }\r\n}\r\n@keyframes monaco-findInput-highlight-1 {\r\n\t0% { background: rgba(253, 255, 0, 0.8); }\r\n\t/* Made intentionally different such that the CSS minifier does not collapse the two animations into a single one*/\r\n\t99% { background: transparent; }\r\n}\r\n\r\n@keyframes monaco-findInput-highlight-dark-0 {\r\n\t0% { background: rgba(255, 255, 255, 0.44); }\r\n\t100% { background: transparent; }\r\n}\r\n@keyframes monaco-findInput-highlight-dark-1 {\r\n\t0% { background: rgba(255, 255, 255, 0.44); }\r\n\t/* Made intentionally different such that the CSS minifier does not collapse the two animations into a single one*/\r\n\t99% { background: transparent; }\r\n}", "" ]); const a = s }, 3039: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-hover {\r\n\tcursor: default;\r\n\tposition: absolute;\r\n\toverflow: hidden;\r\n\tz-index: 50;\r\n\tuser-select: text;\r\n\t-webkit-user-select: text;\r\n\t-ms-user-select: text;\r\n\tbox-sizing: initial;\r\n\tanimation: fadein 100ms linear;\r\n\tline-height: 1.5em;\r\n}\r\n\r\n.monaco-hover.hidden {\r\n\tdisplay: none;\r\n}\r\n\r\n.monaco-hover .hover-contents {\r\n\tpadding: 4px 8px;\r\n}\r\n\r\n.monaco-hover .markdown-hover > .hover-contents:not(.code-hover-contents) {\r\n\tmax-width: 500px;\r\n\tword-wrap: break-word;\r\n}\r\n\r\n.monaco-hover .markdown-hover > .hover-contents:not(.code-hover-contents) hr {\r\n\tmin-width: 100%;\r\n}\r\n\r\n.monaco-hover p,\r\n.monaco-hover .code,\r\n.monaco-hover ul {\r\n\tmargin: 8px 0;\r\n}\r\n\r\n.monaco-hover code {\r\n\tfont-family: var(--monaco-monospace-font);\r\n}\r\n\r\n.monaco-hover hr {\r\n\tbox-sizing: border-box;\r\n\tborder-left: 0px;\r\n\tborder-right: 0px;\r\n\tmargin-top: 4px;\r\n\tmargin-bottom: -4px;\r\n\tmargin-left: -8px;\r\n\tmargin-right: -8px;\r\n\theight: 1px;\r\n}\r\n\r\n.monaco-hover p:first-child,\r\n.monaco-hover .code:first-child,\r\n.monaco-hover ul:first-child {\r\n\tmargin-top: 0;\r\n}\r\n\r\n.monaco-hover p:last-child,\r\n.monaco-hover .code:last-child,\r\n.monaco-hover ul:last-child {\r\n\tmargin-bottom: 0;\r\n}\r\n\r\n/* MarkupContent Layout */\r\n.monaco-hover ul {\r\n\tpadding-left: 20px;\r\n}\r\n.monaco-hover ol {\r\n\tpadding-left: 20px;\r\n}\r\n\r\n.monaco-hover li > p {\r\n\tmargin-bottom: 0;\r\n}\r\n\r\n.monaco-hover li > ul {\r\n\tmargin-top: 0;\r\n}\r\n\r\n.monaco-hover code {\r\n\tborder-radius: 3px;\r\n\tpadding: 0 0.4em;\r\n}\r\n\r\n.monaco-hover .monaco-tokenized-source {\r\n\twhite-space: pre-wrap;\r\n}\r\n\r\n.monaco-hover .hover-row.status-bar {\r\n\tfont-size: 12px;\r\n\tline-height: 22px;\r\n}\r\n\r\n.monaco-hover .hover-row.status-bar .actions {\r\n\tdisplay: flex;\r\n\tpadding: 0px 8px;\r\n}\r\n\r\n.monaco-hover .hover-row.status-bar .actions .action-container {\r\n\tmargin-right: 16px;\r\n\tcursor: pointer;\r\n}\r\n\r\n.monaco-hover .hover-row.status-bar .actions .action-container .action .icon {\r\n\tpadding-right: 4px;\r\n}\r\n\r\n.monaco-hover .markdown-hover .hover-contents .codicon {\r\n\tcolor: inherit;\r\n\tfont-size: inherit;\r\n\tvertical-align: middle;\r\n}\r\n\r\n.monaco-hover .hover-contents a.code-link:hover,\r\n.monaco-hover .hover-contents a.code-link {\r\n\tcolor: inherit;\r\n}\r\n\r\n.monaco-hover .hover-contents a.code-link:before {\r\n\tcontent: '(';\r\n}\r\n\r\n.monaco-hover .hover-contents a.code-link:after {\r\n\tcontent: ')';\r\n}\r\n\r\n.monaco-hover .hover-contents a.code-link > span {\r\n\ttext-decoration: underline;\r\n\t/** Hack to force underline to show **/\r\n\tborder-bottom: 1px solid transparent;\r\n\ttext-underline-position: under;\r\n}\r\n\r\n/** Spans in markdown hovers need a margin-bottom to avoid looking cramped: https://github.com/microsoft/vscode/issues/101496 **/\r\n.monaco-hover .markdown-hover .hover-contents:not(.code-hover-contents) span {\r\n\tmargin-bottom: 4px;\r\n\tdisplay: inline-block;\r\n}\r\n\r\n.monaco-hover-content .action-container a {\r\n\t-webkit-user-select: none;\r\n\tuser-select: none;\r\n}\r\n\r\n.monaco-hover-content .action-container.disabled {\r\n\tpointer-events: none;\r\n\topacity: 0.4;\r\n\tcursor: default;\r\n}\r\n", "" ]); const a = s }, 4269: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n/* ---------- Icon label ---------- */\r\n\r\n.monaco-icon-label {\r\n\tdisplay: flex; /* required for icons support :before rule */\r\n\toverflow: hidden;\r\n\ttext-overflow: ellipsis;\r\n}\r\n\r\n.monaco-icon-label::before {\r\n\r\n\t/* svg icons rendered as background image */\r\n\tbackground-size: 16px;\r\n\tbackground-position: left center;\r\n\tbackground-repeat: no-repeat;\r\n\tpadding-right: 6px;\r\n\twidth: 16px;\r\n\theight: 22px;\r\n\tline-height: inherit !important;\r\n\tdisplay: inline-block;\r\n\r\n\t/* fonts icons */\r\n\t-webkit-font-smoothing: antialiased;\r\n\t-moz-osx-font-smoothing: grayscale;\r\n\tvertical-align: top;\r\n\r\n\tflex-shrink: 0; /* fix for https://github.com/microsoft/vscode/issues/13787 */\r\n}\r\n\r\n.monaco-icon-label > .monaco-icon-label-container {\r\n\tmin-width: 0;\r\n\toverflow: hidden;\r\n\ttext-overflow: ellipsis;\r\n\tflex: 1;\r\n}\r\n\r\n.monaco-icon-label > .monaco-icon-label-container > .monaco-icon-name-container > .label-name {\r\n\tcolor: inherit;\r\n\twhite-space: pre; /* enable to show labels that include multiple whitespaces */\r\n}\r\n\r\n.monaco-icon-label > .monaco-icon-label-container > .monaco-icon-name-container > .label-name > .label-separator {\r\n\tmargin: 0 2px;\r\n\topacity: 0.5;\r\n}\r\n\r\n.monaco-icon-label > .monaco-icon-label-container > .monaco-icon-description-container > .label-description {\r\n\topacity: .7;\r\n\tmargin-left: 0.5em;\r\n\tfont-size: 0.9em;\r\n\twhite-space: pre; /* enable to show labels that include multiple whitespaces */\r\n}\r\n\r\n.monaco-icon-label.nowrap > .monaco-icon-label-container > .monaco-icon-description-container > .label-description{\r\n\twhite-space: nowrap\r\n}\r\n\r\n.vs .monaco-icon-label > .monaco-icon-label-container > .monaco-icon-description-container > .label-description {\r\n\topacity: .95;\r\n}\r\n\r\n.monaco-icon-label.italic > .monaco-icon-label-container > .monaco-icon-name-container > .label-name,\r\n.monaco-icon-label.italic > .monaco-icon-label-container > .monaco-icon-description-container > .label-description {\r\n\tfont-style: italic;\r\n}\r\n\r\n.monaco-icon-label.deprecated {\r\n\ttext-decoration: line-through;\r\n\topacity: 0.66;\r\n}\r\n\r\n/* make sure apply italic font style to decorations as well */\r\n.monaco-icon-label.italic::after {\r\n\tfont-style: italic;\r\n}\r\n\r\n.monaco-icon-label.strikethrough > .monaco-icon-label-container > .monaco-icon-name-container > .label-name,\r\n.monaco-icon-label.strikethrough > .monaco-icon-label-container > .monaco-icon-description-container > .label-description {\r\n\ttext-decoration: line-through;\r\n}\r\n\r\n.monaco-icon-label::after {\r\n\topacity: 0.75;\r\n\tfont-size: 90%;\r\n\tfont-weight: 600;\r\n\tmargin: 0 16px 0 5px;\r\n\ttext-align: center;\r\n}\r\n\r\n/* make sure selection color wins when a label is being selected */\r\n.monaco-list:focus .selected .monaco-icon-label, /* list */\r\n.monaco-list:focus .selected .monaco-icon-label::after\r\n{\r\n\tcolor: inherit !important;\r\n}\r\n\r\n.monaco-list-row.focused.selected .label-description,\r\n.monaco-list-row.selected .label-description {\r\n\topacity: .8;\r\n}\r\n", "" ]); const a = s }, 1188: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-inputbox {\r\n\tposition: relative;\r\n\tdisplay: block;\r\n\tpadding: 0;\r\n\tbox-sizing:\tborder-box;\r\n\r\n\t/* Customizable */\r\n\tfont-size: inherit;\r\n}\r\n\r\n.monaco-inputbox.idle {\r\n\tborder: 1px solid transparent;\r\n}\r\n\r\n.monaco-inputbox > .ibwrapper > .input,\r\n.monaco-inputbox > .ibwrapper > .mirror {\r\n\r\n\t/* Customizable */\r\n\tpadding: 4px;\r\n}\r\n\r\n.monaco-inputbox > .ibwrapper {\r\n\tposition: relative;\r\n\twidth: 100%;\r\n\theight: 100%;\r\n}\r\n\r\n.monaco-inputbox > .ibwrapper > .input {\r\n\tdisplay: inline-block;\r\n\tbox-sizing:\tborder-box;\r\n\twidth: 100%;\r\n\theight: 100%;\r\n\tline-height: inherit;\r\n\tborder: none;\r\n\tfont-family: inherit;\r\n\tfont-size: inherit;\r\n\tresize: none;\r\n\tcolor: inherit;\r\n}\r\n\r\n.monaco-inputbox > .ibwrapper > input {\r\n\ttext-overflow: ellipsis;\r\n}\r\n\r\n.monaco-inputbox > .ibwrapper > textarea.input {\r\n\tdisplay: block;\r\n\t-ms-overflow-style: none; /* IE 10+: hide scrollbars */\r\n\tscrollbar-width: none; /* Firefox: hide scrollbars */\r\n\toutline: none;\r\n}\r\n\r\n.monaco-inputbox > .ibwrapper > textarea.input::-webkit-scrollbar {\r\n\tdisplay: none; /* Chrome + Safari: hide scrollbar */\r\n}\r\n\r\n.monaco-inputbox > .ibwrapper > textarea.input.empty {\r\n\twhite-space: nowrap;\r\n}\r\n\r\n.monaco-inputbox > .ibwrapper > .mirror {\r\n\tposition: absolute;\r\n\tdisplay: inline-block;\r\n\twidth: 100%;\r\n\ttop: 0;\r\n\tleft: 0;\r\n\tbox-sizing: border-box;\r\n\twhite-space: pre-wrap;\r\n\tvisibility: hidden;\r\n\tword-wrap: break-word;\r\n}\r\n\r\n/* Context view */\r\n\r\n.monaco-inputbox-container {\r\n\ttext-align: right;\r\n}\r\n\r\n.monaco-inputbox-container .monaco-inputbox-message {\r\n\tdisplay: inline-block;\r\n\toverflow: hidden;\r\n\ttext-align: left;\r\n\twidth: 100%;\r\n\tbox-sizing:\tborder-box;\r\n\tpadding: 0.4em;\r\n\tfont-size: 12px;\r\n\tline-height: 17px;\r\n\tmargin-top: -1px;\r\n\tword-wrap: break-word;\r\n}\r\n\r\n/* Action bar support */\r\n.monaco-inputbox .monaco-action-bar {\r\n\tposition: absolute;\r\n\tright: 2px;\r\n\ttop: 4px;\r\n}\r\n\r\n.monaco-inputbox .monaco-action-bar .action-item {\r\n\tmargin-left: 2px;\r\n}\r\n\r\n.monaco-inputbox .monaco-action-bar .action-item .codicon {\r\n\tbackground-repeat: no-repeat;\r\n\twidth: 16px;\r\n\theight: 16px;\r\n}\r\n", "" ]); const a = s }, 2298: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-keybinding {\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tline-height: 10px;\r\n}\r\n\r\n.monaco-keybinding > .monaco-keybinding-key {\r\n\tdisplay: inline-block;\r\n\tborder-style: solid;\r\n\tborder-width: 1px;\r\n\tborder-radius: 3px;\r\n\tvertical-align: middle;\r\n\tfont-size: 11px;\r\n\tpadding: 3px 5px;\r\n\tmargin: 0 2px;\r\n}\r\n\r\n.monaco-keybinding > .monaco-keybinding-key:first-child {\r\n\tmargin-left: 0;\r\n}\r\n\r\n.monaco-keybinding > .monaco-keybinding-key:last-child {\r\n\tmargin-right: 0;\r\n}\r\n\r\n.monaco-keybinding > .monaco-keybinding-key-separator {\r\n\tdisplay: inline-block;\r\n}\r\n\r\n.monaco-keybinding > .monaco-keybinding-key-chord-separator {\r\n\twidth: 6px;\r\n}\r\n", "" ]); const a = s }, 7703: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-list {\r\n\tposition: relative;\r\n\theight: 100%;\r\n\twidth: 100%;\r\n\twhite-space: nowrap;\r\n}\r\n\r\n.monaco-list.mouse-support {\r\n\tuser-select: none;\r\n\t-webkit-user-select: none;\r\n\t-ms-user-select: none;\r\n}\r\n\r\n.monaco-list > .monaco-scrollable-element {\r\n\theight: 100%;\r\n}\r\n\r\n.monaco-list-rows {\r\n\tposition: relative;\r\n\twidth: 100%;\r\n\theight: 100%;\r\n}\r\n\r\n.monaco-list.horizontal-scrolling .monaco-list-rows {\r\n\twidth: auto;\r\n\tmin-width: 100%;\r\n}\r\n\r\n.monaco-list-row {\r\n\tposition: absolute;\r\n\tbox-sizing: border-box;\r\n\toverflow: hidden;\r\n\twidth: 100%;\r\n}\r\n\r\n.monaco-list.mouse-support .monaco-list-row {\r\n\tcursor: pointer;\r\n\ttouch-action: none;\r\n}\r\n\r\n/* for OS X ballistic scrolling */\r\n.monaco-list-row.scrolling {\r\n\tdisplay: none !important;\r\n}\r\n\r\n/* Focus */\r\n.monaco-list.element-focused,\r\n.monaco-list.selection-single,\r\n.monaco-list.selection-multiple {\r\n\toutline: 0 !important;\r\n}\r\n\r\n/* Dnd */\r\n.monaco-drag-image {\r\n\tdisplay: inline-block;\r\n\tpadding: 1px 7px;\r\n\tborder-radius: 10px;\r\n\tfont-size: 12px;\r\n\tposition: absolute;\r\n\tz-index: 1000;\r\n}\r\n\r\n/* Type filter */\r\n\r\n.monaco-list-type-filter {\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tposition: absolute;\r\n\tborder-radius: 2px;\r\n\tpadding: 0px 3px;\r\n\tmax-width: calc(100% - 10px);\r\n\ttext-overflow: ellipsis;\r\n\toverflow: hidden;\r\n\ttext-align: right;\r\n\tbox-sizing: border-box;\r\n\tcursor: all-scroll;\r\n\tfont-size: 13px;\r\n\tline-height: 18px;\r\n\theight: 20px;\r\n\tz-index: 1;\r\n\ttop: 4px;\r\n}\r\n\r\n.monaco-list-type-filter.dragging {\r\n\ttransition: top 0.2s, left 0.2s;\r\n}\r\n\r\n.monaco-list-type-filter.ne {\r\n\tright: 4px;\r\n}\r\n\r\n.monaco-list-type-filter.nw {\r\n\tleft: 4px;\r\n}\r\n\r\n.monaco-list-type-filter > .controls {\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tbox-sizing: border-box;\r\n\ttransition: width 0.2s;\r\n\twidth: 0;\r\n}\r\n\r\n.monaco-list-type-filter.dragging > .controls,\r\n.monaco-list-type-filter:hover > .controls {\r\n\twidth: 36px;\r\n}\r\n\r\n.monaco-list-type-filter > .controls > * {\r\n\tborder: none;\r\n\tbox-sizing: border-box;\r\n\t-webkit-appearance: none;\r\n\t-moz-appearance: none;\r\n\tbackground: none;\r\n\twidth: 16px;\r\n\theight: 16px;\r\n\tflex-shrink: 0;\r\n\tmargin: 0;\r\n\tpadding: 0;\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n\tcursor: pointer;\r\n}\r\n\r\n.monaco-list-type-filter > .controls > .filter {\r\n\tmargin-left: 4px;\r\n}\r\n\r\n.monaco-list-type-filter-message {\r\n\tposition: absolute;\r\n\tbox-sizing: border-box;\r\n\twidth: 100%;\r\n\theight: 100%;\r\n\ttop: 0;\r\n\tleft: 0;\r\n\tpadding: 40px 1em 1em 1em;\r\n\ttext-align: center;\r\n\twhite-space: normal;\r\n\topacity: 0.7;\r\n\tpointer-events: none;\r\n}\r\n\r\n.monaco-list-type-filter-message:empty {\r\n\tdisplay: none;\r\n}\r\n\r\n/* Electron */\r\n\r\n.monaco-list-type-filter {\r\n\tcursor: grab;\r\n}\r\n\r\n.monaco-list-type-filter.dragging {\r\n\tcursor: grabbing;\r\n}\r\n", "" ]); const a = s }, 7548: (e, t, i) => { "use strict"; i.d(t, { Z: () => p }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r), a = i(1667), l = i.n(a), d = new URL(i(4768), i.b), c = new URL(i(5555), i.b), h = s()(o()), u = l()(d), g = l()(c); h.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-mouse-cursor-text {\r\n\tcursor: text;\r\n}\r\n\r\n/* The following selector looks a bit funny, but that is needed to cover all the workbench and the editor!! */\r\n.vs-dark .mac .monaco-mouse-cursor-text, .hc-black .mac .monaco-mouse-cursor-text,\r\n.vs-dark.mac .monaco-mouse-cursor-text, .hc-black.mac .monaco-mouse-cursor-text {\r\n\tcursor: -webkit-image-set(url(" + u + ") 1x, url(" + g + ") 2x) 5 8, text;\r\n}\r\n", "" ]); const p = h }, 4185: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-progress-container {\r\n\twidth: 100%;\r\n\theight: 5px;\r\n\toverflow: hidden; /* keep progress bit in bounds */\r\n}\r\n\r\n.monaco-progress-container .progress-bit {\r\n\twidth: 2%;\r\n\theight: 5px;\r\n\tposition: absolute;\r\n\tleft: 0;\r\n\tdisplay: none;\r\n}\r\n\r\n.monaco-progress-container.active .progress-bit {\r\n\tdisplay: inherit;\r\n}\r\n\r\n.monaco-progress-container.discrete .progress-bit {\r\n\tleft: 0;\r\n\ttransition: width 100ms linear;\r\n}\r\n\r\n.monaco-progress-container.discrete.done .progress-bit {\r\n\twidth: 100%;\r\n}\r\n\r\n.monaco-progress-container.infinite .progress-bit {\r\n\tanimation-name: progress;\r\n\tanimation-duration: 4s;\r\n\tanimation-iteration-count: infinite;\r\n\tanimation-timing-function: linear;\r\n\ttransform: translate3d(0px, 0px, 0px);\r\n}\r\n\r\n/**\r\n * The progress bit has a width: 2% (1/50) of the parent container. The animation moves it from 0% to 100% of\r\n * that container. Since translateX is relative to the progress bit size, we have to multiple it with\r\n * its relative size to the parent container:\r\n * parent width: 5000%\r\n * bit width: 100%\r\n * translateX should be as follow:\r\n * 50%: 5000% * 50% - 50% (set to center) = 2450%\r\n * 100%: 5000% * 100% - 100% (do not overflow) = 4900%\r\n */\r\n@keyframes progress { from { transform: translateX(0%) scaleX(1) } 50% { transform: translateX(2500%) scaleX(3) } to { transform: translateX(4900%) scaleX(1) } }\r\n", "" ]); const a = s }, 1629: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n:root {\r\n\t--sash-size: 4px;\r\n}\r\n\r\n.monaco-sash {\r\n\tposition: absolute;\r\n\tz-index: 35;\r\n\ttouch-action: none;\r\n}\r\n\r\n.monaco-sash.disabled {\r\n\tpointer-events: none;\r\n}\r\n\r\n.monaco-sash.mac.vertical {\r\n\tcursor: col-resize;\r\n}\r\n\r\n.monaco-sash.vertical.minimum {\r\n\tcursor: e-resize;\r\n}\r\n\r\n.monaco-sash.vertical.maximum {\r\n\tcursor: w-resize;\r\n}\r\n\r\n.monaco-sash.mac.horizontal {\r\n\tcursor: row-resize;\r\n}\r\n\r\n.monaco-sash.horizontal.minimum {\r\n\tcursor: s-resize;\r\n}\r\n\r\n.monaco-sash.horizontal.maximum {\r\n\tcursor: n-resize;\r\n}\r\n\r\n.monaco-sash.disabled {\r\n\tcursor: default !important;\r\n\tpointer-events: none !important;\r\n}\r\n\r\n.monaco-sash.vertical {\r\n\tcursor: ew-resize;\r\n\ttop: 0;\r\n\twidth: var(--sash-size);\r\n\theight: 100%;\r\n}\r\n\r\n.monaco-sash.horizontal {\r\n\tcursor: ns-resize;\r\n\tleft: 0;\r\n\twidth: 100%;\r\n\theight: var(--sash-size);\r\n}\r\n\r\n.monaco-sash:not(.disabled) > .orthogonal-drag-handle {\r\n\tcontent: \" \";\r\n\theight: calc(var(--sash-size) * 2);\r\n\twidth: calc(var(--sash-size) * 2);\r\n\tz-index: 100;\r\n\tdisplay: block;\r\n\tcursor: all-scroll;\r\n\tposition: absolute;\r\n}\r\n\r\n.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)\r\n\t> .orthogonal-drag-handle.start,\r\n.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)\r\n\t> .orthogonal-drag-handle.end {\r\n\tcursor: nwse-resize;\r\n}\r\n\r\n.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)\r\n\t> .orthogonal-drag-handle.end,\r\n.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)\r\n\t> .orthogonal-drag-handle.start {\r\n\tcursor: nesw-resize;\r\n}\r\n\r\n.monaco-sash.vertical > .orthogonal-drag-handle.start {\r\n\tleft: calc(var(--sash-size) * -0.5);\r\n\ttop: calc(var(--sash-size) * -1);\r\n}\r\n.monaco-sash.vertical > .orthogonal-drag-handle.end {\r\n\tleft: calc(var(--sash-size) * -0.5);\r\n\tbottom: calc(var(--sash-size) * -1);\r\n}\r\n.monaco-sash.horizontal > .orthogonal-drag-handle.start {\r\n\ttop: calc(var(--sash-size) * -0.5);\r\n\tleft: calc(var(--sash-size) * -1);\r\n}\r\n.monaco-sash.horizontal > .orthogonal-drag-handle.end {\r\n\ttop: calc(var(--sash-size) * -0.5);\r\n\tright: calc(var(--sash-size) * -1);\r\n}\r\n\r\n.monaco-sash:before {\r\n\tcontent: '';\r\n\tpointer-events: none;\r\n\tposition: absolute;\r\n\twidth: 100%;\r\n\theight: 100%;\r\n\ttransition: background-color 0.1s ease-out;\r\n\tbackground: transparent;\r\n}\r\n\r\n.monaco-sash.vertical:before {\r\n\twidth: var(--sash-hover-size);\r\n\tleft: calc(50% - (var(--sash-hover-size) / 2));\r\n}\r\n\r\n.monaco-sash.horizontal:before {\r\n\theight: var(--sash-hover-size);\r\n\ttop: calc(50% - (var(--sash-hover-size) / 2));\r\n}\r\n\r\n/** Debug **/\r\n\r\n.monaco-sash.debug {\r\n\tbackground: cyan;\r\n}\r\n\r\n.monaco-sash.debug.disabled {\r\n\tbackground: rgba(0, 255, 255, 0.2);\r\n}\r\n\r\n.monaco-sash.debug:not(.disabled) > .orthogonal-drag-handle {\r\n\tbackground: red;\r\n}\r\n", "" ]); const a = s }, 7198: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n/* Arrows */\r\n.monaco-scrollable-element > .scrollbar > .scra {\r\n\tcursor: pointer;\r\n\tfont-size: 11px !important;\r\n}\r\n\r\n.monaco-scrollable-element > .visible {\r\n\topacity: 1;\r\n\r\n\t/* Background rule added for IE9 - to allow clicks on dom node */\r\n\tbackground:rgba(0,0,0,0);\r\n\r\n\ttransition: opacity 100ms linear;\r\n}\r\n.monaco-scrollable-element > .invisible {\r\n\topacity: 0;\r\n\tpointer-events: none;\r\n}\r\n.monaco-scrollable-element > .invisible.fade {\r\n\ttransition: opacity 800ms linear;\r\n}\r\n\r\n/* Scrollable Content Inset Shadow */\r\n.monaco-scrollable-element > .shadow {\r\n\tposition: absolute;\r\n\tdisplay: none;\r\n}\r\n.monaco-scrollable-element > .shadow.top {\r\n\tdisplay: block;\r\n\ttop: 0;\r\n\tleft: 3px;\r\n\theight: 3px;\r\n\twidth: 100%;\r\n\tbox-shadow: #DDD 0 6px 6px -6px inset;\r\n}\r\n.monaco-scrollable-element > .shadow.left {\r\n\tdisplay: block;\r\n\ttop: 3px;\r\n\tleft: 0;\r\n\theight: 100%;\r\n\twidth: 3px;\r\n\tbox-shadow: #DDD 6px 0 6px -6px inset;\r\n}\r\n.monaco-scrollable-element > .shadow.top-left-corner {\r\n\tdisplay: block;\r\n\ttop: 0;\r\n\tleft: 0;\r\n\theight: 3px;\r\n\twidth: 3px;\r\n}\r\n.monaco-scrollable-element > .shadow.top.left {\r\n\tbox-shadow: #DDD 6px 6px 6px -6px inset;\r\n}\r\n\r\n/* ---------- Default Style ---------- */\r\n\r\n.vs .monaco-scrollable-element > .scrollbar > .slider {\r\n\tbackground: rgba(100, 100, 100, .4);\r\n}\r\n.vs-dark .monaco-scrollable-element > .scrollbar > .slider {\r\n\tbackground: rgba(121, 121, 121, .4);\r\n}\r\n.hc-black .monaco-scrollable-element > .scrollbar > .slider {\r\n\tbackground: rgba(111, 195, 223, .6);\r\n}\r\n\r\n.monaco-scrollable-element > .scrollbar > .slider:hover {\r\n\tbackground: rgba(100, 100, 100, .7);\r\n}\r\n.hc-black .monaco-scrollable-element > .scrollbar > .slider:hover {\r\n\tbackground: rgba(111, 195, 223, .8);\r\n}\r\n\r\n.monaco-scrollable-element > .scrollbar > .slider.active {\r\n\tbackground: rgba(0, 0, 0, .6);\r\n}\r\n.vs-dark .monaco-scrollable-element > .scrollbar > .slider.active {\r\n\tbackground: rgba(191, 191, 191, .4);\r\n}\r\n.hc-black .monaco-scrollable-element > .scrollbar > .slider.active {\r\n\tbackground: rgba(111, 195, 223, 1);\r\n}\r\n\r\n.vs-dark .monaco-scrollable-element .shadow.top {\r\n\tbox-shadow: none;\r\n}\r\n\r\n.vs-dark .monaco-scrollable-element .shadow.left {\r\n\tbox-shadow: #000 6px 0 6px -6px inset;\r\n}\r\n\r\n.vs-dark .monaco-scrollable-element .shadow.top.left {\r\n\tbox-shadow: #000 6px 6px 6px -6px inset;\r\n}\r\n\r\n.hc-black .monaco-scrollable-element .shadow.top {\r\n\tbox-shadow: none;\r\n}\r\n\r\n.hc-black .monaco-scrollable-element .shadow.left {\r\n\tbox-shadow: none;\r\n}\r\n\r\n.hc-black .monaco-scrollable-element .shadow.top.left {\r\n\tbox-shadow: none;\r\n}\r\n", "" ]); const a = s }, 2470: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-split-view2 {\r\n\tposition: relative;\r\n\twidth: 100%;\r\n\theight: 100%;\r\n}\r\n\r\n.monaco-split-view2 > .sash-container {\r\n\tposition: absolute;\r\n\twidth: 100%;\r\n\theight: 100%;\r\n\tpointer-events: none;\r\n}\r\n\r\n.monaco-split-view2 > .sash-container > .monaco-sash {\r\n\tpointer-events: initial;\r\n}\r\n\r\n.monaco-split-view2 > .monaco-scrollable-element {\r\n\twidth: 100%;\r\n\theight: 100%;\r\n}\r\n\r\n.monaco-split-view2 > .monaco-scrollable-element > .split-view-container {\r\n\twidth: 100%;\r\n\theight: 100%;\r\n\twhite-space: nowrap;\r\n\tposition: relative;\r\n}\r\n\r\n.monaco-split-view2 > .monaco-scrollable-element > .split-view-container > .split-view-view {\r\n\twhite-space: initial;\r\n\tposition: absolute;\r\n}\r\n\r\n.monaco-split-view2 > .monaco-scrollable-element > .split-view-container > .split-view-view:not(.visible) {\r\n\tdisplay: none;\r\n}\r\n\r\n.monaco-split-view2.vertical > .monaco-scrollable-element > .split-view-container > .split-view-view {\r\n\twidth: 100%;\r\n}\r\n\r\n.monaco-split-view2.horizontal > .monaco-scrollable-element > .split-view-container > .split-view-view {\r\n\theight: 100%;\r\n}\r\n\r\n.monaco-split-view2.separator-border > .monaco-scrollable-element > .split-view-container > .split-view-view:not(:first-child)::before {\r\n\tcontent: ' ';\r\n\tposition: absolute;\r\n\ttop: 0;\r\n\tleft: 0;\r\n\tz-index: 5;\r\n\tpointer-events: none;\r\n\tbackground-color: var(--separator-border);\r\n}\r\n\r\n.monaco-split-view2.separator-border.horizontal > .monaco-scrollable-element > .split-view-container > .split-view-view:not(:first-child)::before {\r\n\theight: 100%;\r\n\twidth: 1px;\r\n}\r\n\r\n.monaco-split-view2.separator-border.vertical > .monaco-scrollable-element > .split-view-container > .split-view-view:not(:first-child)::before {\r\n\theight: 1px;\r\n\twidth: 100%;\r\n}\r\n", "" ]); const a = s }, 1728: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, '/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-table {\r\n\tdisplay: flex;\r\n\tflex-direction: column;\r\n\tposition: relative;\r\n\theight: 100%;\r\n\twidth: 100%;\r\n\twhite-space: nowrap;\r\n}\r\n\r\n.monaco-table > .monaco-split-view2 {\r\n\tborder-bottom: 1px solid transparent;\r\n}\r\n\r\n.monaco-table > .monaco-list {\r\n\tflex: 1;\r\n}\r\n\r\n.monaco-table-tr {\r\n\tdisplay: flex;\r\n\theight: 100%;\r\n}\r\n\r\n.monaco-table-th {\r\n\twidth: 100%;\r\n\theight: 100%;\r\n\tfont-weight: bold;\r\n\toverflow: hidden;\r\n\ttext-overflow: ellipsis;\r\n}\r\n\r\n.monaco-table-th,\r\n.monaco-table-td {\r\n\tbox-sizing: border-box;\r\n\tflex-shrink: 0;\r\n\toverflow: hidden;\r\n\twhite-space: nowrap;\r\n\ttext-overflow: ellipsis;\r\n}\r\n\r\n.monaco-table > .monaco-split-view2 .monaco-sash.vertical::before {\r\n\tcontent: "";\r\n\tposition: absolute;\r\n\tleft: calc(var(--sash-size) / 2);\r\n\twidth: 0;\r\n\tborder-left: 1px solid transparent;\r\n}\r\n\r\n.monaco-table > .monaco-split-view2,\r\n.monaco-table > .monaco-split-view2 .monaco-sash.vertical::before {\r\n\ttransition: border-color 0.2s ease-out;\r\n}\r\n/*\r\n.monaco-table:hover > .monaco-split-view2,\r\n.monaco-table:hover > .monaco-split-view2 .monaco-sash.vertical::before {\r\n\tborder-color: rgba(204, 204, 204, 0.2);\r\n} */\r\n', "" ]); const a = s }, 1766: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-tl-row {\r\n\tdisplay: flex;\r\n\theight: 100%;\r\n\talign-items: center;\r\n\tposition: relative;\r\n}\r\n\r\n.monaco-tl-indent {\r\n\theight: 100%;\r\n\tposition: absolute;\r\n\ttop: 0;\r\n\tleft: 16px;\r\n\tpointer-events: none;\r\n}\r\n\r\n.hide-arrows .monaco-tl-indent {\r\n\tleft: 12px;\r\n}\r\n\r\n.monaco-tl-indent > .indent-guide {\r\n\tdisplay: inline-block;\r\n\tbox-sizing: border-box;\r\n\theight: 100%;\r\n\tborder-left: 1px solid transparent;\r\n}\r\n\r\n.monaco-tl-indent > .indent-guide {\r\n\ttransition: border-color 0.1s linear;\r\n}\r\n\r\n.monaco-tl-twistie,\r\n.monaco-tl-contents {\r\n\theight: 100%;\r\n}\r\n\r\n.monaco-tl-twistie {\r\n\tfont-size: 10px;\r\n\ttext-align: right;\r\n\tpadding-right: 6px;\r\n\tflex-shrink: 0;\r\n\twidth: 16px;\r\n\tdisplay: flex !important;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n\ttransform: translateX(3px);\r\n}\r\n\r\n.monaco-tl-contents {\r\n\tflex: 1;\r\n\toverflow: hidden;\r\n}\r\n\r\n.monaco-tl-twistie::before {\r\n\tborder-radius: 20px;\r\n}\r\n\r\n.monaco-tl-twistie.collapsed::before {\r\n\ttransform: rotate(-90deg);\r\n}\r\n\r\n.monaco-tl-twistie.codicon-tree-item-loading::before {\r\n\t/* Use steps to throttle FPS to reduce CPU usage */\r\n\tanimation: codicon-spin 1.25s steps(30) infinite;\r\n}\r\n", "" ]); const a = s }, 3257: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.quick-input-widget {\r\n\tposition: absolute;\r\n\twidth: 600px;\r\n\tz-index: 2000;\r\n\tpadding: 0 1px 1px 1px;\r\n\tleft: 50%;\r\n\tmargin-left: -300px;\r\n}\r\n\r\n.quick-input-titlebar {\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n}\r\n\r\n.quick-input-left-action-bar {\r\n\tdisplay: flex;\r\n\tmargin-left: 4px;\r\n\tflex: 1;\r\n}\r\n\r\n.quick-input-title {\r\n\tpadding: 3px 0px;\r\n\ttext-align: center;\r\n\ttext-overflow: ellipsis;\r\n\toverflow: hidden;\r\n}\r\n\r\n.quick-input-right-action-bar {\r\n\tdisplay: flex;\r\n\tmargin-right: 4px;\r\n\tflex: 1;\r\n}\r\n\r\n.quick-input-right-action-bar > .actions-container {\r\n\tjustify-content: flex-end;\r\n}\r\n\r\n.quick-input-titlebar .monaco-action-bar .action-label.codicon {\r\n\tbackground-position: center;\r\n\tbackground-repeat: no-repeat;\r\n\tpadding: 2px;\r\n}\r\n\r\n.quick-input-description {\r\n\tmargin: 6px;\r\n}\r\n\r\n.quick-input-header .quick-input-description {\r\n\tmargin: 4px 2px;\r\n}\r\n\r\n.quick-input-header {\r\n\tdisplay: flex;\r\n\tpadding: 6px 6px 0px 6px;\r\n\tmargin-bottom: -2px;\r\n}\r\n\r\n.quick-input-widget.hidden-input .quick-input-header {\r\n\t/* reduce margins and paddings when input box hidden */\r\n\tpadding: 0;\r\n\tmargin-bottom: 0;\r\n}\r\n\r\n.quick-input-and-message {\r\n\tdisplay: flex;\r\n\tflex-direction: column;\r\n\tflex-grow: 1;\r\n\tmin-width: 0;\r\n\tposition: relative;\r\n}\r\n\r\n.quick-input-check-all {\r\n\talign-self: center;\r\n\tmargin: 0;\r\n}\r\n\r\n.quick-input-filter {\r\n\tflex-grow: 1;\r\n\tdisplay: flex;\r\n\tposition: relative;\r\n}\r\n\r\n.quick-input-box {\r\n\tflex-grow: 1;\r\n}\r\n\r\n.quick-input-widget.show-checkboxes .quick-input-box,\r\n.quick-input-widget.show-checkboxes .quick-input-message {\r\n\tmargin-left: 5px;\r\n}\r\n\r\n.quick-input-visible-count {\r\n\tposition: absolute;\r\n\tleft: -10000px;\r\n}\r\n\r\n.quick-input-count {\r\n\talign-self: center;\r\n\tposition: absolute;\r\n\tright: 4px;\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n}\r\n\r\n.quick-input-count .monaco-count-badge {\r\n\tvertical-align: middle;\r\n\tpadding: 2px 4px;\r\n\tborder-radius: 2px;\r\n\tmin-height: auto;\r\n\tline-height: normal;\r\n}\r\n\r\n.quick-input-action {\r\n\tmargin-left: 6px;\r\n}\r\n\r\n.quick-input-action .monaco-text-button {\r\n\tfont-size: 11px;\r\n\tpadding: 0 6px;\r\n\tdisplay: flex;\r\n\theight: 27.5px;\r\n\talign-items: center;\r\n}\r\n\r\n.quick-input-message {\r\n\tmargin-top: -1px;\r\n\tpadding: 5px 5px 2px 5px;\r\n\toverflow-wrap: break-word;\r\n}\r\n\r\n.quick-input-message > .codicon {\r\n\tmargin: 0 0.2em;\r\n\tvertical-align: text-bottom;\r\n}\r\n\r\n.quick-input-progress.monaco-progress-container {\r\n\tposition: relative;\r\n}\r\n\r\n.quick-input-progress.monaco-progress-container,\r\n.quick-input-progress.monaco-progress-container .progress-bit {\r\n\theight: 2px;\r\n}\r\n\r\n.quick-input-list {\r\n\tline-height: 22px;\r\n\tmargin-top: 6px;\r\n}\r\n\r\n.quick-input-widget.hidden-input .quick-input-list {\r\n\tmargin-top: 0; /* reduce margins when input box hidden */\r\n}\r\n\r\n.quick-input-list .monaco-list {\r\n\toverflow: hidden;\r\n\tmax-height: calc(20 * 22px);\r\n}\r\n\r\n.quick-input-list .quick-input-list-entry {\r\n\tbox-sizing: border-box;\r\n\toverflow: hidden;\r\n\tdisplay: flex;\r\n\theight: 100%;\r\n\tpadding: 0 6px;\r\n}\r\n\r\n.quick-input-list .quick-input-list-entry.quick-input-list-separator-border {\r\n\tborder-top-width: 1px;\r\n\tborder-top-style: solid;\r\n}\r\n\r\n.quick-input-list .monaco-list-row[data-index=\"0\"] .quick-input-list-entry.quick-input-list-separator-border {\r\n\tborder-top-style: none;\r\n}\r\n\r\n.quick-input-list .quick-input-list-label {\r\n\toverflow: hidden;\r\n\tdisplay: flex;\r\n\theight: 100%;\r\n\tflex: 1;\r\n}\r\n\r\n.quick-input-list .quick-input-list-checkbox {\r\n\talign-self: center;\r\n\tmargin: 0;\r\n}\r\n\r\n.quick-input-list .quick-input-list-rows {\r\n\toverflow: hidden;\r\n\ttext-overflow: ellipsis;\r\n\tdisplay: flex;\r\n\tflex-direction: column;\r\n\theight: 100%;\r\n\tflex: 1;\r\n\tmargin-left: 5px;\r\n}\r\n\r\n.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-rows {\r\n\tmargin-left: 10px;\r\n}\r\n\r\n.quick-input-widget .quick-input-list .quick-input-list-checkbox {\r\n\tdisplay: none;\r\n}\r\n.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-checkbox {\r\n\tdisplay: inline;\r\n}\r\n\r\n.quick-input-list .quick-input-list-rows > .quick-input-list-row {\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n}\r\n\r\n.quick-input-list .quick-input-list-rows > .quick-input-list-row .monaco-icon-label,\r\n.quick-input-list .quick-input-list-rows > .quick-input-list-row .monaco-icon-label .monaco-icon-label-container > .monaco-icon-name-container {\r\n\tflex: 1; /* make sure the icon label grows within the row */\r\n}\r\n\r\n.quick-input-list .quick-input-list-rows > .quick-input-list-row .codicon[class*='codicon-'] {\r\n\tvertical-align: text-bottom;\r\n}\r\n\r\n.quick-input-list .quick-input-list-rows .monaco-highlighted-label span {\r\n\topacity: 1;\r\n}\r\n\r\n.quick-input-list .quick-input-list-entry .quick-input-list-entry-keybinding {\r\n\tmargin-right: 8px; /* separate from the separator label or scrollbar if any */\r\n}\r\n\r\n.quick-input-list .quick-input-list-label-meta {\r\n\topacity: 0.7;\r\n\tline-height: normal;\r\n\ttext-overflow: ellipsis;\r\n\toverflow: hidden;\r\n}\r\n\r\n.quick-input-list .monaco-highlighted-label .highlight {\r\n\tfont-weight: bold;\r\n}\r\n\r\n.quick-input-list .quick-input-list-entry .quick-input-list-separator {\r\n\tmargin-right: 8px; /* separate from keybindings or actions */\r\n}\r\n\r\n.quick-input-list .quick-input-list-entry-action-bar {\r\n\tdisplay: flex;\r\n\tflex: 0;\r\n\toverflow: visible;\r\n}\r\n\r\n.quick-input-list .quick-input-list-entry-action-bar .action-label {\r\n\t/*\r\n\t * By default, actions in the quick input action bar are hidden\r\n\t * until hovered over them or selected.\r\n\t */\r\n\tdisplay: none;\r\n}\r\n\r\n.quick-input-list .quick-input-list-entry-action-bar .action-label.codicon {\r\n\tmargin-right: 4px;\r\n\tpadding: 0px 2px 2px 2px;\r\n}\r\n\r\n.quick-input-list .quick-input-list-entry-action-bar {\r\n\tmargin-top: 1px;\r\n}\r\n\r\n.quick-input-list .quick-input-list-entry-action-bar {\r\n\tmargin-right: 4px; /* separate from scrollbar */\r\n}\r\n\r\n.quick-input-list .quick-input-list-entry .quick-input-list-entry-action-bar .action-label.always-visible,\r\n.quick-input-list .quick-input-list-entry:hover .quick-input-list-entry-action-bar .action-label,\r\n.quick-input-list .monaco-list-row.focused .quick-input-list-entry-action-bar .action-label {\r\n\tdisplay: flex;\r\n}\r\n\r\n/* focused items in quick pick */\r\n.quick-input-list .monaco-list-row.focused .monaco-keybinding-key,\r\n.quick-input-list .monaco-list-row.focused .quick-input-list-entry .quick-input-list-separator {\r\n\tcolor: inherit\r\n}\r\n.quick-input-list .monaco-list-row.focused .monaco-keybinding-key {\r\n\tbackground: none;\r\n}\r\n", "" ]); const a = s }, 504: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-editor .inputarea {\r\n\tmin-width: 0;\r\n\tmin-height: 0;\r\n\tmargin: 0;\r\n\tpadding: 0;\r\n\tposition: absolute;\r\n\toutline: none !important;\r\n\tresize: none;\r\n\tborder: none;\r\n\toverflow: hidden;\r\n\tcolor: transparent;\r\n\tbackground-color: transparent;\r\n}\r\n/*.monaco-editor .inputarea {\r\n\tposition: fixed !important;\r\n\twidth: 800px !important;\r\n\theight: 500px !important;\r\n\ttop: initial !important;\r\n\tleft: initial !important;\r\n\tbottom: 0 !important;\r\n\tright: 0 !important;\r\n\tcolor: black !important;\r\n\tbackground: white !important;\r\n\tline-height: 15px !important;\r\n\tfont-size: 14px !important;\r\n}*/\r\n.monaco-editor .inputarea.ime-input {\r\n\tz-index: 10;\r\n}\r\n", "" ]); const a = s }, 1260: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-editor .view-overlays .current-line {\r\n\tdisplay: block;\r\n\tposition: absolute;\r\n\tleft: 0;\r\n\ttop: 0;\r\n\tbox-sizing: border-box;\r\n}\r\n\r\n.monaco-editor .margin-view-overlays .current-line {\r\n\tdisplay: block;\r\n\tposition: absolute;\r\n\tleft: 0;\r\n\ttop: 0;\r\n\tbox-sizing: border-box;\r\n}\r\n\r\n.monaco-editor .margin-view-overlays .current-line.current-line-margin.current-line-margin-both {\r\n\tborder-right: 0;\r\n}\r\n", "" ]); const a = s }, 5686: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n/*\r\n\tKeeping name short for faster parsing.\r\n\tcdr = core decorations rendering (div)\r\n*/\r\n.monaco-editor .lines-content .cdr {\r\n\tposition: absolute;\r\n}", "" ]); const a = s }, 4827: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-editor .glyph-margin {\r\n\tposition: absolute;\r\n\ttop: 0;\r\n}\r\n\r\n/*\r\n\tKeeping name short for faster parsing.\r\n\tcgmr = core glyph margin rendering (div)\r\n*/\r\n.monaco-editor .margin-view-overlays .cgmr {\r\n\tposition: absolute;\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n}\r\n", "" ]); const a = s }, 6848: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n/*\r\n\tKeeping name short for faster parsing.\r\n\tcigr = core ident guides rendering (div)\r\n*/\r\n.monaco-editor .lines-content .cigr {\r\n\tposition: absolute;\r\n}\r\n.monaco-editor .lines-content .cigra {\r\n\tposition: absolute;\r\n}\r\n", "" ]); const a = s }, 6184: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-editor .margin-view-overlays .line-numbers {\r\n\tfont-variant-numeric: tabular-nums;\r\n\tposition: absolute;\r\n\ttext-align: right;\r\n\tdisplay: inline-block;\r\n\tvertical-align: middle;\r\n\tbox-sizing: border-box;\r\n\tcursor: default;\r\n\theight: 100%;\r\n}\r\n\r\n.monaco-editor .relative-current-line-number {\r\n\ttext-align: left;\r\n\tdisplay: inline-block;\r\n\twidth: 100%;\r\n}\r\n\r\n.monaco-editor .margin-view-overlays .line-numbers.lh-odd {\r\n\tmargin-top: 1px;\r\n}\r\n", "" ]); const a = s }, 9565: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n/* Uncomment to see lines flashing when they're painted */\r\n/*.monaco-editor .view-lines > .view-line {\r\n\tbackground-color: none;\r\n\tanimation-name: flash-background;\r\n\tanimation-duration: 800ms;\r\n}\r\n@keyframes flash-background {\r\n\t0% { background-color: lightgreen; }\r\n\t100% { background-color: none }\r\n}*/\r\n\r\n.monaco-editor.no-user-select .lines-content,\r\n.monaco-editor.no-user-select .view-line,\r\n.monaco-editor.no-user-select .view-lines {\r\n\tuser-select: none;\r\n\t-webkit-user-select: none;\r\n\t-ms-user-select: none;\r\n}\r\n\r\n.monaco-editor .view-lines {\r\n\twhite-space: nowrap;\r\n}\r\n\r\n.monaco-editor .view-line {\r\n\tposition: absolute;\r\n\twidth: 100%;\r\n}\r\n\r\n.monaco-editor .mtkz {\r\n\tdisplay: inline-block;\r\n}\r\n\r\n/* TODO@tokenization bootstrap fix */\r\n/*.monaco-editor .view-line > span > span {\r\n\tfloat: none;\r\n\tmin-height: inherit;\r\n\tmargin-left: inherit;\r\n}*/\r\n", "" ]); const a = s }, 4444: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n.monaco-editor .lines-decorations {\r\n\tposition: absolute;\r\n\ttop: 0;\r\n\tbackground: white;\r\n}\r\n\r\n/*\r\n\tKeeping name short for faster parsing.\r\n\tcldr = core lines decorations rendering (div)\r\n*/\r\n.monaco-editor .margin-view-overlays .cldr {\r\n\tposition: absolute;\r\n\theight: 100%;\r\n}", "" ]); const a = s }, 9364: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n/*\r\n\tKeeping name short for faster parsing.\r\n\tcmdr = core margin decorations rendering (div)\r\n*/\r\n.monaco-editor .margin-view-overlays .cmdr {\r\n\tposition: absolute;\r\n\tleft: 0;\r\n\twidth: 100%;\r\n\theight: 100%;\r\n}", "" ]); const a = s }, 563: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n/* START cover the case that slider is visible on mouseover */\r\n.monaco-editor .minimap.slider-mouseover .minimap-slider {\r\n\topacity: 0;\r\n\ttransition: opacity 100ms linear;\r\n}\r\n.monaco-editor .minimap.slider-mouseover:hover .minimap-slider {\r\n\topacity: 1;\r\n}\r\n.monaco-editor .minimap.slider-mouseover .minimap-slider.active {\r\n\topacity: 1;\r\n}\r\n/* END cover the case that slider is visible on mouseover */\r\n\r\n.monaco-editor .minimap-shadow-hidden {\r\n\tposition: absolute;\r\n\twidth: 0;\r\n}\r\n.monaco-editor .minimap-shadow-visible {\r\n\tposition: absolute;\r\n\tleft: -6px;\r\n\twidth: 6px;\r\n}\r\n.monaco-editor.no-minimap-shadow .minimap-shadow-visible {\r\n\tposition: absolute;\r\n\tleft: -1px;\r\n\twidth: 1px;\r\n}\r\n", "" ]); const a = s }, 9822: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n.monaco-editor .overlayWidgets {\r\n\tposition: absolute;\r\n\ttop: 0;\r\n\tleft:0;\r\n}", "" ]); const a = s }, 9443: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-editor .view-ruler {\r\n\tposition: absolute;\r\n\ttop: 0;\r\n}", "" ]); const a = s }, 9649: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-editor .scroll-decoration {\r\n\tposition: absolute;\r\n\ttop: 0;\r\n\tleft: 0;\r\n\theight: 6px;\r\n}", "" ]); const a = s }, 2595: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n/*\r\n\tKeeping name short for faster parsing.\r\n\tcslr = core selections layer rendering (div)\r\n*/\r\n.monaco-editor .lines-content .cslr {\r\n\tposition: absolute;\r\n}\r\n\r\n.monaco-editor\t\t\t.top-left-radius\t\t{ border-top-left-radius: 3px; }\r\n.monaco-editor\t\t\t.bottom-left-radius\t\t{ border-bottom-left-radius: 3px; }\r\n.monaco-editor\t\t\t.top-right-radius\t\t{ border-top-right-radius: 3px; }\r\n.monaco-editor\t\t\t.bottom-right-radius\t{ border-bottom-right-radius: 3px; }\r\n\r\n.monaco-editor.hc-black .top-left-radius\t\t{ border-top-left-radius: 0; }\r\n.monaco-editor.hc-black .bottom-left-radius\t\t{ border-bottom-left-radius: 0; }\r\n.monaco-editor.hc-black .top-right-radius\t\t{ border-top-right-radius: 0; }\r\n.monaco-editor.hc-black .bottom-right-radius\t{ border-bottom-right-radius: 0; }\r\n", "" ]); const a = s }, 4057: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n.monaco-editor .cursors-layer {\r\n\tposition: absolute;\r\n\ttop: 0;\r\n}\r\n\r\n.monaco-editor .cursors-layer > .cursor {\r\n\tposition: absolute;\r\n\toverflow: hidden;\r\n}\r\n\r\n/* -- smooth-caret-animation -- */\r\n.monaco-editor .cursors-layer.cursor-smooth-caret-animation > .cursor {\r\n\ttransition: all 80ms;\r\n}\r\n\r\n/* -- block-outline-style -- */\r\n.monaco-editor .cursors-layer.cursor-block-outline-style > .cursor {\r\n\tbox-sizing: border-box;\r\n\tbackground: transparent !important;\r\n\tborder-style: solid;\r\n\tborder-width: 1px;\r\n}\r\n\r\n/* -- underline-style -- */\r\n.monaco-editor .cursors-layer.cursor-underline-style > .cursor {\r\n\tborder-bottom-width: 2px;\r\n\tborder-bottom-style: solid;\r\n\tbackground: transparent !important;\r\n\tbox-sizing: border-box;\r\n}\r\n\r\n/* -- underline-thin-style -- */\r\n.monaco-editor .cursors-layer.cursor-underline-thin-style > .cursor {\r\n\tborder-bottom-width: 1px;\r\n\tborder-bottom-style: solid;\r\n\tbackground: transparent !important;\r\n\tbox-sizing: border-box;\r\n}\r\n\r\n@keyframes monaco-cursor-smooth {\r\n\t0%,\r\n\t20% {\r\n\t\topacity: 1;\r\n\t}\r\n\t60%,\r\n\t100% {\r\n\t\topacity: 0;\r\n\t}\r\n}\r\n\r\n@keyframes monaco-cursor-phase {\r\n\t0%,\r\n\t20% {\r\n\t\topacity: 1;\r\n\t}\r\n\t90%,\r\n\t100% {\r\n\t\topacity: 0;\r\n\t}\r\n}\r\n\r\n@keyframes monaco-cursor-expand {\r\n\t0%,\r\n\t20% {\r\n\t\ttransform: scaleY(1);\r\n\t}\r\n\t80%,\r\n\t100% {\r\n\t\ttransform: scaleY(0);\r\n\t}\r\n}\r\n\r\n.cursor-smooth {\r\n\tanimation: monaco-cursor-smooth 0.5s ease-in-out 0s 20 alternate;\r\n}\r\n\r\n.cursor-phase {\r\n\tanimation: monaco-cursor-phase 0.5s ease-in-out 0s 20 alternate;\r\n}\r\n\r\n.cursor-expand > .cursor {\r\n\tanimation: monaco-cursor-expand 0.5s ease-in-out 0s 20 alternate;\r\n}\r\n", "" ]); const a = s }, 2360: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n/* ---------- DiffEditor ---------- */\r\n\r\n.monaco-diff-editor .diffOverview {\r\n\tz-index: 9;\r\n}\r\n\r\n.monaco-diff-editor .diffOverview .diffViewport {\r\n\tz-index: 10;\r\n}\r\n\r\n/* colors not externalized: using transparancy on background */\r\n.monaco-diff-editor.vs\t\t\t.diffOverview { background: rgba(0, 0, 0, 0.03); }\r\n.monaco-diff-editor.vs-dark\t\t.diffOverview { background: rgba(255, 255, 255, 0.01); }\r\n\r\n.monaco-scrollable-element.modified-in-monaco-diff-editor.vs\t\t.scrollbar { background: rgba(0,0,0,0); }\r\n.monaco-scrollable-element.modified-in-monaco-diff-editor.vs-dark\t.scrollbar { background: rgba(0,0,0,0); }\r\n.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-black\t.scrollbar { background: none; }\r\n\r\n.monaco-scrollable-element.modified-in-monaco-diff-editor .slider {\r\n\tz-index: 10;\r\n}\r\n.modified-in-monaco-diff-editor\t\t\t\t.slider.active { background: rgba(171, 171, 171, .4); }\r\n.modified-in-monaco-diff-editor.hc-black\t.slider.active { background: none; }\r\n\r\n/* ---------- Diff ---------- */\r\n\r\n.monaco-editor .insert-sign,\r\n.monaco-diff-editor .insert-sign,\r\n.monaco-editor .delete-sign,\r\n.monaco-diff-editor .delete-sign {\r\n\tfont-size: 11px !important;\r\n\topacity: 0.7 !important;\r\n\tdisplay: flex !important;\r\n\talign-items: center;\r\n}\r\n.monaco-editor.hc-black .insert-sign,\r\n.monaco-diff-editor.hc-black .insert-sign,\r\n.monaco-editor.hc-black .delete-sign,\r\n.monaco-diff-editor.hc-black .delete-sign {\r\n\topacity: 1;\r\n}\r\n\r\n.monaco-editor .inline-deleted-margin-view-zone {\r\n\ttext-align: right;\r\n}\r\n.monaco-editor .inline-added-margin-view-zone {\r\n\ttext-align: right;\r\n}\r\n\r\n/* ---------- Inline Diff ---------- */\r\n\r\n.monaco-editor .view-zones .view-lines .view-line span {\r\n\tdisplay: inline-block;\r\n}\r\n\r\n.monaco-editor .margin-view-zones .lightbulb-glyph:hover {\r\n\tcursor: pointer;\r\n}\r\n", "" ]); const a = s }, 4504: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-diff-editor .diff-review-line-number {\r\n\ttext-align: right;\r\n\tdisplay: inline-block;\r\n}\r\n\r\n.monaco-diff-editor .diff-review {\r\n\tposition: absolute;\r\n\tuser-select: none;\r\n\t-webkit-user-select: none;\r\n\t-ms-user-select: none;\r\n}\r\n\r\n.monaco-diff-editor .diff-review-summary {\r\n\tpadding-left: 10px;\r\n}\r\n\r\n.monaco-diff-editor .diff-review-shadow {\r\n\tposition: absolute;\r\n}\r\n\r\n.monaco-diff-editor .diff-review-row {\r\n\twhite-space: pre;\r\n}\r\n\r\n.monaco-diff-editor .diff-review-table {\r\n\tdisplay: table;\r\n\tmin-width: 100%;\r\n}\r\n\r\n.monaco-diff-editor .diff-review-row {\r\n\tdisplay: table-row;\r\n\twidth: 100%;\r\n}\r\n\r\n.monaco-diff-editor .diff-review-spacer {\r\n\tdisplay: inline-block;\r\n\twidth: 10px;\r\n\tvertical-align: middle;\r\n}\r\n\r\n.monaco-diff-editor .diff-review-spacer > .codicon {\r\n\tfont-size: 9px !important;\r\n}\r\n\r\n.monaco-diff-editor .diff-review-actions {\r\n\tdisplay: inline-block;\r\n\tposition: absolute;\r\n\tright: 10px;\r\n\ttop: 2px;\r\n}\r\n\r\n.monaco-diff-editor .diff-review-actions .action-label {\r\n\twidth: 16px;\r\n\theight: 16px;\r\n\tmargin: 2px 0;\r\n}\r\n", "" ]); const a = s }, 7337: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n/* -------------------- IE10 remove auto clear button -------------------- */\r\n\r\n::-ms-clear {\r\n\tdisplay: none;\r\n}\r\n\r\n/* All widgets */\r\n/* I am not a big fan of this rule */\r\n.monaco-editor .editor-widget input {\r\n\tcolor: inherit;\r\n}\r\n\r\n/* -------------------- Editor -------------------- */\r\n\r\n.monaco-editor {\r\n\tposition: relative;\r\n\toverflow: visible;\r\n\t-webkit-text-size-adjust: 100%;\r\n}\r\n\r\n/* -------------------- Misc -------------------- */\r\n\r\n.monaco-editor .overflow-guard {\r\n\tposition: relative;\r\n\toverflow: hidden;\r\n}\r\n\r\n.monaco-editor .view-overlays {\r\n\tposition: absolute;\r\n\ttop: 0;\r\n}\r\n\r\n/*\r\n.monaco-editor .auto-closed-character {\r\n\topacity: 0.3;\r\n}\r\n*/\r\n", "" ]); const a = s }, 2671: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-editor .selection-anchor {\r\n\tbackground-color: #007ACC;\r\n\twidth: 2px !important;\r\n}\r\n", "" ]); const a = s }, 7667: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-editor .bracket-match {\r\n\tbox-sizing: border-box;\r\n}\r\n", "" ]); const a = s }, 4754: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-editor .contentWidgets .codicon-light-bulb,\r\n.monaco-editor .contentWidgets .codicon-lightbulb-autofix {\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n}\r\n\r\n.monaco-editor .contentWidgets .codicon-light-bulb:hover,\r\n.monaco-editor .contentWidgets .codicon-lightbulb-autofix:hover {\r\n\tcursor: pointer;\r\n}\r\n", "" ]); const a = s }, 5674: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-editor .codelens-decoration {\r\n\toverflow: hidden;\r\n\tdisplay: inline-block;\r\n\ttext-overflow: ellipsis;\r\n\twhite-space: nowrap;\r\n}\r\n\r\n.monaco-editor .codelens-decoration > span,\r\n.monaco-editor .codelens-decoration > a {\r\n\tuser-select: none;\r\n\t-webkit-user-select: none;\r\n\t-ms-user-select: none;\r\n\twhite-space: nowrap;\r\n\tvertical-align: sub;\r\n}\r\n\r\n.monaco-editor .codelens-decoration > a {\r\n\ttext-decoration: none;\r\n}\r\n\r\n.monaco-editor .codelens-decoration > a:hover {\r\n\tcursor: pointer;\r\n}\r\n\r\n.monaco-editor .codelens-decoration .codicon {\r\n\tvertical-align: middle;\r\n\tcolor: currentColor !important;\r\n}\r\n\r\n.monaco-editor .codelens-decoration > a:hover .codicon::before {\r\n\tcursor: pointer;\r\n}\r\n\r\n@keyframes fadein {\r\n\t0% { opacity: 0; visibility: visible;}\r\n\t100% { opacity: 1; }\r\n}\r\n\r\n.monaco-editor .codelens-decoration.fadein {\r\n\tanimation: fadein 0.1s linear;\r\n}\r\n", "" ]); const a = s }, 6562: (e, t, i) => { "use strict"; i.d(t, { Z: () => u }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r), a = i(1667), l = i.n(a), d = new URL(i(4748), i.b), c = s()(o()), h = l()(d); c.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.colorpicker-widget {\r\n\theight: 190px;\r\n\tuser-select: none;\r\n\t-webkit-user-select: none;\r\n\t-ms-user-select: none;\r\n}\r\n\r\n.monaco-editor .colorpicker-hover:focus {\r\n\toutline: none;\r\n}\r\n\r\n\r\n/* Header */\r\n\r\n.colorpicker-header {\r\n\tdisplay: flex;\r\n\theight: 24px;\r\n\tposition: relative;\r\n\tbackground: url(" + h + ");\r\n\tbackground-size: 9px 9px;\r\n\timage-rendering: pixelated;\r\n}\r\n\r\n.colorpicker-header .picked-color {\r\n\twidth: 216px;\r\n\ttext-align: center;\r\n\tline-height: 24px;\r\n\tcursor: pointer;\r\n\tcolor: white;\r\n\tflex: 1;\r\n\ttext-align: center;\r\n}\r\n\r\n.colorpicker-header .picked-color.light {\r\n\tcolor: black;\r\n}\r\n\r\n.colorpicker-header .original-color {\r\n\twidth: 74px;\r\n\tz-index: inherit;\r\n\tcursor: pointer;\r\n}\r\n\r\n\r\n/* Body */\r\n\r\n.colorpicker-body {\r\n\tdisplay: flex;\r\n\tpadding: 8px;\r\n\tposition: relative;\r\n}\r\n\r\n.colorpicker-body .saturation-wrap {\r\n\toverflow: hidden;\r\n\theight: 150px;\r\n\tposition: relative;\r\n\tmin-width: 220px;\r\n\tflex: 1;\r\n}\r\n\r\n.colorpicker-body .saturation-box {\r\n\theight: 150px;\r\n\tposition: absolute;\r\n}\r\n\r\n.colorpicker-body .saturation-selection {\r\n\twidth: 9px;\r\n\theight: 9px;\r\n\tmargin: -5px 0 0 -5px;\r\n\tborder: 1px solid rgb(255, 255, 255);\r\n\tborder-radius: 100%;\r\n\tbox-shadow: 0px 0px 2px rgba(0, 0, 0, 0.8);\r\n\tposition: absolute;\r\n}\r\n\r\n.colorpicker-body .strip {\r\n\twidth: 25px;\r\n\theight: 150px;\r\n}\r\n\r\n.colorpicker-body .hue-strip {\r\n\tposition: relative;\r\n\tmargin-left: 8px;\r\n\tcursor: grab;\r\n\tbackground: linear-gradient(to bottom, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);\r\n}\r\n\r\n.colorpicker-body .opacity-strip {\r\n\tposition: relative;\r\n\tmargin-left: 8px;\r\n\tcursor: grab;\r\n\tbackground: url(" + h + ");\r\n\tbackground-size: 9px 9px;\r\n\timage-rendering: pixelated;\r\n}\r\n\r\n.colorpicker-body .strip.grabbing {\r\n\tcursor: grabbing;\r\n}\r\n\r\n.colorpicker-body .slider {\r\n\tposition: absolute;\r\n\ttop: 0;\r\n\tleft: -2px;\r\n\twidth: calc(100% + 4px);\r\n\theight: 4px;\r\n\tbox-sizing: border-box;\r\n\tborder: 1px solid rgba(255, 255, 255, 0.71);\r\n\tbox-shadow: 0px 0px 1px rgba(0, 0, 0, 0.85);\r\n}\r\n\r\n.colorpicker-body .strip .overlay {\r\n\theight: 150px;\r\n\tpointer-events: none;\r\n}\r\n", "" ]); const u = c }, 9100: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-editor.vs .dnd-target {\r\n\tborder-right: 2px dotted black;\r\n\tcolor: white; /* opposite of black */\r\n}\r\n.monaco-editor.vs-dark .dnd-target {\r\n\tborder-right: 2px dotted #AEAFAD;\r\n\tcolor: #51504f; /* opposite of #AEAFAD */\r\n}\r\n.monaco-editor.hc-black .dnd-target {\r\n\tborder-right: 2px dotted #fff;\r\n\tcolor: #000; /* opposite of #fff */\r\n}\r\n\r\n.monaco-editor.mouse-default .view-lines,\r\n.monaco-editor.vs-dark.mac.mouse-default .view-lines,\r\n.monaco-editor.hc-black.mac.mouse-default .view-lines {\r\n\tcursor: default;\r\n}\r\n.monaco-editor.mouse-copy .view-lines,\r\n.monaco-editor.vs-dark.mac.mouse-copy .view-lines,\r\n.monaco-editor.hc-black.mac.mouse-copy .view-lines {\r\n\tcursor: copy;\r\n}", "" ]); const a = s }, 5160: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n/* Find widget */\r\n.monaco-editor .find-widget {\r\n\tposition: absolute;\r\n\tz-index: 35;\r\n\theight: 33px;\r\n\toverflow: hidden;\r\n\tline-height: 19px;\r\n\ttransition: transform 200ms linear;\r\n\tpadding: 0 4px;\r\n\tbox-sizing: border-box;\r\n\ttransform: translateY(calc(-100% - 10px)); /* shadow (10px) */\r\n}\r\n\r\n.monaco-editor .find-widget textarea {\r\n\tmargin: 0px;\r\n}\r\n\r\n.monaco-editor .find-widget.hiddenEditor {\r\n\tdisplay: none;\r\n}\r\n\r\n/* Find widget when replace is toggled on */\r\n.monaco-editor .find-widget.replaceToggled > .replace-part {\r\n\tdisplay: flex;\r\n}\r\n\r\n.monaco-editor .find-widget.visible {\r\n\ttransform: translateY(0);\r\n}\r\n\r\n.monaco-editor .find-widget .monaco-inputbox.synthetic-focus {\r\n\toutline: 1px solid -webkit-focus-ring-color;\r\n\toutline-offset: -1px;\r\n}\r\n\r\n.monaco-editor .find-widget .monaco-inputbox .input {\r\n\tbackground-color: transparent;\r\n\tmin-height: 0;\r\n}\r\n\r\n.monaco-editor .find-widget .monaco-findInput .input {\r\n\tfont-size: 13px;\r\n}\r\n\r\n.monaco-editor .find-widget > .find-part,\r\n.monaco-editor .find-widget > .replace-part {\r\n\tmargin: 4px 0 0 17px;\r\n\tfont-size: 12px;\r\n\tdisplay: flex;\r\n}\r\n\r\n.monaco-editor .find-widget > .find-part .monaco-inputbox,\r\n.monaco-editor .find-widget > .replace-part .monaco-inputbox {\r\n\tmin-height: 25px;\r\n}\r\n\r\n\r\n.monaco-editor .find-widget > .replace-part .monaco-inputbox > .ibwrapper > .mirror {\r\n\tpadding-right: 22px;\r\n}\r\n\r\n.monaco-editor .find-widget > .find-part .monaco-inputbox > .ibwrapper > .input,\r\n.monaco-editor .find-widget > .find-part .monaco-inputbox > .ibwrapper > .mirror,\r\n.monaco-editor .find-widget > .replace-part .monaco-inputbox > .ibwrapper > .input,\r\n.monaco-editor .find-widget > .replace-part .monaco-inputbox > .ibwrapper > .mirror {\r\n\tpadding-top: 2px;\r\n\tpadding-bottom: 2px;\r\n}\r\n\r\n.monaco-editor .find-widget > .find-part .find-actions {\r\n\theight: 25px;\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n}\r\n\r\n.monaco-editor .find-widget > .replace-part .replace-actions {\r\n\theight: 25px;\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n}\r\n\r\n.monaco-editor .find-widget .monaco-findInput {\r\n\tvertical-align: middle;\r\n\tdisplay: flex;\r\n\tflex:1;\r\n}\r\n\r\n.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element {\r\n\t/* Make sure textarea inherits the width correctly */\r\n\twidth: 100%;\r\n}\r\n\r\n.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element .scrollbar.vertical {\r\n\t/* Hide vertical scrollbar */\r\n\topacity: 0;\r\n}\r\n\r\n.monaco-editor .find-widget .matchesCount {\r\n\tdisplay: flex;\r\n\tflex: initial;\r\n\tmargin: 0 0 0 3px;\r\n\tpadding: 2px 0 0 2px;\r\n\theight: 25px;\r\n\tvertical-align: middle;\r\n\tbox-sizing: border-box;\r\n\ttext-align: center;\r\n\tline-height: 23px;\r\n}\r\n\r\n.monaco-editor .find-widget .button {\r\n\twidth: 16px;\r\n\theight: 16px;\r\n\tpadding: 3px;\r\n\tborder-radius: 5px;\r\n\tdisplay: flex;\r\n\tflex: initial;\r\n\tmargin-left: 3px;\r\n\tbackground-position: center center;\r\n\tbackground-repeat: no-repeat;\r\n\tcursor: pointer;\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n}\r\n\r\n/* find in selection button */\r\n.monaco-editor .find-widget .codicon-find-selection {\r\n\twidth: 22px;\r\n\theight: 22px;\r\n\tpadding: 3px;\r\n\tborder-radius: 5px;\r\n}\r\n\r\n.monaco-editor .find-widget .button.left {\r\n\tmargin-left: 0;\r\n\tmargin-right: 3px;\r\n}\r\n\r\n.monaco-editor .find-widget .button.wide {\r\n\twidth: auto;\r\n\tpadding: 1px 6px;\r\n\ttop: -1px;\r\n}\r\n\r\n.monaco-editor .find-widget .button.toggle {\r\n\tposition: absolute;\r\n\ttop: 0;\r\n\tleft: 3px;\r\n\twidth: 18px;\r\n\theight: 100%;\r\n\tbox-sizing: border-box;\r\n}\r\n\r\n.monaco-editor .find-widget .button.toggle.disabled {\r\n\tdisplay: none;\r\n}\r\n\r\n.monaco-editor .find-widget .disabled {\r\n\topacity: 0.3;\r\n\tcursor: default;\r\n}\r\n\r\n.monaco-editor .find-widget > .replace-part {\r\n\tdisplay: none;\r\n}\r\n\r\n.monaco-editor .find-widget > .replace-part > .monaco-findInput {\r\n\tposition: relative;\r\n\tdisplay: flex;\r\n\tvertical-align: middle;\r\n\tflex: auto;\r\n\tflex-grow: 0;\r\n\tflex-shrink: 0;\r\n}\r\n\r\n.monaco-editor .find-widget > .replace-part > .monaco-findInput > .controls {\r\n\tposition: absolute;\r\n\ttop: 3px;\r\n\tright: 2px;\r\n}\r\n\r\n/* REDUCED */\r\n.monaco-editor .find-widget.reduced-find-widget .matchesCount {\r\n\tdisplay:none;\r\n}\r\n\r\n/* NARROW (SMALLER THAN REDUCED) */\r\n.monaco-editor .find-widget.narrow-find-widget {\r\n\tmax-width: 257px !important;\r\n}\r\n\r\n/* COLLAPSED (SMALLER THAN NARROW) */\r\n.monaco-editor .find-widget.collapsed-find-widget {\r\n\tmax-width: 170px !important;\r\n}\r\n\r\n.monaco-editor .find-widget.collapsed-find-widget .button.previous,\r\n.monaco-editor .find-widget.collapsed-find-widget .button.next,\r\n.monaco-editor .find-widget.collapsed-find-widget .button.replace,\r\n.monaco-editor .find-widget.collapsed-find-widget .button.replace-all,\r\n.monaco-editor .find-widget.collapsed-find-widget > .find-part .monaco-findInput .controls {\r\n\tdisplay:none;\r\n}\r\n\r\n.monaco-editor .findMatch {\r\n\tanimation-duration: 0;\r\n\tanimation-name: inherit !important;\r\n}\r\n\r\n.monaco-editor .find-widget .monaco-sash {\r\n\tleft: 0 !important;\r\n}\r\n\r\n.monaco-editor.hc-black .find-widget .button:before {\r\n\tposition: relative;\r\n\ttop: 1px;\r\n\tleft: 2px;\r\n}\r\n", "" ]); const a = s }, 6977: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, '/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-editor .margin-view-overlays .codicon-folding-expanded,\r\n.monaco-editor .margin-view-overlays .codicon-folding-collapsed {\r\n\tcursor: pointer;\r\n\topacity: 0;\r\n\ttransition: opacity 0.5s;\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n\tfont-size: 140%;\r\n\tmargin-left: 2px;\r\n}\r\n\r\n.monaco-editor .margin-view-overlays:hover .codicon,\r\n.monaco-editor .margin-view-overlays .codicon.codicon-folding-collapsed,\r\n.monaco-editor .margin-view-overlays .codicon.alwaysShowFoldIcons {\r\n\topacity: 1;\r\n}\r\n\r\n.monaco-editor .inline-folded:after {\r\n\tcolor: grey;\r\n\tmargin: 0.1em 0.2em 0 0.2em;\r\n\tcontent: "⋯";\r\n\tdisplay: inline;\r\n\tline-height: 1em;\r\n\tcursor: pointer;\r\n}\r\n', "" ]); const a = s }, 8994: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n/* marker zone */\r\n\r\n.monaco-editor .peekview-widget .head .peekview-title .severity-icon {\r\n\tdisplay: inline-block;\r\n\tvertical-align: text-top;\r\n\tmargin-right: 4px;\r\n}\r\n\r\n.monaco-editor .marker-widget {\r\n\ttext-overflow: ellipsis;\r\n\twhite-space: nowrap;\r\n}\r\n\r\n.monaco-editor .marker-widget > .stale {\r\n\topacity: 0.6;\r\n\tfont-style: italic;\r\n}\r\n\r\n.monaco-editor .marker-widget .title {\r\n\tdisplay: inline-block;\r\n\tpadding-right: 5px;\r\n}\r\n\r\n.monaco-editor .marker-widget .descriptioncontainer {\r\n\tposition: absolute;\r\n\twhite-space: pre;\r\n\tuser-select: text;\r\n\t-webkit-user-select: text;\r\n\t-ms-user-select: text;\r\n\tpadding: 8px 12px 0 20px;\r\n}\r\n\r\n.monaco-editor .marker-widget .descriptioncontainer .message {\r\n\tdisplay: flex;\r\n\tflex-direction: column;\r\n}\r\n\r\n.monaco-editor .marker-widget .descriptioncontainer .message .details {\r\n\tpadding-left: 6px;\r\n}\r\n\r\n.monaco-editor .marker-widget .descriptioncontainer .message .source,\r\n.monaco-editor .marker-widget .descriptioncontainer .message span.code {\r\n\topacity: 0.6;\r\n}\r\n\r\n.monaco-editor .marker-widget .descriptioncontainer .message a.code-link {\r\n\topacity: 0.6;\r\n\tcolor: inherit;\r\n}\r\n\r\n.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:before {\r\n\tcontent: '(';\r\n}\r\n\r\n.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:after {\r\n\tcontent: ')';\r\n}\r\n\r\n.monaco-editor .marker-widget .descriptioncontainer .message a.code-link > span {\r\n\ttext-decoration: underline;\r\n\t/** Hack to force underline to show **/\r\n\tborder-bottom: 1px solid transparent;\r\n\ttext-underline-position: under;\r\n}\r\n\r\n.monaco-editor .marker-widget .descriptioncontainer .filename {\r\n\tcursor: pointer;\r\n}\r\n", "" ]); const a = s }, 2760: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-editor .goto-definition-link {\r\n\ttext-decoration: underline;\r\n\tcursor: pointer;\r\n}", "" ]); const a = s }, 9669: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n/* -- zone widget */\r\n.monaco-editor .zone-widget .zone-widget-container.reference-zone-widget {\r\n\tborder-top-width: 1px;\r\n\tborder-bottom-width: 1px;\r\n}\r\n\r\n.monaco-editor .reference-zone-widget .inline {\r\n\tdisplay: inline-block;\r\n\tvertical-align: top;\r\n}\r\n\r\n.monaco-editor .reference-zone-widget .messages {\r\n\theight: 100%;\r\n\twidth: 100%;\r\n\ttext-align: center;\r\n\tpadding: 3em 0;\r\n}\r\n\r\n.monaco-editor .reference-zone-widget .ref-tree {\r\n\tline-height: 23px;\r\n}\r\n\r\n.monaco-editor .reference-zone-widget .ref-tree .reference {\r\n\ttext-overflow: ellipsis;\r\n\toverflow: hidden;\r\n}\r\n\r\n.monaco-editor .reference-zone-widget .ref-tree .reference-file {\r\n\tdisplay: inline-flex;\r\n\twidth: 100%;\r\n\theight: 100%;\r\n}\r\n\r\n.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .selected .reference-file {\r\n\tcolor: inherit !important;\r\n}\r\n\r\n.monaco-editor .reference-zone-widget .ref-tree .reference-file .count {\r\n\tmargin-right: 12px;\r\n\tmargin-left: auto;\r\n}\r\n\r\n/* High Contrast Theming */\r\n\r\n.monaco-editor.hc-black .reference-zone-widget .ref-tree .reference-file {\r\n\tfont-weight: bold;\r\n}\r\n", "" ]); const a = s }, 3975: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-editor .suggest-preview-additional-widget {\r\n\twhite-space: nowrap;\r\n}\r\n\r\n.monaco-editor .suggest-preview-additional-widget .content-spacer {\r\n\tcolor: transparent;\r\n\twhite-space: pre;\r\n}\r\n\r\n.monaco-editor .suggest-preview-additional-widget .button {\r\n\tdisplay: inline-block;\r\n\tcursor: pointer;\r\n\ttext-decoration: underline;\r\n\ttext-underline-position: under;\r\n}\r\n\r\n.monaco-editor .ghost-text-hidden {\r\n\topacity: 0;\r\n\tfont-size: 0;\r\n}\r\n\r\n.monaco-editor .ghost-text-decoration-preview {\r\n\tfont-style: italic;\r\n}\r\n", "" ]); const a = s }, 7854: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n.monaco-editor .detected-link,\r\n.monaco-editor .detected-link-active {\r\n\ttext-decoration: underline;\r\n\ttext-underline-position: under;\r\n}\r\n\r\n.monaco-editor .detected-link-active {\r\n\tcursor: pointer;\r\n}\r\n", "" ]); const a = s }, 1356: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-editor .monaco-editor-overlaymessage {\r\n\tpadding-bottom: 8px;\r\n\tz-index: 10000;\r\n}\r\n\r\n.monaco-editor .monaco-editor-overlaymessage.below {\r\n\tpadding-bottom: 0;\r\n\tpadding-top: 8px;\r\n\tz-index: 10000;\r\n}\r\n\r\n@keyframes fadeIn {\r\n\tfrom { opacity: 0; }\r\n\tto { opacity: 1; }\r\n}\r\n.monaco-editor .monaco-editor-overlaymessage.fadeIn {\r\n\tanimation: fadeIn 150ms ease-out;\r\n}\r\n\r\n@keyframes fadeOut {\r\n\tfrom { opacity: 1; }\r\n\tto { opacity: 0; }\r\n}\r\n.monaco-editor .monaco-editor-overlaymessage.fadeOut {\r\n\tanimation: fadeOut 100ms ease-out;\r\n}\r\n\r\n.monaco-editor .monaco-editor-overlaymessage .message {\r\n\tpadding: 1px 4px;\r\n}\r\n\r\n.monaco-editor .monaco-editor-overlaymessage .anchor {\r\n\twidth: 0 !important;\r\n\theight: 0 !important;\r\n\tborder-color: transparent;\r\n\tborder-style: solid;\r\n\tz-index: 1000;\r\n\tborder-width: 8px;\r\n\tposition: absolute;\r\n}\r\n\r\n.monaco-editor .monaco-editor-overlaymessage:not(.below) .anchor.top,\r\n.monaco-editor .monaco-editor-overlaymessage.below .anchor.below {\r\n\tdisplay: none;\r\n}\r\n\r\n.monaco-editor .monaco-editor-overlaymessage.below .anchor.top {\r\n\tdisplay: inherit;\r\n\ttop: -8px;\r\n}\r\n", "" ]); const a = s }, 2265: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-editor .parameter-hints-widget {\r\n\tz-index: 10;\r\n\tdisplay: flex;\r\n\tflex-direction: column;\r\n\tline-height: 1.5em;\r\n}\r\n\r\n.monaco-editor .parameter-hints-widget > .phwrapper {\r\n\tmax-width: 440px;\r\n\tdisplay: flex;\r\n\tflex-direction: row;\r\n}\r\n\r\n.monaco-editor .parameter-hints-widget.multiple {\r\n\tmin-height: 3.3em;\r\n\tpadding: 0;\r\n}\r\n\r\n.monaco-editor .parameter-hints-widget.visible {\r\n\ttransition: left .05s ease-in-out;\r\n}\r\n\r\n.monaco-editor .parameter-hints-widget p,\r\n.monaco-editor .parameter-hints-widget ul {\r\n\tmargin: 8px 0;\r\n}\r\n\r\n.monaco-editor .parameter-hints-widget .monaco-scrollable-element,\r\n.monaco-editor .parameter-hints-widget .body {\r\n\tdisplay: flex;\r\n\tflex: 1;\r\n\tflex-direction: column;\r\n\tmin-height: 100%;\r\n}\r\n\r\n.monaco-editor .parameter-hints-widget .signature {\r\n\tpadding: 4px 5px;\r\n}\r\n\r\n.monaco-editor .parameter-hints-widget .docs {\r\n\tpadding: 0 10px 0 5px;\r\n\twhite-space: pre-wrap;\r\n}\r\n\r\n.monaco-editor .parameter-hints-widget .docs.empty {\r\n\tdisplay: none;\r\n}\r\n\r\n.monaco-editor .parameter-hints-widget .docs .markdown-docs {\r\n\twhite-space: initial;\r\n}\r\n\r\n.monaco-editor .parameter-hints-widget .docs .markdown-docs code {\r\n\tfont-family: var(--monaco-monospace-font);\r\n}\r\n\r\n.monaco-editor .parameter-hints-widget .docs .code {\r\n\twhite-space: pre-wrap;\r\n}\r\n\r\n.monaco-editor .parameter-hints-widget .docs code {\r\n\tborder-radius: 3px;\r\n\tpadding: 0 0.4em;\r\n}\r\n\r\n.monaco-editor .parameter-hints-widget .controls {\r\n\tdisplay: none;\r\n\tflex-direction: column;\r\n\talign-items: center;\r\n\tmin-width: 22px;\r\n\tjustify-content: flex-end;\r\n}\r\n\r\n.monaco-editor .parameter-hints-widget.multiple .controls {\r\n\tdisplay: flex;\r\n\tpadding: 0 2px;\r\n}\r\n\r\n.monaco-editor .parameter-hints-widget.multiple .button {\r\n\twidth: 16px;\r\n\theight: 16px;\r\n\tbackground-repeat: no-repeat;\r\n\tcursor: pointer;\r\n}\r\n\r\n.monaco-editor .parameter-hints-widget .button.previous {\r\n\tbottom: 24px;\r\n}\r\n\r\n.monaco-editor .parameter-hints-widget .overloads {\r\n\ttext-align: center;\r\n\theight: 12px;\r\n\tline-height: 12px;\r\n\topacity: 0.5;\r\n\tfont-family: var(--monaco-monospace-font);\r\n}\r\n\r\n.monaco-editor .parameter-hints-widget .signature .parameter.active {\r\n\tfont-weight: bold;\r\n\ttext-decoration: underline;\r\n}\r\n\r\n.monaco-editor .parameter-hints-widget .documentation-parameter > .parameter {\r\n\tfont-weight: bold;\r\n\tmargin-right: 0.5em;\r\n}\r\n", "" ]); const a = s }, 1283: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-editor .peekview-widget .head {\r\n\tbox-sizing: border-box;\r\n\tdisplay: flex;\r\n}\r\n\r\n.monaco-editor .peekview-widget .head .peekview-title {\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tfont-size: 13px;\r\n\tmargin-left: 20px;\r\n\tmin-width: 0;\r\n}\r\n\r\n.monaco-editor .peekview-widget .head .peekview-title.clickable {\r\n\tcursor: pointer;\r\n}\r\n\r\n.monaco-editor .peekview-widget .head .peekview-title .dirname:not(:empty) {\r\n\tfont-size: 0.9em;\r\n\tmargin-left: 0.5em;\r\n}\r\n\r\n.monaco-editor .peekview-widget .head .peekview-title .meta {\r\n\twhite-space: nowrap;\r\n}\r\n\r\n.monaco-editor .peekview-widget .head .peekview-title .dirname {\r\n\twhite-space: nowrap;\r\n}\r\n\r\n.monaco-editor .peekview-widget .head .peekview-title .filename {\r\n\toverflow: hidden;\r\n\ttext-overflow: ellipsis;\r\n\twhite-space: nowrap;\r\n}\r\n\r\n.monaco-editor .peekview-widget .head .peekview-title .meta:not(:empty)::before {\r\n\tcontent: '-';\r\n\tpadding: 0 0.3em;\r\n}\r\n\r\n.monaco-editor .peekview-widget .head .peekview-actions {\r\n\tflex: 1;\r\n\ttext-align: right;\r\n\tpadding-right: 2px;\r\n}\r\n\r\n.monaco-editor .peekview-widget .head .peekview-actions > .monaco-action-bar {\r\n\tdisplay: inline-block;\r\n}\r\n\r\n.monaco-editor .peekview-widget .head .peekview-actions > .monaco-action-bar,\r\n.monaco-editor .peekview-widget .head .peekview-actions > .monaco-action-bar > .actions-container {\r\n\theight: 100%;\r\n}\r\n\r\n.monaco-editor .peekview-widget > .body {\r\n\tborder-top: 1px solid;\r\n\tposition: relative;\r\n}\r\n\r\n.monaco-editor .peekview-widget .head .peekview-title .codicon {\r\n\tmargin-right: 4px;\r\n}\r\n\r\n.monaco-editor .peekview-widget .monaco-list .monaco-list-row.focused .codicon {\r\n\tcolor: inherit !important;\r\n}\r\n", "" ]); const a = s }, 7113: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-editor .rename-box {\r\n\tz-index: 100;\r\n\tcolor: inherit;\r\n}\r\n\r\n.monaco-editor .rename-box.preview {\r\n\tpadding: 3px 3px 0 3px;\r\n}\r\n\r\n.monaco-editor .rename-box .rename-input {\r\n\tpadding: 3px;\r\n\twidth: calc(100% - 6px);\r\n}\r\n\r\n.monaco-editor .rename-box .rename-label {\r\n\tdisplay: none;\r\n\topacity: .8;\r\n}\r\n\r\n.monaco-editor .rename-box.preview .rename-label {\r\n\tdisplay: inherit;\r\n}\r\n", "" ]); const a = s }, 8894: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-editor .snippet-placeholder {\r\n\tmin-width: 2px;\r\n\toutline-style: solid;\r\n\toutline-width: 1px;\r\n}\r\n\r\n.monaco-editor .finish-snippet-placeholder {\r\n\toutline-style: solid;\r\n\toutline-width: 1px;\r\n}\r\n", "" ]); const a = s }, 36: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n/* Suggest widget*/\r\n\r\n.monaco-editor .suggest-widget {\r\n\twidth: 430px;\r\n\tz-index: 40;\r\n\tdisplay: flex;\r\n\tflex-direction: column;\r\n}\r\n\r\n.monaco-editor .suggest-widget.message {\r\n\tflex-direction: row;\r\n\talign-items: center;\r\n}\r\n\r\n.monaco-editor .suggest-widget,\r\n.monaco-editor .suggest-details {\r\n\tflex: 0 1 auto;\r\n\twidth: 100%;\r\n\tborder-style: solid;\r\n\tborder-width: 1px;\r\n}\r\n\r\n.monaco-editor.hc-black .suggest-widget,\r\n.monaco-editor.hc-black .suggest-details {\r\n\tborder-width: 2px;\r\n}\r\n\r\n/* Styles for status bar part */\r\n\r\n\r\n.monaco-editor .suggest-widget .suggest-status-bar {\r\n\tbox-sizing: border-box;\r\n\tdisplay: none;\r\n\tflex-flow: row nowrap;\r\n\tjustify-content: space-between;\r\n\twidth: 100%;\r\n\tfont-size: 80%;\r\n\tpadding: 0 4px 0 4px;\r\n\tborder-top: 1px solid transparent;\r\n\toverflow: hidden;\r\n}\r\n\r\n.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar {\r\n\tdisplay: flex;\r\n}\r\n\r\n.monaco-editor .suggest-widget .suggest-status-bar .left {\r\n\tpadding-right: 8px;\r\n}\r\n\r\n.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-label {\r\n\topacity: 0.5;\r\n\tcolor: inherit;\r\n}\r\n\r\n.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label {\r\n\tmargin-right: 0;\r\n}\r\n\r\n.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label::after {\r\n\tcontent: ', ';\r\n\tmargin-right: 0.3em;\r\n}\r\n\r\n.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row>.contents>.main>.right>.readMore,\r\n.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore {\r\n\tdisplay: none;\r\n}\r\n\r\n.monaco-editor .suggest-widget.with-status-bar:not(.docs-side) .monaco-list .monaco-list-row:hover>.contents>.main>.right.can-expand-details>.details-label {\r\n\twidth: 100%;\r\n}\r\n\r\n/* Styles for Message element for when widget is loading or is empty */\r\n\r\n.monaco-editor .suggest-widget>.message {\r\n\tpadding-left: 22px;\r\n}\r\n\r\n/** Styles for the list element **/\r\n\r\n.monaco-editor .suggest-widget>.tree {\r\n\theight: 100%;\r\n\twidth: 100%;\r\n}\r\n\r\n.monaco-editor .suggest-widget .monaco-list {\r\n\tuser-select: none;\r\n\t-webkit-user-select: none;\r\n\t-ms-user-select: none;\r\n}\r\n\r\n/** Styles for each row in the list element **/\r\n\r\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row {\r\n\tdisplay: flex;\r\n\t-mox-box-sizing: border-box;\r\n\tbox-sizing: border-box;\r\n\tpadding-right: 10px;\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: 2px 2px;\r\n\twhite-space: nowrap;\r\n\tcursor: pointer;\r\n\ttouch-action: none;\r\n}\r\n\r\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents {\r\n\tflex: 1;\r\n\theight: 100%;\r\n\toverflow: hidden;\r\n\tpadding-left: 2px;\r\n}\r\n\r\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main {\r\n\tdisplay: flex;\r\n\toverflow: hidden;\r\n\ttext-overflow: ellipsis;\r\n\twhite-space: pre;\r\n\tjustify-content: space-between;\r\n}\r\n\r\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left, .monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right {\r\n\tdisplay: flex;\r\n}\r\n\r\n.monaco-editor .suggest-widget:not(.frozen) .monaco-highlighted-label .highlight {\r\n\tfont-weight: bold;\r\n}\r\n\r\n/** ReadMore Icon styles **/\r\n\r\n.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close,\r\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore::before {\r\n\tcolor: inherit;\r\n\topacity: 1;\r\n\tfont-size: 14px;\r\n\tcursor: pointer;\r\n}\r\n\r\n.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close {\r\n\tposition: absolute;\r\n\ttop: 6px;\r\n\tright: 2px;\r\n}\r\n\r\n.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close:hover,\r\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:hover {\r\n\topacity: 1;\r\n}\r\n\r\n/** signature, qualifier, type/details opacity **/\r\n\r\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label {\r\n\topacity: 0.7;\r\n}\r\n\r\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.signature-label {\r\n\toverflow: hidden;\r\n\ttext-overflow: ellipsis;\r\n\topacity: 0.6;\r\n}\r\n\r\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.qualifier-label {\r\n\tmargin-left: 12px;\r\n\topacity: 0.4;\r\n\tfont-size: 85%;\r\n\tline-height: initial;\r\n\ttext-overflow: ellipsis;\r\n\toverflow: hidden;\r\n\talign-self: center;\r\n}\r\n\r\n/** Type Info and icon next to the label in the focused completion item **/\r\n\r\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label {\r\n\tfont-size: 85%;\r\n\tmargin-left: 1.1em;\r\n\toverflow: hidden;\r\n\ttext-overflow: ellipsis;\r\n\twhite-space: nowrap;\r\n}\r\n\r\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label>.monaco-tokenized-source {\r\n\tdisplay: inline;\r\n}\r\n\r\n/** Details: if using CompletionItem#details, show on focus **/\r\n\r\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label {\r\n\tdisplay: none;\r\n}\r\n\r\n.monaco-editor .suggest-widget:not(.shows-details) .monaco-list .monaco-list-row.focused>.contents>.main>.right>.details-label {\r\n\tdisplay: inline;\r\n}\r\n\r\n/** Details: if using CompletionItemLabel#details, always show **/\r\n\r\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.right>.details-label,\r\n.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row.focused:not(.string-label)>.contents>.main>.right>.details-label {\r\n\tdisplay: inline;\r\n}\r\n\r\n/** Ellipsis on hover **/\r\n\r\n.monaco-editor .suggest-widget:not(.docs-side) .monaco-list .monaco-list-row:hover>.contents>.main>.right.can-expand-details>.details-label {\r\n\twidth: calc(100% - 26px);\r\n}\r\n\r\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left {\r\n\tflex-shrink: 1;\r\n\tflex-grow: 1;\r\n\toverflow: hidden;\r\n}\r\n\r\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.monaco-icon-label {\r\n\tflex-shrink: 0;\r\n}\r\n\r\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.left>.monaco-icon-label {\r\n\tmax-width: 100%;\r\n}\r\n\r\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.left>.monaco-icon-label {\r\n\tflex-shrink: 1;\r\n}\r\n\r\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right {\r\n\toverflow: hidden;\r\n\tflex-shrink: 4;\r\n\tmax-width: 70%;\r\n}\r\n\r\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore {\r\n\tdisplay: inline-block;\r\n\tposition: absolute;\r\n\tright: 10px;\r\n\twidth: 18px;\r\n\theight: 18px;\r\n\tvisibility: hidden;\r\n}\r\n\r\n/** Do NOT display ReadMore when docs is side/below **/\r\n\r\n.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row>.contents>.main>.right>.readMore, .monaco-editor .suggest-widget.docs-below .monaco-list .monaco-list-row>.contents>.main>.right>.readMore {\r\n\tdisplay: none !important;\r\n}\r\n\r\n/** Do NOT display ReadMore when using plain CompletionItemLabel (details/documentation might not be resolved) **/\r\n\r\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.right>.readMore {\r\n\tdisplay: none;\r\n}\r\n\r\n/** Focused item can show ReadMore, but can't when docs is side/below **/\r\n\r\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore {\r\n\tdisplay: inline-block;\r\n}\r\n\r\n.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row>.contents>.main>.right>.readMore,\r\n.monaco-editor .suggest-widget.docs-below .monaco-list .monaco-list-row>.contents>.main>.right>.readMore {\r\n\tdisplay: none;\r\n}\r\n\r\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row:hover>.contents>.main>.right>.readMore {\r\n\tvisibility: visible;\r\n}\r\n\r\n/** Styles for each row in the list **/\r\n\r\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated {\r\n\topacity: 0.66;\r\n\ttext-decoration: unset;\r\n}\r\n\r\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated>.monaco-icon-label-container>.monaco-icon-name-container {\r\n\ttext-decoration: line-through;\r\n}\r\n\r\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label::before {\r\n\theight: 100%;\r\n}\r\n\r\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon {\r\n\tdisplay: block;\r\n\theight: 16px;\r\n\twidth: 16px;\r\n\tmargin-left: 2px;\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-size: 80%;\r\n\tbackground-position: center;\r\n}\r\n\r\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.hide {\r\n\tdisplay: none;\r\n}\r\n\r\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .suggest-icon {\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tmargin-right: 4px;\r\n}\r\n\r\n.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 {\r\n\tdisplay: none;\r\n}\r\n\r\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.customcolor .colorspan {\r\n\tmargin: 0 0 0 0.3em;\r\n\tborder: 0.1em solid #000;\r\n\twidth: 0.7em;\r\n\theight: 0.7em;\r\n\tdisplay: inline-block;\r\n}\r\n\r\n/** Styles for the docs of the completion item in focus **/\r\n\r\n.monaco-editor .suggest-details-container {\r\n\tz-index: 41;\r\n}\r\n\r\n.monaco-editor .suggest-details {\r\n\tdisplay: flex;\r\n\tflex-direction: column;\r\n\tcursor: default;\r\n}\r\n\r\n.monaco-editor .suggest-details.no-docs {\r\n\tdisplay: none;\r\n}\r\n\r\n.monaco-editor .suggest-details>.monaco-scrollable-element {\r\n\tflex: 1;\r\n}\r\n\r\n.monaco-editor .suggest-details>.monaco-scrollable-element>.body {\r\n\tbox-sizing: border-box;\r\n\theight: 100%;\r\n\twidth: 100%;\r\n}\r\n\r\n.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type {\r\n\tflex: 2;\r\n\toverflow: hidden;\r\n\ttext-overflow: ellipsis;\r\n\topacity: 0.7;\r\n\twhite-space: pre;\r\n\tmargin: 0 24px 0 0;\r\n\tpadding: 4px 0 12px 5px;\r\n}\r\n\r\n.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type.auto-wrap {\r\n\twhite-space: normal;\r\n\tword-break: break-all;\r\n}\r\n\r\n\r\n.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs {\r\n\tmargin: 0;\r\n\tpadding: 4px 5px;\r\n\twhite-space: pre-wrap;\r\n}\r\n\r\n.monaco-editor .suggest-details.no-type>.monaco-scrollable-element>.body>.docs {\r\n\tmargin-right: 24px;\r\n}\r\n\r\n.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs {\r\n\tpadding: 0;\r\n\twhite-space: initial;\r\n\tmin-height: calc(1rem + 8px);\r\n}\r\n\r\n.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div,\r\n.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>span:not(:empty) {\r\n\tpadding: 4px 5px;\r\n}\r\n\r\n.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:first-child {\r\n\tmargin-top: 0;\r\n}\r\n\r\n.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:last-child {\r\n\tmargin-bottom: 0;\r\n}\r\n\r\n.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs .code {\r\n\twhite-space: pre-wrap;\r\n\tword-wrap: break-word;\r\n}\r\n\r\n.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .codicon {\r\n\tvertical-align: sub;\r\n}\r\n\r\n.monaco-editor .suggest-details>.monaco-scrollable-element>.body>p:empty {\r\n\tdisplay: none;\r\n}\r\n\r\n.monaco-editor .suggest-details code {\r\n\tborder-radius: 3px;\r\n\tpadding: 0 0.4em;\r\n}\r\n\r\n.monaco-editor .suggest-details ul {\r\n\tpadding-left: 20px;\r\n}\r\n\r\n.monaco-editor .suggest-details ol {\r\n\tpadding-left: 20px;\r\n}\r\n\r\n.monaco-editor .suggest-details p code {\r\n\tfont-family: var(--monaco-monospace-font);\r\n}\r\n", "" ]); const a = s }, 6458: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n.monaco-editor .zone-widget {\r\n\tposition: absolute;\r\n\tz-index: 10;\r\n}\r\n\r\n\r\n.monaco-editor .zone-widget .zone-widget-container {\r\n\tborder-top-style: solid;\r\n\tborder-bottom-style: solid;\r\n\tborder-top-width: 0;\r\n\tborder-bottom-width: 0;\r\n\tposition: relative;\r\n}\r\n", "" ]); const a = s }, 8844: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-editor .accessibilityHelpWidget {\r\n\tpadding: 10px;\r\n\tvertical-align: middle;\r\n\toverflow: scroll;\r\n}", "" ]); const a = s }, 1556: (e, t, i) => { "use strict"; i.d(t, { Z: () => p }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r), a = i(1667), l = i.n(a), d = new URL(i(2766), i.b), c = new URL(i(1568), i.b), h = s()(o()), u = l()(d), g = l()(c); h.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-editor .iPadShowKeyboard {\r\n\twidth: 58px;\r\n\tmin-width: 0;\r\n\theight: 36px;\r\n\tmin-height: 0;\r\n\tmargin: 0;\r\n\tpadding: 0;\r\n\tposition: absolute;\r\n\tresize: none;\r\n\toverflow: hidden;\r\n\tbackground: url(" + u + ") center center no-repeat;\r\n\tborder: 4px solid #F6F6F6;\r\n\tborder-radius: 4px;\r\n}\r\n\r\n.monaco-editor.vs-dark .iPadShowKeyboard {\r\n\tbackground: url(" + g + ") center center no-repeat;\r\n\tborder: 4px solid #252526;\r\n}", "" ]); const p = h }, 5189: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-editor .tokens-inspect-widget {\r\n\tz-index: 50;\r\n\tuser-select: text;\r\n\t-webkit-user-select: text;\r\n\t-ms-user-select: text;\r\n\tpadding: 10px;\r\n}\r\n\r\n.tokens-inspect-separator {\r\n\theight: 1px;\r\n\tborder: 0;\r\n}\r\n\r\n.monaco-editor .tokens-inspect-widget .tm-token {\r\n\tfont-family: var(--monaco-monospace-font);\r\n}\r\n\r\n.monaco-editor .tokens-inspect-widget .tm-token-length {\r\n\tfont-weight: normal;\r\n\tfont-size: 60%;\r\n\tfloat: right;\r\n}\r\n\r\n.monaco-editor .tokens-inspect-widget .tm-metadata-table {\r\n\twidth: 100%;\r\n}\r\n\r\n.monaco-editor .tokens-inspect-widget .tm-metadata-value {\r\n\tfont-family: var(--monaco-monospace-font);\r\n\ttext-align: right;\r\n}\r\n\r\n.monaco-editor .tokens-inspect-widget .tm-token-type {\r\n\tfont-family: var(--monaco-monospace-font);\r\n}\r\n", "" ]); const a = s }, 3198: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.quick-input-widget {\r\n\tfont-size: 13px;\r\n}\r\n\r\n.quick-input-widget .monaco-highlighted-label .highlight,\r\n.quick-input-widget .monaco-highlighted-label .highlight {\r\n\tcolor: #0066BF;\r\n}\r\n\r\n.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight,\r\n.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight {\r\n\tcolor: #9DDDFF;\r\n}\r\n\r\n.vs-dark .quick-input-widget .monaco-highlighted-label .highlight,\r\n.vs-dark .quick-input-widget .monaco-highlighted-label .highlight {\r\n\tcolor: #0097fb;\r\n}\r\n\r\n.hc-black .quick-input-widget .monaco-highlighted-label .highlight,\r\n.hc-black .quick-input-widget .monaco-highlighted-label .highlight {\r\n\tcolor: #F38518;\r\n}\r\n\r\n.monaco-keybinding > .monaco-keybinding-key {\r\n\tbackground-color: rgba(221, 221, 221, 0.4);\r\n\tborder: solid 1px rgba(204, 204, 204, 0.4);\r\n\tborder-bottom-color: rgba(187, 187, 187, 0.4);\r\n\tbox-shadow: inset 0 -1px 0 rgba(187, 187, 187, 0.4);\r\n\tcolor: #555;\r\n}\r\n\r\n.hc-black .monaco-keybinding > .monaco-keybinding-key {\r\n\tbackground-color: transparent;\r\n\tborder: solid 1px rgb(111, 195, 223);\r\n\tbox-shadow: none;\r\n\tcolor: #fff;\r\n}\r\n\r\n.vs-dark .monaco-keybinding > .monaco-keybinding-key {\r\n\tbackground-color: rgba(128, 128, 128, 0.17);\r\n\tborder: solid 1px rgba(51, 51, 51, 0.6);\r\n\tborder-bottom-color: rgba(68, 68, 68, 0.6);\r\n\tbox-shadow: inset 0 -1px 0 rgba(68, 68, 68, 0.6);\r\n\tcolor: #ccc;\r\n}\r\n", "" ]); const a = s }, 643: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, '/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n\r\n/* Default standalone editor fonts */\r\n.monaco-editor {\r\n\tfont-family: -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI", "HelveticaNeue-Light", system-ui, "Ubuntu", "Droid Sans", sans-serif;\r\n\t--monaco-monospace-font: "SF Mono", Monaco, Menlo, Consolas, "Ubuntu Mono", "Liberation Mono", "DejaVu Sans Mono", "Courier New", monospace;\r\n}\r\n\r\n.monaco-menu .monaco-action-bar.vertical .action-item .action-menu-item:focus .action-label {\r\n\tstroke-width: 1.2px;\r\n}\r\n\r\n.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,\r\n.monaco-editor.hc-black .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label {\r\n\tstroke-width: 1.2px;\r\n}\r\n\r\n.monaco-hover p {\r\n\tmargin: 0;\r\n}\r\n\r\n/* See https://github.com/microsoft/monaco-editor/issues/2168#issuecomment-780078600 */\r\n.monaco-aria-container {\r\n\tposition: absolute !important;\r\n\ttop: 0; /* avoid being placed underneath a sibling element */\r\n\theight: 1px;\r\n\twidth: 1px;\r\n\tmargin: -1px;\r\n\toverflow: hidden;\r\n\tpadding: 0;\r\n\tclip: rect(1px, 1px, 1px, 1px);\r\n\tclip-path: inset(50%);\r\n}\r\n\r\n/* The hc-black theme is already high contrast optimized */\r\n.monaco-editor.hc-black {\r\n\t-ms-high-contrast-adjust: none;\r\n}\r\n/* In case the browser goes into high contrast mode and the editor is not configured with the hc-black theme */\r\n@media screen and (-ms-high-contrast:active) {\r\n\r\n\t/* current line highlight */\r\n\t.monaco-editor.vs .view-overlays .current-line,\r\n\t.monaco-editor.vs-dark .view-overlays .current-line {\r\n\t\tborder-color: windowtext !important;\r\n\t\tborder-left: 0;\r\n\t\tborder-right: 0;\r\n\t}\r\n\r\n\t/* view cursors */\r\n\t.monaco-editor.vs .cursor,\r\n\t.monaco-editor.vs-dark .cursor {\r\n\t\tbackground-color: windowtext !important;\r\n\t}\r\n\t/* dnd target */\r\n\t.monaco-editor.vs .dnd-target,\r\n\t.monaco-editor.vs-dark .dnd-target {\r\n\t\tborder-color: windowtext !important;\r\n\t}\r\n\r\n\t/* selected text background */\r\n\t.monaco-editor.vs .selected-text,\r\n\t.monaco-editor.vs-dark .selected-text {\r\n\t\tbackground-color: highlight !important;\r\n\t}\r\n\r\n\t/* allow the text to have a transparent background. */\r\n\t.monaco-editor.vs .view-line,\r\n\t.monaco-editor.vs-dark .view-line {\r\n\t\t-ms-high-contrast-adjust: none;\r\n\t}\r\n\r\n\t/* text color */\r\n\t.monaco-editor.vs .view-line span,\r\n\t.monaco-editor.vs-dark .view-line span {\r\n\t\tcolor: windowtext !important;\r\n\t}\r\n\t/* selected text color */\r\n\t.monaco-editor.vs .view-line span.inline-selected-text,\r\n\t.monaco-editor.vs-dark .view-line span.inline-selected-text {\r\n\t\tcolor: highlighttext !important;\r\n\t}\r\n\r\n\t/* allow decorations */\r\n\t.monaco-editor.vs .view-overlays,\r\n\t.monaco-editor.vs-dark .view-overlays {\r\n\t\t-ms-high-contrast-adjust: none;\r\n\t}\r\n\r\n\t/* various decorations */\r\n\t.monaco-editor.vs .selectionHighlight,\r\n\t.monaco-editor.vs-dark .selectionHighlight,\r\n\t.monaco-editor.vs .wordHighlight,\r\n\t.monaco-editor.vs-dark .wordHighlight,\r\n\t.monaco-editor.vs .wordHighlightStrong,\r\n\t.monaco-editor.vs-dark .wordHighlightStrong,\r\n\t.monaco-editor.vs .reference-decoration,\r\n\t.monaco-editor.vs-dark .reference-decoration {\r\n\t\tborder: 2px dotted highlight !important;\r\n\t\tbackground: transparent !important;\r\n\t\tbox-sizing: border-box;\r\n\t}\r\n\t.monaco-editor.vs .rangeHighlight,\r\n\t.monaco-editor.vs-dark .rangeHighlight {\r\n\t\tbackground: transparent !important;\r\n\t\tborder: 1px dotted activeborder !important;\r\n\t\tbox-sizing: border-box;\r\n\t}\r\n\t.monaco-editor.vs .bracket-match,\r\n\t.monaco-editor.vs-dark .bracket-match {\r\n\t\tborder-color: windowtext !important;\r\n\t\tbackground: transparent !important;\r\n\t}\r\n\r\n\t/* find widget */\r\n\t.monaco-editor.vs .findMatch,\r\n\t.monaco-editor.vs-dark .findMatch,\r\n\t.monaco-editor.vs .currentFindMatch,\r\n\t.monaco-editor.vs-dark .currentFindMatch {\r\n\t\tborder: 2px dotted activeborder !important;\r\n\t\tbackground: transparent !important;\r\n\t\tbox-sizing: border-box;\r\n\t}\r\n\t.monaco-editor.vs .find-widget,\r\n\t.monaco-editor.vs-dark .find-widget {\r\n\t\tborder: 1px solid windowtext;\r\n\t}\r\n\r\n\t/* list - used by suggest widget */\r\n\t.monaco-editor.vs .monaco-list .monaco-list-row,\r\n\t.monaco-editor.vs-dark .monaco-list .monaco-list-row {\r\n\t\t-ms-high-contrast-adjust: none;\r\n\t\tcolor: windowtext !important;\r\n\t}\r\n\t.monaco-editor.vs .monaco-list .monaco-list-row.focused,\r\n\t.monaco-editor.vs-dark .monaco-list .monaco-list-row.focused {\r\n\t\tcolor: highlighttext !important;\r\n\t\tbackground-color: highlight !important;\r\n\t}\r\n\t.monaco-editor.vs .monaco-list .monaco-list-row:hover,\r\n\t.monaco-editor.vs-dark .monaco-list .monaco-list-row:hover {\r\n\t\tbackground: transparent !important;\r\n\t\tborder: 1px solid highlight;\r\n\t\tbox-sizing: border-box;\r\n\t}\r\n\r\n\t/* scrollbars */\r\n\t.monaco-editor.vs .monaco-scrollable-element > .scrollbar,\r\n\t.monaco-editor.vs-dark .monaco-scrollable-element > .scrollbar {\r\n\t\t-ms-high-contrast-adjust: none;\r\n\t\tbackground: background !important;\r\n\t\tborder: 1px solid windowtext;\r\n\t\tbox-sizing: border-box;\r\n\t}\r\n\t.monaco-editor.vs .monaco-scrollable-element > .scrollbar > .slider,\r\n\t.monaco-editor.vs-dark .monaco-scrollable-element > .scrollbar > .slider {\r\n\t\tbackground: windowtext !important;\r\n\t}\r\n\t.monaco-editor.vs .monaco-scrollable-element > .scrollbar > .slider:hover,\r\n\t.monaco-editor.vs-dark .monaco-scrollable-element > .scrollbar > .slider:hover {\r\n\t\tbackground: highlight !important;\r\n\t}\r\n\t.monaco-editor.vs .monaco-scrollable-element > .scrollbar > .slider.active,\r\n\t.monaco-editor.vs-dark .monaco-scrollable-element > .scrollbar > .slider.active {\r\n\t\tbackground: highlight !important;\r\n\t}\r\n\r\n\t/* overview ruler */\r\n\t.monaco-editor.vs .decorationsOverviewRuler,\r\n\t.monaco-editor.vs-dark .decorationsOverviewRuler {\r\n\t\topacity: 0;\r\n\t}\r\n\r\n\t/* minimap */\r\n\t.monaco-editor.vs .minimap,\r\n\t.monaco-editor.vs-dark .minimap {\r\n\t\tdisplay: none;\r\n\t}\r\n\r\n\t/* squiggles */\r\n\t.monaco-editor.vs .squiggly-d-error,\r\n\t.monaco-editor.vs-dark .squiggly-d-error {\r\n\t\tbackground: transparent !important;\r\n\t\tborder-bottom: 4px double #E47777;\r\n\t}\r\n\t.monaco-editor.vs .squiggly-c-warning,\r\n\t.monaco-editor.vs-dark .squiggly-c-warning {\r\n\t\tborder-bottom: 4px double #71B771;\r\n\t}\r\n\t.monaco-editor.vs .squiggly-b-info,\r\n\t.monaco-editor.vs-dark .squiggly-b-info {\r\n\t\tborder-bottom: 4px double #71B771;\r\n\t}\r\n\t.monaco-editor.vs .squiggly-a-hint,\r\n\t.monaco-editor.vs-dark .squiggly-a-hint {\r\n\t\tborder-bottom: 4px double #6c6c6c;\r\n\t}\r\n\r\n\t/* contextmenu */\r\n\t.monaco-editor.vs .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,\r\n\t.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label {\r\n\t\t-ms-high-contrast-adjust: none;\r\n\t\tcolor: highlighttext !important;\r\n\t\tbackground-color: highlight !important;\r\n\t}\r\n\t.monaco-editor.vs .monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .action-label,\r\n\t.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .action-label {\r\n\t\t-ms-high-contrast-adjust: none;\r\n\t\tbackground: transparent !important;\r\n\t\tborder: 1px solid highlight;\r\n\t\tbox-sizing: border-box;\r\n\t}\r\n\r\n\t/* diff editor */\r\n\t.monaco-diff-editor.vs .diffOverviewRuler,\r\n\t.monaco-diff-editor.vs-dark .diffOverviewRuler {\r\n\t\tdisplay: none;\r\n\t}\r\n\t.monaco-editor.vs .line-insert,\r\n\t.monaco-editor.vs-dark .line-insert,\r\n\t.monaco-editor.vs .line-delete,\r\n\t.monaco-editor.vs-dark .line-delete {\r\n\t\tbackground: transparent !important;\r\n\t\tborder: 1px solid highlight !important;\r\n\t\tbox-sizing: border-box;\r\n\t}\r\n\t.monaco-editor.vs .char-insert,\r\n\t.monaco-editor.vs-dark .char-insert,\r\n\t.monaco-editor.vs .char-delete,\r\n\t.monaco-editor.vs-dark .char-delete {\r\n\t\tbackground: transparent !important;\r\n\t}\r\n}\r\n\r\n/*.monaco-editor.vs [tabindex="0"]:focus {\r\n\toutline: 1px solid rgba(0, 122, 204, 0.4);\r\n\toutline-offset: -1px;\r\n\topacity: 1 !important;\r\n}\r\n\r\n.monaco-editor.vs-dark [tabindex="0"]:focus {\r\n\toutline: 1px solid rgba(14, 99, 156, 0.6);\r\n\toutline-offset: -1px;\r\n\topacity: 1 !important;\r\n}*/\r\n', "" ]); const a = s }, 1854: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.monaco-action-bar .action-item.menu-entry .action-label.icon {\r\n\twidth: 16px;\r\n\theight: 16px;\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: 50%;\r\n\tbackground-size: 16px;\r\n}\r\n\r\n.monaco-action-bar .action-item.menu-entry .action-label {\r\n\tbackground-image: var(--menu-entry-icon-light);\r\n}\r\n\r\n.vs-dark .monaco-action-bar .action-item.menu-entry .action-label,\r\n.hc-black .monaco-action-bar .action-item.menu-entry .action-label {\r\n\tbackground-image: var(--menu-entry-icon-dark);\r\n}\r\n\r\n\r\n.monaco-dropdown-with-default {\r\n\tdisplay: flex !important;\r\n\tflex-direction: row;\r\n\tborder-radius: 5px;\r\n}\r\n\r\n.monaco-dropdown-with-default > .action-container > .action-label {\r\n\tmargin-right: 0;\r\n}\r\n\r\n.monaco-dropdown-with-default > .action-container.menu-entry > .action-label.icon {\r\n\twidth: 16px;\r\n\theight: 16px;\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: 50%;\r\n\tbackground-size: 16px;\r\n}\r\n\r\n.monaco-dropdown-with-default > .action-container.menu-entry > .action-label {\r\n\tbackground-image: var(--menu-entry-icon-light);\r\n}\r\n\r\n.vs-dark .monaco-dropdown-with-default > .action-container.menu-entry > .action-label,\r\n.hc-black .monaco-dropdown-with-default > .action-container.menu-entry > .action-label {\r\n\tbackground-image: var(--menu-entry-icon-dark);\r\n}\r\n\r\n.monaco-dropdown-with-default > .dropdown-action-container > .monaco-dropdown > .dropdown-label .codicon[class*='codicon-'] {\r\n\tfont-size: 12px;\r\n\tpadding-left: 0px;\r\n\tpadding-right: 0px;\r\n\tline-height: 16px;\r\n\tmargin-left: -3px;\r\n}\r\n\r\n.monaco-dropdown-with-default > .dropdown-action-container > .monaco-dropdown > .dropdown-label > .action-label {\r\n\tdisplay: block;\r\n\tbackground-size: 16px;\r\n\tbackground-position: center center;\r\n\tbackground-repeat: no-repeat;\r\n}\r\n", "" ]); const a = s }, 4932: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n.context-view .monaco-menu {\r\n\tmin-width: 130px;\r\n}\r\n\r\n", "" ]); const a = s }, 9087: (e, t, i) => { "use strict"; i.d(t, { Z: () => a }); var n = i(8081), o = i.n(n), r = i(3645), s = i.n(r)()(o()); s.push([e.id, "body {\n font-family: 'Source Sans Pro', Helvetica, Arial, sans-serif;\n margin: 0;\n background: #4795ff;\n color: #fff;\n}\n\na {\n text-decoration: none;\n color: inherit;\n}\n\n.container {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 100vw;\n height: 100vh;\n overflow: hidden;\n}\n\n.error {\n color: white;\n background-color: red;\n background-image: linear-gradient(-45deg, rgba(255, 255, 255, .2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .2) 50%, rgba(255, 255, 255, .2) 75%, transparent 75%, transparent);\n}\n\n.nav {\n box-sizing: border-box;\n width: 100%;\n flex-shrink: 0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 16px;\n z-index: 2;\n border-bottom: 1px solid #2c61a9;\n min-height: 52px;\n}\n\n.nav-group {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.nav-group:first-of-type {\n justify-content: flex-start;\n}\n\n.nav-group:last-of-type {\n justify-content: flex-end;\n}\n\n.brand {\n margin: 0 1ch;\n font-size: 24px;\n font-weight: 200;\n text-transform: uppercase;\n}\n\n.main {\n flex: 1;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n box-sizing: border-box;\n width: 100%;\n}\n\n.split {\n display: flex;\n flex: 1;\n width: 100%;\n overflow: hidden;\n}\n\n.button {\n border: none;\n background: none;\n cursor: pointer;\n padding: 0.5em 1em;\n display: flex;\n align-items: center;\n justify-content: center;\n color: inherit;\n font-size: inherit;\n transition: background-color 0.25s, transform 0.25s;\n background: #273e7c77;\n text-transform: uppercase;\n box-sizing: border-box;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n flex-shrink: 0;\n margin: 0 4px;\n line-height: 1;\n}\n\n.button:hover {\n background: #273e7c\n}\n\n.button:active {\n transform: translateY(2px);\n}\n\n.button:focus {\n outline: none;\n}\n\n.info-link {\n margin-left: 8px;\n}\n\n.info-icon {\n height: 32px;\n width: 32px;\n fill: currentColor;\n opacity: 0.75;\n}\n\n.info-icon:hover {\n opacity: 1;\n}\n\n.editor {\n flex: 1;\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\n.sidebar {\n display: flex;\n flex-direction: column;\n background: #444;\n color: white;\n max-width: min-content;\n}\n\n.files {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n.file {\n cursor: pointer;\n padding: 8px 16px;\n transition: background-color 0.25s;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n flex-shrink: 0;\n font-size: 90%;\n}\n\n.file:hover {\n background-color: #3168b380;\n}\n\n.file.selected {\n background-color: #3168b3;\n}\n\n.infobox {\n padding: 32px 64px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n border: 3px solid #000;\n cursor: pointer;\n transition: box-shadow 0.25s;\n font-size: 200%;\n box-shadow: 8px 8px 0 #00000077;\n min-height: 300px;\n}\n\n.infobox:hover {\n box-shadow: 8px 8px 0 #000000;\n}\n\n.infobox:focus {\n outline: none;\n}\n\n.error {\n color: white;\n background-color: red;\n background-image: linear-gradient(-45deg, rgba(255, 255, 255, .2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .2) 50%, rgba(255, 255, 255, .2) 75%, transparent 75%, transparent);\n}\n\n.message {\n padding: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n line-height: 1;\n}\n\n.monaco {\n flex: 1;\n}\n\n.hidden {\n display: none;\n}\n\n.filename {\n background: #4795ff;\n color: white;\n padding: 4px 16px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-shrink: 0;\n white-space: nowrap;\n min-height: 32px;\n}\n\n.narrow .filename {\n padding: 4px;\n}\n\n.filename-section {\n display: flex;\n align-items: center;\n overflow: hidden;\n flex-shrink: 0;\n}\n\n.filename-section-filename {\n flex: 1;\n justify-content: flex-start;\n}\n\n.filename-section-actions {\n justify-content: flex-end;\n}\n\n.selected-filename {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.button.reset {\n border: none;\n background: none;\n cursor: pointer;\n padding: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n text-transform: none;\n}\n\n.reset:focus {\n outline: none;\n}\n\n.logo {\n width: 32px;\n height: 32px;\n transition: width 0.25s, height 0.25s;\n}\n\n.header-section-file {\n flex: 1;\n overflow: hidden;\n}\n\n.download {\n background: #36b536;\n border: 1px solid white;\n}\n\n.download:hover {\n background: #16d41c;\n}\n\n.install {\n background: #273e7c00;\n}\n\n.install:hover {\n background: #273e7c77;\n}\n\n.toggle-preview {\n font-size: 90%;\n}\n\n.toggle-files {\n padding: 4px 8px;\n background: none;\n}\n\n.intro {\n text-shadow: 0 1px 1px #444;\n line-height: 1;\n}\n\n.intro .button {\n margin: 32px 0;\n}\n\n.extensions {\n font-size: 50%;\n margin-top: 16px;\n}\n\n.choose {\n font-size: 24px;\n margin-top: 24px;\n line-height: 1.2;\n}\n\n.preview {\n display: flex;\n flex: 1;\n background-color: #4795ff;\n background-image: linear-gradient(-45deg, rgba(255, 255, 255, .2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .2) 50%, rgba(255, 255, 255, .2) 75%, transparent 75%, transparent);\n overflow-y: auto;\n height: 100%;\n}\n\n.preview-image {\n max-width: 100%;\n margin: auto;\n}\n\n.filename-form {\n padding: 0 8px;\n display: flex;\n align-items: center;\n text-shadow: 0 1px 1px #444;\n overflow: hidden;\n}\n\n.narrow .filename-form {\n display: none;\n}\n\n.filename-input {\n background: none;\n color: inherit;\n font-size: inherit;\n border: 2px solid transparent;\n transition: border-color 0.25s;\n}\n\n.filename-input:focus {\n outline: none;\n border-bottom-color: white;\n}\n\n.gutter {\n flex-shrink: 0;\n cursor: col-resize;\n background: #4795ff;\n}\n\n.narrow [data-balloon-pos]::before,\n.narrow [data-balloon-pos]::after {\n display: none;\n}\n\n.waiting {\n display: none;\n}\n\n.fullscreen .waiting {\n display: flex;\n}\n\n.fullscreen .split {\n display: none;\n}\n\n.fullscreen .nav {\n border-bottom: none;\n}\n", "" ]); const a = s }, 3645: e => { "use strict"; e.exports = function(e) { var t = []; return t.toString = function() { return this.map((function(t) { var i = "", n = void 0 !== t[5]; return t[4] && (i += "@supports (".concat(t[4], ") {")), t[2] && (i += "@media ".concat(t[2], " {")), n && (i += "@layer".concat( t[5].length > 0 ? " ".concat(t[5]) : "", " {")), i += e(t), n && (i += "}"), t[2] && (i += "}"), t[4] && (i += "}"), i })).join("") }, t.i = function(e, i, n, o, r) { "string" == typeof e && (e = [ [null, e, void 0] ]); var s = {}; if (n) for (var a = 0; a < this.length; a++) { var l = this[a][0]; null != l && (s[l] = !0) } for (var d = 0; d < e.length; d++) { var c = [].concat(e[d]); n && s[c[0]] || (void 0 !== r && (void 0 === c[5] || (c[1] = "@layer".concat(c[5].length > 0 ? " ".concat(c[5]) : "", " {").concat( c[1], "}")), c[5] = r), i && (c[2] ? (c[1] = "@media ".concat(c[ 2], " {").concat(c[1], "}"), c[2] = i) : c[2] = i), o && (c[4] ? (c[1] = "@supports (".concat(c[4], ") {").concat(c[1], "}"), c[4] = o) : c[4] = "".concat(o)), t.push(c)) } }, t } }, 1667: e => { "use strict"; e.exports = function(e, t) { return t || (t = {}), e ? (e = String(e.__esModule ? e.default : e), /^['"].*['"]$/.test(e) && (e = e.slice(1, -1)), t.hash && (e += t.hash), /["'() \t\n]|(%20)/.test(e) || t.needQuotes ? '"'.concat(e.replace( /"/g, '\\"').replace(/\n/g, "\\n"), '"') : e) : e } }, 8081: e => { "use strict"; e.exports = function(e) { return e[1] } }, 7769: module => { "use strict"; const toBytes = e => [...e].map((e => e.charCodeAt(0))), xpiZipFilename = toBytes("META-INF/mozilla.rsa"), oxmlContentTypes = toBytes("[Content_Types].xml"), oxmlRels = toBytes("_rels/.rels"); function readUInt64LE(e, t = 0) { let i = e[t], n = 1, o = 0; for (; ++o < 8;) n *= 256, i += e[t + o] * n; return i } const fileType = e => { if (!(e instanceof Uint8Array || e instanceof ArrayBuffer || Buffer.isBuffer( e))) throw new TypeError( `Expected the \`input\` argument to be of type \`Uint8Array\` or \`Buffer\` or \`ArrayBuffer\`, got \`${typeof e}\`` ); const t = e instanceof Uint8Array ? e : new Uint8Array(e); if (!(t && t.length > 1)) return null; const i = (e, i) => { i = Object.assign({ offset: 0 }, i); for (let n = 0; n < e.length; n++) if (i.mask) { if (e[n] !== (i.mask[n] & t[n + i.offset])) return !1 } else if (e[n] !== t[n + i.offset]) return !1; return !0 }, n = (e, t) => i(toBytes(e), t); if (i([255, 216, 255])) return { ext: "jpg", mime: "image/jpeg" }; if (i([137, 80, 78, 71, 13, 10, 26, 10])) return { ext: "png", mime: "image/png" }; if (i([71, 73, 70])) return { ext: "gif", mime: "image/gif" }; if (i([87, 69, 66, 80], { offset: 8 })) return { ext: "webp", mime: "image/webp" }; if (i([70, 76, 73, 70])) return { ext: "flif", mime: "image/flif" }; if ((i([73, 73, 42, 0]) || i([77, 77, 0, 42])) && i([67, 82], { offset: 8 })) return { ext: "cr2", mime: "image/x-canon-cr2" }; if (i([73, 73, 42, 0]) || i([77, 77, 0, 42])) return { ext: "tif", mime: "image/tiff" }; if (i([66, 77])) return { ext: "bmp", mime: "image/bmp" }; if (i([73, 73, 188])) return { ext: "jxr", mime: "image/vnd.ms-photo" }; if (i([56, 66, 80, 83])) return { ext: "psd", mime: "image/vnd.adobe.photoshop" }; if (i([80, 75, 3, 4])) { if (i([109, 105, 109, 101, 116, 121, 112, 101, 97, 112, 112, 108, 105, 99, 97, 116, 105, 111, 110, 47, 101, 112, 117, 98, 43, 122, 105, 112 ], { offset: 30 })) return { ext: "epub", mime: "application/epub+zip" }; if (i(xpiZipFilename, { offset: 30 })) return { ext: "xpi", mime: "application/x-xpinstall" }; if (n("mimetypeapplication/vnd.oasis.opendocument.text", { offset: 30 })) return { ext: "odt", mime: "application/vnd.oasis.opendocument.text" }; if (n("mimetypeapplication/vnd.oasis.opendocument.spreadsheet", { offset: 30 })) return { ext: "ods", mime: "application/vnd.oasis.opendocument.spreadsheet" }; if (n("mimetypeapplication/vnd.oasis.opendocument.presentation", { offset: 30 })) return { ext: "odp", mime: "application/vnd.oasis.opendocument.presentation" }; const e = (e, t = 0) => e.findIndex(((e, i, n) => i >= t && 80 === n[i] && 75 === n[i + 1] && 3 === n[i + 2] && 4 === n[i + 3])); let o = 0, r = !1, s = null; do { const a = o + 30; if (r || (r = i(oxmlContentTypes, { offset: a }) || i(oxmlRels, { offset: a })), s || (n("word/", { offset: a }) ? s = { ext: "docx", mime: "application/vnd.openxmlformats-officedocument.wordprocessingml.document" } : n("ppt/", { offset: a }) ? s = { ext: "pptx", mime: "application/vnd.openxmlformats-officedocument.presentationml.presentation" } : n("xl/", { offset: a }) && (s = { ext: "xlsx", mime: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" })), r && s) return s; o = e(t, a) } while (o >= 0); if (s) return s } if (i([80, 75]) && (3 === t[2] || 5 === t[2] || 7 === t[2]) && (4 === t[ 3] || 6 === t[3] || 8 === t[3])) return { ext: "zip", mime: "application/zip" }; if (i([117, 115, 116, 97, 114], { offset: 257 })) return { ext: "tar", mime: "application/x-tar" }; if (i([82, 97, 114, 33, 26, 7]) && (0 === t[6] || 1 === t[6])) return { ext: "rar", mime: "application/x-rar-compressed" }; if (i([31, 139, 8])) return { ext: "gz", mime: "application/gzip" }; if (i([66, 90, 104])) return { ext: "bz2", mime: "application/x-bzip2" }; if (i([55, 122, 188, 175, 39, 28])) return { ext: "7z", mime: "application/x-7z-compressed" }; if (i([120, 1])) return { ext: "dmg", mime: "application/x-apple-diskimage" }; if (i([51, 103, 112, 53]) || i([0, 0, 0]) && i([102, 116, 121, 112], { offset: 4 }) && (i([109, 112, 52, 49], { offset: 8 }) || i([109, 112, 52, 50], { offset: 8 }) || i([105, 115, 111, 109], { offset: 8 }) || i([105, 115, 111, 50], { offset: 8 }) || i([109, 109, 112, 52], { offset: 8 }) || i([77, 52, 86], { offset: 8 }) || i([100, 97, 115, 104], { offset: 8 }))) return { ext: "mp4", mime: "video/mp4" }; if (i([77, 84, 104, 100])) return { ext: "mid", mime: "audio/midi" }; if (i([26, 69, 223, 163])) { const e = t.subarray(4, 4100), i = e.findIndex(((e, t, i) => 66 === i[t] && 130 === i[t + 1])); if (-1 !== i) { const t = i + 3, n = i => [...i].every(((i, n) => e[t + n] === i.charCodeAt(0))); if (n("matroska")) return { ext: "mkv", mime: "video/x-matroska" }; if (n("webm")) return { ext: "webm", mime: "video/webm" } } } if (i([0, 0, 0, 20, 102, 116, 121, 112, 113, 116, 32, 32]) || i([102, 114, 101, 101 ], { offset: 4 }) || i([102, 116, 121, 112, 113, 116, 32, 32], { offset: 4 }) || i([109, 100, 97, 116], { offset: 4 }) || i([109, 111, 111, 118], { offset: 4 }) || i([119, 105, 100, 101], { offset: 4 })) return { ext: "mov", mime: "video/quicktime" }; if (i([82, 73, 70, 70])) { if (i([65, 86, 73], { offset: 8 })) return { ext: "avi", mime: "video/vnd.avi" }; if (i([87, 65, 86, 69], { offset: 8 })) return { ext: "wav", mime: "audio/vnd.wave" }; if (i([81, 76, 67, 77], { offset: 8 })) return { ext: "qcp", mime: "audio/qcelp" } } if (i([48, 38, 178, 117, 142, 102, 207, 17, 166, 217])) { let e = 30; do { const n = readUInt64LE(t, e + 16); if (i([145, 7, 220, 183, 183, 169, 207, 17, 142, 230, 0, 192, 12, 32, 83, 101 ], { offset: e })) { if (i([64, 158, 105, 248, 77, 91, 207, 17, 168, 253, 0, 128, 95, 92, 68, 43 ], { offset: e + 24 })) return { ext: "wma", mime: "audio/x-ms-wma" }; if (i([192, 239, 25, 188, 77, 91, 207, 17, 168, 253, 0, 128, 95, 92, 68, 43 ], { offset: e + 24 })) return { ext: "wmv", mime: "video/x-ms-asf" }; break } e += n } while (e + 24 <= t.length); return { ext: "asf", mime: "application/vnd.ms-asf" } } if (i([0, 0, 1, 186]) || i([0, 0, 1, 179])) return { ext: "mpg", mime: "video/mpeg" }; if (i([102, 116, 121, 112, 51, 103], { offset: 4 })) return { ext: "3gp", mime: "video/3gpp" }; for (let e = 0; e < 2 && e < t.length - 16; e++) { if (i([73, 68, 51], { offset: e }) || i([255, 226], { offset: e, mask: [255, 226] })) return { ext: "mp3", mime: "audio/mpeg" }; if (i([255, 228], { offset: e, mask: [255, 228] })) return { ext: "mp2", mime: "audio/mpeg" }; if (i([255, 248], { offset: e, mask: [255, 252] })) return { ext: "mp2", mime: "audio/mpeg" }; if (i([255, 240], { offset: e, mask: [255, 252] })) return { ext: "mp4", mime: "audio/mpeg" } } if (i([102, 116, 121, 112, 77, 52, 65], { offset: 4 })) return { ext: "m4a", mime: "audio/mp4" }; if (i([79, 112, 117, 115, 72, 101, 97, 100], { offset: 28 })) return { ext: "opus", mime: "audio/opus" }; if (i([79, 103, 103, 83])) return i([128, 116, 104, 101, 111, 114, 97], { offset: 28 }) ? { ext: "ogv", mime: "video/ogg" } : i([1, 118, 105, 100, 101, 111, 0], { offset: 28 }) ? { ext: "ogm", mime: "video/ogg" } : i([127, 70, 76, 65, 67], { offset: 28 }) ? { ext: "oga", mime: "audio/ogg" } : i([83, 112, 101, 101, 120, 32, 32], { offset: 28 }) ? { ext: "spx", mime: "audio/ogg" } : i([1, 118, 111, 114, 98, 105, 115], { offset: 28 }) ? { ext: "ogg", mime: "audio/ogg" } : { ext: "ogx", mime: "application/ogg" }; if (i([102, 76, 97, 67])) return { ext: "flac", mime: "audio/x-flac" }; if (i([77, 65, 67, 32])) return { ext: "ape", mime: "audio/ape" }; if (i([119, 118, 112, 107])) return { ext: "wv", mime: "audio/wavpack" }; if (i([35, 33, 65, 77, 82, 10])) return { ext: "amr", mime: "audio/amr" }; if (i([37, 80, 68, 70])) return { ext: "pdf", mime: "application/pdf" }; if (i([77, 90])) return { ext: "exe", mime: "application/x-msdownload" }; if ((67 === t[0] || 70 === t[0]) && i([87, 83], { offset: 1 })) return { ext: "swf", mime: "application/x-shockwave-flash" }; if (i([123, 92, 114, 116, 102])) return { ext: "rtf", mime: "application/rtf" }; if (i([0, 97, 115, 109])) return { ext: "wasm", mime: "application/wasm" }; if (i([119, 79, 70, 70]) && (i([0, 1, 0, 0], { offset: 4 }) || i([79, 84, 84, 79], { offset: 4 }))) return { ext: "woff", mime: "font/woff" }; if (i([119, 79, 70, 50]) && (i([0, 1, 0, 0], { offset: 4 }) || i([79, 84, 84, 79], { offset: 4 }))) return { ext: "woff2", mime: "font/woff2" }; if (i([76, 80], { offset: 34 }) && (i([0, 0, 1], { offset: 8 }) || i([1, 0, 2], { offset: 8 }) || i([2, 0, 2], { offset: 8 }))) return { ext: "eot", mime: "application/vnd.ms-fontobject" }; if (i([0, 1, 0, 0, 0])) return { ext: "ttf", mime: "font/ttf" }; if (i([79, 84, 84, 79, 0])) return { ext: "otf", mime: "font/otf" }; if (i([0, 0, 1, 0])) return { ext: "ico", mime: "image/x-icon" }; if (i([0, 0, 2, 0])) return { ext: "cur", mime: "image/x-icon" }; if (i([70, 76, 86, 1])) return { ext: "flv", mime: "video/x-flv" }; if (i([37, 33])) return { ext: "ps", mime: "application/postscript" }; if (i([253, 55, 122, 88, 90, 0])) return { ext: "xz", mime: "application/x-xz" }; if (i([83, 81, 76, 105])) return { ext: "sqlite", mime: "application/x-sqlite3" }; if (i([78, 69, 83, 26])) return { ext: "nes", mime: "application/x-nintendo-nes-rom" }; if (i([67, 114, 50, 52])) return { ext: "crx", mime: "application/x-google-chrome-extension" }; if (i([77, 83, 67, 70]) || i([73, 83, 99, 40])) return { ext: "cab", mime: "application/vnd.ms-cab-compressed" }; if (i([33, 60, 97, 114, 99, 104, 62, 10, 100, 101, 98, 105, 97, 110, 45, 98, 105, 110, 97, 114, 121 ])) return { ext: "deb", mime: "application/x-deb" }; if (i([33, 60, 97, 114, 99, 104, 62])) return { ext: "ar", mime: "application/x-unix-archive" }; if (i([237, 171, 238, 219])) return { ext: "rpm", mime: "application/x-rpm" }; if (i([31, 160]) || i([31, 157])) return { ext: "Z", mime: "application/x-compress" }; if (i([76, 90, 73, 80])) return { ext: "lz", mime: "application/x-lzip" }; if (i([208, 207, 17, 224, 161, 177, 26, 225])) return { ext: "msi", mime: "application/x-msi" }; if (i([6, 14, 43, 52, 2, 5, 1, 1, 13, 1, 2, 1, 1, 2])) return { ext: "mxf", mime: "application/mxf" }; if (i([71], { offset: 4 }) && (i([71], { offset: 192 }) || i([71], { offset: 196 }))) return { ext: "mts", mime: "video/mp2t" }; if (i([66, 76, 69, 78, 68, 69, 82])) return { ext: "blend", mime: "application/x-blender" }; if (i([66, 80, 71, 251])) return { ext: "bpg", mime: "image/bpg" }; if (i([0, 0, 0, 12, 106, 80, 32, 32, 13, 10, 135, 10])) { if (i([106, 112, 50, 32], { offset: 20 })) return { ext: "jp2", mime: "image/jp2" }; if (i([106, 112, 120, 32], { offset: 20 })) return { ext: "jpx", mime: "image/jpx" }; if (i([106, 112, 109, 32], { offset: 20 })) return { ext: "jpm", mime: "image/jpm" }; if (i([109, 106, 112, 50], { offset: 20 })) return { ext: "mj2", mime: "image/mj2" } } if (i([70, 79, 82, 77])) return { ext: "aif", mime: "audio/aiff" }; if (n(" new Promise(((resolve, reject) => { const stream = eval("require")("stream"); readableStream.once("readable", (() => { const e = new stream.PassThrough, t = readableStream.read(module.exports.minimumBytes) || readableStream.read(); try { e.fileType = fileType(t) } catch (e) { reject(e) } readableStream.unshift(t), stream.pipeline ? resolve(stream.pipeline( readableStream, e, (() => {}))) : resolve(readableStream.pipe(e)) })) })) }, 9184: (e, t, i) => { "use strict"; const n = i(7769), o = new Set(["jpg", "png", "gif", "webp", "flif", "cr2", "tif", "bmp", "jxr", "psd", "ico", "bpg", "jp2", "jpm", "jpx", "heic", "cur", "dcm" ]), r = e => { const t = n(e); return o.has(t && t.ext) ? t : null }; e.exports = r, e.exports.default = r, Object.defineProperty(r, "minimumBytes", { value: n.minimumBytes }) }, 5733: (e, t, i) => { e.exports = function e(t, i, n) { function o(s, a) { if (!i[s]) { if (!t[s]) { if (r) return r(s, !0); var l = new Error("Cannot find module '" + s + "'"); throw l.code = "MODULE_NOT_FOUND", l } var d = i[s] = { exports: {} }; t[s][0].call(d.exports, (function(e) { return o(t[s][1][e] || e) }), d, d.exports, e, t, i, n) } return i[s].exports } for (var r = void 0, s = 0; s < n.length; s++) o(n[s]); return o }({ 1: [function(e, t, i) { "use strict"; var n = e("./utils"), o = e("./support"), r = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; i.encode = function(e) { for (var t, i, o, s, a, l, d, c = [], h = 0, u = e.length, g = u, p = "string" !== n.getTypeOf(e); h < e.length;) g = u - h, o = p ? (t = e[h++], i = h < u ? e[h++] : 0, h < u ? e[h++] : 0) : ( t = e.charCodeAt(h++), i = h < u ? e.charCodeAt(h++) : 0, h < u ? e.charCodeAt(h++) : 0), s = t >> 2, a = (3 & t) << 4 | i >> 4, l = 1 < g ? (15 & i) << 2 | o >> 6 : 64, d = 2 < g ? 63 & o : 64, c.push(r.charAt(s) + r.charAt(a) + r.charAt(l) + r.charAt(d)); return c.join("") }, i.decode = function(e) { var t, i, n, s, a, l, d = 0, c = 0, h = "data:"; if (e.substr(0, h.length) === h) throw new Error( "Invalid base64 input, it looks like a data url."); var u, g = 3 * (e = e.replace(/[^A-Za-z0-9\+\/\=]/g, "")).length / 4; if (e.charAt(e.length - 1) === r.charAt(64) && g--, e.charAt(e.length - 2) === r.charAt(64) && g--, g % 1 != 0) throw new Error( "Invalid base64 input, bad content length."); for (u = o.uint8array ? new Uint8Array(0 | g) : new Array(0 | g); d < e.length;) t = r.indexOf(e.charAt(d++)) << 2 | (s = r.indexOf(e.charAt( d++))) >> 4, i = (15 & s) << 4 | (a = r.indexOf(e.charAt(d++))) >> 2, n = (3 & a) << 6 | (l = r.indexOf(e.charAt(d++))), u[c++] = t, 64 !== a && (u[c++] = i), 64 !== l && (u[c++] = n); return u } }, { "./support": 30, "./utils": 32 }], 2: [function(e, t, i) { "use strict"; var n = e("./external"), o = e("./stream/DataWorker"), r = e("./stream/Crc32Probe"), s = e("./stream/DataLengthProbe"); function a(e, t, i, n, o) { this.compressedSize = e, this.uncompressedSize = t, this.crc32 = i, this.compression = n, this.compressedContent = o } a.prototype = { getContentWorker: function() { var e = new o(n.Promise.resolve(this.compressedContent)).pipe( this.compression.uncompressWorker()).pipe(new s("data_length")), t = this; return e.on("end", (function() { if (this.streamInfo.data_length !== t.uncompressedSize) throw new Error("Bug : uncompressed data size mismatch") })), e }, getCompressedWorker: function() { return new o(n.Promise.resolve(this.compressedContent)).withStreamInfo( "compressedSize", this.compressedSize).withStreamInfo( "uncompressedSize", this.uncompressedSize).withStreamInfo( "crc32", this.crc32).withStreamInfo("compression", this.compression) } }, a.createWorkerFrom = function(e, t, i) { return e.pipe(new r).pipe(new s("uncompressedSize")).pipe(t.compressWorker( i)).pipe(new s("compressedSize")).withStreamInfo("compression", t) }, t.exports = a }, { "./external": 6, "./stream/Crc32Probe": 25, "./stream/DataLengthProbe": 26, "./stream/DataWorker": 27 }], 3: [function(e, t, i) { "use strict"; var n = e("./stream/GenericWorker"); i.STORE = { magic: "\0\0", compressWorker: function(e) { return new n("STORE compression") }, uncompressWorker: function() { return new n("STORE decompression") } }, i.DEFLATE = e("./flate") }, { "./flate": 7, "./stream/GenericWorker": 28 }], 4: [function(e, t, i) { "use strict"; var n = e("./utils"), o = function() { for (var e, t = [], i = 0; i < 256; i++) { e = i; for (var n = 0; n < 8; n++) e = 1 & e ? 3988292384 ^ e >>> 1 : e >>> 1; t[i] = e } return t }(); t.exports = function(e, t) { return void 0 !== e && e.length ? "string" !== n.getTypeOf(e) ? function(e, t, i, n) { var r = o, s = 0 + i; e ^= -1; for (var a = 0; a < s; a++) e = e >>> 8 ^ r[255 & (e ^ t[a])]; return -1 ^ e }(0 | t, e, e.length) : function(e, t, i, n) { var r = o, s = 0 + i; e ^= -1; for (var a = 0; a < s; a++) e = e >>> 8 ^ r[255 & (e ^ t.charCodeAt( a))]; return -1 ^ e }(0 | t, e, e.length) : 0 } }, { "./utils": 32 }], 5: [function(e, t, i) { "use strict"; i.base64 = !1, i.binary = !1, i.dir = !1, i.createFolders = !0, i.date = null, i.compression = null, i.compressionOptions = null, i.comment = null, i.unixPermissions = null, i.dosPermissions = null }, {}], 6: [function(e, t, i) { "use strict"; var n; n = "undefined" != typeof Promise ? Promise : e("lie"), t.exports = { Promise: n } }, { lie: 37 }], 7: [function(e, t, i) { "use strict"; var n = "undefined" != typeof Uint8Array && "undefined" != typeof Uint16Array && "undefined" != typeof Uint32Array, o = e("pako"), r = e("./utils"), s = e("./stream/GenericWorker"), a = n ? "uint8array" : "array"; function l(e, t) { s.call(this, "FlateWorker/" + e), this._pako = null, this._pakoAction = e, this._pakoOptions = t, this.meta = {} } i.magic = "\b\0", r.inherits(l, s), l.prototype.processChunk = function(e) { this.meta = e.meta, null === this._pako && this._createPako(), this._pako.push(r.transformTo(a, e.data), !1) }, l.prototype.flush = function() { s.prototype.flush.call(this), null === this._pako && this._createPako(), this._pako.push([], !0) }, l.prototype.cleanUp = function() { s.prototype.cleanUp.call(this), this._pako = null }, l.prototype._createPako = function() { this._pako = new o[this._pakoAction]({ raw: !0, level: this._pakoOptions.level || -1 }); var e = this; this._pako.onData = function(t) { e.push({ data: t, meta: e.meta }) } }, i.compressWorker = function(e) { return new l("Deflate", e) }, i.uncompressWorker = function() { return new l("Inflate", {}) } }, { "./stream/GenericWorker": 28, "./utils": 32, pako: 38 }], 8: [function(e, t, i) { "use strict"; function n(e, t) { var i, n = ""; for (i = 0; i < t; i++) n += String.fromCharCode(255 & e), e >>>= 8; return n } function o(e, t, i, o, s, c) { var h, u, g = e.file, p = e.compression, m = c !== a.utf8encode, f = r.transformTo("string", c(g.name)), _ = r.transformTo("string", a.utf8encode(g.name)), b = g.comment, v = r.transformTo("string", c(b)), w = r.transformTo("string", a.utf8encode(b)), C = _.length !== g.name.length, y = w.length !== b.length, S = "", x = "", k = "", L = g.dir, N = g.date, D = { crc32: 0, compressedSize: 0, uncompressedSize: 0 }; t && !i || (D.crc32 = e.crc32, D.compressedSize = e.compressedSize, D.uncompressedSize = e.uncompressedSize); var E = 0; t && (E |= 8), m || !C && !y || (E |= 2048); var I = 0, T = 0; L && (I |= 16), "UNIX" === s ? (T = 798, I |= function(e, t) { var i = e; return e || (i = t ? 16893 : 33204), (65535 & i) << 16 }(g.unixPermissions, L)) : (T = 20, I |= function(e) { return 63 & (e || 0) }(g.dosPermissions)), h = N.getUTCHours(), h <<= 6, h |= N.getUTCMinutes(), h <<= 5, h |= N.getUTCSeconds() / 2, u = N.getUTCFullYear() - 1980, u <<= 4, u |= N.getUTCMonth() + 1, u <<= 5, u |= N.getUTCDate(), C && (x = n(1, 1) + n(l(f), 4) + _, S += "up" + n(x.length, 2) + x), y && (k = n(1, 1) + n(l(v), 4) + w, S += "uc" + n(k.length, 2) + k); var M = ""; return M += "\n\0", M += n(E, 2), M += p.magic, M += n(h, 2), M += n(u, 2), M += n(D.crc32, 4), M += n(D.compressedSize, 4), M += n( D.uncompressedSize, 4), M += n(f.length, 2), M += n(S.length, 2), { fileRecord: d.LOCAL_FILE_HEADER + M + f + S, dirRecord: d.CENTRAL_FILE_HEADER + n(T, 2) + M + n(v.length, 2) + "\0\0\0\0" + n(I, 4) + n(o, 4) + f + S + v } } var r = e("../utils"), s = e("../stream/GenericWorker"), a = e("../utf8"), l = e("../crc32"), d = e("../signature"); function c(e, t, i, n) { s.call(this, "ZipFileWorker"), this.bytesWritten = 0, this.zipComment = t, this.zipPlatform = i, this.encodeFileName = n, this.streamFiles = e, this.accumulate = !1, this.contentBuffer = [], this.dirRecords = [], this.currentSourceOffset = 0, this.entriesCount = 0, this.currentFile = null, this._sources = [] } r.inherits(c, s), c.prototype.push = function(e) { var t = e.meta.percent || 0, i = this.entriesCount, n = this._sources.length; this.accumulate ? this.contentBuffer.push(e) : (this.bytesWritten += e.data.length, s.prototype.push.call(this, { data: e.data, meta: { currentFile: this.currentFile, percent: i ? (t + 100 * (i - n - 1)) / i : 100 } })) }, c.prototype.openedSource = function(e) { this.currentSourceOffset = this.bytesWritten, this.currentFile = e.file.name; var t = this.streamFiles && !e.file.dir; if (t) { var i = o(e, t, !1, this.currentSourceOffset, this.zipPlatform, this.encodeFileName); this.push({ data: i.fileRecord, meta: { percent: 0 } }) } else this.accumulate = !0 }, c.prototype.closedSource = function(e) { this.accumulate = !1; var t = this.streamFiles && !e.file.dir, i = o(e, t, !0, this.currentSourceOffset, this.zipPlatform, this .encodeFileName); if (this.dirRecords.push(i.dirRecord), t) this.push({ data: function(e) { return d.DATA_DESCRIPTOR + n(e.crc32, 4) + n(e.compressedSize, 4) + n(e.uncompressedSize, 4) }(e), meta: { percent: 100 } }); else for (this.push({ data: i.fileRecord, meta: { percent: 0 } }); this.contentBuffer.length;) this.push(this.contentBuffer.shift()); this.currentFile = null }, c.prototype.flush = function() { for (var e = this.bytesWritten, t = 0; t < this.dirRecords.length; t++) this.push({ data: this.dirRecords[t], meta: { percent: 100 } }); var i = this.bytesWritten - e, o = function(e, t, i, o, s) { var a = r.transformTo("string", s(o)); return d.CENTRAL_DIRECTORY_END + "\0\0\0\0" + n(e, 2) + n(e, 2) + n(t, 4) + n(i, 4) + n(a.length, 2) + a }(this.dirRecords.length, i, e, this.zipComment, this.encodeFileName); this.push({ data: o, meta: { percent: 100 } }) }, c.prototype.prepareNextSource = function() { this.previous = this._sources.shift(), this.openedSource(this.previous .streamInfo), this.isPaused ? this.previous.pause() : this.previous .resume() }, c.prototype.registerPrevious = function(e) { this._sources.push(e); var t = this; return e.on("data", (function(e) { t.processChunk(e) })), e.on("end", (function() { t.closedSource(t.previous.streamInfo), t._sources.length ? t.prepareNextSource() : t.end() })), e.on("error", (function(e) { t.error(e) })), this }, c.prototype.resume = function() { return !!s.prototype.resume.call(this) && (!this.previous && this ._sources.length ? (this.prepareNextSource(), !0) : this.previous || this._sources.length || this.generatedError ? void 0 : (this.end(), ! 0)) }, c.prototype.error = function(e) { var t = this._sources; if (!s.prototype.error.call(this, e)) return !1; for (var i = 0; i < t.length; i++) try { t[i].error(e) } catch (e) {} return !0 }, c.prototype.lock = function() { s.prototype.lock.call(this); for (var e = this._sources, t = 0; t < e.length; t++) e[t].lock() }, t.exports = c }, { "../crc32": 4, "../signature": 23, "../stream/GenericWorker": 28, "../utf8": 31, "../utils": 32 }], 9: [function(e, t, i) { "use strict"; var n = e("../compressions"), o = e("./ZipFileWorker"); i.generateWorker = function(e, t, i) { var r = new o(t.streamFiles, i, t.platform, t.encodeFileName), s = 0; try { e.forEach((function(e, i) { s++; var o = function(e, t) { var i = e || t, o = n[i]; if (!o) throw new Error(i + " is not a valid compression method !"); return o }(i.options.compression, t.compression), a = i.options.compressionOptions || t.compressionOptions || {}, l = i.dir, d = i.date; i._compressWorker(o, a).withStreamInfo("file", { name: e, dir: l, date: d, comment: i.comment || "", unixPermissions: i.unixPermissions, dosPermissions: i.dosPermissions }).pipe(r) })), r.entriesCount = s } catch (e) { r.error(e) } return r } }, { "../compressions": 3, "./ZipFileWorker": 8 }], 10: [function(e, t, i) { "use strict"; function n() { if (!(this instanceof n)) return new n; if (arguments.length) throw new Error( "The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide." ); this.files = Object.create(null), this.comment = null, this.root = "", this.clone = function() { var e = new n; for (var t in this) "function" != typeof this[t] && (e[t] = this[ t]); return e } }(n.prototype = e("./object")).loadAsync = e("./load"), n.support = e("./support"), n.defaults = e("./defaults"), n.version = "3.7.1", n.loadAsync = function(e, t) { return (new n).loadAsync(e, t) }, n.external = e("./external"), t.exports = n }, { "./defaults": 5, "./external": 6, "./load": 11, "./object": 15, "./support": 30 }], 11: [function(e, t, i) { "use strict"; var n = e("./utils"), o = e("./external"), r = e("./utf8"), s = e("./zipEntries"), a = e("./stream/Crc32Probe"), l = e("./nodejsUtils"); function d(e) { return new o.Promise((function(t, i) { var n = e.decompressed.getContentWorker().pipe(new a); n.on("error", (function(e) { i(e) })).on("end", (function() { n.streamInfo.crc32 !== e.decompressed.crc32 ? i(new Error( "Corrupted zip : CRC32 mismatch")) : t() })).resume() })) } t.exports = function(e, t) { var i = this; return t = n.extend(t || {}, { base64: !1, checkCRC32: !1, optimizedBinaryString: !1, createFolders: !1, decodeFileName: r.utf8decode }), l.isNode && l.isStream(e) ? o.Promise.reject(new Error( "JSZip can't accept a stream when loading a zip file.")) : n.prepareContent( "the loaded zip file", e, !0, t.optimizedBinaryString, t.base64 ).then((function(e) { var i = new s(t); return i.load(e), i })).then((function(e) { var i = [o.Promise.resolve(e)], n = e.files; if (t.checkCRC32) for (var r = 0; r < n.length; r++) i.push(d(n[r])); return o.Promise.all(i) })).then((function(e) { for (var n = e.shift(), o = n.files, r = 0; r < o.length; r++) { var s = o[r]; i.file(s.fileNameStr, s.decompressed, { binary: !0, optimizedBinaryString: !0, date: s.date, dir: s.dir, comment: s.fileCommentStr.length ? s.fileCommentStr : null, unixPermissions: s.unixPermissions, dosPermissions: s.dosPermissions, createFolders: t.createFolders }) } return n.zipComment.length && (i.comment = n.zipComment), i })) } }, { "./external": 6, "./nodejsUtils": 14, "./stream/Crc32Probe": 25, "./utf8": 31, "./utils": 32, "./zipEntries": 33 }], 12: [function(e, t, i) { "use strict"; var n = e("../utils"), o = e("../stream/GenericWorker"); function r(e, t) { o.call(this, "Nodejs stream input adapter for " + e), this._upstreamEnded = ! 1, this._bindStream(t) } n.inherits(r, o), r.prototype._bindStream = function(e) { var t = this; (this._stream = e).pause(), e.on("data", (function(e) { t.push({ data: e, meta: { percent: 0 } }) })).on("error", (function(e) { t.isPaused ? this.generatedError = e : t.error(e) })).on("end", (function() { t.isPaused ? t._upstreamEnded = !0 : t.end() })) }, r.prototype.pause = function() { return !!o.prototype.pause.call(this) && (this._stream.pause(), ! 0) }, r.prototype.resume = function() { return !!o.prototype.resume.call(this) && (this._upstreamEnded ? this.end() : this._stream.resume(), !0) }, t.exports = r }, { "../stream/GenericWorker": 28, "../utils": 32 }], 13: [function(e, t, i) { "use strict"; var n = e("readable-stream").Readable; function o(e, t, i) { n.call(this, t), this._helper = e; var o = this; e.on("data", (function(e, t) { o.push(e) || o._helper.pause(), i && i(t) })).on("error", (function(e) { o.emit("error", e) })).on("end", (function() { o.push(null) })) } e("../utils").inherits(o, n), o.prototype._read = function() { this._helper.resume() }, t.exports = o }, { "../utils": 32, "readable-stream": 16 }], 14: [function(e, t, i) { "use strict"; t.exports = { isNode: "undefined" != typeof Buffer, newBufferFrom: function(e, t) { if (Buffer.from && Buffer.from !== Uint8Array.from) return Buffer.from(e, t); if ("number" == typeof e) throw new Error( 'The "data" argument must not be a number'); return new Buffer(e, t) }, allocBuffer: function(e) { if (Buffer.alloc) return Buffer.alloc(e); var t = new Buffer(e); return t.fill(0), t }, isBuffer: function(e) { return Buffer.isBuffer(e) }, isStream: function(e) { return e && "function" == typeof e.on && "function" == typeof e .pause && "function" == typeof e.resume } } }, {}], 15: [function(e, t, i) { "use strict"; function n(e, t, i) { var n, o = r.getTypeOf(t), a = r.extend(i || {}, l); a.date = a.date || new Date, null !== a.compression && (a.compression = a.compression.toUpperCase()), "string" == typeof a.unixPermissions && (a.unixPermissions = parseInt(a.unixPermissions, 8)), a.unixPermissions && 16384 & a.unixPermissions && (a.dir = !0), a.dosPermissions && 16 & a.dosPermissions && (a.dir = !0), a.dir && (e = m(e)), a.createFolders && (n = p(e)) && f.call(this, n, !0); var h = "string" === o && !1 === a.binary && !1 === a.base64; i && void 0 !== i.binary || (a.binary = !h), (t instanceof d && 0 === t.uncompressedSize || a.dir || !t || 0 === t.length) && (a.base64 = ! 1, a.binary = !0, t = "", a.compression = "STORE", o = "string"); var _; _ = t instanceof d || t instanceof s ? t : u.isNode && u.isStream( t) ? new g(e, t) : r.prepareContent(e, t, a.binary, a.optimizedBinaryString, a.base64); var b = new c(e, _, a); this.files[e] = b } var o = e("./utf8"), r = e("./utils"), s = e("./stream/GenericWorker"), a = e("./stream/StreamHelper"), l = e("./defaults"), d = e("./compressedObject"), c = e("./zipObject"), h = e("./generate"), u = e("./nodejsUtils"), g = e("./nodejs/NodejsStreamInputAdapter"), p = function(e) { "/" === e.slice(-1) && (e = e.substring(0, e.length - 1)); var t = e.lastIndexOf("/"); return 0 < t ? e.substring(0, t) : "" }, m = function(e) { return "/" !== e.slice(-1) && (e += "/"), e }, f = function(e, t) { return t = void 0 !== t ? t : l.createFolders, e = m(e), this.files[ e] || n.call(this, e, null, { dir: !0, createFolders: t }), this.files[e] }; function _(e) { return "[object RegExp]" === Object.prototype.toString.call(e) } var b = { load: function() { throw new Error( "This method has been removed in JSZip 3.0, please check the upgrade guide." ) }, forEach: function(e) { var t, i, n; for (t in this.files) n = this.files[t], (i = t.slice(this.root .length, t.length)) && t.slice(0, this.root.length) === this.root && e(i, n) }, filter: function(e) { var t = []; return this.forEach((function(i, n) { e(i, n) && t.push(n) })), t }, file: function(e, t, i) { if (1 !== arguments.length) return e = this.root + e, n.call( this, e, t, i), this; if (_(e)) { var o = e; return this.filter((function(e, t) { return !t.dir && o.test(e) })) } var r = this.files[this.root + e]; return r && !r.dir ? r : null }, folder: function(e) { if (!e) return this; if (_(e)) return this.filter((function(t, i) { return i.dir && e.test(t) })); var t = this.root + e, i = f.call(this, t), n = this.clone(); return n.root = i.name, n }, remove: function(e) { e = this.root + e; var t = this.files[e]; if (t || ("/" !== e.slice(-1) && (e += "/"), t = this.files[e]), t && !t.dir) delete this.files[e]; else for (var i = this.filter((function(t, i) { return i.name.slice(0, e.length) === e })), n = 0; n < i.length; n++) delete this.files[i[n].name]; return this }, generate: function(e) { throw new Error( "This method has been removed in JSZip 3.0, please check the upgrade guide." ) }, generateInternalStream: function(e) { var t, i = {}; try { if ((i = r.extend(e || {}, { streamFiles: !1, compression: "STORE", compressionOptions: null, type: "", platform: "DOS", comment: null, mimeType: "application/zip", encodeFileName: o.utf8encode })).type = i.type.toLowerCase(), i.compression = i.compression .toUpperCase(), "binarystring" === i.type && (i.type = "string"), !i.type) throw new Error( "No output type specified."); r.checkSupport(i.type), "darwin" !== i.platform && "freebsd" !== i.platform && "linux" !== i.platform && "sunos" !== i.platform || (i.platform = "UNIX"), "win32" === i.platform && (i.platform = "DOS"); var n = i.comment || this.comment || ""; t = h.generateWorker(this, i, n) } catch (e) { (t = new s("error")).error(e) } return new a(t, i.type || "string", i.mimeType) }, generateAsync: function(e, t) { return this.generateInternalStream(e).accumulate(t) }, generateNodeStream: function(e, t) { return (e = e || {}).type || (e.type = "nodebuffer"), this.generateInternalStream( e).toNodejsStream(t) } }; t.exports = b }, { "./compressedObject": 2, "./defaults": 5, "./generate": 9, "./nodejs/NodejsStreamInputAdapter": 12, "./nodejsUtils": 14, "./stream/GenericWorker": 28, "./stream/StreamHelper": 29, "./utf8": 31, "./utils": 32, "./zipObject": 35 }], 16: [function(e, t, i) { t.exports = e("stream") }, { stream: void 0 }], 17: [function(e, t, i) { "use strict"; var n = e("./DataReader"); function o(e) { n.call(this, e); for (var t = 0; t < this.data.length; t++) e[t] = 255 & e[t] } e("../utils").inherits(o, n), o.prototype.byteAt = function(e) { return this.data[this.zero + e] }, o.prototype.lastIndexOfSignature = function(e) { for (var t = e.charCodeAt(0), i = e.charCodeAt(1), n = e.charCodeAt( 2), o = e.charCodeAt(3), r = this.length - 4; 0 <= r; --r) if (this.data[r] === t && this.data[r + 1] === i && this.data[r + 2] === n && this.data[r + 3] === o) return r - this.zero; return -1 }, o.prototype.readAndCheckSignature = function(e) { var t = e.charCodeAt(0), i = e.charCodeAt(1), n = e.charCodeAt(2), o = e.charCodeAt(3), r = this.readData(4); return t === r[0] && i === r[1] && n === r[2] && o === r[3] }, o.prototype.readData = function(e) { if (this.checkOffset(e), 0 === e) return []; var t = this.data.slice(this.zero + this.index, this.zero + this.index + e); return this.index += e, t }, t.exports = o }, { "../utils": 32, "./DataReader": 18 }], 18: [function(e, t, i) { "use strict"; var n = e("../utils"); function o(e) { this.data = e, this.length = e.length, this.index = 0, this.zero = 0 } o.prototype = { checkOffset: function(e) { this.checkIndex(this.index + e) }, checkIndex: function(e) { if (this.length < this.zero + e || e < 0) throw new Error( "End of data reached (data length = " + this.length + ", asked index = " + e + "). Corrupted zip ?") }, setIndex: function(e) { this.checkIndex(e), this.index = e }, skip: function(e) { this.setIndex(this.index + e) }, byteAt: function(e) {}, readInt: function(e) { var t, i = 0; for (this.checkOffset(e), t = this.index + e - 1; t >= this.index; t--) i = (i << 8) + this.byteAt(t); return this.index += e, i }, readString: function(e) { return n.transformTo("string", this.readData(e)) }, readData: function(e) {}, lastIndexOfSignature: function(e) {}, readAndCheckSignature: function(e) {}, readDate: function() { var e = this.readInt(4); return new Date(Date.UTC(1980 + (e >> 25 & 127), (e >> 21 & 15) - 1, e >> 16 & 31, e >> 11 & 31, e >> 5 & 63, (31 & e) << 1)) } }, t.exports = o }, { "../utils": 32 }], 19: [function(e, t, i) { "use strict"; var n = e("./Uint8ArrayReader"); function o(e) { n.call(this, e) } e("../utils").inherits(o, n), o.prototype.readData = function(e) { this.checkOffset(e); var t = this.data.slice(this.zero + this.index, this.zero + this.index + e); return this.index += e, t }, t.exports = o }, { "../utils": 32, "./Uint8ArrayReader": 21 }], 20: [function(e, t, i) { "use strict"; var n = e("./DataReader"); function o(e) { n.call(this, e) } e("../utils").inherits(o, n), o.prototype.byteAt = function(e) { return this.data.charCodeAt(this.zero + e) }, o.prototype.lastIndexOfSignature = function(e) { return this.data.lastIndexOf(e) - this.zero }, o.prototype.readAndCheckSignature = function(e) { return e === this.readData(4) }, o.prototype.readData = function(e) { this.checkOffset(e); var t = this.data.slice(this.zero + this.index, this.zero + this.index + e); return this.index += e, t }, t.exports = o }, { "../utils": 32, "./DataReader": 18 }], 21: [function(e, t, i) { "use strict"; var n = e("./ArrayReader"); function o(e) { n.call(this, e) } e("../utils").inherits(o, n), o.prototype.readData = function(e) { if (this.checkOffset(e), 0 === e) return new Uint8Array(0); var t = this.data.subarray(this.zero + this.index, this.zero + this.index + e); return this.index += e, t }, t.exports = o }, { "../utils": 32, "./ArrayReader": 17 }], 22: [function(e, t, i) { "use strict"; var n = e("../utils"), o = e("../support"), r = e("./ArrayReader"), s = e("./StringReader"), a = e("./NodeBufferReader"), l = e("./Uint8ArrayReader"); t.exports = function(e) { var t = n.getTypeOf(e); return n.checkSupport(t), "string" !== t || o.uint8array ? "nodebuffer" === t ? new a(e) : o.uint8array ? new l(n.transformTo( "uint8array", e)) : new r(n.transformTo("array", e)) : new s(e) } }, { "../support": 30, "../utils": 32, "./ArrayReader": 17, "./NodeBufferReader": 19, "./StringReader": 20, "./Uint8ArrayReader": 21 }], 23: [function(e, t, i) { "use strict"; i.LOCAL_FILE_HEADER = "PK", i.CENTRAL_FILE_HEADER = "PK", i.CENTRAL_DIRECTORY_END = "PK", i.ZIP64_CENTRAL_DIRECTORY_LOCATOR = "PK", i.ZIP64_CENTRAL_DIRECTORY_END = "PK", i.DATA_DESCRIPTOR = "PK\b" }, {}], 24: [function(e, t, i) { "use strict"; var n = e("./GenericWorker"), o = e("../utils"); function r(e) { n.call(this, "ConvertWorker to " + e), this.destType = e } o.inherits(r, n), r.prototype.processChunk = function(e) { this.push({ data: o.transformTo(this.destType, e.data), meta: e.meta }) }, t.exports = r }, { "../utils": 32, "./GenericWorker": 28 }], 25: [function(e, t, i) { "use strict"; var n = e("./GenericWorker"), o = e("../crc32"); function r() { n.call(this, "Crc32Probe"), this.withStreamInfo("crc32", 0) } e("../utils").inherits(r, n), r.prototype.processChunk = function(e) { this.streamInfo.crc32 = o(e.data, this.streamInfo.crc32 || 0), this.push(e) }, t.exports = r }, { "../crc32": 4, "../utils": 32, "./GenericWorker": 28 }], 26: [function(e, t, i) { "use strict"; var n = e("../utils"), o = e("./GenericWorker"); function r(e) { o.call(this, "DataLengthProbe for " + e), this.propName = e, this.withStreamInfo( e, 0) } n.inherits(r, o), r.prototype.processChunk = function(e) { if (e) { var t = this.streamInfo[this.propName] || 0; this.streamInfo[this.propName] = t + e.data.length } o.prototype.processChunk.call(this, e) }, t.exports = r }, { "../utils": 32, "./GenericWorker": 28 }], 27: [function(e, t, i) { "use strict"; var n = e("../utils"), o = e("./GenericWorker"); function r(e) { o.call(this, "DataWorker"); var t = this; this.dataIsReady = !1, this.index = 0, this.max = 0, this.data = null, this.type = "", this._tickScheduled = !1, e.then((function( e) { t.dataIsReady = !0, t.data = e, t.max = e && e.length || 0, t.type = n.getTypeOf(e), t.isPaused || t._tickAndRepeat() }), (function(e) { t.error(e) })) } n.inherits(r, o), r.prototype.cleanUp = function() { o.prototype.cleanUp.call(this), this.data = null }, r.prototype.resume = function() { return !!o.prototype.resume.call(this) && (!this._tickScheduled && this.dataIsReady && (this._tickScheduled = !0, n.delay(this._tickAndRepeat, [], this)), !0) }, r.prototype._tickAndRepeat = function() { this._tickScheduled = !1, this.isPaused || this.isFinished || ( this._tick(), this.isFinished || (n.delay(this._tickAndRepeat, [], this), this._tickScheduled = !0)) }, r.prototype._tick = function() { if (this.isPaused || this.isFinished) return !1; var e = null, t = Math.min(this.max, this.index + 16384); if (this.index >= this.max) return this.end(); switch (this.type) { case "string": e = this.data.substring(this.index, t); break; case "uint8array": e = this.data.subarray(this.index, t); break; case "array": case "nodebuffer": e = this.data.slice(this.index, t) } return this.index = t, this.push({ data: e, meta: { percent: this.max ? this.index / this.max * 100 : 0 } }) }, t.exports = r }, { "../utils": 32, "./GenericWorker": 28 }], 28: [function(e, t, i) { "use strict"; function n(e) { this.name = e || "default", this.streamInfo = {}, this.generatedError = null, this.extraStreamInfo = {}, this.isPaused = !0, this.isFinished = ! 1, this.isLocked = !1, this._listeners = { data: [], end: [], error: [] }, this.previous = null } n.prototype = { push: function(e) { this.emit("data", e) }, end: function() { if (this.isFinished) return !1; this.flush(); try { this.emit("end"), this.cleanUp(), this.isFinished = !0 } catch (e) { this.emit("error", e) } return !0 }, error: function(e) { return !this.isFinished && (this.isPaused ? this.generatedError = e : (this.isFinished = !0, this.emit("error", e), this.previous && this.previous.error(e), this.cleanUp()), !0) }, on: function(e, t) { return this._listeners[e].push(t), this }, cleanUp: function() { this.streamInfo = this.generatedError = this.extraStreamInfo = null, this._listeners = [] }, emit: function(e, t) { if (this._listeners[e]) for (var i = 0; i < this._listeners[e].length; i++) this._listeners[ e][i].call(this, t) }, pipe: function(e) { return e.registerPrevious(this) }, registerPrevious: function(e) { if (this.isLocked) throw new Error("The stream '" + this + "' has already been used."); this.streamInfo = e.streamInfo, this.mergeStreamInfo(), this.previous = e; var t = this; return e.on("data", (function(e) { t.processChunk(e) })), e.on("end", (function() { t.end() })), e.on("error", (function(e) { t.error(e) })), this }, pause: function() { return !this.isPaused && !this.isFinished && (this.isPaused = ! 0, this.previous && this.previous.pause(), !0) }, resume: function() { if (!this.isPaused || this.isFinished) return !1; var e = this.isPaused = !1; return this.generatedError && (this.error(this.generatedError), e = !0), this.previous && this.previous.resume(), !e }, flush: function() {}, processChunk: function(e) { this.push(e) }, withStreamInfo: function(e, t) { return this.extraStreamInfo[e] = t, this.mergeStreamInfo(), this }, mergeStreamInfo: function() { for (var e in this.extraStreamInfo) this.extraStreamInfo.hasOwnProperty( e) && (this.streamInfo[e] = this.extraStreamInfo[e]) }, lock: function() { if (this.isLocked) throw new Error("The stream '" + this + "' has already been used."); this.isLocked = !0, this.previous && this.previous.lock() }, toString: function() { var e = "Worker " + this.name; return this.previous ? this.previous + " -> " + e : e } }, t.exports = n }, {}], 29: [function(e, t, i) { "use strict"; var n = e("../utils"), o = e("./ConvertWorker"), r = e("./GenericWorker"), s = e("../base64"), a = e("../support"), l = e("../external"), d = null; if (a.nodestream) try { d = e("../nodejs/NodejsStreamOutputAdapter") } catch (e) {} function c(e, t, i) { var s = t; switch (t) { case "blob": case "arraybuffer": s = "uint8array"; break; case "base64": s = "string" } try { this._internalType = s, this._outputType = t, this._mimeType = i, n.checkSupport(s), this._worker = e.pipe(new o(s)), e.lock() } catch (e) { this._worker = new r("error"), this._worker.error(e) } } c.prototype = { accumulate: function(e) { return function(e, t) { return new l.Promise((function(i, o) { var r = [], a = e._internalType, l = e._outputType, d = e._mimeType; e.on("data", (function(e, i) { r.push(e), t && t(i) })).on("error", (function(e) { r = [], o(e) })).on("end", (function() { try { var e = function(e, t, i) { switch (e) { case "blob": return n.newBlob(n.transformTo("arraybuffer", t), i); case "base64": return s.encode(t); default: return n.transformTo(e, t) } }(l, function(e, t) { var i, n = 0, o = null, r = 0; for (i = 0; i < t.length; i++) r += t[i].length; switch (e) { case "string": return t.join(""); case "array": return Array.prototype.concat.apply([], t); case "uint8array": for (o = new Uint8Array(r), i = 0; i < t.length; i++) o.set(t[i], n), n += t[i].length; return o; case "nodebuffer": return Buffer.concat(t); default: throw new Error("concat : unsupported type '" + e + "'") } }(a, r), d); i(e) } catch (e) { o(e) } r = [] })).resume() })) }(this, e) }, on: function(e, t) { var i = this; return "data" === e ? this._worker.on(e, (function(e) { t.call(i, e.data, e.meta) })) : this._worker.on(e, (function() { n.delay(t, arguments, i) })), this }, resume: function() { return n.delay(this._worker.resume, [], this._worker), this }, pause: function() { return this._worker.pause(), this }, toNodejsStream: function(e) { if (n.checkSupport("nodestream"), "nodebuffer" !== this._outputType) throw new Error(this._outputType + " is not supported by this method"); return new d(this, { objectMode: "nodebuffer" !== this._outputType }, e) } }, t.exports = c }, { "../base64": 1, "../external": 6, "../nodejs/NodejsStreamOutputAdapter": 13, "../support": 30, "../utils": 32, "./ConvertWorker": 24, "./GenericWorker": 28 }], 30: [function(e, t, i) { "use strict"; if (i.base64 = !0, i.array = !0, i.string = !0, i.arraybuffer = "undefined" != typeof ArrayBuffer && "undefined" != typeof Uint8Array, i.nodebuffer = "undefined" != typeof Buffer, i.uint8array = "undefined" != typeof Uint8Array, "undefined" == typeof ArrayBuffer ) i.blob = !1; else { var n = new ArrayBuffer(0); try { i.blob = 0 === new Blob([n], { type: "application/zip" }).size } catch (e) { try { var o = new(self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder); o.append(n), i.blob = 0 === o.getBlob("application/zip").size } catch (e) { i.blob = !1 } } } try { i.nodestream = !!e("readable-stream").Readable } catch (e) { i.nodestream = !1 } }, { "readable-stream": 16 }], 31: [function(e, t, i) { "use strict"; for (var n = e("./utils"), o = e("./support"), r = e( "./nodejsUtils"), s = e("./stream/GenericWorker"), a = new Array( 256), l = 0; l < 256; l++) a[l] = 252 <= l ? 6 : 248 <= l ? 5 : 240 <= l ? 4 : 224 <= l ? 3 : 192 <= l ? 2 : 1; function d() { s.call(this, "utf-8 decode"), this.leftOver = null } function c() { s.call(this, "utf-8 encode") } a[254] = a[254] = 1, i.utf8encode = function(e) { return o.nodebuffer ? r.newBufferFrom(e, "utf-8") : function(e) { var t, i, n, r, s, a = e.length, l = 0; for (r = 0; r < a; r++) 55296 == (64512 & (i = e.charCodeAt(r))) && r + 1 < a && 56320 == (64512 & (n = e.charCodeAt(r + 1))) && ( i = 65536 + (i - 55296 << 10) + (n - 56320), r++), l += i < 128 ? 1 : i < 2048 ? 2 : i < 65536 ? 3 : 4; for (t = o.uint8array ? new Uint8Array(l) : new Array(l), r = s = 0; s < l; r++) 55296 == (64512 & (i = e.charCodeAt(r))) && r + 1 < a && 56320 == (64512 & (n = e.charCodeAt(r + 1))) && (i = 65536 + (i - 55296 << 10) + (n - 56320), r++), i < 128 ? t[s++] = i : (i < 2048 ? t[s++] = 192 | i >>> 6 : (i < 65536 ? t[s++] = 224 | i >>> 12 : (t[s++] = 240 | i >>> 18, t[s++] = 128 | i >>> 12 & 63), t[s++] = 128 | i >>> 6 & 63), t[s++] = 128 | 63 & i); return t }(e) }, i.utf8decode = function(e) { return o.nodebuffer ? n.transformTo("nodebuffer", e).toString( "utf-8") : function(e) { var t, i, o, r, s = e.length, l = new Array(2 * s); for (t = i = 0; t < s;) if ((o = e[t++]) < 128) l[i++] = o; else if (4 < (r = a[o])) l[i++] = 65533, t += r - 1; else { for (o &= 2 === r ? 31 : 3 === r ? 15 : 7; 1 < r && t < s;) o = o << 6 | 63 & e[t++], r--; 1 < r ? l[i++] = 65533 : o < 65536 ? l[i++] = o : (o -= 65536, l[i++] = 55296 | o >> 10 & 1023, l[i++] = 56320 | 1023 & o) } return l.length !== i && (l.subarray ? l = l.subarray(0, i) : l .length = i), n.applyFromCharCode(l) }(e = n.transformTo(o.uint8array ? "uint8array" : "array", e)) }, n.inherits(d, s), d.prototype.processChunk = function(e) { var t = n.transformTo(o.uint8array ? "uint8array" : "array", e.data); if (this.leftOver && this.leftOver.length) { if (o.uint8array) { var r = t; (t = new Uint8Array(r.length + this.leftOver.length)).set(this.leftOver, 0), t.set(r, this.leftOver.length) } else t = this.leftOver.concat(t); this.leftOver = null } var s = function(e, t) { var i; for ((t = t || e.length) > e.length && (t = e.length), i = t - 1; 0 <= i && 128 == (192 & e[i]);) i--; return i < 0 || 0 === i ? t : i + a[e[i]] > t ? i : t }(t), l = t; s !== t.length && (o.uint8array ? (l = t.subarray(0, s), this.leftOver = t.subarray(s, t.length)) : (l = t.slice(0, s), this.leftOver = t.slice(s, t.length))), this.push({ data: i.utf8decode(l), meta: e.meta }) }, d.prototype.flush = function() { this.leftOver && this.leftOver.length && (this.push({ data: i.utf8decode(this.leftOver), meta: {} }), this.leftOver = null) }, i.Utf8DecodeWorker = d, n.inherits(c, s), c.prototype.processChunk = function(e) { this.push({ data: i.utf8encode(e.data), meta: e.meta }) }, i.Utf8EncodeWorker = c }, { "./nodejsUtils": 14, "./stream/GenericWorker": 28, "./support": 30, "./utils": 32 }], 32: [function(e, t, i) { "use strict"; var n = e("./support"), o = e("./base64"), r = e("./nodejsUtils"), s = e("set-immediate-shim"), a = e("./external"); function l(e) { return e } function d(e, t) { for (var i = 0; i < e.length; ++i) t[i] = 255 & e.charCodeAt(i); return t } i.newBlob = function(e, t) { i.checkSupport("blob"); try { return new Blob([e], { type: t }) } catch (i) { try { var n = new(self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder); return n.append(e), n.getBlob(t) } catch (e) { throw new Error("Bug : can't construct the Blob.") } } }; var c = { stringifyByChunk: function(e, t, i) { var n = [], o = 0, r = e.length; if (r <= i) return String.fromCharCode.apply(null, e); for (; o < r;) "array" === t || "nodebuffer" === t ? n.push( String.fromCharCode.apply(null, e.slice(o, Math.min(o + i, r))) ) : n.push(String.fromCharCode.apply(null, e.subarray(o, Math.min( o + i, r)))), o += i; return n.join("") }, stringifyByChar: function(e) { for (var t = "", i = 0; i < e.length; i++) t += String.fromCharCode( e[i]); return t }, applyCanBeUsed: { uint8array: function() { try { return n.uint8array && 1 === String.fromCharCode.apply(null, new Uint8Array(1)).length } catch (e) { return !1 } }(), nodebuffer: function() { try { return n.nodebuffer && 1 === String.fromCharCode.apply(null, r.allocBuffer(1)).length } catch (e) { return !1 } }() } }; function h(e) { var t = 65536, n = i.getTypeOf(e), o = !0; if ("uint8array" === n ? o = c.applyCanBeUsed.uint8array : "nodebuffer" === n && (o = c.applyCanBeUsed.nodebuffer), o) for (; 1 < t;) try { return c.stringifyByChunk(e, n, t) } catch (e) { t = Math.floor(t / 2) } return c.stringifyByChar(e) } function u(e, t) { for (var i = 0; i < e.length; i++) t[i] = e[i]; return t } i.applyFromCharCode = h; var g = {}; g.string = { string: l, array: function(e) { return d(e, new Array(e.length)) }, arraybuffer: function(e) { return g.string.uint8array(e).buffer }, uint8array: function(e) { return d(e, new Uint8Array(e.length)) }, nodebuffer: function(e) { return d(e, r.allocBuffer(e.length)) } }, g.array = { string: h, array: l, arraybuffer: function(e) { return new Uint8Array(e).buffer }, uint8array: function(e) { return new Uint8Array(e) }, nodebuffer: function(e) { return r.newBufferFrom(e) } }, g.arraybuffer = { string: function(e) { return h(new Uint8Array(e)) }, array: function(e) { return u(new Uint8Array(e), new Array(e.byteLength)) }, arraybuffer: l, uint8array: function(e) { return new Uint8Array(e) }, nodebuffer: function(e) { return r.newBufferFrom(new Uint8Array(e)) } }, g.uint8array = { string: h, array: function(e) { return u(e, new Array(e.length)) }, arraybuffer: function(e) { return e.buffer }, uint8array: l, nodebuffer: function(e) { return r.newBufferFrom(e) } }, g.nodebuffer = { string: h, array: function(e) { return u(e, new Array(e.length)) }, arraybuffer: function(e) { return g.nodebuffer.uint8array(e).buffer }, uint8array: function(e) { return u(e, new Uint8Array(e.length)) }, nodebuffer: l }, i.transformTo = function(e, t) { if (t = t || "", !e) return t; i.checkSupport(e); var n = i.getTypeOf(t); return g[n][e](t) }, i.getTypeOf = function(e) { return "string" == typeof e ? "string" : "[object Array]" === Object.prototype.toString.call(e) ? "array" : n.nodebuffer && r.isBuffer( e) ? "nodebuffer" : n.uint8array && e instanceof Uint8Array ? "uint8array" : n.arraybuffer && e instanceof ArrayBuffer ? "arraybuffer" : void 0 }, i.checkSupport = function(e) { if (!n[e.toLowerCase()]) throw new Error(e + " is not supported by this platform") }, i.MAX_VALUE_16BITS = 65535, i.MAX_VALUE_32BITS = -1, i.pretty = function(e) { var t, i, n = ""; for (i = 0; i < (e || "").length; i++) n += "\\x" + ((t = e.charCodeAt( i)) < 16 ? "0" : "") + t.toString(16).toUpperCase(); return n }, i.delay = function(e, t, i) { s((function() { e.apply(i || null, t || []) })) }, i.inherits = function(e, t) { function i() {} i.prototype = t.prototype, e.prototype = new i }, i.extend = function() { var e, t, i = {}; for (e = 0; e < arguments.length; e++) for (t in arguments[e]) arguments[e].hasOwnProperty(t) && void 0 === i[t] && (i[t] = arguments[e][t]); return i }, i.prepareContent = function(e, t, r, s, l) { return a.Promise.resolve(t).then((function(e) { return n.blob && (e instanceof Blob || -1 !== [ "[object File]", "[object Blob]" ].indexOf(Object.prototype.toString.call(e))) && "undefined" != typeof FileReader ? new a.Promise((function(t, i) { var n = new FileReader; n.onload = function(e) { t(e.target.result) }, n.onerror = function(e) { i(e.target.error) }, n.readAsArrayBuffer(e) })) : e })).then((function(t) { var c = i.getTypeOf(t); return c ? ("arraybuffer" === c ? t = i.transformTo( "uint8array", t) : "string" === c && (l ? t = o.decode(t) : r && !0 !== s && (t = function(e) { return d(e, n.uint8array ? new Uint8Array(e.length) : new Array(e.length)) }(t))), t) : a.Promise.reject(new Error( "Can't read the data of '" + e + "'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?" )) })) } }, { "./base64": 1, "./external": 6, "./nodejsUtils": 14, "./support": 30, "set-immediate-shim": 54 }], 33: [function(e, t, i) { "use strict"; var n = e("./reader/readerFor"), o = e("./utils"), r = e("./signature"), s = e("./zipEntry"), a = (e("./utf8"), e("./support")); function l(e) { this.files = [], this.loadOptions = e } l.prototype = { checkSignature: function(e) { if (!this.reader.readAndCheckSignature(e)) { this.reader.index -= 4; var t = this.reader.readString(4); throw new Error("Corrupted zip or bug: unexpected signature (" + o.pretty(t) + ", expected " + o.pretty(e) + ")") } }, isSignature: function(e, t) { var i = this.reader.index; this.reader.setIndex(e); var n = this.reader.readString(4) === t; return this.reader.setIndex(i), n }, readBlockEndOfCentral: function() { this.diskNumber = this.reader.readInt(2), this.diskWithCentralDirStart = this.reader.readInt(2), this.centralDirRecordsOnThisDisk = this.reader.readInt(2), this.centralDirRecords = this.reader.readInt( 2), this.centralDirSize = this.reader.readInt(4), this.centralDirOffset = this.reader.readInt(4), this.zipCommentLength = this.reader.readInt( 2); var e = this.reader.readData(this.zipCommentLength), t = a.uint8array ? "uint8array" : "array", i = o.transformTo(t, e); this.zipComment = this.loadOptions.decodeFileName(i) }, readBlockZip64EndOfCentral: function() { this.zip64EndOfCentralSize = this.reader.readInt(8), this.reader .skip(4), this.diskNumber = this.reader.readInt(4), this.diskWithCentralDirStart = this.reader.readInt(4), this.centralDirRecordsOnThisDisk = this.reader.readInt(8), this.centralDirRecords = this.reader.readInt( 8), this.centralDirSize = this.reader.readInt(8), this.centralDirOffset = this.reader.readInt(8), this.zip64ExtensibleData = {}; for (var e, t, i, n = this.zip64EndOfCentralSize - 44; 0 < n;) e = this.reader.readInt(2), t = this.reader.readInt(4), i = this.reader .readData(t), this.zip64ExtensibleData[e] = { id: e, length: t, value: i } }, readBlockZip64EndOfCentralLocator: function() { if (this.diskWithZip64CentralDirStart = this.reader.readInt(4), this.relativeOffsetEndOfZip64CentralDir = this.reader.readInt( 8), this.disksCount = this.reader.readInt(4), 1 < this.disksCount ) throw new Error("Multi-volumes zip are not supported") }, readLocalFiles: function() { var e, t; for (e = 0; e < this.files.length; e++) t = this.files[e], this .reader.setIndex(t.localHeaderOffset), this.checkSignature(r.LOCAL_FILE_HEADER), t.readLocalPart(this.reader), t.handleUTF8(), t.processAttributes() }, readCentralDir: function() { var e; for (this.reader.setIndex(this.centralDirOffset); this.reader.readAndCheckSignature( r.CENTRAL_FILE_HEADER);)(e = new s({ zip64: this.zip64 }, this.loadOptions)).readCentralPart(this.reader), this.files .push(e); if (this.centralDirRecords !== this.files.length && 0 !== this.centralDirRecords && 0 === this.files.length) throw new Error( "Corrupted zip or bug: expected " + this.centralDirRecords + " records in central dir, got " + this.files.length) }, readEndOfCentral: function() { var e = this.reader.lastIndexOfSignature(r.CENTRAL_DIRECTORY_END); if (e < 0) throw this.isSignature(0, r.LOCAL_FILE_HEADER) ? new Error( "Corrupted zip: can't find end of central directory") : new Error( "Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html" ); this.reader.setIndex(e); var t = e; if (this.checkSignature(r.CENTRAL_DIRECTORY_END), this.readBlockEndOfCentral(), this.diskNumber === o.MAX_VALUE_16BITS || this.diskWithCentralDirStart === o.MAX_VALUE_16BITS || this.centralDirRecordsOnThisDisk === o.MAX_VALUE_16BITS || this.centralDirRecords === o.MAX_VALUE_16BITS || this.centralDirSize === o.MAX_VALUE_32BITS || this.centralDirOffset === o.MAX_VALUE_32BITS ) { if (this.zip64 = !0, (e = this.reader.lastIndexOfSignature(r.ZIP64_CENTRAL_DIRECTORY_LOCATOR)) < 0) throw new Error( "Corrupted zip: can't find the ZIP64 end of central directory locator" ); if (this.reader.setIndex(e), this.checkSignature(r.ZIP64_CENTRAL_DIRECTORY_LOCATOR), this.readBlockZip64EndOfCentralLocator(), !this.isSignature( this.relativeOffsetEndOfZip64CentralDir, r.ZIP64_CENTRAL_DIRECTORY_END ) && (this.relativeOffsetEndOfZip64CentralDir = this.reader.lastIndexOfSignature( r.ZIP64_CENTRAL_DIRECTORY_END), this.relativeOffsetEndOfZip64CentralDir < 0)) throw new Error( "Corrupted zip: can't find the ZIP64 end of central directory" ); this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir), this.checkSignature(r.ZIP64_CENTRAL_DIRECTORY_END), this.readBlockZip64EndOfCentral() } var i = this.centralDirOffset + this.centralDirSize; this.zip64 && (i += 20, i += 12 + this.zip64EndOfCentralSize); var n = t - i; if (0 < n) this.isSignature(t, r.CENTRAL_FILE_HEADER) || (this.reader .zero = n); else if (n < 0) throw new Error("Corrupted zip: missing " + Math.abs(n) + " bytes.") }, prepareReader: function(e) { this.reader = n(e) }, load: function(e) { this.prepareReader(e), this.readEndOfCentral(), this.readCentralDir(), this.readLocalFiles() } }, t.exports = l }, { "./reader/readerFor": 22, "./signature": 23, "./support": 30, "./utf8": 31, "./utils": 32, "./zipEntry": 34 }], 34: [function(e, t, i) { "use strict"; var n = e("./reader/readerFor"), o = e("./utils"), r = e("./compressedObject"), s = e("./crc32"), a = e("./utf8"), l = e("./compressions"), d = e("./support"); function c(e, t) { this.options = e, this.loadOptions = t } c.prototype = { isEncrypted: function() { return 1 == (1 & this.bitFlag) }, useUTF8: function() { return 2048 == (2048 & this.bitFlag) }, readLocalPart: function(e) { var t, i; if (e.skip(22), this.fileNameLength = e.readInt(2), i = e.readInt( 2), this.fileName = e.readData(this.fileNameLength), e.skip(i), - 1 === this.compressedSize || -1 === this.uncompressedSize) throw new Error( "Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)" ); if (null === (t = function(e) { for (var t in l) if (l.hasOwnProperty(t) && l[t].magic === e) return l[t]; return null }(this.compressionMethod))) throw new Error( "Corrupted zip : compression " + o.pretty(this.compressionMethod) + " unknown (inner file : " + o.transformTo("string", this.fileName) + ")"); this.decompressed = new r(this.compressedSize, this.uncompressedSize, this.crc32, t, e.readData(this.compressedSize)) }, readCentralPart: function(e) { this.versionMadeBy = e.readInt(2), e.skip(2), this.bitFlag = e.readInt( 2), this.compressionMethod = e.readString(2), this.date = e.readDate(), this.crc32 = e.readInt(4), this.compressedSize = e.readInt(4), this.uncompressedSize = e.readInt(4); var t = e.readInt(2); if (this.extraFieldsLength = e.readInt(2), this.fileCommentLength = e.readInt(2), this.diskNumberStart = e.readInt(2), this.internalFileAttributes = e.readInt(2), this.externalFileAttributes = e.readInt(4), this .localHeaderOffset = e.readInt(4), this.isEncrypted()) throw new Error( "Encrypted zip are not supported"); e.skip(t), this.readExtraFields(e), this.parseZIP64ExtraField(e), this.fileComment = e.readData(this.fileCommentLength) }, processAttributes: function() { this.unixPermissions = null, this.dosPermissions = null; var e = this.versionMadeBy >> 8; this.dir = !!(16 & this.externalFileAttributes), 0 == e && ( this.dosPermissions = 63 & this.externalFileAttributes), 3 == e && (this.unixPermissions = this.externalFileAttributes >> 16 & 65535), this.dir || "/" !== this.fileNameStr.slice(-1) || ( this.dir = !0) }, parseZIP64ExtraField: function(e) { if (this.extraFields[1]) { var t = n(this.extraFields[1].value); this.uncompressedSize === o.MAX_VALUE_32BITS && (this.uncompressedSize = t.readInt(8)), this.compressedSize === o.MAX_VALUE_32BITS && (this.compressedSize = t.readInt(8)), this.localHeaderOffset === o.MAX_VALUE_32BITS && (this.localHeaderOffset = t.readInt(8)), this.diskNumberStart === o.MAX_VALUE_32BITS && (this.diskNumberStart = t.readInt(4)) } }, readExtraFields: function(e) { var t, i, n, o = e.index + this.extraFieldsLength; for (this.extraFields || (this.extraFields = {}); e.index + 4 < o;) t = e.readInt(2), i = e.readInt(2), n = e.readData(i), this.extraFields[t] = { id: t, length: i, value: n }; e.setIndex(o) }, handleUTF8: function() { var e = d.uint8array ? "uint8array" : "array"; if (this.useUTF8()) this.fileNameStr = a.utf8decode(this.fileName), this.fileCommentStr = a.utf8decode(this.fileComment); else { var t = this.findExtraFieldUnicodePath(); if (null !== t) this.fileNameStr = t; else { var i = o.transformTo(e, this.fileName); this.fileNameStr = this.loadOptions.decodeFileName(i) } var n = this.findExtraFieldUnicodeComment(); if (null !== n) this.fileCommentStr = n; else { var r = o.transformTo(e, this.fileComment); this.fileCommentStr = this.loadOptions.decodeFileName(r) } } }, findExtraFieldUnicodePath: function() { var e = this.extraFields[28789]; if (e) { var t = n(e.value); return 1 !== t.readInt(1) || s(this.fileName) !== t.readInt(4) ? null : a.utf8decode(t.readData(e.length - 5)) } return null }, findExtraFieldUnicodeComment: function() { var e = this.extraFields[25461]; if (e) { var t = n(e.value); return 1 !== t.readInt(1) || s(this.fileComment) !== t.readInt( 4) ? null : a.utf8decode(t.readData(e.length - 5)) } return null } }, t.exports = c }, { "./compressedObject": 2, "./compressions": 3, "./crc32": 4, "./reader/readerFor": 22, "./support": 30, "./utf8": 31, "./utils": 32 }], 35: [function(e, t, i) { "use strict"; function n(e, t, i) { this.name = e, this.dir = i.dir, this.date = i.date, this.comment = i.comment, this.unixPermissions = i.unixPermissions, this.dosPermissions = i.dosPermissions, this._data = t, this._dataBinary = i.binary, this.options = { compression: i.compression, compressionOptions: i.compressionOptions } } var o = e("./stream/StreamHelper"), r = e("./stream/DataWorker"), s = e("./utf8"), a = e("./compressedObject"), l = e("./stream/GenericWorker"); n.prototype = { internalStream: function(e) { var t = null, i = "string"; try { if (!e) throw new Error("No output type specified."); var n = "string" === (i = e.toLowerCase()) || "text" === i; "binarystring" !== i && "text" !== i || (i = "string"), t = this._decompressWorker(); var r = !this._dataBinary; r && !n && (t = t.pipe(new s.Utf8EncodeWorker)), !r && n && (t = t.pipe(new s.Utf8DecodeWorker)) } catch (e) { (t = new l("error")).error(e) } return new o(t, i, "") }, async: function(e, t) { return this.internalStream(e).accumulate(t) }, nodeStream: function(e, t) { return this.internalStream(e || "nodebuffer").toNodejsStream(t) }, _compressWorker: function(e, t) { if (this._data instanceof a && this._data.compression.magic === e.magic) return this._data.getCompressedWorker(); var i = this._decompressWorker(); return this._dataBinary || (i = i.pipe(new s.Utf8EncodeWorker)), a.createWorkerFrom(i, e, t) }, _decompressWorker: function() { return this._data instanceof a ? this._data.getContentWorker() : this._data instanceof l ? this._data : new r(this._data) } }; for (var d = ["asText", "asBinary", "asNodeBuffer", "asUint8Array", "asArrayBuffer" ], c = function() { throw new Error( "This method has been removed in JSZip 3.0, please check the upgrade guide." ) }, h = 0; h < d.length; h++) n.prototype[d[h]] = c; t.exports = n }, { "./compressedObject": 2, "./stream/DataWorker": 27, "./stream/GenericWorker": 28, "./stream/StreamHelper": 29, "./utf8": 31 }], 36: [function(e, t, n) { (function(e) { "use strict"; var i, n, o = e.MutationObserver || e.WebKitMutationObserver; if (o) { var r = 0, s = new o(c), a = e.document.createTextNode(""); s.observe(a, { characterData: !0 }), i = function() { a.data = r = ++r % 2 } } else if (e.setImmediate || void 0 === e.MessageChannel) i = "document" in e && "onreadystatechange" in e.document.createElement( "script") ? function() { var t = e.document.createElement("script"); t.onreadystatechange = function() { c(), t.onreadystatechange = null, t.parentNode.removeChild(t), t = null }, e.document.documentElement.appendChild(t) } : function() { setTimeout(c, 0) }; else { var l = new e.MessageChannel; l.port1.onmessage = c, i = function() { l.port2.postMessage(0) } } var d = []; function c() { var e, t; n = !0; for (var i = d.length; i;) { for (t = d, d = [], e = -1; ++e < i;) t[e](); i = d.length } n = !1 } t.exports = function(e) { 1 !== d.push(e) || n || i() } }).call(this, void 0 !== i.g ? i.g : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) }, {}], 37: [function(e, t, i) { "use strict"; var n = e("immediate"); function o() {} var r = {}, s = ["REJECTED"], a = ["FULFILLED"], l = ["PENDING"]; function d(e) { if ("function" != typeof e) throw new TypeError( "resolver must be a function"); this.state = l, this.queue = [], this.outcome = void 0, e !== o && g(this, e) } function c(e, t, i) { this.promise = e, "function" == typeof t && (this.onFulfilled = t, this.callFulfilled = this.otherCallFulfilled), "function" == typeof i && (this.onRejected = i, this.callRejected = this.otherCallRejected) } function h(e, t, i) { n((function() { var n; try { n = t(i) } catch (n) { return r.reject(e, n) } n === e ? r.reject(e, new TypeError( "Cannot resolve promise with itself")) : r.resolve(e, n) })) } function u(e) { var t = e && e.then; if (e && ("object" == typeof e || "function" == typeof e) && "function" == typeof t) return function() { t.apply(e, arguments) } } function g(e, t) { var i = !1; function n(t) { i || (i = !0, r.reject(e, t)) } function o(t) { i || (i = !0, r.resolve(e, t)) } var s = p((function() { t(o, n) })); "error" === s.status && n(s.value) } function p(e, t) { var i = {}; try { i.value = e(t), i.status = "success" } catch (e) { i.status = "error", i.value = e } return i }(t.exports = d).prototype.finally = function(e) { if ("function" != typeof e) return this; var t = this.constructor; return this.then((function(i) { return t.resolve(e()).then((function() { return i })) }), (function(i) { return t.resolve(e()).then((function() { throw i })) })) }, d.prototype.catch = function(e) { return this.then(null, e) }, d.prototype.then = function(e, t) { if ("function" != typeof e && this.state === a || "function" != typeof t && this.state === s) return this; var i = new this.constructor(o); return this.state !== l ? h(i, this.state === a ? e : t, this.outcome) : this.queue.push(new c(i, e, t)), i }, c.prototype.callFulfilled = function(e) { r.resolve(this.promise, e) }, c.prototype.otherCallFulfilled = function(e) { h(this.promise, this.onFulfilled, e) }, c.prototype.callRejected = function(e) { r.reject(this.promise, e) }, c.prototype.otherCallRejected = function(e) { h(this.promise, this.onRejected, e) }, r.resolve = function(e, t) { var i = p(u, t); if ("error" === i.status) return r.reject(e, i.value); var n = i.value; if (n) g(e, n); else { e.state = a, e.outcome = t; for (var o = -1, s = e.queue.length; ++o < s;) e.queue[o].callFulfilled( t) } return e }, r.reject = function(e, t) { e.state = s, e.outcome = t; for (var i = -1, n = e.queue.length; ++i < n;) e.queue[i].callRejected( t); return e }, d.resolve = function(e) { return e instanceof this ? e : r.resolve(new this(o), e) }, d.reject = function(e) { var t = new this(o); return r.reject(t, e) }, d.all = function(e) { var t = this; if ("[object Array]" !== Object.prototype.toString.call(e)) return this.reject(new TypeError("must be an array")); var i = e.length, n = !1; if (!i) return this.resolve([]); for (var s = new Array(i), a = 0, l = -1, d = new this(o); ++l < i;) c(e[l], l); return d; function c(e, o) { t.resolve(e).then((function(e) { s[o] = e, ++a !== i || n || (n = !0, r.resolve(d, s)) }), (function(e) { n || (n = !0, r.reject(d, e)) })) } }, d.race = function(e) { if ("[object Array]" !== Object.prototype.toString.call(e)) return this.reject(new TypeError("must be an array")); var t = e.length, i = !1; if (!t) return this.resolve([]); for (var n, s = -1, a = new this(o); ++s < t;) n = e[s], this.resolve( n).then((function(e) { i || (i = !0, r.resolve(a, e)) }), (function(e) { i || (i = !0, r.reject(a, e)) })); return a } }, { immediate: 36 }], 38: [function(e, t, i) { "use strict"; var n = {}; (0, e("./lib/utils/common").assign)(n, e("./lib/deflate"), e( "./lib/inflate"), e("./lib/zlib/constants")), t.exports = n }, { "./lib/deflate": 39, "./lib/inflate": 40, "./lib/utils/common": 41, "./lib/zlib/constants": 44 }], 39: [function(e, t, i) { "use strict"; var n = e("./zlib/deflate"), o = e("./utils/common"), r = e("./utils/strings"), s = e("./zlib/messages"), a = e("./zlib/zstream"), l = Object.prototype.toString; function d(e) { if (!(this instanceof d)) return new d(e); this.options = o.assign({ level: -1, method: 8, chunkSize: 16384, windowBits: 15, memLevel: 8, strategy: 0, to: "" }, e || {}); var t = this.options; t.raw && 0 < t.windowBits ? t.windowBits = -t.windowBits : t.gzip && 0 < t.windowBits && t.windowBits < 16 && (t.windowBits += 16), this.err = 0, this.msg = "", this.ended = !1, this.chunks = [], this.strm = new a, this.strm.avail_out = 0; var i = n.deflateInit2(this.strm, t.level, t.method, t.windowBits, t.memLevel, t.strategy); if (0 !== i) throw new Error(s[i]); if (t.header && n.deflateSetHeader(this.strm, t.header), t.dictionary) { var c; if (c = "string" == typeof t.dictionary ? r.string2buf(t.dictionary) : "[object ArrayBuffer]" === l.call(t.dictionary) ? new Uint8Array( t.dictionary) : t.dictionary, 0 !== (i = n.deflateSetDictionary( this.strm, c))) throw new Error(s[i]); this._dict_set = !0 } } function c(e, t) { var i = new d(t); if (i.push(e, !0), i.err) throw i.msg || s[i.err]; return i.result } d.prototype.push = function(e, t) { var i, s, a = this.strm, d = this.options.chunkSize; if (this.ended) return !1; s = t === ~~t ? t : !0 === t ? 4 : 0, "string" == typeof e ? a.input = r.string2buf(e) : "[object ArrayBuffer]" === l.call(e) ? a.input = new Uint8Array(e) : a.input = e, a.next_in = 0, a.avail_in = a.input .length; do { if (0 === a.avail_out && (a.output = new o.Buf8(d), a.next_out = 0, a.avail_out = d), 1 !== (i = n.deflate(a, s)) && 0 !== i) return this.onEnd(i), !(this.ended = !0); 0 !== a.avail_out && (0 !== a.avail_in || 4 !== s && 2 !== s) || ("string" === this.options.to ? this.onData(r.buf2binstring(o.shrinkBuf( a.output, a.next_out))) : this.onData(o.shrinkBuf(a.output, a .next_out))) } while ((0 < a.avail_in || 0 === a.avail_out) && 1 !== i); return 4 === s ? (i = n.deflateEnd(this.strm), this.onEnd(i), this.ended = !0, 0 === i) : 2 !== s || (this.onEnd(0), !(a.avail_out = 0)) }, d.prototype.onData = function(e) { this.chunks.push(e) }, d.prototype.onEnd = function(e) { 0 === e && ("string" === this.options.to ? this.result = this.chunks .join("") : this.result = o.flattenChunks(this.chunks)), this.chunks = [], this.err = e, this.msg = this.strm.msg }, i.Deflate = d, i.deflate = c, i.deflateRaw = function(e, t) { return (t = t || {}).raw = !0, c(e, t) }, i.gzip = function(e, t) { return (t = t || {}).gzip = !0, c(e, t) } }, { "./utils/common": 41, "./utils/strings": 42, "./zlib/deflate": 46, "./zlib/messages": 51, "./zlib/zstream": 53 }], 40: [function(e, t, i) { "use strict"; var n = e("./zlib/inflate"), o = e("./utils/common"), r = e("./utils/strings"), s = e("./zlib/constants"), a = e("./zlib/messages"), l = e("./zlib/zstream"), d = e("./zlib/gzheader"), c = Object.prototype.toString; function h(e) { if (!(this instanceof h)) return new h(e); this.options = o.assign({ chunkSize: 16384, windowBits: 0, to: "" }, e || {}); var t = this.options; t.raw && 0 <= t.windowBits && t.windowBits < 16 && (t.windowBits = - t.windowBits, 0 === t.windowBits && (t.windowBits = -15)), !(0 <= t.windowBits && t.windowBits < 16) || e && e.windowBits || (t.windowBits += 32), 15 < t.windowBits && t.windowBits < 48 && 0 == (15 & t.windowBits) && (t.windowBits |= 15), this.err = 0, this.msg = "", this.ended = ! 1, this.chunks = [], this.strm = new l, this.strm.avail_out = 0; var i = n.inflateInit2(this.strm, t.windowBits); if (i !== s.Z_OK) throw new Error(a[i]); this.header = new d, n.inflateGetHeader(this.strm, this.header) } function u(e, t) { var i = new h(t); if (i.push(e, !0), i.err) throw i.msg || a[i.err]; return i.result } h.prototype.push = function(e, t) { var i, a, l, d, h, u, g = this.strm, p = this.options.chunkSize, m = this.options.dictionary, f = !1; if (this.ended) return !1; a = t === ~~t ? t : !0 === t ? s.Z_FINISH : s.Z_NO_FLUSH, "string" == typeof e ? g.input = r.binstring2buf(e) : "[object ArrayBuffer]" === c.call(e) ? g.input = new Uint8Array( e) : g.input = e, g.next_in = 0, g.avail_in = g.input.length; do { if (0 === g.avail_out && (g.output = new o.Buf8(p), g.next_out = 0, g.avail_out = p), (i = n.inflate(g, s.Z_NO_FLUSH)) === s.Z_NEED_DICT && m && (u = "string" == typeof m ? r.string2buf(m) : "[object ArrayBuffer]" === c.call(m) ? new Uint8Array(m) : m, i = n.inflateSetDictionary(this.strm, u)), i === s.Z_BUF_ERROR && !0 === f && (i = s.Z_OK, f = !1), i !== s.Z_STREAM_END && i !== s.Z_OK) return this.onEnd(i), !(this.ended = !0); g.next_out && (0 !== g.avail_out && i !== s.Z_STREAM_END && (0 !== g.avail_in || a !== s.Z_FINISH && a !== s.Z_SYNC_FLUSH) || ( "string" === this.options.to ? (l = r.utf8border(g.output, g.next_out), d = g.next_out - l, h = r.buf2string(g.output, l), g.next_out = d, g.avail_out = p - d, d && o.arraySet(g.output, g.output, l, d, 0), this.onData(h)) : this.onData(o.shrinkBuf(g.output, g.next_out)))), 0 === g.avail_in && 0 === g.avail_out && (f = ! 0) } while ((0 < g.avail_in || 0 === g.avail_out) && i !== s.Z_STREAM_END); return i === s.Z_STREAM_END && (a = s.Z_FINISH), a === s.Z_FINISH ? (i = n.inflateEnd(this.strm), this.onEnd(i), this.ended = !0, i === s.Z_OK) : a !== s.Z_SYNC_FLUSH || (this.onEnd(s.Z_OK), !(g.avail_out = 0)) }, h.prototype.onData = function(e) { this.chunks.push(e) }, h.prototype.onEnd = function(e) { e === s.Z_OK && ("string" === this.options.to ? this.result = this.chunks.join("") : this.result = o.flattenChunks(this.chunks) ), this.chunks = [], this.err = e, this.msg = this.strm.msg }, i.Inflate = h, i.inflate = u, i.inflateRaw = function(e, t) { return (t = t || {}).raw = !0, u(e, t) }, i.ungzip = u }, { "./utils/common": 41, "./utils/strings": 42, "./zlib/constants": 44, "./zlib/gzheader": 47, "./zlib/inflate": 49, "./zlib/messages": 51, "./zlib/zstream": 53 }], 41: [function(e, t, i) { "use strict"; var n = "undefined" != typeof Uint8Array && "undefined" != typeof Uint16Array && "undefined" != typeof Int32Array; i.assign = function(e) { for (var t = Array.prototype.slice.call(arguments, 1); t.length;) { var i = t.shift(); if (i) { if ("object" != typeof i) throw new TypeError(i + "must be non-object"); for (var n in i) i.hasOwnProperty(n) && (e[n] = i[n]) } } return e }, i.shrinkBuf = function(e, t) { return e.length === t ? e : e.subarray ? e.subarray(0, t) : (e.length = t, e) }; var o = { arraySet: function(e, t, i, n, o) { if (t.subarray && e.subarray) e.set(t.subarray(i, i + n), o); else for (var r = 0; r < n; r++) e[o + r] = t[i + r] }, flattenChunks: function(e) { var t, i, n, o, r, s; for (t = n = 0, i = e.length; t < i; t++) n += e[t].length; for (s = new Uint8Array(n), t = o = 0, i = e.length; t < i; t++) r = e[t], s.set(r, o), o += r.length; return s } }, r = { arraySet: function(e, t, i, n, o) { for (var r = 0; r < n; r++) e[o + r] = t[i + r] }, flattenChunks: function(e) { return [].concat.apply([], e) } }; i.setTyped = function(e) { e ? (i.Buf8 = Uint8Array, i.Buf16 = Uint16Array, i.Buf32 = Int32Array, i.assign(i, o)) : (i.Buf8 = Array, i.Buf16 = Array, i.Buf32 = Array, i.assign(i, r)) }, i.setTyped(n) }, {}], 42: [function(e, t, i) { "use strict"; var n = e("./common"), o = !0, r = !0; try { String.fromCharCode.apply(null, [0]) } catch (e) { o = !1 } try { String.fromCharCode.apply(null, new Uint8Array(1)) } catch (e) { r = !1 } for (var s = new n.Buf8(256), a = 0; a < 256; a++) s[a] = 252 <= a ? 6 : 248 <= a ? 5 : 240 <= a ? 4 : 224 <= a ? 3 : 192 <= a ? 2 : 1; function l(e, t) { if (t < 65537 && (e.subarray && r || !e.subarray && o)) return String.fromCharCode.apply(null, n.shrinkBuf(e, t)); for (var i = "", s = 0; s < t; s++) i += String.fromCharCode(e[s]); return i } s[254] = s[254] = 1, i.string2buf = function(e) { var t, i, o, r, s, a = e.length, l = 0; for (r = 0; r < a; r++) 55296 == (64512 & (i = e.charCodeAt(r))) && r + 1 < a && 56320 == (64512 & (o = e.charCodeAt(r + 1))) && (i = 65536 + (i - 55296 << 10) + (o - 56320), r++), l += i < 128 ? 1 : i < 2048 ? 2 : i < 65536 ? 3 : 4; for (t = new n.Buf8(l), r = s = 0; s < l; r++) 55296 == (64512 & (i = e.charCodeAt(r))) && r + 1 < a && 56320 == (64512 & (o = e .charCodeAt(r + 1))) && (i = 65536 + (i - 55296 << 10) + (o - 56320), r++), i < 128 ? t[s++] = i : (i < 2048 ? t[s++] = 192 | i >>> 6 : (i < 65536 ? t[s++] = 224 | i >>> 12 : (t[s++] = 240 | i >>> 18, t[s++] = 128 | i >>> 12 & 63), t[s++] = 128 | i >>> 6 & 63), t[s++] = 128 | 63 & i); return t }, i.buf2binstring = function(e) { return l(e, e.length) }, i.binstring2buf = function(e) { for (var t = new n.Buf8(e.length), i = 0, o = t.length; i < o; i++) t[i] = e.charCodeAt(i); return t }, i.buf2string = function(e, t) { var i, n, o, r, a = t || e.length, d = new Array(2 * a); for (i = n = 0; i < a;) if ((o = e[i++]) < 128) d[n++] = o; else if (4 < (r = s[o])) d[n++] = 65533, i += r - 1; else { for (o &= 2 === r ? 31 : 3 === r ? 15 : 7; 1 < r && i < a;) o = o << 6 | 63 & e[i++], r--; 1 < r ? d[n++] = 65533 : o < 65536 ? d[n++] = o : (o -= 65536, d[ n++] = 55296 | o >> 10 & 1023, d[n++] = 56320 | 1023 & o) } return l(d, n) }, i.utf8border = function(e, t) { var i; for ((t = t || e.length) > e.length && (t = e.length), i = t - 1; 0 <= i && 128 == (192 & e[i]);) i--; return i < 0 || 0 === i ? t : i + s[e[i]] > t ? i : t } }, { "./common": 41 }], 43: [function(e, t, i) { "use strict"; t.exports = function(e, t, i, n) { for (var o = 65535 & e | 0, r = e >>> 16 & 65535 | 0, s = 0; 0 !== i;) { for (i -= s = 2e3 < i ? 2e3 : i; r = r + (o = o + t[n++] | 0) | 0, --s;); o %= 65521, r %= 65521 } return o | r << 16 | 0 } }, {}], 44: [function(e, t, i) { "use strict"; t.exports = { Z_NO_FLUSH: 0, Z_PARTIAL_FLUSH: 1, Z_SYNC_FLUSH: 2, Z_FULL_FLUSH: 3, Z_FINISH: 4, Z_BLOCK: 5, Z_TREES: 6, Z_OK: 0, Z_STREAM_END: 1, Z_NEED_DICT: 2, Z_ERRNO: -1, Z_STREAM_ERROR: -2, Z_DATA_ERROR: -3, Z_BUF_ERROR: -5, Z_NO_COMPRESSION: 0, Z_BEST_SPEED: 1, Z_BEST_COMPRESSION: 9, Z_DEFAULT_COMPRESSION: -1, Z_FILTERED: 1, Z_HUFFMAN_ONLY: 2, Z_RLE: 3, Z_FIXED: 4, Z_DEFAULT_STRATEGY: 0, Z_BINARY: 0, Z_TEXT: 1, Z_UNKNOWN: 2, Z_DEFLATED: 8 } }, {}], 45: [function(e, t, i) { "use strict"; var n = function() { for (var e, t = [], i = 0; i < 256; i++) { e = i; for (var n = 0; n < 8; n++) e = 1 & e ? 3988292384 ^ e >>> 1 : e >>> 1; t[i] = e } return t }(); t.exports = function(e, t, i, o) { var r = n, s = o + i; e ^= -1; for (var a = o; a < s; a++) e = e >>> 8 ^ r[255 & (e ^ t[a])]; return -1 ^ e } }, {}], 46: [function(e, t, i) { "use strict"; var n, o = e("../utils/common"), r = e("./trees"), s = e("./adler32"), a = e("./crc32"), l = e("./messages"), d = -2, c = 258, h = 262, u = 113; function g(e, t) { return e.msg = l[t], t } function p(e) { return (e << 1) - (4 < e ? 9 : 0) } function m(e) { for (var t = e.length; 0 <= --t;) e[t] = 0 } function f(e) { var t = e.state, i = t.pending; i > e.avail_out && (i = e.avail_out), 0 !== i && (o.arraySet(e.output, t.pending_buf, t.pending_out, i, e.next_out), e.next_out += i, t.pending_out += i, e.total_out += i, e.avail_out -= i, t.pending -= i, 0 === t.pending && (t.pending_out = 0)) } function _(e, t) { r._tr_flush_block(e, 0 <= e.block_start ? e.block_start : -1, e.strstart - e.block_start, t), e.block_start = e.strstart, f(e.strm) } function b(e, t) { e.pending_buf[e.pending++] = t } function v(e, t) { e.pending_buf[e.pending++] = t >>> 8 & 255, e.pending_buf[e.pending++] = 255 & t } function w(e, t) { var i, n, o = e.max_chain_length, r = e.strstart, s = e.prev_length, a = e.nice_match, l = e.strstart > e.w_size - h ? e.strstart - (e.w_size - h) : 0, d = e.window, u = e.w_mask, g = e.prev, p = e.strstart + c, m = d[r + s - 1], f = d[r + s]; e.prev_length >= e.good_match && (o >>= 2), a > e.lookahead && (a = e.lookahead); do { if (d[(i = t) + s] === f && d[i + s - 1] === m && d[i] === d[r] && d[++i] === d[r + 1]) { r += 2, i++; do {} while (d[++r] === d[++i] && d[++r] === d[++i] && d[++r] === d[++i] && d[++r] === d[++i] && d[++r] === d[++i] && d[++r] === d[++i] && d[++r] === d[++i] && d[++r] === d[++i] && r < p); if (n = c - (p - r), r = p - c, s < n) { if (e.match_start = t, a <= (s = n)) break; m = d[r + s - 1], f = d[r + s] } } } while ((t = g[t & u]) > l && 0 != --o); return s <= e.lookahead ? s : e.lookahead } function C(e) { var t, i, n, r, l, d, c, u, g, p, m = e.w_size; do { if (r = e.window_size - e.lookahead - e.strstart, e.strstart >= m + (m - h)) { for (o.arraySet(e.window, e.window, m, m, 0), e.match_start -= m, e.strstart -= m, e.block_start -= m, t = i = e.hash_size; n = e .head[--t], e.head[t] = m <= n ? n - m : 0, --i;); for (t = i = m; n = e.prev[--t], e.prev[t] = m <= n ? n - m : 0, -- i;); r += m } if (0 === e.strm.avail_in) break; if (d = e.strm, c = e.window, u = e.strstart + e.lookahead, p = void 0, (g = r) < (p = d.avail_in) && (p = g), i = 0 === p ? 0 : (d.avail_in -= p, o.arraySet(c, d.input, d.next_in, p, u), 1 === d.state.wrap ? d.adler = s(d.adler, c, p, u) : 2 === d.state.wrap && (d.adler = a(d.adler, c, p, u)), d.next_in += p, d.total_in += p, p), e.lookahead += i, e.lookahead + e.insert >= 3) for (l = e.strstart - e.insert, e.ins_h = e.window[l], e.ins_h = (e.ins_h << e.hash_shift ^ e.window[l + 1]) & e.hash_mask; e.insert && (e.ins_h = (e.ins_h << e.hash_shift ^ e.window[l + 3 - 1]) & e.hash_mask, e.prev[l & e.w_mask] = e.head[e.ins_h], e.head[e.ins_h] = l, l++, e.insert--, !(e.lookahead + e.insert < 3));); } while (e.lookahead < h && 0 !== e.strm.avail_in) } function y(e, t) { for (var i, n;;) { if (e.lookahead < h) { if (C(e), e.lookahead < h && 0 === t) return 1; if (0 === e.lookahead) break } if (i = 0, e.lookahead >= 3 && (e.ins_h = (e.ins_h << e.hash_shift ^ e.window[e.strstart + 3 - 1]) & e.hash_mask, i = e.prev[e.strstart & e.w_mask] = e.head[e.ins_h], e.head[e.ins_h] = e.strstart), 0 !== i && e.strstart - i <= e.w_size - h && (e.match_length = w(e, i)), e.match_length >= 3) if (n = r._tr_tally(e, e.strstart - e.match_start, e.match_length - 3), e.lookahead -= e.match_length, e.match_length <= e.max_lazy_match && e.lookahead >= 3) { for (e.match_length--; e.strstart++, e.ins_h = (e.ins_h << e.hash_shift ^ e.window[e.strstart + 3 - 1]) & e.hash_mask, i = e.prev[e.strstart & e.w_mask] = e.head[e.ins_h], e.head[e.ins_h] = e.strstart, 0 != --e.match_length;); e.strstart++ } else e.strstart += e.match_length, e.match_length = 0, e.ins_h = e.window[e.strstart], e.ins_h = (e.ins_h << e.hash_shift ^ e.window[ e.strstart + 1]) & e.hash_mask; else n = r._tr_tally(e, 0, e.window[e.strstart]), e.lookahead--, e.strstart++; if (n && (_(e, !1), 0 === e.strm.avail_out)) return 1 } return e.insert = e.strstart < 2 ? e.strstart : 2, 4 === t ? (_(e, ! 0), 0 === e.strm.avail_out ? 3 : 4) : e.last_lit && (_(e, !1), 0 === e.strm.avail_out) ? 1 : 2 } function S(e, t) { for (var i, n, o;;) { if (e.lookahead < h) { if (C(e), e.lookahead < h && 0 === t) return 1; if (0 === e.lookahead) break } if (i = 0, e.lookahead >= 3 && (e.ins_h = (e.ins_h << e.hash_shift ^ e.window[e.strstart + 3 - 1]) & e.hash_mask, i = e.prev[e.strstart & e.w_mask] = e.head[e.ins_h], e.head[e.ins_h] = e.strstart), e.prev_length = e.match_length, e.prev_match = e.match_start, e.match_length = 2, 0 !== i && e.prev_length < e.max_lazy_match && e.strstart - i <= e.w_size - h && (e.match_length = w(e, i), e.match_length <= 5 && (1 === e.strategy || 3 === e.match_length && 4096 < e.strstart - e.match_start) && (e.match_length = 2)), e.prev_length >= 3 && e.match_length <= e.prev_length) { for (o = e.strstart + e.lookahead - 3, n = r._tr_tally(e, e.strstart - 1 - e.prev_match, e.prev_length - 3), e.lookahead -= e.prev_length - 1, e.prev_length -= 2; ++e.strstart <= o && (e.ins_h = (e.ins_h << e.hash_shift ^ e.window[e.strstart + 3 - 1]) & e.hash_mask, i = e.prev[e.strstart & e.w_mask] = e.head[e.ins_h], e.head[e.ins_h] = e.strstart), 0 != --e.prev_length;); if (e.match_available = 0, e.match_length = 2, e.strstart++, n && (_(e, !1), 0 === e.strm.avail_out)) return 1 } else if (e.match_available) { if ((n = r._tr_tally(e, 0, e.window[e.strstart - 1])) && _(e, !1), e.strstart++, e.lookahead--, 0 === e.strm.avail_out) return 1 } else e.match_available = 1, e.strstart++, e.lookahead-- } return e.match_available && (n = r._tr_tally(e, 0, e.window[e.strstart - 1]), e.match_available = 0), e.insert = e.strstart < 2 ? e.strstart : 2, 4 === t ? (_(e, !0), 0 === e.strm.avail_out ? 3 : 4) : e.last_lit && (_(e, !1), 0 === e.strm.avail_out) ? 1 : 2 } function x(e, t, i, n, o) { this.good_length = e, this.max_lazy = t, this.nice_length = i, this.max_chain = n, this.func = o } function k() { this.strm = null, this.status = 0, this.pending_buf = null, this.pending_buf_size = 0, this.pending_out = 0, this.pending = 0, this.wrap = 0, this.gzhead = null, this.gzindex = 0, this.method = 8, this.last_flush = -1, this.w_size = 0, this.w_bits = 0, this.w_mask = 0, this.window = null, this.window_size = 0, this.prev = null, this.head = null, this.ins_h = 0, this.hash_size = 0, this.hash_bits = 0, this.hash_mask = 0, this.hash_shift = 0, this.block_start = 0, this.match_length = 0, this.prev_match = 0, this.match_available = 0, this.strstart = 0, this.match_start = 0, this.lookahead = 0, this.prev_length = 0, this.max_chain_length = 0, this.max_lazy_match = 0, this.level = 0, this.strategy = 0, this.good_match = 0, this.nice_match = 0, this.dyn_ltree = new o.Buf16(1146), this.dyn_dtree = new o.Buf16( 122), this.bl_tree = new o.Buf16(78), m(this.dyn_ltree), m(this.dyn_dtree), m(this.bl_tree), this.l_desc = null, this.d_desc = null, this.bl_desc = null, this.bl_count = new o.Buf16(16), this.heap = new o.Buf16( 573), m(this.heap), this.heap_len = 0, this.heap_max = 0, this.depth = new o.Buf16(573), m(this.depth), this.l_buf = 0, this.lit_bufsize = 0, this.last_lit = 0, this.d_buf = 0, this.opt_len = 0, this.static_len = 0, this.matches = 0, this.insert = 0, this.bi_buf = 0, this.bi_valid = 0 } function L(e) { var t; return e && e.state ? (e.total_in = e.total_out = 0, e.data_type = 2, (t = e.state).pending = 0, t.pending_out = 0, t.wrap < 0 && ( t.wrap = -t.wrap), t.status = t.wrap ? 42 : u, e.adler = 2 === t.wrap ? 0 : 1, t.last_flush = 0, r._tr_init(t), 0) : g(e, d) } function N(e) { var t = L(e); return 0 === t && function(e) { e.window_size = 2 * e.w_size, m(e.head), e.max_lazy_match = n[e.level] .max_lazy, e.good_match = n[e.level].good_length, e.nice_match = n[e.level].nice_length, e.max_chain_length = n[e.level].max_chain, e.strstart = 0, e.block_start = 0, e.lookahead = 0, e.insert = 0, e.match_length = e.prev_length = 2, e.match_available = 0, e .ins_h = 0 }(e.state), t } function D(e, t, i, n, r, s) { if (!e) return d; var a = 1; if (-1 === t && (t = 6), n < 0 ? (a = 0, n = -n) : 15 < n && (a = 2, n -= 16), r < 1 || 9 < r || 8 !== i || n < 8 || 15 < n || t < 0 || 9 < t || s < 0 || 4 < s) return g(e, d); 8 === n && (n = 9); var l = new k; return (e.state = l).strm = e, l.wrap = a, l.gzhead = null, l.w_bits = n, l.w_size = 1 << l.w_bits, l.w_mask = l.w_size - 1, l.hash_bits = r + 7, l.hash_size = 1 << l.hash_bits, l.hash_mask = l.hash_size - 1, l.hash_shift = ~~((l.hash_bits + 3 - 1) / 3), l.window = new o .Buf8(2 * l.w_size), l.head = new o.Buf16(l.hash_size), l.prev = new o.Buf16(l.w_size), l.lit_bufsize = 1 << r + 6, l.pending_buf_size = 4 * l.lit_bufsize, l.pending_buf = new o.Buf8(l.pending_buf_size), l.d_buf = 1 * l.lit_bufsize, l.l_buf = 3 * l.lit_bufsize, l.level = t, l.strategy = s, l.method = i, N(e) } n = [new x(0, 0, 0, 0, (function(e, t) { var i = 65535; for (i > e.pending_buf_size - 5 && (i = e.pending_buf_size - 5);;) { if (e.lookahead <= 1) { if (C(e), 0 === e.lookahead && 0 === t) return 1; if (0 === e.lookahead) break } e.strstart += e.lookahead, e.lookahead = 0; var n = e.block_start + i; if ((0 === e.strstart || e.strstart >= n) && (e.lookahead = e .strstart - n, e.strstart = n, _(e, !1), 0 === e.strm.avail_out )) return 1; if (e.strstart - e.block_start >= e.w_size - h && (_(e, !1), 0 === e.strm.avail_out)) return 1 } return e.insert = 0, 4 === t ? (_(e, !0), 0 === e.strm.avail_out ? 3 : 4) : (e.strstart > e.block_start && (_(e, !1), e.strm.avail_out), 1) })), new x(4, 4, 8, 4, y), new x(4, 5, 16, 8, y), new x(4, 6, 32, 32, y), new x(4, 4, 16, 16, S), new x(8, 16, 32, 32, S), new x(8, 16, 128, 128, S), new x(8, 32, 128, 256, S), new x(32, 128, 258, 1024, S), new x(32, 258, 258, 4096, S)], i.deflateInit = function( e, t) { return D(e, t, 8, 15, 8, 0) }, i.deflateInit2 = D, i.deflateReset = N, i.deflateResetKeep = L, i.deflateSetHeader = function(e, t) { return e && e.state ? 2 !== e.state.wrap ? d : (e.state.gzhead = t, 0) : d }, i.deflate = function(e, t) { var i, o, s, l; if (!e || !e.state || 5 < t || t < 0) return e ? g(e, d) : d; if (o = e.state, !e.output || !e.input && 0 !== e.avail_in || 666 === o.status && 4 !== t) return g(e, 0 === e.avail_out ? -5 : d); if (o.strm = e, i = o.last_flush, o.last_flush = t, 42 === o.status) if (2 === o.wrap) e.adler = 0, b(o, 31), b(o, 139), b(o, 8), o.gzhead ? (b(o, (o.gzhead.text ? 1 : 0) + (o.gzhead.hcrc ? 2 : 0) + (o.gzhead .extra ? 4 : 0) + (o.gzhead.name ? 8 : 0) + (o.gzhead.comment ? 16 : 0)), b(o, 255 & o.gzhead.time), b(o, o.gzhead.time >> 8 & 255), b(o, o.gzhead.time >> 16 & 255), b(o, o.gzhead.time >> 24 & 255), b(o, 9 === o.level ? 2 : 2 <= o.strategy || o.level < 2 ? 4 : 0), b(o, 255 & o.gzhead.os), o.gzhead.extra && o.gzhead .extra.length && (b(o, 255 & o.gzhead.extra.length), b(o, o.gzhead .extra.length >> 8 & 255)), o.gzhead.hcrc && (e.adler = a(e.adler, o.pending_buf, o.pending, 0)), o.gzindex = 0, o.status = 69) : (b(o, 0), b(o, 0), b(o, 0), b(o, 0), b(o, 0), b(o, 9 === o.level ? 2 : 2 <= o.strategy || o.level < 2 ? 4 : 0), b(o, 3), o.status = u); else { var h = 8 + (o.w_bits - 8 << 4) << 8; h |= (2 <= o.strategy || o.level < 2 ? 0 : o.level < 6 ? 1 : 6 === o.level ? 2 : 3) << 6, 0 !== o.strstart && (h |= 32), h += 31 - h % 31, o.status = u, v(o, h), 0 !== o.strstart && (v(o, e.adler >>> 16), v(o, 65535 & e.adler)), e.adler = 1 } if (69 === o.status) if (o.gzhead.extra) { for (s = o.pending; o.gzindex < (65535 & o.gzhead.extra.length) && (o.pending !== o.pending_buf_size || (o.gzhead.hcrc && o.pending > s && (e.adler = a(e.adler, o.pending_buf, o.pending - s, s)), f(e), s = o.pending, o.pending !== o.pending_buf_size));) b(o, 255 & o.gzhead.extra[o.gzindex]), o.gzindex++; o.gzhead.hcrc && o.pending > s && (e.adler = a(e.adler, o.pending_buf, o.pending - s, s)), o.gzindex === o.gzhead.extra.length && (o .gzindex = 0, o.status = 73) } else o.status = 73; if (73 === o.status) if (o.gzhead.name) { s = o.pending; do { if (o.pending === o.pending_buf_size && (o.gzhead.hcrc && o.pending > s && (e.adler = a(e.adler, o.pending_buf, o.pending - s, s)), f(e), s = o.pending, o.pending === o.pending_buf_size)) { l = 1; break } l = o.gzindex < o.gzhead.name.length ? 255 & o.gzhead.name.charCodeAt( o.gzindex++) : 0, b(o, l) } while (0 !== l); o.gzhead.hcrc && o.pending > s && (e.adler = a(e.adler, o.pending_buf, o.pending - s, s)), 0 === l && (o.gzindex = 0, o.status = 91) } else o.status = 91; if (91 === o.status) if (o.gzhead.comment) { s = o.pending; do { if (o.pending === o.pending_buf_size && (o.gzhead.hcrc && o.pending > s && (e.adler = a(e.adler, o.pending_buf, o.pending - s, s)), f(e), s = o.pending, o.pending === o.pending_buf_size)) { l = 1; break } l = o.gzindex < o.gzhead.comment.length ? 255 & o.gzhead.comment .charCodeAt(o.gzindex++) : 0, b(o, l) } while (0 !== l); o.gzhead.hcrc && o.pending > s && (e.adler = a(e.adler, o.pending_buf, o.pending - s, s)), 0 === l && (o.status = 103) } else o.status = 103; if (103 === o.status && (o.gzhead.hcrc ? (o.pending + 2 > o.pending_buf_size && f(e), o.pending + 2 <= o.pending_buf_size && (b(o, 255 & e.adler), b(o, e.adler >> 8 & 255), e.adler = 0, o.status = u)) : o.status = u), 0 !== o.pending) { if (f(e), 0 === e.avail_out) return o.last_flush = -1, 0 } else if (0 === e.avail_in && p(t) <= p(i) && 4 !== t) return g( e, -5); if (666 === o.status && 0 !== e.avail_in) return g(e, -5); if (0 !== e.avail_in || 0 !== o.lookahead || 0 !== t && 666 !== o .status) { var w = 2 === o.strategy ? function(e, t) { for (var i;;) { if (0 === e.lookahead && (C(e), 0 === e.lookahead)) { if (0 === t) return 1; break } if (e.match_length = 0, i = r._tr_tally(e, 0, e.window[e.strstart]), e.lookahead--, e.strstart++, i && (_(e, !1), 0 === e.strm.avail_out) ) return 1 } return e.insert = 0, 4 === t ? (_(e, !0), 0 === e.strm.avail_out ? 3 : 4) : e.last_lit && (_(e, !1), 0 === e.strm.avail_out) ? 1 : 2 }(o, t) : 3 === o.strategy ? function(e, t) { for (var i, n, o, s, a = e.window;;) { if (e.lookahead <= c) { if (C(e), e.lookahead <= c && 0 === t) return 1; if (0 === e.lookahead) break } if (e.match_length = 0, e.lookahead >= 3 && 0 < e.strstart && (n = a[o = e.strstart - 1]) === a[++o] && n === a[++o] && n === a[++o]) { s = e.strstart + c; do {} while (n === a[++o] && n === a[++o] && n === a[++o] && n === a[++o] && n === a[++o] && n === a[++o] && n === a[++o] && n === a[++o] && o < s); e.match_length = c - (s - o), e.match_length > e.lookahead && (e.match_length = e.lookahead) } if (e.match_length >= 3 ? (i = r._tr_tally(e, 1, e.match_length - 3), e.lookahead -= e.match_length, e.strstart += e.match_length, e.match_length = 0) : (i = r._tr_tally(e, 0, e.window[e.strstart]), e.lookahead--, e.strstart++), i && (_(e, !1), 0 === e.strm.avail_out)) return 1 } return e.insert = 0, 4 === t ? (_(e, !0), 0 === e.strm.avail_out ? 3 : 4) : e.last_lit && (_(e, !1), 0 === e.strm.avail_out) ? 1 : 2 }(o, t) : n[o.level].func(o, t); if (3 !== w && 4 !== w || (o.status = 666), 1 === w || 3 === w) return 0 === e.avail_out && (o.last_flush = -1), 0; if (2 === w && (1 === t ? r._tr_align(o) : 5 !== t && (r._tr_stored_block( o, 0, 0, !1), 3 === t && (m(o.head), 0 === o.lookahead && (o .strstart = 0, o.block_start = 0, o.insert = 0))), f(e), 0 === e.avail_out)) return o.last_flush = -1, 0 } return 4 !== t ? 0 : o.wrap <= 0 ? 1 : (2 === o.wrap ? (b(o, 255 & e.adler), b(o, e.adler >> 8 & 255), b(o, e.adler >> 16 & 255), b(o, e.adler >> 24 & 255), b(o, 255 & e.total_in), b(o, e.total_in >> 8 & 255), b(o, e.total_in >> 16 & 255), b(o, e.total_in >> 24 & 255)) : (v(o, e.adler >>> 16), v(o, 65535 & e.adler)), f(e), 0 < o.wrap && (o.wrap = -o.wrap), 0 !== o.pending ? 0 : 1) }, i.deflateEnd = function(e) { var t; return e && e.state ? 42 !== (t = e.state.status) && 69 !== t && 73 !== t && 91 !== t && 103 !== t && t !== u && 666 !== t ? g(e, d) : (e.state = null, t === u ? g(e, -3) : 0) : d }, i.deflateSetDictionary = function(e, t) { var i, n, r, a, l, c, h, u, g = t.length; if (!e || !e.state) return d; if (2 === (a = (i = e.state).wrap) || 1 === a && 42 !== i.status || i.lookahead) return d; for (1 === a && (e.adler = s(e.adler, t, g, 0)), i.wrap = 0, g >= i.w_size && (0 === a && (m(i.head), i.strstart = 0, i.block_start = 0, i.insert = 0), u = new o.Buf8(i.w_size), o.arraySet(u, t, g - i.w_size, i.w_size, 0), t = u, g = i.w_size), l = e.avail_in, c = e.next_in, h = e.input, e.avail_in = g, e.next_in = 0, e.input = t, C(i); i.lookahead >= 3;) { for (n = i.strstart, r = i.lookahead - 2; i.ins_h = (i.ins_h << i.hash_shift ^ i.window[n + 3 - 1]) & i.hash_mask, i.prev[n & i.w_mask] = i.head[i.ins_h], i.head[i.ins_h] = n, n++, --r;); i.strstart = n, i.lookahead = 2, C(i) } return i.strstart += i.lookahead, i.block_start = i.strstart, i.insert = i.lookahead, i.lookahead = 0, i.match_length = i.prev_length = 2, i.match_available = 0, e.next_in = c, e.input = h, e.avail_in = l, i.wrap = a, 0 }, i.deflateInfo = "pako deflate (from Nodeca project)" }, { "../utils/common": 41, "./adler32": 43, "./crc32": 45, "./messages": 51, "./trees": 52 }], 47: [function(e, t, i) { "use strict"; t.exports = function() { this.text = 0, this.time = 0, this.xflags = 0, this.os = 0, this.extra = null, this.extra_len = 0, this.name = "", this.comment = "", this.hcrc = 0, this.done = !1 } }, {}], 48: [function(e, t, i) { "use strict"; t.exports = function(e, t) { var i, n, o, r, s, a, l, d, c, h, u, g, p, m, f, _, b, v, w, C, y, S, x, k, L; i = e.state, n = e.next_in, k = e.input, o = n + (e.avail_in - 5), r = e.next_out, L = e.output, s = r - (t - e.avail_out), a = r + (e.avail_out - 257), l = i.dmax, d = i.wsize, c = i.whave, h = i .wnext, u = i.window, g = i.hold, p = i.bits, m = i.lencode, f = i.distcode, _ = (1 << i.lenbits) - 1, b = (1 << i.distbits) - 1; e: do { p < 15 && (g += k[n++] << p, p += 8, g += k[n++] << p, p += 8), v = m[g & _]; t: for (;;) { if (g >>>= w = v >>> 24, p -= w, 0 == (w = v >>> 16 & 255)) L[ r++] = 65535 & v; else { if (!(16 & w)) { if (0 == (64 & w)) { v = m[(65535 & v) + (g & (1 << w) - 1)]; continue t } if (32 & w) { i.mode = 12; break e } e.msg = "invalid literal/length code", i.mode = 30; break e } C = 65535 & v, (w &= 15) && (p < w && (g += k[n++] << p, p += 8), C += g & (1 << w) - 1, g >>>= w, p -= w), p < 15 && (g += k[n++] << p, p += 8, g += k[n++] << p, p += 8), v = f[g & b]; i: for (;;) { if (g >>>= w = v >>> 24, p -= w, !(16 & (w = v >>> 16 & 255))) { if (0 == (64 & w)) { v = f[(65535 & v) + (g & (1 << w) - 1)]; continue i } e.msg = "invalid distance code", i.mode = 30; break e } if (y = 65535 & v, p < (w &= 15) && (g += k[n++] << p, (p += 8) < w && (g += k[n++] << p, p += 8)), l < (y += g & (1 << w) - 1)) { e.msg = "invalid distance too far back", i.mode = 30; break e } if (g >>>= w, p -= w, (w = r - s) < y) { if (c < (w = y - w) && i.sane) { e.msg = "invalid distance too far back", i.mode = 30; break e } if (x = u, (S = 0) === h) { if (S += d - w, w < C) { for (C -= w; L[r++] = u[S++], --w;); S = r - y, x = L } } else if (h < w) { if (S += d + h - w, (w -= h) < C) { for (C -= w; L[r++] = u[S++], --w;); if (S = 0, h < C) { for (C -= w = h; L[r++] = u[S++], --w;); S = r - y, x = L } } } else if (S += h - w, w < C) { for (C -= w; L[r++] = u[S++], --w;); S = r - y, x = L } for (; 2 < C;) L[r++] = x[S++], L[r++] = x[S++], L[r++] = x[S++], C -= 3; C && (L[r++] = x[S++], 1 < C && (L[r++] = x[S++])) } else { for (S = r - y; L[r++] = L[S++], L[r++] = L[S++], L[r++] = L[S++], 2 < (C -= 3);); C && (L[r++] = L[S++], 1 < C && (L[r++] = L[S++])) } break } } break } } while (n < o && r < a); n -= C = p >> 3, g &= (1 << (p -= C << 3)) - 1, e.next_in = n, e.next_out = r, e.avail_in = n < o ? o - n + 5 : 5 - (n - o), e.avail_out = r < a ? a - r + 257 : 257 - (r - a), i.hold = g, i.bits = p } }, {}], 49: [function(e, t, i) { "use strict"; var n = e("../utils/common"), o = e("./adler32"), r = e("./crc32"), s = e("./inffast"), a = e("./inftrees"), l = -2; function d(e) { return (e >>> 24 & 255) + (e >>> 8 & 65280) + ((65280 & e) << 8) + ((255 & e) << 24) } function c() { this.mode = 0, this.last = !1, this.wrap = 0, this.havedict = !1, this.flags = 0, this.dmax = 0, this.check = 0, this.total = 0, this.head = null, this.wbits = 0, this.wsize = 0, this.whave = 0, this.wnext = 0, this.window = null, this.hold = 0, this.bits = 0, this.length = 0, this.offset = 0, this.extra = 0, this.lencode = null, this.distcode = null, this.lenbits = 0, this.distbits = 0, this.ncode = 0, this.nlen = 0, this.ndist = 0, this.have = 0, this.next = null, this.lens = new n.Buf16(320), this.work = new n .Buf16(288), this.lendyn = null, this.distdyn = null, this.sane = 0, this.back = 0, this.was = 0 } function h(e) { var t; return e && e.state ? (t = e.state, e.total_in = e.total_out = t.total = 0, e.msg = "", t.wrap && (e.adler = 1 & t.wrap), t.mode = 1, t.last = 0, t.havedict = 0, t.dmax = 32768, t.head = null, t.hold = 0, t.bits = 0, t.lencode = t.lendyn = new n.Buf32(852), t.distcode = t.distdyn = new n.Buf32(592), t.sane = 1, t.back = -1, 0) : l } function u(e) { var t; return e && e.state ? ((t = e.state).wsize = 0, t.whave = 0, t.wnext = 0, h(e)) : l } function g(e, t) { var i, n; return e && e.state ? (n = e.state, t < 0 ? (i = 0, t = -t) : (i = 1 + (t >> 4), t < 48 && (t &= 15)), t && (t < 8 || 15 < t) ? l : (null !== n.window && n.wbits !== t && (n.window = null), n.wrap = i, n.wbits = t, u(e))) : l } function p(e, t) { var i, n; return e ? (n = new c, (e.state = n).window = null, 0 !== (i = g(e, t)) && (e.state = null), i) : l } var m, f, _ = !0; function b(e) { if (_) { var t; for (m = new n.Buf32(512), f = new n.Buf32(32), t = 0; t < 144;) e .lens[t++] = 8; for (; t < 256;) e.lens[t++] = 9; for (; t < 280;) e.lens[t++] = 7; for (; t < 288;) e.lens[t++] = 8; for (a(1, e.lens, 0, 288, m, 0, e.work, { bits: 9 }), t = 0; t < 32;) e.lens[t++] = 5; a(2, e.lens, 0, 32, f, 0, e.work, { bits: 5 }), _ = !1 } e.lencode = m, e.lenbits = 9, e.distcode = f, e.distbits = 5 } function v(e, t, i, o) { var r, s = e.state; return null === s.window && (s.wsize = 1 << s.wbits, s.wnext = 0, s.whave = 0, s.window = new n.Buf8(s.wsize)), o >= s.wsize ? (n.arraySet( s.window, t, i - s.wsize, s.wsize, 0), s.wnext = 0, s.whave = s .wsize) : (o < (r = s.wsize - s.wnext) && (r = o), n.arraySet(s.window, t, i - o, r, s.wnext), (o -= r) ? (n.arraySet(s.window, t, i - o, o, 0), s.wnext = o, s.whave = s.wsize) : (s.wnext += r, s.wnext === s.wsize && (s.wnext = 0), s.whave < s.wsize && (s.whave += r))), 0 } i.inflateReset = u, i.inflateReset2 = g, i.inflateResetKeep = h, i.inflateInit = function(e) { return p(e, 15) }, i.inflateInit2 = p, i.inflate = function(e, t) { var i, c, h, u, g, p, m, f, _, w, C, y, S, x, k, L, N, D, E, I, T, M, A, R, O = 0, P = new n.Buf8(4), F = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]; if (!e || !e.state || !e.output || !e.input && 0 !== e.avail_in) return l; 12 === (i = e.state).mode && (i.mode = 13), g = e.next_out, h = e .output, m = e.avail_out, u = e.next_in, c = e.input, p = e.avail_in, f = i.hold, _ = i.bits, w = p, C = m, M = 0; e: for (;;) switch (i.mode) { case 1: if (0 === i.wrap) { i.mode = 13; break } for (; _ < 16;) { if (0 === p) break e; p--, f += c[u++] << _, _ += 8 } if (2 & i.wrap && 35615 === f) { P[i.check = 0] = 255 & f, P[1] = f >>> 8 & 255, i.check = r( i.check, P, 2, 0), _ = f = 0, i.mode = 2; break } if (i.flags = 0, i.head && (i.head.done = !1), !(1 & i.wrap) || (((255 & f) << 8) + (f >> 8)) % 31) { e.msg = "incorrect header check", i.mode = 30; break } if (8 != (15 & f)) { e.msg = "unknown compression method", i.mode = 30; break } if (_ -= 4, T = 8 + (15 & (f >>>= 4)), 0 === i.wbits) i.wbits = T; else if (T > i.wbits) { e.msg = "invalid window size", i.mode = 30; break } i.dmax = 1 << T, e.adler = i.check = 1, i.mode = 512 & f ? 10 : 12, _ = f = 0; break; case 2: for (; _ < 16;) { if (0 === p) break e; p--, f += c[u++] << _, _ += 8 } if (i.flags = f, 8 != (255 & i.flags)) { e.msg = "unknown compression method", i.mode = 30; break } if (57344 & i.flags) { e.msg = "unknown header flags set", i.mode = 30; break } i.head && (i.head.text = f >> 8 & 1), 512 & i.flags && (P[0] = 255 & f, P[1] = f >>> 8 & 255, i.check = r(i.check, P, 2, 0) ), _ = f = 0, i.mode = 3; case 3: for (; _ < 32;) { if (0 === p) break e; p--, f += c[u++] << _, _ += 8 } i.head && (i.head.time = f), 512 & i.flags && (P[0] = 255 & f, P[1] = f >>> 8 & 255, P[2] = f >>> 16 & 255, P[3] = f >>> 24 & 255, i.check = r(i.check, P, 4, 0)), _ = f = 0, i.mode = 4; case 4: for (; _ < 16;) { if (0 === p) break e; p--, f += c[u++] << _, _ += 8 } i.head && (i.head.xflags = 255 & f, i.head.os = f >> 8), 512 & i.flags && (P[0] = 255 & f, P[1] = f >>> 8 & 255, i.check = r(i.check, P, 2, 0)), _ = f = 0, i.mode = 5; case 5: if (1024 & i.flags) { for (; _ < 16;) { if (0 === p) break e; p--, f += c[u++] << _, _ += 8 } i.length = f, i.head && (i.head.extra_len = f), 512 & i.flags && (P[0] = 255 & f, P[1] = f >>> 8 & 255, i.check = r(i.check, P, 2, 0)), _ = f = 0 } else i.head && (i.head.extra = null); i.mode = 6; case 6: if (1024 & i.flags && (p < (y = i.length) && (y = p), y && (i .head && (T = i.head.extra_len - i.length, i.head.extra || (i.head.extra = new Array(i.head.extra_len)), n.arraySet( i.head.extra, c, u, y, T)), 512 & i.flags && (i.check = r(i.check, c, y, u)), p -= y, u += y, i.length -= y), i.length)) break e; i.length = 0, i.mode = 7; case 7: if (2048 & i.flags) { if (0 === p) break e; for (y = 0; T = c[u + y++], i.head && T && i.length < 65536 && (i.head.name += String.fromCharCode(T)), T && y < p;); if (512 & i.flags && (i.check = r(i.check, c, y, u)), p -= y, u += y, T) break e } else i.head && (i.head.name = null); i.length = 0, i.mode = 8; case 8: if (4096 & i.flags) { if (0 === p) break e; for (y = 0; T = c[u + y++], i.head && T && i.length < 65536 && (i.head.comment += String.fromCharCode(T)), T && y < p;); if (512 & i.flags && (i.check = r(i.check, c, y, u)), p -= y, u += y, T) break e } else i.head && (i.head.comment = null); i.mode = 9; case 9: if (512 & i.flags) { for (; _ < 16;) { if (0 === p) break e; p--, f += c[u++] << _, _ += 8 } if (f !== (65535 & i.check)) { e.msg = "header crc mismatch", i.mode = 30; break } _ = f = 0 } i.head && (i.head.hcrc = i.flags >> 9 & 1, i.head.done = !0), e.adler = i.check = 0, i.mode = 12; break; case 10: for (; _ < 32;) { if (0 === p) break e; p--, f += c[u++] << _, _ += 8 } e.adler = i.check = d(f), _ = f = 0, i.mode = 11; case 11: if (0 === i.havedict) return e.next_out = g, e.avail_out = m, e.next_in = u, e.avail_in = p, i.hold = f, i.bits = _, 2; e.adler = i.check = 1, i.mode = 12; case 12: if (5 === t || 6 === t) break e; case 13: if (i.last) { f >>>= 7 & _, _ -= 7 & _, i.mode = 27; break } for (; _ < 3;) { if (0 === p) break e; p--, f += c[u++] << _, _ += 8 } switch (i.last = 1 & f, _ -= 1, 3 & (f >>>= 1)) { case 0: i.mode = 14; break; case 1: if (b(i), i.mode = 20, 6 !== t) break; f >>>= 2, _ -= 2; break e; case 2: i.mode = 17; break; case 3: e.msg = "invalid block type", i.mode = 30 } f >>>= 2, _ -= 2; break; case 14: for (f >>>= 7 & _, _ -= 7 & _; _ < 32;) { if (0 === p) break e; p--, f += c[u++] << _, _ += 8 } if ((65535 & f) != (f >>> 16 ^ 65535)) { e.msg = "invalid stored block lengths", i.mode = 30; break } if (i.length = 65535 & f, _ = f = 0, i.mode = 15, 6 === t) break e; case 15: i.mode = 16; case 16: if (y = i.length) { if (p < y && (y = p), m < y && (y = m), 0 === y) break e; n.arraySet(h, c, u, y, g), p -= y, u += y, m -= y, g += y, i .length -= y; break } i.mode = 12; break; case 17: for (; _ < 14;) { if (0 === p) break e; p--, f += c[u++] << _, _ += 8 } if (i.nlen = 257 + (31 & f), f >>>= 5, _ -= 5, i.ndist = 1 + (31 & f), f >>>= 5, _ -= 5, i.ncode = 4 + (15 & f), f >>>= 4, _ -= 4, 286 < i.nlen || 30 < i.ndist) { e.msg = "too many length or distance symbols", i.mode = 30; break } i.have = 0, i.mode = 18; case 18: for (; i.have < i.ncode;) { for (; _ < 3;) { if (0 === p) break e; p--, f += c[u++] << _, _ += 8 } i.lens[F[i.have++]] = 7 & f, f >>>= 3, _ -= 3 } for (; i.have < 19;) i.lens[F[i.have++]] = 0; if (i.lencode = i.lendyn, i.lenbits = 7, A = { bits: i.lenbits }, M = a(0, i.lens, 0, 19, i.lencode, 0, i.work, A), i.lenbits = A.bits, M) { e.msg = "invalid code lengths set", i.mode = 30; break } i.have = 0, i.mode = 19; case 19: for (; i.have < i.nlen + i.ndist;) { for (; L = (O = i.lencode[f & (1 << i.lenbits) - 1]) >>> 16 & 255, N = 65535 & O, !((k = O >>> 24) <= _);) { if (0 === p) break e; p--, f += c[u++] << _, _ += 8 } if (N < 16) f >>>= k, _ -= k, i.lens[i.have++] = N; else { if (16 === N) { for (R = k + 2; _ < R;) { if (0 === p) break e; p--, f += c[u++] << _, _ += 8 } if (f >>>= k, _ -= k, 0 === i.have) { e.msg = "invalid bit length repeat", i.mode = 30; break } T = i.lens[i.have - 1], y = 3 + (3 & f), f >>>= 2, _ -= 2 } else if (17 === N) { for (R = k + 3; _ < R;) { if (0 === p) break e; p--, f += c[u++] << _, _ += 8 } _ -= k, T = 0, y = 3 + (7 & (f >>>= k)), f >>>= 3, _ -= 3 } else { for (R = k + 7; _ < R;) { if (0 === p) break e; p--, f += c[u++] << _, _ += 8 } _ -= k, T = 0, y = 11 + (127 & (f >>>= k)), f >>>= 7, _ -= 7 } if (i.have + y > i.nlen + i.ndist) { e.msg = "invalid bit length repeat", i.mode = 30; break } for (; y--;) i.lens[i.have++] = T } } if (30 === i.mode) break; if (0 === i.lens[256]) { e.msg = "invalid code -- missing end-of-block", i.mode = 30; break } if (i.lenbits = 9, A = { bits: i.lenbits }, M = a(1, i.lens, 0, i.nlen, i.lencode, 0, i.work, A), i.lenbits = A.bits, M) { e.msg = "invalid literal/lengths set", i.mode = 30; break } if (i.distbits = 6, i.distcode = i.distdyn, A = { bits: i.distbits }, M = a(2, i.lens, i.nlen, i.ndist, i.distcode, 0, i.work, A), i.distbits = A.bits, M) { e.msg = "invalid distances set", i.mode = 30; break } if (i.mode = 20, 6 === t) break e; case 20: i.mode = 21; case 21: if (6 <= p && 258 <= m) { e.next_out = g, e.avail_out = m, e.next_in = u, e.avail_in = p, i.hold = f, i.bits = _, s(e, C), g = e.next_out, h = e.output, m = e.avail_out, u = e.next_in, c = e.input, p = e.avail_in, f = i.hold, _ = i.bits, 12 === i.mode && (i.back = -1); break } for (i.back = 0; L = (O = i.lencode[f & (1 << i.lenbits) - 1]) >>> 16 & 255, N = 65535 & O, !((k = O >>> 24) <= _);) { if (0 === p) break e; p--, f += c[u++] << _, _ += 8 } if (L && 0 == (240 & L)) { for (D = k, E = L, I = N; L = (O = i.lencode[I + ((f & (1 << D + E) - 1) >> D)]) >>> 16 & 255, N = 65535 & O, !(D + (k = O >>> 24) <= _);) { if (0 === p) break e; p--, f += c[u++] << _, _ += 8 } f >>>= D, _ -= D, i.back += D } if (f >>>= k, _ -= k, i.back += k, i.length = N, 0 === L) { i.mode = 26; break } if (32 & L) { i.back = -1, i.mode = 12; break } if (64 & L) { e.msg = "invalid literal/length code", i.mode = 30; break } i.extra = 15 & L, i.mode = 22; case 22: if (i.extra) { for (R = i.extra; _ < R;) { if (0 === p) break e; p--, f += c[u++] << _, _ += 8 } i.length += f & (1 << i.extra) - 1, f >>>= i.extra, _ -= i.extra, i.back += i.extra } i.was = i.length, i.mode = 23; case 23: for (; L = (O = i.distcode[f & (1 << i.distbits) - 1]) >>> 16 & 255, N = 65535 & O, !((k = O >>> 24) <= _);) { if (0 === p) break e; p--, f += c[u++] << _, _ += 8 } if (0 == (240 & L)) { for (D = k, E = L, I = N; L = (O = i.distcode[I + ((f & (1 << D + E) - 1) >> D)]) >>> 16 & 255, N = 65535 & O, !(D + (k = O >>> 24) <= _);) { if (0 === p) break e; p--, f += c[u++] << _, _ += 8 } f >>>= D, _ -= D, i.back += D } if (f >>>= k, _ -= k, i.back += k, 64 & L) { e.msg = "invalid distance code", i.mode = 30; break } i.offset = N, i.extra = 15 & L, i.mode = 24; case 24: if (i.extra) { for (R = i.extra; _ < R;) { if (0 === p) break e; p--, f += c[u++] << _, _ += 8 } i.offset += f & (1 << i.extra) - 1, f >>>= i.extra, _ -= i.extra, i.back += i.extra } if (i.offset > i.dmax) { e.msg = "invalid distance too far back", i.mode = 30; break } i.mode = 25; case 25: if (0 === m) break e; if (y = C - m, i.offset > y) { if ((y = i.offset - y) > i.whave && i.sane) { e.msg = "invalid distance too far back", i.mode = 30; break } S = y > i.wnext ? (y -= i.wnext, i.wsize - y) : i.wnext - y, y > i.length && (y = i.length), x = i.window } else x = h, S = g - i.offset, y = i.length; for (m < y && (y = m), m -= y, i.length -= y; h[g++] = x[S++], -- y;); 0 === i.length && (i.mode = 21); break; case 26: if (0 === m) break e; h[g++] = i.length, m--, i.mode = 21; break; case 27: if (i.wrap) { for (; _ < 32;) { if (0 === p) break e; p--, f |= c[u++] << _, _ += 8 } if (C -= m, e.total_out += C, i.total += C, C && (e.adler = i.check = i.flags ? r(i.check, h, C, g - C) : o(i.check, h, C, g - C)), C = m, (i.flags ? f : d(f)) !== i.check) { e.msg = "incorrect data check", i.mode = 30; break } _ = f = 0 } i.mode = 28; case 28: if (i.wrap && i.flags) { for (; _ < 32;) { if (0 === p) break e; p--, f += c[u++] << _, _ += 8 } if (f !== (4294967295 & i.total)) { e.msg = "incorrect length check", i.mode = 30; break } _ = f = 0 } i.mode = 29; case 29: M = 1; break e; case 30: M = -3; break e; case 31: return -4; default: return l } return e.next_out = g, e.avail_out = m, e.next_in = u, e.avail_in = p, i.hold = f, i.bits = _, (i.wsize || C !== e.avail_out && i.mode < 30 && (i.mode < 27 || 4 !== t)) && v(e, e.output, e.next_out, C - e.avail_out) ? (i.mode = 31, -4) : (w -= e.avail_in, C -= e.avail_out, e.total_in += w, e.total_out += C, i.total += C, i.wrap && C && (e.adler = i.check = i.flags ? r(i.check, h, C, e.next_out - C) : o(i.check, h, C, e.next_out - C)), e.data_type = i.bits + (i.last ? 64 : 0) + (12 === i.mode ? 128 : 0) + (20 === i.mode || 15 === i.mode ? 256 : 0), (0 == w && 0 === C || 4 === t) && 0 === M && (M = -5), M) }, i.inflateEnd = function(e) { if (!e || !e.state) return l; var t = e.state; return t.window && (t.window = null), e.state = null, 0 }, i.inflateGetHeader = function(e, t) { var i; return e && e.state ? 0 == (2 & (i = e.state).wrap) ? l : ((i.head = t).done = !1, 0) : l }, i.inflateSetDictionary = function(e, t) { var i, n = t.length; return e && e.state ? 0 !== (i = e.state).wrap && 11 !== i.mode ? l : 11 === i.mode && o(1, t, n, 0) !== i.check ? -3 : v(e, t, n, n) ? (i.mode = 31, -4) : (i.havedict = 1, 0) : l }, i.inflateInfo = "pako inflate (from Nodeca project)" }, { "../utils/common": 41, "./adler32": 43, "./crc32": 45, "./inffast": 48, "./inftrees": 50 }], 50: [function(e, t, i) { "use strict"; var n = e("../utils/common"), o = [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0 ], r = [16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78 ], s = [1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 0, 0 ], a = [16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 64, 64 ]; t.exports = function(e, t, i, l, d, c, h, u) { var g, p, m, f, _, b, v, w, C, y = u.bits, S = 0, x = 0, k = 0, L = 0, N = 0, D = 0, E = 0, I = 0, T = 0, M = 0, A = null, R = 0, O = new n.Buf16(16), P = new n.Buf16(16), F = null, B = 0; for (S = 0; S <= 15; S++) O[S] = 0; for (x = 0; x < l; x++) O[t[i + x]]++; for (N = y, L = 15; 1 <= L && 0 === O[L]; L--); if (L < N && (N = L), 0 === L) return d[c++] = 20971520, d[c++] = 20971520, u.bits = 1, 0; for (k = 1; k < L && 0 === O[k]; k++); for (N < k && (N = k), S = I = 1; S <= 15; S++) if (I <<= 1, (I -= O[S]) < 0) return -1; if (0 < I && (0 === e || 1 !== L)) return -1; for (P[1] = 0, S = 1; S < 15; S++) P[S + 1] = P[S] + O[S]; for (x = 0; x < l; x++) 0 !== t[i + x] && (h[P[t[i + x]]++] = x); if (b = 0 === e ? (A = F = h, 19) : 1 === e ? (A = o, R -= 257, F = r, B -= 257, 256) : (A = s, F = a, -1), S = k, _ = c, E = x = M = 0, m = -1, f = (T = 1 << (D = N)) - 1, 1 === e && 852 < T || 2 === e && 592 < T) return 1; for (;;) { for (v = S - E, C = h[x] < b ? (w = 0, h[x]) : h[x] > b ? (w = F[ B + h[x]], A[R + h[x]]) : (w = 96, 0), g = 1 << S - E, k = p = 1 << D; d[_ + (M >> E) + (p -= g)] = v << 24 | w << 16 | C | 0, 0 !== p;); for (g = 1 << S - 1; M & g;) g >>= 1; if (0 !== g ? (M &= g - 1, M += g) : M = 0, x++, 0 == --O[S]) { if (S === L) break; S = t[i + h[x]] } if (N < S && (M & f) !== m) { for (0 === E && (E = N), _ += k, I = 1 << (D = S - E); D + E < L && !((I -= O[D + E]) <= 0);) D++, I <<= 1; if (T += 1 << D, 1 === e && 852 < T || 2 === e && 592 < T) return 1; d[m = M & f] = N << 24 | D << 16 | _ - c | 0 } } return 0 !== M && (d[_ + M] = S - E << 24 | 64 << 16 | 0), u.bits = N, 0 } }, { "../utils/common": 41 }], 51: [function(e, t, i) { "use strict"; t.exports = { 2: "need dictionary", 1: "stream end", 0: "", "-1": "file error", "-2": "stream error", "-3": "data error", "-4": "insufficient memory", "-5": "buffer error", "-6": "incompatible version" } }, {}], 52: [function(e, t, i) { "use strict"; var n = e("../utils/common"); function o(e) { for (var t = e.length; 0 <= --t;) e[t] = 0 } var r = 256, s = 286, a = 30, l = 15, d = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0 ], c = [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13 ], h = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7], u = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ], g = new Array(576); o(g); var p = new Array(60); o(p); var m = new Array(512); o(m); var f = new Array(256); o(f); var _ = new Array(29); o(_); var b, v, w, C = new Array(a); function y(e, t, i, n, o) { this.static_tree = e, this.extra_bits = t, this.extra_base = i, this.elems = n, this.max_length = o, this.has_stree = e && e.length } function S(e, t) { this.dyn_tree = e, this.max_code = 0, this.stat_desc = t } function x(e) { return e < 256 ? m[e] : m[256 + (e >>> 7)] } function k(e, t) { e.pending_buf[e.pending++] = 255 & t, e.pending_buf[e.pending++] = t >>> 8 & 255 } function L(e, t, i) { e.bi_valid > 16 - i ? (e.bi_buf |= t << e.bi_valid & 65535, k(e, e .bi_buf), e.bi_buf = t >> 16 - e.bi_valid, e.bi_valid += i - 16) : (e.bi_buf |= t << e.bi_valid & 65535, e.bi_valid += i) } function N(e, t, i) { L(e, i[2 * t], i[2 * t + 1]) } function D(e, t) { for (var i = 0; i |= 1 & e, e >>>= 1, i <<= 1, 0 < --t;); return i >>> 1 } function E(e, t, i) { var n, o, r = new Array(16), s = 0; for (n = 1; n <= l; n++) r[n] = s = s + i[n - 1] << 1; for (o = 0; o <= t; o++) { var a = e[2 * o + 1]; 0 !== a && (e[2 * o] = D(r[a]++, a)) } } function I(e) { var t; for (t = 0; t < s; t++) e.dyn_ltree[2 * t] = 0; for (t = 0; t < a; t++) e.dyn_dtree[2 * t] = 0; for (t = 0; t < 19; t++) e.bl_tree[2 * t] = 0; e.dyn_ltree[512] = 1, e.opt_len = e.static_len = 0, e.last_lit = e .matches = 0 } function T(e) { 8 < e.bi_valid ? k(e, e.bi_buf) : 0 < e.bi_valid && (e.pending_buf[ e.pending++] = e.bi_buf), e.bi_buf = 0, e.bi_valid = 0 } function M(e, t, i, n) { var o = 2 * t, r = 2 * i; return e[o] < e[r] || e[o] === e[r] && n[t] <= n[i] } function A(e, t, i) { for (var n = e.heap[i], o = i << 1; o <= e.heap_len && (o < e.heap_len && M(t, e.heap[o + 1], e.heap[o], e.depth) && o++, !M(t, n, e.heap[ o], e.depth));) e.heap[i] = e.heap[o], i = o, o <<= 1; e.heap[i] = n } function R(e, t, i) { var n, o, s, a, l = 0; if (0 !== e.last_lit) for (; n = e.pending_buf[e.d_buf + 2 * l] << 8 | e.pending_buf[e.d_buf + 2 * l + 1], o = e.pending_buf[e.l_buf + l], l++, 0 === n ? N(e, o, t) : (N(e, (s = f[o]) + r + 1, t), 0 !== (a = d[s]) && L(e, o -= _[s], a), N(e, s = x(--n), i), 0 !== (a = c[s]) && L(e, n -= C[s], a)), l < e.last_lit;); N(e, 256, t) } function O(e, t) { var i, n, o, r = t.dyn_tree, s = t.stat_desc.static_tree, a = t.stat_desc.has_stree, d = t.stat_desc.elems, c = -1; for (e.heap_len = 0, e.heap_max = 573, i = 0; i < d; i++) 0 !== r[ 2 * i] ? (e.heap[++e.heap_len] = c = i, e.depth[i] = 0) : r[2 * i + 1] = 0; for (; e.heap_len < 2;) r[2 * (o = e.heap[++e.heap_len] = c < 2 ? ++c : 0)] = 1, e.depth[o] = 0, e.opt_len--, a && (e.static_len -= s[2 * o + 1]); for (t.max_code = c, i = e.heap_len >> 1; 1 <= i; i--) A(e, r, i); for (o = d; i = e.heap[1], e.heap[1] = e.heap[e.heap_len--], A(e, r, 1), n = e.heap[1], e.heap[--e.heap_max] = i, e.heap[--e.heap_max] = n, r[2 * o] = r[2 * i] + r[2 * n], e.depth[o] = (e.depth[i] >= e.depth[ n] ? e.depth[i] : e.depth[n]) + 1, r[2 * i + 1] = r[2 * n + 1] = o, e.heap[1] = o++, A(e, r, 1), 2 <= e.heap_len;); e.heap[--e.heap_max] = e.heap[1], function(e, t) { var i, n, o, r, s, a, d = t.dyn_tree, c = t.max_code, h = t.stat_desc.static_tree, u = t.stat_desc.has_stree, g = t.stat_desc.extra_bits, p = t.stat_desc.extra_base, m = t.stat_desc.max_length, f = 0; for (r = 0; r <= l; r++) e.bl_count[r] = 0; for (d[2 * e.heap[e.heap_max] + 1] = 0, i = e.heap_max + 1; i < 573; i++) m < (r = d[2 * d[2 * (n = e.heap[i]) + 1] + 1] + 1) && (r = m, f++), d[2 * n + 1] = r, c < n || (e.bl_count[r]++, s = 0, p <= n && (s = g[n - p]), a = d[2 * n], e.opt_len += a * (r + s), u && (e.static_len += a * (h[2 * n + 1] + s))); if (0 !== f) { do { for (r = m - 1; 0 === e.bl_count[r];) r--; e.bl_count[r]--, e.bl_count[r + 1] += 2, e.bl_count[m]--, f -= 2 } while (0 < f); for (r = m; 0 !== r; r--) for (n = e.bl_count[r]; 0 !== n;) c < (o = e.heap[--i]) || (d[ 2 * o + 1] !== r && (e.opt_len += (r - d[2 * o + 1]) * d[2 * o], d[2 * o + 1] = r), n--) } }(e, t), E(r, c, e.bl_count) } function P(e, t, i) { var n, o, r = -1, s = t[1], a = 0, l = 7, d = 4; for (0 === s && (l = 138, d = 3), t[2 * (i + 1) + 1] = 65535, n = 0; n <= i; n++) o = s, s = t[2 * (n + 1) + 1], ++a < l && o === s || (a < d ? e.bl_tree[2 * o] += a : 0 !== o ? (o !== r && e.bl_tree[ 2 * o]++, e.bl_tree[32]++) : a <= 10 ? e.bl_tree[34]++ : e.bl_tree[ 36]++, r = o, d = (a = 0) === s ? (l = 138, 3) : o === s ? (l = 6, 3) : (l = 7, 4)) } function F(e, t, i) { var n, o, r = -1, s = t[1], a = 0, l = 7, d = 4; for (0 === s && (l = 138, d = 3), n = 0; n <= i; n++) if (o = s, s = t[2 * (n + 1) + 1], !(++a < l && o === s)) { if (a < d) for (; N(e, o, e.bl_tree), 0 != --a;); else 0 !== o ? (o !== r && (N(e, o, e.bl_tree), a--), N(e, 16, e .bl_tree), L(e, a - 3, 2)) : a <= 10 ? (N(e, 17, e.bl_tree), L( e, a - 3, 3)) : (N(e, 18, e.bl_tree), L(e, a - 11, 7)); r = o, d = (a = 0) === s ? (l = 138, 3) : o === s ? (l = 6, 3) : (l = 7, 4) } } o(C); var B = !1; function W(e, t, i, o) { L(e, 0 + (o ? 1 : 0), 3), function(e, t, i, o) { T(e), k(e, i), k(e, ~i), n.arraySet(e.pending_buf, e.window, t, i, e.pending), e.pending += i }(e, t, i) } i._tr_init = function(e) { B || (function() { var e, t, i, n, o, r = new Array(16); for (n = i = 0; n < 28; n++) for (_[n] = i, e = 0; e < 1 << d[n]; e++) f[i++] = n; for (f[i - 1] = n, n = o = 0; n < 16; n++) for (C[n] = o, e = 0; e < 1 << c[n]; e++) m[o++] = n; for (o >>= 7; n < a; n++) for (C[n] = o << 7, e = 0; e < 1 << c[n] - 7; e++) m[256 + o++] = n; for (t = 0; t <= l; t++) r[t] = 0; for (e = 0; e <= 143;) g[2 * e + 1] = 8, e++, r[8]++; for (; e <= 255;) g[2 * e + 1] = 9, e++, r[9]++; for (; e <= 279;) g[2 * e + 1] = 7, e++, r[7]++; for (; e <= 287;) g[2 * e + 1] = 8, e++, r[8]++; for (E(g, 287, r), e = 0; e < a; e++) p[2 * e + 1] = 5, p[2 * e] = D(e, 5); b = new y(g, d, 257, s, l), v = new y(p, c, 0, a, l), w = new y( new Array(0), h, 0, 19, 7) }(), B = !0), e.l_desc = new S(e.dyn_ltree, b), e.d_desc = new S( e.dyn_dtree, v), e.bl_desc = new S(e.bl_tree, w), e.bi_buf = 0, e.bi_valid = 0, I(e) }, i._tr_stored_block = W, i._tr_flush_block = function(e, t, i, n) { var o, s, a = 0; 0 < e.level ? (2 === e.strm.data_type && (e.strm.data_type = function(e) { var t, i = 4093624447; for (t = 0; t <= 31; t++, i >>>= 1) if (1 & i && 0 !== e.dyn_ltree[2 * t]) return 0; if (0 !== e.dyn_ltree[18] || 0 !== e.dyn_ltree[20] || 0 !== e .dyn_ltree[26]) return 1; for (t = 32; t < r; t++) if (0 !== e.dyn_ltree[2 * t]) return 1; return 0 }(e)), O(e, e.l_desc), O(e, e.d_desc), a = function(e) { var t; for (P(e, e.dyn_ltree, e.l_desc.max_code), P(e, e.dyn_dtree, e .d_desc.max_code), O(e, e.bl_desc), t = 18; 3 <= t && 0 === e.bl_tree[2 * u[t] + 1]; t--); return e.opt_len += 3 * (t + 1) + 5 + 5 + 4, t }(e), o = e.opt_len + 3 + 7 >>> 3, (s = e.static_len + 3 + 7 >>> 3) <= o && (o = s)) : o = s = i + 5, i + 4 <= o && -1 !== t ? W( e, t, i, n) : 4 === e.strategy || s === o ? (L(e, 2 + (n ? 1 : 0), 3), R(e, g, p)) : (L(e, 4 + (n ? 1 : 0), 3), function(e, t, i, n) { var o; for (L(e, t - 257, 5), L(e, i - 1, 5), L(e, n - 4, 4), o = 0; o < n; o++) L(e, e.bl_tree[2 * u[o] + 1], 3); F(e, e.dyn_ltree, t - 1), F(e, e.dyn_dtree, i - 1) }(e, e.l_desc.max_code + 1, e.d_desc.max_code + 1, a + 1), R(e, e.dyn_ltree, e.dyn_dtree)), I(e), n && T(e) }, i._tr_tally = function(e, t, i) { return e.pending_buf[e.d_buf + 2 * e.last_lit] = t >>> 8 & 255, e .pending_buf[e.d_buf + 2 * e.last_lit + 1] = 255 & t, e.pending_buf[ e.l_buf + e.last_lit] = 255 & i, e.last_lit++, 0 === t ? e.dyn_ltree[ 2 * i]++ : (e.matches++, t--, e.dyn_ltree[2 * (f[i] + r + 1)]++, e.dyn_dtree[2 * x(t)]++), e.last_lit === e.lit_bufsize - 1 }, i._tr_align = function(e) { L(e, 2, 3), N(e, 256, g), function(e) { 16 === e.bi_valid ? (k(e, e.bi_buf), e.bi_buf = 0, e.bi_valid = 0) : 8 <= e.bi_valid && (e.pending_buf[e.pending++] = 255 & e .bi_buf, e.bi_buf >>= 8, e.bi_valid -= 8) }(e) } }, { "../utils/common": 41 }], 53: [function(e, t, i) { "use strict"; t.exports = function() { this.input = null, this.next_in = 0, this.avail_in = 0, this.total_in = 0, this.output = null, this.next_out = 0, this.avail_out = 0, this.total_out = 0, this.msg = "", this.state = null, this.data_type = 2, this.adler = 0 } }, {}], 54: [function(e, t, i) { "use strict"; t.exports = "function" == typeof setImmediate ? setImmediate : function() { var e = [].slice.apply(arguments); e.splice(1, 0, 0), setTimeout.apply(null, e) } }, {}] }, {}, [10])(10) }, 158: (e, t, i) => { var n; self.MonacoEnvironment = (n = { editorWorkerService: "editor.worker.455af92e7e1dc39fdbc8060f6680ab32.js", css: "css.worker.6cf2730e37c0fe22a2a0295576f3ee12.js", html: "html.worker.6b1ed1bedd96f08944b0e5a8b12c4739.js", json: "json.worker.d63c826e229c90273981bd45f77732ad.js", typescript: "ts.worker.da9b5ead4848cc2777299f9d18504d8c.js", javascript: "ts.worker.da9b5ead4848cc2777299f9d18504d8c.js", less: "css.worker.6cf2730e37c0fe22a2a0295576f3ee12.js", scss: "css.worker.6cf2730e37c0fe22a2a0295576f3ee12.js", handlebars: "html.worker.6b1ed1bedd96f08944b0e5a8b12c4739.js", razor: "html.worker.6b1ed1bedd96f08944b0e5a8b12c4739.js" }, { globalAPI: !1, getWorkerUrl: function(e, t) { var o = i.p, r = (o ? o.replace(/\/$/, "") + "/" : "") + n[t]; if (/^((http:)|(https:)|(file:)|(\/\/))/.test(r)) { var s = String(window.location), a = s.substr(0, s.length - window.location.hash.length - window.location .search.length - window.location.pathname.length); if (r.substring(0, a.length) !== a) { /^(\/\/)/.test(r) && (r = window.location.protocol + r); var l = new Blob(["/*" + t + '*/importScripts("' + r + '");'], { type: "application/javascript" }); return URL.createObjectURL(l) } } return r } }), i(5898), i(4396), i(6012), i(4594), i(2015), i(9093), i(8191), i( 7956), i(9098), i(6522), i(8728), i(2834), i(6961), i(1372), i(255), i( 3190), i(3111), i(4818), i(5091), i(2097), i(2729), i(5389), i(3285), i( 1321), i(3554), i(638), i(7586), i(3167), i(154), i(6307), i(674), i( 370), i(8486), i(4993), i(7720), i(8944), i(8936), i(5048), i(7290), i( 1955), i(2860), i(9830), i(5662), i(9720), i(7847), i(1725), i(185), i( 3497), i(9453), i(661), e.exports = i(110), i(6292), i(605), i(902), i( 8423), i(3763), i(2323), i(7365), i(9723), i(5161), i(6628), i(8307), i( 8828), i(1905), i(4199) }, 6268: (e, t, i) => { "use strict"; i.d(t, { px: () => r, WP: () => s, fX: () => a, ie: () => l, mX: () => d, vU: () => h, Pf: () => u, i7: () => g, G6: () => p, MG: () => m, Dt: () => f, $W: () => _ }); var n = i(4669); class o { constructor() { this._zoomLevel = 0, this._lastZoomLevelChangeTime = 0, this._onDidChangeZoomLevel = new n.Q5, this.onDidChangeZoomLevel = this._onDidChangeZoomLevel.event, this._zoomFactor = 1 } getZoomLevel() { return this._zoomLevel } getTimeSinceLastZoomLevelChanged() { return Date.now() - this._lastZoomLevelChangeTime } getZoomFactor() { return this._zoomFactor } getPixelRatio() { let e = document.createElement("canvas").getContext("2d"); return (window.devicePixelRatio || 1) / (e.webkitBackingStorePixelRatio || e.mozBackingStorePixelRatio || e.msBackingStorePixelRatio || e.oBackingStorePixelRatio || e.backingStorePixelRatio || 1) } } function r() { return o.INSTANCE.getZoomLevel() } function s() { return o.INSTANCE.getTimeSinceLastZoomLevelChanged() } function a(e) { return o.INSTANCE.onDidChangeZoomLevel(e) } function l() { return o.INSTANCE.getZoomFactor() } function d() { return o.INSTANCE.getPixelRatio() } o.INSTANCE = new o; const c = navigator.userAgent, h = c.indexOf("Firefox") >= 0, u = c.indexOf("AppleWebKit") >= 0, g = c.indexOf("Chrome") >= 0, p = !g && c.indexOf("Safari") >= 0, m = !g && !p && u, f = c.indexOf("Android") >= 0, _ = window.matchMedia && window.matchMedia("(display-mode: standalone)") .matches }, 161: (e, t, i) => { "use strict"; i.d(t, { D: () => r }); var n = i(6268), o = i(1432); const r = { clipboard: { writeText: o.tY || document.queryCommandSupported && document.queryCommandSupported( "copy") || !!(navigator && navigator.clipboard && navigator.clipboard .writeText), readText: o.tY || !!(navigator && navigator.clipboard && navigator.clipboard .readText) }, keyboard: o.tY || n.$W ? 0 : navigator.keyboard || n.G6 ? 1 : 2, touch: "ontouchstart" in window || navigator.maxTouchPoints > 0, pointerEvents: window.PointerEvent && ("ontouchstart" in window || window.navigator.maxTouchPoints > 0 || navigator.maxTouchPoints > 0) } }, 3547: (e, t, i) => { "use strict"; i.d(t, { go: () => n, TN: () => o, P$: () => r }); const n = { RESOURCES: "ResourceURLs", DOWNLOAD_URL: "DownloadURL", FILES: "Files", TEXT: i(1170).vW.text, TERMINALS: "Terminals" }; class o { constructor(e) { this.data = e } update() {} getData() { return this.data } } const r = { CurrentDragAndDropData: void 0 } }, 5321: (e, t, i) => { "use strict"; i.d(t, { PO: () => g, Uw: () => p, nm: () => f, mu: () => b, Gw: () => v, Lo: () => w, qV: () => C, j_: () => y, RE: () => S, lI: () => x, jL: () => k, Y_: () => I, Dx: () => T, D6: () => M, Ro: () => R, xQ: () => O, dp: () => P, i: () => F, DI: () => B, w: () => W, FK: () => z, If: () => V, wn: () => H, jg: () => U, Fx: () => j, uU: () => K, OO: () => q, Ay: () => Z, vY: () => G, dS: () => Y, fk: () => J, uN: () => ee, Re: () => te, tw: () => ie, zB: () => ne, vL: () => oe, _0: () => re, go: () => ae, R3: () => le, Ce: () => de, mc: () => ce, $: () => pe, $Z: () => me, Cp: () => fe, H$: () => _e, Uh: () => be, V3: () => ve, jt: () => we, wY: () => Ce, _h: () => ye, _q: () => Se, uB: () => xe }); var n = i(6268), o = i(161), r = i(9069), s = i(3938), a = i(5393), l = i(7301), d = i(4669), c = i(5976), h = i(6663), u = i(1432); function g(e) { for (; e.firstChild;) e.firstChild.remove() } function p(e) { var t; return null !== (t = null == e ? void 0 : e.isConnected) && void 0 !== t && t } class m { constructor(e, t, i, n) { this._node = e, this._type = t, this._handler = i, this._options = n || !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 f(e, t, i, n) { return new m(e, t, i, n) } function _(e) { return function(t) { return e(new s.n(t)) } } let b = function(e, t, i, n) { let o = i; return "click" === t || "mousedown" === t ? o = _(i) : "keydown" !== t && "keypress" !== t && "keyup" !== t || (o = function(e) { return function(t) { return e(new r.y(t)) } }(i)), f(e, t, o, n) }, v = function(e, t, i) { return w(e, _(t), i) }; function w(e, t, i) { return f(e, u.gn && o.D.pointerEvents ? ie.POINTER_DOWN : ie.MOUSE_DOWN, t, i) } function C(e, t, i) { return f(e, u.gn && o.D.pointerEvents ? ie.POINTER_UP : ie.MOUSE_UP, t, i) } function y(e, t) { return f(e, "mouseout", (i => { let n = i.relatedTarget; for (; n && n !== e;) n = n.parentNode; n !== e && t(i) })) } function S(e, t) { return f(e, "pointerout", (i => { let n = i.relatedTarget; for (; n && n !== e;) n = n.parentNode; n !== e && t(i) })) } let x, k, L = null; class N { constructor(e, t = 0) { this._runner = e, this.priority = t, this._canceled = !1 } dispose() { this._canceled = !0 } execute() { if (!this._canceled) try { this._runner() } catch (e) { (0, l.dL)(e) } } static sort(e, t) { return t.priority - e.priority } }! function() { let e = [], t = null, i = !1, n = !1, o = () => { for (i = !1, t = e, e = [], n = !0; t.length > 0;) t.sort(N.sort), t.shift() .execute(); n = !1 }; k = (t, n = 0) => { let r = new N(t, n); return e.push(r), i || (i = !0, function(e) { if (!L) { const e = e => setTimeout((() => e((new Date).getTime())), 0); L = self.requestAnimationFrame || self.msRequestAnimationFrame || self.webkitRequestAnimationFrame || self.mozRequestAnimationFrame || self.oRequestAnimationFrame || e } L.call(self, e) }(o)), r }, x = (e, i) => { if (n) { let n = new N(e, i); return t.push(n), n } return k(e, i) } }(); const D = function(e, t) { return t }; class E extends c.JT { constructor(e, t, i, n = D, o = 8) { super(); let r = null, s = 0, l = this._register(new a._F), d = () => { s = (new Date).getTime(), i(r), r = null }; this._register(f(e, t, (e => { r = n(r, e); let t = (new Date).getTime() - s; t >= o ? (l.cancel(), d()) : l.setIfNotSet(d, o - t) }))) } } function I(e, t, i, n, o) { return new E(e, t, i, n, o) } function T(e) { return document.defaultView.getComputedStyle(e, null) } function M(e) { if (e !== document.body) return new R(e.clientWidth, e.clientHeight); if (u.gn && window.visualViewport) return new R(window.visualViewport.width, window.visualViewport.height); if (window.innerWidth && window.innerHeight) return new R(window.innerWidth, window.innerHeight); if (document.body && document.body.clientWidth && document.body.clientHeight) return new R(document.body.clientWidth, document.body.clientHeight); if (document.documentElement && document.documentElement.clientWidth && document.documentElement.clientHeight) return new R(document.documentElement .clientWidth, document.documentElement.clientHeight); throw new Error("Unable to figure out browser width and height") } class A { static convertToPixels(e, t) { return parseFloat(t) || 0 } static getDimension(e, t, i) { let n = T(e), o = "0"; return n && (o = n.getPropertyValue ? n.getPropertyValue(t) : n.getAttribute( i)), A.convertToPixels(e, o) } static getBorderLeftWidth(e) { return A.getDimension(e, "border-left-width", "borderLeftWidth") } static getBorderRightWidth(e) { return A.getDimension(e, "border-right-width", "borderRightWidth") } static getBorderTopWidth(e) { return A.getDimension(e, "border-top-width", "borderTopWidth") } static getBorderBottomWidth(e) { return A.getDimension(e, "border-bottom-width", "borderBottomWidth") } static getPaddingLeft(e) { return A.getDimension(e, "padding-left", "paddingLeft") } static getPaddingRight(e) { return A.getDimension(e, "padding-right", "paddingRight") } static getPaddingTop(e) { return A.getDimension(e, "padding-top", "paddingTop") } static getPaddingBottom(e) { return A.getDimension(e, "padding-bottom", "paddingBottom") } static getMarginLeft(e) { return A.getDimension(e, "margin-left", "marginLeft") } static getMarginTop(e) { return A.getDimension(e, "margin-top", "marginTop") } static getMarginRight(e) { return A.getDimension(e, "margin-right", "marginRight") } static getMarginBottom(e) { return A.getDimension(e, "margin-bottom", "marginBottom") } } class R { constructor(e, t) { this.width = e, this.height = t } with(e = this.width, t = this.height) { return e !== this.width || t !== this.height ? new R(e, t) : this } static is(e) { return "object" == typeof e && "number" == typeof e.height && "number" == typeof e.width } static lift(e) { return e instanceof R ? e : new R(e.width, e.height) } static equals(e, t) { return e === t || !(!e || !t) && e.width === t.width && e.height === t .height } } function O(e) { let t = e.offsetParent, i = e.offsetTop, n = e.offsetLeft; for (; null !== (e = e.parentNode) && e !== document.body && e !== document.documentElement;) { i -= e.scrollTop; const o = $(e) ? null : T(e); o && (n -= "rtl" !== o.direction ? e.scrollLeft : -e.scrollLeft), e === t && (n += A.getBorderLeftWidth(e), i += A.getBorderTopWidth(e), i += e.offsetTop, n += e.offsetLeft, t = e.offsetParent) } return { left: n, top: i } } function P(e, t, i) { "number" == typeof t && (e.style.width = `${t}px`), "number" == typeof i && (e.style.height = `${i}px`) } function F(e) { let t = e.getBoundingClientRect(); return { left: t.left + B.scrollX, top: t.top + B.scrollY, width: t.width, height: t.height } } const B = new class {get scrollX() { return "number" == typeof window.scrollX ? window.scrollX : document.body .scrollLeft + document.documentElement.scrollLeft } get scrollY() { return "number" == typeof window.scrollY ? window.scrollY : document.body .scrollTop + document.documentElement.scrollTop } }; function W(e) { let t = A.getMarginLeft(e) + A.getMarginRight(e); return e.offsetWidth + t } function z(e) { let t = A.getBorderLeftWidth(e) + A.getBorderRightWidth(e), i = A.getPaddingLeft(e) + A.getPaddingRight(e); return e.offsetWidth - t - i } function V(e) { let t = A.getBorderTopWidth(e) + A.getBorderBottomWidth(e), i = A.getPaddingTop(e) + A.getPaddingBottom(e); return e.offsetHeight - t - i } function H(e) { let t = A.getMarginTop(e) + A.getMarginBottom(e); return e.offsetHeight + t } function U(e, t) { for (; e;) { if (e === t) return !0; e = e.parentNode } return !1 } function j(e, t, i) { for (; e && e.nodeType === e.ELEMENT_NODE;) { if (e.classList.contains(t)) return e; if (i) if ("string" == typeof i) { if (e.classList.contains(i)) return null } else if (e === i) return null; e = e.parentNode } return null } function K(e, t, i) { return !!j(e, t, i) } function $(e) { return e && !!e.host && !!e.mode } function q(e) { return !!Z(e) } function Z(e) { for (; e.parentNode;) { if (e === document.body) return null; e = e.parentNode } return $(e) ? e : null } function G() { let e = document.activeElement; for (; null == e ? void 0 : e.shadowRoot;) e = e.shadowRoot.activeElement; return e } function Y(e = document.getElementsByTagName("head")[0]) { let t = document.createElement("style"); return t.type = "text/css", t.media = "screen", e.appendChild(t), t } let Q = null; function X() { return Q || (Q = Y()), Q } function J(e, t, i = X()) { i && t && i.sheet.insertRule(e + "{" + t + "}", 0) } function ee(e, t = X()) { if (!t) return; let i = function(e) { var t, i; return (null === (t = null == e ? void 0 : e.sheet) || void 0 === t ? void 0 : t.rules) ? e.sheet.rules : (null === (i = null == e ? void 0 : e.sheet) || void 0 === i ? void 0 : i.cssRules) ? e.sheet.cssRules : [] }(t), n = []; for (let t = 0; t < i.length; t++) - 1 !== i[t].selectorText.indexOf(e) && n.push(t); for (let e = n.length - 1; e >= 0; e--) t.sheet.deleteRule(n[e]) } function te(e) { return "object" == typeof HTMLElement ? e instanceof HTMLElement : e && "object" == typeof e && 1 === e.nodeType && "string" == typeof e.nodeName } const ie = { 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", CONTEXT_MENU: "contextmenu", WHEEL: "wheel", KEY_DOWN: "keydown", KEY_PRESS: "keypress", KEY_UP: "keyup", LOAD: "load", BEFORE_UNLOAD: "beforeunload", UNLOAD: "unload", 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: n.Pf ? "webkitAnimationStart" : "animationstart", ANIMATION_END: n.Pf ? "webkitAnimationEnd" : "animationend", ANIMATION_ITERATION: n.Pf ? "webkitAnimationIteration" : "animationiteration" }, ne = { stop: function(e, t) { e.preventDefault ? e.preventDefault() : e.returnValue = !1, t && (e.stopPropagation ? e.stopPropagation() : e.cancelBubble = !0) } }; function oe(e) { let t = []; for (let i = 0; e && e.nodeType === e.ELEMENT_NODE; i++) t[i] = e.scrollTop, e = e.parentNode; return t } function re(e, t) { for (let i = 0; e && e.nodeType === e.ELEMENT_NODE; i++) e.scrollTop !== t[i] && (e.scrollTop = t[i]), e = e.parentNode } class se extends c.JT { constructor(e) { super(), this._onDidFocus = this._register(new d.Q5), this.onDidFocus = this._onDidFocus.event, this._onDidBlur = this._register(new d.Q5), this.onDidBlur = this._onDidBlur.event; let t = U(document.activeElement, e), i = !1; const n = () => { i = !1, t || (t = !0, this._onDidFocus.fire()) }, o = () => { t && (i = !0, window.setTimeout((() => { i && (i = !1, t = !1, this._onDidBlur.fire()) }), 0)) }; this._refreshStateHandler = () => { U(document.activeElement, e) !== t && (t ? o() : n()) }, this._register(f(e, ie.FOCUS, n, !0)), this._register(f(e, ie.BLUR, o, !0)) } } function ae(e) { return new se(e) } function le(e, ...t) { if (e.append(...t), 1 === t.length && "string" != typeof t[0]) return t[ 0] } function de(e, t) { return e.insertBefore(t, e.firstChild), t } function ce(e, ...t) { e.innerText = "", le(e, ...t) } const he = /([\w\-]+)?(#([\w\-]+))?((\.([\w\-]+))*)/; var ue; function ge(e, t, i, ...n) { let o = he.exec(t); if (!o) throw new Error("Bad use of emmet"); i = Object.assign({}, i || {}); let r, s = o[1] || "div"; return r = e !== ue.HTML ? document.createElementNS(e, s) : document.createElement( s), o[3] && (r.id = o[3]), o[4] && (r.className = o[4].replace(/\./g, " ").trim()), Object.keys(i).forEach((e => { const t = i[e]; void 0 !== t && (/^on\w+$/.test(e) ? r[e] = t : "selected" === e ? t && r.setAttribute(e, "true") : r.setAttribute(e, t)) })), r.append(...n), r } function pe(e, t, ...i) { return ge(ue.HTML, e, t, ...i) } function me(...e) { for (let t of e) t.style.display = "", t.removeAttribute("aria-hidden") } function fe(...e) { for (let t of e) t.style.display = "none", t.setAttribute("aria-hidden", "true") } function _e(e) { return Array.prototype.slice.call(document.getElementsByTagName(e), 0) } function be(e) { const t = window.devicePixelRatio * e; return Math.max(1, Math.floor(t)) / window.devicePixelRatio } function ve(e) { window.open(e, "_blank", "noopener") } function we(e) { const t = () => { e(), i = k(t) }; let i = k(t); return (0, c.OF)((() => i.dispose())) } function Ce(e) { return e ? `url('${h.Gi.asBrowserUri(e).toString(!0).replace(/'/g,"%27")}')` : "url('')" } function ye(e) { return `'${e.replace(/'/g,"%27")}'` }! function(e) { e.HTML = "http://www.w3.org/1999/xhtml", e.SVG = "http://www.w3.org/2000/svg" }(ue || (ue = {})), pe.SVG = function(e, t, ...i) { return ge(ue.SVG, e, t, ...i) }, h.WX.setPreferredWebSchema(/^https:/.test(window.location.href) ? "https" : "http"); class Se extends d.Q5 { constructor() { super(), this._subscriptions = new c.SL, this._keyStatus = { altKey: !1, shiftKey: !1, ctrlKey: !1, metaKey: !1 }, this._subscriptions.add(f(window, "keydown", (e => { if (e.defaultPrevented) return; const t = new r.y(e); if (6 !== t.keyCode || !e.repeat) { if (e.altKey && !this._keyStatus.altKey) this._keyStatus.lastKeyPressed = "alt"; else if (e.ctrlKey && !this._keyStatus.ctrlKey) this._keyStatus .lastKeyPressed = "ctrl"; else if (e.metaKey && !this._keyStatus.metaKey) this._keyStatus .lastKeyPressed = "meta"; else if (e.shiftKey && !this._keyStatus.shiftKey) this._keyStatus .lastKeyPressed = "shift"; else { if (6 === t.keyCode) return; this._keyStatus.lastKeyPressed = void 0 } this._keyStatus.altKey = e.altKey, this._keyStatus.ctrlKey = e.ctrlKey, this._keyStatus.metaKey = e.metaKey, this._keyStatus.shiftKey = e.shiftKey, this._keyStatus.lastKeyPressed && (this._keyStatus .event = e, this.fire(this._keyStatus)) } }), !0)), this._subscriptions.add(f(window, "keyup", (e => { e.defaultPrevented || (!e.altKey && this._keyStatus.altKey ? this._keyStatus.lastKeyReleased = "alt" : !e.ctrlKey && this._keyStatus .ctrlKey ? this._keyStatus.lastKeyReleased = "ctrl" : !e.metaKey && this._keyStatus.metaKey ? this._keyStatus.lastKeyReleased = "meta" : !e.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 = e.altKey, this._keyStatus.ctrlKey = e.ctrlKey, this._keyStatus .metaKey = e.metaKey, this._keyStatus.shiftKey = e.shiftKey, this._keyStatus.lastKeyReleased && (this._keyStatus.event = e, this.fire(this._keyStatus))) }), !0)), this._subscriptions.add(f(document.body, "mousedown", (() => { this._keyStatus.lastKeyPressed = void 0 }), !0)), this._subscriptions.add(f(document.body, "mouseup", (() => { this._keyStatus.lastKeyPressed = void 0 }), !0)), this._subscriptions.add(f(document.body, "mousemove", (e => { e.buttons && (this._keyStatus.lastKeyPressed = void 0) }), !0)), this._subscriptions.add(f(window, "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 Se.instance || (Se.instance = new Se), Se.instance } dispose() { super.dispose(), this._subscriptions.dispose() } } function xe(e, t) { const i = window.matchMedia(e); "function" == typeof i.addEventListener ? i.addEventListener("change", t) : i.addListener(t) } }, 4850: (e, t, i) => { "use strict"; i.d(t, { Y: () => o, p: () => r }); var n = i(4669); class o { constructor(e, t, i) { const o = e => this.emitter.fire(e); this.emitter = new n.Q5({ onFirstListenerAdd: () => e.addEventListener(t, o, i), onLastListenerRemove: () => e.removeEventListener(t, o, i) }) } get event() { return this.emitter.event } dispose() { this.emitter.dispose() } } function r(e) { return e.preventDefault(), e.stopPropagation(), e } }, 8626: (e, t, i) => { "use strict"; i.d(t, { Z: () => n, X: () => o }); class n { constructor(e) { this.domNode = e, this._maxWidth = -1, this._width = -1, this._height = - 1, this._top = -1, this._left = -1, this._bottom = -1, this._right = - 1, this._fontFamily = "", this._fontWeight = "", this._fontSize = -1, this._fontFeatureSettings = "", this._lineHeight = -1, this._letterSpacing = - 100, this._className = "", this._display = "", this._position = "", this._visibility = "", this._backgroundColor = "", this._layerHint = ! 1, this._contain = "none", this._boxShadow = "" } setMaxWidth(e) { this._maxWidth !== e && (this._maxWidth = e, this.domNode.style.maxWidth = this._maxWidth + "px") } setWidth(e) { this._width !== e && (this._width = e, this.domNode.style.width = this ._width + "px") } setHeight(e) { this._height !== e && (this._height = e, this.domNode.style.height = this._height + "px") } setTop(e) { this._top !== e && (this._top = e, this.domNode.style.top = this._top + "px") } unsetTop() { -1 !== this._top && (this._top = -1, this.domNode.style.top = "") } setLeft(e) { this._left !== e && (this._left = e, this.domNode.style.left = this._left + "px") } setBottom(e) { this._bottom !== e && (this._bottom = e, this.domNode.style.bottom = this._bottom + "px") } setRight(e) { this._right !== e && (this._right = e, this.domNode.style.right = this ._right + "px") } setFontFamily(e) { this._fontFamily !== e && (this._fontFamily = e, this.domNode.style.fontFamily = this._fontFamily) } setFontWeight(e) { this._fontWeight !== e && (this._fontWeight = e, this.domNode.style.fontWeight = this._fontWeight) } setFontSize(e) { this._fontSize !== e && (this._fontSize = e, this.domNode.style.fontSize = this._fontSize + "px") } setFontFeatureSettings(e) { this._fontFeatureSettings !== e && (this._fontFeatureSettings = e, this.domNode.style.fontFeatureSettings = this._fontFeatureSettings) } setLineHeight(e) { this._lineHeight !== e && (this._lineHeight = e, this.domNode.style.lineHeight = this._lineHeight + "px") } setLetterSpacing(e) { this._letterSpacing !== e && (this._letterSpacing = e, this.domNode.style .letterSpacing = this._letterSpacing + "px") } setClassName(e) { this._className !== e && (this._className = e, this.domNode.className = this._className) } toggleClassName(e, t) { this.domNode.classList.toggle(e, t), this._className = this.domNode.className } setDisplay(e) { this._display !== e && (this._display = e, this.domNode.style.display = this._display) } setPosition(e) { this._position !== e && (this._position = e, this.domNode.style.position = this._position) } setVisibility(e) { this._visibility !== e && (this._visibility = e, this.domNode.style.visibility = this._visibility) } setBackgroundColor(e) { this._backgroundColor !== e && (this._backgroundColor = e, this.domNode .style.backgroundColor = this._backgroundColor) } setLayerHinting(e) { this._layerHint !== e && (this._layerHint = e, this.domNode.style.transform = this._layerHint ? "translate3d(0px, 0px, 0px)" : "") } setBoxShadow(e) { this._boxShadow !== e && (this._boxShadow = e, this.domNode.style.boxShadow = e) } setContain(e) { this._contain !== e && (this._contain = e, this.domNode.style.contain = this._contain) } setAttribute(e, t) { this.domNode.setAttribute(e, t) } removeAttribute(e) { this.domNode.removeAttribute(e) } appendChild(e) { this.domNode.appendChild(e.domNode) } removeChild(e) { this.domNode.removeChild(e.domNode) } } function o(e) { return new n(e) } }, 8764: (e, t, i) => { "use strict"; i.d(t, { IY: () => o, BO: () => r, az: () => s }); var n = i(5321); function o(e, t = {}) { const i = s(t); return i.textContent = e, i } function r(e, t = {}) { const i = s(t); return l(i, function(e, t) { const i = { type: 1, children: [] }; let n = 0, o = i; const r = [], s = new a(e); for (; !s.eos();) { let e = s.next(); const i = "\\" === e && 0 !== d(s.peek(), t); if (i && (e = s.next()), i || 0 === d(e, t) || e !== s.peek()) if ("\n" === e) 2 === o.type && (o = r.pop()), o.children.push({ type: 8 }); else if (2 !== o.type) { const t = { type: 2, content: e }; o.children.push(t), r.push(o), o = t } else o.content += e; else { s.advance(), 2 === o.type && (o = r.pop()); const i = d(e, t); if (o.type === i || 5 === o.type && 6 === i) o = r.pop(); else { const e = { type: i, children: [] }; 5 === i && (e.index = n, n++), o.children.push(e), r.push(o), o = e } } } return 2 === o.type && (o = r.pop()), r.length, i }(e, !!t.renderCodeSegments), t.actionHandler, t.renderCodeSegments), i } function s(e) { const t = e.inline ? "span" : "div", i = document.createElement(t); return e.className && (i.className = e.className), i } class a { constructor(e) { this.source = e, this.index = 0 } eos() { return this.index >= this.source.length } next() { const e = this.peek(); return this.advance(), e } peek() { return this.source[this.index] } advance() { this.index++ } } function l(e, t, i, o) { let r; if (2 === t.type) r = document.createTextNode(t.content || ""); else if (3 === t.type) r = document.createElement("b"); else if (4 === t.type) r = document.createElement("i"); else if (7 === t.type && o) r = document.createElement("code"); else if (5 === t.type && i) { const e = document.createElement("a"); e.href = "#", i.disposables.add(n.mu(e, "click", (e => { i.callback(String(t.index), e) }))), r = e } else 8 === t.type ? r = document.createElement("br") : 1 === t.type && (r = e); r && e !== r && e.appendChild(r), r && Array.isArray(t.children) && t.children .forEach((e => { l(r, e, i, o) })) } function d(e, t) { switch (e) { case "*": return 3; case "_": return 4; case "[": return 5; case "]": return 6; case "`": return t ? 7 : 0; default: return 0 } } }, 7974: (e, t, i) => { "use strict"; i.d(t, { e: () => l, Z: () => d }); var n = i(5321), o = i(262), r = i(3938), s = i(5976), a = i(1432); function l(e, t) { let i = new r.n(t); return i.preventDefault(), { leftButton: i.leftButton, buttons: i.buttons, posx: i.posx, posy: i.posy } } class d { constructor() { this._hooks = new s.SL, this._mouseMoveEventMerger = null, this._mouseMoveCallback = null, this._onStopCallback = null } dispose() { this.stopMonitoring(!1), this._hooks.dispose() } stopMonitoring(e, t) { if (!this.isMonitoring()) return; this._hooks.clear(), this._mouseMoveEventMerger = null, this._mouseMoveCallback = null; const i = this._onStopCallback; this._onStopCallback = null, e && i && i(t) } isMonitoring() { return !!this._mouseMoveEventMerger } startMonitoring(e, t, i, s, l) { if (this.isMonitoring()) return; this._mouseMoveEventMerger = i, this._mouseMoveCallback = s, this._onStopCallback = l; const d = o.E.getSameOriginWindowChain(), c = a.gn ? "pointermove" : "mousemove", h = d.map((e => e.window.document)), u = n.Ay(e); u && h.unshift(u); for (const e of h) this._hooks.add(n.Y_(e, c, (e => { e.buttons === t ? this._mouseMoveCallback(e) : this.stopMonitoring(! 0) }), ((e, t) => this._mouseMoveEventMerger(e, t)))), this._hooks.add(n .nm(e, "mouseup", (e => this.stopMonitoring(!0)))); if (o.E.hasDifferentOriginAncestor()) { let e = d[d.length - 1]; this._hooks.add(n.nm(e.window.document, "mouseout", (e => { "html" === new r.n(e).target.tagName.toLowerCase() && this.stopMonitoring(! 0) }))), this._hooks.add(n.nm(e.window.document, "mouseover", (e => { "html" === new r.n(e).target.tagName.toLowerCase() && this.stopMonitoring(! 0) }))), this._hooks.add(n.nm(e.window.document.body, "mouseleave", (e => { this.stopMonitoring(!0) }))) } } } }, 262: (e, t, i) => { "use strict"; i.d(t, { E: () => s }); let n = !1, o = null; function r(e) { if (!e.parent || e.parent === e) return null; try { let t = e.location, i = e.parent.location; if ("null" !== t.origin && "null" !== i.origin && (t.protocol !== i.protocol || t.hostname !== i.hostname || t.port !== i.port)) return n = !0, null } catch (e) { return n = !0, null } return e.parent } class s { static getSameOriginWindowChain() { if (!o) { o = []; let e, t = window; do { e = r(t), e ? o.push({ window: t, iframeElement: t.frameElement || null }) : o.push({ window: t, iframeElement: null }), t = e } while (t) } return o.slice(0) } static hasDifferentOriginAncestor() { return o || this.getSameOriginWindowChain(), n } static getPositionOfChildWindowRelativeToAncestorWindow(e, t) { if (!t || e === t) return { top: 0, left: 0 }; let i = 0, n = 0, o = this.getSameOriginWindowChain(); for (const e of o) { if (i += e.window.scrollY, n += e.window.scrollX, e.window === t) break; if (!e.iframeElement) break; let o = e.iframeElement.getBoundingClientRect(); i += o.top, n += o.left } return { top: i, left: n } } } }, 9069: (e, t, i) => { "use strict"; i.d(t, { y: () => c }); var n = i(6268), o = i(2258), r = i(1432); let s = new Array(230), a = new Array(112); ! function() { for (let e = 0; e < a.length; e++) a[e] = -1; function e(e, t) { s[e] = t, a[t] = e } e(3, 7), e(8, 1), e(9, 2), e(13, 3), e(16, 4), e(17, 5), e(18, 6), e(19, 7), e(20, 8), e(27, 9), e(32, 10), e(33, 11), e(34, 12), e(35, 13), e( 36, 14), e(37, 15), e(38, 16), e(39, 17), e(40, 18), e(45, 19), e(46, 20), e(48, 21), e(49, 22), e(50, 23), e(51, 24), e(52, 25), e(53, 26), e(54, 27), e(55, 28), e(56, 29), e(57, 30), e(65, 31), e(66, 32), e(67, 33), e(68, 34), e(69, 35), e(70, 36), e(71, 37), e(72, 38), e(73, 39), e(74, 40), e(75, 41), e(76, 42), e(77, 43), e(78, 44), e(79, 45), e(80, 46), e(81, 47), e(82, 48), e(83, 49), e(84, 50), e(85, 51), e(86, 52), e(87, 53), e(88, 54), e(89, 55), e(90, 56), e(93, 58), e(96, 93), e(97, 94), e(98, 95), e(99, 96), e(100, 97), e(101, 98), e(102, 99), e(103, 100), e(104, 101), e(105, 102), e(106, 103), e(107, 104), e(108, 105), e(109, 106), e(110, 107), e(111, 108), e(112, 59), e(113, 60), e(114, 61), e(115, 62), e(116, 63), e(117, 64), e(118, 65), e(119, 66), e(120, 67), e(121, 68), e(122, 69), e(123, 70), e(124, 71), e(125, 72), e(126, 73), e(127, 74), e(128, 75), e(129, 76), e(130, 77), e(144, 78), e(145, 79), e(186, 80), e(187, 81), e(188, 82), e(189, 83), e(190, 84), e(191, 85), e(192, 86), e(193, 110), e(194, 111), e(219, 87), e(220, 88), e( 221, 89), e(222, 90), e(223, 91), e(226, 92), e(229, 109), n.vU ? (e( 59, 80), e(107, 81), e(109, 83), r.dz && e(224, 57)) : n.Pf && (e(91, 57), r.dz ? e(93, 57) : e(92, 57)) }(); const l = r.dz ? 256 : 2048, d = r.dz ? 2048 : 256; class c { constructor(e) { this._standardKeyboardEventBrand = !0; let t = e; this.browserEvent = t, this.target = t.target, this.ctrlKey = t.ctrlKey, this.shiftKey = t.shiftKey, this.altKey = t.altKey, this.metaKey = t.metaKey, this.keyCode = function(e) { if (e.charCode) { let t = String.fromCharCode(e.charCode).toUpperCase(); return o.kL.fromString(t) } return s[e.keyCode] || 0 }(t), this.code = t.code, this.ctrlKey = this.ctrlKey || 5 === this.keyCode, this.altKey = this.altKey || 6 === this.keyCode, this.shiftKey = this .shiftKey || 4 === this.keyCode, this.metaKey = this.metaKey || 57 === this.keyCode, this._asKeybinding = this._computeKeybinding(), this._asRuntimeKeybinding = this._computeRuntimeKeybinding() } preventDefault() { this.browserEvent && this.browserEvent.preventDefault && this.browserEvent .preventDefault() } stopPropagation() { this.browserEvent && this.browserEvent.stopPropagation && this.browserEvent .stopPropagation() } toKeybinding() { return this._asRuntimeKeybinding } equals(e) { return this._asKeybinding === e } _computeKeybinding() { let e = 0; 5 !== this.keyCode && 4 !== this.keyCode && 6 !== this.keyCode && 57 !== this.keyCode && (e = this.keyCode); let t = 0; return this.ctrlKey && (t |= l), this.altKey && (t |= 512), this.shiftKey && (t |= 1024), this.metaKey && (t |= d), t |= e, t } _computeRuntimeKeybinding() { let e = 0; return 5 !== this.keyCode && 4 !== this.keyCode && 6 !== this.keyCode && 57 !== this.keyCode && (e = this.keyCode), new o.QC(this.ctrlKey, this.shiftKey, this.altKey, this.metaKey, e) } } }, 3938: (e, t, i) => { "use strict"; i.d(t, { n: () => s, q: () => a }); var n = i(6268), o = i(262), r = i(1432); class s { constructor(e) { this.timestamp = Date.now(), this.browserEvent = e, this.leftButton = 0 === e.button, this.middleButton = 1 === e.button, this.rightButton = 2 === e.button, this.buttons = e.buttons, this.target = e.target, this.detail = e.detail || 1, "dblclick" === e.type && (this.detail = 2), this.ctrlKey = e.ctrlKey, this.shiftKey = e.shiftKey, this.altKey = e.altKey, this.metaKey = e.metaKey, "number" == typeof e.pageX ? ( this.posx = e.pageX, this.posy = e.pageY) : (this.posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft, this .posy = e.clientY + document.body.scrollTop + document.documentElement .scrollTop); let t = o.E.getPositionOfChildWindowRelativeToAncestorWindow(self, e.view); this.posx -= t.left, this.posy -= t.top } preventDefault() { this.browserEvent.preventDefault() } stopPropagation() { this.browserEvent.stopPropagation() } } class a { constructor(e, t = 0, i = 0) { if (this.browserEvent = e || null, this.target = e ? e.target || e.targetNode || e.srcElement : null, this.deltaY = i, this.deltaX = t, e) { let t = e, i = e; if (void 0 !== t.wheelDeltaY) this.deltaY = t.wheelDeltaY / 120; else if (void 0 !== i.VERTICAL_AXIS && i.axis === i.VERTICAL_AXIS) this.deltaY = -i.detail / 3; else if ("wheel" === e.type) { const t = e; t.deltaMode === t.DOM_DELTA_LINE ? n.vU && !r.dz ? this.deltaY = -e.deltaY / 3 : this.deltaY = -e.deltaY : this.deltaY = -e.deltaY / 40 } if (void 0 !== t.wheelDeltaX) n.G6 && r.ED ? this.deltaX = -t.wheelDeltaX / 120 : this.deltaX = t.wheelDeltaX / 120; else if (void 0 !== i.HORIZONTAL_AXIS && i.axis === i.HORIZONTAL_AXIS) this.deltaX = -e.detail / 3; else if ("wheel" === e.type) { const t = e; t.deltaMode === t.DOM_DELTA_LINE ? n.vU && !r.dz ? this.deltaX = -e.deltaX / 3 : this.deltaX = -e.deltaX : this.deltaX = -e.deltaX / 40 } 0 === this.deltaY && 0 === this.deltaX && e.wheelDelta && (this.deltaY = e.wheelDelta / 120) } } preventDefault() { this.browserEvent && this.browserEvent.preventDefault() } stopPropagation() { this.browserEvent && this.browserEvent.stopPropagation() } } }, 553: (e, t, i) => { "use strict"; i.d(t, { t: () => n, o: () => l }); var n, o = i(5321), r = i(9488), s = i(9898), a = i(5976); ! function(e) { e.Tap = "-monaco-gesturetap", e.Change = "-monaco-gesturechange", e.Start = "-monaco-gesturestart", e.End = "-monaco-gesturesend", e.Contextmenu = "-monaco-gesturecontextmenu" }(n || (n = {})); class l extends a.JT { constructor() { super(), this.dispatched = !1, this.activeTouches = {}, this.handle = null, this.targets = [], this.ignoreTargets = [], this._lastSetTapCountTime = 0, this._register(o.nm(document, "touchstart", (e => this.onTouchStart( e)), { passive: !1 })), this._register(o.nm(document, "touchend", (e => this.onTouchEnd( e)))), this._register(o.nm(document, "touchmove", (e => this.onTouchMove( e)), { passive: !1 })) } static addTarget(e) { return l.isTouchDevice() ? (l.INSTANCE || (l.INSTANCE = new l), l.INSTANCE .targets.push(e), { dispose: () => { l.INSTANCE.targets = l.INSTANCE.targets.filter((t => t !== e)) } }) : a.JT.None } static ignoreTarget(e) { return l.isTouchDevice() ? (l.INSTANCE || (l.INSTANCE = new l), l.INSTANCE .ignoreTargets.push(e), { dispose: () => { l.INSTANCE.ignoreTargets = l.INSTANCE.ignoreTargets.filter((t => t !== e)) } }) : a.JT.None } static isTouchDevice() { return "ontouchstart" in window || navigator.maxTouchPoints > 0 } dispose() { this.handle && (this.handle.dispose(), this.handle = null), super.dispose() } onTouchStart(e) { let t = Date.now(); this.handle && (this.handle.dispose(), this.handle = null); for (let i = 0, o = e.targetTouches.length; i < o; i++) { let o = e.targetTouches.item(i); this.activeTouches[o.identifier] = { id: o.identifier, initialTarget: o.target, initialTimeStamp: t, initialPageX: o.pageX, initialPageY: o.pageY, rollingTimestamps: [t], rollingPageX: [o.pageX], rollingPageY: [o.pageY] }; let r = this.newGestureEvent(n.Start, o.target); r.pageX = o.pageX, r.pageY = o.pageY, this.dispatchEvent(r) } this.dispatched && (e.preventDefault(), e.stopPropagation(), this.dispatched = ! 1) } onTouchEnd(e) { let t = Date.now(), i = Object.keys(this.activeTouches).length; for (let o = 0, s = e.changedTouches.length; o < s; o++) { let s = e.changedTouches.item(o); if (!this.activeTouches.hasOwnProperty(String(s.identifier))) { console.warn("move of an UNKNOWN touch", s); continue } let a = this.activeTouches[s.identifier], d = Date.now() - a.initialTimeStamp; if (d < l.HOLD_DELAY && Math.abs(a.initialPageX - r.Gb(a.rollingPageX)) < 30 && Math.abs(a.initialPageY - r.Gb(a.rollingPageY)) < 30) { let e = this.newGestureEvent(n.Tap, a.initialTarget); e.pageX = r.Gb(a.rollingPageX), e.pageY = r.Gb(a.rollingPageY), this.dispatchEvent(e) } else if (d >= l.HOLD_DELAY && Math.abs(a.initialPageX - r.Gb(a.rollingPageX)) < 30 && Math.abs(a.initialPageY - r.Gb(a.rollingPageY)) < 30) { let e = this.newGestureEvent(n.Contextmenu, a.initialTarget); e.pageX = r.Gb(a.rollingPageX), e.pageY = r.Gb(a.rollingPageY), this.dispatchEvent(e) } else if (1 === i) { let e = r.Gb(a.rollingPageX), i = r.Gb(a.rollingPageY), n = r.Gb(a.rollingTimestamps) - a.rollingTimestamps[0], o = e - a.rollingPageX[0], s = i - a.rollingPageY[0]; const l = this.targets.filter((e => a.initialTarget instanceof Node && e.contains(a.initialTarget))); this.inertia(l, t, Math.abs(o) / n, o > 0 ? 1 : -1, e, Math.abs(s) / n, s > 0 ? 1 : -1, i) } this.dispatchEvent(this.newGestureEvent(n.End, a.initialTarget)), delete this.activeTouches[s.identifier] } this.dispatched && (e.preventDefault(), e.stopPropagation(), this.dispatched = ! 1) } newGestureEvent(e, t) { let i = document.createEvent("CustomEvent"); return i.initEvent(e, !1, !0), i.initialTarget = t, i.tapCount = 0, i } dispatchEvent(e) { if (e.type === n.Tap) { const t = (new Date).getTime(); let i = 0; i = t - this._lastSetTapCountTime > l.CLEAR_TAP_COUNT_TIME ? 1 : 2, this._lastSetTapCountTime = t, e.tapCount = i } else e.type !== n.Change && e.type !== n.Contextmenu || (this._lastSetTapCountTime = 0); for (let t = 0; t < this.ignoreTargets.length; t++) if (e.initialTarget instanceof Node && this.ignoreTargets[t].contains( e.initialTarget)) return; this.targets.forEach((t => { e.initialTarget instanceof Node && t.contains(e.initialTarget) && (t.dispatchEvent(e), this.dispatched = !0) })) } inertia(e, t, i, r, s, a, d, c) { this.handle = o.jL((() => { let o = Date.now(), h = o - t, u = 0, g = 0, p = !0; i += l.SCROLL_FRICTION * h, a += l.SCROLL_FRICTION * h, i > 0 && (p = !1, u = r * i * h), a > 0 && (p = !1, g = d * a * h); let m = this.newGestureEvent(n.Change); m.translationX = u, m.translationY = g, e.forEach((e => e.dispatchEvent( m))), p || this.inertia(e, o, i, r, s + u, a, d, c + g) })) } onTouchMove(e) { let t = Date.now(); for (let i = 0, o = e.changedTouches.length; i < o; i++) { let o = e.changedTouches.item(i); if (!this.activeTouches.hasOwnProperty(String(o.identifier))) { console.warn("end of an UNKNOWN touch", o); continue } let s = this.activeTouches[o.identifier], a = this.newGestureEvent(n.Change, s.initialTarget); a.translationX = o.pageX - r.Gb(s.rollingPageX), a.translationY = o.pageY - r.Gb(s.rollingPageY), a.pageX = o.pageX, a.pageY = o.pageY, this.dispatchEvent( a), s.rollingPageX.length > 3 && (s.rollingPageX.shift(), s.rollingPageY .shift(), s.rollingTimestamps.shift()), s.rollingPageX.push(o.pageX), s.rollingPageY.push(o.pageY), s.rollingTimestamps.push(t) } this.dispatched && (e.preventDefault(), e.stopPropagation(), this.dispatched = ! 1) } } l.SCROLL_FRICTION = -.005, l.HOLD_DELAY = 700, l.CLEAR_TAP_COUNT_TIME = 400, function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); r > 3 && s && Object.defineProperty(t, i, s) }([s.H], l, "isTouchDevice", null) }, 6033: (e, t, i) => { "use strict"; i.d(t, { Y: () => u, g: () => g }); var n = i(6268), o = i(3547), r = i(5321), s = i(553), a = i(4741), l = i(5976), d = i(1432), c = i(8401), h = (i(5408), i(3580)); class u extends l.JT { constructor(e, t, i = {}) { super(), this.options = i, this._context = e || this, this._action = t, t instanceof a.aU && this._register(t.onDidChange((e => { this.element && this.handleActionChangeEvent(e) }))) } handleActionChangeEvent(e) { void 0 !== e.enabled && this.updateEnabled(), void 0 !== e.checked && this.updateChecked(), void 0 !== e.class && this.updateClass(), void 0 !== e.label && (this.updateLabel(), this.updateTooltip()), void 0 !== e.tooltip && this.updateTooltip() } get actionRunner() { return this._actionRunner || (this._actionRunner = this._register(new a .Wi)), this._actionRunner } set actionRunner(e) { this._actionRunner = e } getAction() { return this._action } isEnabled() { return this._action.enabled } setActionContext(e) { this._context = e } render(e) { const t = this.element = e; this._register(s.o.addTarget(e)); const i = this.options && this.options.draggable; i && (e.draggable = !0, n.vU && this._register((0, r.nm)(e, r.tw.DRAG_START, ( e => { var t; return null === (t = e.dataTransfer) || void 0 === t ? void 0 : t.setData(o.go.TEXT, this._action.label) })))), this._register((0, r.nm)(t, s.t.Tap, (e => this.onClick(e, ! 0)))), this._register((0, r.nm)(t, r.tw.MOUSE_DOWN, (e => { i || r.zB.stop(e, !0), this._action.enabled && 0 === e.button && t.classList.add("active") }))), d.dz && this._register((0, r.nm)(t, r.tw.CONTEXT_MENU, (e => { 0 === e.button && !0 === e.ctrlKey && this.onClick(e) }))), this._register((0, r.nm)(t, r.tw.CLICK, (e => { r.zB.stop(e, !0), this.options && this.options.isMenu || d.xS((() => this.onClick(e))) }))), this._register((0, r.nm)(t, r.tw.DBLCLICK, (e => { r.zB.stop(e, !0) }))), [r.tw.MOUSE_UP, r.tw.MOUSE_OUT].forEach((e => { this._register((0, r.nm)(t, e, (e => { r.zB.stop(e), t.classList.remove("active") }))) })) } onClick(e, t = !1) { var i; r.zB.stop(e, !0); const n = c.Jp(this._context) ? (null === (i = this.options) || void 0 === i ? void 0 : i.useEventAsContext) ? e : { preserveFocus: t } : this._context; this.actionRunner.run(this._action, n) } 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(e) { this.element && (this.element.tabIndex = e ? 0 : -1) } get trapsArrowNavigation() { return !1 } updateEnabled() {} updateLabel() {} updateTooltip() {} updateClass() {} updateChecked() {} dispose() { this.element && (this.element.remove(), this.element = void 0), super .dispose() } } class g extends u { constructor(e, t, i = {}) { super(e, t, i), this.options = i, this.options.icon = void 0 !== i.icon && i.icon, this.options.label = void 0 === i.label || i.label, this.cssClass = "" } render(e) { super.render(e), this.element && (this.label = (0, r.R3)(this.element, ( 0, r.$)("a.action-label"))), this.label && (this._action.id === a.Z0 .ID ? this.label.setAttribute("role", "presentation") : this.options .isMenu ? this.label.setAttribute("role", "menuitem") : this.label.setAttribute( "role", "button")), this.options.label && this.options.keybinding && this.element && ((0, r.R3)(this.element, (0, r.$)("span.keybinding")) .textContent = this.options.keybinding), this.updateClass(), this.updateLabel(), this.updateTooltip(), this.updateEnabled(), this.updateChecked() } focus() { this.label && (this.label.tabIndex = 0, this.label.focus()) } blur() { this.label && (this.label.tabIndex = -1) } setFocusable(e) { this.label && (this.label.tabIndex = e ? 0 : -1) } updateLabel() { this.options.label && this.label && (this.label.textContent = this.getAction() .label) } updateTooltip() { let e = null; this.getAction().tooltip ? e = this.getAction().tooltip : !this.options .label && this.getAction().label && this.options.icon && (e = this.getAction() .label, this.options.keybinding && (e = h.N({ key: "titleLabel", comment: ["action title", "action keybinding"] }, "{0} ({1})", e, this.options.keybinding))), e && this.label && ( this.label.title = e) } updateClass() { this.cssClass && this.label && this.label.classList.remove(...this.cssClass .split(" ")), this.options.icon ? (this.cssClass = this.getAction().class, this.label && (this.label.classList.add("codicon"), this.cssClass && this.label.classList.add(...this.cssClass.split(" "))), this.updateEnabled() ) : this.label && this.label.classList.remove("codicon") } updateEnabled() { this.getAction().enabled ? (this.label && (this.label.removeAttribute( "aria-disabled"), this.label.classList.remove("disabled")), this.element && this.element.classList.remove("disabled")) : (this.label && (this.label .setAttribute("aria-disabled", "true"), this.label.classList.add( "disabled")), this.element && this.element.classList.add( "disabled")) } updateChecked() { this.label && (this.getAction().checked ? this.label.classList.add( "checked") : this.label.classList.remove("checked")) } } }, 317: (e, t, i) => { "use strict"; i.d(t, { o: () => h }); var n = i(5321), o = i(9069), r = i(6033), s = i(4741), a = i(4669), l = i(5976), d = i(8401), c = (i(5408), function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }); class h extends l.JT { constructor(e, t = {}) { var i, l, d, c, h, u; let g, p; switch (super(), this.triggerKeyDown = !1, this.focusable = !0, this._onDidBlur = this._register(new a.Q5), this.onDidBlur = this._onDidBlur.event, this._onDidCancel = this._register(new a.Q5({ onFirstListenerAdd: () => this.cancelHasListener = !0 })), this.onDidCancel = this._onDidCancel.event, this.cancelHasListener = ! 1, this._onDidRun = this._register(new a.Q5), this.onDidRun = this._onDidRun .event, this._onBeforeRun = this._register(new a.Q5), this.onBeforeRun = this._onBeforeRun.event, this.options = t, this._context = null !== (i = t.context) && void 0 !== i ? i : null, this._orientation = null !== (l = this.options.orientation) && void 0 !== l ? l : 0, this._triggerKeys = { keyDown: null !== (c = null === (d = this.options.triggerKeys) || void 0 === d ? void 0 : d.keyDown) && void 0 !== c && c, keys: null !== (u = null === (h = this.options.triggerKeys) || void 0 === h ? void 0 : h.keys) && void 0 !== u ? u : [3, 10] }, this.options.actionRunner ? this._actionRunner = this.options.actionRunner : (this._actionRunner = new s.Wi, this._register(this._actionRunner)), this._register(this._actionRunner.onDidRun((e => this._onDidRun.fire( e)))), this._register(this._actionRunner.onBeforeRun((e => this._onBeforeRun .fire(e)))), this._actionIds = [], this.viewItems = [], this.focusedItem = void 0, this.domNode = document.createElement("div"), this.domNode.className = "monaco-action-bar", !1 !== t.animated && this.domNode.classList.add( "animated"), this._orientation) { case 0: g = [15], p = [17]; break; case 1: g = [16], p = [18], this.domNode.className += " vertical" } this._register(n.nm(this.domNode, n.tw.KEY_DOWN, (e => { const t = new o.y(e); let i = !0; const n = "number" == typeof this.focusedItem ? this.viewItems[ this.focusedItem] : void 0; g && (t.equals(g[0]) || t.equals(g[1])) ? i = this.focusPrevious() : p && (t.equals(p[0]) || t.equals(p[1])) ? i = this.focusNext() : t.equals(9) && this.cancelHasListener ? this._onDidCancel.fire() : t.equals(14) ? i = this.focusFirst() : t.equals(13) ? i = this.focusLast() : t.equals(2) && n instanceof r.Y && n.trapsArrowNavigation ? i = this.focusNext() : this.isTriggerKeyEvent(t) ? this._triggerKeys .keyDown ? this.doTrigger(t) : this.triggerKeyDown = !0 : i = ! 1, i && (t.preventDefault(), t.stopPropagation()) }))), this._register(n.nm(this.domNode, n.tw.KEY_UP, (e => { const t = new o.y(e); this.isTriggerKeyEvent(t) ? (!this._triggerKeys.keyDown && this.triggerKeyDown && (this.triggerKeyDown = !1, this.doTrigger(t)), t.preventDefault(), t.stopPropagation()) : (t.equals(2) || t.equals(1026)) && this .updateFocusedItem() }))), this.focusTracker = this._register(n.go(this.domNode)), this._register( this.focusTracker.onDidBlur((() => { n.vY() !== this.domNode && n.jg(n.vY(), this.domNode) || (this._onDidBlur .fire(), 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.actionsList.setAttribute("role", "toolbar"), this.options.ariaLabel && this.actionsList.setAttribute("aria-label", this.options.ariaLabel), this.domNode.appendChild(this.actionsList), e.appendChild(this.domNode) } isTriggerKeyEvent(e) { let t = !1; return this._triggerKeys.keys.forEach((i => { t = t || e.equals(i) })), t } updateFocusedItem() { for (let e = 0; e < this.actionsList.children.length; e++) { const t = this.actionsList.children[e]; if (n.jg(n.vY(), t)) { this.focusedItem = e; break } } } get context() { return this._context } set context(e) { this._context = e, this.viewItems.forEach((t => t.setActionContext(e))) } get actionRunner() { return this._actionRunner } set actionRunner(e) { e && (this._actionRunner = e, this.viewItems.forEach((t => t.actionRunner = e))) } getContainer() { return this.domNode } push(e, t = {}) { const i = Array.isArray(e) ? e : [e]; let o = d.hj(t.index) ? t.index : null; i.forEach((e => { const i = document.createElement("li"); let s; i.className = "action-item", i.setAttribute("role", "presentation"), this.options.allowContextMenu || this._register( n.nm(i, n.tw.CONTEXT_MENU, (e => { n.zB.stop(e, !0) }))), this.options.actionViewItemProvider && (s = this.options.actionViewItemProvider( e)), s || (s = new r.g(this.context, e, t)), s.actionRunner = this._actionRunner, s.setActionContext(this.context), s.render(i), this.focusable && s instanceof r.Y && 0 === this.viewItems.length && s.setFocusable(!0), null === o || o < 0 || o >= this.actionsList .children.length ? (this.actionsList.appendChild(i), this.viewItems .push(s), this._actionIds.push(e.id)) : (this.actionsList.insertBefore( i, this.actionsList.children[o]), this.viewItems.splice(o, 0, s), this._actionIds.splice(o, 0, e.id), o++) })), "number" == typeof this.focusedItem && this.focus(this.focusedItem) } clear() { (0, l.B9)(this.viewItems), this.viewItems = [], this._actionIds = [], n.PO(this.actionsList) } length() { return this.viewItems.length } focus(e) { let t, i = !1; if (void 0 === e ? i = !0 : "number" == typeof e ? t = e : "boolean" == typeof e && (i = e), i && void 0 === this.focusedItem) { const e = this.viewItems.findIndex((e => e.isEnabled())); this.focusedItem = -1 === e ? void 0 : e, this.updateFocus() } else void 0 !== t && (this.focusedItem = t), this.updateFocus() } focusFirst() { return this.focusedItem = this.length() > 1 ? 1 : 0, this.focusPrevious() } focusLast() { return this.focusedItem = this.length() < 2 ? 0 : this.length() - 2, this.focusNext() } focusNext() { if (void 0 === this.focusedItem) this.focusedItem = this.viewItems.length - 1; else if (this.viewItems.length <= 1) return !1; const e = this.focusedItem; let t; do { if (this.options.preventLoopNavigation && this.focusedItem + 1 >= this.viewItems.length) return this.focusedItem = e, !1; this.focusedItem = (this.focusedItem + 1) % this.viewItems.length, t = this.viewItems[this.focusedItem] } while (this.focusedItem !== e && this.options.focusOnlyEnabledItems && !t.isEnabled()); return this.updateFocus(), !0 } focusPrevious() { if (void 0 === this.focusedItem) this.focusedItem = 0; else if (this.viewItems.length <= 1) return !1; const e = this.focusedItem; let t; do { if (this.focusedItem = this.focusedItem - 1, this.focusedItem < 0) { if (this.options.preventLoopNavigation) return this.focusedItem = e, ! 1; this.focusedItem = this.viewItems.length - 1 } t = this.viewItems[this.focusedItem] } while (this.focusedItem !== e && this.options.focusOnlyEnabledItems && !t.isEnabled()); return this.updateFocus(!0), !0 } updateFocus(e, t) { void 0 === this.focusedItem && this.actionsList.focus({ preventScroll: t }); for (let i = 0; i < this.viewItems.length; i++) { const n = this.viewItems[i], o = n; if (i === this.focusedItem) { let i = !0; d.mf(o.focus) || (i = !1), this.options.focusOnlyEnabledItems && d.mf( n.isEnabled) && !n.isEnabled() && (i = !1), i ? o.focus(e) : this .actionsList.focus({ preventScroll: t }) } else d.mf(o.blur) && o.blur() } } doTrigger(e) { if (void 0 === this.focusedItem) return; const t = this.viewItems[this.focusedItem]; if (t instanceof r.Y) { const i = null === t._context || void 0 === t._context ? e : t._context; this.run(t._action, i) } } run(e, t) { return c(this, void 0, void 0, (function*() { yield this._actionRunner.run(e, t) })) } dispose() { (0, l.B9)(this.viewItems), this.viewItems = [], this._actionIds = [], this.getContainer().remove(), super.dispose() } } }, 6346: (e, t, i) => { "use strict"; i.d(t, { Z9: () => k, wW: () => x, i7: () => L }); var n = i(5321), o = i(1432), r = i(3379), s = i.n(r), a = i(7795), l = i.n(a), d = i(569), c = i.n(d), h = i(3565), u = i.n(h), g = i(9216), p = i.n(g), m = i(4589), f = i.n(m), _ = i(93), b = {}; let v, w, C, y, S; function x(e) { v = document.createElement("div"), v.className = "monaco-aria-container"; const t = () => { const e = document.createElement("div"); return e.className = "monaco-alert", e.setAttribute("role", "alert"), e.setAttribute("aria-atomic", "true"), v.appendChild(e), e }; w = t(), C = t(); const i = () => { const e = document.createElement("div"); return e.className = "monaco-status", e.setAttribute("role", "complementary"), e.setAttribute("aria-live", "polite"), e.setAttribute( "aria-atomic", "true"), v.appendChild(e), e }; y = i(), S = i(), e.appendChild(v) } function k(e) { v && (w.textContent !== e ? (n.PO(C), N(w, e)) : (n.PO(w), N(C, e))) } function L(e) { v && (o.dz ? k(e) : y.textContent !== e ? (n.PO(S), N(y, e)) : (n.PO(y), N(S, e))) } function N(e, t) { n.PO(e), t.length > 2e4 && (t = t.substr(0, 2e4)), e.textContent = t, e.style .visibility = "hidden", e.style.visibility = "visible" } b.styleTagTransform = f(), b.setAttributes = u(), b.insert = c().bind( null, "head"), b.domAPI = l(), b.insertStyleElement = p(), s()(_.Z, b), _.Z && _.Z.locals && _.Z.locals }, 9899: (e, t, i) => { "use strict"; i.d(t, { a: () => w }); var n = i(3046), o = i(3379), r = i.n(o), s = i(7795), a = i.n(s), l = i(569), d = i.n(l), c = i(3565), h = i.n(c), u = i(9216), g = i.n(u), p = i(4589), m = i.n(p), f = i(58), _ = {}; _.styleTagTransform = m(), _.setAttributes = h(), _.insert = d().bind( null, "head"), _.domAPI = a(), _.insertStyleElement = g(), r()(f.Z, _), f.Z && f.Z.locals && f.Z.locals; var b = i(4081), v = {}; function w(e) { let t = e.definition; for (; t instanceof n.lA;) t = t.definition; return `.codicon-${e.id}:before { content: '${t.fontCharacter}'; }` } v.styleTagTransform = m(), v.setAttributes = h(), v.insert = d().bind( null, "head"), v.domAPI = a(), v.insertStyleElement = g(), r()(b.Z, v), b.Z && b.Z.locals && b.Z.locals }, 9162: (e, t, i) => { "use strict"; i.d(t, { Z: () => y }); var n = i(5321), o = i(1264), r = i(6248), s = i(7295), a = i(3379), l = i.n(a), d = i(7795), c = i.n(d), h = i(569), u = i.n(h), g = i(3565), p = i.n(g), m = i(9216), f = i.n(m), _ = i(4589), b = i.n(_), v = i(477), w = {}; w.styleTagTransform = b(), w.setAttributes = p(), w.insert = u().bind( null, "head"), w.domAPI = c(), w.insertStyleElement = f(), l()(v.Z, w), v.Z && v.Z.locals && v.Z.locals; const C = { badgeBackground: o.Il.fromHex("#4D4D4D"), badgeForeground: o.Il.fromHex("#FFFFFF") }; class y { constructor(e, t) { this.count = 0, this.options = t || Object.create(null), (0, r.jB)( this.options, C, !1), this.badgeBackground = this.options.badgeBackground, this.badgeForeground = this.options.badgeForeground, this.badgeBorder = this.options.badgeBorder, this.element = (0, n.R3)(e, (0, n.$)( ".monaco-count-badge")), this.countFormat = this.options.countFormat || "{0}", this.titleFormat = this.options.titleFormat || "", this.setCount( this.options.count || 0) } setCount(e) { this.count = e, this.render() } setTitleFormat(e) { this.titleFormat = e, this.render() } render() { this.element.textContent = (0, s.WU)(this.countFormat, this.count), this.element.title = (0, s.WU)(this.titleFormat, this.count), this.applyStyles() } style(e) { this.badgeBackground = e.badgeBackground, this.badgeForeground = e.badgeForeground, this.badgeBorder = e.badgeBorder, this.applyStyles() } applyStyles() { if (this.element) { const e = this.badgeBackground ? this.badgeBackground.toString() : "", t = this.badgeForeground ? this.badgeForeground.toString() : "", i = this.badgeBorder ? this.badgeBorder.toString() : ""; this.element.style.backgroundColor = e, this.element.style.color = t, this.element.style.borderWidth = i ? "1px" : "", this.element.style.borderStyle = i ? "solid" : "", this.element.style.borderColor = i } } } }, 4650: (e, t, i) => { "use strict"; i.d(t, { q: () => s }); var n = i(5321), o = i(6811), r = i(6248); class s { constructor(e, t) { this.supportIcons = t, this.text = "", this.title = "", this.highlights = [], this.didEverRender = !1, this.domNode = document.createElement("span"), this.domNode.className = "monaco-highlighted-label", e.appendChild( this.domNode) } get element() { return this.domNode } set(e, t = [], i = "", n) { e || (e = ""), n && (e = s.escapeNewLines(e, t)), this.didEverRender && this.text === e && this.title === i && r.fS(this.highlights, t) || ( this.text = e, this.title = i, this.highlights = t, this.render()) } render() { const e = []; let t = 0; for (const i of this.highlights) { if (i.end === i.start) continue; if (t < i.start) { const r = this.text.substring(t, i.start); e.push(n.$("span", void 0, ...this.supportIcons ? (0, o.T)(r) : [r])), t = i.end } const r = this.text.substring(i.start, i.end), s = n.$("span.highlight", void 0, ...this.supportIcons ? (0, o.T)(r) : [ r ]); i.extraClasses && s.classList.add(i.extraClasses), e.push(s), t = i.end } if (t < this.text.length) { const i = this.text.substring(t); e.push(n.$("span", void 0, ...this.supportIcons ? (0, o.T)(i) : [i])) } n.mc(this.domNode, ...e), this.title ? this.domNode.title = this.title : this.domNode.removeAttribute("title"), this.didEverRender = !0 } static escapeNewLines(e, t) { let i = 0, n = 0; return e.replace(/\r\n|\r|\n/g, ((e, o) => { n = "\r\n" === e ? -1 : 0, o += i; for (const e of t) e.end <= o || (e.start >= o && (e.start += n), e.end >= o && (e.end += n)); return i += n, "⏎" })) } } }, 3326: (e, t, i) => { "use strict"; i.d(t, { g: () => D }); var n = i(5321), o = i(4650), r = i(5393), s = i(1050), a = i(5976), l = i(8401), d = i(3580), c = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; var h = i(6248), u = i(1134), g = i(3379), p = i.n(g), m = i(7795), f = i.n(m), _ = i(569), b = i.n(_), v = i(3565), w = i.n(v), C = i(9216), y = i.n(C), S = i(4589), x = i.n(S), k = i(4269), L = {}; L.styleTagTransform = x(), L.setAttributes = w(), L.insert = b().bind( null, "head"), L.domAPI = f(), L.insertStyleElement = y(), p()(k.Z, L), k.Z && k.Z.locals && k.Z.locals; class N { constructor(e) { this._element = e } get element() { return this._element } set textContent(e) { this.disposed || e === this._textContent || (this._textContent = e, this._element.textContent = e) } set className(e) { this.disposed || e === this._className || (this._className = e, this._element .className = e) } set empty(e) { this.disposed || e === this._empty || (this._empty = e, this._element.style .marginLeft = e ? "0" : "") } dispose() { this.disposed = !0 } } class D extends a.JT { constructor(e, t) { super(), this.customHovers = new Map, this.domNode = this._register( new N(n.R3(e, n.$(".monaco-icon-label")))), this.labelContainer = n .R3(this.domNode.element, n.$(".monaco-icon-label-container")); const i = n.R3(this.labelContainer, n.$( "span.monaco-icon-name-container")); this.descriptionContainer = this._register(new N(n.R3(this.labelContainer, n.$("span.monaco-icon-description-container")))), (null == t ? void 0 : t.supportHighlights) || (null == t ? void 0 : t.supportIcons) ? this.nameNode = new I(i, !!t.supportIcons) : this.nameNode = new E(i), ( null == t ? void 0 : t.supportDescriptionHighlights) ? this.descriptionNodeFactory = () => new o.q(n.R3(this.descriptionContainer.element, n.$( "span.label-description")), !!t.supportIcons) : this.descriptionNodeFactory = () => this._register(new N(n.R3(this.descriptionContainer.element, n .$("span.label-description")))), this.hoverDelegate = null == t ? void 0 : t.hoverDelegate } setLabel(e, t, i) { const n = ["monaco-icon-label"]; i && (i.extraClasses && n.push(...i.extraClasses), i.italic && n.push( "italic"), i.strikethrough && n.push("strikethrough")), this.domNode .className = n.join(" "), this.setupHover(this.labelContainer, null == i ? void 0 : i.title), this.nameNode.setLabel(e, i), (t || this.descriptionNode) && (this.descriptionNode || (this.descriptionNode = this.descriptionNodeFactory()), this.descriptionNode instanceof o.q ? (this.descriptionNode.set(t || "", i ? i.descriptionMatches : void 0), this.setupHover(this.descriptionNode .element, null == i ? void 0 : i.descriptionTitle)) : (this.descriptionNode .textContent = t || "", this.setupHover(this.descriptionNode.element, ( null == i ? void 0 : i.descriptionTitle) || ""), this.descriptionNode .empty = !t)) } setupHover(e, t) { const i = this.customHovers.get(e); if (i && (i.dispose(), this.customHovers.delete(e)), t) if (this.hoverDelegate) { const i = function(e, t, i) { if (!i) return; const o = function(e) { if ((0, l.HD)(e)) return () => c(this, void 0, void 0, ( function*() { return e })); if ((0, l.mf)(e.markdown)) return e.markdown; { const t = e.markdown; return () => c(this, void 0, void 0, (function*() { return t })) } }(i); let h, u; const g = n.nm(t, n.tw.MOUSE_OVER, (g => { if (h) return; const p = new s.A, m = e => { const i = e.type === n.tw.MOUSE_DOWN; i && (null == u || u.dispose(), u = void 0), (i || e.fromElement === t) && (null == h || h.dispose(), h = void 0) }, f = n.nm(t, n.tw.MOUSE_LEAVE, m, !0), _ = n.nm(t, n.tw.MOUSE_DOWN, m, !0), b = { targetElements: [t], dispose: () => {} }; let v; if (void 0 === e.placement || "mouse" === e.placement) { const e = e => b.x = e.x + 10; v = n.nm(t, n.tw.MOUSE_MOVE, e, !0) } const w = new r.pY((() => c(this, void 0, void 0, (function*() { var t; if (h) { const n = { content: (0, d.N)("iconLabel.loading", "Loading..."), target: b, hoverPosition: 2 }; null == u || u.dispose(), u = e.showHover(n); const r = null !== (t = yield o(p.token)) && void 0 !== t ? t : (0, l.HD)(i) ? void 0 : i.markdownNotSupportedFallback; if (null == u || u.dispose(), u = void 0, r && h) { const t = { content: r, target: b, showPointer: "element" === e.placement, hoverPosition: 2 }; u = e.showHover(t) } } null == v || v.dispose() }))), e.delay); w.schedule(), h = (0, a.OF)((() => { w.dispose(), null == v || v.dispose(), _.dispose(), f.dispose(), p.dispose(!0) })) }), !0); return (0, a.OF)((() => { g.dispose(), null == h || h.dispose(), null == u || u.dispose() })) }(this.hoverDelegate, e, t); i && this.customHovers.set(e, i) } else ! function(e, t) { (0, l.HD)(t) ? e.title = t: (null == t ? void 0 : t.markdownNotSupportedFallback) ? e.title = t.markdownNotSupportedFallback : e.removeAttribute( "title") }(e, t); else e.removeAttribute("title") } dispose() { super.dispose(); for (const e of this.customHovers.values()) e.dispose(); this.customHovers.clear() } } class E { constructor(e) { this.container = e, this.label = void 0, this.singleLabel = void 0 } setLabel(e, t) { if (this.label !== e || !(0, h.fS)(this.options, t)) if (this.label = e, this.options = t, "string" == typeof e) this.singleLabel || (this.container.innerText = "", this.container.classList.remove( "multiple"), this.singleLabel = n.R3(this.container, n.$( "a.label-name", { id: null == t ? void 0 : t.domId }))), this.singleLabel.textContent = e; else { this.container.innerText = "", this.container.classList.add( "multiple"), this.singleLabel = void 0; for (let i = 0; i < e.length; i++) { const o = e[i], r = (null == t ? void 0 : t.domId) && `${null==t?void 0:t.domId}_${i}`; n.R3(this.container, n.$("a.label-name", { id: r, "data-icon-label-count": e.length, "data-icon-label-index": i, role: "treeitem" }, o)), i < e.length - 1 && n.R3(this.container, n.$( "span.label-separator", void 0, (null == t ? void 0 : t.separator) || "/")) } } } } class I { constructor(e, t) { this.container = e, this.supportIcons = t, this.label = void 0, this.singleLabel = void 0 } setLabel(e, t) { if (this.label !== e || !(0, h.fS)(this.options, t)) if (this.label = e, this.options = t, "string" == typeof e) this.singleLabel || (this.container.innerText = "", this.container.classList.remove( "multiple"), this.singleLabel = new o.q(n.R3(this.container, n.$( "a.label-name", { id: null == t ? void 0 : t.domId })), this.supportIcons)), this.singleLabel.set(e, null == t ? void 0 : t.matches, void 0, null == t ? void 0 : t.labelEscapeNewLines); else { this.container.innerText = "", this.container.classList.add( "multiple"), this.singleLabel = void 0; const i = (null == t ? void 0 : t.separator) || "/", r = function(e, t, i) { if (!i) return; let n = 0; return e.map((e => { const o = { start: n, end: n + e.length }, r = i.map((e => u.e.intersect(o, e))).filter((e => !u.e.isEmpty( e))).map((({ start: e, end: t }) => ({ start: e - n, end: t - n }))); return n = o.end + t.length, r })) }(e, i, null == t ? void 0 : t.matches); for (let s = 0; s < e.length; s++) { const a = e[s], l = r ? r[s] : void 0, d = (null == t ? void 0 : t.domId) && `${null==t?void 0:t.domId}_${s}`, c = n.$("a.label-name", { id: d, "data-icon-label-count": e.length, "data-icon-label-index": s, role: "treeitem" }); new o.q(n.R3(this.container, c), this.supportIcons).set(a, l, void 0, null == t ? void 0 : t.labelEscapeNewLines), s < e.length - 1 && n.R3(c, n.$("span.label-separator", void 0, i)) } } } } }, 6811: (e, t, i) => { "use strict"; i.d(t, { T: () => s }); var n = i(5321), o = i(3046); const r = new RegExp( `(\\\\)?\\$\\((${o.dT.iconNameExpression}(?:${o.dT.iconModifierExpression})?)\\)`, "g"); function s(e) { const t = new Array; let i, n = 0, o = 0; for (; null !== (i = r.exec(e));) { o = i.index || 0, t.push(e.substring(n, o)), n = (i.index || 0) + i[0].length; const [, r, s] = i; t.push(r ? `$(${s})` : a({ id: s })) } return n < e.length && t.push(e.substring(n)), t } function a(e) { const t = n.$("span"); return t.classList.add(...o.dT.asClassNameArray(e)), t } }, 4299: (e, t, i) => { "use strict"; i.d(t, { p: () => A, W: () => M }); var n = i(5321), o = i(4850), r = i(8764), s = i(317), a = i(6346), l = i(6781), d = i(3794), c = i(1264), h = i(4669); class u { constructor(e, t = 0, i = e.length, n = t - 1) { this.items = e, this.start = t, this.end = i, this.index = n } 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() } } class g { constructor(e = [], t = 10) { this._initialize(e), this._limit = t, this._onChange() } add(e) { this._history.delete(e), this._history.add(e), this._onChange() } next() { return this._currentPosition() !== this._elements.length - 1 ? this._navigator .next() : null } previous() { return 0 !== this._currentPosition() ? this._navigator.previous() : null } current() { return this._navigator.current() } first() { return this._navigator.first() } last() { return this._navigator.last() } has(e) { return this._history.has(e) } _onChange() { this._reduceToLimit(); const e = this._elements; this._navigator = new u(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 t of e) this._history.add(t) } get _elements() { const e = []; return this._history.forEach((t => e.push(t))), e } } var p = i(6248), m = i(3379), f = i.n(m), _ = i(7795), b = i.n(_), v = i(569), w = i.n(v), C = i(3565), y = i.n(C), S = i(9216), x = i.n(S), k = i(4589), L = i.n(k), N = i(1188), D = {}; D.styleTagTransform = L(), D.setAttributes = y(), D.insert = w().bind( null, "head"), D.domAPI = b(), D.insertStyleElement = x(), f()(N.Z, D), N.Z && N.Z.locals && N.Z.locals; var E = i(3580); const I = n.$, T = { inputBackground: c.Il.fromHex("#3C3C3C"), inputForeground: c.Il.fromHex("#CCCCCC"), inputValidationInfoBorder: c.Il.fromHex("#55AAFF"), inputValidationInfoBackground: c.Il.fromHex("#063B49"), inputValidationWarningBorder: c.Il.fromHex("#B89500"), inputValidationWarningBackground: c.Il.fromHex("#352A05"), inputValidationErrorBorder: c.Il.fromHex("#BE1100"), inputValidationErrorBackground: c.Il.fromHex("#5A1D1D") }; class M extends d.$ { constructor(e, t, i) { var r; super(), this.state = "idle", this.maxHeight = Number.POSITIVE_INFINITY, this._onDidChange = this._register(new h.Q5), this.onDidChange = this._onDidChange.event, this._onDidHeightChange = this._register( new h.Q5), this.onDidHeightChange = this._onDidHeightChange.event, this.contextViewProvider = t, this.options = i || Object.create(null), ( 0, p.jB)(this.options, T, !1), this.message = null, this.placeholder = this.options.placeholder || "", this.tooltip = null !== (r = this.options .tooltip) && void 0 !== r ? r : this.placeholder || "", this.ariaLabel = this.options.ariaLabel || "", this.inputBackground = this.options.inputBackground, this.inputForeground = this.options.inputForeground, this.inputBorder = this.options.inputBorder, this.inputValidationInfoBorder = this.options .inputValidationInfoBorder, this.inputValidationInfoBackground = this.options.inputValidationInfoBackground, this.inputValidationInfoForeground = this.options.inputValidationInfoForeground, this.inputValidationWarningBorder = this.options.inputValidationWarningBorder, this.inputValidationWarningBackground = this.options.inputValidationWarningBackground, this.inputValidationWarningForeground = this.options.inputValidationWarningForeground, this.inputValidationErrorBorder = this.options.inputValidationErrorBorder, this.inputValidationErrorBackground = this.options.inputValidationErrorBackground, this.inputValidationErrorForeground = this.options.inputValidationErrorForeground, this.options.validationOptions && (this.validation = this.options.validationOptions.validation), this.element = n.R3(e, I(".monaco-inputbox.idle")); let a = this.options.flexibleHeight ? "textarea" : "input", d = n.R3(this.element, I(".ibwrapper")); if (this.input = n.R3(d, I(a + ".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 = "number" == typeof this.options.flexibleMaxHeight ? this.options.flexibleMaxHeight : Number.POSITIVE_INFINITY, this.mirror = n.R3(d, I("div.mirror")), this.mirror.innerText = " ", this.scrollableElement = new l.NB(this.element, { vertical: 1 }), this.options.flexibleWidth && (this.input.setAttribute("wrap", "off"), this.mirror.style.whiteSpace = "pre", this.mirror.style.wordWrap = "initial"), n.R3(e, this.scrollableElement.getDomNode()), this._register( this.scrollableElement), this._register(this.scrollableElement.onScroll( (e => this.input.scrollTop = e.scrollTop))); const t = this._register(new o.Y(document, "selectionchange")), i = h.ju.filter(t.event, (() => { const e = document.getSelection(); return (null == e ? void 0 : e.anchorNode) === d })); this._register(i(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.ignoreGesture(this.input), setTimeout((() => this.updateMirror()), 0), this.options.actions && (this.actionbar = this._register(new s.o(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(e) { this.placeholder = e, this.input.setAttribute("placeholder", e) } setTooltip(e) { this.tooltip = e, this.input.title = e } setAriaLabel(e) { this.ariaLabel = e, e ? this.input.setAttribute("aria-label", this.ariaLabel) : this.input.removeAttribute("aria-label") } getAriaLabel() { return this.ariaLabel } get inputElement() { return this.input } get value() { return this.input.value } set value(e) { this.input.value !== e && (this.input.value = e, this.onValueChange()) } get height() { return "number" == typeof this.cachedHeight ? this.cachedHeight : n.wn( this.element) } focus() { this.input.focus() } blur() { this.input.blur() } hasFocus() { return document.activeElement === this.input } select(e = null) { this.input.select(), e && (this.input.setSelectionRange(e.start, e.end), e.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 } enable() { this.input.removeAttribute("disabled") } disable() { this.blur(), this.input.disabled = !0, this._hideMessage() } get width() { return n.w(this.input) } set width(e) { if (this.options.flexibleHeight && this.options.flexibleWidth) { let t = 0; this.mirror && (t = (parseFloat(this.mirror.style.paddingLeft || "") || 0) + (parseFloat(this.mirror.style.paddingRight || "") || 0)), this.input.style.width = e - t + "px" } else this.input.style.width = e + "px"; this.mirror && (this.mirror.style.width = e + "px") } set paddingRight(e) { this.options.flexibleHeight && this.options.flexibleWidth ? this.input .style.width = `calc(100% - ${e}px)` : this.input.style.paddingRight = e + "px", this.mirror && (this.mirror.style.paddingRight = e + "px") } updateScrollDimensions() { if ("number" != typeof this.cachedContentHeight || "number" != typeof this .cachedHeight || !this.scrollableElement) return; const e = this.cachedContentHeight, t = this.cachedHeight, i = this.input.scrollTop; this.scrollableElement.setScrollDimensions({ scrollHeight: e, height: t }), this.scrollableElement.setScrollPosition({ scrollTop: i }) } showMessage(e, t) { this.message = e, 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(e.type)); const i = this.stylesForType(this.message.type); this.element.style.border = i.border ? `1px solid ${i.border}` : "", ( this.hasFocus() || t) && 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 e = null; return this.validation && (e = this.validation(this.value), e ? (this .inputElement.setAttribute("aria-invalid", "true"), this.showMessage( e)) : this.inputElement.hasAttribute("aria-invalid") && (this.inputElement .removeAttribute("aria-invalid"), this.hideMessage())), null == e ? void 0 : e.type } stylesForType(e) { switch (e) { case 1: return { border: this.inputValidationInfoBorder, background: this.inputValidationInfoBackground, foreground: this.inputValidationInfoForeground }; case 2: return { border: this.inputValidationWarningBorder, background: this.inputValidationWarningBackground, foreground: this.inputValidationWarningForeground }; default: return { border: this.inputValidationErrorBorder, background: this.inputValidationErrorBackground, foreground: this.inputValidationErrorForeground } } } classForType(e) { switch (e) { case 1: return "info"; case 2: return "warning"; default: return "error" } } _showMessage() { if (!this.contextViewProvider || !this.message) return; let e, t, i = () => e.style.width = n.w(this.element) + "px"; this.contextViewProvider.showContextView({ getAnchor: () => this.element, anchorAlignment: 1, render: t => { if (!this.message) return null; e = n.R3(t, I(".monaco-inputbox-container")), i(); const o = { inline: !0, className: "monaco-inputbox-message" }, s = this.message.formatContent ? (0, r.BO)(this.message.content, o) : (0, r.IY)(this.message.content, o); s.classList.add(this.classForType(this.message.type)); const a = this.stylesForType(this.message.type); return s.style.backgroundColor = a.background ? a.background.toString() : "", s.style.color = a.foreground ? a.foreground.toString() : "", s.style.border = a.border ? `1px solid ${a.border}` : "", n.R3( e, s), null }, onHide: () => { this.state = "closed" }, layout: i }), t = 3 === this.message.type ? E.N("alertErrorMessage", "Error: {0}", this.message.content) : 2 === this.message.type ? E.N( "alertWarningMessage", "Warning: {0}", this.message.content) : E.N( "alertInfoMessage", "Info: {0}", this.message.content), a.Z9(t), this.state = "open" } _hideMessage() { this.contextViewProvider && ("open" === this.state && this.contextViewProvider .hideContextView(), this.state = "idle") } onValueChange() { this._onDidChange.fire(this.value), this.validate(), this.updateMirror(), this.input.classList.toggle("empty", !this.value), "open" === this.state && this.contextViewProvider && this.contextViewProvider.layout() } updateMirror() { if (!this.mirror) return; const e = this.value, t = 10 === e.charCodeAt(e.length - 1) ? " " : ""; (e + t).replace(/\u000c/g, "") ? this.mirror.textContent = e + t : this.mirror.innerText = " ", this.layout() } style(e) { this.inputBackground = e.inputBackground, this.inputForeground = e.inputForeground, this.inputBorder = e.inputBorder, this.inputValidationInfoBackground = e.inputValidationInfoBackground, this.inputValidationInfoForeground = e.inputValidationInfoForeground, this.inputValidationInfoBorder = e.inputValidationInfoBorder, this.inputValidationWarningBackground = e.inputValidationWarningBackground, this.inputValidationWarningForeground = e.inputValidationWarningForeground, this.inputValidationWarningBorder = e.inputValidationWarningBorder, this.inputValidationErrorBackground = e.inputValidationErrorBackground, this.inputValidationErrorForeground = e.inputValidationErrorForeground, this.inputValidationErrorBorder = e.inputValidationErrorBorder, this .applyStyles() } applyStyles() { const e = this.inputBackground ? this.inputBackground.toString() : "", t = this.inputForeground ? this.inputForeground.toString() : "", i = this.inputBorder ? this.inputBorder.toString() : ""; this.element.style.backgroundColor = e, this.element.style.color = t, this.input.style.backgroundColor = "inherit", this.input.style.color = t, this.element.style.borderWidth = i ? "1px" : "", this.element.style .borderStyle = i ? "solid" : "", this.element.style.borderColor = i } layout() { if (!this.mirror) return; const e = this.cachedContentHeight; this.cachedContentHeight = n.wn(this.mirror), e !== this.cachedContentHeight && (this.cachedHeight = Math.min(this.cachedContentHeight, this.maxHeight), this.input.style.height = this.cachedHeight + "px", this._onDidHeightChange .fire(this.cachedContentHeight)) } insertAtCursor(e) { const t = this.inputElement, i = t.selectionStart, n = t.selectionEnd, o = t.value; null !== i && null !== n && (this.value = o.substr(0, i) + e + o.substr( n), t.setSelectionRange(i + 1, i + 1), this.layout()) } dispose() { this._hideMessage(), this.message = null, this.actionbar && this.actionbar .dispose(), super.dispose() } } class A extends M { constructor(e, t, i) { super(e, t, i), this.history = new g(i.history, 100) } addToHistory() { this.value && this.value !== this.getCurrentValue() && this.history.add( this.value) } showNextValue() { this.history.has(this.value) || this.addToHistory(); let e = this.getNextValue(); e && (e = e === this.value ? this.getNextValue() : e), e && (this.value = e, a.i7(this.value)) } showPreviousValue() { this.history.has(this.value) || this.addToHistory(); let e = this.getPreviousValue(); e && (e = e === this.value ? this.getPreviousValue() : e), e && (this.value = e, a.i7(this.value)) } getCurrentValue() { let e = this.history.current(); return e || (e = this.history.last(), this.history.next()), e } getPreviousValue() { return this.history.previous() || this.history.first() } getNextValue() { return this.history.next() || this.history.last() } } }, 5707: (e, t, i) => { "use strict"; i.d(t, { kX: () => S, Bv: () => N }); var n = i(6268), o = i(3547), r = i(5321), s = i(4850), a = i(553), l = i(6781), d = i(9488), c = i(5393), h = i(9898), u = i(4669), g = i(5976), p = i(6248), m = i(1134), f = i(6633); function _(e, t) { const i = []; for (let n of t) { if (e.start >= n.range.end) continue; if (e.end < n.range.start) break; const t = m.e.intersect(e, n.range); m.e.isEmpty(t) || i.push({ range: t, size: n.size }) } return i } function b({ start: e, end: t }, i) { return { start: e + i, end: t + i } } class v { constructor() { this.groups = [], this._size = 0 } splice(e, t, i = []) { const n = i.length - t, o = _({ start: 0, end: e }, this.groups), r = _({ start: e + t, end: Number.POSITIVE_INFINITY }, this.groups).map((e => ({ range: b(e.range, n), size: e.size }))), s = i.map(((t, i) => ({ range: { start: e + i, end: e + i + 1 }, size: t.size }))); this.groups = function(...e) { return function(e) { const t = []; let i = null; for (let n of e) { const e = n.range.start, o = n.range.end, r = n.size; i && r === i.size ? i.range.end = o : (i = { range: { start: e, end: o }, size: r }, t.push(i)) } return t }(e.reduce(((e, t) => e.concat(t)), [])) }(o, s, r), this._size = this.groups.reduce(((e, t) => e + t.size * ( t.range.end - t.range.start)), 0) } get count() { const e = this.groups.length; return e ? this.groups[e - 1].range.end : 0 } get size() { return this._size } indexAt(e) { if (e < 0) return -1; let t = 0, i = 0; for (let n of this.groups) { const o = n.range.end - n.range.start, r = i + o * n.size; if (e < r) return t + Math.floor((e - i) / n.size); t += o, i = r } return t } indexAfter(e) { return Math.min(this.indexAt(e) + 1, this.count) } positionAt(e) { if (e < 0) return -1; let t = 0, i = 0; for (let n of this.groups) { const o = n.range.end - n.range.start, r = i + o; if (e < r) return t + (e - i) * n.size; t += o * n.size, i = r } return -1 } } class w { constructor(e) { this.renderers = e, this.cache = new Map } alloc(e) { let t = this.getTemplateCache(e).pop(); if (!t) { const i = (0, r.$)(".monaco-list-row"); t = { domNode: i, templateId: e, templateData: this.getRenderer(e).renderTemplate(i) } } return t } release(e) { e && this.releaseRow(e) } releaseRow(e) { const { domNode: t, templateId: i } = e; t && (t.classList.remove("scrolling"), function(e) { try { e.parentElement && e.parentElement.removeChild(e) } catch (e) {} }(t)), this.getTemplateCache(i).push(e) } getTemplateCache(e) { let t = this.cache.get(e); return t || (t = [], this.cache.set(e, t)), t } dispose() { this.cache.forEach(((e, t) => { for (const i of e) this.getRenderer(t).disposeTemplate(i.templateData), i.templateData = null })), this.cache.clear() } getRenderer(e) { const t = this.renderers.get(e); if (!t) throw new Error(`No renderer found for ${e}`); return t } } var C = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }; const y = { useShadows: !0, verticalScrollMode: 1, setRowLineHeight: !0, setRowHeight: !0, supportDynamicHeights: !1, dnd: { getDragElements: e => [e], getDragURI: () => null, onDragStart() {}, onDragOver: () => !1, drop() {} }, horizontalScrolling: !1, transformOptimization: !0, alwaysConsumeMouseWheel: !0 }; class S { constructor(e) { this.elements = e } update() {} getData() { return this.elements } } class x { constructor(e) { this.elements = e } update() {} getData() { return this.elements } } class k { constructor() { this.types = [], this.files = [] } update(e) { if (e.types && this.types.splice(0, this.types.length, ...e.types), e.files) { this.files.splice(0, this.files.length); for (let t = 0; t < e.files.length; t++) { const i = e.files.item(t); i && (i.size || i.type) && this.files.push(i) } } } getData() { return { types: this.types, files: this.files } } } class L { constructor(e) { (null == e ? void 0 : e.getSetSize) ? this.getSetSize = e.getSetSize.bind( e): this.getSetSize = (e, t, i) => i, (null == e ? void 0 : e.getPosInSet) ? this.getPosInSet = e.getPosInSet.bind(e) : this.getPosInSet = (e, t) => t + 1, (null == e ? void 0 : e.getRole) ? this.getRole = e.getRole.bind( e) : this.getRole = e => "listitem", (null == e ? void 0 : e.isChecked) ? this.isChecked = e.isChecked.bind(e) : this.isChecked = e => {} } } class N { constructor(e, t, i, n = y) { if (this.virtualDelegate = t, this.domId = "list_id_" + ++N.InstanceCount, this.renderers = new Map, this.renderWidth = 0, this._scrollHeight = 0, this.scrollableElementUpdateDisposable = null, this.scrollableElementWidthDelayer = new c.vp(50), this.splicing = !1, this.dragOverAnimationStopDisposable = g.JT.None, this.dragOverMouseY = 0, this.canDrop = !1, this.currentDragFeedbackDisposable = g.JT.None, this.onDragLeaveTimeout = g.JT.None, this.disposables = new g.SL, this._onDidChangeContentHeight = new u.Q5, this._horizontalScrolling = ! 1, n.horizontalScrolling && n.supportDynamicHeights) throw new Error( "Horizontal scrolling and dynamic heights not supported simultaneously" ); this.items = [], this.itemId = 0, this.rangeMap = new v; for (const e of i) this.renderers.set(e.templateId, e); this.cache = this.disposables.add(new w(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", "boolean" != typeof n.mouseSupport || n.mouseSupport ), this._horizontalScrolling = (0, p.CJ)(n, (e => e.horizontalScrolling), y.horizontalScrolling), this.domNode.classList.toggle( "horizontal-scrolling", this._horizontalScrolling), this.additionalScrollHeight = void 0 === n.additionalScrollHeight ? 0 : n.additionalScrollHeight, this.accessibilityProvider = new L(n.accessibilityProvider), this.rowsContainer = document.createElement("div"), this.rowsContainer.className = "monaco-list-rows", (0, p.CJ)(n, (e => e.transformOptimization), y.transformOptimization) && (this.rowsContainer.style.transform = "translate3d(0px, 0px, 0px)"), this.disposables.add(a.o.addTarget(this.rowsContainer)), this.scrollable = new f.Rm((0, p.CJ)(n, (e => e.smoothScrolling), !1) ? 125 : 0, (e => (0, r.jL)(e))), this.scrollableElement = this.disposables.add(new l.$Z( this.rowsContainer, { alwaysConsumeMouseWheel: (0, p.CJ)(n, (e => e.alwaysConsumeMouseWheel), y.alwaysConsumeMouseWheel), horizontal: 1, vertical: (0, p.CJ)(n, (e => e.verticalScrollMode), y.verticalScrollMode), useShadows: (0, p.CJ)(n, (e => e.useShadows), y.useShadows), mouseWheelScrollSensitivity: n.mouseWheelScrollSensitivity, fastScrollSensitivity: n.fastScrollSensitivity }, this.scrollable)), this.domNode.appendChild(this.scrollableElement .getDomNode()), e.appendChild(this.domNode), this.scrollableElement.onScroll( this.onScroll, this, this.disposables), this.disposables.add((0, r.nm) (this.rowsContainer, a.t.Change, (e => this.onTouchChange(e)))), this.disposables.add((0, r.nm)(this.scrollableElement.getDomNode(), "scroll", (e => e.target.scrollTop = 0))), this.disposables.add((0, r.nm)(this.domNode, "dragover", (e => this.onDragOver(this.toDragEvent( e))))), this.disposables.add((0, r.nm)(this.domNode, "drop", (e => this.onDrop(this.toDragEvent(e))))), this.disposables.add((0, r.nm)( this.domNode, "dragleave", (e => this.onDragLeave(this.toDragEvent( e))))), this.disposables.add((0, r.nm)(this.domNode, "dragend", (e => this.onDragEnd(e)))), this.setRowLineHeight = (0, p.CJ)(n, (e => e.setRowLineHeight), y.setRowLineHeight), this.setRowHeight = (0, p.CJ)(n, (e => e.setRowHeight), y.setRowHeight), this.supportDynamicHeights = (0, p.CJ)(n, (e => e.supportDynamicHeights), y.supportDynamicHeights), this.dnd = (0, p.CJ)(n, (e => e.dnd), y.dnd), this.layout() } get contentHeight() { return this.rangeMap.size } get horizontalScrolling() { return this._horizontalScrolling } set horizontalScrolling(e) { if (e !== this._horizontalScrolling) { if (e && this.supportDynamicHeights) throw new Error( "Horizontal scrolling and dynamic heights not supported simultaneously" ); if (this._horizontalScrolling = e, this.domNode.classList.toggle( "horizontal-scrolling", this._horizontalScrolling), this._horizontalScrolling) { for (const e of this.items) this.measureItemWidth(e); this.updateScrollWidth(), this.scrollableElement.setScrollDimensions({ width: (0, r.FK)(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 = "" } } updateOptions(e) { void 0 !== e.additionalScrollHeight && (this.additionalScrollHeight = e.additionalScrollHeight, this.scrollableElement.setScrollDimensions({ scrollHeight: this.scrollHeight })), void 0 !== e.smoothScrolling && this.scrollable.setSmoothScrollDuration( e.smoothScrolling ? 125 : 0), void 0 !== e.horizontalScrolling && ( this.horizontalScrolling = e.horizontalScrolling), void 0 !== e.mouseWheelScrollSensitivity && this.scrollableElement.updateOptions({ mouseWheelScrollSensitivity: e.mouseWheelScrollSensitivity }), void 0 !== e.fastScrollSensitivity && this.scrollableElement.updateOptions({ fastScrollSensitivity: e.fastScrollSensitivity }) } splice(e, t, i = []) { if (this.splicing) throw new Error("Can't run recursive splices."); this.splicing = !0; try { return this._splice(e, t, i) } finally { this.splicing = !1, this._onDidChangeContentHeight.fire(this.contentHeight) } } _splice(e, t, i = []) { const n = this.getRenderRange(this.lastRenderTop, this.lastRenderHeight), o = { start: e, end: e + t }, r = m.e.intersect(n, o), s = new Map; for (let e = r.start; e < r.end; e++) { const t = this.items[e]; if (t.dragStartDisposable.dispose(), t.row) { let i = s.get(t.templateId); i || (i = [], s.set(t.templateId, i)); const n = this.renderers.get(t.templateId); n && n.disposeElement && n.disposeElement(t.element, e, t.row.templateData, t.size), i.push(t.row) } t.row = null } const a = { start: e + t, end: this.items.length }, l = m.e.intersect(a, n), d = m.e.relativeComplement(a, n), c = i.map((e => ({ id: String(this.itemId++), element: e, templateId: this.virtualDelegate.getTemplateId(e), size: this.virtualDelegate.getHeight(e), width: void 0, hasDynamicHeight: !!this.virtualDelegate.hasDynamicHeight && this .virtualDelegate.hasDynamicHeight(e), lastDynamicHeightWidth: void 0, row: null, uri: void 0, dropTarget: !1, dragStartDisposable: g.JT.None }))); let h; 0 === e && t >= this.items.length ? (this.rangeMap = new v, this.rangeMap .splice(0, 0, c), h = this.items, this.items = c) : (this.rangeMap.splice( e, t, c), h = this.items.splice(e, t, ...c)); const u = i.length - t, p = this.getRenderRange(this.lastRenderTop, this.lastRenderHeight), f = b(l, u), _ = m.e.intersect(p, f); for (let e = _.start; e < _.end; e++) this.updateItemInDOM(this.items[ e], e); const w = m.e.relativeComplement(f, p); for (const e of w) for (let t = e.start; t < e.end; t++) this.removeItemFromDOM(t); const C = d.map((e => b(e, u))), y = [{ start: e, end: e + i.length }, ...C].map((e => m.e.intersect(p, e))), S = this.getNextToLastElement(y); for (const e of y) for (let t = e.start; t < e.end; t++) { const e = this.items[t], i = s.get(e.templateId), n = null == i ? void 0 : i.pop(); this.insertItemInDOM(t, S, n) } for (const e of s.values()) for (const t of e) this.cache.release(t); return this.eventuallyUpdateScrollDimensions(), this.supportDynamicHeights && this._rerender(this.scrollTop, this.renderHeight), h.map((e => e.element)) } eventuallyUpdateScrollDimensions() { this._scrollHeight = this.contentHeight, this.rowsContainer.style.height = `${this._scrollHeight}px`, this.scrollableElementUpdateDisposable || (this.scrollableElementUpdateDisposable = (0, r.jL)((() => { this.scrollableElement.setScrollDimensions({ scrollHeight: this.scrollHeight }), this.updateScrollWidth(), this.scrollableElementUpdateDisposable = null }))) } eventuallyUpdateScrollWidth() { this.horizontalScrolling ? this.scrollableElementWidthDelayer.trigger( (() => this.updateScrollWidth())) : this.scrollableElementWidthDelayer .cancel() } updateScrollWidth() { if (!this.horizontalScrolling) return; let e = 0; for (const t of this.items) void 0 !== t.width && (e = Math.max(e, t.width)); this.scrollWidth = e, this.scrollableElement.setScrollDimensions({ scrollWidth: 0 === e ? 0 : e + 10 }) } rerender() { if (this.supportDynamicHeights) { for (const e of this.items) e.lastDynamicHeightWidth = void 0; this._rerender(this.lastRenderTop, this.lastRenderHeight) } } get length() { return this.items.length } get renderHeight() { return this.scrollableElement.getScrollDimensions().height } element(e) { return this.items[e].element } domElement(e) { const t = this.items[e].row; return t && t.domNode } elementHeight(e) { return this.items[e].size } elementTop(e) { return this.rangeMap.positionAt(e) } indexAt(e) { return this.rangeMap.indexAt(e) } indexAfter(e) { return this.rangeMap.indexAfter(e) } layout(e, t) { let i = { height: "number" == typeof e ? e : (0, r.If)(this.domNode) }; this.scrollableElementUpdateDisposable && (this.scrollableElementUpdateDisposable .dispose(), this.scrollableElementUpdateDisposable = null, i.scrollHeight = this.scrollHeight), this.scrollableElement.setScrollDimensions(i), void 0 !== t && (this.renderWidth = t, this.supportDynamicHeights && this._rerender(this.scrollTop, this.renderHeight)), this.horizontalScrolling && this.scrollableElement.setScrollDimensions({ width: "number" == typeof t ? t : (0, r.FK)(this.domNode) }) } render(e, t, i, n, o, r = !1) { const s = this.getRenderRange(t, i), a = m.e.relativeComplement(s, e), l = m.e.relativeComplement(e, s), d = this.getNextToLastElement(a); if (r) { const t = m.e.intersect(e, s); for (let e = t.start; e < t.end; e++) this.updateItemInDOM(this.items[ e], e) } for (const e of a) for (let t = e.start; t < e.end; t++) this.insertItemInDOM(t, d); for (const e of l) for (let t = e.start; t < e.end; t++) this.removeItemFromDOM(t); void 0 !== n && (this.rowsContainer.style.left = `-${n}px`), this.rowsContainer .style.top = `-${t}px`, this.horizontalScrolling && void 0 !== o && ( this.rowsContainer.style.width = `${Math.max(o,this.renderWidth)}px` ), this.lastRenderTop = t, this.lastRenderHeight = i } insertItemInDOM(e, t, i) { const n = this.items[e]; n.row || (n.row = null != i ? i : this.cache.alloc(n.templateId)); const o = this.accessibilityProvider.getRole(n.element) || "listitem"; n.row.domNode.setAttribute("role", o); const s = this.accessibilityProvider.isChecked(n.element); void 0 !== s && n.row.domNode.setAttribute("aria-checked", String(!!s)), n.row.domNode.parentElement || (t ? this.rowsContainer.insertBefore(n .row.domNode, t) : this.rowsContainer.appendChild(n.row.domNode)), this.updateItemInDOM(n, e); const a = this.renderers.get(n.templateId); if (!a) throw new Error( `No renderer found for template id ${n.templateId}`); a && a.renderElement(n.element, e, n.row.templateData, n.size); const l = this.dnd.getDragURI(n.element); n.dragStartDisposable.dispose(), n.row.domNode.draggable = !!l, l && ( n.dragStartDisposable = (0, r.nm)(n.row.domNode, "dragstart", (e => this.onDragStart(n.element, l, e)))), this.horizontalScrolling && ( this.measureItemWidth(n), this.eventuallyUpdateScrollWidth()) } measureItemWidth(e) { if (!e.row || !e.row.domNode) return; e.row.domNode.style.width = n.vU ? "-moz-fit-content" : "fit-content", e.width = (0, r.FK)(e.row.domNode); const t = window.getComputedStyle(e.row.domNode); t.paddingLeft && (e.width += parseFloat(t.paddingLeft)), t.paddingRight && (e.width += parseFloat(t.paddingRight)), e.row.domNode.style.width = "" } updateItemInDOM(e, t) { e.row.domNode.style.top = `${this.elementTop(t)}px`, this.setRowHeight && (e.row.domNode.style.height = `${e.size}px`), this.setRowLineHeight && (e.row.domNode.style.lineHeight = `${e.size}px`), e.row.domNode.setAttribute( "data-index", `${t}`), e.row.domNode.setAttribute( "data-last-element", t === this.length - 1 ? "true" : "false"), e.row .domNode.setAttribute("aria-setsize", String(this.accessibilityProvider .getSetSize(e.element, t, this.length))), e.row.domNode.setAttribute( "aria-posinset", String(this.accessibilityProvider.getPosInSet(e.element, t))), e.row.domNode.setAttribute("id", this.getElementDomId(t)), e.row .domNode.classList.toggle("drop-target", e.dropTarget) } removeItemFromDOM(e) { const t = this.items[e]; if (t.dragStartDisposable.dispose(), t.row) { const i = this.renderers.get(t.templateId); i && i.disposeElement && i.disposeElement(t.element, e, t.row.templateData, t.size), this.cache.release(t.row), t.row = null } this.horizontalScrolling && this.eventuallyUpdateScrollWidth() } getScrollTop() { return this.scrollableElement.getScrollPosition().scrollTop } setScrollTop(e, t) { this.scrollableElementUpdateDisposable && (this.scrollableElementUpdateDisposable .dispose(), this.scrollableElementUpdateDisposable = null, this.scrollableElement .setScrollDimensions({ scrollHeight: this.scrollHeight })), this.scrollableElement.setScrollPosition({ scrollTop: e, reuseAnimation: t }) } get scrollTop() { return this.getScrollTop() } set scrollTop(e) { this.setScrollTop(e) } get scrollHeight() { return this._scrollHeight + (this.horizontalScrolling ? 10 : 0) + this .additionalScrollHeight } get onMouseClick() { return u.ju.map(this.disposables.add(new s.Y(this.domNode, "click")).event, ( e => this.toMouseEvent(e))) } get onMouseDblClick() { return u.ju.map(this.disposables.add(new s.Y(this.domNode, "dblclick")) .event, (e => this.toMouseEvent(e))) } get onMouseMiddleClick() { return u.ju.filter(u.ju.map(this.disposables.add(new s.Y(this.domNode, "auxclick")).event, (e => this.toMouseEvent(e))), (e => 1 === e.browserEvent .button)) } get onMouseDown() { return u.ju.map(this.disposables.add(new s.Y(this.domNode, "mousedown")) .event, (e => this.toMouseEvent(e))) } get onContextMenu() { return u.ju.any(u.ju.map(this.disposables.add(new s.Y(this.domNode, "contextmenu")).event, (e => this.toMouseEvent(e))), u.ju.map(this.disposables .add(new s.Y(this.domNode, a.t.Contextmenu)).event, (e => this.toGestureEvent( e)))) } get onTouchStart() { return u.ju.map(this.disposables.add(new s.Y(this.domNode, "touchstart")).event, (e => this.toTouchEvent(e))) } get onTap() { return u.ju.map(this.disposables.add(new s.Y(this.rowsContainer, a.t.Tap)) .event, (e => this.toGestureEvent(e))) } toMouseEvent(e) { const t = this.getItemIndexFromEventTarget(e.target || null), i = void 0 === t ? void 0 : this.items[t]; return { browserEvent: e, index: t, element: i && i.element } } toTouchEvent(e) { const t = this.getItemIndexFromEventTarget(e.target || null), i = void 0 === t ? void 0 : this.items[t]; return { browserEvent: e, index: t, element: i && i.element } } toGestureEvent(e) { const t = this.getItemIndexFromEventTarget(e.initialTarget || null), i = void 0 === t ? void 0 : this.items[t]; return { browserEvent: e, index: t, element: i && i.element } } toDragEvent(e) { const t = this.getItemIndexFromEventTarget(e.target || null), i = void 0 === t ? void 0 : this.items[t]; return { browserEvent: e, index: t, element: i && i.element } } onScroll(e) { try { const t = this.getRenderRange(this.lastRenderTop, this.lastRenderHeight); this.render(t, e.scrollTop, e.height, e.scrollLeft, e.scrollWidth), this.supportDynamicHeights && this._rerender(e.scrollTop, e.height, e.inSmoothScrolling) } catch (t) { throw console.error("Got bad scroll event:", e), t } } onTouchChange(e) { e.preventDefault(), e.stopPropagation(), this.scrollTop -= e.translationY } onDragStart(e, t, i) { if (!i.dataTransfer) return; const n = this.dnd.getDragElements(e); if (i.dataTransfer.effectAllowed = "copyMove", i.dataTransfer.setData( o.go.TEXT, t), i.dataTransfer.setDragImage) { let e; this.dnd.getDragLabel && (e = this.dnd.getDragLabel(n, i)), void 0 === e && (e = String(n.length)); const t = (0, r.$)(".monaco-drag-image"); t.textContent = e, document.body.appendChild(t), i.dataTransfer.setDragImage( t, -10, -10), setTimeout((() => document.body.removeChild(t)), 0) } this.currentDragData = new S(n), o.P$.CurrentDragAndDropData = new x(n), this.dnd.onDragStart && this.dnd.onDragStart(this.currentDragData, i) } onDragOver(e) { if (e.browserEvent.preventDefault(), this.onDragLeaveTimeout.dispose(), o.P$.CurrentDragAndDropData && "vscode-ui" === o.P$.CurrentDragAndDropData .getData()) return !1; if (this.setupDragAndDropScrollTopAnimation(e.browserEvent), !e.browserEvent .dataTransfer) return !1; if (!this.currentDragData) if (o.P$.CurrentDragAndDropData) this.currentDragData = o.P$.CurrentDragAndDropData; else { if (!e.browserEvent.dataTransfer.types) return !1; this.currentDragData = new k } const t = this.dnd.onDragOver(this.currentDragData, e.element, e.index, e.browserEvent); if (this.canDrop = "boolean" == typeof t ? t : t.accept, !this.canDrop) return this.currentDragFeedback = void 0, this.currentDragFeedbackDisposable .dispose(), !1; let i; if (e.browserEvent.dataTransfer.dropEffect = "boolean" != typeof t && 0 === t.effect ? "copy" : "move", i = "boolean" != typeof t && t.feedback ? t.feedback : void 0 === e.index ? [-1] : [e.index], i = (0, d.EB)(i).filter( (e => e >= -1 && e < this.length)).sort(((e, t) => e - t)), i = -1 === i[0] ? [-1] : i, n = this.currentDragFeedback, r = i, Array.isArray(n) && Array.isArray(r) ? (0, d.fS)(n, r) : n === r) return !0; var n, r; if (this.currentDragFeedback = i, this.currentDragFeedbackDisposable.dispose(), - 1 === i[0]) this.domNode.classList.add("drop-target"), this.rowsContainer .classList.add("drop-target"), this.currentDragFeedbackDisposable = ( 0, g.OF)((() => { this.domNode.classList.remove("drop-target"), this.rowsContainer.classList .remove("drop-target") })); else { for (const e of i) { const t = this.items[e]; t.dropTarget = !0, t.row && t.row.domNode.classList.add( "drop-target") } this.currentDragFeedbackDisposable = (0, g.OF)((() => { for (const e of i) { const t = this.items[e]; t.dropTarget = !1, t.row && t.row.domNode.classList.remove( "drop-target") } })) } return !0 } onDragLeave(e) { var t, i; this.onDragLeaveTimeout.dispose(), this.onDragLeaveTimeout = (0, c.Vg) ((() => this.clearDragOverFeedback()), 100), this.currentDragData && (null === (i = (t = this.dnd).onDragLeave) || void 0 === i || i.call( t, this.currentDragData, e.element, e.index, e.browserEvent)) } onDrop(e) { if (!this.canDrop) return; const t = this.currentDragData; this.teardownDragAndDropScrollTopAnimation(), this.clearDragOverFeedback(), this.currentDragData = void 0, o.P$.CurrentDragAndDropData = void 0, t && e.browserEvent.dataTransfer && (e.browserEvent.preventDefault(), t.update(e.browserEvent.dataTransfer), this.dnd.drop(t, e.element, e .index, e.browserEvent)) } onDragEnd(e) { this.canDrop = !1, this.teardownDragAndDropScrollTopAnimation(), this.clearDragOverFeedback(), this.currentDragData = void 0, o.P$.CurrentDragAndDropData = void 0, this.dnd.onDragEnd && this.dnd.onDragEnd(e) } clearDragOverFeedback() { this.currentDragFeedback = void 0, this.currentDragFeedbackDisposable.dispose(), this.currentDragFeedbackDisposable = g.JT.None } setupDragAndDropScrollTopAnimation(e) { if (!this.dragOverAnimationDisposable) { const e = (0, r.xQ)(this.domNode).top; this.dragOverAnimationDisposable = (0, r.jt)(this.animateDragAndDropScrollTop .bind(this, e)) } this.dragOverAnimationStopDisposable.dispose(), this.dragOverAnimationStopDisposable = (0, c.Vg)((() => { this.dragOverAnimationDisposable && (this.dragOverAnimationDisposable .dispose(), this.dragOverAnimationDisposable = void 0) }), 1e3), this.dragOverMouseY = e.pageY } animateDragAndDropScrollTop(e) { if (void 0 === this.dragOverMouseY) return; const t = this.dragOverMouseY - e, i = this.renderHeight - 35; t < 35 ? this.scrollTop += Math.max(-14, Math.floor(.3 * (t - 35))) : t > i && (this.scrollTop += Math.min(14, Math.floor(.3 * (t - i)))) } teardownDragAndDropScrollTopAnimation() { this.dragOverAnimationStopDisposable.dispose(), this.dragOverAnimationDisposable && (this.dragOverAnimationDisposable.dispose(), this.dragOverAnimationDisposable = void 0) } getItemIndexFromEventTarget(e) { const t = this.scrollableElement.getDomNode(); let i = e; for (; i instanceof HTMLElement && i !== this.rowsContainer && t.contains( i);) { const e = i.getAttribute("data-index"); if (e) { const t = Number(e); if (!isNaN(t)) return t } i = i.parentElement } } getRenderRange(e, t) { return { start: this.rangeMap.indexAt(e), end: this.rangeMap.indexAfter(e + t - 1) } } _rerender(e, t, i) { const n = this.getRenderRange(e, t); let o, r; e === this.elementTop(n.start) ? (o = n.start, r = 0) : n.end - n.start > 1 && (o = n.start + 1, r = this.elementTop(o) - e); let s = 0; for (;;) { const a = this.getRenderRange(e, t); let l = !1; for (let e = a.start; e < a.end; e++) { const t = this.probeDynamicHeight(e); 0 !== t && this.rangeMap.splice(e, 1, [this.items[e]]), s += t, l = l || 0 !== t } if (!l) { 0 !== s && this.eventuallyUpdateScrollDimensions(); const t = m.e.relativeComplement(n, a); for (const e of t) for (let t = e.start; t < e.end; t++) this.items[t].row && this.removeItemFromDOM( t); const l = m.e.relativeComplement(a, n); for (const e of l) for (let t = e.start; t < e.end; t++) { const e = t + 1, i = e < this.items.length ? this.items[e].row : null, n = i ? i.domNode : null; this.insertItemInDOM(t, n) } for (let e = a.start; e < a.end; e++) this.items[e].row && this.updateItemInDOM( this.items[e], e); if ("number" == typeof o) { const t = this.scrollable.getFutureScrollPosition().scrollTop - e, n = this.elementTop(o) - r + t; this.setScrollTop(n, i) } return void this._onDidChangeContentHeight.fire(this.contentHeight) } } } probeDynamicHeight(e) { const t = this.items[e]; if (!t.hasDynamicHeight || t.lastDynamicHeightWidth === this.renderWidth) return 0; if (this.virtualDelegate.hasDynamicHeight && !this.virtualDelegate.hasDynamicHeight( t.element)) return 0; const i = t.size; if (!this.setRowHeight && t.row) { let e = t.row.domNode.offsetHeight; return t.size = e, t.lastDynamicHeightWidth = this.renderWidth, e - i } const n = this.cache.alloc(t.templateId); n.domNode.style.height = "", this.rowsContainer.appendChild(n.domNode); const o = this.renderers.get(t.templateId); return o && (o.renderElement(t.element, e, n.templateData, void 0), o.disposeElement && o.disposeElement(t.element, e, n.templateData, void 0)), t.size = n.domNode .offsetHeight, this.virtualDelegate.setDynamicHeight && this.virtualDelegate .setDynamicHeight(t.element, t.size), t.lastDynamicHeightWidth = this .renderWidth, this.rowsContainer.removeChild(n.domNode), this.cache.release( n), t.size - i } getNextToLastElement(e) { const t = e[e.length - 1]; if (!t) return null; const i = this.items[t.end]; return i && i.row ? i.row.domNode : null } getElementDomId(e) { return `${this.domId}_${e}` } dispose() { if (this.items) { for (const e of this.items) if (e.row) { const t = this.renderers.get(e.row.templateId); t && (t.disposeElement && t.disposeElement(e.element, -1, e.row.templateData, void 0), t.disposeTemplate(e.row.templateData)) } this.items = [] } this.domNode && this.domNode.parentNode && this.domNode.parentNode.removeChild( this.domNode), (0, g.B9)(this.disposables) } } N.InstanceCount = 0, C([h.H], N.prototype, "onMouseClick", null), C([h.H], N.prototype, "onMouseDblClick", null), C([h.H], N.prototype, "onMouseMiddleClick", null), C([h.H], N.prototype, "onMouseDown", null), C([h.H], N.prototype, "onContextMenu", null), C([h.H], N.prototype, "onTouchStart", null), C([h.H], N.prototype, "onTap", null) }, 3799: (e, t, i) => { "use strict"; i.d(t, { WK: () => M, wD: () => W, aV: () => q, sx: () => B, cK: () => E, hD: () => I, wn: () => P, Zo: () => O }); var n = i(5321), o = i(4850), r = i(9069), s = i(553), a = i(6346); class l { constructor(e) { this.spliceables = e } splice(e, t, i) { this.spliceables.forEach((n => n.splice(e, t, i))) } } var d = i(9488), c = i(5393), h = i(1264), u = i(9898), g = i(4669), p = i(5392), m = i(5976), f = i(9870), _ = i(6248), b = i(1432), v = i(8401); i(3164); class w extends Error { constructor(e, t) { super(`ListError [${e}] ${t}`) } } var C, y = i(5707), S = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }, x = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; class k { constructor(e) { this.trait = e, this.renderedElements = [] } get templateId() { return `template:${this.trait.trait}` } renderTemplate(e) { return e } renderElement(e, t, i) { const n = this.renderedElements.findIndex((e => e.templateData === i)); if (n >= 0) { const e = this.renderedElements[n]; this.trait.unrender(i), e.index = t } else { const e = { index: t, templateData: i }; this.renderedElements.push(e) } this.trait.renderIndex(t, i) } splice(e, t, i) { const n = []; for (const o of this.renderedElements) o.index < e ? n.push(o) : o.index >= e + t && n.push({ index: o.index + i - t, templateData: o.templateData }); this.renderedElements = n } renderIndexes(e) { for (const { index: t, templateData: i } of this.renderedElements) e.indexOf(t) > -1 && this.trait.renderIndex( t, i) } disposeTemplate(e) { const t = this.renderedElements.findIndex((t => t.templateData === e)); t < 0 || this.renderedElements.splice(t, 1) } } class L { constructor(e) { this._trait = e, this.length = 0, this.indexes = [], this.sortedIndexes = [], this._onChange = new g.Q5, this.onChange = this._onChange.event } get trait() { return this._trait } get renderer() { return new k(this) } splice(e, t, i) { var n; t = Math.max(0, Math.min(t, this.length - e)); const o = i.length - t, r = e + t, s = [...this.sortedIndexes.filter((t => t < e)), ...i.map(((t, i) => t ? i + e : -1)).filter((e => -1 !== e)), ...this.sortedIndexes.filter( (e => e >= r)).map((e => e + o))], a = this.length + o; if (this.sortedIndexes.length > 0 && 0 === s.length && a > 0) { const t = null !== (n = this.sortedIndexes.find((t => t >= e))) && void 0 !== n ? n : a - 1; s.push(Math.min(t, a - 1)) } this.renderer.splice(e, t, i.length), this._set(s, s), this.length = a } renderIndex(e, t) { t.classList.toggle(this._trait, this.contains(e)) } unrender(e) { e.classList.remove(this._trait) } set(e, t) { return this._set(e, [...e].sort(U), t) } _set(e, t, i) { const n = this.indexes, o = this.sortedIndexes; this.indexes = e, this.sortedIndexes = t; const r = H(o, e); return this.renderer.renderIndexes(r), this._onChange.fire({ indexes: e, browserEvent: i }), n } get() { return this.indexes } contains(e) { return (0, d.ry)(this.sortedIndexes, e, U) >= 0 } dispose() { (0, m.B9)(this._onChange) } } S([u.H], L.prototype, "renderer", null); class N extends L { constructor(e) { super("selected"), this.setAriaSelected = e } renderIndex(e, t) { super.renderIndex(e, t), this.setAriaSelected && (this.contains(e) ? t .setAttribute("aria-selected", "true") : t.setAttribute( "aria-selected", "false")) } } class D { constructor(e, t, i) { this.trait = e, this.view = t, this.identityProvider = i } splice(e, t, i) { if (!this.identityProvider) return this.trait.splice(e, t, i.map((() => !1))); const n = this.trait.get().map((e => this.identityProvider.getId(this.view .element(e)).toString())), o = i.map((e => n.indexOf(this.identityProvider.getId(e).toString()) > -1)); this.trait.splice(e, t, o) } } function E(e) { return "INPUT" === e.tagName || "TEXTAREA" === e.tagName } function I(e) { return !!e.classList.contains("monaco-editor") || !e.classList.contains( "monaco-list") && !!e.parentElement && I(e.parentElement) } class T { constructor(e, t, i) { this.list = e, this.view = t, this.disposables = new m.SL, this.multipleSelectionDisposables = new m.SL, this.onKeyDown.filter((e => 3 === e.keyCode)).on(this.onEnter, this, this.disposables), this.onKeyDown.filter((e => 16 === e.keyCode)) .on(this.onUpArrow, this, this.disposables), this.onKeyDown.filter((e => 18 === e.keyCode)).on(this.onDownArrow, this, this.disposables), this.onKeyDown.filter((e => 11 === e.keyCode)).on(this.onPageUpArrow, this, this.disposables), this.onKeyDown.filter((e => 12 === e.keyCode)) .on(this.onPageDownArrow, this, this.disposables), this.onKeyDown.filter( (e => 9 === e.keyCode)).on(this.onEscape, this, this.disposables), ! 1 !== i.multipleSelectionSupport && this.onKeyDown.filter((e => (b.dz ? e.metaKey : e.ctrlKey) && 31 === e.keyCode)).on(this.onCtrlA, this, this.multipleSelectionDisposables) } get onKeyDown() { return g.ju.chain(this.disposables.add(new o.Y(this.view.domNode, "keydown")).event).filter((e => !E(e.target))).map((e => new r.y(e))) } updateOptions(e) { void 0 !== e.multipleSelectionSupport && (this.multipleSelectionDisposables .clear(), e.multipleSelectionSupport && this.onKeyDown.filter((e => (b.dz ? e.metaKey : e.ctrlKey) && 31 === e.keyCode)).on(this.onCtrlA, this, this.multipleSelectionDisposables)) } onEnter(e) { e.preventDefault(), e.stopPropagation(), this.list.setSelection(this.list .getFocus(), e.browserEvent) } onUpArrow(e) { e.preventDefault(), e.stopPropagation(), this.list.focusPrevious(1, !1, e.browserEvent), this.list.reveal(this.list.getFocus()[0]), this.view .domNode.focus() } onDownArrow(e) { e.preventDefault(), e.stopPropagation(), this.list.focusNext(1, !1, e.browserEvent), this.list.reveal(this.list.getFocus()[0]), this.view.domNode.focus() } onPageUpArrow(e) { e.preventDefault(), e.stopPropagation(), this.list.focusPreviousPage(e .browserEvent), this.list.reveal(this.list.getFocus()[0]), this.view .domNode.focus() } onPageDownArrow(e) { e.preventDefault(), e.stopPropagation(), this.list.focusNextPage(e.browserEvent), this.list.reveal(this.list.getFocus()[0]), this.view.domNode.focus() } onCtrlA(e) { e.preventDefault(), e.stopPropagation(), this.list.setSelection((0, d.w6) (this.list.length), e.browserEvent), this.view.domNode.focus() } onEscape(e) { this.list.getSelection().length && (e.preventDefault(), e.stopPropagation(), this.list.setSelection([], e.browserEvent), this.view.domNode.focus() ) } dispose() { this.disposables.dispose(), this.multipleSelectionDisposables.dispose() } } S([u.H], T.prototype, "onKeyDown", null), function(e) { e[e.Idle = 0] = "Idle", e[e.Typing = 1] = "Typing" }(C || (C = {})); const M = new class { mightProducePrintableCharacter(e) { return !(e.ctrlKey || e.metaKey || e.altKey) && (e.keyCode >= 31 && e .keyCode <= 56 || e.keyCode >= 21 && e.keyCode <= 30 || e.keyCode >= 93 && e.keyCode <= 102 || e.keyCode >= 80 && e.keyCode <= 90) } }; class A { constructor(e, t, i, n) { this.list = e, this.view = t, this.keyboardNavigationLabelProvider = i, this.delegate = n, this.enabled = !1, this.state = C.Idle, this.automaticKeyboardNavigation = ! 0, this.triggered = !1, this.previouslyFocused = -1, this.enabledDisposables = new m.SL, this.disposables = new m.SL, this.updateOptions(e.options) } updateOptions(e) { void 0 === e.enableKeyboardNavigation || e.enableKeyboardNavigation ? this.enable() : this.disable(), void 0 !== e.automaticKeyboardNavigation && (this.automaticKeyboardNavigation = e.automaticKeyboardNavigation) } enable() { if (this.enabled) return; const e = g.ju.chain(this.enabledDisposables.add(new o.Y(this.view.domNode, "keydown")).event).filter((e => !E(e.target))).filter((() => this.automaticKeyboardNavigation || this.triggered)).map((e => new r.y(e))).filter((e => this.delegate.mightProducePrintableCharacter( e))).forEach((e => { e.stopPropagation(), e.preventDefault() })).map((e => e.browserEvent.key)).event, t = g.ju.debounce(e, (() => null), 800); g.ju.reduce(g.ju.any(e, t), ((e, t) => null === t ? null : (e || "") + t))(this.onInput, this, this.enabledDisposables), t(this.onClear, this, this.enabledDisposables), this.enabled = !0, this.triggered = ! 1 } disable() { this.enabled && (this.enabledDisposables.clear(), this.enabled = !1, this.triggered = !1) } onClear() { var e; const t = this.list.getFocus(); if (t.length > 0 && t[0] === this.previouslyFocused) { const i = null === (e = this.list.options.accessibilityProvider) || void 0 === e ? void 0 : e.getAriaLabel(this.list.element(t[0])); i && (0, a.Z9)(i) } this.previouslyFocused = -1 } onInput(e) { if (!e) return this.state = C.Idle, void(this.triggered = !1); const t = this.list.getFocus(), i = t.length > 0 ? t[0] : 0, n = this.state === C.Idle ? 1 : 0; this.state = C.Typing; for (let t = 0; t < this.list.length; t++) { const o = (i + t + n) % this.list.length, r = this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel( this.view.element(o)), s = r && r.toString(); if (void 0 === s || (0, p.Ji)(e, s)) return this.previouslyFocused = i, this.list.setFocus([o]), void this.list.reveal(o) } } dispose() { this.disable(), this.enabledDisposables.dispose(), this.disposables.dispose() } } class R { constructor(e, t) { this.list = e, this.view = t, this.disposables = new m.SL, g.ju.chain( this.disposables.add(new o.Y(t.domNode, "keydown")).event).filter((e => !E(e.target))).map((e => new r.y(e))).filter((e => !(2 !== e.keyCode || e.ctrlKey || e.metaKey || e.shiftKey || e.altKey))).on(this.onTab, this, this.disposables) } onTab(e) { if (e.target !== this.view.domNode) return; const t = this.list.getFocus(); if (0 === t.length) return; const i = this.view.domElement(t[0]); if (!i) return; const n = i.querySelector("[tabIndex]"); if (!(n && n instanceof HTMLElement && -1 !== n.tabIndex)) return; const o = window.getComputedStyle(n); "hidden" !== o.visibility && "none" !== o.display && (e.preventDefault(), e.stopPropagation(), n.focus()) } dispose() { this.disposables.dispose() } } function O(e) { return b.dz ? e.browserEvent.metaKey : e.browserEvent.ctrlKey } function P(e) { return e.browserEvent.shiftKey } const F = { isSelectionSingleChangeEvent: O, isSelectionRangeChangeEvent: P }; class B { constructor(e) { this.list = e, this.disposables = new m.SL, this._onPointer = new g.Q5, this.onPointer = this._onPointer.event, !1 !== e.options.multipleSelectionSupport && (this.multipleSelectionController = this.list.options.multipleSelectionController || F), this.mouseSupport = void 0 === e.options.mouseSupport || !!e.options .mouseSupport, this.mouseSupport && (e.onMouseDown(this.onMouseDown, this, this.disposables), e.onContextMenu(this.onContextMenu, this, this.disposables), e.onMouseDblClick(this.onDoubleClick, this, this .disposables), e.onTouchStart(this.onMouseDown, this, this.disposables), this.disposables.add(s.o.addTarget(e.getHTMLElement()))), g.ju.any(e .onMouseClick, e.onMouseMiddleClick, e.onTap)(this.onViewPointer, this, this.disposables) } updateOptions(e) { void 0 !== e.multipleSelectionSupport && (this.multipleSelectionController = void 0, e.multipleSelectionSupport && (this.multipleSelectionController = this.list.options.multipleSelectionController || F)) } isSelectionSingleChangeEvent(e) { return !!this.multipleSelectionController && this.multipleSelectionController .isSelectionSingleChangeEvent(e) } isSelectionRangeChangeEvent(e) { return !!this.multipleSelectionController && this.multipleSelectionController .isSelectionRangeChangeEvent(e) } isSelectionChangeEvent(e) { return this.isSelectionSingleChangeEvent(e) || this.isSelectionRangeChangeEvent( e) } onMouseDown(e) { I(e.browserEvent.target) || document.activeElement !== e.browserEvent.target && this.list.domFocus() } onContextMenu(e) { if (I(e.browserEvent.target)) return; const t = void 0 === e.index ? [] : [e.index]; this.list.setFocus(t, e.browserEvent) } onViewPointer(e) { if (!this.mouseSupport) return; if (E(e.browserEvent.target) || I(e.browserEvent.target)) return; const t = e.index; return void 0 === t ? (this.list.setFocus([], e.browserEvent), this.list .setSelection([], e.browserEvent), void this.list.setAnchor(void 0)) : this.isSelectionRangeChangeEvent(e) || this.isSelectionChangeEvent(e) ? this.changeSelection(e) : (this.list.setFocus([t], e.browserEvent), this.list.setAnchor(t), (i = e.browserEvent) instanceof MouseEvent && 2 === i.button || this.list.setSelection([t], e.browserEvent), void this ._onPointer.fire(e)); var i } onDoubleClick(e) { if (E(e.browserEvent.target) || I(e.browserEvent.target)) return; if (this.isSelectionChangeEvent(e)) return; const t = this.list.getFocus(); this.list.setSelection(t, e.browserEvent) } changeSelection(e) { const t = e.index; let i = this.list.getAnchor(); if (this.isSelectionRangeChangeEvent(e)) { if (void 0 === i) { const e = this.list.getFocus()[0]; i = null != e ? e : t, this.list.setAnchor(i) } const n = Math.min(i, t), o = Math.max(i, t), r = (0, d.w6)(n, o + 1), s = this.list.getSelection(), a = function(e, t) { const i = e.indexOf(t); if (-1 === i) return []; const n = []; let o = i - 1; for (; o >= 0 && e[o] === t - (i - o);) n.push(e[o--]); for (n.reverse(), o = i; o < e.length && e[o] === t + (o - i);) n.push( e[o++]); return n }(H(s, [i]), i); if (0 === a.length) return; const l = H(r, function(e, t) { const i = []; let n = 0, o = 0; for (; n < e.length || o < t.length;) if (n >= e.length) i.push(t[o++]); else if (o >= t.length) i.push(e[n++]); else { if (e[n] === t[o]) { n++, o++; continue } e[n] < t[o] ? i.push(e[n++]) : o++ } return i }(s, a)); this.list.setSelection(l, e.browserEvent), this.list.setFocus([t], e.browserEvent) } else if (this.isSelectionSingleChangeEvent(e)) { const i = this.list.getSelection(), n = i.filter((e => e !== t)); this.list.setFocus([t]), this.list.setAnchor(t), i.length === n.length ? this.list.setSelection([...n, t], e.browserEvent) : this.list.setSelection( n, e.browserEvent) } } dispose() { this.disposables.dispose() } } class W { constructor(e, t) { this.styleElement = e, this.selectorSuffix = t } style(e) { const t = this.selectorSuffix && `.${this.selectorSuffix}`, i = []; e.listBackground && (e.listBackground.isOpaque() ? i.push( `.monaco-list${t} .monaco-list-rows { background: ${e.listBackground}; }` ) : b.dz || console.warn( `List with id '${this.selectorSuffix}' was styled with a non-opaque background color. This will break sub-pixel antialiasing.` )), e.listFocusBackground && (i.push( `.monaco-list${t}:focus .monaco-list-row.focused { background-color: ${e.listFocusBackground}; }` ), i.push( `.monaco-list${t}:focus .monaco-list-row.focused:hover { background-color: ${e.listFocusBackground}; }` )), e.listFocusForeground && i.push( `.monaco-list${t}:focus .monaco-list-row.focused { color: ${e.listFocusForeground}; }` ), e.listActiveSelectionBackground && (i.push( `.monaco-list${t}:focus .monaco-list-row.selected { background-color: ${e.listActiveSelectionBackground}; }` ), i.push( `.monaco-list${t}:focus .monaco-list-row.selected:hover { background-color: ${e.listActiveSelectionBackground}; }` )), e.listActiveSelectionForeground && i.push( `.monaco-list${t}:focus .monaco-list-row.selected { color: ${e.listActiveSelectionForeground}; }` ), e.listActiveSelectionIconForeground && i.push( `.monaco-list${t}:focus .monaco-list-row.selected .codicon { color: ${e.listActiveSelectionIconForeground}; }` ), e.listFocusAndSelectionBackground && i.push( `\n\t\t\t\t.monaco-drag-image,\n\t\t\t\t.monaco-list${t}:focus .monaco-list-row.selected.focused { background-color: ${e.listFocusAndSelectionBackground}; }\n\t\t\t` ), e.listFocusAndSelectionForeground && i.push( `\n\t\t\t\t.monaco-drag-image,\n\t\t\t\t.monaco-list${t}:focus .monaco-list-row.selected.focused { color: ${e.listFocusAndSelectionForeground}; }\n\t\t\t` ), e.listInactiveFocusForeground && (i.push( `.monaco-list${t} .monaco-list-row.focused { color: ${e.listInactiveFocusForeground}; }` ), i.push( `.monaco-list${t} .monaco-list-row.focused:hover { color: ${e.listInactiveFocusForeground}; }` )), e.listInactiveSelectionIconForeground && i.push( `.monaco-list${t} .monaco-list-row.focused .codicon { color: ${e.listInactiveSelectionIconForeground}; }` ), e.listInactiveFocusBackground && (i.push( `.monaco-list${t} .monaco-list-row.focused { background-color: ${e.listInactiveFocusBackground}; }` ), i.push( `.monaco-list${t} .monaco-list-row.focused:hover { background-color: ${e.listInactiveFocusBackground}; }` )), e.listInactiveSelectionBackground && (i.push( `.monaco-list${t} .monaco-list-row.selected { background-color: ${e.listInactiveSelectionBackground}; }` ), i.push( `.monaco-list${t} .monaco-list-row.selected:hover { background-color: ${e.listInactiveSelectionBackground}; }` )), e.listInactiveSelectionForeground && i.push( `.monaco-list${t} .monaco-list-row.selected { color: ${e.listInactiveSelectionForeground}; }` ), e.listHoverBackground && i.push( `.monaco-list${t}:not(.drop-target) .monaco-list-row:hover:not(.selected):not(.focused) { background-color: ${e.listHoverBackground}; }` ), e.listHoverForeground && i.push( `.monaco-list${t} .monaco-list-row:hover:not(.selected):not(.focused) { color: ${e.listHoverForeground}; }` ), e.listSelectionOutline && i.push( `.monaco-list${t} .monaco-list-row.selected { outline: 1px dotted ${e.listSelectionOutline}; outline-offset: -1px; }` ), e.listFocusOutline && i.push( `\n\t\t\t\t.monaco-drag-image,\n\t\t\t\t.monaco-list${t}:focus .monaco-list-row.focused { outline: 1px solid ${e.listFocusOutline}; outline-offset: -1px; }\n\t\t\t` ), e.listInactiveFocusOutline && i.push( `.monaco-list${t} .monaco-list-row.focused { outline: 1px dotted ${e.listInactiveFocusOutline}; outline-offset: -1px; }` ), e.listHoverOutline && i.push( `.monaco-list${t} .monaco-list-row:hover { outline: 1px dashed ${e.listHoverOutline}; outline-offset: -1px; }` ), e.listDropBackground && i.push( `\n\t\t\t\t.monaco-list${t}.drop-target,\n\t\t\t\t.monaco-list${t} .monaco-list-rows.drop-target,\n\t\t\t\t.monaco-list${t} .monaco-list-row.drop-target { background-color: ${e.listDropBackground} !important; color: inherit !important; }\n\t\t\t` ), e.listFilterWidgetBackground && i.push( `.monaco-list-type-filter { background-color: ${e.listFilterWidgetBackground} }` ), e.listFilterWidgetOutline && i.push( `.monaco-list-type-filter { border: 1px solid ${e.listFilterWidgetOutline}; }` ), e.listFilterWidgetNoMatchesOutline && i.push( `.monaco-list-type-filter.no-matches { border: 1px solid ${e.listFilterWidgetNoMatchesOutline}; }` ), e.listMatchesShadow && i.push( `.monaco-list-type-filter { box-shadow: 1px 1px 1px ${e.listMatchesShadow}; }` ), e.tableColumnsBorder && i.push( `\n\t\t\t\t.monaco-table:hover > .monaco-split-view2,\n\t\t\t\t.monaco-table:hover > .monaco-split-view2 .monaco-sash.vertical::before {\n\t\t\t\t\tborder-color: ${e.tableColumnsBorder};\n\t\t\t}` ), this.styleElement.textContent = i.join("\n") } } const z = { listFocusBackground: h.Il.fromHex("#7FB0D0"), listActiveSelectionBackground: h.Il.fromHex("#0E639C"), listActiveSelectionForeground: h.Il.fromHex("#FFFFFF"), listActiveSelectionIconForeground: h.Il.fromHex("#FFFFFF"), listFocusAndSelectionBackground: h.Il.fromHex("#094771"), listFocusAndSelectionForeground: h.Il.fromHex("#FFFFFF"), listInactiveSelectionBackground: h.Il.fromHex("#3F3F46"), listInactiveSelectionIconForeground: h.Il.fromHex("#FFFFFF"), listHoverBackground: h.Il.fromHex("#2A2D2E"), listDropBackground: h.Il.fromHex("#383B3D"), treeIndentGuidesStroke: h.Il.fromHex("#a9a9a9"), tableColumnsBorder: h.Il.fromHex("#cccccc").transparent(.2) }, V = { keyboardSupport: !0, mouseSupport: !0, multipleSelectionSupport: !0, dnd: { getDragURI: () => null, onDragStart() {}, onDragOver: () => !1, drop() {} } }; function H(e, t) { const i = []; let n = 0, o = 0; for (; n < e.length || o < t.length;) if (n >= e.length) i.push(t[o++]); else if (o >= t.length) i.push(e[n++]); else { if (e[n] === t[o]) { i.push(e[n]), n++, o++; continue } e[n] < t[o] ? i.push(e[n++]) : i.push(t[o++]) } return i } const U = (e, t) => e - t; class j { constructor(e, t) { this._templateId = e, this.renderers = t } get templateId() { return this._templateId } renderTemplate(e) { return this.renderers.map((t => t.renderTemplate(e))) } renderElement(e, t, i, n) { let o = 0; for (const r of this.renderers) r.renderElement(e, t, i[o++], n) } disposeElement(e, t, i, n) { let o = 0; for (const r of this.renderers) r.disposeElement && r.disposeElement(e, t, i[o], n), o += 1 } disposeTemplate(e) { let t = 0; for (const i of this.renderers) i.disposeTemplate(e[t++]) } } class K { constructor(e) { this.accessibilityProvider = e, this.templateId = "a18n" } renderTemplate(e) { return e } renderElement(e, t, i) { const n = this.accessibilityProvider.getAriaLabel(e); n ? i.setAttribute("aria-label", n) : i.removeAttribute("aria-label"); const o = this.accessibilityProvider.getAriaLevel && this.accessibilityProvider .getAriaLevel(e); "number" == typeof o ? i.setAttribute("aria-level", `${o}`) : i.removeAttribute( "aria-level") } disposeTemplate(e) {} } class $ { constructor(e, t) { this.list = e, this.dnd = t } getDragElements(e) { const t = this.list.getSelectedElements(); return t.indexOf(e) > -1 ? t : [e] } getDragURI(e) { return this.dnd.getDragURI(e) } getDragLabel(e, t) { if (this.dnd.getDragLabel) return this.dnd.getDragLabel(e, t) } onDragStart(e, t) { this.dnd.onDragStart && this.dnd.onDragStart(e, t) } onDragOver(e, t, i, n) { return this.dnd.onDragOver(e, t, i, n) } onDragLeave(e, t, i, n) { var o, r; null === (r = (o = this.dnd).onDragLeave) || void 0 === r || r.call(o, e, t, i, n) } onDragEnd(e) { this.dnd.onDragEnd && this.dnd.onDragEnd(e) } drop(e, t, i, n) { this.dnd.drop(e, t, i, n) } } class q { constructor(e, t, i, o, r = V) { var s; this.user = e, this._options = r, this.focus = new L("focused"), this.anchor = new L("anchor"), this.eventBufferer = new g.E7, this._ariaLabel = "", this.disposables = new m.SL, this._onDidDispose = new g.Q5, this.onDidDispose = this._onDidDispose.event; const a = this._options.accessibilityProvider && this._options.accessibilityProvider .getWidgetRole ? null === (s = this._options.accessibilityProvider) || void 0 === s ? void 0 : s.getWidgetRole() : "list"; this.selection = new N("listbox" !== a), (0, _.jB)(r, z, !1); const d = [this.focus.renderer, this.selection.renderer]; this.accessibilityProvider = r.accessibilityProvider, this.accessibilityProvider && (d.push(new K(this.accessibilityProvider)), this.accessibilityProvider .onDidChangeActiveDescendant && this.accessibilityProvider.onDidChangeActiveDescendant( this.onDidChangeActiveDescendant, this, this.disposables)), o = o.map( (e => new j(e.templateId, [...d, e]))); const c = Object.assign(Object.assign({}, r), { dnd: r.dnd && new $(this, r.dnd) }); if (this.view = new y.Bv(t, i, o, c), this.view.domNode.setAttribute( "role", a), r.styleController) this.styleController = r.styleController( this.view.domId); else { const e = (0, n.dS)(this.view.domNode); this.styleController = new W(e, this.view.domId) } if (this.spliceable = new l([new D(this.focus, this.view, r.identityProvider), new D(this.selection, this.view, r.identityProvider), new D(this.anchor, this.view, r.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 R( this, this.view)), ("boolean" != typeof r.keyboardSupport || r.keyboardSupport) && (this.keyboardController = new T(this, this.view, r), this.disposables .add(this.keyboardController)), r.keyboardNavigationLabelProvider) { const e = r.keyboardNavigationDelegate || M; this.typeLabelController = new A(this, this.view, r.keyboardNavigationLabelProvider, e), this.disposables.add(this.typeLabelController) } this.mouseController = this.createMouseController(r), 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()), !1 !== this._options .multipleSelectionSupport && this.view.domNode.setAttribute( "aria-multiselectable", "true") } get onDidChangeFocus() { return g.ju.map(this.eventBufferer.wrapEvent(this.focus.onChange), (e => this.toListEvent(e))) } get onDidChangeSelection() { return g.ju.map(this.eventBufferer.wrapEvent(this.selection.onChange), ( e => this.toListEvent(e))) } get domId() { return this.view.domId } 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 onTouchStart() { return this.view.onTouchStart } get onTap() { return this.view.onTap } get onContextMenu() { let e = !1; const t = g.ju.chain(this.disposables.add(new o.Y(this.view.domNode, "keydown")).event).map((e => new r.y(e))).filter((t => e = 58 === t.keyCode || t.shiftKey && 68 === t.keyCode)).map(o.p).filter((() => !1)).event, i = g.ju.chain(this.disposables.add(new o.Y(this.view.domNode, "keyup")).event).forEach((() => e = !1)).map((e => new r.y(e))).filter( (e => 58 === e.keyCode || e.shiftKey && 68 === e.keyCode)).map(o.p).map( (({ browserEvent: e }) => { const t = this.getFocus(), i = t.length ? t[0] : void 0; return { index: i, element: void 0 !== i ? this.view.element(i) : void 0, anchor: void 0 !== i ? this.view.domElement(i) : this.view.domNode, browserEvent: e } })).event, n = g.ju.chain(this.view.onContextMenu).filter((t => !e)).map((({ element: e, index: t, browserEvent: i }) => ({ element: e, index: t, anchor: { x: i.pageX + 1, y: i.pageY }, browserEvent: i }))).event; return g.ju.any(t, i, n) } get onKeyDown() { return this.disposables.add(new o.Y(this.view.domNode, "keydown")).event } get onDidFocus() { return g.ju.signal(this.disposables.add(new o.Y(this.view.domNode, "focus", !0)).event) } createMouseController(e) { return new B(this) } updateOptions(e = {}) { var t; this._options = Object.assign(Object.assign({}, this._options), e), this.typeLabelController && this.typeLabelController.updateOptions( this._options), void 0 !== this._options.multipleSelectionController && (this._options.multipleSelectionSupport ? this.view.domNode.setAttribute( "aria-multiselectable", "true") : this.view.domNode.removeAttribute( "aria-multiselectable")), this.mouseController.updateOptions(e), null === (t = this.keyboardController) || void 0 === t || t.updateOptions( e), this.view.updateOptions(e) } get options() { return this._options } splice(e, t, i = []) { if (e < 0 || e > this.view.length) throw new w(this.user, `Invalid start index: ${e}`); if (t < 0) throw new w(this.user, `Invalid delete count: ${t}`); 0 === t && 0 === i.length || this.eventBufferer.bufferEvents((() => this.spliceable.splice(e, t, i))) } rerender() { this.view.rerender() } element(e) { return this.view.element(e) } get length() { return this.view.length } get contentHeight() { return this.view.contentHeight } get scrollTop() { return this.view.getScrollTop() } set scrollTop(e) { this.view.setScrollTop(e) } get ariaLabel() { return this._ariaLabel } set ariaLabel(e) { this._ariaLabel = e, this.view.domNode.setAttribute("aria-label", e) } domFocus() { this.view.domNode.focus({ preventScroll: !0 }) } layout(e, t) { this.view.layout(e, t) } setSelection(e, t) { for (const t of e) if (t < 0 || t >= this.length) throw new w(this.user, `Invalid index ${t}`); this.selection.set(e, t) } getSelection() { return this.selection.get() } getSelectedElements() { return this.getSelection().map((e => this.view.element(e))) } setAnchor(e) { if (void 0 !== e) { if (e < 0 || e >= this.length) throw new w(this.user, `Invalid index ${e}`); this.anchor.set([e]) } else this.anchor.set([]) } getAnchor() { return (0, d.Xh)(this.anchor.get(), void 0) } getAnchorElement() { const e = this.getAnchor(); return void 0 === e ? void 0 : this.element(e) } setFocus(e, t) { for (const t of e) if (t < 0 || t >= this.length) throw new w(this.user, `Invalid index ${t}`); this.focus.set(e, t) } focusNext(e = 1, t = !1, i, n) { if (0 === this.length) return; const o = this.focus.get(), r = this.findNextIndex(o.length > 0 ? o[0] + e : 0, t, n); r > -1 && this.setFocus([r], i) } focusPrevious(e = 1, t = !1, i, n) { if (0 === this.length) return; const o = this.focus.get(), r = this.findPreviousIndex(o.length > 0 ? o[0] - e : 0, t, n); r > -1 && this.setFocus([r], i) } focusNextPage(e, t) { return x(this, void 0, void 0, (function*() { let i = this.view.indexAt(this.view.getScrollTop() + this.view.renderHeight); i = 0 === i ? 0 : i - 1; const n = this.view.element(i), o = this.getFocusedElements()[0]; if (o !== n) { const n = this.findPreviousIndex(i, !1, t); n > -1 && o !== this.view.element(n) ? this.setFocus([n], e) : this.setFocus([i], e) } else { const n = this.view.getScrollTop(); this.view.setScrollTop(n + this.view.renderHeight - this.view.elementHeight( i)), this.view.getScrollTop() !== n && (this.setFocus([]), yield(0, c.Vs)(0), yield this.focusNextPage(e, t)) } })) } focusPreviousPage(e, t) { return x(this, void 0, void 0, (function*() { let i; const n = this.view.getScrollTop(); i = 0 === n ? this.view.indexAt(n) : this.view.indexAfter(n - 1); const o = this.view.element(i), r = this.getFocusedElements()[0]; if (r !== o) { const n = this.findNextIndex(i, !1, t); n > -1 && r !== this.view.element(n) ? this.setFocus([n], e) : this.setFocus([i], e) } else { const i = n; this.view.setScrollTop(n - this.view.renderHeight), this.view.getScrollTop() !== i && (this.setFocus([]), yield(0, c.Vs)(0), yield this.focusPreviousPage( e, t)) } })) } focusLast(e, t) { if (0 === this.length) return; const i = this.findPreviousIndex(this.length - 1, !1, t); i > -1 && this.setFocus([i], e) } focusFirst(e, t) { this.focusNth(0, e, t) } focusNth(e, t, i) { if (0 === this.length) return; const n = this.findNextIndex(e, !1, i); n > -1 && this.setFocus([n], t) } findNextIndex(e, t = !1, i) { for (let n = 0; n < this.length; n++) { if (e >= this.length && !t) return -1; if (e %= this.length, !i || i(this.element(e))) return e; e++ } return -1 } findPreviousIndex(e, t = !1, i) { for (let n = 0; n < this.length; n++) { if (e < 0 && !t) return -1; if (e = (this.length + e % this.length) % this.length, !i || i(this.element( e))) return e; e-- } return -1 } getFocus() { return this.focus.get() } getFocusedElements() { return this.getFocus().map((e => this.view.element(e))) } reveal(e, t) { if (e < 0 || e >= this.length) throw new w(this.user, `Invalid index ${e}`); const i = this.view.getScrollTop(), n = this.view.elementTop(e), o = this.view.elementHeight(e); if ((0, v.hj)(t)) { const e = o - this.view.renderHeight; this.view.setScrollTop(e * (0, f.u)(t, 0, 1) + n) } else { const e = n + o, t = i + this.view.renderHeight; n < i && e >= t || (n < i || e >= t && o >= this.view.renderHeight ? this.view.setScrollTop(n) : e >= t && this.view.setScrollTop(e - this.view.renderHeight)) } } getRelativeTop(e) { if (e < 0 || e >= this.length) throw new w(this.user, `Invalid index ${e}`); const t = this.view.getScrollTop(), i = this.view.elementTop(e), n = this.view.elementHeight(e); if (i < t || i + n > t + this.view.renderHeight) return null; const o = n - this.view.renderHeight; return Math.abs((t - i) / o) } getHTMLElement() { return this.view.domNode } style(e) { this.styleController.style(e) } toListEvent({ indexes: e, browserEvent: t }) { return { indexes: e, elements: e.map((e => this.view.element(e))), browserEvent: t } } _onFocusChange() { const e = this.focus.get(); this.view.domNode.classList.toggle("element-focused", e.length > 0), this.onDidChangeActiveDescendant() } onDidChangeActiveDescendant() { var e; const t = this.focus.get(); if (t.length > 0) { let i; (null === (e = this.accessibilityProvider) || void 0 === e ? void 0 : e.getActiveDescendantId) && (i = this.accessibilityProvider.getActiveDescendantId( this.view.element(t[0]))), this.view.domNode.setAttribute( "aria-activedescendant", i || this.view.getElementDomId(t[0])) } else this.view.domNode.removeAttribute("aria-activedescendant") } _onSelectionChange() { const e = this.selection.get(); this.view.domNode.classList.toggle("selection-none", 0 === e.length), this.view.domNode.classList.toggle("selection-single", 1 === e.length), this.view.domNode.classList.toggle("selection-multiple", e.length > 1) } dispose() { this._onDidDispose.fire(), this.disposables.dispose(), this._onDidDispose .dispose() } } S([u.H], q.prototype, "onDidChangeFocus", null), S([u.H], q.prototype, "onDidChangeSelection", null), S([u.H], q.prototype, "onContextMenu", null), S([u.H], q.prototype, "onKeyDown", null), S([u.H], q.prototype, "onDidFocus", null) }, 1185: (e, t, i) => { "use strict"; i.d(t, { S: () => _ }); var n = i(3379), o = i.n(n), r = i(7795), s = i.n(r), a = i(569), l = i.n(a), d = i(3565), c = i.n(d), h = i(9216), u = i.n(h), g = i(4589), p = i.n(g), m = i(7548), f = {}; f.styleTagTransform = p(), f.setAttributes = c(), f.insert = l().bind( null, "head"), f.domAPI = s(), f.insertStyleElement = u(), o()(m.Z, f), m.Z && m.Z.locals && m.Z.locals; const _ = "monaco-mouse-cursor-text" }, 3841: (e, t, i) => { "use strict"; i.d(t, { l: () => k, g: () => M }); var n = i(5321), o = i(4850), r = i(553), s = i(5393), a = i(9898), l = i(4669), d = i(5976), c = i(1432), h = i(3379), u = i.n(h), g = i(7795), p = i.n(g), m = i(569), f = i.n(m), _ = i(3565), b = i.n(_), v = i(9216), w = i.n(v), C = i(4589), y = i.n(C), S = i(1629), x = {}; x.styleTagTransform = y(), x.setAttributes = b(), x.insert = f().bind( null, "head"), x.domAPI = p(), x.insertStyleElement = w(), u()(S.Z, x), S.Z && S.Z.locals && S.Z.locals; var k, L = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }; ! function(e) { e.North = "north", e.South = "south", e.East = "east", e.West = "west" }(k || (k = {})); const N = new l.Q5, D = new l.Q5; class E { constructor() { this.disposables = new d.SL } get onPointerMove() { return this.disposables.add(new o.Y(window, "mousemove")).event } get onPointerUp() { return this.disposables.add(new o.Y(window, "mouseup")).event } dispose() { this.disposables.dispose() } } L([a.H], E.prototype, "onPointerMove", null), L([a.H], E.prototype, "onPointerUp", null); class I { constructor(e) { this.el = e, this.disposables = new d.SL } get onPointerMove() { return this.disposables.add(new o.Y(this.el, r.t.Change)).event } get onPointerUp() { return this.disposables.add(new o.Y(this.el, r.t.End)).event } dispose() { this.disposables.dispose() } } L([a.H], I.prototype, "onPointerMove", null), L([a.H], I.prototype, "onPointerUp", null); class T { constructor(e) { this.factory = e } get onPointerMove() { return this.factory.onPointerMove } get onPointerUp() { return this.factory.onPointerUp } dispose() {} } L([a.H], T.prototype, "onPointerMove", null), L([a.H], T.prototype, "onPointerUp", null); class M extends d.JT { constructor(e, t, i) { super(), this.hoverDelay = 300, this.hoverDelayer = this._register( new s.vp(this.hoverDelay)), this._state = 3, this._onDidEnablementChange = this._register(new l.Q5), this.onDidEnablementChange = this._onDidEnablementChange .event, this._onDidStart = this._register(new l.Q5), this.onDidStart = this._onDidStart.event, this._onDidChange = this._register(new l.Q5), this.onDidChange = this._onDidChange.event, this._onDidReset = this._register( new l.Q5), this.onDidReset = this._onDidReset.event, this._onDidEnd = this._register(new l.Q5), this.onDidEnd = this._onDidEnd.event, this .linkedSash = void 0, this.orthogonalStartSashDisposables = this._register( new d.SL), this.orthogonalStartDragHandleDisposables = this._register( new d.SL), this.orthogonalEndSashDisposables = this._register(new d .SL), this.orthogonalEndDragHandleDisposables = this._register(new d .SL), this.el = (0, n.R3)(e, (0, n.$)(".monaco-sash")), i.orthogonalEdge && this.el.classList.add(`orthogonal-edge-${i.orthogonalEdge}`), c.dz && this.el.classList.add("mac"); const a = this._register(new o.Y(this.el, "mousedown")).event; this._register(a((e => this.onPointerStart(e, new E)), this)); const h = this._register(new o.Y(this.el, "dblclick")).event; this._register(h(this.onPointerDoublePress, this)); const u = this._register(new o.Y(this.el, "mouseenter")).event; this._register(u((() => M.onMouseEnter(this)))); const g = this._register(new o.Y(this.el, "mouseleave")).event; this._register(g((() => M.onMouseLeave(this)))), this._register(r.o.addTarget( this.el)); const p = l.ju.map(this._register(new o.Y(this.el, r.t.Start)).event, ( e => { var t; return Object.assign(Object.assign({}, e), { target: null !== (t = e.initialTarget) && void 0 !== t ? t : null }) })); this._register(p((e => this.onPointerStart(e, new I(this.el))), this)); const m = this._register(new o.Y(this.el, r.t.Tap)).event, f = l.ju.map(l.ju.filter(l.ju.debounce(m, ((e, t) => { var i; return { event: t, count: (null !== (i = null == e ? void 0 : e.count) && void 0 !== i ? i : 0) + 1 } }), 250), (({ count: e }) => 2 === e)), (({ event: e }) => { var t; return Object.assign(Object.assign({}, e), { target: null !== (t = e.initialTarget) && void 0 !== t ? t : null }) })); this._register(f(this.onPointerDoublePress, this)), "number" == typeof i.size ? (this.size = i.size, 0 === i.orientation ? this.el.style .width = `${this.size}px` : this.el.style.height = `${this.size}px` ) : (this.size = 4, this._register(N.event((e => { this.size = e, this.layout() })))), this._register(D.event((e => this.hoverDelay = e))), this.hidden = ! 1, this.layoutProvider = t, this.orthogonalStartSash = i.orthogonalStartSash, this.orthogonalEndSash = i.orthogonalEndSash, this.orientation = i.orientation || 0, 1 === this.orientation ? (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", !1), this.layout() } get state() { return this._state } set state(e) { this._state !== e && (this.el.classList.toggle("disabled", 0 === e), this.el.classList.toggle("minimum", 1 === e), this.el.classList.toggle( "maximum", 2 === e), this._state = e, this._onDidEnablementChange.fire( e)) } get orthogonalStartSash() { return this._orthogonalStartSash } set orthogonalStartSash(e) { if (this.orthogonalStartDragHandleDisposables.clear(), this.orthogonalStartSashDisposables .clear(), e) { const t = t => { this.orthogonalStartDragHandleDisposables.clear(), 0 !== t && ( this._orthogonalStartDragHandle = (0, n.R3)(this.el, (0, n.$)( ".orthogonal-drag-handle.start")), this.orthogonalStartDragHandleDisposables .add((0, d.OF)((() => this._orthogonalStartDragHandle.remove()))), this.orthogonalStartDragHandleDisposables.add(new o.Y(this._orthogonalStartDragHandle, "mouseenter")).event((() => M.onMouseEnter(e)), void 0, this.orthogonalStartDragHandleDisposables), this.orthogonalStartDragHandleDisposables.add(new o.Y(this._orthogonalStartDragHandle, "mouseleave")).event((() => M.onMouseLeave(e)), void 0, this.orthogonalStartDragHandleDisposables) ) }; this.orthogonalStartSashDisposables.add(e.onDidEnablementChange(t, this)), t(e.state) } this._orthogonalStartSash = e } get orthogonalEndSash() { return this._orthogonalEndSash } set orthogonalEndSash(e) { if (this.orthogonalEndDragHandleDisposables.clear(), this.orthogonalEndSashDisposables .clear(), e) { const t = t => { this.orthogonalEndDragHandleDisposables.clear(), 0 !== t && (this._orthogonalEndDragHandle = (0, n.R3)(this.el, (0, n.$)(".orthogonal-drag-handle.end")), this.orthogonalEndDragHandleDisposables.add((0, d.OF)((() => this._orthogonalEndDragHandle.remove()))), this.orthogonalEndDragHandleDisposables .add(new o.Y(this._orthogonalEndDragHandle, "mouseenter")).event( (() => M.onMouseEnter(e)), void 0, this.orthogonalEndDragHandleDisposables ), this.orthogonalEndDragHandleDisposables.add(new o.Y(this._orthogonalEndDragHandle, "mouseleave")).event((() => M.onMouseLeave(e)), void 0, this.orthogonalEndDragHandleDisposables) ) }; this.orthogonalEndSashDisposables.add(e.onDidEnablementChange(t, this)), t(e.state) } this._orthogonalEndSash = e } onPointerStart(e, t) { n.zB.stop(e); let i = !1; if (!e.__orthogonalSashEvent) { const n = this.getOrthogonalSash(e); n && (i = !0, e.__orthogonalSashEvent = !0, n.onPointerStart(e, new T( t))) } if (this.linkedSash && !e.__linkedSashEvent && (e.__linkedSashEvent = ! 0, this.linkedSash.onPointerStart(e, new T(t))), !this.state) return ; const o = (0, n.H$)("iframe"); for (const e of o) e.style.pointerEvents = "none"; const r = e.pageX, s = e.pageY, a = e.altKey, l = { startX: r, currentX: r, startY: s, currentY: s, altKey: a }; this.el.classList.add("active"), this._onDidStart.fire(l); const h = (0, n.dS)(this.el), u = () => { let e = ""; e = i ? "all-scroll" : 1 === this.orientation ? 1 === this.state ? "s-resize" : 2 === this.state ? "n-resize" : c.dz ? "row-resize" : "ns-resize" : 1 === this.state ? "e-resize" : 2 === this.state ? "w-resize" : c.dz ? "col-resize" : "ew-resize", h.textContent = `* { cursor: ${e} !important; }` }, g = new d.SL; u(), i || this.onDidEnablementChange(u, null, g), t.onPointerMove((e => { n.zB.stop(e, !1); const t = { startX: r, currentX: e.pageX, startY: s, currentY: e.pageY, altKey: a }; this._onDidChange.fire(t) }), null, g), t.onPointerUp((e => { n.zB.stop(e, !1), this.el.removeChild(h), this.el.classList.remove( "active"), this._onDidEnd.fire(), g.dispose(); for (const e of o) e.style.pointerEvents = "auto" }), null, g), g.add(t) } onPointerDoublePress(e) { const t = this.getOrthogonalSash(e); t && t._onDidReset.fire(), this.linkedSash && this.linkedSash._onDidReset .fire(), this._onDidReset.fire() } static onMouseEnter(e, t = !1) { e.el.classList.contains("active") ? (e.hoverDelayer.cancel(), e.el.classList .add("hover")) : e.hoverDelayer.trigger((() => e.el.classList.add( "hover")), e.hoverDelay).then(void 0, (() => {})), !t && e.linkedSash && M.onMouseEnter(e.linkedSash, !0) } static onMouseLeave(e, t = !1) { e.hoverDelayer.cancel(), e.el.classList.remove("hover"), !t && e.linkedSash && M.onMouseLeave(e.linkedSash, !0) } clearSashHoverState() { M.onMouseLeave(this) } layout() { if (0 === this.orientation) { const e = this.layoutProvider; this.el.style.left = e.getVerticalSashLeft(this) - this.size / 2 + "px", e.getVerticalSashTop && (this.el.style.top = e.getVerticalSashTop( this) + "px"), e.getVerticalSashHeight && (this.el.style.height = e.getVerticalSashHeight(this) + "px") } else { const e = this.layoutProvider; this.el.style.top = e.getHorizontalSashTop(this) - this.size / 2 + "px", e.getHorizontalSashLeft && (this.el.style.left = e.getHorizontalSashLeft( this) + "px"), e.getHorizontalSashWidth && (this.el.style.width = e.getHorizontalSashWidth(this) + "px") } } hide() { this.hidden = !0, this.el.style.display = "none", this.el.setAttribute( "aria-hidden", "true") } getOrthogonalSash(e) { if (e.target && e.target instanceof HTMLElement) return e.target.classList .contains("orthogonal-drag-handle") ? e.target.classList.contains( "start") ? this.orthogonalStartSash : this.orthogonalEndSash : void 0 } dispose() { super.dispose(), this.el.remove() } } }, 6781: (e, t, i) => { "use strict"; i.d(t, { s$: () => j, NB: () => H, $Z: () => U }); var n = i(6268), o = i(5321), r = i(8626), s = i(3938), a = i(7974), l = i(3794), d = i(5393); class c extends l.$ { constructor(e) { super(), this._onActivate = e.onActivate, this.bgDomNode = document.createElement( "div"), this.bgDomNode.className = "arrow-background", this.bgDomNode .style.position = "absolute", this.bgDomNode.style.width = e.bgWidth + "px", this.bgDomNode.style.height = e.bgHeight + "px", void 0 !== e.top && (this.bgDomNode.style.top = "0px"), void 0 !== e.left && (this.bgDomNode .style.left = "0px"), void 0 !== e.bottom && (this.bgDomNode.style.bottom = "0px"), void 0 !== e.right && (this.bgDomNode.style.right = "0px"), this.domNode = document.createElement("div"), this.domNode.className = e.className, this.domNode.classList.add(...e.icon.classNamesArray), this.domNode.style.position = "absolute", this.domNode.style.width = "11px", this.domNode.style.height = "11px", void 0 !== e.top && ( this.domNode.style.top = e.top + "px"), void 0 !== e.left && (this.domNode .style.left = e.left + "px"), void 0 !== e.bottom && (this.domNode.style .bottom = e.bottom + "px"), void 0 !== e.right && (this.domNode.style .right = e.right + "px"), this._mouseMoveMonitor = this._register( new a.Z), this.onmousedown(this.bgDomNode, (e => this._arrowMouseDown( e))), this.onmousedown(this.domNode, (e => this._arrowMouseDown(e))), this._mousedownRepeatTimer = this._register(new d.zh), this._mousedownScheduleRepeatTimer = this._register(new d._F) } _arrowMouseDown(e) { this._onActivate(), this._mousedownRepeatTimer.cancel(), this._mousedownScheduleRepeatTimer .cancelAndSet((() => { this._mousedownRepeatTimer.cancelAndSet((() => this._onActivate()), 1e3 / 24) }), 200), this._mouseMoveMonitor.startMonitoring(e.target, e.buttons, a.e, (e => {}), (() => { this._mousedownRepeatTimer.cancel(), this._mousedownScheduleRepeatTimer .cancel() })), e.preventDefault() } } var h = i(5976); class u extends h.JT { constructor(e, t, i) { super(), this._visibility = e, this._visibleClassName = t, this._invisibleClassName = i, this._domNode = null, this._isVisible = !1, this._isNeeded = !1, this._rawShouldBeVisible = !1, this._shouldBeVisible = !1, this._revealTimer = this._register(new d._F) } setVisibility(e) { this._visibility !== e && (this._visibility = e, this._updateShouldBeVisible()) } setShouldBeVisible(e) { this._rawShouldBeVisible = e, this._updateShouldBeVisible() } _applyVisibilitySetting() { return 2 !== this._visibility && (3 === this._visibility || this._rawShouldBeVisible) } _updateShouldBeVisible() { const e = this._applyVisibilitySetting(); this._shouldBeVisible !== e && (this._shouldBeVisible = e, this.ensureVisibility()) } setIsNeeded(e) { this._isNeeded !== e && (this._isNeeded = e, this.ensureVisibility()) } setDomNode(e) { this._domNode = e, this._domNode.setClassName(this._invisibleClassName), this.setShouldBeVisible(!1) } ensureVisibility() { this._isNeeded ? this._shouldBeVisible ? this._reveal() : this._hide(! 0) : this._hide(!1) } _reveal() { this._isVisible || (this._isVisible = !0, this._revealTimer.setIfNotSet( (() => { this._domNode && this._domNode.setClassName(this._visibleClassName) }), 0)) } _hide(e) { this._revealTimer.cancel(), this._isVisible && (this._isVisible = !1, this._domNode && this._domNode.setClassName(this._invisibleClassName + (e ? " fade" : ""))) } } var g = i(1432); class p extends l.$ { constructor(e) { super(), this._lazyRender = e.lazyRender, this._host = e.host, this._scrollable = e.scrollable, this._scrollByPage = e.scrollByPage, this._scrollbarState = e.scrollbarState, this._visibilityController = this._register(new u( e.visibility, "visible scrollbar " + e.extraScrollbarClassName, "invisible scrollbar " + e.extraScrollbarClassName)), this._visibilityController .setIsNeeded(this._scrollbarState.isNeeded()), this._mouseMoveMonitor = this._register(new a.Z), this._shouldRender = !0, this.domNode = (0, r.X)(document.createElement("div")), this.domNode.setAttribute( "role", "presentation"), this.domNode.setAttribute("aria-hidden", "true"), this._visibilityController.setDomNode(this.domNode), this.domNode .setPosition("absolute"), this.onmousedown(this.domNode.domNode, (e => this._domNodeMouseDown(e))) } _createArrow(e) { const t = this._register(new c(e)); this.domNode.domNode.appendChild(t.bgDomNode), this.domNode.domNode.appendChild( t.domNode) } _createSlider(e, t, i, n) { this.slider = (0, r.X)(document.createElement("div")), this.slider.setClassName( "slider"), this.slider.setPosition("absolute"), this.slider.setTop( e), this.slider.setLeft(t), "number" == typeof i && this.slider.setWidth( i), "number" == typeof n && this.slider.setHeight(n), this.slider.setLayerHinting(! 0), this.slider.setContain("strict"), this.domNode.domNode.appendChild( this.slider.domNode), this.onmousedown(this.slider.domNode, (e => { e.leftButton && (e.preventDefault(), this._sliderMouseDown(e, (() => {}))) })), this.onclick(this.slider.domNode, (e => { e.leftButton && e.stopPropagation() })) } _onElementSize(e) { return this._scrollbarState.setVisibleSize(e) && (this._visibilityController .setIsNeeded(this._scrollbarState.isNeeded()), this._shouldRender = ! 0, this._lazyRender || this.render()), this._shouldRender } _onElementScrollSize(e) { return this._scrollbarState.setScrollSize(e) && (this._visibilityController .setIsNeeded(this._scrollbarState.isNeeded()), this._shouldRender = ! 0, this._lazyRender || this.render()), this._shouldRender } _onElementScrollPosition(e) { return this._scrollbarState.setScrollPosition(e) && (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())) } _domNodeMouseDown(e) { e.target === this.domNode.domNode && this._onMouseDown(e) } delegateMouseDown(e) { const t = this.domNode.domNode.getClientRects()[0].top, i = t + this._scrollbarState.getSliderPosition(), n = t + this._scrollbarState.getSliderPosition() + this._scrollbarState .getSliderSize(), o = this._sliderMousePosition(e); i <= o && o <= n ? e.leftButton && (e.preventDefault(), this._sliderMouseDown( e, (() => {}))) : this._onMouseDown(e) } _onMouseDown(e) { let t, i; if (e.target === this.domNode.domNode && "number" == typeof e.browserEvent .offsetX && "number" == typeof e.browserEvent.offsetY) t = e.browserEvent .offsetX, i = e.browserEvent.offsetY; else { const n = o.i(this.domNode.domNode); t = e.posx - n.left, i = e.posy - n.top } const n = this._mouseDownRelativePosition(t, i); this._setDesiredScrollPositionNow(this._scrollByPage ? this._scrollbarState .getDesiredScrollPositionFromOffsetPaged(n) : this._scrollbarState.getDesiredScrollPositionFromOffset( n)), e.leftButton && (e.preventDefault(), this._sliderMouseDown(e, ( () => {}))) } _sliderMouseDown(e, t) { const i = this._sliderMousePosition(e), n = this._sliderOrthogonalMousePosition(e), o = this._scrollbarState.clone(); this.slider.toggleClassName("active", !0), this._mouseMoveMonitor.startMonitoring( e.target, e.buttons, a.e, (e => { const t = this._sliderOrthogonalMousePosition(e), r = Math.abs(t - n); if (g.ED && r > 140) return void this._setDesiredScrollPositionNow( o.getScrollPosition()); const s = this._sliderMousePosition(e) - i; this._setDesiredScrollPositionNow(o.getDesiredScrollPositionFromDelta( s)) }), (() => { this.slider.toggleClassName("active", !1), this._host.onDragEnd(), t() })), this._host.onDragStart() } _setDesiredScrollPositionNow(e) { const t = {}; this.writeScrollPosition(t, e), this._scrollable.setScrollPositionNow( t) } updateScrollbarSize(e) { this._updateScrollbarSize(e), this._scrollbarState.setScrollbarSize(e), this._shouldRender = !0, this._lazyRender || this.render() } isNeeded() { return this._scrollbarState.isNeeded() } } class m { constructor(e, t, i, n, o, r) { this._scrollbarSize = Math.round(t), this._oppositeScrollbarSize = Math.round(i), this._arrowSize = Math.round(e), this._visibleSize = n, this._scrollSize = o, this._scrollPosition = r, this._computedAvailableSize = 0, this._computedIsNeeded = !1, this._computedSliderSize = 0, this._computedSliderRatio = 0, this._computedSliderPosition = 0, this._refreshComputedValues() } clone() { return new m(this._arrowSize, this._scrollbarSize, this._oppositeScrollbarSize, this._visibleSize, this._scrollSize, this._scrollPosition) } setVisibleSize(e) { const t = Math.round(e); return this._visibleSize !== t && (this._visibleSize = t, this._refreshComputedValues(), ! 0) } setScrollSize(e) { const t = Math.round(e); return this._scrollSize !== t && (this._scrollSize = t, this._refreshComputedValues(), ! 0) } setScrollPosition(e) { const t = Math.round(e); return this._scrollPosition !== t && (this._scrollPosition = t, this._refreshComputedValues(), ! 0) } setScrollbarSize(e) { this._scrollbarSize = Math.round(e) } setOppositeScrollbarSize(e) { this._oppositeScrollbarSize = Math.round(e) } static _computeValues(e, t, i, n, o) { const r = Math.max(0, i - e), s = Math.max(0, r - 2 * t), a = n > 0 && n > i; if (!a) return { computedAvailableSize: Math.round(r), computedIsNeeded: a, computedSliderSize: Math.round(s), computedSliderRatio: 0, computedSliderPosition: 0 }; const l = Math.round(Math.max(20, Math.floor(i * s / n))), d = (s - l) / (n - i), c = o * d; return { computedAvailableSize: Math.round(r), computedIsNeeded: a, computedSliderSize: Math.round(l), computedSliderRatio: d, computedSliderPosition: Math.round(c) } } _refreshComputedValues() { const e = m._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 t = e - this._arrowSize - this._computedSliderSize / 2; return Math.round(t / this._computedSliderRatio) } getDesiredScrollPositionFromOffsetPaged(e) { if (!this._computedIsNeeded) return 0; const t = e - this._arrowSize; let i = this._scrollPosition; return t < this._computedSliderPosition ? i -= this._visibleSize : i += this._visibleSize, i } getDesiredScrollPositionFromDelta(e) { if (!this._computedIsNeeded) return 0; const t = this._computedSliderPosition + e; return Math.round(t / this._computedSliderRatio) } } var f = i(3046); const _ = (0, f.CM)("scrollbar-button-left", f.lA.triangleLeft), b = (0, f.CM)("scrollbar-button-right", f.lA.triangleRight); class v extends p { constructor(e, t, i) { const n = e.getScrollDimensions(), o = e.getCurrentScrollPosition(); if (super({ lazyRender: t.lazyRender, host: i, scrollbarState: new m(t.horizontalHasArrows ? t.arrowSize : 0, 2 === t.horizontal ? 0 : t.horizontalScrollbarSize, 2 === t.vertical ? 0 : t.verticalScrollbarSize, n.width, n.scrollWidth, o.scrollLeft ), visibility: t.horizontal, extraScrollbarClassName: "horizontal", scrollable: e, scrollByPage: t.scrollByPage }), t.horizontalHasArrows) { const e = (t.arrowSize - 11) / 2, i = (t.horizontalScrollbarSize - 11) / 2; this._createArrow({ className: "scra", icon: _, top: i, left: e, bottom: void 0, right: void 0, bgWidth: t.arrowSize, bgHeight: t.horizontalScrollbarSize, onActivate: () => this._host.onMouseWheel(new s.q(null, 1, 0)) }), this._createArrow({ className: "scra", icon: b, top: i, left: void 0, bottom: void 0, right: e, bgWidth: t.arrowSize, bgHeight: t.horizontalScrollbarSize, onActivate: () => this._host.onMouseWheel(new s.q(null, -1, 0)) }) } this._createSlider(Math.floor((t.horizontalScrollbarSize - t.horizontalSliderSize) / 2), 0, void 0, t.horizontalSliderSize) } _updateSlider(e, t) { this.slider.setWidth(e), this.slider.setLeft(t) } _renderDomNode(e, t) { this.domNode.setWidth(e), this.domNode.setHeight(t), this.domNode.setLeft( 0), this.domNode.setBottom(0) } onDidScroll(e) { return this._shouldRender = this._onElementScrollSize(e.scrollWidth) || this._shouldRender, this._shouldRender = this._onElementScrollPosition( e.scrollLeft) || this._shouldRender, this._shouldRender = this._onElementSize( e.width) || this._shouldRender, this._shouldRender } _mouseDownRelativePosition(e, t) { return e } _sliderMousePosition(e) { return e.posx } _sliderOrthogonalMousePosition(e) { return e.posy } _updateScrollbarSize(e) { this.slider.setHeight(e) } writeScrollPosition(e, t) { e.scrollLeft = t } updateOptions(e) { this.updateScrollbarSize(2 === e.horizontal ? 0 : e.horizontalScrollbarSize), this._scrollbarState.setOppositeScrollbarSize(2 === e.vertical ? 0 : e.verticalScrollbarSize), this._visibilityController.setVisibility(e .horizontal), this._scrollByPage = e.scrollByPage } } const w = (0, f.CM)("scrollbar-button-up", f.lA.triangleUp), C = (0, f.CM)("scrollbar-button-down", f.lA.triangleDown); class y extends p { constructor(e, t, i) { const n = e.getScrollDimensions(), o = e.getCurrentScrollPosition(); if (super({ lazyRender: t.lazyRender, host: i, scrollbarState: new m(t.verticalHasArrows ? t.arrowSize : 0, 2 === t.vertical ? 0 : t.verticalScrollbarSize, 0, n.height, n.scrollHeight, o.scrollTop), visibility: t.vertical, extraScrollbarClassName: "vertical", scrollable: e, scrollByPage: t.scrollByPage }), t.verticalHasArrows) { const e = (t.arrowSize - 11) / 2, i = (t.verticalScrollbarSize - 11) / 2; this._createArrow({ className: "scra", icon: w, top: e, left: i, bottom: void 0, right: void 0, bgWidth: t.verticalScrollbarSize, bgHeight: t.arrowSize, onActivate: () => this._host.onMouseWheel(new s.q(null, 0, 1)) }), this._createArrow({ className: "scra", icon: C, top: void 0, left: i, bottom: e, right: void 0, bgWidth: t.verticalScrollbarSize, bgHeight: t.arrowSize, onActivate: () => this._host.onMouseWheel(new s.q(null, 0, -1)) }) } this._createSlider(0, Math.floor((t.verticalScrollbarSize - t.verticalSliderSize) / 2), t.verticalSliderSize, void 0) } _updateSlider(e, t) { this.slider.setHeight(e), this.slider.setTop(t) } _renderDomNode(e, t) { this.domNode.setWidth(t), this.domNode.setHeight(e), this.domNode.setRight( 0), this.domNode.setTop(0) } onDidScroll(e) { return this._shouldRender = this._onElementScrollSize(e.scrollHeight) || this._shouldRender, this._shouldRender = this._onElementScrollPosition( e.scrollTop) || this._shouldRender, this._shouldRender = this._onElementSize( e.height) || this._shouldRender, this._shouldRender } _mouseDownRelativePosition(e, t) { return t } _sliderMousePosition(e) { return e.posy } _sliderOrthogonalMousePosition(e) { return e.posx } _updateScrollbarSize(e) { this.slider.setWidth(e) } writeScrollPosition(e, t) { e.scrollTop = t } updateOptions(e) { this.updateScrollbarSize(2 === e.vertical ? 0 : e.verticalScrollbarSize), this._scrollbarState.setOppositeScrollbarSize(0), this._visibilityController .setVisibility(e.vertical), this._scrollByPage = e.scrollByPage } } var S = i(4669), x = i(6633), k = i(3379), L = i.n(k), N = i(7795), D = i.n(N), E = i(569), I = i.n(E), T = i(3565), M = i.n(T), A = i(9216), R = i.n(A), O = i(4589), P = i.n(O), F = i(7198), B = {}; B.styleTagTransform = P(), B.setAttributes = M(), B.insert = I().bind( null, "head"), B.domAPI = D(), B.insertStyleElement = R(), L()(F.Z, B), F.Z && F.Z.locals && F.Z.locals; class W { constructor(e, t, i) { this.timestamp = e, this.deltaX = t, this.deltaY = i, this.score = 0 } } class z { constructor() { this._capacity = 5, this._memory = [], this._front = -1, this._rear = - 1 } isPhysicalMouseWheel() { if (-1 === this._front && -1 === this._rear) return !1; let e = 1, t = 0, i = 1, n = this._rear; for (;;) { const o = n === this._front ? e : Math.pow(2, -i); if (e -= o, t += this._memory[n].score * o, n === this._front) break; n = (this._capacity + n - 1) % this._capacity, i++ } return t <= .5 } accept(e, t, i) { const n = new W(e, t, i); n.score = this._computeScore(n), -1 === this._front && -1 === this._rear ? (this._memory[0] = n, this._front = 0, this._rear = 0) : (this._rear = (this._rear + 1) % this._capacity, this._rear === this._front && ( this._front = (this._front + 1) % this._capacity), this._memory[ this._rear] = n) } _computeScore(e) { if (Math.abs(e.deltaX) > 0 && Math.abs(e.deltaY) > 0) return 1; let t = .5; return -1 === this._front && -1 === this._rear || this._memory[this._rear], this._isAlmostInt(e.deltaX) && this._isAlmostInt(e.deltaY) || (t += .25), Math.min(Math.max(t, 0), 1) } _isAlmostInt(e) { return Math.abs(Math.round(e) - e) < .01 } } z.INSTANCE = new z; class V extends l.$ { constructor(e, t, i) { super(), this._onScroll = this._register(new S.Q5), this.onScroll = this._onScroll.event, this._onWillScroll = this._register(new S.Q5), e.style.overflow = "hidden", this._options = function(e) { const t = { lazyRender: void 0 !== e.lazyRender && e.lazyRender, className: void 0 !== e.className ? e.className : "", useShadows: void 0 === e.useShadows || e.useShadows, handleMouseWheel: void 0 === e.handleMouseWheel || e.handleMouseWheel, flipAxes: void 0 !== e.flipAxes && e.flipAxes, consumeMouseWheelIfScrollbarIsNeeded: void 0 !== e.consumeMouseWheelIfScrollbarIsNeeded && e.consumeMouseWheelIfScrollbarIsNeeded, alwaysConsumeMouseWheel: void 0 !== e.alwaysConsumeMouseWheel && e.alwaysConsumeMouseWheel, scrollYToX: void 0 !== e.scrollYToX && e.scrollYToX, mouseWheelScrollSensitivity: void 0 !== e.mouseWheelScrollSensitivity ? e.mouseWheelScrollSensitivity : 1, fastScrollSensitivity: void 0 !== e.fastScrollSensitivity ? e.fastScrollSensitivity : 5, scrollPredominantAxis: void 0 === e.scrollPredominantAxis || e.scrollPredominantAxis, mouseWheelSmoothScroll: void 0 === e.mouseWheelSmoothScroll || e.mouseWheelSmoothScroll, arrowSize: void 0 !== e.arrowSize ? e.arrowSize : 11, listenOnDomNode: void 0 !== e.listenOnDomNode ? e.listenOnDomNode : null, horizontal: void 0 !== e.horizontal ? e.horizontal : 1, horizontalScrollbarSize: void 0 !== e.horizontalScrollbarSize ? e .horizontalScrollbarSize : 10, horizontalSliderSize: void 0 !== e.horizontalSliderSize ? e.horizontalSliderSize : 0, horizontalHasArrows: void 0 !== e.horizontalHasArrows && e.horizontalHasArrows, vertical: void 0 !== e.vertical ? e.vertical : 1, verticalScrollbarSize: void 0 !== e.verticalScrollbarSize ? e.verticalScrollbarSize : 10, verticalHasArrows: void 0 !== e.verticalHasArrows && e.verticalHasArrows, verticalSliderSize: void 0 !== e.verticalSliderSize ? e.verticalSliderSize : 0, scrollByPage: void 0 !== e.scrollByPage && e.scrollByPage }; return t.horizontalSliderSize = void 0 !== e.horizontalSliderSize ? e.horizontalSliderSize : t.horizontalScrollbarSize, t.verticalSliderSize = void 0 !== e.verticalSliderSize ? e.verticalSliderSize : t.verticalScrollbarSize, g.dz && (t.className += " mac"), t }(t), this._scrollable = i, this._register(this._scrollable.onScroll( (e => { this._onWillScroll.fire(e), this._onDidScroll(e), this._onScroll .fire(e) }))); const n = { onMouseWheel: e => this._onMouseWheel(e), onDragStart: () => this._onDragStart(), onDragEnd: () => this._onDragEnd() }; this._verticalScrollbar = this._register(new y(this._scrollable, this ._options, n)), this._horizontalScrollbar = this._register(new v( this._scrollable, this._options, n)), 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(e), this._domNode .appendChild(this._horizontalScrollbar.domNode.domNode), this._domNode .appendChild(this._verticalScrollbar.domNode.domNode), this._options .useShadows ? (this._leftShadowDomNode = (0, r.X)(document.createElement( "div")), this._leftShadowDomNode.setClassName("shadow"), this._domNode .appendChild(this._leftShadowDomNode.domNode), this._topShadowDomNode = (0, r.X)(document.createElement("div")), this._topShadowDomNode.setClassName( "shadow"), this._domNode.appendChild(this._topShadowDomNode.domNode), this._topLeftShadowDomNode = (0, r.X)(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, ( e => this._onMouseOver(e))), this.onnonbubblingmouseout(this._listenOnDomNode, ( e => this._onMouseOut(e))), this._hideTimeout = this._register(new d ._F), this._isDragging = !1, this._mouseIsOver = !1, this._shouldRender = ! 0, this._revealOnScroll = !0 } dispose() { this._mouseWheelToDispose = (0, h.B9)(this._mouseWheelToDispose), super.dispose() } getDomNode() { return this._domNode } getOverviewRulerLayoutInfo() { return { parent: this._domNode, insertBefore: this._verticalScrollbar.domNode.domNode } } delegateVerticalScrollbarMouseDown(e) { this._verticalScrollbar.delegateMouseDown(e) } getScrollDimensions() { return this._scrollable.getScrollDimensions() } setScrollDimensions(e) { this._scrollable.setScrollDimensions(e, !1) } updateClassName(e) { this._options.className = e, g.dz && (this._options.className += " mac"), this._domNode.className = "monaco-scrollable-element " + this._options.className } updateOptions(e) { void 0 !== e.handleMouseWheel && (this._options.handleMouseWheel = e.handleMouseWheel, this._setListeningToMouseWheel(this._options.handleMouseWheel)), void 0 !== e.mouseWheelScrollSensitivity && (this._options.mouseWheelScrollSensitivity = e.mouseWheelScrollSensitivity), void 0 !== e.fastScrollSensitivity && (this._options.fastScrollSensitivity = e.fastScrollSensitivity), void 0 !== e.scrollPredominantAxis && (this._options.scrollPredominantAxis = e.scrollPredominantAxis), void 0 !== e.horizontal && (this._options .horizontal = e.horizontal), void 0 !== e.vertical && (this._options .vertical = e.vertical), void 0 !== e.horizontalScrollbarSize && ( this._options.horizontalScrollbarSize = e.horizontalScrollbarSize), void 0 !== e.verticalScrollbarSize && (this._options.verticalScrollbarSize = e.verticalScrollbarSize), void 0 !== e.scrollByPage && (this._options .scrollByPage = e.scrollByPage), this._horizontalScrollbar.updateOptions( this._options), this._verticalScrollbar.updateOptions(this._options), this._options.lazyRender || this._render() } _setListeningToMouseWheel(e) { if (this._mouseWheelToDispose.length > 0 !== e && (this._mouseWheelToDispose = (0, h.B9)(this._mouseWheelToDispose), e)) { const e = e => { this._onMouseWheel(new s.q(e)) }; this._mouseWheelToDispose.push(o.nm(this._listenOnDomNode, o.tw.MOUSE_WHEEL, e, { passive: !1 })) } } _onMouseWheel(e) { const t = z.INSTANCE; { const i = window.devicePixelRatio / (0, n.ie)(); g.ED || g.IJ ? t.accept(Date.now(), e.deltaX / i, e.deltaY / i) : t.accept( Date.now(), e.deltaX, e.deltaY) } let i = !1; if (e.deltaY || e.deltaX) { let n = e.deltaY * this._options.mouseWheelScrollSensitivity, o = e.deltaX * this._options.mouseWheelScrollSensitivity; this._options.scrollPredominantAxis && (Math.abs(n) >= Math.abs(o) ? o = 0 : n = 0), this._options.flipAxes && ([n, o] = [o, n]); const r = !g.dz && e.browserEvent && e.browserEvent.shiftKey; !this._options.scrollYToX && !r || o || (o = n, n = 0), e.browserEvent && e.browserEvent.altKey && (o *= this._options.fastScrollSensitivity, n *= this._options.fastScrollSensitivity); const s = this._scrollable.getFutureScrollPosition(); let a = {}; if (n) { const e = 50 * n, t = s.scrollTop - (e < 0 ? Math.floor(e) : Math.ceil(e)); this._verticalScrollbar.writeScrollPosition(a, t) } if (o) { const e = 50 * o, t = s.scrollLeft - (e < 0 ? Math.floor(e) : Math.ceil(e)); this._horizontalScrollbar.writeScrollPosition(a, t) } a = this._scrollable.validateScrollPosition(a), (s.scrollLeft !== a.scrollLeft || s.scrollTop !== a.scrollTop) && (this._options.mouseWheelSmoothScroll && t.isPhysicalMouseWheel() ? this._scrollable.setScrollPositionSmooth( a) : this._scrollable.setScrollPositionNow(a), i = !0) } let o = i; !o && this._options.alwaysConsumeMouseWheel && (o = !0), !o && this._options .consumeMouseWheelIfScrollbarIsNeeded && (this._verticalScrollbar.isNeeded() || this._horizontalScrollbar.isNeeded()) && (o = !0), o && (e.preventDefault(), e.stopPropagation()) } _onDidScroll(e) { this._shouldRender = this._horizontalScrollbar.onDidScroll(e) || this ._shouldRender, this._shouldRender = this._verticalScrollbar.onDidScroll( e) || 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 e = this._scrollable.getCurrentScrollPosition(), t = e.scrollTop > 0, i = e.scrollLeft > 0, n = i ? " left" : "", o = t ? " top" : "", r = i || t ? " top-left-corner" : ""; this._leftShadowDomNode.setClassName(`shadow${n}`), this._topShadowDomNode .setClassName(`shadow${o}`), this._topLeftShadowDomNode.setClassName( `shadow${r}${o}${n}`) } } _onDragStart() { this._isDragging = !0, this._reveal() } _onDragEnd() { this._isDragging = !1, this._hide() } _onMouseOut(e) { this._mouseIsOver = !1, this._hide() } _onMouseOver(e) { 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()), 500) } } class H extends V { constructor(e, t) { (t = t || {}).mouseWheelSmoothScroll = !1; const i = new x.Rm(0, (e => o.jL(e))); super(e, t, i), this._register(i) } setScrollPosition(e) { this._scrollable.setScrollPositionNow(e) } getScrollPosition() { return this._scrollable.getCurrentScrollPosition() } } class U extends V { constructor(e, t, i) { super(e, t, i) } setScrollPosition(e) { e.reuseAnimation ? this._scrollable.setScrollPositionSmooth(e, e.reuseAnimation) : this._scrollable.setScrollPositionNow(e) } getScrollPosition() { return this._scrollable.getCurrentScrollPosition() } } class j extends H { constructor(e, t) { super(e, t), this._element = e, this.onScroll((e => { e.scrollTopChanged && (this._element.scrollTop = e.scrollTop), e.scrollLeftChanged && (this._element.scrollLeft = e.scrollLeft) })), this.scanDomNode() } 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 }) } } }, 9782: (e, t, i) => { "use strict"; i.d(t, { M: () => M, z: () => A }); var n = i(5321), o = i(3841), r = i(6781), s = i(9488), a = i(1264), l = i(4669), d = i(5976), c = i(9870), h = i(6633), u = i(8401), g = i(3379), p = i.n(g), m = i(7795), f = i.n(m), _ = i(569), b = i.n(_), v = i(3565), w = i.n(v), C = i(9216), y = i.n(C), S = i(4589), x = i.n(S), k = i(2470), L = {}; L.styleTagTransform = x(), L.setAttributes = w(), L.insert = b().bind( null, "head"), L.domAPI = f(), L.insertStyleElement = y(), p()(k.Z, L), k.Z && k.Z.locals && k.Z.locals; const N = { separatorBorder: a.Il.transparent }; class D { constructor(e, t, i, n) { this.container = e, this.view = t, this.disposable = n, this._cachedVisibleSize = void 0, "number" == typeof i ? (this._size = i, this._cachedVisibleSize = void 0, e.classList.add("visible")) : (this._size = 0, this._cachedVisibleSize = i.cachedVisibleSize) } set size(e) { this._size = e } get size() { return this._size } get visible() { return void 0 === this._cachedVisibleSize } setVisible(e, t) { e !== this.visible && (e ? (this.size = (0, c.u)(this._cachedVisibleSize, this.viewMinimumSize, this.viewMaximumSize), this._cachedVisibleSize = void 0) : (this._cachedVisibleSize = "number" == typeof t ? t : this.size, this.size = 0), this.container.classList.toggle( "visible", e), this.view.setVisible && this.view.setVisible(e)) } 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 snap() { return !!this.view.snap } set enabled(e) { this.container.style.pointerEvents = e ? "" : "none" } layout(e, t) { this.layoutContainer(e), this.view.layout(this.size, e, t) } dispose() { return this.disposable.dispose(), this.view } } class E extends D { layoutContainer(e) { this.container.style.top = `${e}px`, this.container.style.height = `${this.size}px` } } class I extends D { layoutContainer(e) { this.container.style.left = `${e}px`, this.container.style.width = `${this.size}px` } } var T, M; ! function(e) { e[e.Idle = 0] = "Idle", e[e.Busy = 1] = "Busy" }(T || (T = {})), function(e) { e.Distribute = { type: "distribute" }, e.Split = function(e) { return { type: "split", index: e } }, e.Invisible = function(e) { return { type: "invisible", cachedVisibleSize: e } } }(M || (M = {})); class A extends d.JT { constructor(e, t = {}) { var i, o; super(), this.size = 0, this.contentSize = 0, this.proportions = void 0, this.viewItems = [], this.sashItems = [], this.state = T.Idle, this._onDidSashChange = this._register(new l.Q5), this.onDidSashChange = this._onDidSashChange .event, this._onDidSashReset = this._register(new l.Q5), this._startSnappingEnabled = ! 0, this._endSnappingEnabled = !0, this.orientation = u.o8(t.orientation) ? 0 : t.orientation, this.inverseAltBehavior = !!t.inverseAltBehavior, this.proportionalLayout = !!u.o8(t.proportionalLayout) || !!t.proportionalLayout, this.getSashOrthogonalSize = t.getSashOrthogonalSize, this.el = document.createElement("div"), this.el.classList.add( "monaco-split-view2"), this.el.classList.add(0 === this.orientation ? "vertical" : "horizontal"), e.appendChild(this.el), this.sashContainer = (0, n.R3)(this.el, (0, n.$)(".sash-container")), this.viewContainer = (0, n.$)(".split-view-container"), this.scrollable = new h.Rm(125, n .jL), this.scrollableElement = this._register(new r.$Z(this.viewContainer, { vertical: 0 === this.orientation ? null !== (i = t.scrollbarVisibility) && void 0 !== i ? i : 1 : 2, horizontal: 1 === this.orientation ? null !== (o = t.scrollbarVisibility) && void 0 !== o ? o : 1 : 2 }, this.scrollable)), this.onDidScroll = this.scrollableElement.onScroll, this._register(this.onDidScroll((e => { this.viewContainer.scrollTop = e.scrollTop, this.viewContainer.scrollLeft = e.scrollLeft }))), (0, n.R3)(this.el, this.scrollableElement.getDomNode()), this.style( t.styles || N), t.descriptor && (this.size = t.descriptor.size, t.descriptor .views.forEach(((e, t) => { const i = u.o8(e.visible) || e.visible ? e.size : { type: "invisible", cachedVisibleSize: e.size }, n = e.view; this.doAddView(n, i, t, !0) })), this.contentSize = this.viewItems.reduce(((e, t) => e + t.size), 0), this.saveProportions()) } get orthogonalStartSash() { return this._orthogonalStartSash } set orthogonalStartSash(e) { for (const t of this.sashItems) t.sash.orthogonalStartSash = e; this._orthogonalStartSash = e } get orthogonalEndSash() { return this._orthogonalEndSash } set orthogonalEndSash(e) { for (const t of this.sashItems) t.sash.orthogonalEndSash = e; this._orthogonalEndSash = e } get startSnappingEnabled() { return this._startSnappingEnabled } set startSnappingEnabled(e) { this._startSnappingEnabled !== e && (this._startSnappingEnabled = e, this.updateSashEnablement()) } get endSnappingEnabled() { return this._endSnappingEnabled } set endSnappingEnabled(e) { this._endSnappingEnabled !== e && (this._endSnappingEnabled = e, this .updateSashEnablement()) } style(e) { e.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", e.separatorBorder.toString()) ) } addView(e, t, i = this.viewItems.length, n) { this.doAddView(e, t, i, n) } layout(e, t) { const i = Math.max(this.size, this.contentSize); if (this.size = e, this.layoutContext = t, this.proportions) for (let t = 0; t < this.viewItems.length; t++) { const i = this.viewItems[t]; i.size = (0, c.u)(Math.round(this.proportions[t] * e), i.minimumSize, i.maximumSize) } else { const t = (0, s.w6)(this.viewItems.length), n = t.filter((e => 1 === this.viewItems[e].priority)), o = t.filter((e => 2 === this.viewItems[e].priority)); this.resize(this.viewItems.length - 1, e - i, void 0, n, o) } this.distributeEmptySpace(), this.layoutViews() } saveProportions() { this.proportionalLayout && this.contentSize > 0 && (this.proportions = this.viewItems.map((e => e.size / this.contentSize))) } onSashStart({ sash: e, start: t, alt: i }) { for (const e of this.viewItems) e.enabled = !1; const o = this.sashItems.findIndex((t => t.sash === e)), r = (0, d.F8)((0, n.nm)(document.body, "keydown", (e => a(this.sashDragState .current, e.altKey))), (0, n.nm)(document.body, "keyup", (() => a( this.sashDragState.current, !1)))), a = (e, t) => { const i = this.viewItems.map((e => e.size)); let n, a, l = Number.NEGATIVE_INFINITY, d = Number.POSITIVE_INFINITY; if (this.inverseAltBehavior && (t = !t), t) if (o === this.sashItems.length - 1) { const e = this.viewItems[o]; l = (e.minimumSize - e.size) / 2, d = (e.maximumSize - e.size) / 2 } else { const e = this.viewItems[o + 1]; l = (e.size - e.maximumSize) / 2, d = (e.size - e.minimumSize) / 2 } if (!t) { const e = (0, s.w6)(o, -1), t = (0, s.w6)(o + 1, this.viewItems.length), r = e.reduce(((e, t) => e + (this.viewItems[t].minimumSize - i[t])), 0), l = e.reduce(((e, t) => e + (this.viewItems[t].viewMaximumSize - i[t])), 0), d = 0 === t.length ? Number.POSITIVE_INFINITY : t.reduce(((e, t) => e + (i[t] - this.viewItems[t].minimumSize)), 0), c = 0 === t.length ? Number.NEGATIVE_INFINITY : t.reduce(((e, t) => e + (i[t] - this.viewItems[t].viewMaximumSize)), 0), h = Math.max(r, c), u = Math.min(d, l), g = this.findFirstSnapIndex(e), p = this.findFirstSnapIndex(t); if ("number" == typeof g) { const e = this.viewItems[g], t = Math.floor(e.viewMinimumSize / 2); n = { index: g, limitDelta: e.visible ? h - t : h + t, size: e.size } } if ("number" == typeof p) { const e = this.viewItems[p], t = Math.floor(e.viewMinimumSize / 2); a = { index: p, limitDelta: e.visible ? u + t : u - t, size: e.size } } } this.sashDragState = { start: e, current: e, index: o, sizes: i, minDelta: l, maxDelta: d, alt: t, snapBefore: n, snapAfter: a, disposable: r } }; a(t, i) } onSashChange({ current: e }) { const { index: t, start: i, sizes: n, alt: o, minDelta: r, maxDelta: s, snapBefore: a, snapAfter: l } = this.sashDragState; this.sashDragState.current = e; const d = e - i, c = this.resize(t, d, n, void 0, void 0, r, s, a, l); if (o) { const e = t === this.sashItems.length - 1, i = this.viewItems.map((e => e.size)), n = e ? t : t + 1, o = this.viewItems[n], r = o.size - o.maximumSize, s = o.size - o.minimumSize, a = e ? t - 1 : t + 1; this.resize(a, -c, i, void 0, void 0, r, s) } this.distributeEmptySpace(), this.layoutViews() } onSashEnd(e) { this._onDidSashChange.fire(e), this.sashDragState.disposable.dispose(), this.saveProportions(); for (const e of this.viewItems) e.enabled = !0 } onViewChange(e, t) { const i = this.viewItems.indexOf(e); i < 0 || i >= this.viewItems.length || (t = "number" == typeof t ? t : e.size, t = (0, c.u)(t, e.minimumSize, e.maximumSize), this.inverseAltBehavior && i > 0 ? (this.resize(i - 1, Math.floor((e.size - t) / 2)), this.distributeEmptySpace(), this.layoutViews()) : (e.size = t, this.relayout([i], void 0))) } resizeView(e, t) { if (this.state !== T.Idle) throw new Error("Cant modify splitview"); if (this.state = T.Busy, e < 0 || e >= this.viewItems.length) return; const i = (0, s.w6)(this.viewItems.length).filter((t => t !== e)), n = [...i.filter((e => 1 === this.viewItems[e].priority)), e], o = i.filter((e => 2 === this.viewItems[e].priority)), r = this.viewItems[e]; t = Math.round(t), t = (0, c.u)(t, r.minimumSize, Math.min(r.maximumSize, this.size)), r.size = t, this.relayout(n, o), this.state = T.Idle } distributeViewSizes() { const e = []; let t = 0; for (const i of this.viewItems) i.maximumSize - i.minimumSize > 0 && (e.push(i), t += i.size); const i = Math.floor(t / e.length); for (const t of e) t.size = (0, c.u)(i, t.minimumSize, t.maximumSize); const n = (0, s.w6)(this.viewItems.length), o = n.filter((e => 1 === this.viewItems[e].priority)), r = n.filter((e => 2 === this.viewItems[e].priority)); this.relayout(o, r) } getViewSize(e) { return e < 0 || e >= this.viewItems.length ? -1 : this.viewItems[e].size } doAddView(e, t, i = this.viewItems.length, r) { if (this.state !== T.Idle) throw new Error("Cant modify splitview"); this.state = T.Busy; const a = (0, n.$)(".split-view-view"); i === this.viewItems.length ? this.viewContainer.appendChild(a) : this.viewContainer.insertBefore(a, this.viewContainer.children.item( i)); const c = e.onDidChange((e => this.onViewChange(p, e))), h = (0, d.OF)((() => this.viewContainer.removeChild(a))), u = (0, d.F8)(c, h); let g; g = "number" == typeof t ? t : "split" === t.type ? this.getViewSize( t.index) / 2 : "invisible" === t.type ? { cachedVisibleSize: t.cachedVisibleSize } : e.minimumSize; const p = 0 === this.orientation ? new E(a, e, g, u) : new I(a, e, g, u); if (this.viewItems.splice(i, 0, p), this.viewItems.length > 1) { let e = { orthogonalStartSash: this.orthogonalStartSash, orthogonalEndSash: this.orthogonalEndSash }; const t = 0 === this.orientation ? new o.g(this.sashContainer, { getHorizontalSashTop: e => this.getSashPosition(e), getHorizontalSashWidth: this.getSashOrthogonalSize }, Object.assign(Object.assign({}, e), { orientation: 1 })) : new o.g(this.sashContainer, { getVerticalSashLeft: e => this.getSashPosition(e), getVerticalSashHeight: this.getSashOrthogonalSize }, Object.assign(Object.assign({}, e), { orientation: 0 })), n = 0 === this.orientation ? e => ({ sash: t, start: e.startY, current: e.currentY, alt: e.altKey }) : e => ({ sash: t, start: e.startX, current: e.currentX, alt: e.altKey }), r = l.ju.map(t.onDidStart, n)(this.onSashStart, this), a = l.ju.map(t.onDidChange, n)(this.onSashChange, this), c = l.ju.map(t.onDidEnd, (() => this.sashItems.findIndex((e => e.sash === t)))), h = c(this.onSashEnd, this), u = t.onDidReset((() => { const e = this.sashItems.findIndex((e => e.sash === t)), i = (0, s.w6)(e, -1), n = (0, s.w6)(e + 1, this.viewItems.length), o = this.findFirstSnapIndex(i), r = this.findFirstSnapIndex(n); ("number" != typeof o || this.viewItems[o].visible) && ("number" != typeof r || this.viewItems[r].visible) && this._onDidSashReset.fire( e) })), g = (0, d.F8)(r, a, h, u, t), p = { sash: t, disposable: g }; this.sashItems.splice(i - 1, 0, p) } let m; a.appendChild(e.element), "number" != typeof t && "split" === t.type && (m = [t.index]), r || this.relayout([i], m), this.state = T.Idle, r || "number" == typeof t || "distribute" !== t.type || this.distributeViewSizes() } relayout(e, t) { const i = this.viewItems.reduce(((e, t) => e + t.size), 0); this.resize(this.viewItems.length - 1, this.size - i, void 0, e, t), this.distributeEmptySpace(), this.layoutViews(), this.saveProportions() } resize(e, t, i = this.viewItems.map((e => e.size)), n, o, r = Number.NEGATIVE_INFINITY, a = Number.POSITIVE_INFINITY, l, d) { if (e < 0 || e >= this.viewItems.length) return 0; const h = (0, s.w6)(e, -1), u = (0, s.w6)(e + 1, this.viewItems.length); if (o) for (const e of o)(0, s.zI)(h, e), (0, s.zI)(u, e); if (n) for (const e of n)(0, s.al)(h, e), (0, s.al)(u, e); const g = h.map((e => this.viewItems[e])), p = h.map((e => i[e])), m = u.map((e => this.viewItems[e])), f = u.map((e => i[e])), _ = h.reduce(((e, t) => e + (this.viewItems[t].minimumSize - i[t])), 0), b = h.reduce(((e, t) => e + (this.viewItems[t].maximumSize - i[t])), 0), v = 0 === u.length ? Number.POSITIVE_INFINITY : u.reduce(((e, t) => e + (i[t] - this.viewItems[t].minimumSize)), 0), w = 0 === u.length ? Number.NEGATIVE_INFINITY : u.reduce(((e, t) => e + (i[t] - this.viewItems[t].maximumSize)), 0), C = Math.max(_, w, r), y = Math.min(v, b, a); let S = !1; if (l) { const e = this.viewItems[l.index], i = t >= l.limitDelta; S = i !== e.visible, e.setVisible(i, l.size) } if (!S && d) { const e = this.viewItems[d.index], i = t < d.limitDelta; S = i !== e.visible, e.setVisible(i, d.size) } if (S) return this.resize(e, t, i, n, o, r, a); for (let e = 0, i = t = (0, c.u)(t, C, y); e < g.length; e++) { const t = g[e], n = (0, c.u)(p[e] + i, t.minimumSize, t.maximumSize); i -= n - p[e], t.size = n } for (let e = 0, i = t; e < m.length; e++) { const t = m[e], n = (0, c.u)(f[e] - i, t.minimumSize, t.maximumSize); i += n - f[e], t.size = n } return t } distributeEmptySpace(e) { const t = this.viewItems.reduce(((e, t) => e + t.size), 0); let i = this.size - t; const n = (0, s.w6)(this.viewItems.length - 1, -1), o = n.filter((e => 1 === this.viewItems[e].priority)), r = n.filter((e => 2 === this.viewItems[e].priority)); for (const e of r)(0, s.zI)(n, e); for (const e of o)(0, s.al)(n, e); "number" == typeof e && (0, s.al)(n, e); for (let e = 0; 0 !== i && e < n.length; e++) { const t = this.viewItems[n[e]], o = (0, c.u)(t.size + i, t.minimumSize, t.maximumSize); i -= o - t.size, t.size = o } } layoutViews() { this.contentSize = this.viewItems.reduce(((e, t) => e + t.size), 0); let e = 0; for (const t of this.viewItems) t.layout(e, this.layoutContext), e += t.size; this.sashItems.forEach((e => e.sash.layout())), this.updateSashEnablement(), this.updateScrollableElement() } updateScrollableElement() { 0 === this.orientation ? this.scrollableElement.setScrollDimensions({ height: this.size, scrollHeight: this.contentSize }) : this.scrollableElement.setScrollDimensions({ width: this.size, scrollWidth: this.contentSize }) } updateSashEnablement() { let e = !1; const t = this.viewItems.map((t => e = t.size - t.minimumSize > 0 || e)); e = !1; const i = this.viewItems.map((t => e = t.maximumSize - t.size > 0 || e)), n = [...this.viewItems].reverse(); e = !1; const o = n.map((t => e = t.size - t.minimumSize > 0 || e)).reverse(); e = !1; const r = n.map((t => e = t.maximumSize - t.size > 0 || e)).reverse(); let a = 0; for (let e = 0; e < this.sashItems.length; e++) { const { sash: n } = this.sashItems[e]; a += this.viewItems[e].size; const l = !(t[e] && r[e + 1]), d = !(i[e] && o[e + 1]); if (l && d) { const i = (0, s.w6)(e, -1), r = (0, s.w6)(e + 1, this.viewItems.length), l = this.findFirstSnapIndex(i), d = this.findFirstSnapIndex(r), c = "number" == typeof l && !this.viewItems[l].visible, h = "number" == typeof d && !this.viewItems[d].visible; c && o[e] && (a > 0 || this.startSnappingEnabled) ? n.state = 1 : h && t[e] && (a < this.contentSize || this.endSnappingEnabled) ? n.state = 2 : n.state = 0 } else n.state = l && !d ? 1 : !l && d ? 2 : 3 } } getSashPosition(e) { let t = 0; for (let i = 0; i < this.sashItems.length; i++) if (t += this.viewItems[i].size, this.sashItems[i].sash === e) return t; return 0 } findFirstSnapIndex(e) { for (const t of e) { const e = this.viewItems[t]; if (e.visible && e.snap) return t } for (const t of e) { const e = this.viewItems[t]; if (e.visible && e.maximumSize - e.minimumSize > 0) return; if (!e.visible && e.snap) return t } } dispose() { super.dispose(), this.viewItems.forEach((e => e.dispose())), this.viewItems = [], this.sashItems.forEach((e => e.disposable.dispose())), this.sashItems = [] } } }, 3794: (e, t, i) => { "use strict"; i.d(t, { $: () => l }); var n = i(5321), o = i(9069), r = i(3938), s = i(553), a = i(5976); class l extends a.JT { onclick(e, t) { this._register(n.nm(e, n.tw.CLICK, (e => t(new r.n(e))))) } onmousedown(e, t) { this._register(n.nm(e, n.tw.MOUSE_DOWN, (e => t(new r.n(e))))) } onmouseover(e, t) { this._register(n.nm(e, n.tw.MOUSE_OVER, (e => t(new r.n(e))))) } onnonbubblingmouseout(e, t) { this._register(n.j_(e, (e => t(new r.n(e))))) } onkeydown(e, t) { this._register(n.nm(e, n.tw.KEY_DOWN, (e => t(new o.y(e))))) } onkeyup(e, t) { this._register(n.nm(e, n.tw.KEY_UP, (e => t(new o.y(e))))) } oninput(e, t) { this._register(n.nm(e, n.tw.INPUT, t)) } onblur(e, t) { this._register(n.nm(e, n.tw.BLUR, t)) } onfocus(e, t) { this._register(n.nm(e, n.tw.FOCUS, t)) } ignoreGesture(e) { s.o.ignoreTarget(e) } } }, 4741: (e, t, i) => { "use strict"; i.d(t, { aU: () => a, Wi: () => l, Z0: () => d, wY: () => c, eZ: () => h }); var n = i(4669), o = i(5976), r = i(3580), s = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; class a extends o.JT { constructor(e, t = "", i = "", o = !0, r) { super(), this._onDidChange = this._register(new n.Q5), this.onDidChange = this._onDidChange.event, this._enabled = !0, this._checked = !1, this._id = e, this._label = t, this._cssClass = i, this._enabled = o, this._actionCallback = r } get id() { return this._id } get label() { return this._label } set label(e) { this._setLabel(e) } _setLabel(e) { this._label !== e && (this._label = e, this._onDidChange.fire({ label: e })) } get tooltip() { return this._tooltip || "" } set tooltip(e) { this._setTooltip(e) } _setTooltip(e) { this._tooltip !== e && (this._tooltip = e, this._onDidChange.fire({ tooltip: e })) } get class() { return this._cssClass } set class(e) { this._setClass(e) } _setClass(e) { this._cssClass !== e && (this._cssClass = e, this._onDidChange.fire({ class: e })) } get enabled() { return this._enabled } set enabled(e) { this._setEnabled(e) } _setEnabled(e) { this._enabled !== e && (this._enabled = e, this._onDidChange.fire({ enabled: e })) } get checked() { return this._checked } set checked(e) { this._setChecked(e) } _setChecked(e) { this._checked !== e && (this._checked = e, this._onDidChange.fire({ checked: e })) } run(e, t) { return s(this, void 0, void 0, (function*() { this._actionCallback && (yield this._actionCallback(e)) })) } } class l extends o.JT { constructor() { super(...arguments), this._onBeforeRun = this._register(new n.Q5), this.onBeforeRun = this._onBeforeRun.event, this._onDidRun = this._register( new n.Q5), this.onDidRun = this._onDidRun.event } run(e, t) { return s(this, void 0, void 0, (function*() { if (!e.enabled) return; let i; this._onBeforeRun.fire({ action: e }); try { yield this.runAction(e, t) } catch (e) { i = e } this._onDidRun.fire({ action: e, error: i }) })) } runAction(e, t) { return s(this, void 0, void 0, (function*() { yield e.run(t) })) } } class d extends a { constructor(e) { super(d.ID, e, e ? "separator text" : "separator"), this.checked = !1, this.enabled = !1 } } d.ID = "vs.actions.separator"; class c { constructor(e, t, i, n) { this.tooltip = "", this.enabled = !0, this.checked = !1, this.id = e, this.label = t, this.class = n, this._actions = i } get actions() { return this._actions } dispose() {} run() { return s(this, void 0, void 0, (function*() {})) } } class h extends a { constructor() { super(h.ID, r.N("submenu.empty", "(empty)"), void 0, !1) } } h.ID = "vs.actions.empty" }, 9488: (e, t, i) => { "use strict"; function n(e, t = 0) { return e[e.length - (1 + t)] } function o(e) { if (0 === e.length) throw new Error("Invalid tail call"); return [e.slice(0, e.length - 1), e[e.length - 1]] } function r(e, t, i = ((e, t) => e === t)) { if (e === t) return !0; if (!e || !t) return !1; if (e.length !== t.length) return !1; for (let n = 0, o = e.length; n < o; n++) if (!i(e[n], t[n])) return !1; return !0 } function s(e, t, i) { let n = 0, o = e.length - 1; for (; n <= o;) { const r = (n + o) / 2 | 0, s = i(e[r], t); if (s < 0) n = r + 1; else { if (!(s > 0)) return r; o = r - 1 } } return -(n + 1) } function a(e, t) { let i = 0, n = e.length; if (0 === n) return 0; for (; i < n;) { const o = Math.floor((i + n) / 2); t(e[o]) ? n = o : i = o + 1 } return i } function l(e, t, i) { if ((e |= 0) >= t.length) throw new TypeError("invalid index"); let n = t[Math.floor(t.length * Math.random())], o = [], r = [], s = []; for (let e of t) { const t = i(e, n); t < 0 ? o.push(e) : t > 0 ? r.push(e) : s.push(e) } return e < o.length ? l(e, o, i) : e < o.length + s.length ? s[0] : l(e - (o.length + s.length), r, i) } function d(e, t) { const i = []; let n; for (const o of e.slice(0).sort(t)) n && 0 === t(n[0], o) ? n.push(o) : (n = [o], i.push(n)); return i } function c(e) { return e.filter((e => !!e)) } function h(e) { return !Array.isArray(e) || 0 === e.length } function u(e) { return Array.isArray(e) && e.length > 0 } function g(e, t) { if (!t) return e.filter(((t, i) => e.indexOf(t) === i)); const i = Object.create(null); return e.filter((e => { const n = t(e); return !i[n] && (i[n] = !0, !0) })) } function p(e) { const t = new Set; return e.filter((e => !t.has(e) && (t.add(e), !0))) } function m(e, t) { return e.length > 0 ? e[0] : t } function f(e) { return [].concat(...e) } function _(e, t) { let i = "number" == typeof t ? e : 0; "number" == typeof t ? i = e : (i = 0, t = e); const n = []; if (i <= t) for (let e = i; e < t; e++) n.push(e); else for (let e = i; e > t; e--) n.push(e); return n } function b(e, t, i) { const n = e.slice(0, t), o = e.slice(t); return n.concat(i, o) } function v(e, t) { const i = e.indexOf(t); i > -1 && (e.splice(i, 1), e.unshift(t)) } function w(e, t) { const i = e.indexOf(t); i > -1 && (e.splice(i, 1), e.push(t)) } function C(e) { return Array.isArray(e) ? e : [e] } function y(e, t, i, n) { const o = S(e, t), r = e.splice(o, i); return function(e, t, i) { const n = S(e, t), o = e.length, r = i.length; e.length = o + r; for (let t = o - 1; t >= n; t--) e[t + r] = e[t]; for (let t = 0; t < r; t++) e[t + n] = i[t] }(e, o, n), r } function S(e, t) { return t < 0 ? Math.max(t + e.length, 0) : Math.min(t, e.length) } i.d(t, { Gb: () => n, JH: () => o, fS: () => r, ry: () => s, lG: () => a, HW: () => l, vM: () => d, kX: () => c, XY: () => h, Of: () => u, EB: () => g, cU: () => p, Xh: () => m, xH: () => f, w6: () => _, Zv: () => b, zI: () => v, al: () => w, _2: () => C, db: () => y, H9: () => x }); class x { constructor(e) { this.items = e, this.firstIdx = 0, this.lastIdx = this.items.length - 1 } takeWhile(e) { let t = this.firstIdx; for (; t < this.items.length && e(this.items[t]);) t++; const i = t === this.firstIdx ? null : this.items.slice(this.firstIdx, t); return this.firstIdx = t, i } takeFromEndWhile(e) { let t = this.lastIdx; for (; t >= 0 && e(this.items[t]);) t--; const i = t === this.lastIdx ? null : this.items.slice(t + 1, this.lastIdx + 1); return this.lastIdx = t, i } } }, 5146: (e, t, i) => { "use strict"; function n(e, t) { if (!e) throw new Error(t ? `Assertion failed (${t})` : "Assertion Failed") } i.d(t, { ok: () => n }) }, 5393: (e, t, i) => { "use strict"; i.d(t, { J8: () => s, PG: () => a, eP: () => l, vp: () => c, rH: () => h, Vs: () => u, Vg: () => g, Ps: () => p, _F: () => m, zh: () => f, pY: () => _, To: () => b, Ue: () => v, jT: () => w }); var n = i(1050), o = i(7301), r = i(5976); function s(e) { return !!e && "function" == typeof e.then } function a(e) { const t = new n.A, i = e(t.token), r = new Promise(((e, n) => { const r = t.token.onCancellationRequested((() => { r.dispose(), t.dispose(), n((0, o.F0)()) })); Promise.resolve(i).then((i => { r.dispose(), t.dispose(), e(i) }), (e => { r.dispose(), t.dispose(), n(e) })) })); return new class { cancel() { t.cancel() } then(e, t) { return r.then(e, t) } catch (e) { return this.then(void 0, e) } finally(e) { return r.finally(e) } } } function l(e, t, i) { return Promise.race([e, new Promise((e => t.onCancellationRequested((() => e(i)))))]) } class d { constructor() { this.activePromise = null, this.queuedPromise = null, this.queuedPromiseFactory = null } queue(e) { if (this.activePromise) { if (this.queuedPromiseFactory = e, !this.queuedPromise) { const e = () => { this.queuedPromise = null; const e = this.queue(this.queuedPromiseFactory); return this.queuedPromiseFactory = null, e }; this.queuedPromise = new Promise((t => { this.activePromise.then(e, e).then(t) })) } return new Promise(((e, t) => { this.queuedPromise.then(e, t) })) } return this.activePromise = e(), new Promise(((e, t) => { this.activePromise.then((t => { this.activePromise = null, e(t) }), (e => { this.activePromise = null, t(e) })) })) } } class c { constructor(e) { this.defaultDelay = e, this.timeout = null, this.completionPromise = null, this.doResolve = null, this.doReject = null, this.task = null } trigger(e, t = this.defaultDelay) { return this.task = e, this.cancelTimeout(), this.completionPromise || (this.completionPromise = new Promise(((e, t) => { this.doResolve = e, this.doReject = t })).then((() => { if (this.completionPromise = null, this.doResolve = null, this.task) { const e = this.task; return this.task = null, e() } }))), this.timeout = setTimeout((() => { this.timeout = null, this.doResolve && this.doResolve(null) }), t), this.completionPromise } isTriggered() { return null !== this.timeout } cancel() { this.cancelTimeout(), this.completionPromise && (this.doReject && this .doReject((0, o.F0)()), this.completionPromise = null) } cancelTimeout() { null !== this.timeout && (clearTimeout(this.timeout), this.timeout = null) } dispose() { this.cancel() } } class h { constructor(e) { this.delayer = new c(e), this.throttler = new d } trigger(e, t) { return this.delayer.trigger((() => this.throttler.queue(e)), t) } dispose() { this.delayer.dispose() } } function u(e, t) { return t ? new Promise(((i, n) => { const r = setTimeout((() => { s.dispose(), i() }), e), s = t.onCancellationRequested((() => { clearTimeout(r), s.dispose(), n((0, o.F0)()) })) })) : a((t => u(e, t))) } function g(e, t = 0) { const i = setTimeout(e, t); return (0, r.OF)((() => clearTimeout(i))) } function p(e, t = (e => !!e), i = null) { let n = 0; const o = e.length, r = () => { if (n >= o) return Promise.resolve(i); const s = e[n++]; return Promise.resolve(s()).then((e => t(e) ? Promise.resolve(e) : r())) }; return r() } class m { constructor(e, t) { this._token = -1, "function" == typeof e && "number" == typeof t && this.setIfNotSet(e, t) } dispose() { this.cancel() } cancel() { -1 !== this._token && (clearTimeout(this._token), this._token = -1) } cancelAndSet(e, t) { this.cancel(), this._token = setTimeout((() => { this._token = -1, e() }), t) } setIfNotSet(e, t) { -1 === this._token && (this._token = setTimeout((() => { this._token = -1, e() }), t)) } } class f { constructor() { this._token = -1 } dispose() { this.cancel() } cancel() { -1 !== this._token && (clearInterval(this._token), this._token = -1) } cancelAndSet(e, t) { this.cancel(), this._token = setInterval((() => { e() }), t) } } class _ { constructor(e, t) { this.timeoutToken = -1, this.runner = e, this.timeout = t, this.timeoutHandler = this.onTimeout.bind(this) } dispose() { this.cancel(), this.runner = null } cancel() { this.isScheduled() && (clearTimeout(this.timeoutToken), this.timeoutToken = - 1) } schedule(e = this.timeout) { this.cancel(), this.timeoutToken = setTimeout(this.timeoutHandler, e) } get delay() { return this.timeout } set delay(e) { this.timeout = e } isScheduled() { return -1 !== this.timeoutToken } onTimeout() { this.timeoutToken = -1, this.runner && this.doRun() } doRun() { this.runner && this.runner() } } let b; ! function() { if ("function" != typeof requestIdleCallback || "function" != typeof cancelIdleCallback) { const e = Object.freeze({ didTimeout: !0, timeRemaining: () => 15 }); b = t => { const i = setTimeout((() => t(e))); let n = !1; return { dispose() { n || (n = !0, clearTimeout(i)) } } } } else b = (e, t) => { const i = requestIdleCallback(e, "number" == typeof t ? { timeout: t } : void 0); let n = !1; return { dispose() { n || (n = !0, cancelIdleCallback(i)) } } } }(); class v { constructor(e) { this._didRun = !1, this._executor = () => { try { this._value = e() } catch (e) { this._error = e } finally { this._didRun = !0 } }, this._handle = b((() => 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 } } var w; ! function(e) { e.settled = function(e) { return t = this, i = void 0, o = function*() { let t; const i = yield Promise.all(e.map((e => e.then((e => e), (e => { t || (t = e) }))))); if (void 0 !== t) throw t; return i }, new((n = void 0) || (n = Promise))((function(e, r) { function s(e) { try { l(o.next(e)) } catch (e) { r(e) } } function a(e) { try { l(o.throw(e)) } catch (e) { r(e) } } function l(t) { var i; t.done ? e(t.value) : (i = t.value, i instanceof n ? i : new n(( function(e) { e(i) }))).then(s, a) } l((o = o.apply(t, i || [])).next()) })); var t, i, n, o } }(w || (w = {})) }, 3060: (e, t, i) => { "use strict"; i.d(t, { KN: () => r, mP: () => s, oq: () => a, Ag: () => l, T4: () => d, Q$: () => c, Cg: () => h }); const n = "undefined" != typeof Buffer; let o; class r { constructor(e) { this.buffer = e, this.byteLength = this.buffer.byteLength } static wrap(e) { return n && !Buffer.isBuffer(e) && (e = Buffer.from(e.buffer, e.byteOffset, e.byteLength)), new r(e) } toString() { return n ? this.buffer.toString() : (o || (o = new TextDecoder), o.decode( this.buffer)) } } function s(e, t) { return e[t + 0] << 0 >>> 0 | e[t + 1] << 8 >>> 0 } function a(e, t, i) { e[i + 0] = 255 & t, t >>>= 8, e[i + 1] = 255 & t } function l(e, t) { return e[t] * Math.pow(2, 24) + e[t + 1] * Math.pow(2, 16) + e[t + 2] * Math.pow(2, 8) + e[t + 3] } function d(e, t, i) { e[i + 3] = t, t >>>= 8, e[i + 2] = t, t >>>= 8, e[i + 1] = t, t >>>= 8, e[i] = t } function c(e, t) { return e[t] } function h(e, t, i) { e[i] = t } }, 1050: (e, t, i) => { "use strict"; i.d(t, { T: () => r, A: () => a }); var n = i(4669); const o = Object.freeze((function(e, t) { const i = setTimeout(e.bind(t), 0); return { dispose() { clearTimeout(i) } } })); var r; ! function(e) { e.isCancellationToken = function(t) { return t === e.None || t === e.Cancelled || t instanceof s || !(!t || "object" != typeof t) && "boolean" == typeof t.isCancellationRequested && "function" == typeof t.onCancellationRequested }, e.None = Object.freeze({ isCancellationRequested: !1, onCancellationRequested: n.ju.None }), e.Cancelled = Object.freeze({ isCancellationRequested: !0, onCancellationRequested: o }) }(r || (r = {})); class s { 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 ? o : (this._emitter || (this._emitter = new n .Q5), this._emitter.event) } dispose() { this._emitter && (this._emitter.dispose(), this._emitter = null) } } class a { constructor(e) { this._token = void 0, this._parentListener = void 0, this._parentListener = e && e.onCancellationRequested(this.cancel, this) } get token() { return this._token || (this._token = new s), this._token } cancel() { this._token ? this._token instanceof s && this._token.cancel() : this._token = r.Cancelled } dispose(e = !1) { e && this.cancel(), this._parentListener && this._parentListener.dispose(), this._token ? this._token instanceof s && this._token.dispose() : this._token = r.None } } }, 3046: (e, t, i) => { "use strict"; i.d(t, { fK: () => r, CM: () => s, JL: () => a, lA: () => l, dT: () => d }); var n = i(4669); const o = new class { constructor() { this._icons = new Map, this._onDidRegister = new n.Q5 } add(e) { const t = this._icons.get(e.id); t ? e.description ? t.description = e.description : console.error( `Duplicate registration of codicon ${e.id}`) : (this._icons.set(e.id, e), this._onDidRegister.fire(e)) } get(e) { return this._icons.get(e) } get all() { return this._icons.values() } get onDidRegister() { return this._onDidRegister.event } }, r = o; function s(e, t) { return new l(e, t) } function a(e) { return e ? e.replace(/\$\((.*?)\)/g, ((e, t) => ` ${t} `)).trim() : "" } class l { constructor(e, t, i) { this.id = e, this.definition = t, this.description = i, o.add(this) } get classNames() { return "codicon codicon-" + this.id } get classNamesArray() { return ["codicon", "codicon-" + this.id] } get cssSelector() { return ".codicon.codicon-" + this.id } } var d; ! function(e) { e.iconNameSegment = "[A-Za-z0-9]+", e.iconNameExpression = "[A-Za-z0-9\\-]+", e.iconModifierExpression = "~[A-Za-z]+"; const t = new RegExp( `^(${e.iconNameExpression})(${e.iconModifierExpression})?$`); function i(e) { if (e instanceof l) return ["codicon", "codicon-" + e.id]; const n = t.exec(e.id); if (!n) return i(l.error); let [, o, r] = n; const s = ["codicon", "codicon-" + o]; return r && s.push("codicon-modifier-" + r.substr(1)), s } e.asClassNameArray = i, e.asClassName = function(e) { return i(e).join(" ") }, e.asCSSSelector = function(e) { return "." + i(e).join(".") } }(d || (d = {})), function(e) { e.add = new e("add", { fontCharacter: "\\ea60" }), e.plus = new e("plus", { fontCharacter: "\\ea60" }), e.gistNew = new e("gist-new", { fontCharacter: "\\ea60" }), e.repoCreate = new e("repo-create", { fontCharacter: "\\ea60" }), e.lightbulb = new e("lightbulb", { fontCharacter: "\\ea61" }), e.lightBulb = new e("light-bulb", { fontCharacter: "\\ea61" }), e.repo = new e("repo", { fontCharacter: "\\ea62" }), e.repoDelete = new e("repo-delete", { fontCharacter: "\\ea62" }), e.gistFork = new e("gist-fork", { fontCharacter: "\\ea63" }), e.repoForked = new e("repo-forked", { fontCharacter: "\\ea63" }), e.gitPullRequest = new e("git-pull-request", { fontCharacter: "\\ea64" }), e.gitPullRequestAbandoned = new e("git-pull-request-abandoned", { fontCharacter: "\\ea64" }), e.recordKeys = new e("record-keys", { fontCharacter: "\\ea65" }), e.keyboard = new e("keyboard", { fontCharacter: "\\ea65" }), e.tag = new e("tag", { fontCharacter: "\\ea66" }), e.tagAdd = new e("tag-add", { fontCharacter: "\\ea66" }), e.tagRemove = new e("tag-remove", { fontCharacter: "\\ea66" }), e.person = new e("person", { fontCharacter: "\\ea67" }), e.personFollow = new e("person-follow", { fontCharacter: "\\ea67" }), e.personOutline = new e("person-outline", { fontCharacter: "\\ea67" }), e.personFilled = new e("person-filled", { fontCharacter: "\\ea67" }), e.gitBranch = new e("git-branch", { fontCharacter: "\\ea68" }), e.gitBranchCreate = new e("git-branch-create", { fontCharacter: "\\ea68" }), e.gitBranchDelete = new e("git-branch-delete", { fontCharacter: "\\ea68" }), e.sourceControl = new e("source-control", { fontCharacter: "\\ea68" }), e.mirror = new e("mirror", { fontCharacter: "\\ea69" }), e.mirrorPublic = new e("mirror-public", { fontCharacter: "\\ea69" }), e.star = new e("star", { fontCharacter: "\\ea6a" }), e.starAdd = new e("star-add", { fontCharacter: "\\ea6a" }), e.starDelete = new e("star-delete", { fontCharacter: "\\ea6a" }), e.starEmpty = new e("star-empty", { fontCharacter: "\\ea6a" }), e.comment = new e("comment", { fontCharacter: "\\ea6b" }), e.commentAdd = new e("comment-add", { fontCharacter: "\\ea6b" }), e.alert = new e("alert", { fontCharacter: "\\ea6c" }), e.warning = new e("warning", { fontCharacter: "\\ea6c" }), e.search = new e("search", { fontCharacter: "\\ea6d" }), e.searchSave = new e("search-save", { fontCharacter: "\\ea6d" }), e.logOut = new e("log-out", { fontCharacter: "\\ea6e" }), e.signOut = new e("sign-out", { fontCharacter: "\\ea6e" }), e.logIn = new e("log-in", { fontCharacter: "\\ea6f" }), e.signIn = new e("sign-in", { fontCharacter: "\\ea6f" }), e.eye = new e("eye", { fontCharacter: "\\ea70" }), e.eyeUnwatch = new e("eye-unwatch", { fontCharacter: "\\ea70" }), e.eyeWatch = new e("eye-watch", { fontCharacter: "\\ea70" }), e.circleFilled = new e("circle-filled", { fontCharacter: "\\ea71" }), e.primitiveDot = new e("primitive-dot", { fontCharacter: "\\ea71" }), e.closeDirty = new e("close-dirty", { fontCharacter: "\\ea71" }), e.debugBreakpoint = new e("debug-breakpoint", { fontCharacter: "\\ea71" }), e.debugBreakpointDisabled = new e("debug-breakpoint-disabled", { fontCharacter: "\\ea71" }), e.debugHint = new e("debug-hint", { fontCharacter: "\\ea71" }), e.primitiveSquare = new e("primitive-square", { fontCharacter: "\\ea72" }), e.edit = new e("edit", { fontCharacter: "\\ea73" }), e.pencil = new e("pencil", { fontCharacter: "\\ea73" }), e.info = new e("info", { fontCharacter: "\\ea74" }), e.issueOpened = new e("issue-opened", { fontCharacter: "\\ea74" }), e.gistPrivate = new e("gist-private", { fontCharacter: "\\ea75" }), e.gitForkPrivate = new e("git-fork-private", { fontCharacter: "\\ea75" }), e.lock = new e("lock", { fontCharacter: "\\ea75" }), e.mirrorPrivate = new e("mirror-private", { fontCharacter: "\\ea75" }), e.close = new e("close", { fontCharacter: "\\ea76" }), e.removeClose = new e("remove-close", { fontCharacter: "\\ea76" }), e.x = new e("x", { fontCharacter: "\\ea76" }), e.repoSync = new e("repo-sync", { fontCharacter: "\\ea77" }), e.sync = new e("sync", { fontCharacter: "\\ea77" }), e.clone = new e("clone", { fontCharacter: "\\ea78" }), e.desktopDownload = new e("desktop-download", { fontCharacter: "\\ea78" }), e.beaker = new e("beaker", { fontCharacter: "\\ea79" }), e.microscope = new e("microscope", { fontCharacter: "\\ea79" }), e.vm = new e("vm", { fontCharacter: "\\ea7a" }), e.deviceDesktop = new e("device-desktop", { fontCharacter: "\\ea7a" }), e.file = new e("file", { fontCharacter: "\\ea7b" }), e.fileText = new e("file-text", { fontCharacter: "\\ea7b" }), e.more = new e("more", { fontCharacter: "\\ea7c" }), e.ellipsis = new e("ellipsis", { fontCharacter: "\\ea7c" }), e.kebabHorizontal = new e("kebab-horizontal", { fontCharacter: "\\ea7c" }), e.mailReply = new e("mail-reply", { fontCharacter: "\\ea7d" }), e.reply = new e("reply", { fontCharacter: "\\ea7d" }), e.organization = new e("organization", { fontCharacter: "\\ea7e" }), e.organizationFilled = new e("organization-filled", { fontCharacter: "\\ea7e" }), e.organizationOutline = new e("organization-outline", { fontCharacter: "\\ea7e" }), e.newFile = new e("new-file", { fontCharacter: "\\ea7f" }), e.fileAdd = new e("file-add", { fontCharacter: "\\ea7f" }), e.newFolder = new e("new-folder", { fontCharacter: "\\ea80" }), e.fileDirectoryCreate = new e("file-directory-create", { fontCharacter: "\\ea80" }), e.trash = new e("trash", { fontCharacter: "\\ea81" }), e.trashcan = new e("trashcan", { fontCharacter: "\\ea81" }), e.history = new e("history", { fontCharacter: "\\ea82" }), e.clock = new e("clock", { fontCharacter: "\\ea82" }), e.folder = new e("folder", { fontCharacter: "\\ea83" }), e.fileDirectory = new e("file-directory", { fontCharacter: "\\ea83" }), e.symbolFolder = new e("symbol-folder", { fontCharacter: "\\ea83" }), e.logoGithub = new e("logo-github", { fontCharacter: "\\ea84" }), e.markGithub = new e("mark-github", { fontCharacter: "\\ea84" }), e.github = new e("github", { fontCharacter: "\\ea84" }), e.terminal = new e("terminal", { fontCharacter: "\\ea85" }), e.console = new e("console", { fontCharacter: "\\ea85" }), e.repl = new e("repl", { fontCharacter: "\\ea85" }), e.zap = new e("zap", { fontCharacter: "\\ea86" }), e.symbolEvent = new e("symbol-event", { fontCharacter: "\\ea86" }), e.error = new e("error", { fontCharacter: "\\ea87" }), e.stop = new e("stop", { fontCharacter: "\\ea87" }), e.variable = new e("variable", { fontCharacter: "\\ea88" }), e.symbolVariable = new e("symbol-variable", { fontCharacter: "\\ea88" }), e.array = new e("array", { fontCharacter: "\\ea8a" }), e.symbolArray = new e("symbol-array", { fontCharacter: "\\ea8a" }), e.symbolModule = new e("symbol-module", { fontCharacter: "\\ea8b" }), e.symbolPackage = new e("symbol-package", { fontCharacter: "\\ea8b" }), e.symbolNamespace = new e("symbol-namespace", { fontCharacter: "\\ea8b" }), e.symbolObject = new e("symbol-object", { fontCharacter: "\\ea8b" }), e.symbolMethod = new e("symbol-method", { fontCharacter: "\\ea8c" }), e.symbolFunction = new e("symbol-function", { fontCharacter: "\\ea8c" }), e.symbolConstructor = new e("symbol-constructor", { fontCharacter: "\\ea8c" }), e.symbolBoolean = new e("symbol-boolean", { fontCharacter: "\\ea8f" }), e.symbolNull = new e("symbol-null", { fontCharacter: "\\ea8f" }), e.symbolNumeric = new e("symbol-numeric", { fontCharacter: "\\ea90" }), e.symbolNumber = new e("symbol-number", { fontCharacter: "\\ea90" }), e.symbolStructure = new e("symbol-structure", { fontCharacter: "\\ea91" }), e.symbolStruct = new e("symbol-struct", { fontCharacter: "\\ea91" }), e.symbolParameter = new e("symbol-parameter", { fontCharacter: "\\ea92" }), e.symbolTypeParameter = new e("symbol-type-parameter", { fontCharacter: "\\ea92" }), e.symbolKey = new e("symbol-key", { fontCharacter: "\\ea93" }), e.symbolText = new e("symbol-text", { fontCharacter: "\\ea93" }), e.symbolReference = new e("symbol-reference", { fontCharacter: "\\ea94" }), e.goToFile = new e("go-to-file", { fontCharacter: "\\ea94" }), e.symbolEnum = new e("symbol-enum", { fontCharacter: "\\ea95" }), e.symbolValue = new e("symbol-value", { fontCharacter: "\\ea95" }), e.symbolRuler = new e("symbol-ruler", { fontCharacter: "\\ea96" }), e.symbolUnit = new e("symbol-unit", { fontCharacter: "\\ea96" }), e.activateBreakpoints = new e("activate-breakpoints", { fontCharacter: "\\ea97" }), e.archive = new e("archive", { fontCharacter: "\\ea98" }), e.arrowBoth = new e("arrow-both", { fontCharacter: "\\ea99" }), e.arrowDown = new e("arrow-down", { fontCharacter: "\\ea9a" }), e.arrowLeft = new e("arrow-left", { fontCharacter: "\\ea9b" }), e.arrowRight = new e("arrow-right", { fontCharacter: "\\ea9c" }), e.arrowSmallDown = new e("arrow-small-down", { fontCharacter: "\\ea9d" }), e.arrowSmallLeft = new e("arrow-small-left", { fontCharacter: "\\ea9e" }), e.arrowSmallRight = new e("arrow-small-right", { fontCharacter: "\\ea9f" }), e.arrowSmallUp = new e("arrow-small-up", { fontCharacter: "\\eaa0" }), e.arrowUp = new e("arrow-up", { fontCharacter: "\\eaa1" }), e.bell = new e("bell", { fontCharacter: "\\eaa2" }), e.bold = new e("bold", { fontCharacter: "\\eaa3" }), e.book = new e("book", { fontCharacter: "\\eaa4" }), e.bookmark = new e("bookmark", { fontCharacter: "\\eaa5" }), e.debugBreakpointConditionalUnverified = new e( "debug-breakpoint-conditional-unverified", { fontCharacter: "\\eaa6" }), e.debugBreakpointConditional = new e( "debug-breakpoint-conditional", { fontCharacter: "\\eaa7" }), e.debugBreakpointConditionalDisabled = new e( "debug-breakpoint-conditional-disabled", { fontCharacter: "\\eaa7" }), e.debugBreakpointDataUnverified = new e( "debug-breakpoint-data-unverified", { fontCharacter: "\\eaa8" }), e.debugBreakpointData = new e("debug-breakpoint-data", { fontCharacter: "\\eaa9" }), e.debugBreakpointDataDisabled = new e( "debug-breakpoint-data-disabled", { fontCharacter: "\\eaa9" }), e.debugBreakpointLogUnverified = new e( "debug-breakpoint-log-unverified", { fontCharacter: "\\eaaa" }), e.debugBreakpointLog = new e("debug-breakpoint-log", { fontCharacter: "\\eaab" }), e.debugBreakpointLogDisabled = new e( "debug-breakpoint-log-disabled", { fontCharacter: "\\eaab" }), e.briefcase = new e("briefcase", { fontCharacter: "\\eaac" }), e.broadcast = new e("broadcast", { fontCharacter: "\\eaad" }), e.browser = new e("browser", { fontCharacter: "\\eaae" }), e.bug = new e("bug", { fontCharacter: "\\eaaf" }), e.calendar = new e("calendar", { fontCharacter: "\\eab0" }), e.caseSensitive = new e("case-sensitive", { fontCharacter: "\\eab1" }), e.check = new e("check", { fontCharacter: "\\eab2" }), e.checklist = new e("checklist", { fontCharacter: "\\eab3" }), e.chevronDown = new e("chevron-down", { fontCharacter: "\\eab4" }), e.chevronLeft = new e("chevron-left", { fontCharacter: "\\eab5" }), e.chevronRight = new e("chevron-right", { fontCharacter: "\\eab6" }), e.chevronUp = new e("chevron-up", { fontCharacter: "\\eab7" }), e.chromeClose = new e("chrome-close", { fontCharacter: "\\eab8" }), e.chromeMaximize = new e("chrome-maximize", { fontCharacter: "\\eab9" }), e.chromeMinimize = new e("chrome-minimize", { fontCharacter: "\\eaba" }), e.chromeRestore = new e("chrome-restore", { fontCharacter: "\\eabb" }), e.circleOutline = new e("circle-outline", { fontCharacter: "\\eabc" }), e.debugBreakpointUnverified = new e("debug-breakpoint-unverified", { fontCharacter: "\\eabc" }), e.circleSlash = new e("circle-slash", { fontCharacter: "\\eabd" }), e.circuitBoard = new e("circuit-board", { fontCharacter: "\\eabe" }), e.clearAll = new e("clear-all", { fontCharacter: "\\eabf" }), e.clippy = new e("clippy", { fontCharacter: "\\eac0" }), e.closeAll = new e("close-all", { fontCharacter: "\\eac1" }), e.cloudDownload = new e("cloud-download", { fontCharacter: "\\eac2" }), e.cloudUpload = new e("cloud-upload", { fontCharacter: "\\eac3" }), e.code = new e("code", { fontCharacter: "\\eac4" }), e.collapseAll = new e("collapse-all", { fontCharacter: "\\eac5" }), e.colorMode = new e("color-mode", { fontCharacter: "\\eac6" }), e.commentDiscussion = new e("comment-discussion", { fontCharacter: "\\eac7" }), e.compareChanges = new e("compare-changes", { fontCharacter: "\\eafd" }), e.creditCard = new e("credit-card", { fontCharacter: "\\eac9" }), e.dash = new e("dash", { fontCharacter: "\\eacc" }), e.dashboard = new e("dashboard", { fontCharacter: "\\eacd" }), e.database = new e("database", { fontCharacter: "\\eace" }), e.debugContinue = new e("debug-continue", { fontCharacter: "\\eacf" }), e.debugDisconnect = new e("debug-disconnect", { fontCharacter: "\\ead0" }), e.debugPause = new e("debug-pause", { fontCharacter: "\\ead1" }), e.debugRestart = new e("debug-restart", { fontCharacter: "\\ead2" }), e.debugStart = new e("debug-start", { fontCharacter: "\\ead3" }), e.debugStepInto = new e("debug-step-into", { fontCharacter: "\\ead4" }), e.debugStepOut = new e("debug-step-out", { fontCharacter: "\\ead5" }), e.debugStepOver = new e("debug-step-over", { fontCharacter: "\\ead6" }), e.debugStop = new e("debug-stop", { fontCharacter: "\\ead7" }), e.debug = new e("debug", { fontCharacter: "\\ead8" }), e.deviceCameraVideo = new e("device-camera-video", { fontCharacter: "\\ead9" }), e.deviceCamera = new e("device-camera", { fontCharacter: "\\eada" }), e.deviceMobile = new e("device-mobile", { fontCharacter: "\\eadb" }), e.diffAdded = new e("diff-added", { fontCharacter: "\\eadc" }), e.diffIgnored = new e("diff-ignored", { fontCharacter: "\\eadd" }), e.diffModified = new e("diff-modified", { fontCharacter: "\\eade" }), e.diffRemoved = new e("diff-removed", { fontCharacter: "\\eadf" }), e.diffRenamed = new e("diff-renamed", { fontCharacter: "\\eae0" }), e.diff = new e("diff", { fontCharacter: "\\eae1" }), e.discard = new e("discard", { fontCharacter: "\\eae2" }), e.editorLayout = new e("editor-layout", { fontCharacter: "\\eae3" }), e.emptyWindow = new e("empty-window", { fontCharacter: "\\eae4" }), e.exclude = new e("exclude", { fontCharacter: "\\eae5" }), e.extensions = new e("extensions", { fontCharacter: "\\eae6" }), e.eyeClosed = new e("eye-closed", { fontCharacter: "\\eae7" }), e.fileBinary = new e("file-binary", { fontCharacter: "\\eae8" }), e.fileCode = new e("file-code", { fontCharacter: "\\eae9" }), e.fileMedia = new e("file-media", { fontCharacter: "\\eaea" }), e.filePdf = new e("file-pdf", { fontCharacter: "\\eaeb" }), e.fileSubmodule = new e("file-submodule", { fontCharacter: "\\eaec" }), e.fileSymlinkDirectory = new e("file-symlink-directory", { fontCharacter: "\\eaed" }), e.fileSymlinkFile = new e("file-symlink-file", { fontCharacter: "\\eaee" }), e.fileZip = new e("file-zip", { fontCharacter: "\\eaef" }), e.files = new e("files", { fontCharacter: "\\eaf0" }), e.filter = new e("filter", { fontCharacter: "\\eaf1" }), e.flame = new e("flame", { fontCharacter: "\\eaf2" }), e.foldDown = new e("fold-down", { fontCharacter: "\\eaf3" }), e.foldUp = new e("fold-up", { fontCharacter: "\\eaf4" }), e.fold = new e("fold", { fontCharacter: "\\eaf5" }), e.folderActive = new e("folder-active", { fontCharacter: "\\eaf6" }), e.folderOpened = new e("folder-opened", { fontCharacter: "\\eaf7" }), e.gear = new e("gear", { fontCharacter: "\\eaf8" }), e.gift = new e("gift", { fontCharacter: "\\eaf9" }), e.gistSecret = new e("gist-secret", { fontCharacter: "\\eafa" }), e.gist = new e("gist", { fontCharacter: "\\eafb" }), e.gitCommit = new e("git-commit", { fontCharacter: "\\eafc" }), e.gitCompare = new e("git-compare", { fontCharacter: "\\eafd" }), e.gitMerge = new e("git-merge", { fontCharacter: "\\eafe" }), e.githubAction = new e("github-action", { fontCharacter: "\\eaff" }), e.githubAlt = new e("github-alt", { fontCharacter: "\\eb00" }), e.globe = new e("globe", { fontCharacter: "\\eb01" }), e.grabber = new e("grabber", { fontCharacter: "\\eb02" }), e.graph = new e("graph", { fontCharacter: "\\eb03" }), e.gripper = new e("gripper", { fontCharacter: "\\eb04" }), e.heart = new e("heart", { fontCharacter: "\\eb05" }), e.home = new e("home", { fontCharacter: "\\eb06" }), e.horizontalRule = new e("horizontal-rule", { fontCharacter: "\\eb07" }), e.hubot = new e("hubot", { fontCharacter: "\\eb08" }), e.inbox = new e("inbox", { fontCharacter: "\\eb09" }), e.issueClosed = new e("issue-closed", { fontCharacter: "\\eba4" }), e.issueReopened = new e("issue-reopened", { fontCharacter: "\\eb0b" }), e.issues = new e("issues", { fontCharacter: "\\eb0c" }), e.italic = new e("italic", { fontCharacter: "\\eb0d" }), e.jersey = new e("jersey", { fontCharacter: "\\eb0e" }), e.json = new e("json", { fontCharacter: "\\eb0f" }), e.kebabVertical = new e("kebab-vertical", { fontCharacter: "\\eb10" }), e.key = new e("key", { fontCharacter: "\\eb11" }), e.law = new e("law", { fontCharacter: "\\eb12" }), e.lightbulbAutofix = new e("lightbulb-autofix", { fontCharacter: "\\eb13" }), e.linkExternal = new e("link-external", { fontCharacter: "\\eb14" }), e.link = new e("link", { fontCharacter: "\\eb15" }), e.listOrdered = new e("list-ordered", { fontCharacter: "\\eb16" }), e.listUnordered = new e("list-unordered", { fontCharacter: "\\eb17" }), e.liveShare = new e("live-share", { fontCharacter: "\\eb18" }), e.loading = new e("loading", { fontCharacter: "\\eb19" }), e.location = new e("location", { fontCharacter: "\\eb1a" }), e.mailRead = new e("mail-read", { fontCharacter: "\\eb1b" }), e.mail = new e("mail", { fontCharacter: "\\eb1c" }), e.markdown = new e("markdown", { fontCharacter: "\\eb1d" }), e.megaphone = new e("megaphone", { fontCharacter: "\\eb1e" }), e.mention = new e("mention", { fontCharacter: "\\eb1f" }), e.milestone = new e("milestone", { fontCharacter: "\\eb20" }), e.mortarBoard = new e("mortar-board", { fontCharacter: "\\eb21" }), e.move = new e("move", { fontCharacter: "\\eb22" }), e.multipleWindows = new e("multiple-windows", { fontCharacter: "\\eb23" }), e.mute = new e("mute", { fontCharacter: "\\eb24" }), e.noNewline = new e("no-newline", { fontCharacter: "\\eb25" }), e.note = new e("note", { fontCharacter: "\\eb26" }), e.octoface = new e("octoface", { fontCharacter: "\\eb27" }), e.openPreview = new e("open-preview", { fontCharacter: "\\eb28" }), e.package_ = new e("package", { fontCharacter: "\\eb29" }), e.paintcan = new e("paintcan", { fontCharacter: "\\eb2a" }), e.pin = new e("pin", { fontCharacter: "\\eb2b" }), e.play = new e("play", { fontCharacter: "\\eb2c" }), e.run = new e("run", { fontCharacter: "\\eb2c" }), e.plug = new e("plug", { fontCharacter: "\\eb2d" }), e.preserveCase = new e("preserve-case", { fontCharacter: "\\eb2e" }), e.preview = new e("preview", { fontCharacter: "\\eb2f" }), e.project = new e("project", { fontCharacter: "\\eb30" }), e.pulse = new e("pulse", { fontCharacter: "\\eb31" }), e.question = new e("question", { fontCharacter: "\\eb32" }), e.quote = new e("quote", { fontCharacter: "\\eb33" }), e.radioTower = new e("radio-tower", { fontCharacter: "\\eb34" }), e.reactions = new e("reactions", { fontCharacter: "\\eb35" }), e.references = new e("references", { fontCharacter: "\\eb36" }), e.refresh = new e("refresh", { fontCharacter: "\\eb37" }), e.regex = new e("regex", { fontCharacter: "\\eb38" }), e.remoteExplorer = new e("remote-explorer", { fontCharacter: "\\eb39" }), e.remote = new e("remote", { fontCharacter: "\\eb3a" }), e.remove = new e("remove", { fontCharacter: "\\eb3b" }), e.replaceAll = new e("replace-all", { fontCharacter: "\\eb3c" }), e.replace = new e("replace", { fontCharacter: "\\eb3d" }), e.repoClone = new e("repo-clone", { fontCharacter: "\\eb3e" }), e.repoForcePush = new e("repo-force-push", { fontCharacter: "\\eb3f" }), e.repoPull = new e("repo-pull", { fontCharacter: "\\eb40" }), e.repoPush = new e("repo-push", { fontCharacter: "\\eb41" }), e.report = new e("report", { fontCharacter: "\\eb42" }), e.requestChanges = new e("request-changes", { fontCharacter: "\\eb43" }), e.rocket = new e("rocket", { fontCharacter: "\\eb44" }), e.rootFolderOpened = new e("root-folder-opened", { fontCharacter: "\\eb45" }), e.rootFolder = new e("root-folder", { fontCharacter: "\\eb46" }), e.rss = new e("rss", { fontCharacter: "\\eb47" }), e.ruby = new e("ruby", { fontCharacter: "\\eb48" }), e.saveAll = new e("save-all", { fontCharacter: "\\eb49" }), e.saveAs = new e("save-as", { fontCharacter: "\\eb4a" }), e.save = new e("save", { fontCharacter: "\\eb4b" }), e.screenFull = new e("screen-full", { fontCharacter: "\\eb4c" }), e.screenNormal = new e("screen-normal", { fontCharacter: "\\eb4d" }), e.searchStop = new e("search-stop", { fontCharacter: "\\eb4e" }), e.server = new e("server", { fontCharacter: "\\eb50" }), e.settingsGear = new e("settings-gear", { fontCharacter: "\\eb51" }), e.settings = new e("settings", { fontCharacter: "\\eb52" }), e.shield = new e("shield", { fontCharacter: "\\eb53" }), e.smiley = new e("smiley", { fontCharacter: "\\eb54" }), e.sortPrecedence = new e("sort-precedence", { fontCharacter: "\\eb55" }), e.splitHorizontal = new e("split-horizontal", { fontCharacter: "\\eb56" }), e.splitVertical = new e("split-vertical", { fontCharacter: "\\eb57" }), e.squirrel = new e("squirrel", { fontCharacter: "\\eb58" }), e.starFull = new e("star-full", { fontCharacter: "\\eb59" }), e.starHalf = new e("star-half", { fontCharacter: "\\eb5a" }), e.symbolClass = new e("symbol-class", { fontCharacter: "\\eb5b" }), e.symbolColor = new e("symbol-color", { fontCharacter: "\\eb5c" }), e.symbolConstant = new e("symbol-constant", { fontCharacter: "\\eb5d" }), e.symbolEnumMember = new e("symbol-enum-member", { fontCharacter: "\\eb5e" }), e.symbolField = new e("symbol-field", { fontCharacter: "\\eb5f" }), e.symbolFile = new e("symbol-file", { fontCharacter: "\\eb60" }), e.symbolInterface = new e("symbol-interface", { fontCharacter: "\\eb61" }), e.symbolKeyword = new e("symbol-keyword", { fontCharacter: "\\eb62" }), e.symbolMisc = new e("symbol-misc", { fontCharacter: "\\eb63" }), e.symbolOperator = new e("symbol-operator", { fontCharacter: "\\eb64" }), e.symbolProperty = new e("symbol-property", { fontCharacter: "\\eb65" }), e.wrench = new e("wrench", { fontCharacter: "\\eb65" }), e.wrenchSubaction = new e("wrench-subaction", { fontCharacter: "\\eb65" }), e.symbolSnippet = new e("symbol-snippet", { fontCharacter: "\\eb66" }), e.tasklist = new e("tasklist", { fontCharacter: "\\eb67" }), e.telescope = new e("telescope", { fontCharacter: "\\eb68" }), e.textSize = new e("text-size", { fontCharacter: "\\eb69" }), e.threeBars = new e("three-bars", { fontCharacter: "\\eb6a" }), e.thumbsdown = new e("thumbsdown", { fontCharacter: "\\eb6b" }), e.thumbsup = new e("thumbsup", { fontCharacter: "\\eb6c" }), e.tools = new e("tools", { fontCharacter: "\\eb6d" }), e.triangleDown = new e("triangle-down", { fontCharacter: "\\eb6e" }), e.triangleLeft = new e("triangle-left", { fontCharacter: "\\eb6f" }), e.triangleRight = new e("triangle-right", { fontCharacter: "\\eb70" }), e.triangleUp = new e("triangle-up", { fontCharacter: "\\eb71" }), e.twitter = new e("twitter", { fontCharacter: "\\eb72" }), e.unfold = new e("unfold", { fontCharacter: "\\eb73" }), e.unlock = new e("unlock", { fontCharacter: "\\eb74" }), e.unmute = new e("unmute", { fontCharacter: "\\eb75" }), e.unverified = new e("unverified", { fontCharacter: "\\eb76" }), e.verified = new e("verified", { fontCharacter: "\\eb77" }), e.versions = new e("versions", { fontCharacter: "\\eb78" }), e.vmActive = new e("vm-active", { fontCharacter: "\\eb79" }), e.vmOutline = new e("vm-outline", { fontCharacter: "\\eb7a" }), e.vmRunning = new e("vm-running", { fontCharacter: "\\eb7b" }), e.watch = new e("watch", { fontCharacter: "\\eb7c" }), e.whitespace = new e("whitespace", { fontCharacter: "\\eb7d" }), e.wholeWord = new e("whole-word", { fontCharacter: "\\eb7e" }), e.window = new e("window", { fontCharacter: "\\eb7f" }), e.wordWrap = new e("word-wrap", { fontCharacter: "\\eb80" }), e.zoomIn = new e("zoom-in", { fontCharacter: "\\eb81" }), e.zoomOut = new e("zoom-out", { fontCharacter: "\\eb82" }), e.listFilter = new e("list-filter", { fontCharacter: "\\eb83" }), e.listFlat = new e("list-flat", { fontCharacter: "\\eb84" }), e.listSelection = new e("list-selection", { fontCharacter: "\\eb85" }), e.selection = new e("selection", { fontCharacter: "\\eb85" }), e.listTree = new e("list-tree", { fontCharacter: "\\eb86" }), e.debugBreakpointFunctionUnverified = new e( "debug-breakpoint-function-unverified", { fontCharacter: "\\eb87" }), e.debugBreakpointFunction = new e("debug-breakpoint-function", { fontCharacter: "\\eb88" }), e.debugBreakpointFunctionDisabled = new e( "debug-breakpoint-function-disabled", { fontCharacter: "\\eb88" }), e.debugStackframeActive = new e("debug-stackframe-active", { fontCharacter: "\\eb89" }), e.debugStackframeDot = new e("debug-stackframe-dot", { fontCharacter: "\\eb8a" }), e.debugStackframe = new e("debug-stackframe", { fontCharacter: "\\eb8b" }), e.debugStackframeFocused = new e("debug-stackframe-focused", { fontCharacter: "\\eb8b" }), e.debugBreakpointUnsupported = new e("debug-breakpoint-unsupported", { fontCharacter: "\\eb8c" }), e.symbolString = new e("symbol-string", { fontCharacter: "\\eb8d" }), e.debugReverseContinue = new e("debug-reverse-continue", { fontCharacter: "\\eb8e" }), e.debugStepBack = new e("debug-step-back", { fontCharacter: "\\eb8f" }), e.debugRestartFrame = new e("debug-restart-frame", { fontCharacter: "\\eb90" }), e.callIncoming = new e("call-incoming", { fontCharacter: "\\eb92" }), e.callOutgoing = new e("call-outgoing", { fontCharacter: "\\eb93" }), e.menu = new e("menu", { fontCharacter: "\\eb94" }), e.expandAll = new e("expand-all", { fontCharacter: "\\eb95" }), e.feedback = new e("feedback", { fontCharacter: "\\eb96" }), e.groupByRefType = new e("group-by-ref-type", { fontCharacter: "\\eb97" }), e.ungroupByRefType = new e("ungroup-by-ref-type", { fontCharacter: "\\eb98" }), e.account = new e("account", { fontCharacter: "\\eb99" }), e.bellDot = new e("bell-dot", { fontCharacter: "\\eb9a" }), e.debugConsole = new e("debug-console", { fontCharacter: "\\eb9b" }), e.library = new e("library", { fontCharacter: "\\eb9c" }), e.output = new e("output", { fontCharacter: "\\eb9d" }), e.runAll = new e("run-all", { fontCharacter: "\\eb9e" }), e.syncIgnored = new e("sync-ignored", { fontCharacter: "\\eb9f" }), e.pinned = new e("pinned", { fontCharacter: "\\eba0" }), e.githubInverted = new e("github-inverted", { fontCharacter: "\\eba1" }), e.debugAlt = new e("debug-alt", { fontCharacter: "\\eb91" }), e.serverProcess = new e("server-process", { fontCharacter: "\\eba2" }), e.serverEnvironment = new e("server-environment", { fontCharacter: "\\eba3" }), e.pass = new e("pass", { fontCharacter: "\\eba4" }), e.stopCircle = new e("stop-circle", { fontCharacter: "\\eba5" }), e.playCircle = new e("play-circle", { fontCharacter: "\\eba6" }), e.record = new e("record", { fontCharacter: "\\eba7" }), e.debugAltSmall = new e("debug-alt-small", { fontCharacter: "\\eba8" }), e.vmConnect = new e("vm-connect", { fontCharacter: "\\eba9" }), e.cloud = new e("cloud", { fontCharacter: "\\ebaa" }), e.merge = new e("merge", { fontCharacter: "\\ebab" }), e.exportIcon = new e("export", { fontCharacter: "\\ebac" }), e.graphLeft = new e("graph-left", { fontCharacter: "\\ebad" }), e.magnet = new e("magnet", { fontCharacter: "\\ebae" }), e.notebook = new e("notebook", { fontCharacter: "\\ebaf" }), e.redo = new e("redo", { fontCharacter: "\\ebb0" }), e.checkAll = new e("check-all", { fontCharacter: "\\ebb1" }), e.pinnedDirty = new e("pinned-dirty", { fontCharacter: "\\ebb2" }), e.passFilled = new e("pass-filled", { fontCharacter: "\\ebb3" }), e.circleLargeFilled = new e("circle-large-filled", { fontCharacter: "\\ebb4" }), e.circleLargeOutline = new e("circle-large-outline", { fontCharacter: "\\ebb5" }), e.combine = new e("combine", { fontCharacter: "\\ebb6" }), e.gather = new e("gather", { fontCharacter: "\\ebb6" }), e.table = new e("table", { fontCharacter: "\\ebb7" }), e.variableGroup = new e("variable-group", { fontCharacter: "\\ebb8" }), e.typeHierarchy = new e("type-hierarchy", { fontCharacter: "\\ebb9" }), e.typeHierarchySub = new e("type-hierarchy-sub", { fontCharacter: "\\ebba" }), e.typeHierarchySuper = new e("type-hierarchy-super", { fontCharacter: "\\ebbb" }), e.gitPullRequestCreate = new e("git-pull-request-create", { fontCharacter: "\\ebbc" }), e.runAbove = new e("run-above", { fontCharacter: "\\ebbd" }), e.runBelow = new e("run-below", { fontCharacter: "\\ebbe" }), e.notebookTemplate = new e("notebook-template", { fontCharacter: "\\ebbf" }), e.debugRerun = new e("debug-rerun", { fontCharacter: "\\ebc0" }), e.workspaceTrusted = new e("workspace-trusted", { fontCharacter: "\\ebc1" }), e.workspaceUntrusted = new e("workspace-untrusted", { fontCharacter: "\\ebc2" }), e.workspaceUnspecified = new e("workspace-unspecified", { fontCharacter: "\\ebc3" }), e.terminalCmd = new e("terminal-cmd", { fontCharacter: "\\ebc4" }), e.terminalDebian = new e("terminal-debian", { fontCharacter: "\\ebc5" }), e.terminalLinux = new e("terminal-linux", { fontCharacter: "\\ebc6" }), e.terminalPowershell = new e("terminal-powershell", { fontCharacter: "\\ebc7" }), e.terminalTmux = new e("terminal-tmux", { fontCharacter: "\\ebc8" }), e.terminalUbuntu = new e("terminal-ubuntu", { fontCharacter: "\\ebc9" }), e.terminalBash = new e("terminal-bash", { fontCharacter: "\\ebca" }), e.arrowSwap = new e("arrow-swap", { fontCharacter: "\\ebcb" }), e.copy = new e("copy", { fontCharacter: "\\ebcc" }), e.personAdd = new e("person-add", { fontCharacter: "\\ebcd" }), e.filterFilled = new e("filter-filled", { fontCharacter: "\\ebce" }), e.wand = new e("wand", { fontCharacter: "\\ebcf" }), e.debugLineByLine = new e("debug-line-by-line", { fontCharacter: "\\ebd0" }), e.inspect = new e("inspect", { fontCharacter: "\\ebd1" }), e.layers = new e("layers", { fontCharacter: "\\ebd2" }), e.layersDot = new e("layers-dot", { fontCharacter: "\\ebd3" }), e.layersActive = new e("layers-active", { fontCharacter: "\\ebd4" }), e.compass = new e("compass", { fontCharacter: "\\ebd5" }), e.compassDot = new e("compass-dot", { fontCharacter: "\\ebd6" }), e.compassActive = new e("compass-active", { fontCharacter: "\\ebd7" }), e.azure = new e("azure", { fontCharacter: "\\ebd8" }), e.issueDraft = new e("issue-draft", { fontCharacter: "\\ebd9" }), e.gitPullRequestClosed = new e("git-pull-request-closed", { fontCharacter: "\\ebda" }), e.gitPullRequestDraft = new e("git-pull-request-draft", { fontCharacter: "\\ebdb" }), e.debugAll = new e("debug-all", { fontCharacter: "\\ebdc" }), e.debugCoverage = new e("debug-coverage", { fontCharacter: "\\ebdd" }), e.runErrors = new e("run-errors", { fontCharacter: "\\ebde" }), e.folderLibrary = new e("folder-library", { fontCharacter: "\\ebdf" }), e.dropDownButton = new e("drop-down-button", e.chevronDown.definition) }(l || (l = {})) }, 6626: (e, t, i) => { "use strict"; i.d(t, { E: () => o, r: () => r }); const n = Object.prototype.hasOwnProperty; function o(e, t) { for (let i in e) if (n.call(e, i) && !1 === t({ key: i, value: e[i] }, (function() { delete e[i] }))) return } class r { constructor() { this.map = new Map } add(e, t) { let i = this.map.get(e); i || (i = new Set, this.map.set(e, i)), i.add(t) } delete(e, t) { const i = this.map.get(e); i && (i.delete(t), 0 === i.size && this.map.delete(e)) } forEach(e, t) { const i = this.map.get(e); i && i.forEach(t) } } }, 1264: (e, t, i) => { "use strict"; function n(e, t) { const i = Math.pow(10, t); return Math.round(e * i) / i } i.d(t, { VS: () => o, tx: () => s, Il: () => a }); class o { constructor(e, t, i, o = 1) { this._rgbaBrand = void 0, this.r = 0 | Math.min(255, Math.max(0, e)), this.g = 0 | Math.min(255, Math.max(0, t)), this.b = 0 | Math.min(255, Math.max(0, i)), this.a = n(Math.max(Math.min(1, o), 0), 3) } static equals(e, t) { return e.r === t.r && e.g === t.g && e.b === t.b && e.a === t.a } } class r { constructor(e, t, i, o) { this._hslaBrand = void 0, this.h = 0 | Math.max(Math.min(360, e), 0), this.s = n(Math.max(Math.min(1, t), 0), 3), this.l = n(Math.max(Math.min( 1, i), 0), 3), this.a = n(Math.max(Math.min(1, o), 0), 3) } static equals(e, t) { return e.h === t.h && e.s === t.s && e.l === t.l && e.a === t.a } static fromRGBA(e) { const t = e.r / 255, i = e.g / 255, n = e.b / 255, o = e.a, s = Math.max(t, i, n), a = Math.min(t, i, n); let l = 0, d = 0; const c = (a + s) / 2, h = s - a; if (h > 0) { switch (d = Math.min(c <= .5 ? h / (2 * c) : h / (2 - 2 * c), 1), s) { case t: l = (i - n) / h + (i < n ? 6 : 0); break; case i: l = (n - t) / h + 2; break; case n: l = (t - i) / h + 4 } l *= 60, l = Math.round(l) } return new r(l, d, c, o) } static _hue2rgb(e, t, i) { return i < 0 && (i += 1), i > 1 && (i -= 1), i < 1 / 6 ? e + 6 * (t - e) * i : i < .5 ? t : i < 2 / 3 ? e + (t - e) * (2 / 3 - i) * 6 : e } static toRGBA(e) { const t = e.h / 360, { s: i, l: n, a: s } = e; let a, l, d; if (0 === i) a = l = d = n; else { const e = n < .5 ? n * (1 + i) : n + i - n * i, o = 2 * n - e; a = r._hue2rgb(o, e, t + 1 / 3), l = r._hue2rgb(o, e, t), d = r._hue2rgb( o, e, t - 1 / 3) } return new o(Math.round(255 * a), Math.round(255 * l), Math.round(255 * d), s) } } class s { constructor(e, t, i, o) { this._hsvaBrand = void 0, this.h = 0 | Math.max(Math.min(360, e), 0), this.s = n(Math.max(Math.min(1, t), 0), 3), this.v = n(Math.max(Math.min( 1, i), 0), 3), this.a = n(Math.max(Math.min(1, o), 0), 3) } static equals(e, t) { return e.h === t.h && e.s === t.s && e.v === t.v && e.a === t.a } static fromRGBA(e) { const t = e.r / 255, i = e.g / 255, n = e.b / 255, o = Math.max(t, i, n), r = o - Math.min(t, i, n), a = 0 === o ? 0 : r / o; let l; return l = 0 === r ? 0 : o === t ? ((i - n) / r % 6 + 6) % 6 : o === i ? (n - t) / r + 2 : (t - i) / r + 4, new s(Math.round(60 * l), a, o, e.a) } static toRGBA(e) { const { h: t, s: i, v: n, a: r } = e, s = n * i, a = s * (1 - Math.abs(t / 60 % 2 - 1)), l = n - s; let [d, c, h] = [0, 0, 0]; return t < 60 ? (d = s, c = a) : t < 120 ? (d = a, c = s) : t < 180 ? (c = s, h = a) : t < 240 ? (c = a, h = s) : t < 300 ? (d = a, h = s) : t <= 360 && (d = s, h = a), d = Math.round(255 * (d + l)), c = Math.round( 255 * (c + l)), h = Math.round(255 * (h + l)), new o(d, c, h, r) } } class a { constructor(e) { if (!e) throw new Error("Color needs a value"); if (e instanceof o) this.rgba = e; else if (e instanceof r) this._hsla = e, this.rgba = r.toRGBA(e); else { if (!(e instanceof s)) throw new Error("Invalid color ctor argument"); this._hsva = e, this.rgba = s.toRGBA(e) } } static fromHex(e) { return a.Format.CSS.parseHex(e) || a.red } get hsla() { return this._hsla ? this._hsla : r.fromRGBA(this.rgba) } get hsva() { return this._hsva ? this._hsva : s.fromRGBA(this.rgba) } equals(e) { return !!e && o.equals(this.rgba, e.rgba) && r.equals(this.hsla, e.hsla) && s.equals(this.hsva, e.hsva) } getRelativeLuminance() { return n(.2126 * a._relativeLuminanceForComponent(this.rgba.r) + .7152 * a._relativeLuminanceForComponent(this.rgba.g) + .0722 * a._relativeLuminanceForComponent( this.rgba.b), 4) } static _relativeLuminanceForComponent(e) { const t = e / 255; return t <= .03928 ? t / 12.92 : Math.pow((t + .055) / 1.055, 2.4) } isLighter() { return (299 * this.rgba.r + 587 * this.rgba.g + 114 * this.rgba.b) / 1e3 >= 128 } isLighterThan(e) { return this.getRelativeLuminance() > e.getRelativeLuminance() } isDarkerThan(e) { return this.getRelativeLuminance() < e.getRelativeLuminance() } lighten(e) { return new a(new r(this.hsla.h, this.hsla.s, this.hsla.l + this.hsla.l * e, this.hsla.a)) } darken(e) { return new a(new r(this.hsla.h, this.hsla.s, this.hsla.l - this.hsla.l * e, this.hsla.a)) } transparent(e) { const { r: t, g: i, b: n, a: r } = this.rgba; return new a(new o(t, i, n, r * e)) } isTransparent() { return 0 === this.rgba.a } isOpaque() { return 1 === this.rgba.a } opposite() { return new a(new o(255 - this.rgba.r, 255 - this.rgba.g, 255 - this.rgba .b, this.rgba.a)) } toString() { return "" + a.Format.CSS.format(this) } static getLighterColor(e, t, i) { if (e.isLighterThan(t)) return e; i = i || .5; const n = e.getRelativeLuminance(), o = t.getRelativeLuminance(); return i = i * (o - n) / o, e.lighten(i) } static getDarkerColor(e, t, i) { if (e.isDarkerThan(t)) return e; i = i || .5; const n = e.getRelativeLuminance(); return i = i * (n - t.getRelativeLuminance()) / n, e.darken(i) } } a.white = new a(new o(255, 255, 255, 1)), a.black = new a(new o(0, 0, 0, 1)), a.red = new a(new o(255, 0, 0, 1)), a.blue = new a(new o(0, 0, 255, 1)), a.cyan = new a(new o(0, 255, 255, 1)), a.lightgrey = new a(new o( 211, 211, 211, 1)), a.transparent = new a(new o(0, 0, 0, 0)), function(e) { let t; ! function(t) { let i; ! function(t) { function i(e) { const t = e.toString(16); return 2 !== t.length ? "0" + t : t } function n(e) { switch (e) { case 48: return 0; case 49: return 1; case 50: return 2; case 51: return 3; case 52: return 4; case 53: return 5; case 54: return 6; case 55: return 7; case 56: return 8; case 57: return 9; case 97: case 65: return 10; case 98: case 66: return 11; case 99: case 67: return 12; case 100: case 68: return 13; case 101: case 69: return 14; case 102: case 70: return 15 } return 0 } t.formatRGB = function(t) { return 1 === t.rgba.a ? `rgb(${t.rgba.r}, ${t.rgba.g}, ${t.rgba.b})` : e.Format.CSS.formatRGBA( t) }, t.formatRGBA = function(e) { return `rgba(${e.rgba.r}, ${e.rgba.g}, ${e.rgba.b}, ${+e.rgba.a.toFixed(2)})` }, t.formatHSL = function(t) { return 1 === t.hsla.a ? `hsl(${t.hsla.h}, ${(100*t.hsla.s).toFixed(2)}%, ${(100*t.hsla.l).toFixed(2)}%)` : e.Format.CSS.formatHSLA(t) }, t.formatHSLA = function(e) { return `hsla(${e.hsla.h}, ${(100*e.hsla.s).toFixed(2)}%, ${(100*e.hsla.l).toFixed(2)}%, ${e.hsla.a.toFixed(2)})` }, t.formatHex = function(e) { return `#${i(e.rgba.r)}${i(e.rgba.g)}${i(e.rgba.b)}` }, t.formatHexA = function(t, n = !1) { return n && 1 === t.rgba.a ? e.Format.CSS.formatHex(t) : `#${i(t.rgba.r)}${i(t.rgba.g)}${i(t.rgba.b)}${i(Math.round(255*t.rgba.a))}` }, t.format = function(t) { return t.isOpaque() ? e.Format.CSS.formatHex(t) : e.Format.CSS.formatRGBA( t) }, t.parseHex = function(t) { const i = t.length; if (0 === i) return null; if (35 !== t.charCodeAt(0)) return null; if (7 === i) { const i = 16 * n(t.charCodeAt(1)) + n(t.charCodeAt(2)), r = 16 * n(t.charCodeAt(3)) + n(t.charCodeAt(4)), s = 16 * n(t.charCodeAt(5)) + n(t.charCodeAt(6)); return new e(new o(i, r, s, 1)) } if (9 === i) { const i = 16 * n(t.charCodeAt(1)) + n(t.charCodeAt(2)), r = 16 * n(t.charCodeAt(3)) + n(t.charCodeAt(4)), s = 16 * n(t.charCodeAt(5)) + n(t.charCodeAt(6)), a = 16 * n(t.charCodeAt(7)) + n(t.charCodeAt(8)); return new e(new o(i, r, s, a / 255)) } if (4 === i) { const i = n(t.charCodeAt(1)), r = n(t.charCodeAt(2)), s = n(t.charCodeAt(3)); return new e(new o(16 * i + i, 16 * r + r, 16 * s + s)) } if (5 === i) { const i = n(t.charCodeAt(1)), r = n(t.charCodeAt(2)), s = n(t.charCodeAt(3)), a = n(t.charCodeAt(4)); return new e(new o(16 * i + i, 16 * r + r, 16 * s + s, (16 * a + a) / 255)) } return null } }(i = t.CSS || (t.CSS = {})) }(t = e.Format || (e.Format = {})) }(a || (a = {})) }, 9898: (e, t, i) => { "use strict"; function n(e, t, i) { let n = null, o = null; if ("function" == typeof i.value ? (n = "value", o = i.value, 0 !== o.length && console.warn( "Memoize should only be used in functions with zero parameters")) : "function" == typeof i.get && (n = "get", o = i.get), !o) throw new Error( "not supported"); const r = `$memoize$${t}`; i[n] = function(...e) { return this.hasOwnProperty(r) || Object.defineProperty(this, r, { configurable: !1, enumerable: !1, writable: !1, value: o.apply(this, e) }), this[r] } } i.d(t, { H: () => n }) }, 2484: (e, t, i) => { "use strict"; i.d(t, { Hs: () => c, a$: () => s }); class n { constructor(e, t, i, n) { this.originalStart = e, this.originalLength = t, this.modifiedStart = i, this.modifiedLength = n } getOriginalEnd() { return this.originalStart + this.originalLength } getModifiedEnd() { return this.modifiedStart + this.modifiedLength } } var o = i(9954); class r { constructor(e) { this.source = e } getElements() { const e = this.source, t = new Int32Array(e.length); for (let i = 0, n = e.length; i < n; i++) t[i] = e.charCodeAt(i); return t } } function s(e, t, i) { return new c(new r(e), new r(t)).ComputeDiff(i).changes } class a { static Assert(e, t) { if (!e) throw new Error(t) } } class l { static Copy(e, t, i, n, o) { for (let r = 0; r < o; r++) i[n + r] = e[t + r] } static Copy2(e, t, i, n, o) { for (let r = 0; r < o; r++) i[n + r] = e[t + r] } } class d { constructor() { this.m_changes = [], this.m_originalStart = 1073741824, this.m_modifiedStart = 1073741824, this.m_originalCount = 0, this.m_modifiedCount = 0 } MarkNextChange() { (this.m_originalCount > 0 || this.m_modifiedCount > 0) && this.m_changes .push(new n(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, t) { this.m_originalStart = Math.min(this.m_originalStart, e), this.m_modifiedStart = Math.min(this.m_modifiedStart, t), this.m_originalCount++ } AddModifiedElement(e, t) { this.m_originalStart = Math.min(this.m_originalStart, e), this.m_modifiedStart = Math.min(this.m_modifiedStart, t), 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 c { constructor(e, t, i = null) { this.ContinueProcessingPredicate = i, this._originalSequence = e, this ._modifiedSequence = t; const [n, o, r] = c._getElements(e), [s, a, l] = c._getElements(t); this._hasStrings = r && l, this._originalStringElements = n, this._originalElementsOrHash = o, this._modifiedStringElements = s, this._modifiedElementsOrHash = a, this.m_forwardHistory = [], this.m_reverseHistory = [] } static _isStringArray(e) { return e.length > 0 && "string" == typeof e[0] } static _getElements(e) { const t = e.getElements(); if (c._isStringArray(t)) { const e = new Int32Array(t.length); for (let i = 0, n = t.length; i < n; i++) e[i] = (0, o.Cv)(t[i], 0); return [t, e, !0] } return t instanceof Int32Array ? [ [], t, !1 ] : [ [], new Int32Array(t), !1 ] } ElementsAreEqual(e, t) { return this._originalElementsOrHash[e] === this._modifiedElementsOrHash[ t] && (!this._hasStrings || this._originalStringElements[e] === this ._modifiedStringElements[t]) } ElementsAreStrictEqual(e, t) { return !!this.ElementsAreEqual(e, t) && c._getStrictElement(this._originalSequence, e) === c._getStrictElement(this._modifiedSequence, t) } static _getStrictElement(e, t) { return "function" == typeof e.getStrictElement ? e.getStrictElement(t) : null } OriginalElementsAreEqual(e, t) { return this._originalElementsOrHash[e] === this._originalElementsOrHash[ t] && (!this._hasStrings || this._originalStringElements[e] === this ._originalStringElements[t]) } ModifiedElementsAreEqual(e, t) { return this._modifiedElementsOrHash[e] === this._modifiedElementsOrHash[ t] && (!this._hasStrings || this._modifiedStringElements[e] === this ._modifiedStringElements[t]) } ComputeDiff(e) { return this._ComputeDiff(0, this._originalElementsOrHash.length - 1, 0, this._modifiedElementsOrHash.length - 1, e) } _ComputeDiff(e, t, i, n, o) { const r = [!1]; let s = this.ComputeDiffRecursive(e, t, i, n, r); return o && (s = this.PrettifyChanges(s)), { quitEarly: r[0], changes: s } } ComputeDiffRecursive(e, t, i, o, r) { for (r[0] = !1; e <= t && i <= o && this.ElementsAreEqual(e, i);) e++, i++; for (; t >= e && o >= i && this.ElementsAreEqual(t, o);) t--, o--; if (e > t || i > o) { let r; return i <= o ? (a.Assert(e === t + 1, "originalStart should only be one more than originalEnd"), r = [ new n(e, 0, i, o - i + 1) ]) : e <= t ? (a.Assert(i === o + 1, "modifiedStart should only be one more than modifiedEnd"), r = [ new n(e, t - e + 1, i, 0) ]) : (a.Assert(e === t + 1, "originalStart should only be one more than originalEnd"), a.Assert( i === o + 1, "modifiedStart should only be one more than modifiedEnd"), r = []), r } const s = [0], l = [0], d = this.ComputeRecursionPoint(e, t, i, o, s, l, r), c = s[0], h = l[0]; if (null !== d) return d; if (!r[0]) { const s = this.ComputeDiffRecursive(e, c, i, h, r); let a = []; return a = r[0] ? [new n(c + 1, t - (c + 1) + 1, h + 1, o - (h + 1) + 1)] : this.ComputeDiffRecursive(c + 1, t, h + 1, o, r), this.ConcatenateChanges( s, a) } return [new n(e, t - e + 1, i, o - i + 1)] } WALKTRACE(e, t, i, o, r, s, a, l, c, h, u, g, p, m, f, _, b, v) { let w = null, C = null, y = new d, S = t, x = i, k = p[0] - _[0] - o, L = -1073741824, N = this.m_forwardHistory.length - 1; do { const t = k + e; t === S || t < x && c[t - 1] < c[t + 1] ? (m = (u = c[t + 1]) - k - o, u < L && y.MarkNextChange(), L = u, y.AddModifiedElement(u + 1, m), k = t + 1 - e) : (m = (u = c[t - 1] + 1) - k - o, u < L && y.MarkNextChange(), L = u - 1, y.AddOriginalElement(u, m + 1), k = t - 1 - e), N >= 0 && (e = (c = this.m_forwardHistory[N])[0], S = 1, x = c.length - 1) } while (--N >= -1); if (w = y.getReverseChanges(), v[0]) { let e = p[0] + 1, t = _[0] + 1; if (null !== w && w.length > 0) { const i = w[w.length - 1]; e = Math.max(e, i.getOriginalEnd()), t = Math.max(t, i.getModifiedEnd()) } C = [new n(e, g - e + 1, t, f - t + 1)] } else { y = new d, S = s, x = a, k = p[0] - _[0] - l, L = 1073741824, N = b ? this.m_reverseHistory.length - 1 : this.m_reverseHistory.length - 2; do { const e = k + r; e === S || e < x && h[e - 1] >= h[e + 1] ? (m = (u = h[e + 1] - 1) - k - l, u > L && y.MarkNextChange(), L = u + 1, y.AddOriginalElement( u + 1, m + 1), k = e + 1 - r) : (m = (u = h[e - 1]) - k - l, u > L && y.MarkNextChange(), L = u, y.AddModifiedElement(u + 1, m + 1), k = e - 1 - r), N >= 0 && (r = (h = this.m_reverseHistory[N])[0], S = 1, x = h.length - 1) } while (--N >= -1); C = y.getChanges() } return this.ConcatenateChanges(w, C) } ComputeRecursionPoint(e, t, i, o, r, s, a) { let d = 0, c = 0, h = 0, u = 0, g = 0, p = 0; e--, i--, r[0] = 0, s[0] = 0, this.m_forwardHistory = [], this.m_reverseHistory = []; const m = t - e + (o - i), f = m + 1, _ = new Int32Array(f), b = new Int32Array(f), v = o - i, w = t - e, C = e - i, y = t - o, S = (w - v) % 2 == 0; _[v] = e, b[w] = t, a[0] = !1; for (let x = 1; x <= m / 2 + 1; x++) { let m = 0, k = 0; h = this.ClipDiagonalBound(v - x, x, v, f), u = this.ClipDiagonalBound( v + x, x, v, f); for (let e = h; e <= u; e += 2) { d = e === h || e < u && _[e - 1] < _[e + 1] ? _[e + 1] : _[e - 1] + 1, c = d - (e - v) - C; const i = d; for (; d < t && c < o && this.ElementsAreEqual(d + 1, c + 1);) d++, c++; if (_[e] = d, d + c > m + k && (m = d, k = c), !S && Math.abs(e - w) <= x - 1 && d >= b[e]) return r[0] = d, s[0] = c, i <= b[e] && x <= 1448 ? this.WALKTRACE(v, h, u, C, w, g, p, y, _, b, d, t, r, c, o, s, S, a) : null } const L = (m - e + (k - i) - x) / 2; if (null !== this.ContinueProcessingPredicate && !this.ContinueProcessingPredicate( m, L)) return a[0] = !0, r[0] = m, s[0] = k, L > 0 && x <= 1448 ? this.WALKTRACE(v, h, u, C, w, g, p, y, _, b, d, t, r, c, o, s, S, a) : (e++, i++, [new n(e, t - e + 1, i, o - i + 1)]); g = this.ClipDiagonalBound(w - x, x, w, f), p = this.ClipDiagonalBound( w + x, x, w, f); for (let n = g; n <= p; n += 2) { d = n === g || n < p && b[n - 1] >= b[n + 1] ? b[n + 1] - 1 : b[n - 1], c = d - (n - w) - y; const l = d; for (; d > e && c > i && this.ElementsAreEqual(d, c);) d--, c--; if (b[n] = d, S && Math.abs(n - v) <= x && d <= _[n]) return r[0] = d, s[0] = c, l >= _[n] && x <= 1448 ? this.WALKTRACE(v, h, u, C, w, g, p, y, _, b, d, t, r, c, o, s, S, a) : null } if (x <= 1447) { let e = new Int32Array(u - h + 2); e[0] = v - h + 1, l.Copy2(_, h, e, 1, u - h + 1), this.m_forwardHistory .push(e), e = new Int32Array(p - g + 2), e[0] = w - g + 1, l.Copy2( b, g, e, 1, p - g + 1), this.m_reverseHistory.push(e) } } return this.WALKTRACE(v, h, u, C, w, g, p, y, _, b, d, t, r, c, o, s, S, a) } PrettifyChanges(e) { for (let t = 0; t < e.length; t++) { const i = e[t], n = t < e.length - 1 ? e[t + 1].originalStart : this._originalElementsOrHash .length, o = t < e.length - 1 ? e[t + 1].modifiedStart : this._modifiedElementsOrHash .length, r = i.originalLength > 0, s = i.modifiedLength > 0; for (; i.originalStart + i.originalLength < n && i.modifiedStart + i.modifiedLength < o && (!r || this.OriginalElementsAreEqual(i.originalStart, i.originalStart + i.originalLength)) && (!s || this.ModifiedElementsAreEqual(i.modifiedStart, i.modifiedStart + i.modifiedLength));) { const e = this.ElementsAreStrictEqual(i.originalStart, i.modifiedStart); if (this.ElementsAreStrictEqual(i.originalStart + i.originalLength, i.modifiedStart + i.modifiedLength) && !e) break; i.originalStart++, i.modifiedStart++ } let a = [null]; t < e.length - 1 && this.ChangesOverlap(e[t], e[t + 1], a) && (e[t] = a[0], e.splice(t + 1, 1), t--) } for (let t = e.length - 1; t >= 0; t--) { const i = e[t]; let n = 0, o = 0; if (t > 0) { const i = e[t - 1]; n = i.originalStart + i.originalLength, o = i.modifiedStart + i.modifiedLength } const r = i.originalLength > 0, s = i.modifiedLength > 0; let a = 0, l = this._boundaryScore(i.originalStart, i.originalLength, i.modifiedStart, i.modifiedLength); for (let e = 1;; e++) { const t = i.originalStart - e, d = i.modifiedStart - e; if (t < n || d < o) break; if (r && !this.OriginalElementsAreEqual(t, t + i.originalLength)) break; if (s && !this.ModifiedElementsAreEqual(d, d + i.modifiedLength)) break; const c = (t === n && d === o ? 5 : 0) + this._boundaryScore(t, i.originalLength, d, i.modifiedLength); c > l && (l = c, a = e) } i.originalStart -= a, i.modifiedStart -= a; const d = [null]; t > 0 && this.ChangesOverlap(e[t - 1], e[t], d) && (e[t - 1] = d[0], e.splice(t, 1), t++) } if (this._hasStrings) for (let t = 1, i = e.length; t < i; t++) { const i = e[t - 1], n = e[t], o = n.originalStart - i.originalStart - i.originalLength, r = i.originalStart, s = n.originalStart + n.originalLength, a = s - r, l = i.modifiedStart, d = n.modifiedStart + n.modifiedLength, c = d - l; if (o < 5 && a < 20 && c < 20) { const e = this._findBetterContiguousSequence(r, a, l, c, o); if (e) { const [t, r] = e; t === i.originalStart + i.originalLength && r === i.modifiedStart + i.modifiedLength || (i.originalLength = t - i.originalStart, i.modifiedLength = r - i.modifiedStart, n.originalStart = t + o, n.modifiedStart = r + o, n.originalLength = s - n.originalStart, n.modifiedLength = d - n.modifiedStart) } } } return e } _findBetterContiguousSequence(e, t, i, n, o) { if (t < o || n < o) return null; const r = e + t - o + 1, s = i + n - o + 1; let a = 0, l = 0, d = 0; for (let t = e; t < r; t++) for (let e = i; e < s; e++) { const i = this._contiguousSequenceScore(t, e, o); i > 0 && i > a && (a = i, l = t, d = e) } return a > 0 ? [l, d] : null } _contiguousSequenceScore(e, t, i) { let n = 0; for (let o = 0; o < i; o++) { if (!this.ElementsAreEqual(e + o, t + o)) return 0; n += this._originalStringElements[e + o].length } return n } _OriginalIsBoundary(e) { return e <= 0 || e >= this._originalElementsOrHash.length - 1 || this._hasStrings && /^\s*$/.test(this._originalStringElements[e]) } _OriginalRegionIsBoundary(e, t) { if (this._OriginalIsBoundary(e) || this._OriginalIsBoundary(e - 1)) return !0; if (t > 0) { const i = e + t; if (this._OriginalIsBoundary(i - 1) || this._OriginalIsBoundary(i)) return !0 } return !1 } _ModifiedIsBoundary(e) { return e <= 0 || e >= this._modifiedElementsOrHash.length - 1 || this._hasStrings && /^\s*$/.test(this._modifiedStringElements[e]) } _ModifiedRegionIsBoundary(e, t) { if (this._ModifiedIsBoundary(e) || this._ModifiedIsBoundary(e - 1)) return !0; if (t > 0) { const i = e + t; if (this._ModifiedIsBoundary(i - 1) || this._ModifiedIsBoundary(i)) return !0 } return !1 } _boundaryScore(e, t, i, n) { return (this._OriginalRegionIsBoundary(e, t) ? 1 : 0) + (this._ModifiedRegionIsBoundary( i, n) ? 1 : 0) } ConcatenateChanges(e, t) { let i = []; if (0 === e.length || 0 === t.length) return t.length > 0 ? t : e; if (this.ChangesOverlap(e[e.length - 1], t[0], i)) { const n = new Array(e.length + t.length - 1); return l.Copy(e, 0, n, 0, e.length - 1), n[e.length - 1] = i[0], l.Copy( t, 1, n, e.length, t.length - 1), n } { const i = new Array(e.length + t.length); return l.Copy(e, 0, i, 0, e.length), l.Copy(t, 0, i, e.length, t.length), i } } ChangesOverlap(e, t, i) { if (a.Assert(e.originalStart <= t.originalStart, "Left change is not less than or equal to right change"), a.Assert(e .modifiedStart <= t.modifiedStart, "Left change is not less than or equal to right change"), e.originalStart + e.originalLength >= t.originalStart || e.modifiedStart + e.modifiedLength >= t.modifiedStart) { const o = e.originalStart; let r = e.originalLength; const s = e.modifiedStart; let a = e.modifiedLength; return e.originalStart + e.originalLength >= t.originalStart && (r = t.originalStart + t.originalLength - e.originalStart), e.modifiedStart + e.modifiedLength >= t.modifiedStart && (a = t.modifiedStart + t.modifiedLength - e.modifiedStart), i[0] = new n(o, r, s, a), !0 } return i[0] = null, !1 } ClipDiagonalBound(e, t, i, n) { if (e >= 0 && e < n) return e; const o = t % 2 == 0; return e < 0 ? o === (i % 2 == 0) ? 0 : 1 : o === ((n - i - 1) % 2 == 0) ? n - 1 : n - 2 } } }, 7301: (e, t, i) => { "use strict"; i.d(t, { dL: () => o, Cp: () => r, ri: () => s, VV: () => l, F0: () => d, b1: () => c, L6: () => h, B8: () => u }); const n = new class { constructor() { this.listeners = [], this.unexpectedErrorHandler = function(e) { setTimeout((() => { if (e.stack) throw new Error(e.message + "\n\n" + e.stack); throw e }), 0) } } emit(e) { this.listeners.forEach((t => { t(e) })) } onUnexpectedError(e) { this.unexpectedErrorHandler(e), this.emit(e) } onUnexpectedExternalError(e) { this.unexpectedErrorHandler(e) } }; function o(e) { l(e) || n.onUnexpectedError(e) } function r(e) { l(e) || n.onUnexpectedExternalError(e) } function s(e) { if (e instanceof Error) { let { name: t, message: i } = e; return { $isError: !0, name: t, message: i, stack: e.stacktrace || e.stack } } return e } const a = "Canceled"; function l(e) { return e instanceof Error && e.name === a && e.message === a } function d() { const e = new Error(a); return e.name = e.message, e } function c(e) { return e ? new Error(`Illegal argument: ${e}`) : new Error( "Illegal argument") } function h(e) { return e ? new Error(`Illegal state: ${e}`) : new Error("Illegal state") } class u extends Error { constructor(e) { super("NotSupported"), e && (this.message = e) } } }, 4669: (e, t, i) => { "use strict"; i.d(t, { ju: () => n, Q5: () => d, K3: () => c, D0: () => h, E7: () => u, ZD: () => g }); var n, o = i(7301), r = i(5976), s = i(1741), a = i(4013); ! function(e) { function t(e) { return (t, i = null, n) => { let o, r = !1; return o = e((e => { if (!r) return o ? o.dispose() : r = !0, t.call(i, e) }), null, n), r && o.dispose(), o } } function i(e, t) { return a(((i, n = null, o) => e((e => i.call(n, t(e))), null, o))) } function n(e, t) { return a(((i, n = null, o) => e((e => { t(e), i.call(n, e) }), null, o))) } function o(e, t) { return a(((i, n = null, o) => e((e => t(e) && i.call(n, e)), null, o))) } function s(e, t, n) { let o = n; return i(e, (e => (o = t(o, e), o))) } function a(e) { let t; const i = new d({ onFirstListenerAdd() { t = e(i.fire, i) }, onLastListenerRemove() { t.dispose() } }); return i.event } function l(e, t, i = 100, n = !1, o) { let r, s, a, l = 0; const c = new d({ leakWarningThreshold: o, onFirstListenerAdd() { r = e((e => { l++, s = t(s, e), n && !a && (c.fire(s), s = void 0), clearTimeout(a), a = setTimeout((() => { const e = s; s = void 0, a = void 0, (!n || l > 1) && c.fire(e), l = 0 }), i) })) }, onLastListenerRemove() { r.dispose() } }); return c.event } function c(e, t = ((e, t) => e === t)) { let i, n = !0; return o(e, (e => { const o = n || !t(e, i); return n = !1, i = e, o })) } e.None = () => r.JT.None, e.once = t, e.map = i, e.forEach = n, e.filter = o, e.signal = function(e) { return e }, e.any = function(...e) { return (t, i = null, n) => (0, r.F8)(...e.map((e => e((e => t.call(i, e)), null, n)))) }, e.reduce = s, e.debounce = l, e.latch = c, e.split = function(t, i) { return [e.filter(t, i), e.filter(t, (e => !i(e)))] }, e.buffer = function(e, t = !1, i = []) { let n = i.slice(), o = e((e => { n ? n.push(e) : s.fire(e) })); const r = () => { n && n.forEach((e => s.fire(e))), n = null }, s = new d({ onFirstListenerAdd() { o || (o = e((e => s.fire(e)))) }, onFirstListenerDidAdd() { n && (t ? setTimeout(r) : r()) }, onLastListenerRemove() { o && o.dispose(), o = null } }); return s.event }; class h { constructor(e) { this.event = e } map(e) { return new h(i(this.event, e)) } forEach(e) { return new h(n(this.event, e)) } filter(e) { return new h(o(this.event, e)) } reduce(e, t) { return new h(s(this.event, e, t)) } latch() { return new h(c(this.event)) } debounce(e, t = 100, i = !1, n) { return new h(l(this.event, e, t, i, n)) } on(e, t, i) { return this.event(e, t, i) } once(e, i, n) { return t(this.event)(e, i, n) } } e.chain = function(e) { return new h(e) }, e.fromNodeEventEmitter = function(e, t, i = (e => e)) { const n = (...e) => o.fire(i(...e)), o = new d({ onFirstListenerAdd: () => e.on(t, n), onLastListenerRemove: () => e.removeListener(t, n) }); return o.event }, e.fromDOMEventEmitter = function(e, t, i = (e => e)) { const n = (...e) => o.fire(i(...e)), o = new d({ onFirstListenerAdd: () => e.addEventListener(t, n), onLastListenerRemove: () => e.removeEventListener(t, n) }); return o.event }, e.toPromise = function(e) { return new Promise((i => t(e)(i))) } }(n || (n = {})); class l { constructor(e) { this._listenerCount = 0, this._invocationCount = 0, this._elapsedOverall = 0, this._name = `${e}_${l._idPool++}` } start(e) { this._stopWatch = new a.G(!0), this._listenerCount = e } stop() { if (this._stopWatch) { const e = this._stopWatch.elapsed(); this._elapsedOverall += e, this._invocationCount += 1, console.info( `did FIRE ${this._name}: elapsed_ms: ${e.toFixed(5)}, listener: ${this._listenerCount} (elapsed_overall: ${this._elapsedOverall.toFixed(2)}, invocations: ${this._invocationCount})` ), this._stopWatch = void 0 } } } l._idPool = 0; class d { constructor(e) { var t; this._disposed = !1, this._options = e, this._leakageMon = void 0, this._perfMon = (null === (t = this._options) || void 0 === t ? void 0 : t._profName) ? new l(this._options._profName) : void 0 } get event() { return this._event || (this._event = (e, t, i) => { var n; this._listeners || (this._listeners = new s.S); const o = this._listeners.isEmpty(); o && this._options && this._options.onFirstListenerAdd && this._options .onFirstListenerAdd(this); const a = this._listeners.push(t ? [e, t] : e); o && this._options && this._options.onFirstListenerDidAdd && this._options .onFirstListenerDidAdd(this), this._options && this._options.onListenerDidAdd && this._options.onListenerDidAdd(this, e, t); const l = null === (n = this._leakageMon) || void 0 === n ? void 0 : n.check(this._listeners.size), d = (0, r.OF)((() => { l && l(), !this._disposed && (a(), this._options && this._options .onLastListenerRemove) && (this._listeners && !this._listeners .isEmpty() || this._options.onLastListenerRemove(this)) })); return i instanceof r.SL ? i.add(d) : Array.isArray(i) && i.push(d), d }), this._event } fire(e) { var t, i; if (this._listeners) { this._deliveryQueue || (this._deliveryQueue = new s.S); for (let t of this._listeners) this._deliveryQueue.push([t, e]); for (null === (t = this._perfMon) || void 0 === t || t.start(this._deliveryQueue .size); this._deliveryQueue.size > 0;) { const [e, t] = this._deliveryQueue.shift(); try { "function" == typeof e ? e.call(void 0, t) : e[0].call(e[1], t) } catch (e) { (0, o.dL)(e) } } null === (i = this._perfMon) || void 0 === i || i.stop() } } dispose() { var e, t, i, n, o; this._disposed || (this._disposed = !0, null === (e = this._listeners) || void 0 === e || e.clear(), null === (t = this._deliveryQueue) || void 0 === t || t.clear(), null === (n = null === (i = this._options) || void 0 === i ? void 0 : i.onLastListenerRemove) || void 0 === n || n.call(i), null === (o = this._leakageMon) || void 0 === o || o.dispose() ) } } class c extends d { constructor(e) { super(e), this._isPaused = 0, this._eventQueue = new s.S, this._mergeFn = null == e ? void 0 : e.merge } pause() { this._isPaused++ } resume() { if (0 !== this._isPaused && 0 == --this._isPaused) if (this._mergeFn) { const e = Array.from(this._eventQueue); this._eventQueue.clear(), super.fire(this._mergeFn(e)) } else for (; !this._isPaused && 0 !== this._eventQueue.size;) super.fire( this._eventQueue.shift()) } fire(e) { this._listeners && (0 !== this._isPaused ? this._eventQueue.push(e) : super.fire(e)) } } class h extends c { constructor(e) { var t; super(e), this._delay = null !== (t = e.delay) && void 0 !== t ? t : 100 } fire(e) { this._handle || (this.pause(), this._handle = setTimeout((() => { this._handle = void 0, this.resume() }), this._delay)), super.fire(e) } } class u { constructor() { this.buffers = [] } wrapEvent(e) { return (t, i, n) => e((e => { const n = this.buffers[this.buffers.length - 1]; n ? n.push((() => t.call(i, e))) : t.call(i, e) }), void 0, n) } bufferEvents(e) { const t = []; this.buffers.push(t); const i = e(); return this.buffers.pop(), t.forEach((e => e())), i } } class g { constructor() { this.listening = !1, this.inputEvent = n.None, this.inputEventListener = r.JT.None, this.emitter = new d({ onFirstListenerDidAdd: () => { this.listening = !0, this.inputEventListener = this.inputEvent( this.emitter.fire, this.emitter) }, onLastListenerRemove: () => { this.listening = !1, this.inputEventListener.dispose() } }), this.event = this.emitter.event } set input(e) { this.inputEvent = e, this.listening && (this.inputEventListener.dispose(), this.inputEventListener = e(this.emitter.fire, this.emitter)) } dispose() { this.inputEventListener.dispose(), this.emitter.dispose() } } }, 5527: (e, t, i) => { "use strict"; i.d(t, { fn: () => s, KM: () => a, vY: () => l, oP: () => d }); var n = i(8721), o = i(1432), r = i(7295); function s(e) { return -1 === e.indexOf("/") && (e = function(e) { return e.replace(/[\\/]/g, n.KR.sep) }(e)), /^[a-zA-Z]:(\/|$)/.test(e) && (e = "/" + e), e } function a(e, t, i, o = n.ir) { if (e === t) return !0; if (!e || !t) return !1; if (t.length > e.length) return !1; if (i) { if (!(0, r.ok)(e, t)) return !1; if (t.length === e.length) return !0; let i = t.length; return t.charAt(t.length - 1) === o && i--, e.charAt(i) === o } return t.charAt(t.length - 1) !== o && (t += o), 0 === e.indexOf(t) } function l(e) { const t = (0, n.Fv)(e); return o.ED ? !(e.length > 3) && d(t) && (2 === e.length || 92 === t.charCodeAt( 2)) : t === n.KR.sep } function d(e) { return !!o.ED && ((t = e.charCodeAt(0)) >= 65 && t <= 90 || t >= 97 && t <= 122) && 58 === e.charCodeAt(1); var t } }, 5392: (e, t, i) => { "use strict"; i.d(t, { or: () => r, Ji: () => s, ir: () => a, KZ: () => w, Oh: () => L, jB: () => N, mB: () => D, CL: () => z, EW: () => V, l7: () => U }); var n = i(3702), o = i(7295); function r(...e) { return function(t, i) { for (let n = 0, o = e.length; n < o; n++) { const o = e[n](t, i); if (o) return o } return null } } const s = function(e, t, i) { if (!i || i.length < t.length) return null; let n; return n = e ? o.ok(i, t) : 0 === i.indexOf(t), n ? t.length > 0 ? [{ start: 0, end: t.length }] : [] : null }.bind(void 0, !0); function a(e, t) { const i = t.toLowerCase().indexOf(e.toLowerCase()); return -1 === i ? null : [{ start: i, end: i + e.length }] } function l(e, t, i, n) { if (i === e.length) return []; if (n === t.length) return null; if (e[i] === t[n]) { let o = null; return (o = l(e, t, i + 1, n + 1)) ? f({ start: n, end: n + 1 }, o) : null } return l(e, t, i, n + 1) } function d(e) { return 97 <= e && e <= 122 } function c(e) { return 65 <= e && e <= 90 } function h(e) { return 48 <= e && e <= 57 } function u(e) { return 32 === e || 9 === e || 10 === e || 13 === e } const g = new Set; function p(e) { return u(e) || g.has(e) } function m(e) { return d(e) || c(e) || h(e) } function f(e, t) { return 0 === t.length ? t = [e] : e.end === t[0].start ? t[0].start = e.start : t.unshift(e), t } function _(e, t) { for (let i = t; i < e.length; i++) { const t = e.charCodeAt(i); if (c(t) || h(t) || i > 0 && !m(e.charCodeAt(i - 1))) return i } return e.length } function b(e, t, i, n) { if (i === e.length) return []; if (n === t.length) return null; if (e[i] !== t[n].toLowerCase()) return null; { let o = null, r = n + 1; for (o = b(e, t, i + 1, n + 1); !o && (r = _(t, r)) < t.length;) o = b( e, t, i + 1, r), r++; return null === o ? null : f({ start: n, end: n + 1 }, o) } } function v(e, t) { if (!t) return null; if (0 === (t = t.trim()).length) return null; if (! function(e) { let t = 0, i = 0, n = 0, o = 0; for (let r = 0; r < e.length; r++) n = e.charCodeAt(r), c(n) && t++, d( n) && i++, u(n) && o++; return 0 !== t && 0 !== i || 0 !== o ? t <= 5 : e.length <= 30 }(e)) return null; if (t.length > 60) return null; const i = function(e) { let t = 0, i = 0, n = 0, o = 0, r = 0; for (let s = 0; s < e.length; s++) r = e.charCodeAt(s), c(r) && t++, d( r) && i++, m(r) && n++, h(r) && o++; return { upperPercent: t / e.length, lowerPercent: i / e.length, alphaPercent: n / e.length, numericPercent: o / e.length } }(t); if (! function(e) { const { upperPercent: t, lowerPercent: i, alphaPercent: n, numericPercent: o } = e; return i > .2 && t < .8 && n > .6 && o < .2 }(i)) { if (! function(e) { const { upperPercent: t, lowerPercent: i } = e; return 0 === i && t > .6 }(i)) return null; t = t.toLowerCase() } let n = null, o = 0; for (e = e.toLowerCase(); o < t.length && null === (n = b(e, t, 0, o));) o = _(t, o + 1); return n } function w(e, t, i = !1) { if (!t || 0 === t.length) return null; let n = null, o = 0; for (e = e.toLowerCase(), t = t.toLowerCase(); o < t.length && null === (n = C(e, t, 0, o, i));) o = y(t, o + 1); return n } function C(e, t, i, n, o) { if (i === e.length) return []; if (n === t.length) return null; if ((r = e.charCodeAt(i)) === (s = t.charCodeAt(n)) || p(r) && p(s)) { let r = null, s = n + 1; if (r = C(e, t, i + 1, n + 1, o), !o) for (; !r && (s = y(t, s)) < t.length;) r = C(e, t, i + 1, s, o), s++; return null === r ? null : f({ start: n, end: n + 1 }, r) } return null; var r, s } function y(e, t) { for (let i = t; i < e.length; i++) if (p(e.charCodeAt(i)) || i > 0 && p(e.charCodeAt(i - 1))) return i; return e.length } "`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?".split("").forEach((e => g.add(e.charCodeAt( 0)))); const S = r(s, v, a), x = r(s, v, (function(e, t) { return l(e.toLowerCase(), t.toLowerCase(), 0, 0) })), k = new n.z6(1e4); function L(e, t, i = !1) { if ("string" != typeof e || "string" != typeof t) return null; let n = k.get(e); n || (n = new RegExp(o.un(e), "i"), k.set(e, n)); const r = n.exec(t); return r ? [{ start: r.index, end: r.index + r[0].length }] : i ? x(e, t) : S(e, t) } function N(e, t, i, n, o, r) { const s = Math.min(13, e.length); for (; i < s; i++) { const s = V(e, t, i, n, o, r, !1); if (s) return s } return [0, r] } function D(e) { if (void 0 === e) return []; const t = [], i = e[1]; for (let n = e.length - 1; n > 1; n--) { const o = e[n] + i, r = t[t.length - 1]; r && r.end === o ? r.end = o + 1 : t.push({ start: o, end: o + 1 }) } return t } const E = 128; function I() { const e = [], t = []; for (let e = 0; e <= E; e++) t[e] = 0; for (let i = 0; i <= E; i++) e.push(t.slice(0)); return e } function T(e) { const t = []; for (let i = 0; i <= e; i++) t[i] = 0; return t } const M = T(256), A = T(256), R = I(), O = I(), P = I(); function F(e, t) { if (t < 0 || t >= e.length) return !1; const i = e.codePointAt(t); switch (i) { case 95: case 45: case 46: case 32: case 47: case 92: case 39: case 34: case 58: case 36: case 60: case 40: case 91: return !0; case void 0: return !1; default: return !!o.C8(i) } } function B(e, t) { if (t < 0 || t >= e.length) return !1; switch (e.charCodeAt(t)) { case 32: case 9: return !0; default: return !1 } } function W(e, t, i) { return t[e] !== i[e] } var z; function V(e, t, i, n, o, r, s) { const a = e.length > E ? E : e.length, l = n.length > E ? E : n.length; if (i >= a || r >= l || a - i > l - r) return; if (! function(e, t, i, n, o, r, s = !1) { for (; t < i && o < r;) e[t] === n[o] && (s && (M[t] = o), t += 1), o += 1; return t === i }(t, i, a, o, r, l, !0)) return; ! function(e, t, i, n, o, r) { let s = e - 1, a = t - 1; for (; s >= i && a >= n;) o[s] === r[a] && (A[s] = a, s--), a-- }(a, l, i, r, t, o); let d = 1, c = 1, h = i, u = r; const g = [!1]; for (d = 1, h = i; h < a; d++, h++) { const s = M[h], p = A[h], m = h + 1 < a ? A[h + 1] : l; for (c = s - r + 1, u = s; u < m; c++, u++) { let a = Number.MIN_SAFE_INTEGER, m = !1; u <= p && (a = H(e, t, h, i, n, o, u, l, r, 0 === R[d - 1][c - 1], g)); let f = 0; a !== Number.MAX_SAFE_INTEGER && (m = !0, f = a + O[d - 1][c - 1]); const _ = u > s, b = _ ? O[d][c - 1] + (R[d][c - 1] > 0 ? -5 : 0) : 0, v = u > s + 1 && R[d][c - 1] > 0, w = v ? O[d][c - 2] + (R[d][c - 2] > 0 ? -5 : 0) : 0; if (v && (!_ || w >= b) && (!m || w >= f)) O[d][c] = w, P[d][c] = 3, R[ d][c] = 0; else if (_ && (!m || b >= f)) O[d][c] = b, P[d][c] = 2, R[d][c] = 0; else { if (!m) throw new Error("not possible"); O[d][c] = f, P[d][c] = 1, R[d][c] = R[d - 1][c - 1] + 1 } } } if (!g[0] && !s) return; d--, c--; const p = [O[d][c], r]; let m = 0, f = 0; for (; d >= 1;) { let e = c; do { const t = P[d][e]; if (3 === t) e -= 2; else { if (2 !== t) break; e -= 1 } } while (e >= 1); m > 1 && t[i + d - 1] === o[r + c - 1] && !W(e + r - 1, n, o) && m + 1 > R[d][e] && (e = c), e === c ? m++ : m = 1, f || (f = e), d--, c = e - 1, p.push(c) } l === a && (p[0] += 2); const _ = f - a; return p[0] -= _, p } function H(e, t, i, n, o, r, s, a, l, d, c) { if (t[i] !== r[s]) return Number.MIN_SAFE_INTEGER; let h = 1, u = !1; return s === i - n ? h = e[i] === o[s] ? 7 : 5 : !W(s, o, r) || 0 !== s && W(s - 1, o, r) ? !F(r, s) || 0 !== s && F(r, s - 1) ? (F(r, s - 1) || B( r, s - 1)) && (h = 5, u = !0) : h = 5 : (h = e[i] === o[s] ? 7 : 5, u = ! 0), h > 1 && i === n && (c[0] = !0), u || (u = W(s, o, r) || F(r, s - 1) || B(r, s - 1)), i === n ? s > l && (h -= u ? 3 : 5) : h += d ? u ? 2 : 0 : u ? 0 : 1, s + 1 === a && (h -= u ? 3 : 5), h } function U(e, t, i, n, o, r, s) { return function(e, t, i, n, o, r, s, a) { let l = V(e, t, i, n, o, r, a); if (e.length >= 3) { const t = Math.min(7, e.length - 1); for (let s = i + 1; s < t; s++) { const t = j(e, s); if (t) { const e = V(t, t.toLowerCase(), i, n, o, r, a); e && (e[0] -= 3, (!l || e[0] > l[0]) && (l = e)) } } } return l }(e, t, i, n, o, r, 0, s) } function j(e, t) { if (t + 1 >= e.length) return; const i = e[t], n = e[t + 1]; return i !== n ? e.slice(0, t) + n + i + e.slice(t + 2) : void 0 }! function(e) { e.Default = [-100, 0], e.isDefault = function(e) { return !e || 2 === e.length && -100 === e[0] && 0 === e[1] } }(z || (z = {})) }, 8289: (e, t, i) => { "use strict"; function n(e) { const t = this; let i, n = !1; return function() { return n || (n = !0, i = e.apply(t, arguments)), i } } i.d(t, { I: () => n }) }, 4118: (e, t, i) => { "use strict"; i.d(t, { EQ: () => L, Qc: () => N }); var n = i(5393), o = i(5527), r = i(3702), s = i(8721), a = i(7295); const l = "**", d = /\//g; function c(e) { switch (e) { case 0: return ""; case 1: return "[^/\\\\]*?"; default: return "(?:[/\\\\]|[^/\\\\]+[/\\\\]|[/\\\\][^/\\\\]+)*?" } } function h(e, t) { if (!e) return []; const i = []; let n = !1, o = !1, r = ""; for (const s of e) { switch (s) { case t: if (!n && !o) { i.push(r), r = ""; continue } break; case "{": n = !0; break; case "}": n = !1; break; case "[": o = !0; break; case "]": o = !1 } r += s } return r && i.push(r), i } function u(e) { if (!e) return ""; let t = ""; const i = h(e, "/"); if (i.every((e => e === l))) t = ".*"; else { let e = !1; i.forEach(((n, o) => { if (n === l) return void(e || (t += c(2), e = !0)); let r = !1, s = "", d = !1, g = ""; for (const e of n) if ("}" !== e && r) s += e; else if (!d || "]" === e && g) switch (e) { case "{": r = !0; continue; case "[": d = !0; continue; case "}": const i = `(?:${h(s,",").map((e=>u(e))).join("|")})`; t += i, r = !1, s = ""; break; case "]": t += "[" + g + "]", d = !1, g = ""; break; case "?": t += "[^/\\\\]"; continue; case "*": t += c(1); continue; default: t += a.ec(e) } else { let t; t = "-" === e ? e : "^" !== e && "!" !== e || g ? "/" === e ? "" : a.ec(e) : "^", g += t } o < i.length - 1 && (i[o + 1] !== l || o + 2 < i.length) && (t += "[/\\\\]"), e = !1 })) } return t } const g = /^\*\*\/\*\.[\w\.-]+$/, p = /^\*\*\/([\w\.-]+)\/?$/, m = /^{\*\*\/[\*\.]?[\w\.-]+\/?(,\*\*\/[\*\.]?[\w\.-]+\/?)*}$/, f = /^{\*\*\/[\*\.]?[\w\.-]+(\/(\*\*)?)?(,\*\*\/[\*\.]?[\w\.-]+(\/(\*\*)?)?)*}$/, _ = /^\*\*((\/[\w\.-]+)+)\/?$/, b = /^([\w\.-]+(\/[\w\.-]+)*)\/?$/, v = new r.z6(1e4), w = function() { return !1 }, C = function() { return null }; function y(e, t) { if (!e) return C; let i; i = "string" != typeof e ? e.pattern : e, i = i.trim(); const n = `${i}_${!!t.trimForExclusions}`; let o, r = v.get(n); if (r) return S(r, e); if (g.test(i)) { const e = i.substr(4); r = function(t, n) { return "string" == typeof t && t.endsWith(e) ? i : null } } else r = (o = p.exec(x(i, t))) ? function(e, t) { const i = `/${e}`, n = `\\${e}`, o = function(o, r) { return "string" != typeof o ? null : r ? r === e ? t : null : o === e || o.endsWith(i) || o.endsWith(n) ? t : null }, r = [e]; return o.basenames = r, o.patterns = [t], o.allBasenames = r, o }(o[1], i) : (t.trimForExclusions ? f : m).test(i) ? function(e, t) { const i = D(e.slice(1, -1).split(",").map((e => y(e, t))).filter((e => e !== C)), e), n = i.length; if (!n) return C; if (1 === n) return i[0]; const o = function(t, n) { for (let o = 0, r = i.length; o < r; o++) if (i[o](t, n)) return e; return null }, r = i.find((e => !!e.allBasenames)); r && (o.allBasenames = r.allBasenames); const s = i.reduce(((e, t) => t.allPaths ? e.concat(t.allPaths) : e), []); return s.length && (o.allPaths = s), o }(i, t) : (o = _.exec(x(i, t))) ? k(o[1].substr(1), i, !0) : (o = b.exec( x(i, t))) ? k(o[1], i, !1) : function(e) { try { const t = new RegExp(`^${u(e)}$`); return function(i) { return t.lastIndex = 0, "string" == typeof i && t.test(i) ? e : null } } catch (e) { return C } }(i); return v.set(n, r), S(r, e) } function S(e, t) { return "string" == typeof t ? e : function(i, n) { return o.KM(i, t.base) ? e(s.Gf(t.base, i), n) : null } } function x(e, t) { return t.trimForExclusions && e.endsWith("/**") ? e.substr(0, e.length - 2) : e } function k(e, t, i) { const n = s.ir === s.KR.sep, o = n ? e : e.replace(d, s.ir), r = s.ir + o, a = s.KR.sep + e, l = i ? function(i, s) { return "string" != typeof i || i !== o && !i.endsWith(r) && (n || i !== e && !i.endsWith(a)) ? null : t } : function(i, r) { return "string" != typeof i || i !== o && (n || i !== e) ? null : t }; return l.allPaths = [(i ? "*/" : "./") + e], l } function L(e, t, i) { return !(!e || "string" != typeof t) && N(e)(t, void 0, i) } function N(e, t = {}) { if (!e) return w; if ("string" == typeof e || function(e) { const t = e; return t && "string" == typeof t.base && "string" == typeof t.pattern }(e)) { const i = y(e, t); if (i === C) return w; const n = function(e, t) { return !!i(e, t) }; return i.allBasenames && (n.allBasenames = i.allBasenames), i.allPaths && (n.allPaths = i.allPaths), n } return function(e, t) { const i = D(Object.getOwnPropertyNames(e).map((i => function(e, t, i) { if (!1 === t) return C; const o = y(e, i); if (o === C) return C; if ("boolean" == typeof t) return o; if (t) { const i = t.when; if ("string" == typeof i) { const t = (t, r, s, a) => { if (!a || !o(t, r)) return null; const l = a(i.replace("$(basename)", s)); return (0, n.J8)(l) ? l.then((t => t ? e : null)) : l ? e : null }; return t.requiresSiblings = !0, t } } return o }(i, e[i], t))).filter((e => e !== C))), o = i.length; if (!o) return C; if (!i.some((e => !!e.requiresSiblings))) { if (1 === o) return i[0]; const e = function(e, t) { for (let n = 0, o = i.length; n < o; n++) { const o = i[n](e, t); if (o) return o } return null }, t = i.find((e => !!e.allBasenames)); t && (e.allBasenames = t.allBasenames); const n = i.reduce(((e, t) => t.allPaths ? e.concat(t.allPaths) : e), []); return n.length && (e.allPaths = n), e } const r = function(e, t, n) { let o; for (let r = 0, a = i.length; r < a; r++) { const a = i[r]; a.requiresSiblings && n && (t || (t = s.EZ(e)), o || (o = t.substr( 0, t.length - s.DZ(e).length))); const l = a(e, t, o, n); if (l) return l } return null }, a = i.find((e => !!e.allBasenames)); a && (r.allBasenames = a.allBasenames); const l = i.reduce(((e, t) => t.allPaths ? e.concat(t.allPaths) : e), []); return l.length && (r.allPaths = l), r }(e, t) } function D(e, t) { const i = e.filter((e => !!e.basenames)); if (i.length < 2) return e; const n = i.reduce(((e, t) => { const i = t.basenames; return i ? e.concat(i) : e }), []); let o; if (t) { o = []; for (let e = 0, i = n.length; e < i; e++) o.push(t) } else o = i.reduce(((e, t) => { const i = t.patterns; return i ? e.concat(i) : e }), []); const r = function(e, t) { if ("string" != typeof e) return null; if (!t) { let i; for (i = e.length; i > 0; i--) { const t = e.charCodeAt(i - 1); if (47 === t || 92 === t) break } t = e.substr(i) } const i = n.indexOf(t); return -1 !== i ? o[i] : null }; r.basenames = n, r.patterns = o, r.allBasenames = n; const s = e.filter((e => !e.basenames)); return s.push(r), s } }, 9954: (e, t, i) => { "use strict"; i.d(t, { vp: () => o, SP: () => r, Cv: () => a, yP: () => h }); var n = i(7295); function o(e) { return r(e, 0) } function r(e, t) { switch (typeof e) { case "object": return null === e ? s(349, t) : Array.isArray(e) ? (i = e, n = s( 104579, n = t), i.reduce(((e, t) => r(t, e)), n)) : function(e, t) { return t = s(181387, t), Object.keys(e).sort().reduce(((t, i) => (t = a(i, t), r(e[i], t))), t) }(e, t); case "string": return a(e, t); case "boolean": return function(e, t) { return s(e ? 433 : 863, t) }(e, t); case "number": return s(e, t); case "undefined": return s(937, t); default: return s(617, t) } var i, n } function s(e, t) { return (t << 5) - t + e | 0 } function a(e, t) { t = s(149417, t); for (let i = 0, n = e.length; i < n; i++) t = s(e.charCodeAt(i), t); return t } function l(e, t, i = 32) { const n = i - t; return (e << t | (~((1 << n) - 1) & e) >>> n) >>> 0 } function d(e, t = 0, i = e.byteLength, n = 0) { for (let o = 0; o < i; o++) e[t + o] = n } function c(e, t = 32) { return e instanceof ArrayBuffer ? Array.from(new Uint8Array(e)).map((e => e.toString(16).padStart(2, "0"))).join("") : function(e, t, i = "0") { for (; e.length < t;) e = i + e; return e }((e >>> 0).toString(16), t / 4) } class h { 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(e) { const t = e.length; if (0 === t) return; const i = this._buff; let o, r, s = this._buffLen, a = this._leftoverHighSurrogate; for (0 !== a ? (o = a, r = -1, a = 0) : (o = e.charCodeAt(0), r = 0);;) { let l = o; if (n.ZG(o)) { if (!(r + 1 < t)) { a = o; break } { const t = e.charCodeAt(r + 1); n.YK(t) ? (r++, l = n.rL(o, t)) : l = 65533 } } else n.YK(o) && (l = 65533); if (s = this._push(i, s, l), r++, !(r < t)) break; o = e.charCodeAt(r) } this._buffLen = s, this._leftoverHighSurrogate = a } _push(e, t, i) { return i < 128 ? e[t++] = i : i < 2048 ? (e[t++] = 192 | (1984 & i) >>> 6, e[t++] = 128 | (63 & i) >>> 0) : i < 65536 ? (e[t++] = 224 | ( 61440 & i) >>> 12, e[t++] = 128 | (4032 & i) >>> 6, e[t++] = 128 | (63 & i) >>> 0) : (e[t++] = 240 | (1835008 & i) >>> 18, e[t++] = 128 | (258048 & i) >>> 12, e[t++] = 128 | (4032 & i) >>> 6, e[t++] = 128 | (63 & i) >>> 0), t >= 64 && (this._step(), t -= 64, this._totalLen += 64, e[0] = e[64], e[1] = e[65], e[2] = e[66]), t } 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() ), c(this._h0) + c(this._h1) + c(this._h2) + c(this._h3) + c(this._h4) } _wrapUp() { this._buff[this._buffLen++] = 128, d(this._buff, this._buffLen), this._buffLen > 56 && (this._step(), d(this._buff)); const e = 8 * this._totalLen; this._buffDV.setUint32(56, Math.floor(e / 4294967296), !1), this._buffDV .setUint32(60, e % 4294967296, !1), this._step() } _step() { const e = h._bigBlock32, t = this._buffDV; for (let i = 0; i < 64; i += 4) e.setUint32(i, t.getUint32(i, !1), !1); for (let t = 64; t < 320; t += 4) e.setUint32(t, l(e.getUint32(t - 12, ! 1) ^ e.getUint32(t - 32, !1) ^ e.getUint32(t - 56, !1) ^ e.getUint32( t - 64, !1), 1), !1); let i, n, o, r = this._h0, s = this._h1, a = this._h2, d = this._h3, c = this._h4; for (let t = 0; t < 80; t++) t < 20 ? (i = s & a | ~s & d, n = 1518500249) : t < 40 ? (i = s ^ a ^ d, n = 1859775393) : t < 60 ? (i = s & a | s & d | a & d, n = 2400959708) : (i = s ^ a ^ d, n = 3395469782), o = l(r, 5) + i + c + n + e.getUint32(4 * t, !1) & 4294967295, c = d, d = a, a = l(s, 30), s = r, r = o; this._h0 = this._h0 + r & 4294967295, this._h1 = this._h1 + s & 4294967295, this._h2 = this._h2 + a & 4294967295, this._h3 = this._h3 + d & 4294967295, this._h4 = this._h4 + c & 4294967295 } } h._bigBlock32 = new DataView(new ArrayBuffer(320)) }, 9365: (e, t, i) => { "use strict"; i.d(t, { W5: () => r, CP: () => s, oR: () => a, v1: () => l }); var n = i(7301), o = i(1212); class r { constructor(e = "", t = !1) { var i, o; if (this.value = e, "string" != typeof this.value) throw (0, n.b1)( "value"); "boolean" == typeof t ? (this.isTrusted = t, this.supportThemeIcons = ! 1) : (this.isTrusted = null !== (i = t.isTrusted) && void 0 !== i ? i : void 0, this.supportThemeIcons = null !== (o = t.supportThemeIcons) && void 0 !== o && o) } appendText(e, t = 0) { var i; return this.value += (i = this.supportThemeIcons ? (0, o.Qo)(e) : e, i .replace(/[\\`*_{}[\]()#+\-.!]/g, "\\$&")).replace(/([ \t]+)/g, ((e, t) => " ".repeat(t.length))).replace(/^>/gm, "\\>").replace( /\n/g, 1 === t ? "\\\n" : "\n\n"), this } appendMarkdown(e) { return this.value += e, this } appendCodeblock(e, t) { return this.value += "\n```", this.value += e, this.value += "\n", this.value += t, this.value += "\n```\n", this } } function s(e) { return (t = e) instanceof r || t && "object" == typeof t && !("string" != typeof t.value || "boolean" != typeof t.isTrusted && void 0 !== t.isTrusted || "boolean" != typeof t.supportThemeIcons && void 0 !== t.supportThemeIcons ) ? !e.value : !Array.isArray(e) || e.every(s); var t } function a(e) { return e ? e.replace(/\\([\\`*_{}[\]()#+\-.!])/g, "$1") : e } function l(e) { const t = [], i = e.split("|").map((e => e.trim())); e = i[0]; const n = i[1]; if (n) { const e = /height=(\d+)/.exec(n), i = /width=(\d+)/.exec(n), o = e ? e[1] : "", r = i ? i[1] : "", s = isFinite(parseInt(r)), a = isFinite(parseInt(o)); s && t.push(`width="${r}"`), a && t.push(`height="${o}"`) } return { href: e, dimensions: t } } }, 1212: (e, t, i) => { "use strict"; i.d(t, { Qo: () => d, f$: () => h, x$: () => g, Ho: () => p, Gt: () => m }); var n = i(3046), o = i(5392), r = i(7295); const s = "$(", a = new RegExp( `\\$\\(${n.dT.iconNameExpression}(?:${n.dT.iconModifierExpression})?\\)`, "g"), l = new RegExp(`(\\\\)?${a.source}`, "g"); function d(e) { return e.replace(l, ((e, t) => t ? e : `\\${e}`)) } const c = new RegExp(`\\\\${a.source}`, "g"); function h(e) { return e.replace(c, (e => `\\${e}`)) } const u = new RegExp(`(\\s)?(\\\\)?${a.source}(\\s)?`, "g"); function g(e) { return -1 === e.indexOf(s) ? e : e.replace(u, ((e, t, i, n) => i ? e : t || n || "")) } function p(e) { const t = e.indexOf(s); return -1 === t ? { text: e } : function(e, t) { const i = []; let n = ""; function o(e) { if (e) { n += e; for (const t of e) i.push(c) } } let r, a, l = -1, d = "", c = 0, h = t; const u = e.length; for (o(e.substr(0, t)); h < u;) r = e[h], a = e[h + 1], r === s[0] && a === s[1] ? (l = h, o(d), d = s, h++) : ")" === r && -1 !== l ? (c += h - l + 1, l = -1, d = "") : -1 !== l ? /^[a-z0-9\-]$/i.test(r) ? d += r : (o(d), l = -1, d = "") : o(r), h++; return o(d), { text: n, iconOffsets: i } }(e, t) } function m(e, t, i = !1) { const { text: n, iconOffsets: s } = t; if (!s || 0 === s.length) return (0, o.Oh)(e, n, i); const a = (0, r.j3)(n, " "), l = n.length - a.length, d = (0, o.Oh)(e, a, i); if (d) for (const e of d) { const t = s[e.start + l] + l; e.start += t, e.end += t } return d } }, 4742: (e, t, i) => { "use strict"; i.d(t, { R: () => n, a: () => o }); class n { constructor(e) { this._prefix = e, this._lastId = 0 } nextId() { return this._prefix + ++this._lastId } } const o = new n("id#") }, 3725: (e, t, i) => { "use strict"; var n; i.d(t, { $: () => n }), function(e) { e.is = function(e) { return e && "object" == typeof e && "function" == typeof e[Symbol.iterator] }; const t = Object.freeze([]); e.empty = function() { return t }, e.single = function*(e) { yield e }, e.from = function(e) { return e || t }, e.isEmpty = function(e) { return !e || !0 === e[Symbol.iterator]().next().done }, e.first = function(e) { return e[Symbol.iterator]().next().value }, e.some = function(e, t) { for (const i of e) if (t(i)) return !0; return !1 }, e.find = function(e, t) { for (const i of e) if (t(i)) return i }, e.filter = function*(e, t) { for (const i of e) t(i) && (yield i) }, e.map = function*(e, t) { let i = 0; for (const n of e) yield t(n, i++) }, e.concat = function*(...e) { for (const t of e) for (const e of t) yield e }, e.concatNested = function*(e) { for (const t of e) for (const e of t) yield e }, e.reduce = function(e, t, i) { let n = i; for (const i of e) n = t(n, i); return n }, e.slice = function*(e, t, i = e.length) { for (t < 0 && (t += e.length), i < 0 ? i += e.length : i > e.length && (i = e.length); t < i; t++) yield e[t] }, e.consume = function(t, i = Number.POSITIVE_INFINITY) { const n = []; if (0 === i) return [n, t]; const o = t[Symbol.iterator](); for (let t = 0; t < i; t++) { const t = o.next(); if (t.done) return [n, e.empty()]; n.push(t.value) } return [n, { [Symbol.iterator]: () => o }] }, e.equals = function(e, t, i = ((e, t) => e === t)) { const n = e[Symbol.iterator](), o = t[Symbol.iterator](); for (;;) { const e = n.next(), t = o.next(); if (e.done !== t.done) return !1; if (e.done) return !0; if (!i(e.value, t.value)) return !1 } } }(n || (n = {})) }, 2258: (e, t, i) => { "use strict"; i.d(t, { kL: () => l, gx: () => d, gm: () => c, QC: () => u, BQ: () => p, f1: () => m }); var n = i(7301); class o { constructor() { this._keyCodeToStr = [], this._strToKeyCode = Object.create(null) } define(e, t) { this._keyCodeToStr[e] = t, this._strToKeyCode[t.toLowerCase()] = e } keyCodeToStr(e) { return this._keyCodeToStr[e] } strToKeyCode(e) { return this._strToKeyCode[e.toLowerCase()] || 0 } } const r = new o, s = new o, a = new o; var l; function d(e, t) { return (e | (65535 & t) << 16 >>> 0) >>> 0 } function c(e, t) { if (0 === e) return null; const i = (65535 & e) >>> 0, n = (4294901760 & e) >>> 16; return new g(0 !== n ? [h(i, t), h(n, t)] : [h(i, t)]) } function h(e, t) { const i = !!(2048 & e), n = !!(256 & e); return new u(2 === t ? n : i, !!(1024 & e), !!(512 & e), 2 === t ? i : n, 255 & e) }! function() { function e(e, t, i = t, n = i) { r.define(e, t), s.define(e, i), a.define(e, n) } e(0, "unknown"), e(1, "Backspace"), e(2, "Tab"), e(3, "Enter"), e(4, "Shift"), e(5, "Ctrl"), e(6, "Alt"), e(7, "PauseBreak"), e(8, "CapsLock"), e(9, "Escape"), e(10, "Space"), e(11, "PageUp"), e(12, "PageDown"), e(13, "End"), e(14, "Home"), e(15, "LeftArrow", "Left"), e(16, "UpArrow", "Up"), e(17, "RightArrow", "Right"), e(18, "DownArrow", "Down"), e(19, "Insert"), e(20, "Delete"), e(21, "0"), e(22, "1"), e( 23, "2"), e(24, "3"), e(25, "4"), e(26, "5"), e(27, "6"), e(28, "7"), e(29, "8"), e(30, "9"), e(31, "A"), e(32, "B"), e(33, "C"), e(34, "D"), e(35, "E"), e(36, "F"), e(37, "G"), e(38, "H"), e(39, "I"), e(40, "J"), e(41, "K"), e(42, "L"), e(43, "M"), e(44, "N"), e(45, "O"), e(46, "P"), e(47, "Q"), e(48, "R"), e(49, "S"), e(50, "T"), e(51, "U"), e(52, "V"), e(53, "W"), e(54, "X"), e(55, "Y"), e(56, "Z"), e(57, "Meta"), e(58, "ContextMenu"), e(59, "F1"), e(60, "F2"), e(61, "F3"), e(62, "F4"), e( 63, "F5"), e(64, "F6"), e(65, "F7"), e(66, "F8"), e(67, "F9"), e(68, "F10"), e(69, "F11"), e(70, "F12"), e(71, "F13"), e(72, "F14"), e(73, "F15"), e(74, "F16"), e(75, "F17"), e(76, "F18"), e(77, "F19"), e(78, "NumLock"), e(79, "ScrollLock"), e(80, ";", ";", "OEM_1"), e(81, "=", "=", "OEM_PLUS"), e(82, ",", ",", "OEM_COMMA"), e(83, "-", "-", "OEM_MINUS"), e(84, ".", ".", "OEM_PERIOD"), e(85, "/", "/", "OEM_2"), e(86, "`", "`", "OEM_3"), e(110, "ABNT_C1"), e(111, "ABNT_C2"), e(87, "[", "[", "OEM_4"), e(88, "\\", "\\", "OEM_5"), e(89, "]", "]", "OEM_6"), e(90, "'", "'", "OEM_7"), e(91, "OEM_8"), e(92, "OEM_102"), e(93, "NumPad0"), e(94, "NumPad1"), e(95, "NumPad2"), e(96, "NumPad3"), e(97, "NumPad4"), e(98, "NumPad5"), e(99, "NumPad6"), e(100, "NumPad7"), e(101, "NumPad8"), e(102, "NumPad9"), e(103, "NumPad_Multiply"), e(104, "NumPad_Add"), e(105, "NumPad_Separator"), e(106, "NumPad_Subtract"), e(107, "NumPad_Decimal"), e(108, "NumPad_Divide") }(), function(e) { e.toString = function(e) { return r.keyCodeToStr(e) }, e.fromString = function(e) { return r.strToKeyCode(e) }, e.toUserSettingsUS = function(e) { return s.keyCodeToStr(e) }, e.toUserSettingsGeneral = function(e) { return a.keyCodeToStr(e) }, e.fromUserSettings = function(e) { return s.strToKeyCode(e) || a.strToKeyCode(e) } }(l || (l = {})); class u { constructor(e, t, i, n, o) { this.ctrlKey = e, this.shiftKey = t, this.altKey = i, this.metaKey = n, this.keyCode = o } equals(e) { return this.ctrlKey === e.ctrlKey && this.shiftKey === e.shiftKey && this.altKey === e.altKey && this.metaKey === e.metaKey && this.keyCode === e.keyCode } isModifierKey() { return 0 === this.keyCode || 5 === this.keyCode || 57 === this.keyCode || 6 === this.keyCode || 4 === this.keyCode } toChord() { return new g([this]) } isDuplicateModifierCase() { return this.ctrlKey && 5 === this.keyCode || this.shiftKey && 4 === this.keyCode || this.altKey && 6 === this.keyCode || this.metaKey && 57 === this.keyCode } } class g { constructor(e) { if (0 === e.length) throw (0, n.b1)("parts"); this.parts = e } } class p { constructor(e, t, i, n, o, r) { this.ctrlKey = e, this.shiftKey = t, this.altKey = i, this.metaKey = n, this.keyLabel = o, this.keyAriaLabel = r } } class m {} }, 8030: (e, t, i) => { "use strict"; i.d(t, { xo: () => r, X4: () => s }); var n = i(3580); class o { constructor(e, t, i = t) { this.modifierLabels = [null], this.modifierLabels[2] = e, this.modifierLabels[ 1] = t, this.modifierLabels[3] = i } toLabel(e, t, i) { if (0 === t.length) return null; const n = []; for (let o = 0, r = t.length; o < r; o++) { const r = t[o], s = i(r); if (null === s) return null; n[o] = a(r, s, this.modifierLabels[e]) } return n.join(" ") } } const r = new o({ ctrlKey: "⌃", shiftKey: "⇧", altKey: "⌥", metaKey: "⌘", separator: "" }, { ctrlKey: n.N({ key: "ctrlKey", comment: [ "This is the short form for the Control key on the keyboard" ] }, "Ctrl"), shiftKey: n.N({ key: "shiftKey", comment: [ "This is the short form for the Shift key on the keyboard" ] }, "Shift"), altKey: n.N({ key: "altKey", comment: ["This is the short form for the Alt key on the keyboard"] }, "Alt"), metaKey: n.N({ key: "windowsKey", comment: [ "This is the short form for the Windows key on the keyboard" ] }, "Windows"), separator: "+" }, { ctrlKey: n.N({ key: "ctrlKey", comment: [ "This is the short form for the Control key on the keyboard" ] }, "Ctrl"), shiftKey: n.N({ key: "shiftKey", comment: [ "This is the short form for the Shift key on the keyboard" ] }, "Shift"), altKey: n.N({ key: "altKey", comment: ["This is the short form for the Alt key on the keyboard"] }, "Alt"), metaKey: n.N({ key: "superKey", comment: [ "This is the short form for the Super key on the keyboard" ] }, "Super"), separator: "+" }), s = new o({ ctrlKey: n.N({ key: "ctrlKey.long", comment: [ "This is the long form for the Control key on the keyboard" ] }, "Control"), shiftKey: n.N({ key: "shiftKey.long", comment: ["This is the long form for the Shift key on the keyboard"] }, "Shift"), altKey: n.N({ key: "altKey.long", comment: ["This is the long form for the Alt key on the keyboard"] }, "Alt"), metaKey: n.N({ key: "cmdKey.long", comment: [ "This is the long form for the Command key on the keyboard" ] }, "Command"), separator: "+" }, { ctrlKey: n.N({ key: "ctrlKey.long", comment: [ "This is the long form for the Control key on the keyboard" ] }, "Control"), shiftKey: n.N({ key: "shiftKey.long", comment: ["This is the long form for the Shift key on the keyboard"] }, "Shift"), altKey: n.N({ key: "altKey.long", comment: ["This is the long form for the Alt key on the keyboard"] }, "Alt"), metaKey: n.N({ key: "windowsKey.long", comment: [ "This is the long form for the Windows key on the keyboard" ] }, "Windows"), separator: "+" }, { ctrlKey: n.N({ key: "ctrlKey.long", comment: [ "This is the long form for the Control key on the keyboard" ] }, "Control"), shiftKey: n.N({ key: "shiftKey.long", comment: ["This is the long form for the Shift key on the keyboard"] }, "Shift"), altKey: n.N({ key: "altKey.long", comment: ["This is the long form for the Alt key on the keyboard"] }, "Alt"), metaKey: n.N({ key: "superKey.long", comment: ["This is the long form for the Super key on the keyboard"] }, "Super"), separator: "+" }); function a(e, t, i) { if (null === t) return ""; const n = []; return e.ctrlKey && n.push(i.ctrlKey), e.shiftKey && n.push(i.shiftKey), e.altKey && n.push(i.altKey), e.metaKey && n.push(i.metaKey), "" !== t && n.push(t), n.join(i.separator) } }, 8843: (e, t, i) => { "use strict"; i.d(t, { p: () => l, D: () => d }); var n = i(5527), o = i(6663), r = i(1432), s = i(5935), a = i(666); function l(e) { if (!e) return; "string" == typeof e && (e = a.o.file(e)); const t = (0, s.EZ)(e) || (e.scheme === o.lg.file ? e.fsPath : e.path); return r.ED && (0, n.vY)(t) ? d(t) : t } function d(e) { return (0, n.oP)(e) ? e.charAt(0).toUpperCase() + e.slice(1) : e } }, 5976: (e, t, i) => { "use strict"; i.d(t, { dk: () => r, Wf: () => a, B9: () => l, F8: () => d, OF: () => c, SL: () => h, JT: () => u, XK: () => g, Jz: () => p }); var n = i(8289), o = i(3725); function r(e) { return e } class s extends Error { constructor(e) { super( `Encountered errors while disposing of store. Errors: [${e.join(", ")}]` ), this.errors = e } } function a(e) { return "function" == typeof e.dispose && 0 === e.dispose.length } function l(e) { if (o.$.is(e)) { let t = []; for (const i of e) if (i) try { i.dispose() } catch (e) { t.push(e) } if (1 === t.length) throw t[0]; if (t.length > 1) throw new s(t); return Array.isArray(e) ? [] : e } if (e) return e.dispose(), e } function d(...e) { const t = c((() => l(e))); return t } function c(e) { const t = { dispose: (0, n.I)((() => { e() })) }; return t } class h { constructor() { this._toDispose = new Set, this._isDisposed = !1 } dispose() { this._isDisposed || (this._isDisposed = !0, this.clear()) } clear() { try { l(this._toDispose.values()) } finally { this._toDispose.clear() } } add(e) { if (!e) return e; if (e === this) throw new Error( "Cannot register a disposable on itself!"); return this._isDisposed ? h.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(e), e } } h.DISABLE_DISPOSED_WARNING = !1; class u { constructor() { this._store = new h, this._store } dispose() { this._store.dispose() } _register(e) { if (e === this) throw new Error( "Cannot register a disposable on itself!"); return this._store.add(e) } } u.None = Object.freeze({ dispose() {} }); class g { constructor() { this._isDisposed = !1 } get value() { return this._isDisposed ? void 0 : this._value } set value(e) { var t; this._isDisposed || e === this._value || (null === (t = this._value) || void 0 === t || t.dispose(), this._value = e) } clear() { this.value = void 0 } dispose() { var e; this._isDisposed = !0, null === (e = this._value) || void 0 === e || e .dispose(), this._value = void 0 } clearAndLeak() { const e = this._value; return this._value = void 0, e } } class p { constructor(e) { this.object = e } dispose() {} } }, 1741: (e, t, i) => { "use strict"; i.d(t, { S: () => o }); class n { constructor(e) { this.element = e, this.next = n.Undefined, this.prev = n.Undefined } } n.Undefined = new n(void 0); class o { constructor() { this._first = n.Undefined, this._last = n.Undefined, this._size = 0 } get size() { return this._size } isEmpty() { return this._first === n.Undefined } clear() { let e = this._first; for (; e !== n.Undefined;) { const t = e.next; e.prev = n.Undefined, e.next = n.Undefined, e = t } this._first = n.Undefined, this._last = n.Undefined, this._size = 0 } unshift(e) { return this._insert(e, !1) } push(e) { return this._insert(e, !0) } _insert(e, t) { const i = new n(e); if (this._first === n.Undefined) this._first = i, this._last = i; else if (t) { const e = this._last; this._last = i, i.prev = e, e.next = i } else { const e = this._first; this._first = i, i.next = e, e.prev = i } this._size += 1; let o = !1; return () => { o || (o = !0, this._remove(i)) } } shift() { if (this._first !== n.Undefined) { const e = this._first.element; return this._remove(this._first), e } } pop() { if (this._last !== n.Undefined) { const e = this._last.element; return this._remove(this._last), e } } _remove(e) { if (e.prev !== n.Undefined && e.next !== n.Undefined) { const t = e.prev; t.next = e.next, e.next.prev = t } else e.prev === n.Undefined && e.next === n.Undefined ? (this._first = n.Undefined, this._last = n.Undefined) : e.next === n.Undefined ? ( this._last = this._last.prev, this._last.next = n.Undefined) : e.prev === n.Undefined && (this._first = this._first.next, this._first.prev = n.Undefined); this._size -= 1 } * [Symbol.iterator]() { let e = this._first; for (; e !== n.Undefined;) yield e.element, e = e.next } } }, 3702: (e, t, i) => { "use strict"; i.d(t, { Id: () => u, Y9: () => g, z6: () => m }); var n, o, r = i(7295), s = i(666); class a { constructor() { this._value = "", this._pos = 0 } reset(e) { return this._value = e, this._pos = 0, this } next() { return this._pos += 1, this } hasNext() { return this._pos < this._value.length - 1 } cmp(e) { return e.charCodeAt(0) - this._value.charCodeAt(this._pos) } value() { return this._value[this._pos] } } class l { constructor(e = !0) { this._caseSensitive = e } reset(e) { return this._value = e, this._from = 0, this._to = 0, this.next() } hasNext() { return this._to < this._value.length } next() { this._from = this._to; let e = !0; for (; this._to < this._value.length; this._to++) if (46 === this._value.charCodeAt(this._to)) { if (!e) break; this._from++ } else e = !1; return this } cmp(e) { return this._caseSensitive ? (0, r.TT)(e, this._value, 0, e.length, this._from, this._to) : (0, r.j_)(e, this._value, 0, e.length, this._from, this._to) } value() { return this._value.substring(this._from, this._to) } } class d { constructor(e = !0, t = !0) { this._splitOnBackslash = e, this._caseSensitive = t } reset(e) { return this._value = e.replace(/\\$|\/$/, ""), this._from = 0, this._to = 0, this.next() } hasNext() { return this._to < this._value.length } next() { this._from = this._to; let e = !0; for (; this._to < this._value.length; this._to++) { const t = this._value.charCodeAt(this._to); if (47 === t || this._splitOnBackslash && 92 === t) { if (!e) break; this._from++ } else e = !1 } return this } cmp(e) { return this._caseSensitive ? (0, r.TT)(e, this._value, 0, e.length, this._from, this._to) : (0, r.j_)(e, this._value, 0, e.length, this._from, this._to) } value() { return this._value.substring(this._from, this._to) } } class c { constructor(e) { this._ignorePathCasing = e, this._states = [], this._stateIdx = 0 } reset(e) { return this._value = e, this._states = [], this._value.scheme && this._states .push(1), this._value.authority && this._states.push(2), this._value.path && (this._pathIterator = new d(!1, !this._ignorePathCasing(e)), this._pathIterator .reset(e.path), this._pathIterator.value() && this._states.push(3)), this._value.query && this._states.push(4), this._value.fragment && this._states.push(5), this._stateIdx = 0, this } next() { return 3 === this._states[this._stateIdx] && this._pathIterator.hasNext() ? this._pathIterator.next() : this._stateIdx += 1, this } hasNext() { return 3 === this._states[this._stateIdx] && this._pathIterator.hasNext() || this._stateIdx < this._states.length - 1 } cmp(e) { if (1 === this._states[this._stateIdx]) return (0, r.zY)(e, this._value .scheme); if (2 === this._states[this._stateIdx]) return (0, r.zY)(e, this._value .authority); if (3 === this._states[this._stateIdx]) return this._pathIterator.cmp( e); if (4 === this._states[this._stateIdx]) return (0, r.qu)(e, this._value .query); if (5 === this._states[this._stateIdx]) return (0, r.qu)(e, this._value .fragment); throw new Error } value() { if (1 === this._states[this._stateIdx]) return this._value.scheme; if (2 === this._states[this._stateIdx]) return this._value.authority; if (3 === this._states[this._stateIdx]) return this._pathIterator.value(); if (4 === this._states[this._stateIdx]) return this._value.query; if (5 === this._states[this._stateIdx]) return this._value.fragment; throw new Error } } class h { isEmpty() { return !(this.left || this.mid || this.right || this.value) } } class u { constructor(e) { this._iter = e } static forUris(e = (() => !1)) { return new u(new c(e)) } static forStrings() { return new u(new a) } static forConfigKeys() { return new u(new l) } clear() { this._root = void 0 } set(e, t) { const i = this._iter.reset(e); let n; for (this._root || (this._root = new h, this._root.segment = i.value()), n = this._root;;) { const e = i.cmp(n.segment); if (e > 0) n.left || (n.left = new h, n.left.segment = i.value()), n = n.left; else if (e < 0) n.right || (n.right = new h, n.right.segment = i.value()), n = n.right; else { if (!i.hasNext()) break; i.next(), n.mid || (n.mid = new h, n.mid.segment = i.value()), n = n .mid } } const o = n.value; return n.value = t, n.key = e, o } get(e) { var t; return null === (t = this._getNode(e)) || void 0 === t ? void 0 : t.value } _getNode(e) { const t = this._iter.reset(e); let i = this._root; for (; i;) { const e = t.cmp(i.segment); if (e > 0) i = i.left; else if (e < 0) i = i.right; else { if (!t.hasNext()) break; t.next(), i = i.mid } } return i } has(e) { const t = this._getNode(e); return !(void 0 === (null == t ? void 0 : t.value) && void 0 === (null == t ? void 0 : t.mid)) } delete(e) { return this._delete(e, !1) } deleteSuperstr(e) { return this._delete(e, !0) } _delete(e, t) { const i = this._iter.reset(e), n = []; let o = this._root; for (; o;) { const e = i.cmp(o.segment); if (e > 0) n.push([1, o]), o = o.left; else if (e < 0) n.push([-1, o]), o = o.right; else { if (!i.hasNext()) { for (t ? (o.left = void 0, o.mid = void 0, o.right = void 0) : o.value = void 0; n.length > 0 && o.isEmpty();) { let [e, t] = n.pop(); switch (e) { case 1: t.left = void 0; break; case 0: t.mid = void 0; break; case -1: t.right = void 0 } o = t } break } i.next(), n.push([0, o]), o = o.mid } } } findSubstr(e) { const t = this._iter.reset(e); let i, n = this._root; for (; n;) { const e = t.cmp(n.segment); if (e > 0) n = n.left; else if (e < 0) n = n.right; else { if (!t.hasNext()) break; t.next(), i = n.value || i, n = n.mid } } return n && n.value || i } findSuperstr(e) { const t = this._iter.reset(e); let i = this._root; for (; i;) { const e = t.cmp(i.segment); if (e > 0) i = i.left; else if (e < 0) i = i.right; else { if (!t.hasNext()) return i.mid ? this._entries(i.mid) : void 0; t.next(), i = i.mid } } } forEach(e) { for (const [t, i] of this) e(i, t) } * [Symbol.iterator]() { yield * this._entries(this._root) } * _entries(e) { if (!e) return; const t = [e]; for (; t.length > 0;) { const e = t.pop(); e && (e.value && (yield [e.key, e.value]), e.left && t.push(e.left), e.mid && t.push(e.mid), e.right && t.push(e.right)) } } } class g { constructor(e, t) { this[n] = "ResourceMap", e instanceof g ? (this.map = new Map(e.map), this.toKey = null != t ? t : g.defaultToKey) : (this.map = new Map, this.toKey = null != e ? e : g.defaultToKey) } set(e, t) { return this.map.set(this.toKey(e), t), this } get(e) { return this.map.get(this.toKey(e)) } has(e) { return this.map.has(this.toKey(e)) } get size() { return this.map.size } clear() { this.map.clear() } delete(e) { return this.map.delete(this.toKey(e)) } forEach(e, t) { void 0 !== t && (e = e.bind(t)); for (let [t, i] of this.map) e(i, s.o.parse(t), this) } values() { return this.map.values() } * keys() { for (let e of this.map.keys()) yield s.o.parse(e) } * entries() { for (let e of this.map.entries()) yield [s.o.parse(e[0]), e[1]] } * [(n = Symbol.toStringTag, Symbol.iterator)]() { for (let e of this.map) yield [s.o.parse(e[0]), e[1]] } } g.defaultToKey = e => e.toString(); class p { constructor() { this[o] = "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() { var e; return null === (e = this._head) || void 0 === e ? void 0 : e.value } get last() { var e; return null === (e = this._tail) || void 0 === e ? void 0 : e.value } has(e) { return this._map.has(e) } get(e, t = 0) { const i = this._map.get(e); if (i) return 0 !== t && this.touch(i, t), i.value } set(e, t, i = 0) { let n = this._map.get(e); return n ? (n.value = t, 0 !== i && this.touch(n, i)) : (n = { key: e, value: t, next: void 0, previous: void 0 }, 1 === i ? this.addItemFirst(n) : this.addItemLast(n), this._map.set( e, n), this._size++), this } delete(e) { return !!this.remove(e) } remove(e) { const t = this._map.get(e); if (t) return this._map.delete(e), this.removeItem(t), this._size--, t .value } shift() { if (!this._head && !this._tail) return; if (!this._head || !this._tail) throw new Error("Invalid list"); const e = this._head; return this._map.delete(e.key), this.removeItem(e), this._size--, e.value } forEach(e, t) { const i = this._state; let n = this._head; for (; n;) { if (t ? e.bind(t)(n.value, n.key, this) : e(n.value, n.key, this), this._state !== i) throw new Error( "LinkedMap got modified during iteration."); n = n.next } } keys() { const e = this, t = this._state; let i = this._head; const n = { [Symbol.iterator]: () => n, next() { if (e._state !== t) throw new Error( "LinkedMap got modified during iteration."); if (i) { const e = { value: i.key, done: !1 }; return i = i.next, e } return { value: void 0, done: !0 } } }; return n } values() { const e = this, t = this._state; let i = this._head; const n = { [Symbol.iterator]: () => n, next() { if (e._state !== t) throw new Error( "LinkedMap got modified during iteration."); if (i) { const e = { value: i.value, done: !1 }; return i = i.next, e } return { value: void 0, done: !0 } } }; return n } entries() { const e = this, t = this._state; let i = this._head; const n = { [Symbol.iterator]: () => n, next() { if (e._state !== t) throw new Error( "LinkedMap got modified during iteration."); if (i) { const e = { value: [i.key, i.value], done: !1 }; return i = i.next, e } return { value: void 0, done: !0 } } }; return n }[(o = Symbol.toStringTag, Symbol.iterator)]() { return this.entries() } trimOld(e) { if (e >= this.size) return; if (0 === e) return void this.clear(); let t = this._head, i = this.size; for (; t && i > e;) this._map.delete(t.key), t = t.next, i--; this._head = t, this._size = i, t && (t.previous = void 0), this._state++ } addItemFirst(e) { if (this._head || this._tail) { if (!this._head) throw new Error("Invalid list"); e.next = this._head, this._head.previous = e } else this._tail = e; this._head = e, this._state++ } addItemLast(e) { if (this._head || this._tail) { if (!this._tail) throw new Error("Invalid list"); e.previous = this._tail, this._tail.next = e } else this._head = e; this._tail = e, this._state++ } removeItem(e) { if (e === this._head && e === this._tail) this._head = void 0, this._tail = void 0; else if (e === this._head) { if (!e.next) throw new Error("Invalid list"); e.next.previous = void 0, this._head = e.next } else if (e === this._tail) { if (!e.previous) throw new Error("Invalid list"); e.previous.next = void 0, this._tail = e.previous } else { const t = e.next, i = e.previous; if (!t || !i) throw new Error("Invalid list"); t.previous = i, i.next = t } e.next = void 0, e.previous = void 0, this._state++ } touch(e, t) { if (!this._head || !this._tail) throw new Error("Invalid list"); if (1 === t || 2 === t) if (1 === t) { if (e === this._head) return; const t = e.next, i = e.previous; e === this._tail ? (i.next = void 0, this._tail = i) : (t.previous = i, i.next = t), e.previous = void 0, e.next = this._head, this._head .previous = e, this._head = e, this._state++ } else if (2 === t) { if (e === this._tail) return; const t = e.next, i = e.previous; e === this._head ? (t.previous = void 0, this._head = t) : (t.previous = i, i.next = t), e.next = void 0, e.previous = this._tail, this._tail .next = e, this._tail = e, this._state++ } } toJSON() { const e = []; return this.forEach(((t, i) => { e.push([i, t]) })), e } fromJSON(e) { this.clear(); for (const [t, i] of e) this.set(t, i) } } class m extends p { constructor(e, t = 1) { super(), this._limit = e, this._ratio = Math.min(Math.max(0, t), 1) } get limit() { return this._limit } set limit(e) { this._limit = e, this.checkTrim() } get(e, t = 2) { return super.get(e, t) } peek(e) { return super.get(e, 0) } set(e, t) { return super.set(e, t, 2), this.checkTrim(), this } checkTrim() { this.size > this._limit && this.trimOld(Math.round(this._limit * this._ratio)) } } }, 3720: function(e) { e.exports = function() { "use strict"; function e(e, t) { for (var i = 0; i < t.length; i++) { var n = t[i]; n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n) } } function t(e, t) { (null == t || t > e.length) && (t = e.length); for (var i = 0, n = new Array(t); i < t; i++) n[i] = e[i]; return n } function i(e, i) { var n = "undefined" != typeof Symbol && e[Symbol.iterator] || e[ "@@iterator"]; if (n) return (n = n.call(e)).next.bind(n); if (Array.isArray(e) || (n = function(e, i) { if (e) { if ("string" == typeof e) return t(e, i); var n = Object.prototype.toString.call(e).slice(8, -1); return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? t(e, i) : void 0 } }(e)) || i && e && "number" == typeof e.length) { n && (e = n); var o = 0; return function() { return o >= e.length ? { done: !0 } : { done: !1, value: e[o++] } } } throw new TypeError( "Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method." ) } var n = { exports: {} }; function o() { return { baseUrl: null, breaks: !1, extensions: null, gfm: !0, headerIds: !0, headerPrefix: "", highlight: null, langPrefix: "language-", mangle: !0, pedantic: !1, renderer: null, sanitize: !1, sanitizer: null, silent: !1, smartLists: !1, smartypants: !1, tokenizer: null, walkTokens: null, xhtml: !1 } } n.exports = { defaults: { baseUrl: null, breaks: !1, extensions: null, gfm: !0, headerIds: !0, headerPrefix: "", highlight: null, langPrefix: "language-", mangle: !0, pedantic: !1, renderer: null, sanitize: !1, sanitizer: null, silent: !1, smartLists: !1, smartypants: !1, tokenizer: null, walkTokens: null, xhtml: !1 }, getDefaults: o, changeDefaults: function(e) { n.exports.defaults = e } }; var r = /[&<>"']/, s = /[&<>"']/g, a = /[<>"']|&(?!#?\w+;)/, l = /[<>"']|&(?!#?\w+;)/g, d = { "&": "&", "<": "<", ">": ">", '"': """, "'": "'" }, c = function(e) { return d[e] }; var h = /&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi; function u(e) { return e.replace(h, (function(e, t) { return "colon" === (t = t.toLowerCase()) ? ":" : "#" === t.charAt( 0) ? "x" === t.charAt(1) ? String.fromCharCode(parseInt(t.substring( 2), 16)) : String.fromCharCode(+t.substring(1)) : "" })) } var g = /(^|[^\[])\^/g; var p = /[^\w:]/g, m = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i; var f = {}, _ = /^[^:]+:\/*[^/]*$/, b = /^([^:]+:)[\s\S]*$/, v = /^([^:]+:\/*[^/]*)[\s\S]*$/; function w(e, t) { f[" " + e] || (_.test(e) ? f[" " + e] = e + "/" : f[" " + e] = C(e, "/", !0)); var i = -1 === (e = f[" " + e]).indexOf(":"); return "//" === t.substring(0, 2) ? i ? t : e.replace(b, "$1") + t : "/" === t.charAt(0) ? i ? t : e.replace(v, "$1") + t : e + t } function C(e, t, i) { var n = e.length; if (0 === n) return ""; for (var o = 0; o < n;) { var r = e.charAt(n - o - 1); if (r !== t || i) { if (r === t || !i) break; o++ } else o++ } return e.substr(0, n - o) } var y = function(e, t) { if (t) { if (r.test(e)) return e.replace(s, c) } else if (a.test(e)) return e.replace(l, c); return e }, S = u, x = function(e, t) { e = e.source || e, t = t || ""; var i = { replace: function(t, n) { return n = (n = n.source || n).replace(g, "$1"), e = e.replace(t, n), i }, getRegex: function() { return new RegExp(e, t) } }; return i }, k = function(e, t, i) { if (e) { var n; try { n = decodeURIComponent(u(i)).replace(p, "").toLowerCase() } catch (e) { return null } if (0 === n.indexOf("javascript:") || 0 === n.indexOf("vbscript:") || 0 === n.indexOf("data:")) return null } t && !m.test(i) && (i = w(t, i)); try { i = encodeURI(i).replace(/%25/g, "%") } catch (e) { return null } return i }, L = { exec: function() {} }, N = function(e) { for (var t, i, n = 1; n < arguments.length; n++) for (i in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]); return e }, D = function(e, t) { var i = e.replace(/\|/g, (function(e, t, i) { for (var n = !1, o = t; --o >= 0 && "\\" === i[o];) n = !n; return n ? "|" : " |" })).split(/ \|/), n = 0; if (i[0].trim() || i.shift(), i[i.length - 1].trim() || i.pop(), i.length > t) i.splice(t); else for (; i.length < t;) i.push(""); for (; n < i.length; n++) i[n] = i[n].trim().replace(/\\\|/g, "|"); return i }, E = C, I = function(e, t) { if (-1 === e.indexOf(t[1])) return -1; for (var i = e.length, n = 0, o = 0; o < i; o++) if ("\\" === e[o]) o++; else if (e[o] === t[0]) n++; else if (e[o] === t[1] && --n < 0) return o; return -1 }, T = function(e) { e && e.sanitize && !e.silent && console.warn( "marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options" ) }, M = function(e, t) { if (t < 1) return ""; for (var i = ""; t > 1;) 1 & t && (i += e), t >>= 1, e += e; return i + e }, A = n.exports.defaults, R = E, O = D, P = y, F = I; function B(e, t, i, n) { var o = t.href, r = t.title ? P(t.title) : null, s = e[1].replace(/\\([\[\]])/g, "$1"); return "!" !== e[0].charAt(0) ? (n.state.inLink = !0, { type: "link", raw: i, href: o, title: r, text: s, tokens: n.inlineTokens(s, []) }) : { type: "image", raw: i, href: o, title: r, text: P(s) } } var W = function() { function e(e) { this.options = e || A } var t = e.prototype; return t.space = function(e) { var t = this.rules.block.newline.exec(e); if (t) return t[0].length > 1 ? { type: "space", raw: t[0] } : { raw: "\n" } }, t.code = function(e) { var t = this.rules.block.code.exec(e); if (t) { var i = t[0].replace(/^ {1,4}/gm, ""); return { type: "code", raw: t[0], codeBlockStyle: "indented", text: this.options.pedantic ? i : R(i, "\n") } } }, t.fences = function(e) { var t = this.rules.block.fences.exec(e); if (t) { var i = t[0], n = function(e, t) { var i = e.match(/^(\s+)(?:```)/); if (null === i) return t; var n = i[1]; return t.split("\n").map((function(e) { var t = e.match(/^\s+/); return null === t ? e : t[0].length >= n.length ? e.slice(n.length) : e })).join("\n") }(i, t[3] || ""); return { type: "code", raw: i, lang: t[2] ? t[2].trim() : t[2], text: n } } }, t.heading = function(e) { var t = this.rules.block.heading.exec(e); if (t) { var i = t[2].trim(); if (/#$/.test(i)) { var n = R(i, "#"); this.options.pedantic ? i = n.trim() : n && !/ $/.test(n) || (i = n.trim()) } var o = { type: "heading", raw: t[0], depth: t[1].length, text: i, tokens: [] }; return this.lexer.inline(o.text, o.tokens), o } }, t.hr = function(e) { var t = this.rules.block.hr.exec(e); if (t) return { type: "hr", raw: t[0] } }, t.blockquote = function(e) { var t = this.rules.block.blockquote.exec(e); if (t) { var i = t[0].replace(/^ *> ?/gm, ""); return { type: "blockquote", raw: t[0], tokens: this.lexer.blockTokens(i, []), text: i } } }, t.list = function(e) { var t = this.rules.block.list.exec(e); if (t) { var i, n, o, r, s, a, l, d, c, h, u = t[1].trim(), g = u.length > 1, p = { type: "list", raw: "", ordered: g, start: g ? +u.slice(0, -1) : "", loose: !1, items: [] }; u = g ? "\\d{1,9}\\" + u.slice(-1) : "\\" + u, this.options.pedantic && (u = g ? u : "[*+-]"); for (var m = new RegExp("^( {0,3}" + u + ")((?: [^\\n]*| *)(?:\\n[^\\n]*)*(?:\\n|$))"); e && !this.rules.block .hr.test(e) && (t = m.exec(e));) { c = t[2].split("\n"), this.options.pedantic ? (r = 2, h = c[0].trimLeft()) : (r = t[2].search(/[^ ]/), r = t[1].length + (r > 4 ? 1 : r), h = c[0].slice(r - t[1].length)), a = !1, i = t[0], !c[0] && /^ *$/ .test(c[1]) && (i = t[1] + c.slice(0, 2).join("\n") + "\n", p.loose = ! 0, c = []); var f = new RegExp("^ {0," + Math.min(3, r - 1) + "}(?:[*+-]|\\d{1,9}[.)])"); for (s = 1; s < c.length; s++) { if (d = c[s], this.options.pedantic && (d = d.replace( /^ {1,4}(?=( {4})*[^ ])/g, " ")), f.test(d)) { i = t[1] + c.slice(0, s).join("\n") + "\n"; break } if (a) { if (!(d.search(/[^ ]/) >= r) && d.trim()) { i = t[1] + c.slice(0, s).join("\n") + "\n"; break } h += "\n" + d.slice(r) } else d.trim() || (a = !0), d.search(/[^ ]/) >= r ? h += "\n" + d.slice(r) : h += "\n" + d } p.loose || (l ? p.loose = !0 : /\n *\n *$/.test(i) && (l = !0)), this.options.gfm && (n = /^\[[ xX]\] /.exec(h)) && (o = "[ ] " !== n[0], h = h.replace(/^\[[ xX]\] +/, "")), p.items.push({ type: "list_item", raw: i, task: !!n, checked: o, loose: !1, text: h }), p.raw += i, e = e.slice(i.length) } p.items[p.items.length - 1].raw = i.trimRight(), p.items[p.items.length - 1].text = h.trimRight(), p.raw = p.raw.trimRight(); var _ = p.items.length; for (s = 0; s < _; s++) this.lexer.state.top = !1, p.items[s].tokens = this.lexer.blockTokens(p.items[s].text, []), p.items[s].tokens.some( (function(e) { return "space" === e.type })) && (p.loose = !0, p.items[s].loose = !0); return p } }, t.html = function(e) { var t = this.rules.block.html.exec(e); if (t) { var i = { type: "html", raw: t[0], pre: !this.options.sanitizer && ("pre" === t[1] || "script" === t[1] || "style" === t[1]), text: t[0] }; return this.options.sanitize && (i.type = "paragraph", i.text = this.options.sanitizer ? this.options.sanitizer(t[0]) : P(t[0]), i.tokens = [], this.lexer.inline(i.text, i.tokens)), i } }, t.def = function(e) { var t = this.rules.block.def.exec(e); if (t) return t[3] && (t[3] = t[3].substring(1, t[3].length - 1)), { type: "def", tag: t[1].toLowerCase().replace(/\s+/g, " "), raw: t[0], href: t[2], title: t[3] } }, t.table = function(e) { var t = this.rules.block.table.exec(e); if (t) { var i = { type: "table", header: O(t[1]).map((function(e) { return { text: e } })), align: t[2].replace(/^ *|\| *$/g, "").split(/ *\| */), rows: t[3] ? t[3].replace(/\n$/, "").split("\n") : [] }; if (i.header.length === i.align.length) { i.raw = t[0]; var n, o, r, s, a = i.align.length; for (n = 0; n < a; n++) /^ *-+: *$/.test(i.align[n]) ? i.align[n] = "right" : /^ *:-+: *$/.test(i.align[n]) ? i.align[n] = "center" : /^ *:-+ *$/.test(i.align[n]) ? i.align[n] = "left" : i.align[n] = null; for (a = i.rows.length, n = 0; n < a; n++) i.rows[n] = O(i.rows[n], i.header.length).map((function(e) { return { text: e } })); for (a = i.header.length, o = 0; o < a; o++) i.header[o].tokens = [], this.lexer.inlineTokens(i.header[o].text, i.header[o].tokens); for (a = i.rows.length, o = 0; o < a; o++) for (s = i.rows[o], r = 0; r < s.length; r++) s[r].tokens = [], this.lexer.inlineTokens(s[r].text, s[r].tokens); return i } } }, t.lheading = function(e) { var t = this.rules.block.lheading.exec(e); if (t) { var i = { type: "heading", raw: t[0], depth: "=" === t[2].charAt(0) ? 1 : 2, text: t[1], tokens: [] }; return this.lexer.inline(i.text, i.tokens), i } }, t.paragraph = function(e) { var t = this.rules.block.paragraph.exec(e); if (t) { var i = { type: "paragraph", raw: t[0], text: "\n" === t[1].charAt(t[1].length - 1) ? t[1].slice(0, -1) : t[ 1], tokens: [] }; return this.lexer.inline(i.text, i.tokens), i } }, t.text = function(e) { var t = this.rules.block.text.exec(e); if (t) { var i = { type: "text", raw: t[0], text: t[0], tokens: [] }; return this.lexer.inline(i.text, i.tokens), i } }, t.escape = function(e) { var t = this.rules.inline.escape.exec(e); if (t) return { type: "escape", raw: t[0], text: P(t[1]) } }, t.tag = function(e) { var t = this.rules.inline.tag.exec(e); if (t) return !this.lexer.state.inLink && /^/i.test( t[0]) && (this.lexer.state.inLink = !1), !this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\s|>)/i.test(t[0]) ? this.lexer.state.inRawBlock = ! 0 : this.lexer.state.inRawBlock && /^<\/(pre|code|kbd|script)(\s|>)/i.test(t[0]) && (this.lexer.state .inRawBlock = !1), { type: this.options.sanitize ? "text" : "html", raw: t[0], inLink: this.lexer.state.inLink, inRawBlock: this.lexer.state.inRawBlock, text: this.options.sanitize ? this.options.sanitizer ? this.options .sanitizer(t[0]) : P(t[0]) : t[0] } }, t.link = function(e) { var t = this.rules.inline.link.exec(e); if (t) { var i = t[2].trim(); if (!this.options.pedantic && /^$/.test(i)) return; var n = R(i.slice(0, -1), "\\"); if ((i.length - n.length) % 2 == 0) return } else { var o = F(t[2], "()"); if (o > -1) { var r = (0 === t[0].indexOf("!") ? 5 : 4) + t[1].length + o; t[2] = t[2].substring(0, o), t[0] = t[0].substring(0, r).trim(), t[3] = "" } } var s = t[2], a = ""; if (this.options.pedantic) { var l = /^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(s); l && (s = l[1], a = l[3]) } else a = t[3] ? t[3].slice(1, -1) : ""; return s = s.trim(), /^$/.test(i) ? s.slice(1) : s.slice(1, -1)), B(t, { href: s ? s.replace(this.rules.inline._escapes, "$1") : s, title: a ? a.replace(this.rules.inline._escapes, "$1") : a }, t[0], this.lexer) } }, t.reflink = function(e, t) { var i; if ((i = this.rules.inline.reflink.exec(e)) || (i = this.rules.inline .nolink.exec(e))) { var n = (i[2] || i[1]).replace(/\s+/g, " "); if (!(n = t[n.toLowerCase()]) || !n.href) { var o = i[0].charAt(0); return { type: "text", raw: o, text: o } } return B(i, n, i[0], this.lexer) } }, t.emStrong = function(e, t, i) { void 0 === i && (i = ""); var n = this.rules.inline.emStrong.lDelim.exec(e); if (n && (!n[3] || !i.match( /(?:[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08C7\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\u9FFC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7BF\uA7C2-\uA7CA\uA7F5-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE40-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD23\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF45\uDF51-\uDF54\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF30-\uDF3B]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF2\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82C[\uDC00-\uDD1E\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDD\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])/ ))) { var o = n[1] || n[2] || ""; if (!o || o && ("" === i || this.rules.inline.punctuation.exec(i))) { var r, s, a = n[0].length - 1, l = a, d = 0, c = "*" === n[0][0] ? this.rules.inline.emStrong.rDelimAst : this.rules.inline.emStrong.rDelimUnd; for (c.lastIndex = 0, t = t.slice(-1 * e.length + a); null != (n = c.exec(t));) if (r = n[1] || n[2] || n[3] || n[4] || n[5] || n[6]) if (s = r.length, n[3] || n[4]) l += s; else if (!((n[5] || n[6]) && a % 3) || (a + s) % 3) { if (!((l -= s) > 0)) { if (s = Math.min(s, s + l + d), Math.min(a, s) % 2) { var h = e.slice(1, a + n.index + s); return { type: "em", raw: e.slice(0, a + n.index + s + 1), text: h, tokens: this.lexer.inlineTokens(h, []) } } var u = e.slice(2, a + n.index + s - 1); return { type: "strong", raw: e.slice(0, a + n.index + s + 1), text: u, tokens: this.lexer.inlineTokens(u, []) } } } else d += s } } }, t.codespan = function(e) { var t = this.rules.inline.code.exec(e); if (t) { var i = t[2].replace(/\n/g, " "), n = /[^ ]/.test(i), o = /^ /.test(i) && / $/.test(i); return n && o && (i = i.substring(1, i.length - 1)), i = P(i, !0), { type: "codespan", raw: t[0], text: i } } }, t.br = function(e) { var t = this.rules.inline.br.exec(e); if (t) return { type: "br", raw: t[0] } }, t.del = function(e) { var t = this.rules.inline.del.exec(e); if (t) return { type: "del", raw: t[0], text: t[2], tokens: this.lexer.inlineTokens(t[2], []) } }, t.autolink = function(e, t) { var i, n, o = this.rules.inline.autolink.exec(e); if (o) return n = "@" === o[2] ? "mailto:" + (i = P(this.options.mangle ? t(o[1]) : o[1])) : i = P(o[1]), { type: "link", raw: o[0], text: i, href: n, tokens: [{ type: "text", raw: i, text: i }] } }, t.url = function(e, t) { var i; if (i = this.rules.inline.url.exec(e)) { var n, o; if ("@" === i[2]) o = "mailto:" + (n = P(this.options.mangle ? t(i[ 0]) : i[0])); else { var r; do { r = i[0], i[0] = this.rules.inline._backpedal.exec(i[0])[0] } while (r !== i[0]); n = P(i[0]), o = "www." === i[1] ? "http://" + n : n } return { type: "link", raw: i[0], text: n, href: o, tokens: [{ type: "text", raw: n, text: n }] } } }, t.inlineText = function(e, t) { var i, n = this.rules.inline.text.exec(e); if (n) return i = this.lexer.state.inRawBlock ? this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(n[0]) : P(n[0]) : n[0] : P(this.options.smartypants ? t(n[0]) : n[0]), { type: "text", raw: n[0], text: i } }, e }(), z = L, V = x, H = N, U = { newline: /^(?: *(?:\n|$))+/, code: /^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/, fences: /^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/, hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/, heading: /^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/, blockquote: /^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/, list: /^( {0,3}bull)( [^\n]+?)?(?:\n|$)/, html: "^ {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|$))", def: /^ {0,3}\[(label)\]: *\n? *]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/, table: z, lheading: /^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/, _paragraph: /^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html| +\n)[^\n]+)*)/, text: /^[^\n]+/, _label: /(?!\s*\])(?:\\[\[\]]|[^\[\]])+/, _title: /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/ }; U.def = V(U.def).replace("label", U._label).replace("title", U._title).getRegex(), U.bullet = /(?:[*+-]|\d{1,9}[.)])/, U.listItemStart = V( /^( *)(bull) */).replace("bull", U.bullet).getRegex(), U.list = V(U.list) .replace(/bull/g, U.bullet).replace("hr", "\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace( "def", "\\n+(?=" + U.def.source + ")").getRegex(), U._tag = "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|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul", U._comment = /|$)/, U.html = V(U.html, "i").replace( "comment", U._comment).replace("tag", U._tag).replace("attribute", / +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/ ).getRegex(), U.paragraph = V(U._paragraph).replace("hr", U.hr).replace( "heading", " {0,3}#{1,6} ").replace("|lheading", "").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", U._tag).getRegex(), U.blockquote = V(U.blockquote).replace( "paragraph", U.paragraph).getRegex(), U.normal = H({}, U), U.gfm = H({}, U.normal, { table: "^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)\\|?(?:\\n *((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)" }), U.gfm.table = V(U.gfm.table).replace("hr", U.hr).replace( "heading", " {0,3}#{1,6} ").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", U._tag).getRegex(), U.pedantic = H({}, U.normal, { html: V( "^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))" ).replace("comment", U._comment).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: z, paragraph: V(U.normal._paragraph).replace("hr", U.hr).replace( "heading", " *#{1,6} *[^\n]").replace("lheading", U.lheading).replace( "blockquote", " {0,3}>").replace("|fences", "").replace("|list", "").replace("|html", "").getRegex() }); var j = { escape: /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/, autolink: /^<(scheme:[^\s\x00-\x1f<>]*|email)>/, url: z, tag: "^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^", link: /^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/, reflink: /^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/, nolink: /^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/, reflinkSearch: "reflink|nolink(?!\\()", emStrong: { lDelim: /^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/, rDelimAst: /\_\_[^_*]*?\*[^_*]*?\_\_|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/, rDelimUnd: /\*\*[^_*]*?\_[^_*]*?\*\*|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/ }, code: /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/, br: /^( {2,}|\\)\n(?!\s*$)/, del: z, text: /^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\?@\\[\\]`^{|}~" }; j.punctuation = V(j.punctuation).replace(/punctuation/g, j._punctuation) .getRegex(), j.blockSkip = /\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g, j.escapedEmSt = /\\\*|\\_/g, j._comment = V(U._comment).replace( "(?:-->|$)", "-->").getRegex(), j.emStrong.lDelim = V(j.emStrong.lDelim) .replace(/punct/g, j._punctuation).getRegex(), j.emStrong.rDelimAst = V(j.emStrong.rDelimAst, "g").replace(/punct/g, j._punctuation).getRegex(), j.emStrong.rDelimUnd = V(j.emStrong.rDelimUnd, "g").replace(/punct/g, j._punctuation).getRegex(), j._escapes = /\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g, j._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/, j._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])?)+(?![-_])/, j.autolink = V(j.autolink).replace("scheme", j._scheme).replace( "email", j._email).getRegex(), j._attribute = /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/, j.tag = V(j.tag).replace("comment", j._comment).replace("attribute", j ._attribute).getRegex(), j._label = /(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/, j._href = /<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/, j._title = /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/, j.link = V(j.link).replace("label", j._label).replace("href", j._href).replace( "title", j._title).getRegex(), j.reflink = V(j.reflink).replace( "label", j._label).getRegex(), j.reflinkSearch = V(j.reflinkSearch, "g").replace("reflink", j.reflink).replace("nolink", j.nolink).getRegex(), j.normal = H({}, j), j.pedantic = H({}, j.normal, { strong: { start: /^__|\*\*/, middle: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/, endAst: /\*\*(?!\*)/g, endUnd: /__(?!_)/g }, em: { start: /^_|\*/, middle: /^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/, endAst: /\*(?!\*)/g, endUnd: /_(?!_)/g }, link: V(/^!?\[(label)\]\((.*?)\)/).replace("label", j._label).getRegex(), reflink: V(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label", j._label) .getRegex() }), j.gfm = H({}, j.normal, { escape: V(j.escape).replace("])", "~|])").getRegex(), _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/, url: /^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/, _backpedal: /(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/, del: /^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/, text: /^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\ .5 && (i = "x" + i.toString(16)), n += "&#" + i + ";"; return n } var J = function() { function t(e) { this.tokens = [], this.tokens.links = Object.create(null), this.options = e || q, this.options.tokenizer = this.options.tokenizer || new $, this.tokenizer = this.options.tokenizer, this.tokenizer.options = this.options, this.tokenizer.lexer = this, this.inlineQueue = [], this.state = { inLink: !1, inRawBlock: !1, top: !0 }; var t = { block: Z.normal, inline: G.normal }; this.options.pedantic ? (t.block = Z.pedantic, t.inline = G.pedantic) : this.options.gfm && (t.block = Z.gfm, this.options.breaks ? t.inline = G.breaks : t.inline = G.gfm), this.tokenizer.rules = t } t.lex = function(e, i) { return new t(i).lex(e) }, t.lexInline = function(e, i) { return new t(i).inlineTokens(e) }; var i, n, o, r = t.prototype; return r.lex = function(e) { var t; for (e = e.replace(/\r\n|\r/g, "\n").replace(/\t/g, " "), this.blockTokens( e, this.tokens); t = this.inlineQueue.shift();) this.inlineTokens( t.src, t.tokens); return this.tokens }, r.blockTokens = function(e, t) { var i, n, o, r, s = this; for (void 0 === t && (t = []), this.options.pedantic && (e = e.replace( /^ +$/gm, "")); e;) if (!(this.options.extensions && this.options.extensions.block && this.options.extensions.block.some((function(n) { return !!(i = n.call({ lexer: s }, e, t)) && (e = e.substring(i.raw.length), t.push(i), !0) })))) if (i = this.tokenizer.space(e)) e = e.substring(i.raw.length), i .type && t.push(i); else if (i = this.tokenizer.code(e)) e = e.substring(i.raw.length), ! (n = t[t.length - 1]) || "paragraph" !== n.type && "text" !== n.type ? t.push(i) : (n.raw += "\n" + i.raw, n.text += "\n" + i.text, this.inlineQueue[ this.inlineQueue.length - 1].src = n.text); else if (i = this.tokenizer.fences(e)) e = e.substring(i.raw.length), t.push(i); else if (i = this.tokenizer.heading(e)) e = e.substring(i.raw.length), t.push(i); else if (i = this.tokenizer.hr(e)) e = e.substring(i.raw.length), t .push(i); else if (i = this.tokenizer.blockquote(e)) e = e.substring(i.raw.length), t.push(i); else if (i = this.tokenizer.list(e)) e = e.substring(i.raw.length), t.push(i); else if (i = this.tokenizer.html(e)) e = e.substring(i.raw.length), t.push(i); else if (i = this.tokenizer.def(e)) e = e.substring(i.raw.length), ! (n = t[t.length - 1]) || "paragraph" !== n.type && "text" !== n.type ? this.tokens.links[i.tag] || (this.tokens.links[i.tag] = { href: i.href, title: i.title }) : (n.raw += "\n" + i.raw, n.text += "\n" + i.raw, this.inlineQueue[ this.inlineQueue.length - 1].src = n.text); else if (i = this.tokenizer.table(e)) e = e.substring(i.raw.length), t.push(i); else if (i = this.tokenizer.lheading(e)) e = e.substring(i.raw.length), t.push(i); else if (o = e, this.options.extensions && this.options.extensions.startBlock && function() { var t = 1 / 0, i = e.slice(1), n = void 0; s.options.extensions.startBlock.forEach((function(e) { "number" == typeof(n = e.call({ lexer: this }, i)) && n >= 0 && (t = Math.min(t, n)) })), t < 1 / 0 && t >= 0 && (o = e.substring(0, t + 1)) }(), this.state.top && (i = this.tokenizer.paragraph(o))) n = t[t.length - 1], r && "paragraph" === n.type ? (n.raw += "\n" + i.raw, n.text += "\n" + i.text, this.inlineQueue.pop(), this.inlineQueue[this.inlineQueue .length - 1].src = n.text) : t.push(i), r = o.length !== e.length, e = e.substring(i.raw.length); else if (i = this.tokenizer.text(e)) e = e.substring(i.raw.length), ( n = t[t.length - 1]) && "text" === n.type ? (n.raw += "\n" + i.raw, n.text += "\n" + i.text, this.inlineQueue.pop(), this.inlineQueue[ this.inlineQueue.length - 1].src = n.text) : t.push(i); else if (e) { var a = "Infinite loop on byte: " + e.charCodeAt(0); if (this.options.silent) { console.error(a); break } throw new Error(a) } return this.state.top = !0, t }, r.inline = function(e, t) { this.inlineQueue.push({ src: e, tokens: t }) }, r.inlineTokens = function(e, t) { var i, n, o, r = this; void 0 === t && (t = []); var s, a, l, d = e; if (this.tokens.links) { var c = Object.keys(this.tokens.links); if (c.length > 0) for (; null != (s = this.tokenizer.rules.inline.reflinkSearch.exec( d));) c.includes(s[0].slice(s[0].lastIndexOf("[") + 1, -1)) && (d = d.slice(0, s.index) + "[" + Y("a", s[0].length - 2) + "]" + d.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex)) } for (; null != (s = this.tokenizer.rules.inline.blockSkip.exec(d));) d = d.slice(0, s.index) + "[" + Y("a", s[0].length - 2) + "]" + d.slice( this.tokenizer.rules.inline.blockSkip.lastIndex); for (; null != (s = this.tokenizer.rules.inline.escapedEmSt.exec(d));) d = d.slice(0, s.index) + "++" + d.slice(this.tokenizer.rules.inline .escapedEmSt.lastIndex); for (; e;) if (a || (l = ""), a = !1, !(this.options.extensions && this.options .extensions.inline && this.options.extensions.inline.some(( function(n) { return !!(i = n.call({ lexer: r }, e, t)) && (e = e.substring(i.raw.length), t.push(i), !0) })))) if (i = this.tokenizer.escape(e)) e = e.substring(i.raw.length), t.push(i); else if (i = this.tokenizer.tag(e)) e = e.substring(i.raw.length), ( n = t[t.length - 1]) && "text" === i.type && "text" === n.type ? (n.raw += i.raw, n.text += i.text) : t.push(i); else if (i = this.tokenizer.link(e)) e = e.substring(i.raw.length), t.push(i); else if (i = this.tokenizer.reflink(e, this.tokens.links)) e = e.substring( i.raw.length), (n = t[t.length - 1]) && "text" === i.type && "text" === n.type ? (n.raw += i.raw, n.text += i.text) : t.push(i); else if (i = this.tokenizer.emStrong(e, d, l)) e = e.substring(i.raw .length), t.push(i); else if (i = this.tokenizer.codespan(e)) e = e.substring(i.raw.length), t.push(i); else if (i = this.tokenizer.br(e)) e = e.substring(i.raw.length), t .push(i); else if (i = this.tokenizer.del(e)) e = e.substring(i.raw.length), t.push(i); else if (i = this.tokenizer.autolink(e, X)) e = e.substring(i.raw.length), t.push(i); else if (this.state.inLink || !(i = this.tokenizer.url(e, X))) { if (o = e, this.options.extensions && this.options.extensions.startInline && function() { var t = 1 / 0, i = e.slice(1), n = void 0; r.options.extensions.startInline.forEach((function(e) { "number" == typeof(n = e.call({ lexer: this }, i)) && n >= 0 && (t = Math.min(t, n)) })), t < 1 / 0 && t >= 0 && (o = e.substring(0, t + 1)) }(), i = this.tokenizer.inlineText(o, Q)) e = e.substring(i.raw.length), "_" !== i.raw.slice(-1) && (l = i.raw.slice(-1)), a = !0, (n = t[ t.length - 1]) && "text" === n.type ? (n.raw += i.raw, n.text += i.text) : t.push(i); else if (e) { var h = "Infinite loop on byte: " + e.charCodeAt(0); if (this.options.silent) { console.error(h); break } throw new Error(h) } } else e = e.substring(i.raw.length), t.push(i); return t }, i = t, o = [{ key: "rules", get: function() { return { block: Z, inline: G } } }], (n = null) && e(i.prototype, n), o && e(i, o), t }(), ee = n.exports.defaults, te = k, ie = y, ne = function() { function e(e) { this.options = e || ee } var t = e.prototype; return t.code = function(e, t, i) { var n = (t || "").match(/\S*/)[0]; if (this.options.highlight) { var o = this.options.highlight(e, n); null != o && o !== e && (i = !0, e = o) } return e = e.replace(/\n$/, "") + "\n", n ? '
' + (i ? e : ie(e, !0)) +
									"
\n" : "
" + (i ? e : ie(e, !0)) +
									"
\n" }, t.blockquote = function(e) { return "
\n" + e + "
\n" }, t.html = function(e) { return e }, t.heading = function(e, t, i, n) { return this.options.headerIds ? "' + e + "\n" : "" + e + "\n" }, t.hr = function() { return this.options.xhtml ? "
\n" : "
\n" }, t.list = function(e, t, i) { var n = t ? "ol" : "ul"; return "<" + n + (t && 1 !== i ? ' start="' + i + '"' : "") + ">\n" + e + "\n" }, t.listitem = function(e) { return "
  • " + e + "
  • \n" }, t.checkbox = function(e) { return " " }, t.paragraph = function(e) { return "

    " + e + "

    \n" }, t.table = function(e, t) { return t && (t = "" + t + ""), "\n\n" + e + "\n" + t + "
    \n" }, t.tablerow = function(e) { return "\n" + e + "\n" }, t.tablecell = function(e, t) { var i = t.header ? "th" : "td"; return (t.align ? "<" + i + ' align="' + t.align + '">' : "<" + i + ">") + e + "\n" }, t.strong = function(e) { return "" + e + "" }, t.em = function(e) { return "" + e + "" }, t.codespan = function(e) { return "" + e + "" }, t.br = function() { return this.options.xhtml ? "
    " : "
    " }, t.del = function(e) { return "" + e + "" }, t.link = function(e, t, i) { if (null === (e = te(this.options.sanitize, this.options.baseUrl, e))) return i; var n = '
    " + i + "" }, t.image = function(e, t, i) { if (null === (e = te(this.options.sanitize, this.options.baseUrl, e))) return i; var n = '' + i + '" : ">") }, t.text = function(e) { return e }, e }(), oe = function() { function e() {} var t = e.prototype; return t.strong = function(e) { return e }, t.em = function(e) { return e }, t.codespan = function(e) { return e }, t.del = function(e) { return e }, t.html = function(e) { return e }, t.text = function(e) { return e }, t.link = function(e, t, i) { return "" + i }, t.image = function(e, t, i) { return "" + i }, t.br = function() { return "" }, e }(), re = function() { function e() { this.seen = {} } var t = e.prototype; return t.serialize = function(e) { return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi, "").replace( /[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g, "").replace(/\s/g, "-") }, t.getNextSafeSlug = function(e, t) { var i = e, n = 0; if (this.seen.hasOwnProperty(i)) { n = this.seen[e]; do { i = e + "-" + ++n } while (this.seen.hasOwnProperty(i)) } return t || (this.seen[e] = n, this.seen[i] = 0), i }, t.slug = function(e, t) { void 0 === t && (t = {}); var i = this.serialize(e); return this.getNextSafeSlug(i, t.dryrun) }, e }(), se = ne, ae = oe, le = re, de = n.exports.defaults, ce = S, he = function() { function e(e) { this.options = e || de, this.options.renderer = this.options.renderer || new se, this.renderer = this.options.renderer, this.renderer.options = this.options, this.textRenderer = new ae, this.slugger = new le } e.parse = function(t, i) { return new e(i).parse(t) }, e.parseInline = function(t, i) { return new e(i).parseInline(t) }; var t = e.prototype; return t.parse = function(e, t) { void 0 === t && (t = !0); var i, n, o, r, s, a, l, d, c, h, u, g, p, m, f, _, b, v, w, C = "", y = e.length; for (i = 0; i < y; i++) if (h = e[i], !(this.options.extensions && this.options.extensions .renderers && this.options.extensions.renderers[h.type]) || !1 === (w = this.options.extensions.renderers[h.type].call({ parser: this }, h)) && ["space", "hr", "heading", "code", "table", "blockquote", "list", "html", "paragraph", "text" ].includes(h.type)) switch (h.type) { case "space": continue; case "hr": C += this.renderer.hr(); continue; case "heading": C += this.renderer.heading(this.parseInline(h.tokens), h.depth, ce(this.parseInline(h.tokens, this.textRenderer)), this.slugger ); continue; case "code": C += this.renderer.code(h.text, h.lang, h.escaped); continue; case "table": for (d = "", l = "", r = h.header.length, n = 0; n < r; n++) l += this.renderer.tablecell(this.parseInline(h.header[n].tokens), { header: !0, align: h.align[n] }); for (d += this.renderer.tablerow(l), c = "", r = h.rows.length, n = 0; n < r; n++) { for (l = "", s = (a = h.rows[n]).length, o = 0; o < s; o++) l += this.renderer.tablecell(this.parseInline(a[o].tokens), { header: !1, align: h.align[o] }); c += this.renderer.tablerow(l) } C += this.renderer.table(d, c); continue; case "blockquote": c = this.parse(h.tokens), C += this.renderer.blockquote(c); continue; case "list": for (u = h.ordered, g = h.start, p = h.loose, r = h.items.length, c = "", n = 0; n < r; n++) _ = (f = h.items[n]).checked, b = f .task, m = "", f.task && (v = this.renderer.checkbox(_), p ? f .tokens.length > 0 && "paragraph" === f.tokens[0].type ? (f.tokens[ 0].text = v + " " + f.tokens[0].text, f.tokens[0].tokens && f.tokens[0].tokens.length > 0 && "text" === f.tokens[0].tokens[ 0].type && (f.tokens[0].tokens[0].text = v + " " + f.tokens[ 0].tokens[0].text)) : f.tokens.unshift({ type: "text", text: v }) : m += v), m += this.parse(f.tokens, p), c += this.renderer .listitem(m, b, _); C += this.renderer.list(c, u, g); continue; case "html": C += this.renderer.html(h.text); continue; case "paragraph": C += this.renderer.paragraph(this.parseInline(h.tokens)); continue; case "text": for (c = h.tokens ? this.parseInline(h.tokens) : h.text; i + 1 < y && "text" === e[i + 1].type;) c += "\n" + ((h = e[++i]).tokens ? this.parseInline(h.tokens) : h.text); C += t ? this.renderer.paragraph(c) : c; continue; default: var S = 'Token with "' + h.type + '" type was not found.'; if (this.options.silent) return void console.error(S); throw new Error(S) } else C += w || ""; return C }, t.parseInline = function(e, t) { t = t || this.renderer; var i, n, o, r = "", s = e.length; for (i = 0; i < s; i++) if (n = e[i], !(this.options.extensions && this.options.extensions .renderers && this.options.extensions.renderers[n.type]) || !1 === (o = this.options.extensions.renderers[n.type].call({ parser: this }, n)) && ["escape", "html", "link", "image", "strong", "em", "codespan", "br", "del", "text" ].includes(n.type)) switch (n.type) { case "escape": case "text": r += t.text(n.text); break; case "html": r += t.html(n.text); break; case "link": r += t.link(n.href, n.title, this.parseInline(n.tokens, t)); break; case "image": r += t.image(n.href, n.title, n.text); break; case "strong": r += t.strong(this.parseInline(n.tokens, t)); break; case "em": r += t.em(this.parseInline(n.tokens, t)); break; case "codespan": r += t.codespan(n.text); break; case "br": r += t.br(); break; case "del": r += t.del(this.parseInline(n.tokens, t)); break; default: var a = 'Token with "' + n.type + '" type was not found.'; if (this.options.silent) return void console.error(a); throw new Error(a) } else r += o || ""; return r }, e }(), ue = J, ge = he, pe = W, me = ne, fe = oe, _e = re, be = N, ve = T, we = y, Ce = n.exports.getDefaults, ye = n.exports.changeDefaults, Se = n.exports.defaults; function xe(e, t, i) { if (null == e) throw new Error( "marked(): input parameter is undefined or null"); if ("string" != typeof e) throw new Error( "marked(): input parameter is of type " + Object.prototype.toString.call( e) + ", string expected"); if ("function" == typeof t && (i = t, t = null), t = be({}, xe.defaults, t || {}), ve(t), i) { var n, o = t.highlight; try { n = ue.lex(e, t) } catch (e) { return i(e) } var r = function(e) { var r; if (!e) try { t.walkTokens && xe.walkTokens(n, t.walkTokens), r = ge.parse(n, t) } catch (t) { e = t } return t.highlight = o, e ? i(e) : i(null, r) }; if (!o || o.length < 3) return r(); if (delete t.highlight, !n.length) return r(); var s = 0; return xe.walkTokens(n, (function(e) { "code" === e.type && (s++, setTimeout((function() { o(e.text, e.lang, (function(t, i) { if (t) return r(t); null != i && i !== e.text && (e.text = i, e.escaped = !0), 0 == --s && r() })) }), 0)) })), void(0 === s && r()) } try { var a = ue.lex(e, t); return t.walkTokens && xe.walkTokens(a, t.walkTokens), ge.parse(a, t) } catch (e) { if (e.message += "\nPlease report this to https://github.com/markedjs/marked.", t.silent ) return "

    An error occurred:

    " + we(e.message + "", !0) +
    								"
    "; throw e } } return xe.options = xe.setOptions = function(e) { return be(xe.defaults, e), ye(xe.defaults), xe }, xe.getDefaults = Ce, xe.defaults = Se, xe.use = function() { for (var e = this, t = arguments.length, i = new Array(t), n = 0; n < t; n++) i[n] = arguments[n]; var o, r = be.apply(void 0, [{}].concat(i)), s = xe.defaults.extensions || { renderers: {}, childTokens: {} }; i.forEach((function(t) { if (t.extensions && (o = !0, t.extensions.forEach((function(e) { if (!e.name) throw new Error("extension name required"); if (e.renderer) { var t = s.renderers ? s.renderers[e.name] : null; s.renderers[e.name] = t ? function() { for (var i = arguments.length, n = new Array(i), o = 0; o < i; o++) n[o] = arguments[o]; var r = e.renderer.apply(this, n); return !1 === r && (r = t.apply(this, n)), r } : e.renderer } if (e.tokenizer) { if (!e.level || "block" !== e.level && "inline" !== e.level) throw new Error( "extension level must be 'block' or 'inline'"); s[e.level] ? s[e.level].unshift(e.tokenizer) : s[e.level] = [ e.tokenizer ], e.start && ("block" === e.level ? s.startBlock ? s.startBlock .push(e.start) : s.startBlock = [e.start] : "inline" === e.level && (s.startInline ? s.startInline.push(e.start) : s.startInline = [e.start])) } e.childTokens && (s.childTokens[e.name] = e.childTokens) }))), t.renderer && function() { var e = xe.defaults.renderer || new me, i = function(i) { var n = e[i]; e[i] = function() { for (var o = arguments.length, r = new Array(o), s = 0; s < o; s++) r[s] = arguments[s]; var a = t.renderer[i].apply(e, r); return !1 === a && (a = n.apply(e, r)), a } }; for (var n in t.renderer) i(n); r.renderer = e }(), t.tokenizer && function() { var e = xe.defaults.tokenizer || new pe, i = function(i) { var n = e[i]; e[i] = function() { for (var o = arguments.length, r = new Array(o), s = 0; s < o; s++) r[s] = arguments[s]; var a = t.tokenizer[i].apply(e, r); return !1 === a && (a = n.apply(e, r)), a } }; for (var n in t.tokenizer) i(n); r.tokenizer = e }(), t.walkTokens) { var i = xe.defaults.walkTokens; r.walkTokens = function(n) { t.walkTokens.call(e, n), i && i(n) } } o && (r.extensions = s), xe.setOptions(r) })) }, xe.walkTokens = function(e, t) { for (var n, o = function() { var e = n.value; switch (t(e), e.type) { case "table": for (var o, r = i(e.header); !(o = r()).done;) { var s = o.value; xe.walkTokens(s.tokens, t) } for (var a, l = i(e.rows); !(a = l()).done;) for (var d, c = i(a.value); !(d = c()).done;) { var h = d.value; xe.walkTokens(h.tokens, t) } break; case "list": xe.walkTokens(e.items, t); break; default: xe.defaults.extensions && xe.defaults.extensions.childTokens && xe.defaults.extensions.childTokens[e.type] ? xe.defaults.extensions .childTokens[e.type].forEach((function(i) { xe.walkTokens(e[i], t) })) : e.tokens && xe.walkTokens(e.tokens, t) } }, r = i(e); !(n = r()).done;) o() }, xe.parseInline = function(e, t) { if (null == e) throw new Error( "marked.parseInline(): input parameter is undefined or null"); if ("string" != typeof e) throw new Error( "marked.parseInline(): input parameter is of type " + Object.prototype .toString.call(e) + ", string expected"); t = be({}, xe.defaults, t || {}), ve(t); try { var i = ue.lexInline(e, t); return t.walkTokens && xe.walkTokens(i, t.walkTokens), ge.parseInline( i, t) } catch (e) { if (e.message += "\nPlease report this to https://github.com/markedjs/marked.", t.silent ) return "

    An error occurred:

    " + we(e.message + "", !0) +
    									"
    "; throw e } }, xe.Parser = ge, xe.parser = ge.parse, xe.Renderer = me, xe.TextRenderer = fe, xe.Lexer = ue, xe.lexer = ue.lex, xe.Tokenizer = pe, xe.Slugger = _e, xe.parse = xe, xe }() }, 3897: (e, t, i) => { "use strict"; i.d(t, { Q: () => r }); var n = i(3060), o = i(666); function r(e) { let t = JSON.parse(e); return t = s(t), t } function s(e, t = 0) { if (!e || t > 200) return e; if ("object" == typeof e) { switch (e.$mid) { case 1: return o.o.revive(e); case 2: return new RegExp(e.source, e.flags) } if (e instanceof n.KN || e instanceof Uint8Array) return e; if (Array.isArray(e)) for (let i = 0; i < e.length; ++i) e[i] = s(e[i], t + 1); else for (const i in e) Object.hasOwnProperty.call(e, i) && (e[i] = s(e[i], t + 1)) } return e } }, 1170: (e, t, i) => { "use strict"; i.d(t, { vW: () => n, sA: () => u, G8: () => g }); var n, o = i(4118), r = i(6663), s = i(8721), a = i(5935), l = i(7295); ! function(e) { e.text = "text/plain", e.binary = "application/octet-stream", e.unknown = "application/unknown", e.markdown = "text/markdown" }(n || (n = {})); let d = [], c = [], h = []; function u(e, t = !1) { const i = function(e) { return { id: e.id, mime: e.mime, filename: e.filename, extension: e.extension, filepattern: e.filepattern, firstline: e.firstline, userConfigured: e.userConfigured, filenameLowercase: e.filename ? e.filename.toLowerCase() : void 0, extensionLowercase: e.extension ? e.extension.toLowerCase() : void 0, filepatternLowercase: e.filepattern ? (0, o.Qc)(e.filepattern.toLowerCase()) : void 0, filepatternOnPath: !!e.filepattern && e.filepattern.indexOf(s.KR.sep) >= 0 } }(e); d.push(i), i.userConfigured ? h.push(i) : c.push(i), t && !i.userConfigured && d.forEach((e => { e.mime === i.mime || e.userConfigured || (i.extension && e.extension === i.extension && console.warn( `Overwriting extension <<${i.extension}>> to now point to mime <<${i.mime}>>` ), i.filename && e.filename === i.filename && console.warn( `Overwriting filename <<${i.filename}>> to now point to mime <<${i.mime}>>` ), i.filepattern && e.filepattern === i.filepattern && console.warn( `Overwriting filepattern <<${i.filepattern}>> to now point to mime <<${i.mime}>>` ), i.firstline && e.firstline === i.firstline && console.warn( `Overwriting firstline <<${i.firstline}>> to now point to mime <<${i.mime}>>` )) })) } function g(e, t) { let i; if (e) switch (e.scheme) { case r.lg.file: i = e.fsPath; break; case r.lg.data: i = a.Vb.parseMetaData(e).get(a.Vb.META_DATA_LABEL); break; default: i = e.path } if (!i) return [n.unknown]; i = i.toLowerCase(); const o = (0, s.EZ)(i), u = p(i, o, h); if (u) return [u, n.text]; const g = p(i, o, c); if (g) return [g, n.text]; if (t) { const e = function(e) { if ((0, l.uS)(e) && (e = e.substr(1)), e.length > 0) for (let t = d.length - 1; t >= 0; t--) { const i = d[t]; if (!i.firstline) continue; const n = e.match(i.firstline); if (n && n.length > 0) return i.mime } return null }(t); if (e) return [e, n.text] } return [n.unknown] } function p(e, t, i) { var n; let o = null, r = null, s = null; for (let a = i.length - 1; a >= 0; a--) { const l = i[a]; if (t === l.filenameLowercase) { o = l; break } if (l.filepattern && (!r || l.filepattern.length > r.filepattern.length)) { const i = l.filepatternOnPath ? e : t; (null === (n = l.filepatternLowercase) || void 0 === n ? void 0 : n.call( l, i)) && (r = l) } l.extension && (!s || l.extension.length > s.extension.length) && t.endsWith( l.extensionLowercase) && (s = l) } return o ? o.mime : r ? r.mime : s ? s.mime : null } }, 6663: (e, t, i) => { "use strict"; i.d(t, { lg: () => n, WX: () => s, Gi: () => l }); var n, o = i(1432), r = i(666); ! function(e) { e.inMemory = "inmemory", e.vscode = "vscode", e.internal = "private", e.walkThrough = "walkThrough", e.walkThroughSnippet = "walkThroughSnippet", e.http = "http", e.https = "https", e.file = "file", e.mailto = "mailto", e.untitled = "untitled", e.data = "data", e.command = "command", e.vscodeRemote = "vscode-remote", e.vscodeRemoteResource = "vscode-remote-resource", e.userData = "vscode-userdata", e.vscodeCustomEditor = "vscode-custom-editor", e.vscodeNotebook = "vscode-notebook", e.vscodeNotebookCell = "vscode-notebook-cell", e.vscodeNotebookCellMetadata = "vscode-notebook-cell-metadata", e.vscodeNotebookCellOutput = "vscode-notebook-cell-output", e.vscodeInteractive = "vscode-interactive", e.vscodeInteractiveInput = "vscode-interactive-input", e.vscodeSettings = "vscode-settings", e.vscodeWorkspaceTrust = "vscode-workspace-trust", e.vscodeTerminal = "vscode-terminal", e.webviewPanel = "webview-panel", e.vscodeWebview = "vscode-webview", e.extension = "extension", e.vscodeFileResource = "vscode-file", e.tmp = "tmp" }(n || (n = {})); const s = new class { constructor() { this._hosts = Object.create(null), this._ports = Object.create(null), this._connectionTokens = Object.create(null), this._preferredWebSchema = "http", this._delegate = null } setPreferredWebSchema(e) { this._preferredWebSchema = e } rewrite(e) { if (this._delegate) return this._delegate(e); const t = e.authority; let i = this._hosts[t]; i && -1 !== i.indexOf(":") && (i = `[${i}]`); const s = this._ports[t], a = this._connectionTokens[t]; let l = `path=${encodeURIComponent(e.path)}`; return "string" == typeof a && (l += `&tkn=${encodeURIComponent(a)}`), r.o.from({ scheme: o.$L ? this._preferredWebSchema : n.vscodeRemoteResource, authority: `${i}:${s}`, path: "/vscode-remote-resource", query: l }) } }; class a { asBrowserUri(e, t) { const i = this.toUri(e, t); return i.scheme === n.vscodeRemote ? s.rewrite(i) : i.scheme === n.file && (o.tY || "function" == typeof o.li.importScripts && o.li.origin === `${n.vscodeFileResource}://${a.FALLBACK_AUTHORITY}`) ? i.with({ scheme: n.vscodeFileResource, authority: i.authority || a.FALLBACK_AUTHORITY, query: null, fragment: null }) : i } toUri(e, t) { return r.o.isUri(e) ? e : r.o.parse(t.toUrl(e)) } } a.FALLBACK_AUTHORITY = "vscode-app"; const l = new a }, 9870: (e, t, i) => { "use strict"; function n(e, t, i) { return Math.min(Math.max(e, t), i) } i.d(t, { u: () => n, n: () => o }); class o { constructor() { this._n = 1, this._val = 0 } update(e) { return this._val = this._val + (e - this._val) / this._n, this._n += 1, this } get value() { return this._val } } }, 6248: (e, t, i) => { "use strict"; i.d(t, { I8: () => o, _A: () => r, rs: () => a, jB: () => d, fS: () => c, CJ: () => h }); var n = i(8401); function o(e) { if (!e || "object" != typeof e) return e; if (e instanceof RegExp) return e; const t = Array.isArray(e) ? [] : {}; return Object.keys(e).forEach((i => { e[i] && "object" == typeof e[i] ? t[i] = o(e[i]) : t[i] = e[i] })), t } function r(e) { if (!e || "object" != typeof e) return e; const t = [e]; for (; t.length > 0;) { const e = t.shift(); Object.freeze(e); for (const i in e) if (s.call(e, i)) { const n = e[i]; "object" != typeof n || Object.isFrozen(n) || t.push(n) } } return e } const s = Object.prototype.hasOwnProperty; function a(e, t) { return l(e, t, new Set) } function l(e, t, i) { if ((0, n.Jp)(e)) return e; const o = t(e); if (void 0 !== o) return o; if ((0, n.kJ)(e)) { const n = []; for (const o of e) n.push(l(o, t, i)); return n } if ((0, n.Kn)(e)) { if (i.has(e)) throw new Error("Cannot clone recursive data-structure"); i.add(e); const n = {}; for (let o in e) s.call(e, o) && (n[o] = l(e[o], t, i)); return i.delete(e), n } return e } function d(e, t, i = !0) { return (0, n.Kn)(e) ? ((0, n.Kn)(t) && Object.keys(t).forEach((o => { o in e ? i && ((0, n.Kn)(e[o]) && (0, n.Kn)(t[o]) ? d(e[o], t[o], i) : e[o] = t[o]) : e[o] = t[o] })), e) : t } function c(e, t) { if (e === t) return !0; if (null == e || null == t) return !1; if (typeof e != typeof t) return !1; if ("object" != typeof e) return !1; if (Array.isArray(e) !== Array.isArray(t)) return !1; let i, n; if (Array.isArray(e)) { if (e.length !== t.length) return !1; for (i = 0; i < e.length; i++) if (!c(e[i], t[i])) return !1 } else { const o = []; for (n in e) o.push(n); o.sort(); const r = []; for (n in t) r.push(n); if (r.sort(), !c(o, r)) return !1; for (i = 0; i < o.length; i++) if (!c(e[o[i]], t[o[i]])) return !1 } return !0 } function h(e, t, i) { const n = t(e); return void 0 === n ? i : n } }, 8721: (e, t, i) => { "use strict"; i.d(t, { EZ: () => k, XX: () => x, DZ: () => L, Fv: () => C, KR: () => w, Gf: () => S, DB: () => y, ir: () => N, Ku: () => v }); var n = i(1432); let o; if (void 0 !== n.li.vscode && void 0 !== n.li.vscode.process) { const e = n.li.vscode.process; o = {get platform() { return e.platform }, get arch() { return e.arch }, get env() { return e.env }, cwd: () => e.cwd(), nextTick: e => (0, n.xS)(e) } } else o = "undefined" != typeof process ? {get platform() { return process.platform }, get arch() { return process.arch }, get env() { return process.env }, cwd: () => process.env.VSCODE_CWD || process.cwd(), nextTick: e => process.nextTick(e) } : {get platform() { return n.ED ? "win32" : n.dz ? "darwin" : "linux" }, get arch() {}, nextTick: e => (0, n.xS)(e), get env() { return {} }, cwd: () => "/" }; const r = o.cwd, s = o.env, a = o.platform, l = 46, d = 47, c = 92, h = 58; class u extends Error { constructor(e, t, i) { let n; "string" == typeof t && 0 === t.indexOf("not ") ? (n = "must not be", t = t.replace(/^not /, "")) : n = "must be"; const o = -1 !== e.indexOf(".") ? "property" : "argument"; let r = `The "${e}" ${o} ${n} of type ${t}`; r += ". Received type " + typeof i, super(r), this.code = "ERR_INVALID_ARG_TYPE" } } function g(e, t) { if ("string" != typeof e) throw new u(t, "string", e) } function p(e) { return e === d || e === c } function m(e) { return e === d } function f(e) { return e >= 65 && e <= 90 || e >= 97 && e <= 122 } function _(e, t, i, n) { let o = "", r = 0, s = -1, a = 0, c = 0; for (let h = 0; h <= e.length; ++h) { if (h < e.length) c = e.charCodeAt(h); else { if (n(c)) break; c = d } if (n(c)) { if (s === h - 1 || 1 === a); else if (2 === a) { if (o.length < 2 || 2 !== r || o.charCodeAt(o.length - 1) !== l || o.charCodeAt( o.length - 2) !== l) { if (o.length > 2) { const e = o.lastIndexOf(i); - 1 === e ? (o = "", r = 0) : (o = o.slice( 0, e), r = o.length - 1 - o.lastIndexOf(i)), s = h, a = 0; continue } if (0 !== o.length) { o = "", r = 0, s = h, a = 0; continue } } t && (o += o.length > 0 ? `${i}..` : "..", r = 2) } else o.length > 0 ? o += `${i}${e.slice(s+1,h)}` : o = e.slice(s + 1, h), r = h - s - 1; s = h, a = 0 } else c === l && -1 !== a ? ++a : a = -1 } return o } function b(e, t) { if (null === t || "object" != typeof t) throw new u("pathObject", "Object", t); const i = t.dir || t.root, n = t.base || `${t.name||""}${t.ext||""}`; return i ? i === t.root ? `${i}${n}` : `${i}${e}${n}` : n } const v = { resolve(...e) { let t = "", i = "", n = !1; for (let o = e.length - 1; o >= -1; o--) { let a; if (o >= 0) { if (a = e[o], g(a, "path"), 0 === a.length) continue } else 0 === t.length ? a = r() : (a = s[`=${t}`] || r(), (void 0 === a || a.slice(0, 2).toLowerCase() !== t.toLowerCase() && a.charCodeAt( 2) === c) && (a = `${t}\\`)); const l = a.length; let d = 0, u = "", m = !1; const _ = a.charCodeAt(0); if (1 === l) p(_) && (d = 1, m = !0); else if (p(_)) if (m = !0, p(a.charCodeAt(1))) { let e = 2, t = e; for (; e < l && !p(a.charCodeAt(e));) e++; if (e < l && e !== t) { const i = a.slice(t, e); for (t = e; e < l && p(a.charCodeAt(e));) e++; if (e < l && e !== t) { for (t = e; e < l && !p(a.charCodeAt(e));) e++; e !== l && e === t || (u = `\\\\${i}\\${a.slice(t,e)}`, d = e) } } } else d = 1; else f(_) && a.charCodeAt(1) === h && (u = a.slice(0, 2), d = 2, l > 2 && p(a.charCodeAt(2)) && (m = !0, d = 3)); if (u.length > 0) if (t.length > 0) { if (u.toLowerCase() !== t.toLowerCase()) continue } else t = u; if (n) { if (t.length > 0) break } else if (i = `${a.slice(d)}\\${i}`, n = m, m && t.length > 0) break } return i = _(i, !n, "\\", p), n ? `${t}\\${i}` : `${t}${i}` || "." }, normalize(e) { g(e, "path"); const t = e.length; if (0 === t) return "."; let i, n = 0, o = !1; const r = e.charCodeAt(0); if (1 === t) return m(r) ? "\\" : e; if (p(r)) if (o = !0, p(e.charCodeAt(1))) { let o = 2, r = o; for (; o < t && !p(e.charCodeAt(o));) o++; if (o < t && o !== r) { const s = e.slice(r, o); for (r = o; o < t && p(e.charCodeAt(o));) o++; if (o < t && o !== r) { for (r = o; o < t && !p(e.charCodeAt(o));) o++; if (o === t) return `\\\\${s}\\${e.slice(r)}\\`; o !== r && (i = `\\\\${s}\\${e.slice(r,o)}`, n = o) } } } else n = 1; else f(r) && e.charCodeAt(1) === h && (i = e.slice(0, 2), n = 2, t > 2 && p(e.charCodeAt(2)) && (o = !0, n = 3)); let s = n < t ? _(e.slice(n), !o, "\\", p) : ""; return 0 !== s.length || o || (s = "."), s.length > 0 && p(e.charCodeAt( t - 1)) && (s += "\\"), void 0 === i ? o ? `\\${s}` : s : o ? `${i}\\${s}` : `${i}${s}` }, isAbsolute(e) { g(e, "path"); const t = e.length; if (0 === t) return !1; const i = e.charCodeAt(0); return p(i) || t > 2 && f(i) && e.charCodeAt(1) === h && p(e.charCodeAt( 2)) }, join(...e) { if (0 === e.length) return "."; let t, i; for (let n = 0; n < e.length; ++n) { const o = e[n]; g(o, "path"), o.length > 0 && (void 0 === t ? t = i = o : t += `\\${o}`) } if (void 0 === t) return "."; let n = !0, o = 0; if ("string" == typeof i && p(i.charCodeAt(0))) { ++o; const e = i.length; e > 1 && p(i.charCodeAt(1)) && (++o, e > 2 && (p(i.charCodeAt(2)) ? ++o : n = !1)) } if (n) { for (; o < t.length && p(t.charCodeAt(o));) o++; o >= 2 && (t = `\\${t.slice(o)}`) } return v.normalize(t) }, relative(e, t) { if (g(e, "from"), g(t, "to"), e === t) return ""; const i = v.resolve(e), n = v.resolve(t); if (i === n) return ""; if ((e = i.toLowerCase()) === (t = n.toLowerCase())) return ""; let o = 0; for (; o < e.length && e.charCodeAt(o) === c;) o++; let r = e.length; for (; r - 1 > o && e.charCodeAt(r - 1) === c;) r--; const s = r - o; let a = 0; for (; a < t.length && t.charCodeAt(a) === c;) a++; let l = t.length; for (; l - 1 > a && t.charCodeAt(l - 1) === c;) l--; const d = l - a, h = s < d ? s : d; let u = -1, p = 0; for (; p < h; p++) { const i = e.charCodeAt(o + p); if (i !== t.charCodeAt(a + p)) break; i === c && (u = p) } if (p !== h) { if (-1 === u) return n } else { if (d > h) { if (t.charCodeAt(a + p) === c) return n.slice(a + p + 1); if (2 === p) return n.slice(a + p) } s > h && (e.charCodeAt(o + p) === c ? u = p : 2 === p && (u = 3)), - 1 === u && (u = 0) } let m = ""; for (p = o + u + 1; p <= r; ++p) p !== r && e.charCodeAt(p) !== c || (m += 0 === m.length ? ".." : "\\.."); return a += u, m.length > 0 ? `${m}${n.slice(a,l)}` : (n.charCodeAt(a) === c && ++a, n.slice(a, l)) }, toNamespacedPath(e) { if ("string" != typeof e) return e; if (0 === e.length) return ""; const t = v.resolve(e); if (t.length <= 2) return e; if (t.charCodeAt(0) === c) { if (t.charCodeAt(1) === c) { const e = t.charCodeAt(2); if (63 !== e && e !== l) return `\\\\?\\UNC\\${t.slice(2)}` } } else if (f(t.charCodeAt(0)) && t.charCodeAt(1) === h && t.charCodeAt( 2) === c) return `\\\\?\\${t}`; return e }, dirname(e) { g(e, "path"); const t = e.length; if (0 === t) return "."; let i = -1, n = 0; const o = e.charCodeAt(0); if (1 === t) return p(o) ? e : "."; if (p(o)) { if (i = n = 1, p(e.charCodeAt(1))) { let o = 2, r = o; for (; o < t && !p(e.charCodeAt(o));) o++; if (o < t && o !== r) { for (r = o; o < t && p(e.charCodeAt(o));) o++; if (o < t && o !== r) { for (r = o; o < t && !p(e.charCodeAt(o));) o++; if (o === t) return e; o !== r && (i = n = o + 1) } } } } else f(o) && e.charCodeAt(1) === h && (i = t > 2 && p(e.charCodeAt( 2)) ? 3 : 2, n = i); let r = -1, s = !0; for (let i = t - 1; i >= n; --i) if (p(e.charCodeAt(i))) { if (!s) { r = i; break } } else s = !1; if (-1 === r) { if (-1 === i) return "."; r = i } return e.slice(0, r) }, basename(e, t) { void 0 !== t && g(t, "ext"), g(e, "path"); let i, n = 0, o = -1, r = !0; if (e.length >= 2 && f(e.charCodeAt(0)) && e.charCodeAt(1) === h && ( n = 2), void 0 !== t && t.length > 0 && t.length <= e.length) { if (t === e) return ""; let s = t.length - 1, a = -1; for (i = e.length - 1; i >= n; --i) { const l = e.charCodeAt(i); if (p(l)) { if (!r) { n = i + 1; break } } else -1 === a && (r = !1, a = i + 1), s >= 0 && (l === t.charCodeAt( s) ? -1 == --s && (o = i) : (s = -1, o = a)) } return n === o ? o = a : -1 === o && (o = e.length), e.slice(n, o) } for (i = e.length - 1; i >= n; --i) if (p(e.charCodeAt(i))) { if (!r) { n = i + 1; break } } else -1 === o && (r = !1, o = i + 1); return -1 === o ? "" : e.slice(n, o) }, extname(e) { g(e, "path"); let t = 0, i = -1, n = 0, o = -1, r = !0, s = 0; e.length >= 2 && e.charCodeAt(1) === h && f(e.charCodeAt(0)) && (t = n = 2); for (let a = e.length - 1; a >= t; --a) { const t = e.charCodeAt(a); if (p(t)) { if (!r) { n = a + 1; break } } else -1 === o && (r = !1, o = a + 1), t === l ? -1 === i ? i = a : 1 !== s && (s = 1) : -1 !== i && (s = -1) } return -1 === i || -1 === o || 0 === s || 1 === s && i === o - 1 && i === n + 1 ? "" : e.slice(i, o) }, format: b.bind(null, "\\"), parse(e) { g(e, "path"); const t = { root: "", dir: "", base: "", ext: "", name: "" }; if (0 === e.length) return t; const i = e.length; let n = 0, o = e.charCodeAt(0); if (1 === i) return p(o) ? (t.root = t.dir = e, t) : (t.base = t.name = e, t); if (p(o)) { if (n = 1, p(e.charCodeAt(1))) { let t = 2, o = t; for (; t < i && !p(e.charCodeAt(t));) t++; if (t < i && t !== o) { for (o = t; t < i && p(e.charCodeAt(t));) t++; if (t < i && t !== o) { for (o = t; t < i && !p(e.charCodeAt(t));) t++; t === i ? n = t : t !== o && (n = t + 1) } } } } else if (f(o) && e.charCodeAt(1) === h) { if (i <= 2) return t.root = t.dir = e, t; if (n = 2, p(e.charCodeAt(2))) { if (3 === i) return t.root = t.dir = e, t; n = 3 } } n > 0 && (t.root = e.slice(0, n)); let r = -1, s = n, a = -1, d = !0, c = e.length - 1, u = 0; for (; c >= n; --c) if (o = e.charCodeAt(c), p(o)) { if (!d) { s = c + 1; break } } else -1 === a && (d = !1, a = c + 1), o === l ? -1 === r ? r = c : 1 !== u && (u = 1) : -1 !== r && (u = -1); return -1 !== a && (-1 === r || 0 === u || 1 === u && r === a - 1 && r === s + 1 ? t.base = t.name = e.slice(s, a) : (t.name = e.slice(s, r), t.base = e.slice(s, a), t.ext = e.slice(r, a))), t.dir = s > 0 && s !== n ? e.slice(0, s - 1) : t.root, t }, sep: "\\", delimiter: ";", win32: null, posix: null }, w = { resolve(...e) { let t = "", i = !1; for (let n = e.length - 1; n >= -1 && !i; n--) { const o = n >= 0 ? e[n] : r(); g(o, "path"), 0 !== o.length && (t = `${o}/${t}`, i = o.charCodeAt(0) === d) } return t = _(t, !i, "/", m), i ? `/${t}` : t.length > 0 ? t : "." }, normalize(e) { if (g(e, "path"), 0 === e.length) return "."; const t = e.charCodeAt(0) === d, i = e.charCodeAt(e.length - 1) === d; return 0 === (e = _(e, !t, "/", m)).length ? t ? "/" : i ? "./" : "." : (i && (e += "/"), t ? `/${e}` : e) }, isAbsolute: e => (g(e, "path"), e.length > 0 && e.charCodeAt(0) === d), join(...e) { if (0 === e.length) return "."; let t; for (let i = 0; i < e.length; ++i) { const n = e[i]; g(n, "path"), n.length > 0 && (void 0 === t ? t = n : t += `/${n}`) } return void 0 === t ? "." : w.normalize(t) }, relative(e, t) { if (g(e, "from"), g(t, "to"), e === t) return ""; if ((e = w.resolve(e)) === (t = w.resolve(t))) return ""; const i = e.length, n = i - 1, o = t.length - 1, r = n < o ? n : o; let s = -1, a = 0; for (; a < r; a++) { const i = e.charCodeAt(1 + a); if (i !== t.charCodeAt(1 + a)) break; i === d && (s = a) } if (a === r) if (o > r) { if (t.charCodeAt(1 + a) === d) return t.slice(1 + a + 1); if (0 === a) return t.slice(1 + a) } else n > r && (e.charCodeAt(1 + a) === d ? s = a : 0 === a && (s = 0)); let l = ""; for (a = 1 + s + 1; a <= i; ++a) a !== i && e.charCodeAt(a) !== d || (l += 0 === l.length ? ".." : "/.."); return `${l}${t.slice(1+s)}` }, toNamespacedPath: e => e, dirname(e) { if (g(e, "path"), 0 === e.length) return "."; const t = e.charCodeAt(0) === d; let i = -1, n = !0; for (let t = e.length - 1; t >= 1; --t) if (e.charCodeAt(t) === d) { if (!n) { i = t; break } } else n = !1; return -1 === i ? t ? "/" : "." : t && 1 === i ? "//" : e.slice(0, i) }, basename(e, t) { void 0 !== t && g(t, "ext"), g(e, "path"); let i, n = 0, o = -1, r = !0; if (void 0 !== t && t.length > 0 && t.length <= e.length) { if (t === e) return ""; let s = t.length - 1, a = -1; for (i = e.length - 1; i >= 0; --i) { const l = e.charCodeAt(i); if (l === d) { if (!r) { n = i + 1; break } } else -1 === a && (r = !1, a = i + 1), s >= 0 && (l === t.charCodeAt( s) ? -1 == --s && (o = i) : (s = -1, o = a)) } return n === o ? o = a : -1 === o && (o = e.length), e.slice(n, o) } for (i = e.length - 1; i >= 0; --i) if (e.charCodeAt(i) === d) { if (!r) { n = i + 1; break } } else -1 === o && (r = !1, o = i + 1); return -1 === o ? "" : e.slice(n, o) }, extname(e) { g(e, "path"); let t = -1, i = 0, n = -1, o = !0, r = 0; for (let s = e.length - 1; s >= 0; --s) { const a = e.charCodeAt(s); if (a !== d) - 1 === n && (o = !1, n = s + 1), a === l ? -1 === t ? t = s : 1 !== r && (r = 1) : -1 !== t && (r = -1); else if (!o) { i = s + 1; break } } return -1 === t || -1 === n || 0 === r || 1 === r && t === n - 1 && t === i + 1 ? "" : e.slice(t, n) }, format: b.bind(null, "/"), parse(e) { g(e, "path"); const t = { root: "", dir: "", base: "", ext: "", name: "" }; if (0 === e.length) return t; const i = e.charCodeAt(0) === d; let n; i ? (t.root = "/", n = 1) : n = 0; let o = -1, r = 0, s = -1, a = !0, c = e.length - 1, h = 0; for (; c >= n; --c) { const t = e.charCodeAt(c); if (t !== d) - 1 === s && (a = !1, s = c + 1), t === l ? -1 === o ? o = c : 1 !== h && (h = 1) : -1 !== o && (h = -1); else if (!a) { r = c + 1; break } } if (-1 !== s) { const n = 0 === r && i ? 1 : r; - 1 === o || 0 === h || 1 === h && o === s - 1 && o === r + 1 ? t.base = t.name = e.slice(n, s) : (t.name = e.slice(n, o), t.base = e.slice(n, s), t.ext = e.slice(o, s)) } return r > 0 ? t.dir = e.slice(0, r - 1) : i && (t.dir = "/"), t }, sep: "/", delimiter: ":", win32: null, posix: null }; w.win32 = v.win32 = v, w.posix = v.posix = w; const C = "win32" === a ? v.normalize : w.normalize, y = "win32" === a ? v.resolve : w.resolve, S = "win32" === a ? v.relative : w.relative, x = "win32" === a ? v.dirname : w.dirname, k = "win32" === a ? v.basename : w.basename, L = "win32" === a ? v.extname : w.extname, N = "win32" === a ? v.sep : w.sep }, 1432: (e, t, i) => { "use strict"; var n; i.d(t, { li: () => f, ED: () => w, dz: () => C, IJ: () => y, tY: () => S, $L: () => x, gn: () => k, WE: () => L, xS: () => N, OS: () => D, r: () => T }); const o = "en"; let r, s, a, l = !1, d = !1, c = !1, h = !1, u = !1, g = !1, p = !1, m = null; const f = "object" == typeof self ? self : "object" == typeof i.g ? i.g : {}; let _; void 0 !== f.vscode && void 0 !== f.vscode.process ? _ = f.vscode.process : "undefined" != typeof process && (_ = process); const b = "string" == typeof(null === (n = null == _ ? void 0 : _.versions) || void 0 === n ? void 0 : n.electron) && "renderer" === _.type; if ("object" != typeof navigator || b) if ("object" == typeof _) { l = "win32" === _.platform, d = "darwin" === _.platform, c = "linux" === _.platform, h = c && !!_.env.SNAP && !!_.env.SNAP_REVISION, r = o, m = o; const e = _.env.VSCODE_NLS_CONFIG; if (e) try { const t = JSON.parse(e), i = t.availableLanguages["*"]; r = t.locale, m = i || o, s = t._translationsConfigFile } catch (e) {} u = !0 } else console.error("Unable to resolve platform."); else a = navigator.userAgent, l = a.indexOf("Windows") >= 0, d = a.indexOf( "Macintosh") >= 0, p = (a.indexOf("Macintosh") >= 0 || a.indexOf("iPad") >= 0 || a.indexOf("iPhone") >= 0) && !!navigator.maxTouchPoints && navigator.maxTouchPoints > 0, c = a.indexOf("Linux") >= 0, g = !0, r = navigator.language, m = r; let v = 0; d ? v = 1 : l ? v = 3 : c && (v = 2); const w = l, C = d, y = c, S = u, x = g, k = p, L = a, N = function() { if (f.setImmediate) return f.setImmediate.bind(f); if ("function" == typeof f.postMessage && !f.importScripts) { let e = []; f.addEventListener("message", (t => { if (t.data && t.data.vscodeSetImmediateId) for (let i = 0, n = e.length; i < n; i++) { const n = e[i]; if (n.id === t.data.vscodeSetImmediateId) return e.splice(i, 1), void n.callback() } })); let t = 0; return i => { const n = ++t; e.push({ id: n, callback: i }), f.postMessage({ vscodeSetImmediateId: n }, "*") } } if ("function" == typeof(null == _ ? void 0 : _.nextTick)) return _.nextTick .bind(_); const e = Promise.resolve(); return t => e.then(t) }(), D = d || p ? 2 : l ? 1 : 3; let E = !0, I = !1; function T() { if (!I) { I = !0; const e = new Uint8Array(2); e[0] = 1, e[1] = 2; const t = new Uint16Array(e.buffer); E = 513 === t[0] } return E } }, 1134: (e, t, i) => { "use strict"; var n; i.d(t, { e: () => n }), function(e) { function t(e, t) { if (e.start >= t.end || t.start >= e.end) return { start: 0, end: 0 }; const i = Math.max(e.start, t.start), n = Math.min(e.end, t.end); return n - i <= 0 ? { start: 0, end: 0 } : { start: i, end: n } } function i(e) { return e.end - e.start <= 0 } e.intersect = t, e.isEmpty = i, e.intersects = function(e, n) { return !i(t(e, n)) }, e.relativeComplement = function(e, t) { const n = [], o = { start: e.start, end: Math.min(t.start, e.end) }, r = { start: Math.max(t.end, e.start), end: e.end }; return i(o) || n.push(o), i(r) || n.push(r), n } }(n || (n = {})) }, 5935: (e, t, i) => { "use strict"; i.d(t, { z_: () => l, SF: () => d, Xy: () => c, Hx: () => h, EZ: () => u, XX: () => g, Vo: () => p, AH: () => m, i3: () => f, Vb: () => _ }); var n = i(5527), o = i(6663), r = i(8721), s = i(7295), a = i(666); function l(e) { return (0, a.q)(e, !0) } const d = new class { constructor(e) { this._ignorePathCasing = e } compare(e, t, i = !1) { return e === t ? 0 : (0, s.qu)(this.getComparisonKey(e, i), this.getComparisonKey( t, i)) } isEqual(e, t, i = !1) { return e === t || !(!e || !t) && this.getComparisonKey(e, i) === this .getComparisonKey(t, i) } getComparisonKey(e, t = !1) { return e.with({ path: this._ignorePathCasing(e) ? e.path.toLowerCase() : void 0, fragment: t ? null : void 0 }).toString() } joinPath(e, ...t) { return a.o.joinPath(e, ...t) } basenameOrAuthority(e) { return u(e) || e.authority } basename(e) { return r.KR.basename(e.path) } dirname(e) { if (0 === e.path.length) return e; let t; return e.scheme === o.lg.file ? t = a.o.file(r.XX(l(e))).path : (t = r.KR.dirname(e.path), e.authority && t.length && 47 !== t.charCodeAt( 0) && (console.error( `dirname("${e.toString})) resulted in a relative path`), t = "/")), e.with({ path: t }) } normalizePath(e) { if (!e.path.length) return e; let t; return t = e.scheme === o.lg.file ? a.o.file(r.Fv(l(e))).path : r.KR.normalize( e.path), e.with({ path: t }) } resolvePath(e, t) { if (e.scheme === o.lg.file) { const i = a.o.file(r.DB(l(e), t)); return e.with({ authority: i.authority, path: i.path }) } return t = n.fn(t), e.with({ path: r.KR.resolve(e.path, t) }) } }((() => !1)), c = d.isEqual.bind(d), h = d.basenameOrAuthority.bind(d), u = d.basename.bind(d), g = d.dirname.bind(d), p = d.joinPath.bind(d), m = d.normalizePath.bind(d), f = d.resolvePath.bind(d); var _; ! function(e) { e.META_DATA_LABEL = "label", e.META_DATA_DESCRIPTION = "description", e.META_DATA_SIZE = "size", e.META_DATA_MIME = "mime", e.parseMetaData = function(t) { const i = new Map; t.path.substring(t.path.indexOf(";") + 1, t.path.lastIndexOf(";")).split( ";").forEach((e => { const [t, n] = e.split(":"); t && n && i.set(t, n) })); const n = t.path.substring(0, t.path.indexOf(";")); return n && i.set(e.META_DATA_MIME, n), i } }(_ || (_ = {})) }, 6633: (e, t, i) => { "use strict"; i.d(t, { Rm: () => s }); var n = i(4669), o = i(5976); class r { constructor(e, t, i, n, o, r) { this._scrollStateBrand = void 0, e |= 0, t |= 0, i |= 0, n |= 0, o |= 0, r |= 0, this.rawScrollLeft = i, this.rawScrollTop = r, e < 0 && (e = 0), i + e > t && (i = t - e), i < 0 && (i = 0), n < 0 && (n = 0), r + n > o && (r = o - n), r < 0 && (r = 0), this.width = e, this.scrollWidth = t, this.scrollLeft = i, this.height = n, this.scrollHeight = o, this.scrollTop = r } equals(e) { return this.rawScrollLeft === e.rawScrollLeft && this.rawScrollTop === e.rawScrollTop && this.width === e.width && this.scrollWidth === e.scrollWidth && this.scrollLeft === e.scrollLeft && this.height === e.height && this.scrollHeight === e.scrollHeight && this.scrollTop === e.scrollTop } withScrollDimensions(e, t) { return new r(void 0 !== e.width ? e.width : this.width, void 0 !== e.scrollWidth ? e.scrollWidth : this.scrollWidth, t ? this.rawScrollLeft : this.scrollLeft, void 0 !== e.height ? e.height : this.height, void 0 !== e.scrollHeight ? e.scrollHeight : this.scrollHeight, t ? this.rawScrollTop : this.scrollTop ) } withScrollPosition(e) { return new r(this.width, this.scrollWidth, void 0 !== e.scrollLeft ? e .scrollLeft : this.rawScrollLeft, this.height, this.scrollHeight, void 0 !== e.scrollTop ? e.scrollTop : this.rawScrollTop) } createScrollEvent(e, t) { const i = this.width !== e.width, n = this.scrollWidth !== e.scrollWidth, o = this.scrollLeft !== e.scrollLeft, r = this.height !== e.height, s = this.scrollHeight !== e.scrollHeight, a = this.scrollTop !== e.scrollTop; return { inSmoothScrolling: t, oldWidth: e.width, oldScrollWidth: e.scrollWidth, oldScrollLeft: e.scrollLeft, width: this.width, scrollWidth: this.scrollWidth, scrollLeft: this.scrollLeft, oldHeight: e.height, oldScrollHeight: e.scrollHeight, oldScrollTop: e.scrollTop, height: this.height, scrollHeight: this.scrollHeight, scrollTop: this.scrollTop, widthChanged: i, scrollWidthChanged: n, scrollLeftChanged: o, heightChanged: r, scrollHeightChanged: s, scrollTopChanged: a } } } class s extends o.JT { constructor(e, t) { super(), this._scrollableBrand = void 0, this._onScroll = this._register( new n.Q5), this.onScroll = this._onScroll.event, this._smoothScrollDuration = e, this._scheduleAtNextAnimationFrame = t, this._state = new r(0, 0, 0, 0, 0, 0), this._smoothScrolling = null } dispose() { this._smoothScrolling && (this._smoothScrolling.dispose(), this._smoothScrolling = null), super.dispose() } setSmoothScrollDuration(e) { this._smoothScrollDuration = e } validateScrollPosition(e) { return this._state.withScrollPosition(e) } getScrollDimensions() { return this._state } setScrollDimensions(e, t) { const i = this._state.withScrollDimensions(e, t); this._setState(i, Boolean(this._smoothScrolling)), this._smoothScrolling && this._smoothScrolling.acceptScrollDimensions(this._state) } getFutureScrollPosition() { return this._smoothScrolling ? this._smoothScrolling.to : this._state } getCurrentScrollPosition() { return this._state } setScrollPositionNow(e) { const t = this._state.withScrollPosition(e); this._smoothScrolling && (this._smoothScrolling.dispose(), this._smoothScrolling = null), this._setState(t, !1) } setScrollPositionSmooth(e, t) { if (0 === this._smoothScrollDuration) return this.setScrollPositionNow( e); if (this._smoothScrolling) { e = { scrollLeft: void 0 === e.scrollLeft ? this._smoothScrolling.to.scrollLeft : e .scrollLeft, scrollTop: void 0 === e.scrollTop ? this._smoothScrolling.to.scrollTop : e .scrollTop }; const i = this._state.withScrollPosition(e); if (this._smoothScrolling.to.scrollLeft === i.scrollLeft && this._smoothScrolling .to.scrollTop === i.scrollTop) return; let n; n = t ? new d(this._smoothScrolling.from, i, this._smoothScrolling.startTime, this._smoothScrolling.duration) : this._smoothScrolling.combine( this._state, i, this._smoothScrollDuration), this._smoothScrolling .dispose(), this._smoothScrolling = n } else { const t = this._state.withScrollPosition(e); this._smoothScrolling = d.start(this._state, t, this._smoothScrollDuration) } this._smoothScrolling.animationFrameDisposable = this._scheduleAtNextAnimationFrame( (() => { this._smoothScrolling && (this._smoothScrolling.animationFrameDisposable = null, this._performSmoothScrolling()) })) } _performSmoothScrolling() { if (!this._smoothScrolling) return; const e = this._smoothScrolling.tick(), t = this._state.withScrollPosition(e); return this._setState(t, !0), this._smoothScrolling ? e.isDone ? ( this._smoothScrolling.dispose(), void(this._smoothScrolling = null) ) : void(this._smoothScrolling.animationFrameDisposable = this._scheduleAtNextAnimationFrame( (() => { this._smoothScrolling && (this._smoothScrolling.animationFrameDisposable = null, this._performSmoothScrolling()) }))) : void 0 } _setState(e, t) { const i = this._state; i.equals(e) || (this._state = e, this._onScroll.fire(this._state.createScrollEvent( i, t))) } } class a { constructor(e, t, i) { this.scrollLeft = e, this.scrollTop = t, this.isDone = i } } function l(e, t) { const i = t - e; return function(t) { return e + i * (1 - (n = 1 - t, Math.pow(n, 3))); var n } } class d { constructor(e, t, i, n) { this.from = e, this.to = t, this.duration = n, this.startTime = i, this.animationFrameDisposable = null, this._initAnimations() } _initAnimations() { this.scrollLeft = this._initAnimation(this.from.scrollLeft, this.to.scrollLeft, this.to.width), this.scrollTop = this._initAnimation(this.from.scrollTop, this.to.scrollTop, this.to.height) } _initAnimation(e, t, i) { if (Math.abs(e - t) > 2.5 * i) { let s, a; return e < t ? (s = e + .75 * i, a = t - .75 * i) : (s = e - .75 * i, a = t + .75 * i), n = l(e, s), o = l(a, t), r = .33, function(e) { return e < r ? n(e / r) : o((e - r) / (1 - r)) } } var n, o, r; return l(e, t) } dispose() { null !== this.animationFrameDisposable && (this.animationFrameDisposable .dispose(), this.animationFrameDisposable = null) } acceptScrollDimensions(e) { this.to = e.withScrollPosition(this.to), this._initAnimations() } tick() { return this._tick(Date.now()) } _tick(e) { const t = (e - this.startTime) / this.duration; if (t < 1) { const e = this.scrollLeft(t), i = this.scrollTop(t); return new a(e, i, !1) } return new a(this.to.scrollLeft, this.to.scrollTop, !0) } combine(e, t, i) { return d.start(e, t, i) } static start(e, t, i) { i += 10; const n = Date.now() - 10; return new d(e, t, n, i) } } }, 4603: (e, t, i) => { "use strict"; i.d(t, { Z: () => r }); var n, o = i(7295); ! function(e) { e[e.Ignore = 0] = "Ignore", e[e.Info = 1] = "Info", e[e.Warning = 2] = "Warning", e[e.Error = 3] = "Error" }(n || (n = {})), function(e) { const t = "error", i = "warning", n = "info"; e.fromValue = function(r) { return r ? o.qq(t, r) ? e.Error : o.qq(i, r) || o.qq("warn", r) ? e.Warning : o.qq(n, r) ? e.Info : e.Ignore : e.Ignore }, e.toString = function(o) { switch (o) { case e.Error: return t; case e.Warning: return i; case e.Info: return n; default: return "ignore" } } }(n || (n = {})); const r = n }, 4013: (e, t, i) => { "use strict"; i.d(t, { G: () => r }); var n = i(1432); const o = n.li.performance && "function" == typeof n.li.performance.now; class r { constructor(e) { this._highResolution = o && e, this._startTime = this._now(), this._stopTime = - 1 } static create(e = !0) { return new r(e) } stop() { this._stopTime = this._now() } elapsed() { return -1 !== this._stopTime ? this._stopTime - this._startTime : this ._now() - this._startTime } _now() { return this._highResolution ? n.li.performance.now() : Date.now() } } }, 7295: (e, t, i) => { "use strict"; function n(e) { return !e || "string" != typeof e || 0 === e.trim().length } i.d(t, { m5: () => n, WU: () => r, YU: () => s, ec: () => a, fy: () => l, j3: () => d, oL: () => c, un: () => h, R1: () => u, GF: () => g, IO: () => p, mr: () => m, uq: () => f, LC: () => _, V8: () => b, ow: () => v, qu: () => w, TT: () => C, zY: () => y, j_: () => S, mK: () => x, df: () => k, qq: () => N, ok: () => E, Mh: () => I, P1: () => T, ZG: () => M, YK: () => A, rL: () => R, ZH: () => O, vH: () => F, HO: () => B, Ut: () => z, RP: () => H, $i: () => j, Qe: () => K, ab: () => $, xe: () => q, K7: () => Z, C8: () => G, c1: () => Y, uS: () => Q, Kw: () => X, PJ: () => J, S6: () => ee, fi: () => te, oH: () => ne }); const o = /{(\d+)}/g; function r(e, ...t) { return 0 === t.length ? e : e.replace(o, (function(e, i) { const n = parseInt(i, 10); return isNaN(n) || n < 0 || n >= t.length ? e : t[n] })) } function s(e) { return e.replace(/[<>&]/g, (function(e) { switch (e) { case "<": return "<"; case ">": return ">"; case "&": return "&"; default: return e } })) } function a(e) { return e.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g, "\\$&") } function l(e, t = " ") { return c(d(e, t), t) } function d(e, t) { if (!e || !t) return e; const i = t.length; if (0 === i || 0 === e.length) return e; let n = 0; for (; e.indexOf(t, n) === n;) n += i; return e.substring(n) } function c(e, t) { if (!e || !t) return e; const i = t.length, n = e.length; if (0 === i || 0 === n) return e; let o = n, r = -1; for (; r = e.lastIndexOf(t, o - 1), -1 !== r && r + i === o;) { if (0 === r) return ""; o = r } return e.substring(0, o) } function h(e) { return e.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g, "\\$&").replace( /[\*]/g, ".*") } function u(e) { return e.replace(/\*/g, "") } function g(e, t, i = {}) { if (!e) throw new Error("Cannot create regex from empty string"); t || (e = a(e)), i.wholeWord && (/\B/.test(e.charAt(0)) || (e = "\\b" + e), /\B/.test(e.charAt(e.length - 1)) || (e += "\\b")); let n = ""; return i.global && (n += "g"), i.matchCase || (n += "i"), i.multiline && (n += "m"), i.unicode && (n += "u"), new RegExp(e, n) } function p(e) { return "^" !== e.source && "^$" !== e.source && "$" !== e.source && "^\\s*$" !== e.source && !(!e.exec("") || 0 !== e.lastIndex) } function m(e) { return (e.global ? "g" : "") + (e.ignoreCase ? "i" : "") + (e.multiline ? "m" : "") + (e.unicode ? "u" : "") } function f(e) { return e.split(/\r\n|\r|\n/) } function _(e) { for (let t = 0, i = e.length; t < i; t++) { const i = e.charCodeAt(t); if (32 !== i && 9 !== i) return t } return -1 } function b(e, t = 0, i = e.length) { for (let n = t; n < i; n++) { const i = e.charCodeAt(n); if (32 !== i && 9 !== i) return e.substring(t, n) } return e.substring(t, i) } function v(e, t = e.length - 1) { for (let i = t; i >= 0; i--) { const t = e.charCodeAt(i); if (32 !== t && 9 !== t) return i } return -1 } function w(e, t) { return e < t ? -1 : e > t ? 1 : 0 } function C(e, t, i = 0, n = e.length, o = 0, r = t.length) { for (; i < n && o < r; i++, o++) { let n = e.charCodeAt(i), r = t.charCodeAt(o); if (n < r) return -1; if (n > r) return 1 } const s = n - i, a = r - o; return s < a ? -1 : s > a ? 1 : 0 } function y(e, t) { return S(e, t, 0, e.length, 0, t.length) } function S(e, t, i = 0, n = e.length, o = 0, r = t.length) { for (; i < n && o < r; i++, o++) { let s = e.charCodeAt(i), a = t.charCodeAt(o); if (s === a) continue; const l = s - a; if (!(32 === l && k(a) || -32 === l && k(s))) return x(s) && x(a) ? l : C(e.toLowerCase(), t.toLowerCase(), i, n, o, r) } const s = n - i, a = r - o; return s < a ? -1 : s > a ? 1 : 0 } function x(e) { return e >= 97 && e <= 122 } function k(e) { return e >= 65 && e <= 90 } function L(e) { return x(e) || k(e) } function N(e, t) { return e.length === t.length && D(e, t) } function D(e, t, i = e.length) { for (let n = 0; n < i; n++) { const i = e.charCodeAt(n), o = t.charCodeAt(n); if (i !== o) if (L(i) && L(o)) { const e = Math.abs(i - o); if (0 !== e && 32 !== e) return !1 } else if (String.fromCharCode(i).toLowerCase() !== String.fromCharCode( o).toLowerCase()) return !1 } return !0 } function E(e, t) { const i = t.length; return !(t.length > e.length) && D(e, t, i) } function I(e, t) { let i, n = Math.min(e.length, t.length); for (i = 0; i < n; i++) if (e.charCodeAt(i) !== t.charCodeAt(i)) return i; return n } function T(e, t) { let i, n = Math.min(e.length, t.length); const o = e.length - 1, r = t.length - 1; for (i = 0; i < n; i++) if (e.charCodeAt(o - i) !== t.charCodeAt(r - i)) return i; return n } function M(e) { return 55296 <= e && e <= 56319 } function A(e) { return 56320 <= e && e <= 57343 } function R(e, t) { return t - 56320 + (e - 55296 << 10) + 65536 } function O(e, t, i) { const n = e.charCodeAt(i); if (M(n) && i + 1 < t) { const t = e.charCodeAt(i + 1); if (A(t)) return R(n, t) } return n } function P(e, t) { const i = e.charCodeAt(t - 1); if (A(i) && t > 1) { const n = e.charCodeAt(t - 2); if (M(n)) return R(n, i) } return i } function F(e, t) { const i = ie.getInstance(), n = t, o = e.length, r = O(e, o, t); t += r >= 65536 ? 2 : 1; let s = i.getGraphemeBreakType(r); for (; t < o;) { const n = O(e, o, t), r = i.getGraphemeBreakType(n); if (te(s, r)) break; t += n >= 65536 ? 2 : 1, s = r } return t - n } function B(e, t) { const i = ie.getInstance(), n = t, o = P(e, t); t -= o >= 65536 ? 2 : 1; let r = i.getGraphemeBreakType(o); for (; t > 0;) { const n = P(e, t), o = i.getGraphemeBreakType(n); if (te(o, r)) break; t -= n >= 65536 ? 2 : 1, r = o } return n - t } const W = /(?:[\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-\u0815\u081A\u0824\u0828\u0830-\u0858\u085E-\u08BD\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFD3D\uFD50-\uFDFC\uFE70-\uFEFC]|\uD802[\uDC00-\uDD1B\uDD20-\uDE00\uDE10-\uDE33\uDE40-\uDEE4\uDEEB-\uDF35\uDF40-\uDFFF]|\uD803[\uDC00-\uDCFF]|\uD83A[\uDC00-\uDCCF\uDD00-\uDD43\uDD50-\uDFFF]|\uD83B[\uDC00-\uDEBB])/; function z(e) { return W.test(e) } const V = /(?:[\u231A\u231B\u23F0\u23F3\u2600-\u27BF\u2B50\u2B55]|\uD83C[\uDDE6-\uDDFF\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F\uDE80-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD00-\uDDFF\uDE70-\uDED6])/; function H(e) { return V.test(e) } const U = /^[\t\n\r\x20-\x7E]*$/; function j(e) { return U.test(e) } const K = /[\u2028\u2029]/; function $(e) { return K.test(e) } function q(e) { for (let t = 0, i = e.length; t < i; t++) if (Z(e.charCodeAt(t))) return !0; return !1 } function Z(e) { return (e = +e) >= 11904 && e <= 55215 || e >= 63744 && e <= 64255 || e >= 65281 && e <= 65374 } function G(e) { return e >= 127462 && e <= 127487 || 8986 === e || 8987 === e || 9200 === e || 9203 === e || e >= 9728 && e <= 10175 || 11088 === e || 11093 === e || e >= 127744 && e <= 128591 || e >= 128640 && e <= 128764 || e >= 128992 && e <= 129003 || e >= 129280 && e <= 129535 || e >= 129648 && e <= 129750 } const Y = String.fromCharCode(65279); function Q(e) { return !!(e && e.length > 0 && 65279 === e.charCodeAt(0)) } function X(e, t = !1) { return !!e && (t && (e = e.replace(/\\./g, "")), e.toLowerCase() !== e) } function J(e) { return (e %= 52) < 26 ? String.fromCharCode(97 + e) : String.fromCharCode( 65 + e - 26) } function ee(e) { return ie.getInstance().getGraphemeBreakType(e) } function te(e, t) { return 0 === e ? 5 !== t && 7 !== t : !(2 === e && 3 === t || 4 !== e && 2 !== e && 3 !== e && 4 !== t && 2 !== t && 3 !== t && (8 === e && (8 === t || 9 === t || 11 === t || 12 === t) || !(11 !== e && 9 !== e || 9 !== t && 10 !== t) || (12 === e || 10 === e) && 10 === t || 5 === t || 13 === t || 7 === t || 1 === e || 13 === e && 14 === t || 6 === e && 6 === t)) } class ie { constructor() { this._data = JSON.parse( "[0,0,0,51592,51592,11,44424,44424,11,72251,72254,5,7150,7150,7,48008,48008,11,55176,55176,11,128420,128420,14,3276,3277,5,9979,9980,14,46216,46216,11,49800,49800,11,53384,53384,11,70726,70726,5,122915,122916,5,129320,129327,14,2558,2558,5,5906,5908,5,9762,9763,14,43360,43388,8,45320,45320,11,47112,47112,11,48904,48904,11,50696,50696,11,52488,52488,11,54280,54280,11,70082,70083,1,71350,71350,7,73111,73111,5,127892,127893,14,128726,128727,14,129473,129474,14,2027,2035,5,2901,2902,5,3784,3789,5,6754,6754,5,8418,8420,5,9877,9877,14,11088,11088,14,44008,44008,5,44872,44872,11,45768,45768,11,46664,46664,11,47560,47560,11,48456,48456,11,49352,49352,11,50248,50248,11,51144,51144,11,52040,52040,11,52936,52936,11,53832,53832,11,54728,54728,11,69811,69814,5,70459,70460,5,71096,71099,7,71998,71998,5,72874,72880,5,119149,119149,7,127374,127374,14,128335,128335,14,128482,128482,14,128765,128767,14,129399,129400,14,129680,129685,14,1476,1477,5,2377,2380,7,2759,2760,5,3137,3140,7,3458,3459,7,4153,4154,5,6432,6434,5,6978,6978,5,7675,7679,5,9723,9726,14,9823,9823,14,9919,9923,14,10035,10036,14,42736,42737,5,43596,43596,5,44200,44200,11,44648,44648,11,45096,45096,11,45544,45544,11,45992,45992,11,46440,46440,11,46888,46888,11,47336,47336,11,47784,47784,11,48232,48232,11,48680,48680,11,49128,49128,11,49576,49576,11,50024,50024,11,50472,50472,11,50920,50920,11,51368,51368,11,51816,51816,11,52264,52264,11,52712,52712,11,53160,53160,11,53608,53608,11,54056,54056,11,54504,54504,11,54952,54952,11,68108,68111,5,69933,69940,5,70197,70197,7,70498,70499,7,70845,70845,5,71229,71229,5,71727,71735,5,72154,72155,5,72344,72345,5,73023,73029,5,94095,94098,5,121403,121452,5,126981,127182,14,127538,127546,14,127990,127990,14,128391,128391,14,128445,128449,14,128500,128505,14,128752,128752,14,129160,129167,14,129356,129356,14,129432,129442,14,129648,129651,14,129751,131069,14,173,173,4,1757,1757,1,2274,2274,1,2494,2494,5,2641,2641,5,2876,2876,5,3014,3016,7,3262,3262,7,3393,3396,5,3570,3571,7,3968,3972,5,4228,4228,7,6086,6086,5,6679,6680,5,6912,6915,5,7080,7081,5,7380,7392,5,8252,8252,14,9096,9096,14,9748,9749,14,9784,9786,14,9833,9850,14,9890,9894,14,9938,9938,14,9999,9999,14,10085,10087,14,12349,12349,14,43136,43137,7,43454,43456,7,43755,43755,7,44088,44088,11,44312,44312,11,44536,44536,11,44760,44760,11,44984,44984,11,45208,45208,11,45432,45432,11,45656,45656,11,45880,45880,11,46104,46104,11,46328,46328,11,46552,46552,11,46776,46776,11,47000,47000,11,47224,47224,11,47448,47448,11,47672,47672,11,47896,47896,11,48120,48120,11,48344,48344,11,48568,48568,11,48792,48792,11,49016,49016,11,49240,49240,11,49464,49464,11,49688,49688,11,49912,49912,11,50136,50136,11,50360,50360,11,50584,50584,11,50808,50808,11,51032,51032,11,51256,51256,11,51480,51480,11,51704,51704,11,51928,51928,11,52152,52152,11,52376,52376,11,52600,52600,11,52824,52824,11,53048,53048,11,53272,53272,11,53496,53496,11,53720,53720,11,53944,53944,11,54168,54168,11,54392,54392,11,54616,54616,11,54840,54840,11,55064,55064,11,65438,65439,5,69633,69633,5,69837,69837,1,70018,70018,7,70188,70190,7,70368,70370,7,70465,70468,7,70712,70719,5,70835,70840,5,70850,70851,5,71132,71133,5,71340,71340,7,71458,71461,5,71985,71989,7,72002,72002,7,72193,72202,5,72281,72283,5,72766,72766,7,72885,72886,5,73104,73105,5,92912,92916,5,113824,113827,4,119173,119179,5,121505,121519,5,125136,125142,5,127279,127279,14,127489,127490,14,127570,127743,14,127900,127901,14,128254,128254,14,128369,128370,14,128400,128400,14,128425,128432,14,128468,128475,14,128489,128494,14,128715,128720,14,128745,128745,14,128759,128760,14,129004,129023,14,129296,129304,14,129340,129342,14,129388,129392,14,129404,129407,14,129454,129455,14,129485,129487,14,129659,129663,14,129719,129727,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2363,2363,7,2402,2403,5,2507,2508,7,2622,2624,7,2691,2691,7,2786,2787,5,2881,2884,5,3006,3006,5,3072,3072,5,3170,3171,5,3267,3268,7,3330,3331,7,3406,3406,1,3538,3540,5,3655,3662,5,3897,3897,5,4038,4038,5,4184,4185,5,4352,4447,8,6068,6069,5,6155,6157,5,6448,6449,7,6742,6742,5,6783,6783,5,6966,6970,5,7042,7042,7,7143,7143,7,7212,7219,5,7412,7412,5,8206,8207,4,8294,8303,4,8596,8601,14,9410,9410,14,9742,9742,14,9757,9757,14,9770,9770,14,9794,9794,14,9828,9828,14,9855,9855,14,9882,9882,14,9900,9903,14,9929,9933,14,9963,9967,14,9987,9988,14,10006,10006,14,10062,10062,14,10175,10175,14,11744,11775,5,42607,42607,5,43043,43044,7,43263,43263,5,43444,43445,7,43569,43570,5,43698,43700,5,43766,43766,5,44032,44032,11,44144,44144,11,44256,44256,11,44368,44368,11,44480,44480,11,44592,44592,11,44704,44704,11,44816,44816,11,44928,44928,11,45040,45040,11,45152,45152,11,45264,45264,11,45376,45376,11,45488,45488,11,45600,45600,11,45712,45712,11,45824,45824,11,45936,45936,11,46048,46048,11,46160,46160,11,46272,46272,11,46384,46384,11,46496,46496,11,46608,46608,11,46720,46720,11,46832,46832,11,46944,46944,11,47056,47056,11,47168,47168,11,47280,47280,11,47392,47392,11,47504,47504,11,47616,47616,11,47728,47728,11,47840,47840,11,47952,47952,11,48064,48064,11,48176,48176,11,48288,48288,11,48400,48400,11,48512,48512,11,48624,48624,11,48736,48736,11,48848,48848,11,48960,48960,11,49072,49072,11,49184,49184,11,49296,49296,11,49408,49408,11,49520,49520,11,49632,49632,11,49744,49744,11,49856,49856,11,49968,49968,11,50080,50080,11,50192,50192,11,50304,50304,11,50416,50416,11,50528,50528,11,50640,50640,11,50752,50752,11,50864,50864,11,50976,50976,11,51088,51088,11,51200,51200,11,51312,51312,11,51424,51424,11,51536,51536,11,51648,51648,11,51760,51760,11,51872,51872,11,51984,51984,11,52096,52096,11,52208,52208,11,52320,52320,11,52432,52432,11,52544,52544,11,52656,52656,11,52768,52768,11,52880,52880,11,52992,52992,11,53104,53104,11,53216,53216,11,53328,53328,11,53440,53440,11,53552,53552,11,53664,53664,11,53776,53776,11,53888,53888,11,54000,54000,11,54112,54112,11,54224,54224,11,54336,54336,11,54448,54448,11,54560,54560,11,54672,54672,11,54784,54784,11,54896,54896,11,55008,55008,11,55120,55120,11,64286,64286,5,66272,66272,5,68900,68903,5,69762,69762,7,69817,69818,5,69927,69931,5,70003,70003,5,70070,70078,5,70094,70094,7,70194,70195,7,70206,70206,5,70400,70401,5,70463,70463,7,70475,70477,7,70512,70516,5,70722,70724,5,70832,70832,5,70842,70842,5,70847,70848,5,71088,71089,7,71102,71102,7,71219,71226,5,71231,71232,5,71342,71343,7,71453,71455,5,71463,71467,5,71737,71738,5,71995,71996,5,72000,72000,7,72145,72147,7,72160,72160,5,72249,72249,7,72273,72278,5,72330,72342,5,72752,72758,5,72850,72871,5,72882,72883,5,73018,73018,5,73031,73031,5,73109,73109,5,73461,73462,7,94031,94031,5,94192,94193,7,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,126976,126979,14,127184,127231,14,127344,127345,14,127405,127461,14,127514,127514,14,127561,127567,14,127778,127779,14,127896,127896,14,127985,127986,14,127995,127999,5,128326,128328,14,128360,128366,14,128378,128378,14,128394,128397,14,128405,128406,14,128422,128423,14,128435,128443,14,128453,128464,14,128479,128480,14,128484,128487,14,128496,128498,14,128640,128709,14,128723,128724,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129096,129103,14,129292,129292,14,129311,129311,14,129329,129330,14,129344,129349,14,129360,129374,14,129394,129394,14,129402,129402,14,129413,129425,14,129445,129450,14,129466,129471,14,129483,129483,14,129511,129535,14,129653,129655,14,129667,129670,14,129705,129711,14,129731,129743,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,2307,2307,7,2366,2368,7,2382,2383,7,2434,2435,7,2497,2500,5,2519,2519,5,2563,2563,7,2631,2632,5,2677,2677,5,2750,2752,7,2763,2764,7,2817,2817,5,2879,2879,5,2891,2892,7,2914,2915,5,3008,3008,5,3021,3021,5,3076,3076,5,3146,3149,5,3202,3203,7,3264,3265,7,3271,3272,7,3298,3299,5,3390,3390,5,3402,3404,7,3426,3427,5,3535,3535,5,3544,3550,7,3635,3635,7,3763,3763,7,3893,3893,5,3953,3966,5,3981,3991,5,4145,4145,7,4157,4158,5,4209,4212,5,4237,4237,5,4520,4607,10,5970,5971,5,6071,6077,5,6089,6099,5,6277,6278,5,6439,6440,5,6451,6456,7,6683,6683,5,6744,6750,5,6765,6770,7,6846,6846,5,6964,6964,5,6972,6972,5,7019,7027,5,7074,7077,5,7083,7085,5,7146,7148,7,7154,7155,7,7222,7223,5,7394,7400,5,7416,7417,5,8204,8204,5,8233,8233,4,8288,8292,4,8413,8416,5,8482,8482,14,8986,8987,14,9193,9203,14,9654,9654,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9775,14,9792,9792,14,9800,9811,14,9825,9826,14,9831,9831,14,9852,9853,14,9872,9873,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9936,9936,14,9941,9960,14,9974,9974,14,9982,9985,14,9992,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10145,10145,14,11013,11015,14,11503,11505,5,12334,12335,5,12951,12951,14,42612,42621,5,43014,43014,5,43047,43047,7,43204,43205,5,43335,43345,5,43395,43395,7,43450,43451,7,43561,43566,5,43573,43574,5,43644,43644,5,43710,43711,5,43758,43759,7,44005,44005,5,44012,44012,7,44060,44060,11,44116,44116,11,44172,44172,11,44228,44228,11,44284,44284,11,44340,44340,11,44396,44396,11,44452,44452,11,44508,44508,11,44564,44564,11,44620,44620,11,44676,44676,11,44732,44732,11,44788,44788,11,44844,44844,11,44900,44900,11,44956,44956,11,45012,45012,11,45068,45068,11,45124,45124,11,45180,45180,11,45236,45236,11,45292,45292,11,45348,45348,11,45404,45404,11,45460,45460,11,45516,45516,11,45572,45572,11,45628,45628,11,45684,45684,11,45740,45740,11,45796,45796,11,45852,45852,11,45908,45908,11,45964,45964,11,46020,46020,11,46076,46076,11,46132,46132,11,46188,46188,11,46244,46244,11,46300,46300,11,46356,46356,11,46412,46412,11,46468,46468,11,46524,46524,11,46580,46580,11,46636,46636,11,46692,46692,11,46748,46748,11,46804,46804,11,46860,46860,11,46916,46916,11,46972,46972,11,47028,47028,11,47084,47084,11,47140,47140,11,47196,47196,11,47252,47252,11,47308,47308,11,47364,47364,11,47420,47420,11,47476,47476,11,47532,47532,11,47588,47588,11,47644,47644,11,47700,47700,11,47756,47756,11,47812,47812,11,47868,47868,11,47924,47924,11,47980,47980,11,48036,48036,11,48092,48092,11,48148,48148,11,48204,48204,11,48260,48260,11,48316,48316,11,48372,48372,11,48428,48428,11,48484,48484,11,48540,48540,11,48596,48596,11,48652,48652,11,48708,48708,11,48764,48764,11,48820,48820,11,48876,48876,11,48932,48932,11,48988,48988,11,49044,49044,11,49100,49100,11,49156,49156,11,49212,49212,11,49268,49268,11,49324,49324,11,49380,49380,11,49436,49436,11,49492,49492,11,49548,49548,11,49604,49604,11,49660,49660,11,49716,49716,11,49772,49772,11,49828,49828,11,49884,49884,11,49940,49940,11,49996,49996,11,50052,50052,11,50108,50108,11,50164,50164,11,50220,50220,11,50276,50276,11,50332,50332,11,50388,50388,11,50444,50444,11,50500,50500,11,50556,50556,11,50612,50612,11,50668,50668,11,50724,50724,11,50780,50780,11,50836,50836,11,50892,50892,11,50948,50948,11,51004,51004,11,51060,51060,11,51116,51116,11,51172,51172,11,51228,51228,11,51284,51284,11,51340,51340,11,51396,51396,11,51452,51452,11,51508,51508,11,51564,51564,11,51620,51620,11,51676,51676,11,51732,51732,11,51788,51788,11,51844,51844,11,51900,51900,11,51956,51956,11,52012,52012,11,52068,52068,11,52124,52124,11,52180,52180,11,52236,52236,11,52292,52292,11,52348,52348,11,52404,52404,11,52460,52460,11,52516,52516,11,52572,52572,11,52628,52628,11,52684,52684,11,52740,52740,11,52796,52796,11,52852,52852,11,52908,52908,11,52964,52964,11,53020,53020,11,53076,53076,11,53132,53132,11,53188,53188,11,53244,53244,11,53300,53300,11,53356,53356,11,53412,53412,11,53468,53468,11,53524,53524,11,53580,53580,11,53636,53636,11,53692,53692,11,53748,53748,11,53804,53804,11,53860,53860,11,53916,53916,11,53972,53972,11,54028,54028,11,54084,54084,11,54140,54140,11,54196,54196,11,54252,54252,11,54308,54308,11,54364,54364,11,54420,54420,11,54476,54476,11,54532,54532,11,54588,54588,11,54644,54644,11,54700,54700,11,54756,54756,11,54812,54812,11,54868,54868,11,54924,54924,11,54980,54980,11,55036,55036,11,55092,55092,11,55148,55148,11,55216,55238,9,65056,65071,5,65529,65531,4,68097,68099,5,68159,68159,5,69446,69456,5,69688,69702,5,69808,69810,7,69815,69816,7,69821,69821,1,69888,69890,5,69932,69932,7,69957,69958,7,70016,70017,5,70067,70069,7,70079,70080,7,70089,70092,5,70095,70095,5,70191,70193,5,70196,70196,5,70198,70199,5,70367,70367,5,70371,70378,5,70402,70403,7,70462,70462,5,70464,70464,5,70471,70472,7,70487,70487,5,70502,70508,5,70709,70711,7,70720,70721,7,70725,70725,7,70750,70750,5,70833,70834,7,70841,70841,7,70843,70844,7,70846,70846,7,70849,70849,7,71087,71087,5,71090,71093,5,71100,71101,5,71103,71104,5,71216,71218,7,71227,71228,7,71230,71230,7,71339,71339,5,71341,71341,5,71344,71349,5,71351,71351,5,71456,71457,7,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,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,123628,123631,5,125252,125258,5,126980,126980,14,127183,127183,14,127245,127247,14,127340,127343,14,127358,127359,14,127377,127386,14,127462,127487,6,127491,127503,14,127535,127535,14,127548,127551,14,127568,127569,14,127744,127777,14,127780,127891,14,127894,127895,14,127897,127899,14,127902,127984,14,127987,127989,14,127991,127994,14,128000,128253,14,128255,128317,14,128329,128334,14,128336,128359,14,128367,128368,14,128371,128377,14,128379,128390,14,128392,128393,14,128398,128399,14,128401,128404,14,128407,128419,14,128421,128421,14,128424,128424,14,128433,128434,14,128444,128444,14,128450,128452,14,128465,128467,14,128476,128478,14,128481,128481,14,128483,128483,14,128488,128488,14,128495,128495,14,128499,128499,14,128506,128591,14,128710,128714,14,128721,128722,14,128725,128725,14,128728,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,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,129664,129666,14,129671,129679,14,129686,129704,14,129712,129718,14,129728,129730,14,129744,129750,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,2259,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,3134,3136,5,3142,3144,5,3157,3158,5,3201,3201,5,3260,3260,5,3263,3263,5,3266,3266,5,3270,3270,5,3274,3275,7,3285,3286,5,3328,3329,5,3387,3388,5,3391,3392,7,3398,3400,7,3405,3405,5,3415,3415,5,3457,3457,5,3530,3530,5,3536,3537,7,3542,3542,5,3551,3551,5,3633,3633,5,3636,3642,5,3761,3761,5,3764,3772,5,3864,3865,5,3895,3895,5,3902,3903,7,3967,3967,7,3974,3975,5,3993,4028,5,4141,4144,5,4146,4151,5,4155,4156,7,4182,4183,7,4190,4192,5,4226,4226,5,4229,4230,5,4253,4253,5,4448,4519,9,4957,4959,5,5938,5940,5,6002,6003,5,6070,6070,7,6078,6085,7,6087,6088,7,6109,6109,5,6158,6158,4,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,6848,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,7673,5,8203,8203,4,8205,8205,13,8232,8232,4,8234,8238,4,8265,8265,14,8293,8293,4,8400,8412,5,8417,8417,5,8421,8432,5,8505,8505,14,8617,8618,14,9000,9000,14,9167,9167,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,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,9776,9783,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,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,9935,14,9937,9937,14,9939,9940,14,9961,9962,14,9968,9973,14,9975,9978,14,9981,9981,14,9986,9986,14,9989,9989,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,10084,14,10133,10135,14,10160,10160,14,10548,10549,14,11035,11036,14,11093,11093,14,11647,11647,5,12330,12333,5,12336,12336,14,12441,12442,5,12953,12953,14,42608,42610,5,42654,42655,5,43010,43010,5,43019,43019,5,43045,43046,5,43052,43052,5,43188,43203,7,43232,43249,5,43302,43309,5,43346,43347,7,43392,43394,5,43443,43443,5,43446,43449,5,43452,43453,5,43493,43493,5,43567,43568,7,43571,43572,7,43587,43587,5,43597,43597,7,43696,43696,5,43703,43704,5,43713,43713,5,43756,43757,5,43765,43765,7,44003,44004,7,44006,44007,7,44009,44010,7,44013,44013,5,44033,44059,12,44061,44087,12,44089,44115,12,44117,44143,12,44145,44171,12,44173,44199,12,44201,44227,12,44229,44255,12,44257,44283,12,44285,44311,12,44313,44339,12,44341,44367,12,44369,44395,12,44397,44423,12,44425,44451,12,44453,44479,12,44481,44507,12,44509,44535,12,44537,44563,12,44565,44591,12,44593,44619,12,44621,44647,12,44649,44675,12,44677,44703,12,44705,44731,12,44733,44759,12,44761,44787,12,44789,44815,12,44817,44843,12,44845,44871,12,44873,44899,12,44901,44927,12,44929,44955,12,44957,44983,12,44985,45011,12,45013,45039,12,45041,45067,12,45069,45095,12,45097,45123,12,45125,45151,12,45153,45179,12,45181,45207,12,45209,45235,12,45237,45263,12,45265,45291,12,45293,45319,12,45321,45347,12,45349,45375,12,45377,45403,12,45405,45431,12,45433,45459,12,45461,45487,12,45489,45515,12,45517,45543,12,45545,45571,12,45573,45599,12,45601,45627,12,45629,45655,12,45657,45683,12,45685,45711,12,45713,45739,12,45741,45767,12,45769,45795,12,45797,45823,12,45825,45851,12,45853,45879,12,45881,45907,12,45909,45935,12,45937,45963,12,45965,45991,12,45993,46019,12,46021,46047,12,46049,46075,12,46077,46103,12,46105,46131,12,46133,46159,12,46161,46187,12,46189,46215,12,46217,46243,12,46245,46271,12,46273,46299,12,46301,46327,12,46329,46355,12,46357,46383,12,46385,46411,12,46413,46439,12,46441,46467,12,46469,46495,12,46497,46523,12,46525,46551,12,46553,46579,12,46581,46607,12,46609,46635,12,46637,46663,12,46665,46691,12,46693,46719,12,46721,46747,12,46749,46775,12,46777,46803,12,46805,46831,12,46833,46859,12,46861,46887,12,46889,46915,12,46917,46943,12,46945,46971,12,46973,46999,12,47001,47027,12,47029,47055,12,47057,47083,12,47085,47111,12,47113,47139,12,47141,47167,12,47169,47195,12,47197,47223,12,47225,47251,12,47253,47279,12,47281,47307,12,47309,47335,12,47337,47363,12,47365,47391,12,47393,47419,12,47421,47447,12,47449,47475,12,47477,47503,12,47505,47531,12,47533,47559,12,47561,47587,12,47589,47615,12,47617,47643,12,47645,47671,12,47673,47699,12,47701,47727,12,47729,47755,12,47757,47783,12,47785,47811,12,47813,47839,12,47841,47867,12,47869,47895,12,47897,47923,12,47925,47951,12,47953,47979,12,47981,48007,12,48009,48035,12,48037,48063,12,48065,48091,12,48093,48119,12,48121,48147,12,48149,48175,12,48177,48203,12,48205,48231,12,48233,48259,12,48261,48287,12,48289,48315,12,48317,48343,12,48345,48371,12,48373,48399,12,48401,48427,12,48429,48455,12,48457,48483,12,48485,48511,12,48513,48539,12,48541,48567,12,48569,48595,12,48597,48623,12,48625,48651,12,48653,48679,12,48681,48707,12,48709,48735,12,48737,48763,12,48765,48791,12,48793,48819,12,48821,48847,12,48849,48875,12,48877,48903,12,48905,48931,12,48933,48959,12,48961,48987,12,48989,49015,12,49017,49043,12,49045,49071,12,49073,49099,12,49101,49127,12,49129,49155,12,49157,49183,12,49185,49211,12,49213,49239,12,49241,49267,12,49269,49295,12,49297,49323,12,49325,49351,12,49353,49379,12,49381,49407,12,49409,49435,12,49437,49463,12,49465,49491,12,49493,49519,12,49521,49547,12,49549,49575,12,49577,49603,12,49605,49631,12,49633,49659,12,49661,49687,12,49689,49715,12,49717,49743,12,49745,49771,12,49773,49799,12,49801,49827,12,49829,49855,12,49857,49883,12,49885,49911,12,49913,49939,12,49941,49967,12,49969,49995,12,49997,50023,12,50025,50051,12,50053,50079,12,50081,50107,12,50109,50135,12,50137,50163,12,50165,50191,12,50193,50219,12,50221,50247,12,50249,50275,12,50277,50303,12,50305,50331,12,50333,50359,12,50361,50387,12,50389,50415,12,50417,50443,12,50445,50471,12,50473,50499,12,50501,50527,12,50529,50555,12,50557,50583,12,50585,50611,12,50613,50639,12,50641,50667,12,50669,50695,12,50697,50723,12,50725,50751,12,50753,50779,12,50781,50807,12,50809,50835,12,50837,50863,12,50865,50891,12,50893,50919,12,50921,50947,12,50949,50975,12,50977,51003,12,51005,51031,12,51033,51059,12,51061,51087,12,51089,51115,12,51117,51143,12,51145,51171,12,51173,51199,12,51201,51227,12,51229,51255,12,51257,51283,12,51285,51311,12,51313,51339,12,51341,51367,12,51369,51395,12,51397,51423,12,51425,51451,12,51453,51479,12,51481,51507,12,51509,51535,12,51537,51563,12,51565,51591,12,51593,51619,12,51621,51647,12,51649,51675,12,51677,51703,12,51705,51731,12,51733,51759,12,51761,51787,12,51789,51815,12,51817,51843,12,51845,51871,12,51873,51899,12,51901,51927,12,51929,51955,12,51957,51983,12,51985,52011,12,52013,52039,12,52041,52067,12,52069,52095,12,52097,52123,12,52125,52151,12,52153,52179,12,52181,52207,12,52209,52235,12,52237,52263,12,52265,52291,12,52293,52319,12,52321,52347,12,52349,52375,12,52377,52403,12,52405,52431,12,52433,52459,12,52461,52487,12,52489,52515,12,52517,52543,12,52545,52571,12,52573,52599,12,52601,52627,12,52629,52655,12,52657,52683,12,52685,52711,12,52713,52739,12,52741,52767,12,52769,52795,12,52797,52823,12,52825,52851,12,52853,52879,12,52881,52907,12,52909,52935,12,52937,52963,12,52965,52991,12,52993,53019,12,53021,53047,12,53049,53075,12,53077,53103,12,53105,53131,12,53133,53159,12,53161,53187,12,53189,53215,12,53217,53243,12,53245,53271,12,53273,53299,12,53301,53327,12,53329,53355,12,53357,53383,12,53385,53411,12,53413,53439,12,53441,53467,12,53469,53495,12,53497,53523,12,53525,53551,12,53553,53579,12,53581,53607,12,53609,53635,12,53637,53663,12,53665,53691,12,53693,53719,12,53721,53747,12,53749,53775,12,53777,53803,12,53805,53831,12,53833,53859,12,53861,53887,12,53889,53915,12,53917,53943,12,53945,53971,12,53973,53999,12,54001,54027,12,54029,54055,12,54057,54083,12,54085,54111,12,54113,54139,12,54141,54167,12,54169,54195,12,54197,54223,12,54225,54251,12,54253,54279,12,54281,54307,12,54309,54335,12,54337,54363,12,54365,54391,12,54393,54419,12,54421,54447,12,54449,54475,12,54477,54503,12,54505,54531,12,54533,54559,12,54561,54587,12,54589,54615,12,54617,54643,12,54645,54671,12,54673,54699,12,54701,54727,12,54729,54755,12,54757,54783,12,54785,54811,12,54813,54839,12,54841,54867,12,54869,54895,12,54897,54923,12,54925,54951,12,54953,54979,12,54981,55007,12,55009,55035,12,55037,55063,12,55065,55091,12,55093,55119,12,55121,55147,12,55149,55175,12,55177,55203,12,55243,55291,10,65024,65039,5,65279,65279,4,65520,65528,4,66045,66045,5,66422,66426,5,68101,68102,5,68152,68154,5,68325,68326,5,69291,69292,5,69632,69632,7,69634,69634,7,69759,69761,5]" ) } static getInstance() { return ie._INSTANCE || (ie._INSTANCE = new ie), ie._INSTANCE } getGraphemeBreakType(e) { if (e < 32) return 10 === e ? 3 : 13 === e ? 2 : 4; if (e < 127) return 0; const t = this._data, i = t.length / 3; let n = 1; for (; n <= i;) if (e < t[3 * n]) n *= 2; else { if (!(e > t[3 * n + 1])) return t[3 * n + 2]; n = 2 * n + 1 } return 0 } } function ne(e, t) { if (0 === e) return 0; const i = function(e, t) { let i = P(t, e); for (e -= oe(i); re(i) || 65039 === i || 8419 === i;) { if (0 === e) return; i = P(t, e), e -= oe(i) } if (G(i)) { if (e >= 0) { const i = P(t, e); 8205 === i && (e -= oe(i)) } return e } }(e, t); return void 0 !== i ? i : e - oe(P(t, e)) } function oe(e) { return e >= 65536 ? 2 : 1 } function re(e) { return 127995 <= e && e <= 127999 } ie._INSTANCE = null }, 8401: (e, t, i) => { "use strict"; function n(e) { return Array.isArray(e) } function o(e) { return "string" == typeof e } function r(e) { return !("object" != typeof e || null === e || Array.isArray(e) || e instanceof RegExp || e instanceof Date) } function s(e) { return "number" == typeof e && !isNaN(e) } function a(e) { return !0 === e || !1 === e } function l(e) { return void 0 === e } function d(e) { return l(e) || null === e } function c(e, t) { if (!e) throw new Error(t ? `Unexpected type, expected '${t}'` : "Unexpected type") } function h(e) { if (d(e)) throw new Error( "Assertion Failed: argument is undefined or null"); return e } function u(e) { return "function" == typeof e } function g(e, t) { const i = Math.min(e.length, t.length); for (let n = 0; n < i; n++) p(e[n], t[n]) } function p(e, t) { if (o(t)) { if (typeof e !== t) throw new Error( `argument does not match constraint: typeof ${t}`) } else if (u(t)) { try { if (e instanceof t) return } catch (e) {} if (!d(e) && e.constructor === t) return; if (1 === t.length && !0 === t.call(void 0, e)) return; throw new Error( "argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true" ) } } function m(e) { const t = []; for (const i of function(e) { let t = [], i = Object.getPrototypeOf(e); for (; Object.prototype !== i;) t = t.concat(Object.getOwnPropertyNames( i)), i = Object.getPrototypeOf(i); return t }(e)) "function" == typeof e[i] && t.push(i); return t } function f(e, t) { const i = e => function() { const i = Array.prototype.slice.call(arguments, 0); return t(e, i) }; let n = {}; for (const t of e) n[t] = i(t); return n } function _(e) { return null === e ? void 0 : e } function b(e, t = "Unreachable") { throw new Error(t) } i.d(t, { kJ: () => n, HD: () => o, Kn: () => r, hj: () => s, jn: () => a, o8: () => l, Jp: () => d, p_: () => c, cW: () => h, mf: () => u, D8: () => g, $E: () => m, IU: () => f, f6: () => _, vE: () => b }) }, 5427: (e, t, i) => { "use strict"; function n(e) { return e < 0 ? 0 : e > 255 ? 255 : 0 | e } function o(e) { return e < 0 ? 0 : e > 4294967295 ? 4294967295 : 0 | e } i.d(t, { K: () => n, A: () => o }) }, 666: (e, t, i) => { "use strict"; i.d(t, { o: () => u, q: () => b }); var n = i(8721), o = i(1432); const r = /^\w[\w\d+.-]*$/, s = /^\//, a = /^\/\//; function l(e, t) { if (!e.scheme && t) throw new Error( `[UriError]: Scheme is missing: {scheme: "", authority: "${e.authority}", path: "${e.path}", query: "${e.query}", fragment: "${e.fragment}"}` ); if (e.scheme && !r.test(e.scheme)) throw new Error( "[UriError]: Scheme contains illegal characters."); if (e.path) if (e.authority) { if (!s.test(e.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 (a.test(e.path)) throw new Error( '[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")' ) } const d = "", c = "/", h = /^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/; class u { constructor(e, t, i, n, o, r = !1) { "object" == typeof e ? (this.scheme = e.scheme || d, this.authority = e.authority || d, this.path = e.path || d, this.query = e.query || d, this.fragment = e.fragment || d) : (this.scheme = function(e, t) { return e || t ? e : "file" }(e, r), this.authority = t || d, this.path = function(e, t) { switch (e) { case "https": case "http": case "file": t ? t[0] !== c && (t = c + t) : t = c } return t }(this.scheme, i || d), this.query = n || d, this.fragment = o || d, l(this, r)) } static isUri(e) { return e instanceof u || !!e && "string" == typeof e.authority && "string" == typeof e.fragment && "string" == typeof e.path && "string" == typeof e.query && "string" == typeof e.scheme && "string" == typeof e.fsPath && "function" == typeof e.with && "function" == typeof e.toString } get fsPath() { return b(this, !1) } with(e) { if (!e) return this; let { scheme: t, authority: i, path: n, query: o, fragment: r } = e; return void 0 === t ? t = this.scheme : null === t && (t = d), void 0 === i ? i = this.authority : null === i && (i = d), void 0 === n ? n = this.path : null === n && (n = d), void 0 === o ? o = this.query : null === o && (o = d), void 0 === r ? r = this.fragment : null === r && (r = d), t === this.scheme && i === this.authority && n === this.path && o === this.query && r === this.fragment ? this : new p(t, i, n, o, r) } static parse(e, t = !1) { const i = h.exec(e); return i ? new p(i[2] || d, y(i[4] || d), y(i[5] || d), y(i[7] || d), y(i[9] || d), t) : new p(d, d, d, d, d) } static file(e) { let t = d; if (o.ED && (e = e.replace(/\\/g, c)), e[0] === c && e[1] === c) { const i = e.indexOf(c, 2); - 1 === i ? (t = e.substring(2), e = c) : (t = e.substring(2, i), e = e.substring(i) || c) } return new p("file", t, e, d, d) } static from(e) { const t = new p(e.scheme, e.authority, e.path, e.query, e.fragment); return l(t, !0), t } static joinPath(e, ...t) { if (!e.path) throw new Error( "[UriError]: cannot call joinPath on URI without path"); let i; return i = o.ED && "file" === e.scheme ? u.file(n.Ku.join(b(e, !0), .. .t)).path : n.KR.join(e.path, ...t), e.with({ path: i }) } toString(e = !1) { return v(this, e) } toJSON() { return this } static revive(e) { if (e) { if (e instanceof u) return e; { const t = new p(e); return t._formatted = e.external, t._fsPath = e._sep === g ? e.fsPath : null, t } } return e } } const g = o.ED ? 1 : void 0; class p extends u { constructor() { super(...arguments), this._formatted = null, this._fsPath = null } get fsPath() { return this._fsPath || (this._fsPath = b(this, !1)), this._fsPath } toString(e = !1) { return e ? v(this, !0) : (this._formatted || (this._formatted = v(this, ! 1)), this._formatted) } toJSON() { const e = { $mid: 1 }; return this._fsPath && (e.fsPath = this._fsPath, e._sep = g), this._formatted && (e.external = this._formatted), this.path && (e.path = this.path), this.scheme && (e.scheme = this.scheme), this.authority && (e.authority = this.authority), this.query && (e.query = this.query), this.fragment && (e.fragment = this.fragment), e } } const m = { 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 f(e, t) { let i, n = -1; for (let o = 0; o < e.length; o++) { const r = e.charCodeAt(o); if (r >= 97 && r <= 122 || r >= 65 && r <= 90 || r >= 48 && r <= 57 || 45 === r || 46 === r || 95 === r || 126 === r || t && 47 === r) - 1 !== n && (i += encodeURIComponent(e.substring(n, o)), n = -1), void 0 !== i && (i += e.charAt(o)); else { void 0 === i && (i = e.substr(0, o)); const t = m[r]; void 0 !== t ? (-1 !== n && (i += encodeURIComponent(e.substring(n, o)), n = -1), i += t) : -1 === n && (n = o) } } return -1 !== n && (i += encodeURIComponent(e.substring(n))), void 0 !== i ? i : e } function _(e) { let t; for (let i = 0; i < e.length; i++) { const n = e.charCodeAt(i); 35 === n || 63 === n ? (void 0 === t && (t = e.substr(0, i)), t += m[n]) : void 0 !== t && (t += e[i]) } return void 0 !== t ? t : e } function b(e, t) { let i; return i = e.authority && e.path.length > 1 && "file" === e.scheme ? `//${e.authority}${e.path}` : 47 === e.path.charCodeAt(0) && (e.path.charCodeAt( 1) >= 65 && e.path.charCodeAt(1) <= 90 || e.path.charCodeAt(1) >= 97 && e.path.charCodeAt(1) <= 122) && 58 === e.path.charCodeAt(2) ? t ? e.path .substr(1) : e.path[1].toLowerCase() + e.path.substr(2) : e.path, o.ED && (i = i.replace(/\//g, "\\")), i } function v(e, t) { const i = t ? _ : f; let n = "", { scheme: o, authority: r, path: s, query: a, fragment: l } = e; if (o && (n += o, n += ":"), (r || "file" === o) && (n += c, n += c), r) { let e = r.indexOf("@"); if (-1 !== e) { const t = r.substr(0, e); r = r.substr(e + 1), e = t.indexOf(":"), -1 === e ? n += i(t, !1) : (n += i(t.substr(0, e), !1), n += ":", n += i(t.substr(e + 1), !1)), n += "@" } r = r.toLowerCase(), e = r.indexOf(":"), -1 === e ? n += i(r, !1) : (n += i(r.substr(0, e), !1), n += r.substr(e)) } if (s) { if (s.length >= 3 && 47 === s.charCodeAt(0) && 58 === s.charCodeAt(2)) { const e = s.charCodeAt(1); e >= 65 && e <= 90 && (s = `/${String.fromCharCode(e+32)}:${s.substr(3)}`) } else if (s.length >= 2 && 58 === s.charCodeAt(1)) { const e = s.charCodeAt(0); e >= 65 && e <= 90 && (s = `${String.fromCharCode(e+32)}:${s.substr(2)}`) } n += i(s, !0) } return a && (n += "?", n += i(a, !1)), l && (n += "#", n += t ? l : f(l, ! 1)), n } function w(e) { try { return decodeURIComponent(e) } catch (t) { return e.length > 3 ? e.substr(0, 3) + w(e.substr(3)) : e } } const C = /(%[0-9A-Za-z][0-9A-Za-z])+/g; function y(e) { return e.match(C) ? e.replace(C, (e => w(e))) : e } }, 7746: (e, t, i) => { "use strict"; i.d(t, { X5: () => n, Jq: () => o, jG: () => r }); const n = { ctrlCmd: !1, alt: !1 }; var o, r; ! function(e) { e[e.Blur = 1] = "Blur", e[e.Gesture = 2] = "Gesture", e[e.Other = 3] = "Other" }(o || (o = {})), function(e) { e[e.NONE = 0] = "NONE", e[e.FIRST = 1] = "FIRST", e[e.SECOND = 2] = "SECOND", e[e.LAST = 3] = "LAST" }(r || (r = {})) }, 5552: (e, t, i) => { "use strict"; i.d(t, { H: () => a }); var n = i(9587), o = {}, r = {}, s = function() { function e(e) { var t = this; this._languageId = e, this._loadingTriggered = !1, this._lazyLoadPromise = new Promise((function(e, i) { t._lazyLoadPromiseResolve = e, t._lazyLoadPromiseReject = i })) } return e.getOrCreate = function(t) { return r[t] || (r[t] = new e(t)), r[t] }, e.prototype.whenLoaded = function() { return this._lazyLoadPromise }, e.prototype.load = function() { var e = this; return this._loadingTriggered || (this._loadingTriggered = !0, o[this ._languageId].loader().then((function(t) { return e._lazyLoadPromiseResolve(t) }), (function(t) { return e._lazyLoadPromiseReject(t) }))), this._lazyLoadPromise }, e }(); function a(e) { var t = e.id; o[t] = e, n.Mj.register(e); var i = s.getOrCreate(t); n.Mj.setMonarchTokensProvider(t, i.whenLoaded().then((function(e) { return e.language }))), n.Mj.onLanguage(t, (function() { i.load().then((function(e) { n.Mj.setLanguageConfiguration(t, e.conf) })) })) } }, 6292: (e, t, i) => { "use strict"; i.r(t), (0, i(5552).H)({ id: "css", extensions: [".css"], aliases: ["CSS", "css"], mimetypes: ["text/css"], loader: function() { return i.e(75).then(i.bind(i, 2075)) } }) }, 9587: (e, t, i) => { "use strict"; i.d(t, { Mj: () => n.languages }); var n = i(158) }, 902: (e, t, i) => { "use strict"; i.r(t), (0, i(5552).H)({ 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: function() { return i.e(571).then(i.bind(i, 2571)) } }) }, 3763: (e, t, i) => { "use strict"; i.r(t), (0, i(5552).H)({ id: "javascript", extensions: [".js", ".es6", ".jsx", ".mjs"], firstLine: "^#!.*\\bnode", filenames: ["jakefile"], aliases: ["JavaScript", "javascript", "js"], mimetypes: ["text/javascript"], loader: function() { return i.e(134).then(i.bind(i, 5810)) } }) }, 7365: (e, t, i) => { "use strict"; i.r(t), (0, i(5552).H)({ id: "markdown", extensions: [".md", ".markdown", ".mdown", ".mkdn", ".mkd", ".mdwn", ".mdtxt", ".mdtext" ], aliases: ["Markdown", "markdown"], loader: function() { return i.e(954).then(i.bind(i, 2954)) } }) }, 9723: (e, t, i) => { "use strict"; i.r(t), (0, i(5552).H)({ id: "php", extensions: [".php", ".php4", ".php5", ".phtml", ".ctp"], aliases: ["PHP", "php"], mimetypes: ["application/x-php"], loader: function() { return i.e(835).then(i.bind(i, 7835)) } }) }, 5161: (e, t, i) => { "use strict"; i.r(t), (0, i(5552).H)({ id: "python", extensions: [".py", ".rpy", ".pyw", ".cpy", ".gyp", ".gypi"], aliases: ["Python", "py"], firstLine: "^#!/.*\\bpython[0-9.-]*\\b", loader: function() { return i.e(287).then(i.bind(i, 7287)) } }) }, 6628: (e, t, i) => { "use strict"; i.r(t), (0, i(5552).H)({ id: "shell", extensions: [".sh", ".bash"], aliases: ["Shell", "sh"], loader: function() { return i.e(670).then(i.bind(i, 8670)) } }) }, 8307: (e, t, i) => { "use strict"; i.r(t), (0, i(5552).H)({ id: "typescript", extensions: [".ts", ".tsx"], aliases: ["TypeScript", "ts", "typescript"], mimetypes: ["text/typescript"], loader: function() { return i.e(717).then(i.bind(i, 6717)) } }) }, 1905: (e, t, i) => { "use strict"; i.r(t), (0, i(5552).H)({ id: "xml", extensions: [".xml", ".dtd", ".ascx", ".csproj", ".config", ".wxi", ".wxl", ".wxs", ".xaml", ".svg", ".svgz", ".opf", ".xsl" ], firstLine: "(\\<\\?xml.*)|(\\ { "use strict"; i.r(t), (0, i(5552).H)({ id: "yaml", extensions: [".yaml", ".yml"], aliases: ["YAML", "yaml", "YML", "yml"], mimetypes: ["application/x-yaml", "text/x-yaml"], loader: function() { return i.e(585).then(i.bind(i, 3585)) } }) }, 9052: (e, t, i) => { "use strict"; i.d(t, { V: () => f, P: () => p }); var n = i(6268), o = i(4669), r = i(5976), s = i(1432); class a { constructor(e, t) { this.chr = e, this.type = t, this.width = 0 } fulfill(e) { this.width = e } } class l { constructor(e, t) { this._bareFontInfo = e, this._requests = t, this._container = null, this._testElements = null } read() { this._createDomElements(), document.body.appendChild(this._container), this._readFromDomElements(), document.body.removeChild(this._container), this._container = null, this._testElements = null } _createDomElements() { const e = document.createElement("div"); e.style.position = "absolute", e.style.top = "-50000px", e.style.width = "50000px"; const t = document.createElement("div"); t.style.fontFamily = this._bareFontInfo.getMassagedFontFamily(), t.style .fontWeight = this._bareFontInfo.fontWeight, t.style.fontSize = this._bareFontInfo .fontSize + "px", t.style.fontFeatureSettings = this._bareFontInfo.fontFeatureSettings, t.style.lineHeight = this._bareFontInfo.lineHeight + "px", t.style.letterSpacing = this._bareFontInfo.letterSpacing + "px", e.appendChild(t); const i = document.createElement("div"); i.style.fontFamily = this._bareFontInfo.getMassagedFontFamily(), i.style .fontWeight = "bold", i.style.fontSize = this._bareFontInfo.fontSize + "px", i.style.fontFeatureSettings = this._bareFontInfo.fontFeatureSettings, i.style.lineHeight = this._bareFontInfo.lineHeight + "px", i.style.letterSpacing = this._bareFontInfo.letterSpacing + "px", e.appendChild(i); const n = document.createElement("div"); n.style.fontFamily = this._bareFontInfo.getMassagedFontFamily(), n.style .fontWeight = this._bareFontInfo.fontWeight, n.style.fontSize = this._bareFontInfo .fontSize + "px", n.style.fontFeatureSettings = this._bareFontInfo.fontFeatureSettings, n.style.lineHeight = this._bareFontInfo.lineHeight + "px", n.style.letterSpacing = this._bareFontInfo.letterSpacing + "px", n.style.fontStyle = "italic", e.appendChild(n); const o = []; for (const e of this._requests) { let r; 0 === e.type && (r = t), 2 === e.type && (r = i), 1 === e.type && (r = n), r.appendChild(document.createElement("br")); const s = document.createElement("span"); l._render(s, e), r.appendChild(s), o.push(s) } this._container = e, this._testElements = o } static _render(e, t) { if (" " === t.chr) { let t = " "; for (let e = 0; e < 8; e++) t += t; e.innerText = t } else { let i = t.chr; for (let e = 0; e < 8; e++) i += i; e.textContent = i } } _readFromDomElements() { for (let e = 0, t = this._requests.length; e < t; e++) { const t = this._requests[e], i = this._testElements[e]; t.fulfill(i.offsetWidth / 256) } } } var d = i(4534), c = i(6345), h = i(4141), u = i(7374); class g { constructor() { this._keys = Object.create(null), this._values = Object.create(null) } has(e) { const t = e.getId(); return !!this._values[t] } get(e) { const t = e.getId(); return this._values[t] } put(e, t) { const i = e.getId(); this._keys[i] = e, this._values[i] = t } remove(e) { const t = e.getId(); delete this._keys[t], delete this._values[t] } getValues() { return Object.keys(this._keys).map((e => this._values[e])) } } function p() { m.INSTANCE.clearCache() } class m extends r.JT { constructor() { super(), this._onDidChange = this._register(new o.Q5), this.onDidChange = this._onDidChange.event, this._cache = new g, this._evictUntrustedReadingsTimeout = - 1 } dispose() { -1 !== this._evictUntrustedReadingsTimeout && (clearTimeout(this._evictUntrustedReadingsTimeout), this._evictUntrustedReadingsTimeout = -1), super.dispose() } clearCache() { this._cache = new g, this._onDidChange.fire() } _writeToCache(e, t) { this._cache.put(e, t), t.isTrusted || -1 !== this._evictUntrustedReadingsTimeout || (this._evictUntrustedReadingsTimeout = setTimeout((() => { this._evictUntrustedReadingsTimeout = -1, this._evictUntrustedReadings() }), 5e3)) } _evictUntrustedReadings() { const e = this._cache.getValues(); let t = !1; for (const i of e) i.isTrusted || (t = !0, this._cache.remove(i)); t && this._onDidChange.fire() } readConfiguration(e) { if (!this._cache.has(e)) { let t = m._actualReadConfiguration(e); (t.typicalHalfwidthCharacterWidth <= 2 || t.typicalFullwidthCharacterWidth <= 2 || t.spaceWidth <= 2 || t.maxDigitWidth <= 2) && (t = new u.pR({ zoomLevel: n.px(), pixelRatio: n.mX(), fontFamily: t.fontFamily, fontWeight: t.fontWeight, fontSize: t.fontSize, fontFeatureSettings: t.fontFeatureSettings, lineHeight: t.lineHeight, letterSpacing: t.letterSpacing, isMonospace: t.isMonospace, typicalHalfwidthCharacterWidth: Math.max(t.typicalHalfwidthCharacterWidth, 5), typicalFullwidthCharacterWidth: Math.max(t.typicalFullwidthCharacterWidth, 5), canUseHalfwidthRightwardsArrow: t.canUseHalfwidthRightwardsArrow, spaceWidth: Math.max(t.spaceWidth, 5), middotWidth: Math.max(t.middotWidth, 5), wsmiddotWidth: Math.max(t.wsmiddotWidth, 5), maxDigitWidth: Math.max(t.maxDigitWidth, 5) }, !1)), this._writeToCache(e, t) } return this._cache.get(e) } static createRequest(e, t, i, n) { const o = new a(e, t); return i.push(o), n && n.push(o), o } static _actualReadConfiguration(e) { const t = [], i = [], o = this.createRequest("n", 0, t, i), r = this.createRequest("m", 0, t, null), s = this.createRequest(" ", 0, t, i), a = this.createRequest("0", 0, t, i), d = this.createRequest("1", 0, t, i), c = this.createRequest("2", 0, t, i), g = this.createRequest("3", 0, t, i), p = this.createRequest("4", 0, t, i), m = this.createRequest("5", 0, t, i), f = this.createRequest("6", 0, t, i), _ = this.createRequest("7", 0, t, i), b = this.createRequest("8", 0, t, i), v = this.createRequest("9", 0, t, i), w = this.createRequest("→", 0, t, i), C = this.createRequest("→", 0, t, null), y = this.createRequest("·", 0, t, i), S = this.createRequest(String.fromCharCode(11825), 0, t, null); this.createRequest("|", 0, t, i), this.createRequest("/", 0, t, i), this.createRequest("-", 0, t, i), this.createRequest("_", 0, t, i), this.createRequest("i", 0, t, i), this.createRequest("l", 0, t, i), this.createRequest("m", 0, t, i), this.createRequest("|", 1, t, i), this.createRequest("_", 1, t, i), this.createRequest("i", 1, t, i), this.createRequest("l", 1, t, i), this.createRequest("m", 1, t, i), this.createRequest("n", 1, t, i), this.createRequest("|", 2, t, i), this.createRequest("_", 2, t, i), this.createRequest("i", 2, t, i), this.createRequest("l", 2, t, i), this.createRequest("m", 2, t, i), this.createRequest("n", 2, t, i), function(e, t) { new l(e, t).read() }(e, t); const x = Math.max(a.width, d.width, c.width, g.width, p.width, m.width, f.width, _.width, b.width, v.width); let k = e.fontFeatureSettings === h.n0.OFF; const L = i[0].width; for (let e = 1, t = i.length; k && e < t; e++) { const t = L - i[e].width; if (t < -.001 || t > .001) { k = !1; break } } let N = !0; k && C.width !== L && (N = !1), C.width > w.width && (N = !1); const D = n.WP() > 2e3; return new u.pR({ zoomLevel: n.px(), pixelRatio: n.mX(), fontFamily: e.fontFamily, fontWeight: e.fontWeight, fontSize: e.fontSize, fontFeatureSettings: e.fontFeatureSettings, lineHeight: e.lineHeight, letterSpacing: e.letterSpacing, isMonospace: k, typicalHalfwidthCharacterWidth: o.width, typicalFullwidthCharacterWidth: r.width, canUseHalfwidthRightwardsArrow: N, spaceWidth: s.width, middotWidth: y.width, wsmiddotWidth: S.width, maxDigitWidth: x }, D) } } m.INSTANCE = new m; class f extends c.fv { constructor(e, t, i = null, o) { super(e, t), this.accessibilityService = o, this._elementSizeObserver = this._register(new d.I(i, t.dimension, (() => this._recomputeOptions()))), this._register(m.INSTANCE.onDidChange((() => this._recomputeOptions()))), this._validatedOptions.get(10) && this._elementSizeObserver.startObserving(), this._register(n.fX((e => this._recomputeOptions()))), this._register( this.accessibilityService.onDidChangeScreenReaderOptimized((() => this._recomputeOptions()))), this._recomputeOptions() } static applyFontInfoSlow(e, t) { e.style.fontFamily = t.getMassagedFontFamily(), e.style.fontWeight = t.fontWeight, e.style.fontSize = t.fontSize + "px", e.style.fontFeatureSettings = t.fontFeatureSettings, e.style.lineHeight = t.lineHeight + "px", e.style .letterSpacing = t.letterSpacing + "px" } static applyFontInfo(e, t) { e.setFontFamily(t.getMassagedFontFamily()), e.setFontWeight(t.fontWeight), e.setFontSize(t.fontSize), e.setFontFeatureSettings(t.fontFeatureSettings), e.setLineHeight(t.lineHeight), e.setLetterSpacing(t.letterSpacing) } observeReferenceElement(e) { this._elementSizeObserver.observe(e) } updatePixelRatio() { this._recomputeOptions() } static _getExtraEditorClassName() { let e = ""; return n.G6 || n.MG || (e += "no-user-select "), n.G6 && (e += "no-minimap-shadow "), s.dz && (e += "mac "), e } _getEnvConfiguration() { return { extraEditorClassName: f._getExtraEditorClassName(), outerWidth: this._elementSizeObserver.getWidth(), outerHeight: this._elementSizeObserver.getHeight(), emptySelectionClipboard: n.Pf || n.vU, pixelRatio: n.mX(), zoomLevel: n.px(), accessibilitySupport: this.accessibilityService.isScreenReaderOptimized() ? 2 : this.accessibilityService.getAccessibilitySupport() } } readConfiguration(e) { return m.INSTANCE.readConfiguration(e) } } }, 4534: (e, t, i) => { "use strict"; i.d(t, { I: () => o }); var n = i(5976); class o extends n.JT { constructor(e, t, i) { super(), this.referenceDomElement = e, this.changeCallback = i, this.width = - 1, this.height = -1, this.resizeObserver = null, this.measureReferenceDomElementToken = - 1, this.measureReferenceDomElement(!1, t) } dispose() { this.stopObserving(), super.dispose() } getWidth() { return this.width } getHeight() { return this.height } startObserving() { "undefined" != typeof ResizeObserver ? !this.resizeObserver && this.referenceDomElement && (this.resizeObserver = new ResizeObserver((e => { e && e[0] && e[0].contentRect ? this.observe({ width: e[0].contentRect.width, height: e[0].contentRect.height }) : this.observe() })), this.resizeObserver.observe(this.referenceDomElement)) : -1 === this.measureReferenceDomElementToken && (this.measureReferenceDomElementToken = setInterval((() => this.observe()), 100)) } stopObserving() { this.resizeObserver && (this.resizeObserver.disconnect(), this.resizeObserver = null), -1 !== this.measureReferenceDomElementToken && ( clearInterval(this.measureReferenceDomElementToken), this.measureReferenceDomElementToken = - 1) } observe(e) { this.measureReferenceDomElement(!0, e) } measureReferenceDomElement(e, t) { let i = 0, n = 0; t ? (i = t.width, n = t.height) : this.referenceDomElement && (i = this.referenceDomElement.clientWidth, n = this.referenceDomElement.clientHeight ), i = Math.max(5, i), n = Math.max(5, n), this.width === i && this.height === n || (this.width = i, this.height = n, e && this.changeCallback()) } } }, 8728: (e, t, i) => { "use strict"; i.r(t), i.d(t, { CoreEditingCommands: () => N, CoreEditorCommand: () => y, CoreNavigationCommands: () => m, EditorScroll_: () => g, RevealLine_: () => p }); var n = i(3580), o = i(6268), r = i(8401), s = i(6346), a = i(6830), l = i(1640), d = i(3181), c = i(187), h = i(4314); class u { static columnSelect(e, t, i, n, o, r) { let s = Math.abs(o - i) + 1, a = i > o, l = n > r, u = n < r, g = []; for (let o = 0; o < s; o++) { let s = i + (a ? -o : o), p = d.io.columnFromVisibleColumn2(e, t, s, n), m = d.io.columnFromVisibleColumn2(e, t, s, r), f = d.io.visibleColumnFromColumn2(e, t, new c.L(s, p)), _ = d.io.visibleColumnFromColumn2(e, t, new c.L(s, m)); if (u) { if (f > r) continue; if (_ < n) continue } if (l) { if (_ > n) continue; if (f < r) continue } g.push(new d.rS(new h.e(s, p, s, p), 0, new c.L(s, m), 0)) } if (0 === g.length) for (let e = 0; e < s; e++) { const n = i + (a ? -e : e), o = t.getLineMaxColumn(n); g.push(new d.rS(new h.e(n, o, n, o), 0, new c.L(n, o), 0)) } return { viewStates: g, reversed: a, fromLineNumber: i, fromVisualColumn: n, toLineNumber: o, toVisualColumn: r } } static columnSelectLeft(e, t, i) { let n = i.toViewVisualColumn; return n > 0 && n--, u.columnSelect(e, t, i.fromViewLineNumber, i.fromViewVisualColumn, i.toViewLineNumber, n) } static columnSelectRight(e, t, i) { let n = 0; const o = Math.min(i.fromViewLineNumber, i.toViewLineNumber), r = Math.max(i.fromViewLineNumber, i.toViewLineNumber); for (let i = o; i <= r; i++) { const o = t.getLineMaxColumn(i), r = d.io.visibleColumnFromColumn2(e, t, new c.L(i, o)); n = Math.max(n, r) } let s = i.toViewVisualColumn; return s < n && s++, this.columnSelect(e, t, i.fromViewLineNumber, i.fromViewVisualColumn, i.toViewLineNumber, s) } static columnSelectUp(e, t, i, n) { const o = n ? e.pageSize : 1, r = Math.max(1, i.toViewLineNumber - o); return this.columnSelect(e, t, i.fromViewLineNumber, i.fromViewVisualColumn, r, i.toViewVisualColumn) } static columnSelectDown(e, t, i, n) { const o = n ? e.pageSize : 1, r = Math.min(t.getLineCount(), i.toViewLineNumber + o); return this.columnSelect(e, t, i.fromViewLineNumber, i.fromViewVisualColumn, r, i.toViewVisualColumn) } } var g, p, m, f = i(1380), _ = i(3814), b = i(3582), v = i(9102), w = i(8819), C = i(9989); class y extends a._l { runEditorCommand(e, t, i) { const n = t._getViewModel(); n && this.runCoreEditorCommand(n, i || {}) } }! function(e) { e.description = { 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\t\t\t\t\t* 'to': A mandatory direction value.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'up', 'down'\n\t\t\t\t\t\t```\n\t\t\t\t\t* 'by': Unit to move. Default is computed based on 'to' value.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'line', 'wrappedLine', 'page', 'halfPage'\n\t\t\t\t\t\t```\n\t\t\t\t\t* 'value': Number of units to move. Default is '1'.\n\t\t\t\t\t* 'revealCursor': If 'true' reveals the cursor if it is outside view port.\n\t\t\t\t", constraint: function(e) { if (!r.Kn(e)) return !1; const t = e; return !(!r.HD(t.to) || !r.o8(t.by) && !r.HD(t.by) || !r.o8(t.value) && !r.hj(t.value) || !r.o8(t.revealCursor) && !r.jn(t.revealCursor) ) }, schema: { type: "object", required: ["to"], properties: { to: { type: "string", enum: ["up", "down"] }, by: { type: "string", enum: ["line", "wrappedLine", "page", "halfPage"] }, value: { type: "number", default: 1 }, revealCursor: { type: "boolean" } } } }] }, e.RawDirection = { Up: "up", Down: "down" }, e.RawUnit = { Line: "line", WrappedLine: "wrappedLine", Page: "page", HalfPage: "halfPage" }, e.parse = function(t) { let i, n; switch (t.to) { case e.RawDirection.Up: i = 1; break; case e.RawDirection.Down: i = 2; break; default: return null } switch (t.by) { case e.RawUnit.Line: n = 1; break; case e.RawUnit.WrappedLine: n = 2; break; case e.RawUnit.Page: n = 3; break; case e.RawUnit.HalfPage: n = 4; break; default: n = 2 } return { direction: i, unit: n, value: Math.floor(t.value || 1), revealCursor: !!t.revealCursor, select: !!t.select } } }(g || (g = {})), function(e) { e.description = { 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\t\t\t\t\t* 'lineNumber': A mandatory line number value.\n\t\t\t\t\t* 'at': Logical position at which line has to be revealed.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'top', 'center', 'bottom'\n\t\t\t\t\t\t```\n\t\t\t\t", constraint: function(e) { if (!r.Kn(e)) return !1; const t = e; return !(!r.hj(t.lineNumber) && !r.HD(t.lineNumber) || !r.o8(t.at) && !r.HD(t.at)) }, schema: { type: "object", required: ["lineNumber"], properties: { lineNumber: { type: ["number", "string"] }, at: { type: "string", enum: ["top", "center", "bottom"] } } } }] }, e.RawAtArgument = { Top: "top", Center: "center", Bottom: "bottom" } }(p || (p = {})); class S { constructor(e) { e.addImplementation(1e4, "code-editor", ((e, t) => { const i = e.get(l.$).getFocusedCodeEditor(); return !(!i || !i.hasTextFocus()) && this._runEditorCommand(e, i, t) })), e.addImplementation(1e3, "generic-dom-input-textarea", ((e, t) => { const i = document.activeElement; return !!(i && ["input", "textarea"].indexOf(i.tagName.toLowerCase()) >= 0) && (this.runDOMCommand(), !0) })), e.addImplementation(0, "generic-dom", ((e, t) => { const i = e.get(l.$).getActiveCodeEditor(); return !!i && (i.focus(), this._runEditorCommand(e, i, t)) })) } _runEditorCommand(e, t, i) { return this.runEditorCommand(e, t, i) || !0 } }! function(e) { class t extends y { constructor(e) { super(e), this._inSelectionMode = e.inSelectionMode } runCoreEditorCommand(e, t) { e.model.pushStackElement(), e.setCursorStates(t.source, 3, [_.P.moveTo( e, e.getPrimaryCursorState(), this._inSelectionMode, t.position, t.viewPosition)]), e.revealPrimaryCursor(t.source, !0) } } e.MoveTo = (0, a.fK)(new t({ id: "_moveTo", inSelectionMode: !1, precondition: void 0 })), e.MoveToSelect = (0, a.fK)(new t({ id: "_moveToSelect", inSelectionMode: !0, precondition: void 0 })); class i extends y { runCoreEditorCommand(e, t) { e.model.pushStackElement(); const i = this._getColumnSelectResult(e, e.getPrimaryCursorState(), e .getCursorColumnSelectData(), t); e.setCursorStates(t.source, 3, i.viewStates.map((e => d.Vi.fromViewState( e)))), e.setCursorColumnSelectData({ isReal: !0, fromViewLineNumber: i.fromLineNumber, fromViewVisualColumn: i.fromVisualColumn, toViewLineNumber: i.toLineNumber, toViewVisualColumn: i.toVisualColumn }), i.reversed ? e.revealTopMostCursor(t.source) : e.revealBottomMostCursor( t.source) } } e.ColumnSelect = (0, a.fK)(new class extends i { constructor() { super({ id: "columnSelect", precondition: void 0 }) } _getColumnSelectResult(e, t, i, n) { const o = e.model.validatePosition(n.position), r = e.coordinatesConverter.validateViewPosition(new c.L(n.viewPosition .lineNumber, n.viewPosition.column), o); let s = n.doColumnSelect ? i.fromViewLineNumber : r.lineNumber, a = n.doColumnSelect ? i.fromViewVisualColumn : n.mouseColumn - 1; return u.columnSelect(e.cursorConfig, e, s, a, r.lineNumber, n.mouseColumn - 1) } }), e.CursorColumnSelectLeft = (0, a.fK)(new class extends i { constructor() { super({ id: "cursorColumnSelectLeft", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 3599, linux: { primary: 0 } } }) } _getColumnSelectResult(e, t, i, n) { return u.columnSelectLeft(e.cursorConfig, e, i) } }), e.CursorColumnSelectRight = (0, a.fK)(new class extends i { constructor() { super({ id: "cursorColumnSelectRight", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 3601, linux: { primary: 0 } } }) } _getColumnSelectResult(e, t, i, n) { return u.columnSelectRight(e.cursorConfig, e, i) } }); class r extends i { constructor(e) { super(e), this._isPaged = e.isPaged } _getColumnSelectResult(e, t, i, n) { return u.columnSelectUp(e.cursorConfig, e, i, this._isPaged) } } e.CursorColumnSelectUp = (0, a.fK)(new r({ isPaged: !1, id: "cursorColumnSelectUp", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 3600, linux: { primary: 0 } } })), e.CursorColumnSelectPageUp = (0, a.fK)(new r({ isPaged: !0, id: "cursorColumnSelectPageUp", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 3595, linux: { primary: 0 } } })); class l extends i { constructor(e) { super(e), this._isPaged = e.isPaged } _getColumnSelectResult(e, t, i, n) { return u.columnSelectDown(e.cursorConfig, e, i, this._isPaged) } } e.CursorColumnSelectDown = (0, a.fK)(new l({ isPaged: !1, id: "cursorColumnSelectDown", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 3602, linux: { primary: 0 } } })), e.CursorColumnSelectPageDown = (0, a.fK)(new l({ isPaged: !0, id: "cursorColumnSelectPageDown", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 3596, linux: { primary: 0 } } })); class m extends y { constructor() { super({ id: "cursorMove", precondition: void 0, description: _.N.description }) } runCoreEditorCommand(e, t) { const i = _.N.parse(t); i && this._runCursorMove(e, t.source, i) } _runCursorMove(e, t, i) { e.model.pushStackElement(), e.setCursorStates(t, 3, m._move(e, e.getCursorStates(), i)), e.revealPrimaryCursor(t, !0) } static _move(e, t, i) { const n = i.select, o = i.value; switch (i.direction) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: return _.P.simpleMove(e, t, i.direction, n, o, i.unit); case 11: case 13: case 12: case 14: return _.P.viewportMove(e, t, i.direction, n, o); default: return null } } } e.CursorMoveImpl = m, e.CursorMove = (0, a.fK)(new m); class f extends y { constructor(e) { super(e), this._staticArgs = e.args } runCoreEditorCommand(e, t) { let i = this._staticArgs; - 1 === this._staticArgs.value && (i = { direction: this._staticArgs.direction, unit: this._staticArgs.unit, select: this._staticArgs.select, value: e.cursorConfig.pageSize }), e.model.pushStackElement(), e.setCursorStates(t.source, 3, _.P.simpleMove( e, e.getCursorStates(), i.direction, i.select, i.value, i.unit)), e .revealPrimaryCursor(t.source, !0) } } e.CursorLeft = (0, a.fK)(new f({ args: { direction: 0, unit: 0, select: !1, value: 1 }, id: "cursorLeft", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 15, mac: { primary: 15, secondary: [288] } } })), e.CursorLeftSelect = (0, a.fK)(new f({ args: { direction: 0, unit: 0, select: !0, value: 1 }, id: "cursorLeftSelect", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 1039 } })), e.CursorRight = (0, a.fK)(new f({ args: { direction: 1, unit: 0, select: !1, value: 1 }, id: "cursorRight", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 17, mac: { primary: 17, secondary: [292] } } })), e.CursorRightSelect = (0, a.fK)(new f({ args: { direction: 1, unit: 0, select: !0, value: 1 }, id: "cursorRightSelect", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 1041 } })), e.CursorUp = (0, a.fK)(new f({ args: { direction: 2, unit: 2, select: !1, value: 1 }, id: "cursorUp", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 16, mac: { primary: 16, secondary: [302] } } })), e.CursorUpSelect = (0, a.fK)(new f({ args: { direction: 2, unit: 2, select: !0, value: 1 }, id: "cursorUpSelect", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 1040, secondary: [3088], mac: { primary: 1040 }, linux: { primary: 1040 } } })), e.CursorPageUp = (0, a.fK)(new f({ args: { direction: 2, unit: 2, select: !1, value: -1 }, id: "cursorPageUp", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 11 } })), e.CursorPageUpSelect = (0, a.fK)(new f({ args: { direction: 2, unit: 2, select: !0, value: -1 }, id: "cursorPageUpSelect", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 1035 } })), e.CursorDown = (0, a.fK)(new f({ args: { direction: 3, unit: 2, select: !1, value: 1 }, id: "cursorDown", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 18, mac: { primary: 18, secondary: [300] } } })), e.CursorDownSelect = (0, a.fK)(new f({ args: { direction: 3, unit: 2, select: !0, value: 1 }, id: "cursorDownSelect", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 1042, secondary: [3090], mac: { primary: 1042 }, linux: { primary: 1042 } } })), e.CursorPageDown = (0, a.fK)(new f({ args: { direction: 3, unit: 2, select: !1, value: -1 }, id: "cursorPageDown", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 12 } })), e.CursorPageDownSelect = (0, a.fK)(new f({ args: { direction: 3, unit: 2, select: !0, value: -1 }, id: "cursorPageDownSelect", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 1036 } })), e.CreateCursor = (0, a.fK)(new class extends y { constructor() { super({ id: "createCursor", precondition: void 0 }) } runCoreEditorCommand(e, t) { let i; i = t.wholeLine ? _.P.line(e, e.getPrimaryCursorState(), !1, t.position, t.viewPosition) : _.P.moveTo(e, e.getPrimaryCursorState(), !1, t.position, t.viewPosition); const n = e.getCursorStates(); if (n.length > 1) { const o = i.modelState ? i.modelState.position : null, r = i.viewState ? i.viewState.position : null; for (let i = 0, s = n.length; i < s; i++) { const s = n[i]; if ((!o || s.modelState.selection.containsPosition(o)) && (!r || s.viewState.selection.containsPosition(r))) return n.splice(i, 1), e.model.pushStackElement(), void e.setCursorStates(t.source, 3, n) } } n.push(i), e.model.pushStackElement(), e.setCursorStates(t.source, 3, n) } }), e.LastCursorMoveToSelect = (0, a.fK)(new class extends y { constructor() { super({ id: "_lastCursorMoveToSelect", precondition: void 0 }) } runCoreEditorCommand(e, t) { const i = e.getLastAddedCursorIndex(), n = e.getCursorStates(), o = n.slice(0); o[i] = _.P.moveTo(e, n[i], !0, t.position, t.viewPosition), e.model .pushStackElement(), e.setCursorStates(t.source, 3, o) } }); class b extends y { constructor(e) { super(e), this._inSelectionMode = e.inSelectionMode } runCoreEditorCommand(e, t) { e.model.pushStackElement(), e.setCursorStates(t.source, 3, _.P.moveToBeginningOfLine( e, e.getCursorStates(), this._inSelectionMode)), e.revealPrimaryCursor( t.source, !0) } } e.CursorHome = (0, a.fK)(new b({ inSelectionMode: !1, id: "cursorHome", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 14, mac: { primary: 14, secondary: [2063] } } })), e.CursorHomeSelect = (0, a.fK)(new b({ inSelectionMode: !0, id: "cursorHomeSelect", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 1038, mac: { primary: 1038, secondary: [3087] } } })); class w extends y { constructor(e) { super(e), this._inSelectionMode = e.inSelectionMode } runCoreEditorCommand(e, t) { e.model.pushStackElement(), e.setCursorStates(t.source, 3, this._exec( e.getCursorStates())), e.revealPrimaryCursor(t.source, !0) } _exec(e) { const t = []; for (let i = 0, n = e.length; i < n; i++) { const n = e[i], o = n.modelState.position.lineNumber; t[i] = d.Vi.fromModelState(n.modelState.move(this._inSelectionMode, o, 1, 0)) } return t } } e.CursorLineStart = (0, a.fK)(new w({ inSelectionMode: !1, id: "cursorLineStart", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 0, mac: { primary: 287 } } })), e.CursorLineStartSelect = (0, a.fK)(new w({ inSelectionMode: !0, id: "cursorLineStartSelect", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 0, mac: { primary: 1311 } } })); class C extends y { constructor(e) { super(e), this._inSelectionMode = e.inSelectionMode } runCoreEditorCommand(e, t) { e.model.pushStackElement(), e.setCursorStates(t.source, 3, _.P.moveToEndOfLine( e, e.getCursorStates(), this._inSelectionMode, t.sticky || !1)), e.revealPrimaryCursor( t.source, !0) } } e.CursorEnd = (0, a.fK)(new C({ inSelectionMode: !1, id: "cursorEnd", precondition: void 0, kbOpts: { args: { sticky: !1 }, weight: 0, kbExpr: v.u.textInputFocus, primary: 13, mac: { primary: 13, secondary: [2065] } }, description: { description: "Go to End", args: [{ name: "args", schema: { type: "object", properties: { sticky: { description: n.N("stickydesc", "Stick to the end even when going to longer lines"), type: "boolean", default: !1 } } } }] } })), e.CursorEndSelect = (0, a.fK)(new C({ inSelectionMode: !0, id: "cursorEndSelect", precondition: void 0, kbOpts: { args: { sticky: !1 }, weight: 0, kbExpr: v.u.textInputFocus, primary: 1037, mac: { primary: 1037, secondary: [3089] } }, description: { description: "Select to End", args: [{ name: "args", schema: { type: "object", properties: { sticky: { description: n.N("stickydesc", "Stick to the end even when going to longer lines"), type: "boolean", default: !1 } } } }] } })); class x extends y { constructor(e) { super(e), this._inSelectionMode = e.inSelectionMode } runCoreEditorCommand(e, t) { e.model.pushStackElement(), e.setCursorStates(t.source, 3, this._exec( e, e.getCursorStates())), e.revealPrimaryCursor(t.source, !0) } _exec(e, t) { const i = []; for (let n = 0, o = t.length; n < o; n++) { const o = t[n], r = o.modelState.position.lineNumber, s = e.model.getLineMaxColumn(r); i[n] = d.Vi.fromModelState(o.modelState.move(this._inSelectionMode, r, s, 0)) } return i } } e.CursorLineEnd = (0, a.fK)(new x({ inSelectionMode: !1, id: "cursorLineEnd", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 0, mac: { primary: 291 } } })), e.CursorLineEndSelect = (0, a.fK)(new x({ inSelectionMode: !0, id: "cursorLineEndSelect", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 0, mac: { primary: 1315 } } })); class k extends y { constructor(e) { super(e), this._inSelectionMode = e.inSelectionMode } runCoreEditorCommand(e, t) { e.model.pushStackElement(), e.setCursorStates(t.source, 3, _.P.moveToBeginningOfBuffer( e, e.getCursorStates(), this._inSelectionMode)), e.revealPrimaryCursor( t.source, !0) } } e.CursorTop = (0, a.fK)(new k({ inSelectionMode: !1, id: "cursorTop", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 2062, mac: { primary: 2064 } } })), e.CursorTopSelect = (0, a.fK)(new k({ inSelectionMode: !0, id: "cursorTopSelect", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 3086, mac: { primary: 3088 } } })); class L extends y { constructor(e) { super(e), this._inSelectionMode = e.inSelectionMode } runCoreEditorCommand(e, t) { e.model.pushStackElement(), e.setCursorStates(t.source, 3, _.P.moveToEndOfBuffer( e, e.getCursorStates(), this._inSelectionMode)), e.revealPrimaryCursor( t.source, !0) } } e.CursorBottom = (0, a.fK)(new L({ inSelectionMode: !1, id: "cursorBottom", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 2061, mac: { primary: 2066 } } })), e.CursorBottomSelect = (0, a.fK)(new L({ inSelectionMode: !0, id: "cursorBottomSelect", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 3085, mac: { primary: 3090 } } })); class N extends y { constructor() { super({ id: "editorScroll", precondition: void 0, description: g.description }) } runCoreEditorCommand(e, t) { const i = g.parse(t); i && this._runEditorScroll(e, t.source, i) } _runEditorScroll(e, t, i) { const n = this._computeDesiredScrollTop(e, i); if (i.revealCursor) { const o = e.getCompletelyVisibleViewRangeAtScrollTop(n); e.setCursorStates(t, 3, [_.P.findPositionInViewportIfOutside(e, e.getPrimaryCursorState(), o, i.select)]) } e.setScrollTop(n, 0) } _computeDesiredScrollTop(e, t) { if (1 === t.unit) { const i = e.getCompletelyVisibleViewRange(), n = e.coordinatesConverter.convertViewRangeToModelRange(i); let o; o = 1 === t.direction ? Math.max(1, n.startLineNumber - t.value) : Math.min(e.model.getLineCount(), n.startLineNumber + t.value); const r = e.coordinatesConverter.convertModelPositionToViewPosition( new c.L(o, 1)); return e.getVerticalOffsetForLineNumber(r.lineNumber) } let i; i = 3 === t.unit ? e.cursorConfig.pageSize * t.value : 4 === t.unit ? Math.round(e.cursorConfig.pageSize / 2) * t.value : t.value; const n = (1 === t.direction ? -1 : 1) * i; return e.getScrollTop() + n * e.cursorConfig.lineHeight } } e.EditorScrollImpl = N, e.EditorScroll = (0, a.fK)(new N), e.ScrollLineUp = (0, a.fK)(new class extends y { constructor() { super({ id: "scrollLineUp", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 2064, mac: { primary: 267 } } }) } runCoreEditorCommand(t, i) { e.EditorScroll._runEditorScroll(t, i.source, { direction: 1, unit: 2, value: 1, revealCursor: !1, select: !1 }) } }), e.ScrollPageUp = (0, a.fK)(new class extends y { constructor() { super({ id: "scrollPageUp", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 2059, win: { primary: 523 }, linux: { primary: 523 } } }) } runCoreEditorCommand(t, i) { e.EditorScroll._runEditorScroll(t, i.source, { direction: 1, unit: 3, value: 1, revealCursor: !1, select: !1 }) } }), e.ScrollLineDown = (0, a.fK)(new class extends y { constructor() { super({ id: "scrollLineDown", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 2066, mac: { primary: 268 } } }) } runCoreEditorCommand(t, i) { e.EditorScroll._runEditorScroll(t, i.source, { direction: 2, unit: 2, value: 1, revealCursor: !1, select: !1 }) } }), e.ScrollPageDown = (0, a.fK)(new class extends y { constructor() { super({ id: "scrollPageDown", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 2060, win: { primary: 524 }, linux: { primary: 524 } } }) } runCoreEditorCommand(t, i) { e.EditorScroll._runEditorScroll(t, i.source, { direction: 2, unit: 3, value: 1, revealCursor: !1, select: !1 }) } }); class D extends y { constructor(e) { super(e), this._inSelectionMode = e.inSelectionMode } runCoreEditorCommand(e, t) { e.model.pushStackElement(), e.setCursorStates(t.source, 3, [_.P.word( e, e.getPrimaryCursorState(), this._inSelectionMode, t.position)]), e.revealPrimaryCursor(t.source, !0) } } e.WordSelect = (0, a.fK)(new D({ inSelectionMode: !1, id: "_wordSelect", precondition: void 0 })), e.WordSelectDrag = (0, a.fK)(new D({ inSelectionMode: !0, id: "_wordSelectDrag", precondition: void 0 })), e.LastCursorWordSelect = (0, a.fK)(new class extends y { constructor() { super({ id: "lastCursorWordSelect", precondition: void 0 }) } runCoreEditorCommand(e, t) { const i = e.getLastAddedCursorIndex(), n = e.getCursorStates(), o = n.slice(0), r = n[i]; o[i] = _.P.word(e, r, r.modelState.hasSelection(), t.position), e.model .pushStackElement(), e.setCursorStates(t.source, 3, o) } }); class E extends y { constructor(e) { super(e), this._inSelectionMode = e.inSelectionMode } runCoreEditorCommand(e, t) { e.model.pushStackElement(), e.setCursorStates(t.source, 3, [_.P.line( e, e.getPrimaryCursorState(), this._inSelectionMode, t.position, t.viewPosition)]), e.revealPrimaryCursor(t.source, !1) } } e.LineSelect = (0, a.fK)(new E({ inSelectionMode: !1, id: "_lineSelect", precondition: void 0 })), e.LineSelectDrag = (0, a.fK)(new E({ inSelectionMode: !0, id: "_lineSelectDrag", precondition: void 0 })); class I extends y { constructor(e) { super(e), this._inSelectionMode = e.inSelectionMode } runCoreEditorCommand(e, t) { const i = e.getLastAddedCursorIndex(), n = e.getCursorStates(), o = n.slice(0); o[i] = _.P.line(e, n[i], this._inSelectionMode, t.position, t.viewPosition), e.model.pushStackElement(), e.setCursorStates(t.source, 3, o) } } e.LastCursorLineSelect = (0, a.fK)(new I({ inSelectionMode: !1, id: "lastCursorLineSelect", precondition: void 0 })), e.LastCursorLineSelectDrag = (0, a.fK)(new I({ inSelectionMode: !0, id: "lastCursorLineSelectDrag", precondition: void 0 })), e.ExpandLineSelection = (0, a.fK)(new class extends y { constructor() { super({ id: "expandLineSelection", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 2090 } }) } runCoreEditorCommand(e, t) { e.model.pushStackElement(), e.setCursorStates(t.source, 3, _.P.expandLineSelection( e, e.getCursorStates())), e.revealPrimaryCursor(t.source, !0) } }), e.CancelSelection = (0, a.fK)(new class extends y { constructor() { super({ id: "cancelSelection", precondition: v.u.hasNonEmptySelection, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 9, secondary: [1033] } }) } runCoreEditorCommand(e, t) { e.model.pushStackElement(), e.setCursorStates(t.source, 3, [_.P.cancelSelection( e, e.getPrimaryCursorState())]), e.revealPrimaryCursor(t.source, ! 0) } }), e.RemoveSecondaryCursors = (0, a.fK)(new class extends y { constructor() { super({ id: "removeSecondaryCursors", precondition: v.u.hasMultipleSelections, kbOpts: { weight: 1, kbExpr: v.u.textInputFocus, primary: 9, secondary: [1033] } }) } runCoreEditorCommand(e, t) { e.model.pushStackElement(), e.setCursorStates(t.source, 3, [e.getPrimaryCursorState()]), e.revealPrimaryCursor(t.source, !0), (0, s.i7)(n.N("removedCursor", "Removed secondary cursors")) } }), e.RevealLine = (0, a.fK)(new class extends y { constructor() { super({ id: "revealLine", precondition: void 0, description: p.description }) } runCoreEditorCommand(e, t) { const i = t, n = i.lineNumber || 0; let o = "number" == typeof n ? n + 1 : parseInt(n) + 1; o < 1 && (o = 1); const r = e.model.getLineCount(); o > r && (o = r); const s = new h.e(o, 1, o, e.model.getLineMaxColumn(o)); let a = 0; if (i.at) switch (i.at) { case p.RawAtArgument.Top: a = 3; break; case p.RawAtArgument.Center: a = 1; break; case p.RawAtArgument.Bottom: a = 4 } const l = e.coordinatesConverter.convertModelRangeToViewRange(s); e.revealRange(t.source, !1, l, a, 0) } }), e.SelectAll = new class extends S { constructor() { super(a.Sq) } runDOMCommand() { o.vU && (document.activeElement.focus(), document.activeElement.select()), document.execCommand("selectAll") } runEditorCommand(e, t, i) { const n = t._getViewModel(); n && this.runCoreEditorCommand(n, i) } runCoreEditorCommand(e, t) { e.model.pushStackElement(), e.setCursorStates("keyboard", 3, [_.P.selectAll( e, e.getPrimaryCursorState())]) } }, e.SetSelection = (0, a.fK)(new class extends y { constructor() { super({ id: "setSelection", precondition: void 0 }) } runCoreEditorCommand(e, t) { e.model.pushStackElement(), e.setCursorStates(t.source, 3, [d.Vi.fromModelSelection( t.selection)]) } }) }(m || (m = {})); const x = w.Ao.and(v.u.textInputFocus, v.u.columnSelection); function k(e, t) { C.W.registerKeybindingRule({ id: e, primary: t, when: x, weight: 1 }) } function L(e) { return e.register(), e } var N; k(m.CursorColumnSelectLeft.id, 1039), k(m.CursorColumnSelectRight.id, 1041), k(m.CursorColumnSelectUp.id, 1040), k(m.CursorColumnSelectPageUp .id, 1035), k(m.CursorColumnSelectDown.id, 1042), k(m.CursorColumnSelectPageDown .id, 1036), function(e) { class t extends a._l { runEditorCommand(e, t, i) { const n = t._getViewModel(); n && this.runCoreEditingCommand(t, n, i || {}) } } e.CoreEditingCommand = t, e.LineBreakInsert = (0, a.fK)(new class extends t { constructor() { super({ id: "lineBreakInsert", precondition: v.u.writable, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 0, mac: { primary: 301 } } }) } runCoreEditingCommand(e, t, i) { e.pushUndoStop(), e.executeCommands(this.id, b.u.lineBreakInsert(t .cursorConfig, t.model, t.getCursorStates().map((e => e.modelState .selection)))) } }), e.Outdent = (0, a.fK)(new class extends t { constructor() { super({ id: "outdent", precondition: v.u.writable, kbOpts: { weight: 0, kbExpr: w.Ao.and(v.u.editorTextFocus, v.u.tabDoesNotMoveFocus), primary: 1026 } }) } runCoreEditingCommand(e, t, i) { e.pushUndoStop(), e.executeCommands(this.id, b.u.outdent(t.cursorConfig, t.model, t.getCursorStates().map((e => e.modelState.selection)) )), e.pushUndoStop() } }), e.Tab = (0, a.fK)(new class extends t { constructor() { super({ id: "tab", precondition: v.u.writable, kbOpts: { weight: 0, kbExpr: w.Ao.and(v.u.editorTextFocus, v.u.tabDoesNotMoveFocus), primary: 2 } }) } runCoreEditingCommand(e, t, i) { e.pushUndoStop(), e.executeCommands(this.id, b.u.tab(t.cursorConfig, t.model, t.getCursorStates().map((e => e.modelState.selection)) )), e.pushUndoStop() } }), e.DeleteLeft = (0, a.fK)(new class extends t { constructor() { super({ id: "deleteLeft", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 1, secondary: [1025], mac: { primary: 1, secondary: [1025, 294, 257] } } }) } runCoreEditingCommand(e, t, i) { const [n, o] = f.A.deleteLeft(t.getPrevEditOperationType(), t.cursorConfig, t.model, t.getCursorStates().map((e => e.modelState.selection)), t.getCursorAutoClosedCharacters()); n && e.pushUndoStop(), e.executeCommands(this.id, o), t.setPrevEditOperationType( 2) } }), e.DeleteRight = (0, a.fK)(new class extends t { constructor() { super({ id: "deleteRight", precondition: void 0, kbOpts: { weight: 0, kbExpr: v.u.textInputFocus, primary: 20, mac: { primary: 20, secondary: [290, 276] } } }) } runCoreEditingCommand(e, t, i) { const [n, o] = f.A.deleteRight(t.getPrevEditOperationType(), t.cursorConfig, t.model, t.getCursorStates().map((e => e.modelState.selection))); n && e.pushUndoStop(), e.executeCommands(this.id, o), t.setPrevEditOperationType( 3) } }), e.Undo = new class extends S { constructor() { super(a.n_) } runDOMCommand() { document.execCommand("undo") } runEditorCommand(e, t, i) { if (t.hasModel() && !0 !== t.getOption(80)) return t.getModel().undo() } }, e.Redo = new class extends S { constructor() { super(a.kz) } runDOMCommand() { document.execCommand("redo") } runEditorCommand(e, t, i) { if (t.hasModel() && !0 !== t.getOption(80)) return t.getModel().redo() } } }(N || (N = {})); class D extends a.mY { constructor(e, t, i) { super({ id: e, precondition: void 0, description: i }), this._handlerId = t } runCommand(e, t) { const i = e.get(l.$).getFocusedCodeEditor(); i && i.trigger("keyboard", this._handlerId, t) } } function E(e, t) { L(new D("default:" + e, e)), L(new D(e, e, t)) } E("type", { description: "Type", args: [{ name: "args", schema: { type: "object", required: ["text"], properties: { text: { type: "string" } } } }] }), E("replacePreviousChar"), E("compositionType"), E("compositionStart"), E("compositionEnd"), E("paste"), E("cut") }, 5715: (e, t, i) => { "use strict"; i.d(t, { pd: () => n, RA: () => m, Nl: () => f, Fz: () => _ }); var n, o = i(6268), r = i(5321), s = i(5393), a = i(4669), l = i(5976), d = i(1170), c = i(1432), h = i(7295), u = i(5887), g = i(187), p = i(3860); ! function(e) { e.Tap = "-monaco-textarea-synthetic-tap" }(n || (n = {})); const m = { forceCopyWithSyntaxHighlighting: !1 }; class f { constructor() { this._lastState = null } set(e, t) { this._lastState = { lastCopiedValue: e, data: t } } get(e) { return this._lastState && this._lastState.lastCopiedValue === e ? this ._lastState.data : (this._lastState = null, null) } } f.INSTANCE = new f; class _ extends l.JT { constructor(e, t) { super(), this.textArea = t, this._onFocus = this._register(new a.Q5), this.onFocus = this._onFocus.event, this._onBlur = this._register( new a.Q5), this.onBlur = this._onBlur.event, this._onKeyDown = this ._register(new a.Q5), this.onKeyDown = this._onKeyDown.event, this._onKeyUp = this._register(new a.Q5), this.onKeyUp = this._onKeyUp.event, this._onCut = this._register(new a.Q5), this.onCut = this._onCut.event, this._onPaste = this._register(new a.Q5), this.onPaste = this._onPaste.event, this._onType = this._register(new a.Q5), this.onType = this._onType.event, this._onCompositionStart = this._register(new a.Q5), this.onCompositionStart = this._onCompositionStart .event, this._onCompositionUpdate = this._register(new a.Q5), this.onCompositionUpdate = this._onCompositionUpdate.event, this._onCompositionEnd = this._register( new a.Q5), this.onCompositionEnd = this._onCompositionEnd.event, this._onSelectionChangeRequest = this._register(new a.Q5), this.onSelectionChangeRequest = this._onSelectionChangeRequest.event, this._host = e, this._textArea = this._register(new v(t)), this._asyncTriggerCut = this._register(new s .pY((() => this._onCut.fire()), 0)), this._asyncFocusGainWriteScreenReaderContent = this._register(new s.pY((() => this.writeScreenReaderContent( "asyncFocusGain")), 0)), this._textAreaState = u.un.EMPTY, this._selectionChangeListener = null, this.writeScreenReaderContent("ctor"), this._hasFocus = !1, this._isDoingComposition = !1, this._nextCommand = 0; let i = null; this._register(r.mu(t.domNode, "keydown", (e => { (109 === e.keyCode || this._isDoingComposition && 1 === e.keyCode) && e.stopPropagation(), e.equals(9) && e.preventDefault(), i = e, this._onKeyDown.fire(e) }))), this._register(r.mu(t.domNode, "keyup", (e => { this._onKeyUp.fire(e) }))), this._register(r.nm(t.domNode, "compositionstart", (e => { if (u.al && console.log("[compositionstart]", e), !this._isDoingComposition) { if (this._isDoingComposition = !0, c.dz && this._textAreaState.selectionStart === this._textAreaState.selectionEnd && this._textAreaState.selectionStart > 0 && this._textAreaState.value.substr(this._textAreaState.selectionStart - 1, 1) === e.data && (i && i.equals(109) && ("ArrowRight" === i.code || "ArrowLeft" === i.code) || o.vU)) return u.al && console.log( "[compositionstart] Handling long press case on macOS + arrow key or Firefox", e), this._textAreaState = new u.un(this._textAreaState.value, this._textAreaState.selectionStart - 1, this._textAreaState.selectionEnd, this._textAreaState.selectionStartPosition ? new g.L(this._textAreaState .selectionStartPosition.lineNumber, this._textAreaState.selectionStartPosition .column - 1) : null, this._textAreaState.selectionEndPosition ), void this._onCompositionStart.fire({ revealDeltaColumns: -1 }); o.Dt ? this._onCompositionStart.fire({ revealDeltaColumns: -this._textAreaState.selectionStart }) : (this._setAndWriteTextAreaState("compositionstart", u.un.EMPTY), this._onCompositionStart.fire({ revealDeltaColumns: 0 })) } }))); const l = e => { const t = this._textAreaState, i = u.un.readFromTextArea(this._textArea); return [i, u.un.deduceInput(t, i, e)] }, d = () => { const e = this._textAreaState, t = u.un.readFromTextArea(this._textArea); return [t, u.un.deduceAndroidCompositionInput(e, t)] }, p = e => { const t = this._textAreaState, i = u.un.selectedText(e); return [i, { text: i.value, replacePrevCharCnt: t.selectionEnd - t.selectionStart, replaceNextCharCnt: 0, positionDelta: 0 }] }; this._register(r.nm(t.domNode, "compositionupdate", (e => { if (u.al && console.log("[compositionupdate]", e), o.Dt) { const [t, i] = d(); return this._textAreaState = t, this._onType.fire(i), void this ._onCompositionUpdate.fire(e) } const [t, i] = p(e.data || ""); this._textAreaState = t, this._onType.fire(i), this._onCompositionUpdate .fire(e) }))), this._register(r.nm(t.domNode, "compositionend", (e => { if (u.al && console.log("[compositionend]", e), !this._isDoingComposition) return; if (this._isDoingComposition = !1, o.Dt) { const [e, t] = d(); return this._textAreaState = e, this._onType.fire(t), void this ._onCompositionEnd.fire() } const [t, i] = p(e.data || ""); this._textAreaState = t, this._onType.fire(i), (o.i7 || o.vU) && (this._textAreaState = u.un.readFromTextArea(this._textArea)), this._onCompositionEnd.fire() }))), this._register(r.nm(t.domNode, "input", (() => { if (this._textArea.setIgnoreSelectionChangeTime( "received input event"), this._isDoingComposition) return; const [e, t] = l(c.dz); 0 === t.replacePrevCharCnt && 1 === t.text.length && h.ZG(t.text .charCodeAt(0)) || (this._textAreaState = e, 0 === this._nextCommand ? "" === t.text && 0 === t.replacePrevCharCnt || this._onType.fire( t) : ("" === t.text && 0 === t.replacePrevCharCnt || this._firePaste( t.text, null), this._nextCommand = 0)) }))), this._register(r.nm(t.domNode, "cut", (e => { this._textArea.setIgnoreSelectionChangeTime("received cut event"), this._ensureClipboardGetsEditorSelection(e), this._asyncTriggerCut .schedule() }))), this._register(r.nm(t.domNode, "copy", (e => { this._ensureClipboardGetsEditorSelection(e) }))), this._register(r.nm(t.domNode, "paste", (e => { if (this._textArea.setIgnoreSelectionChangeTime( "received paste event"), b.canUseTextData(e)) { const [t, i] = b.getTextData(e); "" !== t && this._firePaste(t, i) } else this._textArea.getSelectionStart() !== this._textArea.getSelectionEnd() && this._setAndWriteTextAreaState("paste", u.un.EMPTY), this._nextCommand = 1 }))), this._register(r.nm(t.domNode, "focus", (() => { const e = this._hasFocus; this._setHasFocus(!0), o.G6 && !e && this._hasFocus && this._asyncFocusGainWriteScreenReaderContent .schedule() }))), this._register(r.nm(t.domNode, "blur", (() => { this._isDoingComposition && (this._isDoingComposition = !1, this .writeScreenReaderContent("blurWithoutCompositionEnd"), this._onCompositionEnd .fire()), this._setHasFocus(!1) }))), this._register(r.nm(t.domNode, n.Tap, (() => { o.Dt && this._isDoingComposition && (this._isDoingComposition = ! 1, this.writeScreenReaderContent("tapWithoutCompositionEnd"), this._onCompositionEnd.fire()) }))) } _installSelectionChangeListener() { let e = 0; return r.nm(document, "selectionchange", (t => { if (!this._hasFocus) return; if (this._isDoingComposition) return; if (!o.i7) return; const i = Date.now(), n = i - e; if (e = i, n < 5) return; const r = i - this._textArea.getIgnoreSelectionChangeTime(); if (this._textArea.resetSelectionChangeTime(), r < 100) return; if (!this._textAreaState.selectionStartPosition || !this._textAreaState .selectionEndPosition) return; const s = this._textArea.getValue(); if (this._textAreaState.value !== s) return; const a = this._textArea.getSelectionStart(), l = this._textArea.getSelectionEnd(); if (this._textAreaState.selectionStart === a && this._textAreaState .selectionEnd === l) return; const d = this._textAreaState.deduceEditorPosition(a), c = this._host.deduceModelPosition(d[0], d[1], d[2]), h = this._textAreaState.deduceEditorPosition(l), u = this._host.deduceModelPosition(h[0], h[1], h[2]), g = new p.Y(c.lineNumber, c.column, u.lineNumber, u.column); this._onSelectionChangeRequest.fire(g) })) } dispose() { super.dispose(), this._selectionChangeListener && (this._selectionChangeListener .dispose(), this._selectionChangeListener = null) } focusTextArea() { this._setHasFocus(!0), this.refreshFocusState() } isFocused() { return this._hasFocus } refreshFocusState() { const e = r.Ay(this.textArea.domNode); e ? this._setHasFocus(e.activeElement === this.textArea.domNode) : r.Uw( this.textArea.domNode) ? this._setHasFocus(document.activeElement === this.textArea.domNode) : this._setHasFocus(!1) } _setHasFocus(e) { this._hasFocus !== e && (this._hasFocus = e, this._selectionChangeListener && (this._selectionChangeListener.dispose(), this._selectionChangeListener = null), this._hasFocus && (this._selectionChangeListener = this._installSelectionChangeListener()), this._hasFocus && this.writeScreenReaderContent("focusgain"), this._hasFocus ? this._onFocus.fire() : this._onBlur.fire()) } _setAndWriteTextAreaState(e, t) { this._hasFocus || (t = t.collapseSelection()), t.writeToTextArea(e, this._textArea, this._hasFocus), this._textAreaState = t } writeScreenReaderContent(e) { this._isDoingComposition || this._setAndWriteTextAreaState(e, this._host .getScreenReaderContent(this._textAreaState)) } _ensureClipboardGetsEditorSelection(e) { const t = this._host.getDataToCopy(b.canUseTextData(e)), i = { version: 1, isFromEmptySelection: t.isFromEmptySelection, multicursorText: t.multicursorText, mode: t.mode }; f.INSTANCE.set(o.vU ? t.text.replace(/\r\n/g, "\n") : t.text, i), b.canUseTextData( e) ? b.setTextData(e, t.text, t.html, i) : this._setAndWriteTextAreaState( "copy or cut", u.un.selectedText(t.text)) } _firePaste(e, t) { t || (t = f.INSTANCE.get(e)), this._onPaste.fire({ text: e, metadata: t }) } } class b { static canUseTextData(e) { return !!e.clipboardData || !!window.clipboardData } static getTextData(e) { if (e.clipboardData) { e.preventDefault(); const t = e.clipboardData.getData(d.vW.text); let i = null; const n = e.clipboardData.getData("vscode-editor-data"); if ("string" == typeof n) try { i = JSON.parse(n), 1 !== i.version && (i = null) } catch (e) {} return [t, i] } if (window.clipboardData) return e.preventDefault(), [window.clipboardData .getData("Text"), null ]; throw new Error( "ClipboardEventUtils.getTextData: Cannot use text data!") } static setTextData(e, t, i, n) { if (e.clipboardData) return e.clipboardData.setData(d.vW.text, t), "string" == typeof i && e.clipboardData.setData("text/html", i), e.clipboardData .setData("vscode-editor-data", JSON.stringify(n)), void e.preventDefault(); if (window.clipboardData) return window.clipboardData.setData("Text", t), void e.preventDefault(); throw new Error( "ClipboardEventUtils.setTextData: Cannot use text data!") } } class v extends l.JT { constructor(e) { super(), this._actual = e, this._ignoreSelectionChangeTime = 0 } setIgnoreSelectionChangeTime(e) { this._ignoreSelectionChangeTime = Date.now() } getIgnoreSelectionChangeTime() { return this._ignoreSelectionChangeTime } resetSelectionChangeTime() { this._ignoreSelectionChangeTime = 0 } getValue() { return this._actual.domNode.value } setValue(e, t) { const i = this._actual.domNode; i.value !== t && (this.setIgnoreSelectionChangeTime("setValue"), i.value = t) } getSelectionStart() { return "backward" === this._actual.domNode.selectionDirection ? this._actual .domNode.selectionEnd : this._actual.domNode.selectionStart } getSelectionEnd() { return "backward" === this._actual.domNode.selectionDirection ? this._actual .domNode.selectionStart : this._actual.domNode.selectionEnd } setSelectionRange(e, t, i) { const n = this._actual.domNode; let s = null; const a = r.Ay(n); s = a ? a.activeElement : document.activeElement; const l = s === n, d = n.selectionStart, c = n.selectionEnd; if (l && d === t && c === i) o.vU && window.parent !== window && n.focus(); else { if (l) return this.setIgnoreSelectionChangeTime("setSelectionRange"), n.setSelectionRange(t, i), void(o.vU && window.parent !== window && n.focus()); try { const e = r.vL(n); this.setIgnoreSelectionChangeTime("setSelectionRange"), n.focus(), n.setSelectionRange(t, i), r._0(n, e) } catch (e) {} } } } }, 5887: (e, t, i) => { "use strict"; i.d(t, { al: () => s, un: () => a, ee: () => l }); var n = i(7295), o = i(187), r = i(4314); const s = !1; class a { constructor(e, t, i, n, o) { this.value = e, this.selectionStart = t, this.selectionEnd = i, this.selectionStartPosition = n, this.selectionEndPosition = o } toString() { return "[ <" + this.value + ">, selectionStart: " + this.selectionStart + ", selectionEnd: " + this.selectionEnd + "]" } static readFromTextArea(e) { return new a(e.getValue(), e.getSelectionStart(), e.getSelectionEnd(), null, null) } collapseSelection() { return new a(this.value, this.value.length, this.value.length, null, null) } writeToTextArea(e, t, i) { s && console.log("writeToTextArea " + e + ": " + this.toString()), t.setValue( e, this.value), i && t.setSelectionRange(e, this.selectionStart, this.selectionEnd) } deduceEditorPosition(e) { if (e <= this.selectionStart) { const t = this.value.substring(e, this.selectionStart); return this._finishDeduceEditorPosition(this.selectionStartPosition, t, -1) } if (e >= this.selectionEnd) { const t = this.value.substring(this.selectionEnd, e); return this._finishDeduceEditorPosition(this.selectionEndPosition, t, 1) } const t = this.value.substring(this.selectionStart, e); if (-1 === t.indexOf(String.fromCharCode(8230))) return this._finishDeduceEditorPosition( this.selectionStartPosition, t, 1); const i = this.value.substring(e, this.selectionEnd); return this._finishDeduceEditorPosition(this.selectionEndPosition, i, - 1) } _finishDeduceEditorPosition(e, t, i) { let n = 0, o = -1; for (; - 1 !== (o = t.indexOf("\n", o + 1));) n++; return [e, i * t.length, n] } static selectedText(e) { return new a(e, 0, e.length, null, null) } static deduceInput(e, t, i) { if (!e) return { text: "", replacePrevCharCnt: 0, replaceNextCharCnt: 0, positionDelta: 0 }; s && (console.log("------------------------deduceInput"), console.log( "PREVIOUS STATE: " + e.toString()), console.log("CURRENT STATE: " + t.toString())); let o = e.value, r = e.selectionStart, a = e.selectionEnd, l = t.value, d = t.selectionStart, c = t.selectionEnd; const h = o.substring(a), u = l.substring(c), g = n.P1(h, u); l = l.substring(0, l.length - g), o = o.substring(0, o.length - g); const p = o.substring(0, r), m = l.substring(0, d), f = n.Mh(p, m); if (l = l.substring(f), o = o.substring(f), d -= f, r -= f, c -= f, a -= f, s && (console.log("AFTER DIFFING PREVIOUS STATE: <" + o + ">, selectionStart: " + r + ", selectionEnd: " + a), console.log( "AFTER DIFFING CURRENT STATE: <" + l + ">, selectionStart: " + d + ", selectionEnd: " + c)), i && d === c && o.length > 0) { let e = null; if (d === l.length ? l.startsWith(o) && (e = l.substring(o.length)) : l.endsWith(o) && (e = l.substring(0, l.length - o.length)), null !== e && e.length > 0 && (/\uFE0F/.test(e) || n.RP(e))) return { text: e, replacePrevCharCnt: 0, replaceNextCharCnt: 0, positionDelta: 0 } } if (d === c) { if (o === l && 0 === r && a === o.length && d === l.length && -1 === l.indexOf("\n") && n.xe(l)) return { text: "", replacePrevCharCnt: 0, replaceNextCharCnt: 0, positionDelta: 0 }; const e = p.length - f; return s && console.log("REMOVE PREVIOUS: " + (p.length - f) + " chars"), { text: l, replacePrevCharCnt: e, replaceNextCharCnt: 0, positionDelta: 0 } } return { text: l, replacePrevCharCnt: a - r, replaceNextCharCnt: 0, positionDelta: 0 } } static deduceAndroidCompositionInput(e, t) { if (!e) return { text: "", replacePrevCharCnt: 0, replaceNextCharCnt: 0, positionDelta: 0 }; if (s && (console.log( "------------------------deduceAndroidCompositionInput"), console.log( "PREVIOUS STATE: " + e.toString()), console.log("CURRENT STATE: " + t.toString())), e.value === t.value) return { text: "", replacePrevCharCnt: 0, replaceNextCharCnt: 0, positionDelta: t.selectionEnd - e.selectionEnd }; const i = Math.min(n.Mh(e.value, t.value), e.selectionEnd), o = Math.min(n.P1(e.value, t.value), e.value.length - e.selectionEnd), r = e.value.substring(i, e.value.length - o), a = t.value.substring(i, t.value.length - o), l = e.selectionStart - i, d = e.selectionEnd - i, c = t.selectionStart - i, h = t.selectionEnd - i; return s && (console.log("AFTER DIFFING PREVIOUS STATE: <" + r + ">, selectionStart: " + l + ", selectionEnd: " + d), console.log( "AFTER DIFFING CURRENT STATE: <" + a + ">, selectionStart: " + c + ", selectionEnd: " + h)), { text: a, replacePrevCharCnt: d, replaceNextCharCnt: r.length - d, positionDelta: h - a.length } } } a.EMPTY = new a("", 0, 0, null, null); class l { static _getPageOfLine(e, t) { return Math.floor((e - 1) / t) } static _getRangeForPage(e, t) { const i = e * t, n = i + 1, o = i + t; return new r.e(n, 1, o + 1, 1) } static fromEditorSelection(e, t, i, n, s) { const d = l._getPageOfLine(i.startLineNumber, n), c = l._getRangeForPage(d, n), h = l._getPageOfLine(i.endLineNumber, n), u = l._getRangeForPage(h, n), g = c.intersectRanges(new r.e(1, 1, i.startLineNumber, i.startColumn)); let p = t.getValueInRange(g, 1); const m = t.getLineCount(), f = t.getLineMaxColumn(m), _ = u.intersectRanges(new r.e(i.endLineNumber, i.endColumn, m, f)); let b, v = t.getValueInRange(_, 1); if (d === h || d + 1 === h) b = t.getValueInRange(i, 1); else { const e = c.intersectRanges(i), n = u.intersectRanges(i); b = t.getValueInRange(e, 1) + String.fromCharCode(8230) + t.getValueInRange( n, 1) } if (s) { const e = 500; p.length > e && (p = p.substring(p.length - e, p.length)), v.length > e && (v = v.substring(0, e)), b.length > 2 * e && (b = b.substring(0, e) + String.fromCharCode(8230) + b.substring(b.length - e, b.length)) } return new a(p + b + v, p.length, p.length + b.length, new o.L(i.startLineNumber, i.startColumn), new o.L(i.endLineNumber, i.endColumn)) } } }, 9925: (e, t, i) => { "use strict"; i.d(t, { yy: () => f, Dl: () => _, ZF: () => v, YQ: () => b }); var n = i(7295), o = i(4314), r = i(1050), s = i(5976), a = i(6830), l = i(8819), d = i(1741), c = i(2065), h = i(5026), u = i(3580); const g = (0, c.yh)("IEditorCancelService"), p = new l.uy("cancellableOperation", !1, (0, u.N)("cancellableOperation", "Whether the editor runs a cancellable operation, e.g. like 'Peek References'" )); (0, h.z)(g, class { constructor() { this._tokens = new WeakMap } add(e, t) { let i, n = this._tokens.get(e); return n || (n = e.invokeWithinContext((e => ({ key: p.bindTo(e.get(l.i6)), tokens: new d.S }))), this._tokens.set(e, n)), n.key.set(!0), i = n.tokens.push(t), () => { i && (i(), n.key.set(!n.tokens.isEmpty()), i = void 0) } } cancel(e) { const t = this._tokens.get(e); if (!t) return; const i = t.tokens.pop(); i && (i.cancel(), t.key.set(!t.tokens.isEmpty())) } }, !0); class m extends r.A { constructor(e, t) { super(t), this.editor = e, this._unregister = e.invokeWithinContext(( t => t.get(g).add(e, this))) } dispose() { this._unregister(), super.dispose() } }(0, a.fK)(new class extends a._l { constructor() { super({ id: "editor.cancelOperation", kbOpts: { weight: 100, primary: 9 }, precondition: p }) } runEditorCommand(e, t) { e.get(g).cancel(t) } }); class f { constructor(e, t) { if (this.flags = t, 0 != (1 & this.flags)) { const t = e.getModel(); this.modelVersionId = t ? n.WU("{0}#{1}", t.uri.toString(), t.getVersionId()) : null } else this.modelVersionId = null; 0 != (4 & this.flags) ? this.position = e.getPosition() : this.position = null, 0 != (2 & this.flags) ? this.selection = e.getSelection() : this.selection = null, 0 != (8 & this.flags) ? (this.scrollLeft = e.getScrollLeft(), this.scrollTop = e.getScrollTop()) : (this.scrollLeft = -1, this.scrollTop = - 1) } _equals(e) { if (!(e instanceof f)) return !1; const t = e; return this.modelVersionId === t.modelVersionId && this.scrollLeft === t.scrollLeft && this.scrollTop === t.scrollTop && !(!this.position && t.position || this.position && !t.position || this.position && t.position && !this.position.equals(t.position)) && !(!this.selection && t.selection || this.selection && !t.selection || this.selection && t.selection && ! this.selection.equalsRange(t.selection)) } validate(e) { return this._equals(new f(e, this.flags)) } } class _ extends m { constructor(e, t, i, n) { super(e, n), this._listener = new s.SL, 4 & t && this._listener.add(e.onDidChangeCursorPosition( (e => { i && o.e.containsPosition(i, e.position) || this.cancel() }))), 2 & t && this._listener.add(e.onDidChangeCursorSelection((e => { i && o.e.containsRange(i, e.selection) || this.cancel() }))), 8 & t && this._listener.add(e.onDidScrollChange((e => this.cancel()))), 1 & t && (this._listener.add(e.onDidChangeModel((e => this.cancel()))), this._listener.add(e.onDidChangeModelContent((e => this.cancel())))) } dispose() { this._listener.dispose(), super.dispose() } } class b extends r.A { constructor(e, t) { super(t), this._listener = e.onDidChangeContent((() => this.cancel())) } dispose() { this._listener.dispose(), super.dispose() } } class v { constructor(e, t, i) { this._visiblePosition = e, this._visiblePositionScrollDelta = t, this._cursorPosition = i } static capture(e) { let t = null, i = 0; if (0 !== e.getScrollTop()) { const n = e.getVisibleRanges(); if (n.length > 0) { t = n[0].getStartPosition(); const o = e.getTopForPosition(t.lineNumber, t.column); i = e.getScrollTop() - o } } return new v(t, i, e.getPosition()) } restore(e) { if (this._visiblePosition) { const t = e.getTopForPosition(this._visiblePosition.lineNumber, this._visiblePosition .column); e.setScrollTop(t + this._visiblePositionScrollDelta) } } restoreRelativeVerticalPositionOfCursor(e) { const t = e.getPosition(); if (!this._cursorPosition || !t) return; const i = e.getTopForLineNumber(t.lineNumber) - e.getTopForLineNumber( this._cursorPosition.lineNumber); e.setScrollTop(e.getScrollTop() + i) } } }, 3947: (e, t, i) => { "use strict"; i.d(t, { $: () => T }); var n = i(5321), o = i(4850), r = i(8764), s = i(3938), a = i(6811), l = i(7301), d = i(4669), c = i(9365), h = i(1212), u = i(4742); let g; ! function e(t, i, n) { function o(s, a) { if (!i[s]) { if (!t[s]) { if (r) return r(s, !0); var l = new Error("Cannot find module '" + s + "'"); throw l.code = "MODULE_NOT_FOUND", l } var d = i[s] = { exports: {} }; t[s][0].call(d.exports, (function(e) { return o(t[s][1][e] || e) }), d, d.exports, e, t, i, n) } return i[s].exports } for (var r = void 0, s = 0; s < n.length; s++) o(n[s]); return o }({ 1: [function(e, t, i) { var n = e("./toMap"); t.exports = { uris: n(["background", "base", "cite", "href", "longdesc", "src", "usemap" ]) } }, { "./toMap": 10 }], 2: [function(e, t, i) { t.exports = { allowedAttributes: { "*": ["title", "accesskey"], a: ["href", "name", "target", "aria-label"], iframe: ["allowfullscreen", "frameborder", "src"], img: ["src", "alt", "title", "aria-label"] }, allowedClasses: {}, allowedSchemes: ["http", "https", "mailto"], allowedTags: ["a", "abbr", "article", "b", "blockquote", "br", "caption", "code", "del", "details", "div", "em", "h1", "h2", "h3", "h4", "h5", "h6", "hr", "i", "img", "ins", "kbd", "li", "main", "mark", "ol", "p", "pre", "section", "span", "strike", "strong", "sub", "summary", "sup", "table", "tbody", "td", "th", "thead", "tr", "u", "ul" ], filter: null } }, {}], 3: [function(e, t, i) { var n = e("./toMap"); t.exports = { voids: n(["area", "br", "col", "hr", "img", "wbr", "input", "base", "basefont", "link", "meta" ]) } }, { "./toMap": 10 }], 4: [function(e, t, i) { e("he"); var n = e("assignment"), o = e("./parser"), r = e("./sanitizer"), s = e("./defaults"); function a(e, t, i) { var a = [], l = !0 === i ? t : n({}, s, t), d = r(a, l); return o(e, d), a.join("") } a.defaults = s, t.exports = a, g = a }, { "./defaults": 2, "./parser": 7, "./sanitizer": 8, assignment: 6, he: 9 }], 5: [function(e, t, i) { t.exports = function(e) { return "string" == typeof e ? e.toLowerCase() : e } }, {}], 6: [function(e, t, i) { t.exports = function e(t) { for (var i, n, o = Array.prototype.slice.call(arguments, 1); o.length;) for (n in i = o.shift()) i.hasOwnProperty(n) && ( "[object Object]" === Object.prototype.toString.call(t[n]) ? t[ n] = e(t[n], i[n]) : t[n] = i[n]); return t } }, {}], 7: [function(e, t, i) { var n = e("he"), o = e("./lowercase"), r = (e("./attributes"), e("./elements")), s = /^<\s*([\w:-]+)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*>/, a = /^<\s*\/\s*([\w:-]+)[^>]*>/, l = /([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g, d = /^")) >= 0 && (t.comment && t.comment(e.substring(4, n)), e = e.substring(n + 3), i = !1) : c.test(e) ? p(a, f) : d.test(e) && p(s, m), function() { if (i) { var n, o = e.indexOf("<"); o >= 0 ? (n = e.substring(0, o), e = e.substring(o)) : (n = e, e = ""), t.chars && t.chars(n) } }(); var o = e === u; u = e, o && (e = "") } function p(t, n) { var o = e.match(t); o && (e = e.substring(o[0].length), o[0].replace(t, n), i = !1) } function m(e, i, s, a) { var d = {}, c = o(i), u = r.voids[c] || !!a; s.replace(l, (function(e, t, i, o, r) { d[t] = void 0 === i && void 0 === o && void 0 === r ? void 0 : n.decode(i || o || r || "") })), u || h.push(c), t.start && t.start(c, d, u) } function f(e, i) { var n, r = 0, s = o(i); if (s) for (r = h.length - 1; r >= 0 && h[r] !== s; r--); if (r >= 0) { for (n = h.length - 1; n >= r; n--) t.end && t.end(h[n]); h.length = r } } f() } }, { "./attributes": 1, "./elements": 3, "./lowercase": 5, he: 9 }], 8: [function(e, t, i) { var n = e("he"), o = e("./lowercase"), r = e("./attributes"), s = e("./elements"); t.exports = function(e, t) { var i, a = t || {}; return c(), { start: function(e, t, s) { var c = o(e); i.ignoring ? d(c) : -1 !== (a.allowedTags || []).indexOf(c) && (!a.filter || a.filter({ tag: c, attrs: t })) ? (l("<"), l(c), Object.keys(t).forEach((function(e) { var i = t[e], s = (a.allowedClasses || {})[c] || [], d = (a.allowedAttributes || {})[c] || []; d = d.concat((a.allowedAttributes || {})["*"] || []); var h = o(e); ("class" === h && -1 === d.indexOf(h) ? (i = i.split(" ") .filter((function(e) { return s && -1 !== s.indexOf(e) })).join(" ").trim()).length : -1 !== d.indexOf(h) && (! 0 !== r.uris[h] || function(e) { var t = e[0]; if ("#" === t || "/" === t) return !0; var i = e.indexOf(":"); if (-1 === i) return !0; var n = e.indexOf("?"); if (-1 !== n && i > n) return !0; var o = e.indexOf("#"); return -1 !== o && i > o || a.allowedSchemes.some(( function(t) { return 0 === e.indexOf(t + ":") })) }(i))) && (l(" "), l(e), "string" == typeof i && (l('="'), l(n.encode(i)), l('"'))) })), l(s ? "/>" : ">")) : d(c) }, end: function(e) { var t = o(e); - 1 !== (a.allowedTags || []).indexOf(t) && !1 === i.ignoring ? (l("")) : function(e) { i.ignoring === e && --i.depth <= 0 && c() }(t) }, chars: function(e) { !1 === i.ignoring && l(a.transformText ? a.transformText(e) : e) } }; function l(t) { e.push(t) } function d(e) { s.voids[e] || (!1 === i.ignoring ? i = { ignoring: e, depth: 1 } : i.ignoring === e && i.depth++) } function c() { i = { ignoring: !1, depth: 0 } } } }, { "./attributes": 1, "./elements": 3, "./lowercase": 5, he: 9 }], 9: [function(e, t, i) { var n = { "&": "&", "<": "<", ">": ">", '"': """, "'": "'" }, o = { "&": "&", "<": "<", ">": ">", """: '"', "'": "'" }, r = /(&|<|>|"|')/g, s = /[&<>"']/g; function a(e) { return n[e] } function l(e) { return o[e] } function d(e) { return null == e ? "" : String(e).replace(s, a) } function c(e) { return null == e ? "" : String(e).replace(r, l) } d.options = c.options = {}, t.exports = { encode: d, escape: d, decode: c, unescape: c, version: "1.0.0-browser" } }, {}], 10: [function(e, t, i) { function n(e, t) { return e[t] = !0, e } t.exports = function(e) { return e.reduce(n, {}) } }, {}] }, {}, [4]); var p, m = g, f = i(3720), _ = i(3897), b = i(6663), v = i(6248), w = i(5935), C = i(7295), y = i(666); const S = null === (p = window.trustedTypes) || void 0 === p ? void 0 : p .createPolicy("insane", { createHTML: (e, t) => m(e, t) }); var x, k = i(988), L = i(1531), N = i(5713), D = i(5976), E = i(4101), I = function(e, t) { return function(i, n) { t(i, n, e) } }; let T = class e { constructor(e, t, i) { this._options = e, this._modeService = t, this._openerService = i, this._onDidRenderAsync = new d.Q5, this.onDidRenderAsync = this._onDidRenderAsync .event } dispose() { this._onDidRenderAsync.dispose() } render(e, t, i) { const g = new D.SL; let p; return p = e ? function(e, t = {}, i = {}) { var g; const p = (0, r.az)(t), x = function(t) { let i; try { i = (0, _.Q)(decodeURIComponent(t)) } catch (e) {} return i ? (i = (0, v.rs)(i, (t => e.uris && e.uris[t] ? y.o.revive( e.uris[t]) : void 0)), encodeURIComponent(JSON.stringify(i))) : t }, k = function(t, i) { const n = e.uris && e.uris[t]; if (!n) return t; let o = y.o.revive(n); return i ? t.startsWith(b.lg.data + ":") ? t : b.Gi.asBrowserUri( o).toString(!0) : y.o.parse(t).toString() === o.toString() ? t : (o.query && (o = o.with({ query: x(o.query) })), o.toString()) }; let L; const N = new Promise((e => L = e)), D = new f.Renderer; if (D.image = (e, i, n) => { let o = [], r = []; if (e) { ({ href: e, dimensions: o } = (0, c.v1)(e)), e = k(e, !0); try { const i = y.o.parse(e); t.baseUrl && i.scheme === b.lg.file && (e = (0, w.i3)(t.baseUrl, e).toString()) } catch (e) {} r.push(`src="${e}"`) } return n && r.push(`alt="${n}"`), i && r.push(`title="${i}"`), o.length && (r = r.concat(o)), "" }, D.link = (i, n, o) => (i === o && (o = (0, c.oR)(o)), i = k(i, ! 1), t.baseUrl && (/^\w[\w\d+.-]*:/.test(i) || (i = (0, w.i3)(t.baseUrl, i).toString())), n = (0, c.oR)(n), !(i = (0, c.oR)(i)) || i.match( /^data:|javascript:/i) || i.match(/^command:/i) && !e.isTrusted || i.match(/^command:(\/\/\/)?_workbench\.downloadResource/i) ? o : `/g,">").replace(/"/g,""").replace(/'/g,"'")}" title="${n||i}">${o}` ), D.paragraph = t => (e.supportThemeIcons && (t = (0, a.T)(t).map( (e => "string" == typeof e ? e : e.outerHTML)).join("")), `

    ${t}

    `), t.codeBlockRenderer && (D.code = (e, i) => { const o = t.codeBlockRenderer(i, e), r = u.a.nextId(), s = Promise.all([o, N]).then((e => { const t = p.querySelector(`div[data-code="${r}"]`); t && n.mc(t, e[0]) })).catch((e => {})); return t.asyncRenderCallback && s.then(t.asyncRenderCallback), `
    ${(0,C.YU)(e)}
    ` }), t.actionHandler) { const e = t.actionHandler.disposables.add(new o.Y(p, "click")), i = t.actionHandler.disposables.add(new o.Y(p, "auxclick")); t.actionHandler.disposables.add(d.ju.any(e.event, i.event)((e => { const i = new s.n(e); if (!i.leftButton && !i.middleButton) return; let n = i.target; if ("A" === n.tagName || (n = n.parentElement, n && "A" === n .tagName)) try { const e = n.dataset.href; e && t.actionHandler.callback(e, i) } catch (e) { (0, l.dL)(e) } finally { i.preventDefault() } }))) } i.sanitizer = t => (e.isTrusted ? t.match( /^(]+>)|(<\/\s*span>)$/) : void 0) ? t : "", i.sanitize = ! 0, i.silent = !0, i.renderer = D; let E = null !== (g = e.value) && void 0 !== g ? g : ""; E.length > 1e5 && (E = `${E.substr(0,1e5)}…`), e.supportThemeIcons && (E = (0, h.f$)(E)); const I = f.parse(E, i); if (p.innerHTML = function(e, t) { var i; const n = function(e) { const t = [b.lg.http, b.lg.https, b.lg.mailto, b.lg.data, b.lg.file, b.lg.vscodeFileResource, b.lg.vscodeRemote, b.lg.vscodeRemoteResource ]; return e.isTrusted && t.push(b.lg.command), { allowedSchemes: t, allowedTags: ["ul", "li", "p", "code", "blockquote", "ol", "h1", "h2", "h3", "h4", "h5", "h6", "hr", "em", "pre", "table", "thead", "tbody", "tr", "th", "td", "div", "del", "a", "strong", "br", "img", "span" ], allowedAttributes: { a: ["href", "name", "target", "data-href"], img: ["src", "title", "alt", "width", "height"], div: ["class", "data-code"], span: ["class", "style"], th: ["align"], td: ["align"] }, filter: t => !("span" === t.tag && e.isTrusted && (t.attrs.style && 1 === Object.keys(t.attrs).length ? !t.attrs.style.match( /^(color\:#[0-9a-fA-F]+;)?(background-color\:#[0-9a-fA-F]+;)?$/ ) : !t.attrs.class || !t.attrs.class.match( /^codicon codicon-[a-z\-]+( codicon-modifier-[a-z\-]+)?$/ ))) } }(e); return null !== (i = null == S ? void 0 : S.createHTML(t, n)) && void 0 !== i ? i : m(t, n) }(e, I), L(), t.asyncRenderCallback) for (const e of p.getElementsByTagName("img")) { const i = n.nm(e, "load", (() => { i.dispose(), t.asyncRenderCallback() })) } return p }(e, Object.assign(Object.assign({}, this._getRenderOptions(e, g)), t), i) : document.createElement("span"), { element: p, dispose: () => g.dispose() } } _getRenderOptions(t, i) { return { baseUrl: this._options.baseUrl, codeBlockRenderer: (t, i) => { return n = this, o = void 0, s = function*() { var n, o, r, s; let a; t ? a = this._modeService.getModeIdForLanguageName(t) : this._options .editor && (a = null === (n = this._options.editor.getModel()) || void 0 === n ? void 0 : n.getLanguageIdentifier().language), a || (a = "plaintext"), this._modeService.triggerMode(a); const l = null !== (o = yield E.RW.getPromise(a)) && void 0 !== o ? o : void 0, d = document.createElement("span"); d.innerHTML = null !== (s = null === (r = e._ttpTokenizer) || void 0 === r ? void 0 : r.createHTML(i, l)) && void 0 !== s ? s : (0, N.C)(i, l); let c = this._options.codeBlockFontFamily; return this._options.editor && (c = this._options.editor.getOption( 42).fontFamily), c && (d.style.fontFamily = c), d }, new((r = void 0) || (r = Promise))((function(e, t) { function i(e) { try { l(s.next(e)) } catch (e) { t(e) } } function a(e) { try { l(s.throw(e)) } catch (e) { t(e) } } function l(t) { var n; t.done ? e(t.value) : (n = t.value, n instanceof r ? n : new r( (function(e) { e(n) }))).then(i, a) } l((s = s.apply(n, o || [])).next()) })); var n, o, r, s }, asyncRenderCallback: () => this._onDidRenderAsync.fire(), actionHandler: { callback: e => this._openerService.open(e, { fromUserGesture: !0, allowContributedOpeners: !0, allowCommands: t.isTrusted }).catch(l.dL), disposables: i } } } }; T._ttpTokenizer = null === (x = window.trustedTypes) || void 0 === x ? void 0 : x.createPolicy("tokenizeToString", { createHTML: (e, t) => (0, N.C)(e, t) }), T = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([I(1, L.h), I(2, k.v4)], T) }, 5520: (e, t, i) => { "use strict"; i.d(t, { CL: () => o, QI: () => r, Pi: () => s }); var n = i(6518); function o(e) { return !(!e || "function" != typeof e.getEditorType) && e.getEditorType() === n.g.ICodeEditor } function r(e) { return !(!e || "function" != typeof e.getEditorType) && e.getEditorType() === n.g.IDiffEditor } function s(e) { return o(e) ? e : r(e) ? e.getModifiedEditor() : null } }, 6830: (e, t, i) => { "use strict"; i.d(t, { mY: () => b, AJ: () => v, _l: () => C, R6: () => y, jY: () => S, sb: () => x, f: () => k, fK: () => L, Qr: () => N, rn: () => D, QG: () => E, _K: () => I, Uc: () => n, n_: () => A, kz: () => R, Sq: () => O }); var n, o = i(3580), r = i(666), s = i(1640), a = i(187), l = i(1200), d = i(8216), c = i(4144), h = i(4565), u = i(8819), g = i(9989), p = i(9872), m = i(829), f = i(8401), _ = i(3557); class b { constructor(e) { this.id = e.id, this.precondition = e.precondition, this._kbOpts = e.kbOpts, this._menuOpts = e.menuOpts, this._description = e.description } register() { if (Array.isArray(this._menuOpts) ? this._menuOpts.forEach(this._registerMenuItem, this) : this._menuOpts && this._registerMenuItem(this._menuOpts), this._kbOpts) { const e = Array.isArray(this._kbOpts) ? this._kbOpts : [this._kbOpts]; for (const t of e) { let e = t.kbExpr; this.precondition && (e = e ? u.Ao.and(e, this.precondition) : this.precondition); const i = { id: this.id, weight: t.weight, args: t.args, when: e, primary: t.primary, secondary: t.secondary, win: t.win, linux: t.linux, mac: t.mac }; g.W.registerKeybindingRule(i) } } h.P.registerCommand({ id: this.id, handler: (e, t) => this.runCommand(e, t), description: this._description }) } _registerMenuItem(e) { c.BH.appendMenuItem(e.menuId, { group: e.group, command: { id: this.id, title: e.title, icon: e.icon, precondition: this.precondition }, when: e.when, order: e.order }) } } class v extends b { constructor() { super(...arguments), this._implementations = [] } addImplementation(e, t, i) { return this._implementations.push({ priority: e, name: t, implementation: i }), this._implementations.sort(((e, t) => t.priority - e.priority)), { dispose: () => { for (let e = 0; e < this._implementations.length; e++) if (this._implementations[e].implementation === i) return void this ._implementations.splice(e, 1) } } } runCommand(e, t) { const i = e.get(_.VZ); i.trace( `Executing Command '${this.id}' which has ${this._implementations.length} bound.` ); for (const n of this._implementations) { const o = n.implementation(e, t); if (o) { if (i.trace(`Command '${this.id}' was handled by '${n.name}'.`), "boolean" == typeof o) return; return o } } i.trace( `The Command '${this.id}' was not handled by any implementation.`) } } class w extends b { constructor(e, t) { super(t), this.command = e } runCommand(e, t) { return this.command.runCommand(e, t) } } class C extends b { static bindToContribution(e) { return class extends C { constructor(e) { super(e), this._callback = e.handler } runEditorCommand(t, i, n) { e(i) && this._callback(e(i), n) } } } runCommand(e, t) { const i = e.get(s.$), n = i.getFocusedCodeEditor() || i.getActiveCodeEditor(); if (n) return n.invokeWithinContext((e => { if (e.get(u.i6).contextMatchesRules((0, f.f6)(this.precondition))) return this.runEditorCommand(e, n, t) })) } } class y extends C { constructor(e) { super(y.convertOptions(e)), this.label = e.label, this.alias = e.alias } static convertOptions(e) { let t; function i(t) { return t.menuId || (t.menuId = c.eH.EditorContext), t.title || (t.title = e.label), t.when = u.Ao.and(e.precondition, t.when), t } return t = Array.isArray(e.menuOpts) ? e.menuOpts : e.menuOpts ? [e.menuOpts] : [], Array.isArray(e.contextMenuOpts) ? t.push(...e.contextMenuOpts.map(i)) : e.contextMenuOpts && t.push(i(e.contextMenuOpts)), e.menuOpts = t, e } runEditorCommand(e, t, i) { return this.reportTelemetry(e, t), this.run(e, t, i || {}) } reportTelemetry(e, t) { e.get(m.b).publicLog2("editorActionInvoked", { name: this.label, id: this.id }) } } class S extends y { constructor() { super(...arguments), this._implementations = [] } addImplementation(e, t) { return this._implementations.push([e, t]), this._implementations.sort( ((e, t) => t[0] - e[0])), { dispose: () => { for (let e = 0; e < this._implementations.length; e++) if (this._implementations[e][1] === t) return void this._implementations .splice(e, 1) } } } run(e, t, i) { for (const n of this._implementations) { const o = n[1](e, t, i); if (o) { if ("boolean" == typeof o) return; return o } } } } function x(e, t) { h.P.registerCommand(e, (function(e, ...i) { const [n, o] = i; (0, f.p_)(r.o.isUri(n)), (0, f.p_)(a.L.isIPosition(o)); const s = e.get(l.q).getModel(n); if (s) { const e = a.L.lift(o); return t(s, e, ...i.slice(2)) } return e.get(d.S).createModelReference(n).then((e => new Promise(((n, r) => { try { n(t(e.object.textEditorModel, a.L.lift(o), i.slice(2))) } catch (e) { r(e) } })).finally((() => { e.dispose() })))) })) } function k(e, t) { h.P.registerCommand(e, (function(e, ...i) { const [n] = i; (0, f.p_)(r.o.isUri(n)); const o = e.get(l.q).getModel(n); return o ? t(o, ...i.slice(1)) : e.get(d.S).createModelReference(n).then( (e => new Promise(((n, o) => { try { n(t(e.object.textEditorModel, i.slice(1))) } catch (e) { o(e) } })).finally((() => { e.dispose() })))) })) } function L(e) { return T.INSTANCE.registerEditorCommand(e), e } function N(e) { const t = new e; return T.INSTANCE.registerEditorAction(t), t } function D(e) { return T.INSTANCE.registerEditorAction(e), e } function E(e) { T.INSTANCE.registerEditorAction(e) } function I(e, t) { T.INSTANCE.registerEditorContribution(e, t) }! function(e) { e.getEditorCommand = function(e) { return T.INSTANCE.getEditorCommand(e) }, e.getEditorActions = function() { return T.INSTANCE.getEditorActions() }, e.getEditorContributions = function() { return T.INSTANCE.getEditorContributions() }, e.getSomeEditorContributions = function(e) { return T.INSTANCE.getEditorContributions().filter((t => e.indexOf(t.id) >= 0)) }, e.getDiffEditorContributions = function() { return T.INSTANCE.getDiffEditorContributions() } }(n || (n = {})); class T { constructor() { this.editorContributions = [], this.diffEditorContributions = [], this .editorActions = [], this.editorCommands = Object.create(null) } registerEditorContribution(e, t) { this.editorContributions.push({ id: e, ctor: t }) } getEditorContributions() { return this.editorContributions.slice(0) } getDiffEditorContributions() { return this.diffEditorContributions.slice(0) } registerEditorAction(e) { e.register(), this.editorActions.push(e) } getEditorActions() { return this.editorActions.slice(0) } registerEditorCommand(e) { e.register(), this.editorCommands[e.id] = e } getEditorCommand(e) { return this.editorCommands[e] || null } } function M(e) { return e.register(), e } T.INSTANCE = new T, p.B.add("editor.contributions", T.INSTANCE); const A = M(new v({ id: "undo", precondition: void 0, kbOpts: { weight: 0, primary: 2104 }, menuOpts: [{ menuId: c.eH.MenubarEditMenu, group: "1_do", title: o.N({ key: "miUndo", comment: ["&& denotes a mnemonic"] }, "&&Undo"), order: 1 }, { menuId: c.eH.CommandPalette, group: "", title: o.N("undo", "Undo"), order: 1 }] })); M(new w(A, { id: "default:undo", precondition: void 0 })); const R = M(new v({ id: "redo", precondition: void 0, kbOpts: { weight: 0, primary: 2103, secondary: [3128], mac: { primary: 3128 } }, menuOpts: [{ menuId: c.eH.MenubarEditMenu, group: "1_do", title: o.N({ key: "miRedo", comment: ["&& denotes a mnemonic"] }, "&&Redo"), order: 2 }, { menuId: c.eH.CommandPalette, group: "", title: o.N("redo", "Redo"), order: 1 }] })); M(new w(R, { id: "default:redo", precondition: void 0 })); const O = M(new v({ id: "editor.action.selectAll", precondition: void 0, kbOpts: { weight: 0, kbExpr: null, primary: 2079 }, menuOpts: [{ menuId: c.eH.MenubarSelectionMenu, group: "1_basic", title: o.N({ key: "miSelectAll", comment: ["&& denotes a mnemonic"] }, "&&Select All"), order: 1 }, { menuId: c.eH.CommandPalette, group: "", title: o.N("selectAll", "Select All"), order: 1 }] })) }, 6007: (e, t, i) => { "use strict"; i.d(t, { vu: () => s, fo: () => a, Gl: () => l }); var n = i(2065), o = i(666), r = i(8401); const s = (0, n.yh)("IWorkspaceEditService"); class a { constructor(e) { this.metadata = e } static convert(e) { return e.edits.map((e => { if (t = e, (0, r.Kn)(t) && o.o.isUri(t.resource) && (0, r.Kn)(t.edit)) return new l(e.resource, e.edit, e.modelVersionId, e.metadata); var t; if (function(e) { return (0, r.Kn)(e) && (Boolean(e.newUri) || Boolean(e.oldUri)) }(e)) return new d(e.oldUri, e.newUri, e.options, e.metadata); throw new Error("Unsupported edit") })) } } class l extends a { constructor(e, t, i, n) { super(n), this.resource = e, this.textEdit = t, this.versionId = i } } class d extends a { constructor(e, t, i, n) { super(n), this.oldResource = e, this.newResource = t, this.options = i } } }, 1640: (e, t, i) => { "use strict"; i.d(t, { $: () => n }); const n = (0, i(2065).yh)("codeEditorService") }, 6341: (e, t, i) => { "use strict"; i.d(t, { Gm: () => Vo }); var n = i(6479), o = i(6830); let r = class { constructor(e, t) {} dispose() {} }; var s, a; r.ID = "editor.contrib.markerDecorations", r = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([(s = 1, a = n.i, function(e, t) { a(e, t, s) })], r), (0, o._K)(r.ID, r); var l = i(3379), d = i.n(l), c = i(7795), h = i.n(c), u = i(569), g = i.n(u), p = i(3565), m = i.n(p), f = i(9216), _ = i.n(f), b = i(4589), v = i.n(b), w = i(7337), C = {}; C.styleTagTransform = v(), C.setAttributes = m(), C.insert = g().bind( null, "head"), C.domAPI = h(), C.insertStyleElement = _(), d()(w.Z, C), w.Z && w.Z.locals && w.Z.locals; var y = i(3580), S = i(5321), x = i(7301), k = i(4669), L = i(5976), N = i(6663), D = i(9052), E = i(1640), I = i(6268), T = i(3860), M = i(8626), A = i(1432), R = i(553), O = i(3938), P = i(5393), F = i(7974); class B { constructor(e, t) { this.x = e, this.y = t, this._pageCoordinatesBrand = void 0 } toClientCoordinates() { return new W(this.x - S.DI.scrollX, this.y - S.DI.scrollY) } } class W { constructor(e, t) { this.clientX = e, this.clientY = t, this._clientCoordinatesBrand = void 0 } toPageCoordinates() { return new B(this.clientX + S.DI.scrollX, this.clientY + S.DI.scrollY) } } class z { constructor(e, t, i, n) { this.x = e, this.y = t, this.width = i, this.height = n, this._editorPagePositionBrand = void 0 } } function V(e) { const t = S.i(e); return new z(t.left, t.top, t.width, t.height) } class H extends O.n { constructor(e, t) { super(e), this._editorMouseEventBrand = void 0, this.pos = new B(this .posx, this.posy), this.editorPos = V(t) } } class U { constructor(e) { this._editorViewDomNode = e } _create(e) { return new H(e, this._editorViewDomNode) } onContextMenu(e, t) { return S.nm(e, "contextmenu", (e => { t(this._create(e)) })) } onMouseUp(e, t) { return S.nm(e, "mouseup", (e => { t(this._create(e)) })) } onMouseDown(e, t) { return S.nm(e, "mousedown", (e => { t(this._create(e)) })) } onMouseLeave(e, t) { return S.j_(e, (e => { t(this._create(e)) })) } onMouseMoveThrottled(e, t, i, n) { return S.Y_(e, "mousemove", t, ((e, t) => i(e, this._create(t))), n) } } class j { constructor(e) { this._editorViewDomNode = e } _create(e) { return new H(e, this._editorViewDomNode) } onPointerUp(e, t) { return S.nm(e, "pointerup", (e => { t(this._create(e)) })) } onPointerDown(e, t) { return S.nm(e, "pointerdown", (e => { t(this._create(e)) })) } onPointerLeave(e, t) { return S.RE(e, (e => { t(this._create(e)) })) } onPointerMoveThrottled(e, t, i, n) { return S.Y_(e, "pointermove", t, ((e, t) => i(e, this._create(t))), n) } } class K extends L.JT { constructor(e) { super(), this._editorViewDomNode = e, this._globalMouseMoveMonitor = this._register(new F.Z), this._keydownListener = null } startMonitoring(e, t, i, n, o) { this._keydownListener = S.mu(document, "keydown", (e => { e.toKeybinding().isModifierKey() || this._globalMouseMoveMonitor.stopMonitoring(! 0, e.browserEvent) }), !0), this._globalMouseMoveMonitor.startMonitoring(e, t, ((e, t) => i(e, new H(t, this._editorViewDomNode))), n, (e => { this._keydownListener.dispose(), o(e) })) } stopMonitoring() { this._globalMouseMoveMonitor.stopMonitoring(!0) } } class $ extends L.JT { 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 t = !1; for (let i = 0, n = e.length; i < n; i++) { let n = e[i]; switch (n.type) { case 0: this.onCompositionStart(n) && (t = !0); break; case 1: this.onCompositionEnd(n) && (t = !0); break; case 2: this.onConfigurationChanged(n) && (t = !0); break; case 3: this.onCursorStateChanged(n) && (t = !0); break; case 4: this.onDecorationsChanged(n) && (t = !0); break; case 5: this.onFlushed(n) && (t = !0); break; case 6: this.onFocusChanged(n) && (t = !0); break; case 7: this.onLanguageConfigurationChanged(n) && (t = !0); break; case 8: this.onLineMappingChanged(n) && (t = !0); break; case 9: this.onLinesChanged(n) && (t = !0); break; case 10: this.onLinesDeleted(n) && (t = !0); break; case 11: this.onLinesInserted(n) && (t = !0); break; case 12: this.onRevealRangeRequest(n) && (t = !0); break; case 13: this.onScrollChanged(n) && (t = !0); break; case 15: this.onTokensChanged(n) && (t = !0); break; case 14: this.onThemeChanged(n) && (t = !0); break; case 16: this.onTokensColorsChanged(n) && (t = !0); break; case 17: this.onZonesChanged(n) && (t = !0); break; default: console.info("View received unknown event: "), console.info(n) } } t && (this._shouldRender = !0) } } class q extends $ { constructor(e) { super(), this._context = e, this._context.addEventHandler(this) } dispose() { this._context.removeEventHandler(this), super.dispose() } } class Z { static write(e, t) { M.Z, e.setAttribute("data-mprt", String(t)) } static read(e) { const t = e.getAttribute("data-mprt"); return null === t ? 0 : parseInt(t, 10) } static collect(e, t) { let i = [], n = 0; for (; e && e !== document.body && e !== t;) e.nodeType === e.ELEMENT_NODE && (i[n++] = this.read(e)), e = e.parentElement; const o = new Uint8Array(n); for (let e = 0; e < n; e++) o[e] = i[n - e - 1]; return o } } class G extends class { constructor(e, t) { this._restrictedRenderingContextBrand = void 0, this._viewLayout = e, this.viewportData = t, this.scrollWidth = this._viewLayout.getScrollWidth(), this.scrollHeight = this._viewLayout.getScrollHeight(), this.visibleRange = this.viewportData.visibleRange, this.bigNumbersDelta = this.viewportData .bigNumbersDelta; const i = this._viewLayout.getCurrentViewport(); this.scrollTop = i.top, this.scrollLeft = i.left, this.viewportWidth = i.width, this.viewportHeight = i.height } getScrolledTopFromAbsoluteTop(e) { return e - this.scrollTop } getVerticalOffsetForLineNumber(e) { return this._viewLayout.getVerticalOffsetForLineNumber(e) } getDecorationsInViewport() { return this.viewportData.getDecorationsInViewport() } } { constructor(e, t, i) { super(e, t), this._renderingContextBrand = void 0, this._viewLines = i } linesVisibleRangesForRange(e, t) { return this._viewLines.linesVisibleRangesForRange(e, t) } visibleRangeForPosition(e) { return this._viewLines.visibleRangeForPosition(e) } } class Y { constructor(e, t, i) { this.outsideRenderedLine = e, this.lineNumber = t, this.ranges = i } } class Q { constructor(e, t) { this._horizontalRangeBrand = void 0, this.left = Math.round(e), this.width = Math.round(t) } static from(e) { const t = new Array(e.length); for (let i = 0, n = e.length; i < n; i++) { const n = e[i]; t[i] = new Q(n.left, n.width) } return t } toString() { return `[${this.left},${this.width}]` } } class X { constructor(e, t) { this._floatHorizontalRangeBrand = void 0, this.left = e, this.width = t } toString() { return `[${this.left},${this.width}]` } static compare(e, t) { return e.left - t.left } } class J { constructor(e, t) { this.outsideRenderedLine = e, this.originalLeft = t, this.left = Math.round( this.originalLeft) } } class ee { constructor(e, t) { this.outsideRenderedLine = e, this.ranges = t } } class te { static _createRange() { return this._handyReadyRange || (this._handyReadyRange = document.createRange()), this._handyReadyRange } static _detachRange(e, t) { e.selectNodeContents(t) } static _readClientRects(e, t, i, n, o) { const r = this._createRange(); try { return r.setStart(e, t), r.setEnd(i, n), r.getClientRects() } catch (e) { return null } finally { this._detachRange(r, o) } } static _mergeAdjacentRanges(e) { if (1 === e.length) return e; e.sort(X.compare); let t = [], i = 0, n = e[0]; for (let o = 1, r = e.length; o < r; o++) { const r = e[o]; n.left + n.width + .9 >= r.left ? n.width = Math.max(n.width, r.left + r.width - n.left) : (t[i++] = n, n = r) } return t[i++] = n, t } static _createHorizontalRangesFromClientRects(e, t) { if (!e || 0 === e.length) return null; const i = []; for (let n = 0, o = e.length; n < o; n++) { const o = e[n]; i[n] = new X(Math.max(0, o.left - t), o.width) } return this._mergeAdjacentRanges(i) } static readHorizontalRanges(e, t, i, n, o, r, s) { const a = e.children.length - 1; if (0 > a) return null; if ((t = Math.min(a, Math.max(0, t))) === (n = Math.min(a, Math.max(0, n))) && i === o && 0 === i && !e.children[t].firstChild) { const i = e.children[t].getClientRects(); return this._createHorizontalRangesFromClientRects(i, r) } t !== n && n > 0 && 0 === o && (n--, o = 1073741824); let l = e.children[t].firstChild, d = e.children[n].firstChild; if (l && d || (!l && 0 === i && t > 0 && (l = e.children[t - 1].firstChild, i = 1073741824), !d && 0 === o && n > 0 && (d = e.children[n - 1].firstChild, o = 1073741824)), !l || !d) return null; i = Math.min(l.textContent.length, Math.max(0, i)), o = Math.min(d.textContent .length, Math.max(0, o)); const c = this._readClientRects(l, i, d, o, s); return this._createHorizontalRangesFromClientRects(c, r) } } var ie = i(2550), ne = i(7736), oe = i(2321), re = i(4141); const se = !!A.tY || !(A.IJ || I.vU || I.G6); let ae = !0; class le { constructor(e, t) { this._domNode = e, this._clientRectDeltaLeft = 0, this._clientRectDeltaLeftRead = ! 1, this.endNode = t } get clientRectDeltaLeft() { return this._clientRectDeltaLeftRead || (this._clientRectDeltaLeftRead = ! 0, this._clientRectDeltaLeft = this._domNode.getBoundingClientRect() .left), this._clientRectDeltaLeft } } class de { constructor(e, t) { this.themeType = t; const i = e.options, n = i.get(42); this.renderWhitespace = i.get(88), this.renderControlCharacters = i.get( 82), this.spaceWidth = n.spaceWidth, this.middotWidth = n.middotWidth, this.wsmiddotWidth = n.wsmiddotWidth, this.useMonospaceOptimizations = n.isMonospace && !i.get(28), this.canUseHalfwidthRightwardsArrow = n.canUseHalfwidthRightwardsArrow, this.lineHeight = i.get(58), this.stopRenderingLineAfter = i.get(105), this.fontLigatures = i.get(43) } equals(e) { return this.themeType === e.themeType && this.renderWhitespace === e.renderWhitespace && this.renderControlCharacters === e.renderControlCharacters && this.spaceWidth === e.spaceWidth && this.middotWidth === e.middotWidth && this.wsmiddotWidth === e.wsmiddotWidth && this.useMonospaceOptimizations === e.useMonospaceOptimizations && this.canUseHalfwidthRightwardsArrow === e.canUseHalfwidthRightwardsArrow && this.lineHeight === e.lineHeight && this.stopRenderingLineAfter === e .stopRenderingLineAfter && this.fontLigatures === e.fontLigatures } } class ce { constructor(e) { this._options = e, this._isMaybeInvalid = !0, this._renderedViewLine = null } getDomNode() { return this._renderedViewLine && this._renderedViewLine.domNode ? this ._renderedViewLine.domNode.domNode : null } setDomNode(e) { if (!this._renderedViewLine) throw new Error( "I have no rendered view line to set the dom node to..."); this._renderedViewLine.domNode = (0, M.X)(e) } onContentChanged() { this._isMaybeInvalid = !0 } onTokensChanged() { this._isMaybeInvalid = !0 } onDecorationsChanged() { this._isMaybeInvalid = !0 } onOptionsChanged(e) { this._isMaybeInvalid = !0, this._options = e } onSelectionChanged() { return (this._options.themeType === oe.e.HIGH_CONTRAST || "selection" === this._options.renderWhitespace) && (this._isMaybeInvalid = !0, !0) } renderLine(e, t, i, n) { if (!1 === this._isMaybeInvalid) return !1; this._isMaybeInvalid = !1; const o = i.getViewLineRenderingData(e), r = this._options, s = ie.Kp.filter(o.inlineDecorations, e, o.minColumn, o.maxColumn); let a = null; if (r.themeType === oe.e.HIGH_CONTRAST || "selection" === this._options .renderWhitespace) { const t = i.selections; for (const i of t) { if (i.endLineNumber < e || i.startLineNumber > e) continue; const t = i.startLineNumber === e ? i.startColumn : o.minColumn, n = i.endLineNumber === e ? i.endColumn : o.maxColumn; t < n && (r.themeType === oe.e.HIGH_CONTRAST || "selection" !== this ._options.renderWhitespace ? s.push(new ie.Kp(t, n, "inline-selected-text", 0)) : (a || (a = []), a.push(new ne.zG(t - 1, n - 1)))) } } const l = new ne.IJ(r.useMonospaceOptimizations, r.canUseHalfwidthRightwardsArrow, o.content, o.continuesWithWrappedLine, o.isBasicASCII, o.containsRTL, o.minColumn - 1, o.tokens, s, o.tabSize, o.startVisibleColumn, r.spaceWidth, r.middotWidth, r.wsmiddotWidth, r.stopRenderingLineAfter, r.renderWhitespace, r.renderControlCharacters, r.fontLigatures !== re.n0.OFF, a); if (this._renderedViewLine && this._renderedViewLine.input.equals(l)) return !1; n.appendASCIIString('
    '); const d = (0, ne.d1)(l, n); n.appendASCIIString("
    "); let c = null; return ae && se && o.isBasicASCII && r.useMonospaceOptimizations && 0 === d.containsForeignElements && o.content.length < 300 && l.lineTokens.getCount() < 100 && (c = new he(this._renderedViewLine ? this._renderedViewLine.domNode : null, l, d.characterMapping)), c || (c = pe(this._renderedViewLine ? this._renderedViewLine.domNode : null, l, d.characterMapping, d.containsRTL, d.containsForeignElements)), this._renderedViewLine = c, !0 } layoutLine(e, t) { this._renderedViewLine && this._renderedViewLine.domNode && (this._renderedViewLine .domNode.setTop(t), this._renderedViewLine.domNode.setHeight(this._options .lineHeight)) } getWidth() { return this._renderedViewLine ? this._renderedViewLine.getWidth() : 0 } getWidthIsFast() { return !this._renderedViewLine || this._renderedViewLine.getWidthIsFast() } needsMonospaceFontCheck() { return !!this._renderedViewLine && this._renderedViewLine instanceof he } monospaceAssumptionsAreValid() { return this._renderedViewLine && this._renderedViewLine instanceof he ? this._renderedViewLine.monospaceAssumptionsAreValid() : ae } onMonospaceAssumptionsInvalidated() { this._renderedViewLine && this._renderedViewLine instanceof he && ( this._renderedViewLine = this._renderedViewLine.toSlowRenderedLine() ) } getVisibleRangesForRange(e, t, i, n) { if (!this._renderedViewLine) return null; t |= 0, i |= 0, t = Math.min(this._renderedViewLine.input.lineContent.length + 1, Math.max(1, t)), i = Math.min(this._renderedViewLine.input.lineContent .length + 1, Math.max(1, i)); const o = 0 | this._renderedViewLine.input.stopRenderingLineAfter; let r = !1; - 1 !== o && t > o + 1 && i > o + 1 && (r = !0), -1 !== o && t > o + 1 && (t = o + 1), -1 !== o && i > o + 1 && (i = o + 1); const s = this._renderedViewLine.getVisibleRangesForRange(e, t, i, n); return s && s.length > 0 ? new ee(r, s) : null } getColumnOfNodeOffset(e, t, i) { return this._renderedViewLine ? this._renderedViewLine.getColumnOfNodeOffset( e, t, i) : 1 } } ce.CLASS_NAME = "view-line"; class he { constructor(e, t, i) { this.domNode = e, this.input = t, this._characterMapping = i, this._charWidth = t.spaceWidth } getWidth() { return Math.round(this._getCharPosition(this._characterMapping.length)) } getWidthIsFast() { return !0 } monospaceAssumptionsAreValid() { if (!this.domNode) return ae; const e = this.getWidth(), t = this.domNode.domNode.firstChild.offsetWidth; return Math.abs(e - t) >= 2 && (console.warn( "monospace assumptions have been violated, therefore disabling monospace optimizations!" ), ae = !1), ae } toSlowRenderedLine() { return pe(this.domNode, this.input, this._characterMapping, !1, 0) } getVisibleRangesForRange(e, t, i, n) { const o = this._getCharPosition(t), r = this._getCharPosition(i); return [new X(o, r - o)] } _getCharPosition(e) { const t = this._characterMapping.getAbsoluteOffset(e); return this._charWidth * t } getColumnOfNodeOffset(e, t, i) { const n = t.textContent.length; let o = -1; for (; t;) t = t.previousSibling, o++; return this._characterMapping.getColumn(new ne.Nd(o, i), n) } } class ue { constructor(e, t, i, n, o) { if (this.domNode = e, this.input = t, this._characterMapping = i, this ._isWhitespaceOnly = /^\s*$/.test(t.lineContent), this._containsForeignElements = o, this._cachedWidth = -1, this._pixelOffsetCache = null, !n || 0 === this._characterMapping.length) { this._pixelOffsetCache = new Float32Array(Math.max(2, this._characterMapping .length + 1)); for (let e = 0, t = this._characterMapping.length; e <= t; e++) this._pixelOffsetCache[ e] = -1 } } _getReadingTarget(e) { return e.domNode.firstChild } getWidth() { return this.domNode ? (-1 === this._cachedWidth && (this._cachedWidth = this._getReadingTarget(this.domNode).offsetWidth), this._cachedWidth) : 0 } getWidthIsFast() { return -1 !== this._cachedWidth } getVisibleRangesForRange(e, t, i, n) { if (!this.domNode) return null; if (null !== this._pixelOffsetCache) { const o = this._readPixelOffset(this.domNode, e, t, n); if (-1 === o) return null; const r = this._readPixelOffset(this.domNode, e, i, n); return -1 === r ? null : [new X(o, r - o)] } return this._readVisibleRangesForRange(this.domNode, e, t, i, n) } _readVisibleRangesForRange(e, t, i, n, o) { if (i === n) { const n = this._readPixelOffset(e, t, i, o); return -1 === n ? null : [new X(n, 0)] } return this._readRawVisibleRangesForRange(e, i, n, o) } _readPixelOffset(e, t, i, n) { if (0 === this._characterMapping.length) { if (0 === this._containsForeignElements) return 0; if (2 === this._containsForeignElements) return 0; if (1 === this._containsForeignElements) return this.getWidth(); const t = this._getReadingTarget(e); return t.firstChild ? t.firstChild.offsetWidth : 0 } if (null !== this._pixelOffsetCache) { const o = this._pixelOffsetCache[i]; if (-1 !== o) return o; const r = this._actualReadPixelOffset(e, t, i, n); return this._pixelOffsetCache[i] = r, r } return this._actualReadPixelOffset(e, t, i, n) } _actualReadPixelOffset(e, t, i, n) { if (0 === this._characterMapping.length) { const t = te.readHorizontalRanges(this._getReadingTarget(e), 0, 0, 0, 0, n.clientRectDeltaLeft, n.endNode); return t && 0 !== t.length ? t[0].left : -1 } if (i === this._characterMapping.length && this._isWhitespaceOnly && 0 === this._containsForeignElements) return this.getWidth(); const o = this._characterMapping.getDomPosition(i), r = te.readHorizontalRanges(this._getReadingTarget(e), o.partIndex, o .charIndex, o.partIndex, o.charIndex, n.clientRectDeltaLeft, n.endNode ); if (!r || 0 === r.length) return -1; const s = r[0].left; if (this.input.isBasicASCII) { const e = this._characterMapping.getAbsoluteOffset(i), t = Math.round(this.input.spaceWidth * e); if (Math.abs(t - s) <= 1) return t } return s } _readRawVisibleRangesForRange(e, t, i, n) { if (1 === t && i === this._characterMapping.length) return [new X(0, this.getWidth())]; const o = this._characterMapping.getDomPosition(t), r = this._characterMapping.getDomPosition(i); return te.readHorizontalRanges(this._getReadingTarget(e), o.partIndex, o.charIndex, r.partIndex, r.charIndex, n.clientRectDeltaLeft, n.endNode ) } getColumnOfNodeOffset(e, t, i) { const n = t.textContent.length; let o = -1; for (; t;) t = t.previousSibling, o++; return this._characterMapping.getColumn(new ne.Nd(o, i), n) } } class ge extends ue { _readVisibleRangesForRange(e, t, i, n, o) { const r = super._readVisibleRangesForRange(e, t, i, n, o); if (!r || 0 === r.length || i === n || 1 === i && n === this._characterMapping .length) return r; if (!this.input.containsRTL) { const i = this._readPixelOffset(e, t, n, o); if (-1 !== i) { const e = r[r.length - 1]; e.left < i && (e.width = i - e.left) } } return r } } const pe = I.Pf ? function(e, t, i, n, o) { return new ge(e, t, i, n, o) } : function(e, t, i, n, o) { return new ue(e, t, i, n, o) }; var me, fe = i(187), _e = i(4314), be = i(3181), ve = i(3675); class we { constructor(e = null) { this.hitTarget = e, this.type = 0 } } class Ce { constructor(e, t, i) { this.position = e, this.spanNode = t, this.injectedText = i, this.type = 1 } }! function(e) { e.createFromDOMInfo = function(e, t, i) { const n = e.getPositionFromDOMInfo(t, i); return n ? new Ce(n, t, null) : new we(t) } }(me || (me = {})); class ye { constructor(e, t) { this.lastViewCursorsRenderData = e, this.lastTextareaPosition = t } } class Se { constructor(e, t, i = 0, n = null, o = null, r = null) { this.element = e, this.type = t, this.mouseColumn = i, this.position = n, !o && n && (o = new _e.e(n.lineNumber, n.column, n.lineNumber, n.column)), this.range = o, this.detail = r } static _typeToString(e) { return 1 === e ? "TEXTAREA" : 2 === e ? "GUTTER_GLYPH_MARGIN" : 3 === e ? "GUTTER_LINE_NUMBERS" : 4 === e ? "GUTTER_LINE_DECORATIONS" : 5 === e ? "GUTTER_VIEW_ZONE" : 6 === e ? "CONTENT_TEXT" : 7 === e ? "CONTENT_EMPTY" : 8 === e ? "CONTENT_VIEW_ZONE" : 9 === e ? "CONTENT_WIDGET" : 10 === e ? "OVERVIEW_RULER" : 11 === e ? "SCROLLBAR" : 12 === e ? "OVERLAY_WIDGET" : "UNKNOWN" } static toString(e) { return this._typeToString(e.type) + ": " + e.position + " - " + e.range + " - " + e.detail } toString() { return Se.toString(this) } } class xe { static isTextArea(e) { return 2 === e.length && 3 === e[0] && 6 === e[1] } static isChildOfViewLines(e) { return e.length >= 4 && 3 === e[0] && 7 === e[3] } static isStrictChildOfViewLines(e) { return e.length > 4 && 3 === e[0] && 7 === e[3] } static isChildOfScrollableElement(e) { return e.length >= 2 && 3 === e[0] && 5 === e[1] } static isChildOfMinimap(e) { return e.length >= 2 && 3 === e[0] && 8 === e[1] } static isChildOfContentWidgets(e) { return e.length >= 4 && 3 === e[0] && 1 === e[3] } static isChildOfOverflowingContentWidgets(e) { return e.length >= 1 && 2 === e[0] } static isChildOfOverlayWidgets(e) { return e.length >= 2 && 3 === e[0] && 4 === e[1] } } class ke { constructor(e, t, i) { this.model = e.model; const n = e.configuration.options; this.layoutInfo = n.get(130), this.viewDomNode = t.viewDomNode, this.lineHeight = n.get(58), this.stickyTabStops = n.get(104), this.typicalHalfwidthCharacterWidth = n.get(42).typicalHalfwidthCharacterWidth, this.lastRenderData = i, this._context = e, this._viewHelper = t } getZoneAtCoord(e) { return ke.getZoneAtCoord(this._context, e) } static getZoneAtCoord(e, t) { const i = e.viewLayout.getWhitespaceAtVerticalOffset(t); if (i) { const n = i.verticalOffset + i.height / 2, o = e.model.getLineCount(); let r, s = null, a = null; return i.afterLineNumber !== o && (a = new fe.L(i.afterLineNumber + 1, 1)), i.afterLineNumber > 0 && (s = new fe.L(i.afterLineNumber, e.model .getLineMaxColumn(i.afterLineNumber))), r = null === a ? s : null === s ? a : t < n ? s : a, { viewZoneId: i.id, afterLineNumber: i.afterLineNumber, positionBefore: s, positionAfter: a, position: r } } return null } getFullLineRangeAtCoord(e) { if (this._context.viewLayout.isAfterLines(e)) { const e = this._context.model.getLineCount(), t = this._context.model.getLineMaxColumn(e); return { range: new _e.e(e, t, e, t), isAfterLines: !0 } } const t = this._context.viewLayout.getLineNumberAtVerticalOffset(e), i = this._context.model.getLineMaxColumn(t); return { range: new _e.e(t, 1, t, i), isAfterLines: !1 } } getLineNumberAtVerticalOffset(e) { return this._context.viewLayout.getLineNumberAtVerticalOffset(e) } isAfterLines(e) { return this._context.viewLayout.isAfterLines(e) } isInTopPadding(e) { return this._context.viewLayout.isInTopPadding(e) } isInBottomPadding(e) { return this._context.viewLayout.isInBottomPadding(e) } getVerticalOffsetForLineNumber(e) { return this._context.viewLayout.getVerticalOffsetForLineNumber(e) } findAttribute(e, t) { return ke._findAttribute(e, t, this._viewHelper.viewDomNode) } static _findAttribute(e, t, i) { for (; e && e !== document.body;) { if (e.hasAttribute && e.hasAttribute(t)) return e.getAttribute(t); if (e === i) return null; e = e.parentNode } return null } getLineWidth(e) { return this._viewHelper.getLineWidth(e) } visibleRangeForPosition(e, t) { return this._viewHelper.visibleRangeForPosition(e, t) } getPositionFromDOMInfo(e, t) { return this._viewHelper.getPositionFromDOMInfo(e, t) } getCurrentScrollTop() { return this._context.viewLayout.getCurrentScrollTop() } getCurrentScrollLeft() { return this._context.viewLayout.getCurrentScrollLeft() } } class Le extends class { constructor(e, t, i) { this.editorPos = t, this.pos = i, this.mouseVerticalOffset = Math.max( 0, e.getCurrentScrollTop() + i.y - t.y), this.mouseContentHorizontalOffset = e.getCurrentScrollLeft() + i.x - t.x - e.layoutInfo.contentLeft, this .isInMarginArea = i.x - t.x < e.layoutInfo.contentLeft && i.x - t.x >= e.layoutInfo.glyphMarginLeft, this.isInContentArea = !this.isInMarginArea, this.mouseColumn = Math.max(0, Ee._getMouseColumn(this.mouseContentHorizontalOffset, e.typicalHalfwidthCharacterWidth)) } } { constructor(e, t, i, n) { super(e, t, i), this._ctx = e, n ? (this.target = n, this.targetPath = Z.collect(n, e.viewDomNode)) : (this.target = null, this.targetPath = new Uint8Array(0)) } toString() { return `pos(${this.pos.x},${this.pos.y}), editorPos(${this.editorPos.x},${this.editorPos.y}), mouseVerticalOffset: ${this.mouseVerticalOffset}, mouseContentHorizontalOffset: ${this.mouseContentHorizontalOffset}\n\ttarget: ${this.target?this.target.outerHTML:null}` } fulfill(e, t = null, i = null, n = null) { let o = this.mouseColumn; return t && t.column < this._ctx.model.getLineMaxColumn(t.lineNumber) && (o = be.io.visibleColumnFromColumn(this._ctx.model.getLineContent(t.lineNumber), t.column, this._ctx.model.getTextModelOptions().tabSize) + 1), new Se( this.target, e, o, t, i, n) } withTarget(e) { return new Le(this._ctx, this.editorPos, this.pos, e) } } const Ne = { isAfterLines: !0 }; function De(e) { return { isAfterLines: !1, horizontalDistanceToText: e } } class Ee { constructor(e, t) { this._context = e, this._viewHelper = t } mouseTargetIsWidget(e) { const t = e.target, i = Z.collect(t, this._viewHelper.viewDomNode); return !(!xe.isChildOfContentWidgets(i) && !xe.isChildOfOverflowingContentWidgets( i) && !xe.isChildOfOverlayWidgets(i)) } createMouseTarget(e, t, i, n) { const o = new ke(this._context, this._viewHelper, e), r = new Le(o, t, i, n); try { return Ee._createMouseTarget(o, r, !1) } catch (e) { return r.fulfill(0) } } static _createMouseTarget(e, t, i) { if (null === t.target) { if (i) return t.fulfill(0); const n = Ee._doHitTest(e, t); return 1 === n.type ? Ee.createMouseTargetFromHitTestPosition(e, t, n .spanNode, n.position, n.injectedText) : this._createMouseTarget(e, t.withTarget(n.hitTarget), !0) } const n = t; let o = null; return o = o || Ee._hitTestContentWidget(e, n), o = o || Ee._hitTestOverlayWidget( e, n), o = o || Ee._hitTestMinimap(e, n), o = o || Ee._hitTestScrollbarSlider( e, n), o = o || Ee._hitTestViewZone(e, n), o = o || Ee._hitTestMargin( e, n), o = o || Ee._hitTestViewCursor(e, n), o = o || Ee._hitTestTextArea( e, n), o = o || Ee._hitTestViewLines(e, n, i), o = o || Ee._hitTestScrollbar( e, n), o || t.fulfill(0) } static _hitTestContentWidget(e, t) { if (xe.isChildOfContentWidgets(t.targetPath) || xe.isChildOfOverflowingContentWidgets( t.targetPath)) { const i = e.findAttribute(t.target, "widgetId"); return i ? t.fulfill(9, null, null, i) : t.fulfill(0) } return null } static _hitTestOverlayWidget(e, t) { if (xe.isChildOfOverlayWidgets(t.targetPath)) { const i = e.findAttribute(t.target, "widgetId"); return i ? t.fulfill(12, null, null, i) : t.fulfill(0) } return null } static _hitTestViewCursor(e, t) { if (t.target) { const i = e.lastRenderData.lastViewCursorsRenderData; for (const e of i) if (t.target === e.domNode) return t.fulfill(6, e.position, null, { mightBeForeignElement: !1 }) } if (t.isInContentArea) { const i = e.lastRenderData.lastViewCursorsRenderData, n = t.mouseContentHorizontalOffset, o = t.mouseVerticalOffset; for (const r of i) { if (n < r.contentLeft) continue; if (n > r.contentLeft + r.width) continue; const i = e.getVerticalOffsetForLineNumber(r.position.lineNumber); if (i <= o && o <= i + r.height) return t.fulfill(6, r.position, null, { mightBeForeignElement: !1 }) } } return null } static _hitTestViewZone(e, t) { const i = e.getZoneAtCoord(t.mouseVerticalOffset); if (i) { const e = t.isInContentArea ? 8 : 5; return t.fulfill(e, i.position, null, i) } return null } static _hitTestTextArea(e, t) { return xe.isTextArea(t.targetPath) ? e.lastRenderData.lastTextareaPosition ? t.fulfill(6, e.lastRenderData.lastTextareaPosition, null, { mightBeForeignElement: !1 }) : t.fulfill(1, e.lastRenderData.lastTextareaPosition) : null } static _hitTestMargin(e, t) { if (t.isInMarginArea) { const i = e.getFullLineRangeAtCoord(t.mouseVerticalOffset), n = i.range.getStartPosition(); let o = Math.abs(t.pos.x - t.editorPos.x); const r = { isAfterLines: i.isAfterLines, glyphMarginLeft: e.layoutInfo.glyphMarginLeft, glyphMarginWidth: e.layoutInfo.glyphMarginWidth, lineNumbersWidth: e.layoutInfo.lineNumbersWidth, offsetX: o }; return o -= e.layoutInfo.glyphMarginLeft, o <= e.layoutInfo.glyphMarginWidth ? t.fulfill(2, n, i.range, r) : (o -= e.layoutInfo.glyphMarginWidth, o <= e.layoutInfo.lineNumbersWidth ? t.fulfill(3, n, i.range, r) : (o -= e.layoutInfo.lineNumbersWidth, t.fulfill(4, n, i.range, r))) } return null } static _hitTestViewLines(e, t, i) { if (!xe.isChildOfViewLines(t.targetPath)) return null; if (e.isInTopPadding(t.mouseVerticalOffset)) return t.fulfill(7, new fe .L(1, 1), null, Ne); if (e.isAfterLines(t.mouseVerticalOffset) || e.isInBottomPadding(t.mouseVerticalOffset)) { const i = e.model.getLineCount(), n = e.model.getLineMaxColumn(i); return t.fulfill(7, new fe.L(i, n), null, Ne) } if (i) { if (xe.isStrictChildOfViewLines(t.targetPath)) { const i = e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset); if (0 === e.model.getLineLength(i)) { const n = e.getLineWidth(i), o = De(t.mouseContentHorizontalOffset - n); return t.fulfill(7, new fe.L(i, 1), null, o) } const n = e.getLineWidth(i); if (t.mouseContentHorizontalOffset >= n) { const o = De(t.mouseContentHorizontalOffset - n), r = new fe.L(i, e.model.getLineMaxColumn(i)); return t.fulfill(7, r, null, o) } } return t.fulfill(0) } const n = Ee._doHitTest(e, t); return 1 === n.type ? Ee.createMouseTargetFromHitTestPosition(e, t, n.spanNode, n.position, n.injectedText) : this._createMouseTarget(e, t.withTarget( n.hitTarget), !0) } static _hitTestMinimap(e, t) { if (xe.isChildOfMinimap(t.targetPath)) { const i = e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset), n = e.model.getLineMaxColumn(i); return t.fulfill(11, new fe.L(i, n)) } return null } static _hitTestScrollbarSlider(e, t) { if (xe.isChildOfScrollableElement(t.targetPath) && t.target && 1 === t .target.nodeType) { const i = t.target.className; if (i && /\b(slider|scrollbar)\b/.test(i)) { const i = e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset), n = e.model.getLineMaxColumn(i); return t.fulfill(11, new fe.L(i, n)) } } return null } static _hitTestScrollbar(e, t) { if (xe.isChildOfScrollableElement(t.targetPath)) { const i = e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset), n = e.model.getLineMaxColumn(i); return t.fulfill(11, new fe.L(i, n)) } return null } getMouseColumn(e, t) { const i = this._context.configuration.options, n = i.get(130), o = this._context.viewLayout.getCurrentScrollLeft() + t.x - e.x - n.contentLeft; return Ee._getMouseColumn(o, i.get(42).typicalHalfwidthCharacterWidth) } static _getMouseColumn(e, t) { return e < 0 ? 1 : Math.round(e / t) + 1 } static createMouseTargetFromHitTestPosition(e, t, i, n, o) { const r = n.lineNumber, s = n.column, a = e.getLineWidth(r); if (t.mouseContentHorizontalOffset > a) { const e = De(t.mouseContentHorizontalOffset - a); return t.fulfill(7, n, null, e) } const l = e.visibleRangeForPosition(r, s); if (!l) return t.fulfill(0, n); const d = l.left; if (t.mouseContentHorizontalOffset === d) return t.fulfill(6, n, null, { mightBeForeignElement: !!o }); const c = []; if (c.push({ offset: l.left, column: s }), s > 1) { const t = e.visibleRangeForPosition(r, s - 1); t && c.push({ offset: t.left, column: s - 1 }) } if (s < e.model.getLineMaxColumn(r)) { const t = e.visibleRangeForPosition(r, s + 1); t && c.push({ offset: t.left, column: s + 1 }) } c.sort(((e, t) => e.offset - t.offset)); const h = t.pos.toClientCoordinates(), u = i.getBoundingClientRect(), g = u.left <= h.clientX && h.clientX <= u.right; for (let e = 1; e < c.length; e++) { const i = c[e - 1], s = c[e]; if (i.offset <= t.mouseContentHorizontalOffset && t.mouseContentHorizontalOffset <= s.offset) { const e = new _e.e(r, i.column, r, s.column); return t.fulfill(6, n, e, { mightBeForeignElement: !g || !!o }) } } return t.fulfill(6, n, null, { mightBeForeignElement: !g || !!o }) } static _doHitTestWithCaretRangeFromPoint(e, t) { const i = e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset), n = e.getVerticalOffsetForLineNumber(i) + Math.floor(e.lineHeight / 2); let o = t.pos.y + (n - t.mouseVerticalOffset); o <= t.editorPos.y && (o = t.editorPos.y + 1), o >= t.editorPos.y + e.layoutInfo .height && (o = t.editorPos.y + e.layoutInfo.height - 1); const r = new B(t.pos.x, o), s = this._actualDoHitTestWithCaretRangeFromPoint(e, r.toClientCoordinates()); return 1 === s.type ? s : this._actualDoHitTestWithCaretRangeFromPoint( e, t.pos.toClientCoordinates()) } static _actualDoHitTestWithCaretRangeFromPoint(e, t) { const i = S.Ay(e.viewDomNode); let n; if (n = i ? void 0 === i.caretRangeFromPoint ? function(e, t, i) { const n = document.createRange(); let o = e.elementFromPoint(t, i); if (null !== o) { for (; o && o.firstChild && o.firstChild.nodeType !== o.firstChild.TEXT_NODE && o.lastChild && o.lastChild.firstChild;) o = o.lastChild; const e = o.getBoundingClientRect(), i = window.getComputedStyle(o, null).getPropertyValue("font"), r = o.innerText; let s, a = e.left, l = 0; if (t > e.left + e.width) l = r.length; else { const e = Ie.getInstance(); for (let n = 0; n < r.length + 1; n++) { if (s = e.getCharWidth(r.charAt(n), i) / 2, a += s, t < a) { l = n; break } a += s } } n.setStart(o.firstChild, l), n.setEnd(o.firstChild, l) } return n }(i, t.clientX, t.clientY) : i.caretRangeFromPoint(t.clientX, t.clientY) : document.caretRangeFromPoint(t.clientX, t.clientY), !n || !n.startContainer ) return new we; const o = n.startContainer; if (o.nodeType === o.TEXT_NODE) { const t = o.parentNode, i = t ? t.parentNode : null, r = i ? i.parentNode : null; return (r && r.nodeType === r.ELEMENT_NODE ? r.className : null) === ce.CLASS_NAME ? me.createFromDOMInfo(e, t, n.startOffset) : new we(o .parentNode) } if (o.nodeType === o.ELEMENT_NODE) { const t = o.parentNode, i = t ? t.parentNode : null; return (i && i.nodeType === i.ELEMENT_NODE ? i.className : null) === ce.CLASS_NAME ? me.createFromDOMInfo(e, o, o.textContent.length) : new we(o) } return new we } static _doHitTestWithCaretPositionFromPoint(e, t) { const i = document.caretPositionFromPoint(t.clientX, t.clientY); if (i.offsetNode.nodeType === i.offsetNode.TEXT_NODE) { const t = i.offsetNode.parentNode, n = t ? t.parentNode : null, o = n ? n.parentNode : null; return (o && o.nodeType === o.ELEMENT_NODE ? o.className : null) === ce.CLASS_NAME ? me.createFromDOMInfo(e, i.offsetNode.parentNode, i.offset) : new we(i.offsetNode.parentNode) } if (i.offsetNode.nodeType === i.offsetNode.ELEMENT_NODE) { const t = i.offsetNode.parentNode, n = t && t.nodeType === t.ELEMENT_NODE ? t.className : null, o = t ? t.parentNode : null, r = o && o.nodeType === o.ELEMENT_NODE ? o.className : null; if (n === ce.CLASS_NAME) { const t = i.offsetNode.childNodes[Math.min(i.offset, i.offsetNode.childNodes .length - 1)]; if (t) return me.createFromDOMInfo(e, t, 0) } else if (r === ce.CLASS_NAME) return me.createFromDOMInfo(e, i.offsetNode, 0) } return new we(i.offsetNode) } static _snapToSoftTabBoundary(e, t) { const i = t.getLineContent(e.lineNumber), { tabSize: n } = t.getTextModelOptions(), o = ve.l.atomicPosition(i, e.column - 1, n, 2); return -1 !== o ? new fe.L(e.lineNumber, o + 1) : e } static _doHitTest(e, t) { let i = new we; if ("function" == typeof document.caretRangeFromPoint ? i = this._doHitTestWithCaretRangeFromPoint( e, t) : document.caretPositionFromPoint && (i = this._doHitTestWithCaretPositionFromPoint( e, t.pos.toClientCoordinates())), 1 === i.type) { const t = e.model.getInjectedTextAt(i.position), n = e.model.normalizePosition(i.position, 2); !t && n.equals(i.position) || (i = new Ce(n, i.spanNode, t)) } return 1 === i.type && e.stickyTabStops && (i = new Ce(this._snapToSoftTabBoundary( i.position, e.model), i.spanNode, i.injectedText)), i } } class Ie { constructor() { this._cache = {}, this._canvas = document.createElement("canvas") } static getInstance() { return Ie._INSTANCE || (Ie._INSTANCE = new Ie), Ie._INSTANCE } getCharWidth(e, t) { const i = e + t; if (this._cache[i]) return this._cache[i]; const n = this._canvas.getContext("2d"); n.font = t; const o = n.measureText(e).width; return this._cache[i] = o, o } } Ie._INSTANCE = null; var Te = i(2334); function Me(e) { return function(t, i) { let n = !1; return e && (n = e.mouseTargetIsWidget(i)), n || i.preventDefault(), i } } class Ae extends $ { constructor(e, t, i) { super(), this._context = e, this.viewController = t, this.viewHelper = i, this.mouseTargetFactory = new Ee(this._context, i), this._mouseDownOperation = this._register(new Re(this._context, this.viewController, this.viewHelper, ( (e, t) => this._createMouseTarget(e, t)), (e => this._getMouseColumn( e)))), this.lastMouseLeaveTime = -1, this._height = this._context.configuration .options.get(130).height; const n = new U(this.viewHelper.viewDomNode); this._register(n.onContextMenu(this.viewHelper.viewDomNode, (e => this ._onContextMenu(e, !0)))), this._register(n.onMouseMoveThrottled( this.viewHelper.viewDomNode, (e => this._onMouseMove(e)), Me(this.mouseTargetFactory), Ae.MOUSE_MOVE_MINIMUM_TIME)), this._register(n.onMouseUp(this.viewHelper .viewDomNode, (e => this._onMouseUp(e)))), this._register(n.onMouseLeave( this.viewHelper.viewDomNode, (e => this._onMouseLeave(e)))), this._register( n.onMouseDown(this.viewHelper.viewDomNode, (e => this._onMouseDown(e))) ), this._register(S.nm(this.viewHelper.viewDomNode, S.tw.MOUSE_WHEEL, ( e => { if (this.viewController.emitMouseWheel(e), !this._context.configuration .options.get(67)) return; const t = new O.q(e); if (A.dz ? (e.metaKey || e.ctrlKey) && !e.shiftKey && !e.altKey : e.ctrlKey && !e.metaKey && !e.shiftKey && !e.altKey) { const e = Te.C.getZoomLevel(), i = t.deltaY > 0 ? 1 : -1; Te.C.setZoomLevel(e + i), t.preventDefault(), t.stopPropagation() } }), { capture: !0, passive: !1 })), this._context.addEventHandler(this) } dispose() { this._context.removeEventHandler(this), super.dispose() } onConfigurationChanged(e) { if (e.hasChanged(130)) { const e = this._context.configuration.options.get(130).height; this._height !== e && (this._height = e, this._mouseDownOperation.onHeightChanged()) } return !1 } onCursorStateChanged(e) { return this._mouseDownOperation.onCursorStateChanged(e), !1 } onFocusChanged(e) { return !1 } onScrollChanged(e) { return this._mouseDownOperation.onScrollChanged(), !1 } getTargetAtClientPoint(e, t) { const i = new W(e, t).toPageCoordinates(), n = V(this.viewHelper.viewDomNode); return i.y < n.y || i.y > n.y + n.height || i.x < n.x || i.x > n.x + n .width ? null : this.mouseTargetFactory.createMouseTarget(this.viewHelper .getLastRenderData(), n, i, null) } _createMouseTarget(e, t) { let i = e.target; if (!this.viewHelper.viewDomNode.contains(i)) { const t = S.Ay(this.viewHelper.viewDomNode); t && (i = t.elementsFromPoint(e.posx, e.posy).find((e => this.viewHelper .viewDomNode.contains(e)))) } return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(), e.editorPos, e.pos, t ? i : null) } _getMouseColumn(e) { return this.mouseTargetFactory.getMouseColumn(e.editorPos, e.pos) } _onContextMenu(e, t) { this.viewController.emitContextMenu({ event: e, target: this._createMouseTarget(e, t) }) } _onMouseMove(e) { this._mouseDownOperation.isActive() || e.timestamp < this.lastMouseLeaveTime || this.viewController.emitMouseMove({ event: e, target: this._createMouseTarget(e, !0) }) } _onMouseLeave(e) { this.lastMouseLeaveTime = (new Date).getTime(), this.viewController.emitMouseLeave({ event: e, target: null }) } _onMouseUp(e) { this.viewController.emitMouseUp({ event: e, target: this._createMouseTarget(e, !0) }) } _onMouseDown(e) { const t = this._createMouseTarget(e, !0), i = 6 === t.type || 7 === t.type, n = 2 === t.type || 3 === t.type || 4 === t.type, o = 3 === t.type, r = this._context.configuration.options.get(98), s = 8 === t.type || 5 === t.type, a = 9 === t.type; let l = e.leftButton || e.middleButton; A.dz && e.leftButton && e.ctrlKey && (l = !1); const d = () => { e.preventDefault(), this.viewHelper.focusTextArea() }; if (l && (i || o && r)) d(), this._mouseDownOperation.start(t.type, e); else if (n) e.preventDefault(); else if (s) { const i = t.detail; this.viewHelper.shouldSuppressMouseDownOnViewZone(i.viewZoneId) && (d(), this._mouseDownOperation.start(t.type, e), e.preventDefault()) } else a && this.viewHelper.shouldSuppressMouseDownOnWidget(t.detail) && (d(), e.preventDefault()); this.viewController.emitMouseDown({ event: e, target: t }) } } Ae.MOUSE_MOVE_MINIMUM_TIME = 100; class Re extends L.JT { constructor(e, t, i, n, o) { super(), this._context = e, this._viewController = t, this._viewHelper = i, this._createMouseTarget = n, this._getMouseColumn = o, this._mouseMoveMonitor = this._register(new K(this._viewHelper.viewDomNode)), this._onScrollTimeout = this._register(new P._F), this._mouseState = new Oe, this._currentSelection = new T.Y(1, 1, 1, 1), this._isActive = !1, this._lastMouseEvent = null } dispose() { super.dispose() } isActive() { return this._isActive } _onMouseDownThenMove(e) { this._lastMouseEvent = e, this._mouseState.setModifiers(e); const t = this._findMousePosition(e, !0); t && (this._mouseState.isDragAndDrop ? this._viewController.emitMouseDrag({ event: e, target: t }) : this._dispatchMouse(t, !0)) } start(e, t) { this._lastMouseEvent = t, this._mouseState.setStartedOnLineNumbers(3 === e), this._mouseState.setStartButtons(t), this._mouseState.setModifiers( t); const i = this._findMousePosition(t, !0); if (!i || !i.position) return; this._mouseState.trySetCount(t.detail, i.position), t.detail = this._mouseState .count; const n = this._context.configuration.options; if (!n.get(80) && n.get(30) && !n.get(17) && !this._mouseState.altKey && t.detail < 2 && !this._isActive && !this._currentSelection.isEmpty() && 6 === i.type && i.position && this._currentSelection.containsPosition( i.position)) return this._mouseState.isDragAndDrop = !0, this._isActive = ! 0, void this._mouseMoveMonitor.startMonitoring(t.target, t.buttons, Me(null), (e => this._onMouseDownThenMove(e)), (e => { const t = this._findMousePosition(this._lastMouseEvent, !0); e && e instanceof KeyboardEvent ? this._viewController.emitMouseDropCanceled() : this._viewController.emitMouseDrop({ event: this._lastMouseEvent, target: t ? this._createMouseTarget(this._lastMouseEvent, !0) : null }), this._stop() })); this._mouseState.isDragAndDrop = !1, this._dispatchMouse(i, t.shiftKey), this._isActive || (this._isActive = !0, this._mouseMoveMonitor.startMonitoring( t.target, t.buttons, Me(null), (e => this._onMouseDownThenMove(e)), ( () => this._stop()))) } _stop() { this._isActive = !1, this._onScrollTimeout.cancel() } onHeightChanged() { this._mouseMoveMonitor.stopMonitoring() } onScrollChanged() { this._isActive && this._onScrollTimeout.setIfNotSet((() => { if (!this._lastMouseEvent) return; const e = this._findMousePosition(this._lastMouseEvent, !1); e && (this._mouseState.isDragAndDrop || this._dispatchMouse(e, !0)) }), 10) } onCursorStateChanged(e) { this._currentSelection = e.selections[0] } _getPositionOutsideEditor(e) { const t = e.editorPos, i = this._context.model, n = this._context.viewLayout, o = this._getMouseColumn(e); if (e.posy < t.y) { const i = Math.max(n.getCurrentScrollTop() - (t.y - e.posy), 0), r = ke.getZoneAtCoord(this._context, i); if (r) { const e = this._helpPositionJumpOverViewZone(r); if (e) return new Se(null, 13, o, e) } const s = n.getLineNumberAtVerticalOffset(i); return new Se(null, 13, o, new fe.L(s, 1)) } if (e.posy > t.y + t.height) { const r = n.getCurrentScrollTop() + (e.posy - t.y), s = ke.getZoneAtCoord(this._context, r); if (s) { const e = this._helpPositionJumpOverViewZone(s); if (e) return new Se(null, 13, o, e) } const a = n.getLineNumberAtVerticalOffset(r); return new Se(null, 13, o, new fe.L(a, i.getLineMaxColumn(a))) } const r = n.getLineNumberAtVerticalOffset(n.getCurrentScrollTop() + ( e.posy - t.y)); return e.posx < t.x ? new Se(null, 13, o, new fe.L(r, 1)) : e.posx > t.x + t.width ? new Se(null, 13, o, new fe.L(r, i.getLineMaxColumn(r))) : null } _findMousePosition(e, t) { const i = this._getPositionOutsideEditor(e); if (i) return i; const n = this._createMouseTarget(e, t); if (!n.position) return null; if (8 === n.type || 5 === n.type) { const e = this._helpPositionJumpOverViewZone(n.detail); if (e) return new Se(n.element, n.type, n.mouseColumn, e, null, n.detail) } return n } _helpPositionJumpOverViewZone(e) { const t = new fe.L(this._currentSelection.selectionStartLineNumber, this._currentSelection.selectionStartColumn), i = e.positionBefore, n = e.positionAfter; return i && n ? i.isBefore(t) ? i : n : null } _dispatchMouse(e, t) { e.position && this._viewController.dispatchMouse({ position: e.position, mouseColumn: e.mouseColumn, startedOnLineNumbers: this._mouseState.startedOnLineNumbers, inSelectionMode: t, 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 }) } } class Oe { 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 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 } get count() { return this._lastMouseDownCount } setModifiers(e) { this._altKey = e.altKey, this._ctrlKey = e.ctrlKey, this._metaKey = e.metaKey, this._shiftKey = e.shiftKey } setStartButtons(e) { this._leftButton = e.leftButton, this._middleButton = e.middleButton } setStartedOnLineNumbers(e) { this._startedOnLineNumbers = e } trySetCount(e, t) { const i = (new Date).getTime(); i - this._lastSetMouseDownCountTime > Oe.CLEAR_MOUSE_DOWN_COUNT_TIME && (e = 1), this._lastSetMouseDownCountTime = i, e > this._lastMouseDownCount + 1 && (e = this._lastMouseDownCount + 1), this._lastMouseDownPosition && this._lastMouseDownPosition.equals(t) ? this._lastMouseDownPositionEqualCount++ : this._lastMouseDownPositionEqualCount = 1, this._lastMouseDownPosition = t, this._lastMouseDownCount = Math.min(e, this._lastMouseDownPositionEqualCount) } } Oe.CLEAR_MOUSE_DOWN_COUNT_TIME = 400; var Pe = i(161), Fe = i(5715); class Be extends Ae { constructor(e, t, i) { super(e, t, i), this._register(R.o.addTarget(this.viewHelper.linesContentDomNode)), this._register(S.nm(this.viewHelper.linesContentDomNode, R.t.Tap, (e => this.onTap(e)))), this._register(S.nm(this.viewHelper.linesContentDomNode, R.t.Change, (e => this.onChange(e)))), this._register(S.nm(this.viewHelper .linesContentDomNode, R.t.Contextmenu, (e => this._onContextMenu( new H(e, this.viewHelper.viewDomNode), !1)))), this._lastPointerType = "mouse", this._register(S.nm(this.viewHelper.linesContentDomNode, "pointerdown", (e => { const t = e.pointerType; this._lastPointerType = "mouse" !== t ? "touch" === t ? "touch" : "pen" : "mouse" }))); const n = new j(this.viewHelper.viewDomNode); this._register(n.onPointerMoveThrottled(this.viewHelper.viewDomNode, ( e => this._onMouseMove(e)), Me(this.mouseTargetFactory), Ae.MOUSE_MOVE_MINIMUM_TIME)), this._register(n.onPointerUp(this.viewHelper.viewDomNode, (e => this._onMouseUp( e)))), this._register(n.onPointerLeave(this.viewHelper.viewDomNode, ( e => this._onMouseLeave(e)))), this._register(n.onPointerDown(this.viewHelper .viewDomNode, (e => this._onMouseDown(e)))) } onTap(e) { if (!e.initialTarget || !this.viewHelper.linesContentDomNode.contains( e.initialTarget)) return; e.preventDefault(), this.viewHelper.focusTextArea(); const t = this._createMouseTarget(new H(e, this.viewHelper.viewDomNode), ! 1); t.position && this.viewController.dispatchMouse({ position: t.position, mouseColumn: t.position.column, startedOnLineNumbers: !1, mouseDownCount: e.tapCount, inSelectionMode: !1, altKey: !1, ctrlKey: !1, metaKey: !1, shiftKey: !1, leftButton: !1, middleButton: !1 }) } onChange(e) { "touch" === this._lastPointerType && this._context.model.deltaScrollNow(- e.translationX, -e.translationY) } _onMouseDown(e) { "touch" !== e.browserEvent.pointerType && super._onMouseDown(e) } } class We extends Ae { constructor(e, t, i) { super(e, t, i), this._register(R.o.addTarget(this.viewHelper.linesContentDomNode)), this._register(S.nm(this.viewHelper.linesContentDomNode, R.t.Tap, (e => this.onTap(e)))), this._register(S.nm(this.viewHelper.linesContentDomNode, R.t.Change, (e => this.onChange(e)))), this._register(S.nm(this.viewHelper .linesContentDomNode, R.t.Contextmenu, (e => this._onContextMenu( new H(e, this.viewHelper.viewDomNode), !1)))) } onTap(e) { e.preventDefault(), this.viewHelper.focusTextArea(); const t = this._createMouseTarget(new H(e, this.viewHelper.viewDomNode), ! 1); if (t.position) { const e = document.createEvent("CustomEvent"); e.initEvent(Fe.pd.Tap, !1, !0), this.viewHelper.dispatchTextAreaEvent( e), this.viewController.moveTo(t.position) } } onChange(e) { this._context.model.deltaScrollNow(-e.translationX, -e.translationY) } } class ze extends L.JT { constructor(e, t, i) { super(), A.gn && Pe.D.pointerEvents ? this.handler = this._register( new Be(e, t, i)) : window.TouchEvent ? this.handler = this._register( new We(e, t, i)) : this.handler = this._register(new Ae(e, t, i)) } getTargetAtClientPoint(e, t) { return this.handler.getTargetAtClientPoint(e, t) } } var Ve = i(504), He = {}; He.styleTagTransform = v(), He.setAttributes = m(), He.insert = g().bind( null, "head"), He.domAPI = h(), He.insertStyleElement = _(), d()(Ve.Z, He), Ve.Z && Ve.Z.locals && Ve.Z.locals; var Ue = i(7295), je = i(5887), Ke = i(6184), $e = {}; $e.styleTagTransform = v(), $e.setAttributes = m(), $e.insert = g().bind( null, "head"), $e.domAPI = h(), $e.insertStyleElement = _(), d()(Ke.Z, $e), Ke.Z && Ke.Z.locals && Ke.Z.locals; class qe extends $ {} var Ze = i(7869), Ge = i(7781); class Ye extends qe { constructor(e) { super(), this._context = e, this._readConfig(), this._lastCursorModelPosition = new fe.L(1, 1), this._renderResult = null, this._activeLineNumber = 1, this._context.addEventHandler(this) } _readConfig() { const e = this._context.configuration.options; this._lineHeight = e.get(58); const t = e.get(59); this._renderLineNumbers = t.renderType, this._renderCustomLineNumbers = t.renderFn, this._renderFinalNewline = e.get(84); const i = e.get(130); this._lineNumbersLeft = i.lineNumbersLeft, this._lineNumbersWidth = i.lineNumbersWidth } dispose() { this._context.removeEventHandler(this), this._renderResult = null, super.dispose() } onConfigurationChanged(e) { return this._readConfig(), !0 } onCursorStateChanged(e) { const t = e.selections[0].getPosition(); this._lastCursorModelPosition = this._context.model.coordinatesConverter .convertViewPositionToModelPosition(t); let i = !1; return this._activeLineNumber !== t.lineNumber && (this._activeLineNumber = t.lineNumber, i = !0), 2 !== this._renderLineNumbers && 3 !== this._renderLineNumbers || (i = !0), i } 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 } _getLineRenderLineNumber(e) { const t = this._context.model.coordinatesConverter.convertViewPositionToModelPosition( new fe.L(e, 1)); if (1 !== t.column) return ""; const i = t.lineNumber; if (this._renderCustomLineNumbers) return this._renderCustomLineNumbers( i); if (2 === this._renderLineNumbers) { const e = Math.abs(this._lastCursorModelPosition.lineNumber - i); return 0 === e ? '' + i + "" : String(e) } return 3 === this._renderLineNumbers ? this._lastCursorModelPosition.lineNumber === i || i % 10 == 0 ? String(i) : "" : String(i) } prepareRender(e) { if (0 === this._renderLineNumbers) return void(this._renderResult = null); const t = A.IJ ? this._lineHeight % 2 == 0 ? " lh-even" : " lh-odd" : "", i = e.visibleRange.startLineNumber, n = e.visibleRange.endLineNumber, o = '
    ', r = this._context.model.getLineCount(), s = []; for (let e = i; e <= n; e++) { const n = e - i; if (!this._renderFinalNewline && e === r && 0 === this._context.model .getLineLength(e)) { s[n] = ""; continue } const a = this._getLineRenderLineNumber(e); a ? e === this._activeLineNumber ? s[n] = '
    ' + a + "
    " : s[n] = o + a + "
    " : s[n] = "" } this._renderResult = s } render(e, t) { if (!this._renderResult) return ""; const i = t - e; return i < 0 || i >= this._renderResult.length ? "" : this._renderResult[ i] } } Ye.CLASS_NAME = "line-numbers", (0, Ge.Ic)(((e, t) => { const i = e.getColor(Ze.hw); i && t.addRule(`.monaco-editor .line-numbers { color: ${i}; }`); const n = e.getColor(Ze.DD); n && t.addRule( `.monaco-editor .line-numbers.active-line-number { color: ${n}; }`) })); class Qe extends q { constructor(e) { super(e); const t = this._context.configuration.options, i = t.get(130); this._canUseLayerHinting = !t.get(27), this._contentLeft = i.contentLeft, this._glyphMarginLeft = i.glyphMarginLeft, this._glyphMarginWidth = i .glyphMarginWidth, this._domNode = (0, M.X)(document.createElement( "div")), this._domNode.setClassName(Qe.OUTER_CLASS_NAME), this._domNode .setPosition("absolute"), this._domNode.setAttribute("role", "presentation"), this._domNode.setAttribute("aria-hidden", "true"), this._glyphMarginBackgroundDomNode = (0, M.X)(document.createElement( "div")), this._glyphMarginBackgroundDomNode.setClassName(Qe.CLASS_NAME), this._domNode.appendChild(this._glyphMarginBackgroundDomNode) } dispose() { super.dispose() } getDomNode() { return this._domNode } onConfigurationChanged(e) { const t = this._context.configuration.options, i = t.get(130); return this._canUseLayerHinting = !t.get(27), this._contentLeft = i.contentLeft, this._glyphMarginLeft = i.glyphMarginLeft, this._glyphMarginWidth = i .glyphMarginWidth, !0 } onScrollChanged(e) { return super.onScrollChanged(e) || e.scrollTopChanged } prepareRender(e) {} render(e) { this._domNode.setLayerHinting(this._canUseLayerHinting), this._domNode .setContain("strict"); const t = e.scrollTop - e.bigNumbersDelta; this._domNode.setTop(-t); const i = Math.min(e.scrollHeight, 1e6); this._domNode.setHeight(i), this._domNode.setWidth(this._contentLeft), this._glyphMarginBackgroundDomNode.setLeft(this._glyphMarginLeft), this._glyphMarginBackgroundDomNode.setWidth(this._glyphMarginWidth), this._glyphMarginBackgroundDomNode.setHeight(i) } } Qe.CLASS_NAME = "glyph-margin", Qe.OUTER_CLASS_NAME = "margin"; var Xe = i(9410), Je = i(1185); class et { constructor(e, t, i) { this._visibleTextAreaBrand = void 0, this.top = e, this.left = t, this .width = i } setWidth(e) { return new et(this.top, this.left, e) } } const tt = I.vU; class it extends q { constructor(e, t, i) { super(e), this._primaryCursorPosition = new fe.L(1, 1), this._primaryCursorVisibleRange = null, this._viewController = t, this._viewHelper = i, this._scrollLeft = 0, this._scrollTop = 0; const n = this._context.configuration.options, o = n.get(130); this._setAccessibilityOptions(n), this._contentLeft = o.contentLeft, this._contentWidth = o.contentWidth, this._contentHeight = o.height, this._fontInfo = n.get(42), this._lineHeight = n.get(58), this._emptySelectionClipboard = n.get(31), this._copyWithSyntaxHighlighting = n.get(20), this._visibleTextArea = null, this._selections = [new T.Y(1, 1, 1, 1)], this._modelSelections = [ new T.Y(1, 1, 1, 1) ], this._lastRenderPosition = null, this.textArea = (0, M.X)(document .createElement("textarea")), Z.write(this.textArea, 6), this.textArea .setClassName(`inputarea ${Je.S}`), this.textArea.setAttribute("wrap", "off"), 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("tabindex", String(n.get(112))), this.textArea.setAttribute("role", "textbox"), this.textArea.setAttribute( "aria-roledescription", y.N("editor", "editor")), this.textArea.setAttribute( "aria-multiline", "true"), this.textArea.setAttribute( "aria-haspopup", "false"), this.textArea.setAttribute( "aria-autocomplete", "both"), n.get(29) && n.get(80) && this.textArea .setAttribute("readonly", "true"), this.textAreaCover = (0, M.X)( document.createElement("div")), this.textAreaCover.setPosition( "absolute"); const r = { getLineCount: () => this._context.model.getLineCount(), getLineMaxColumn: e => this._context.model.getLineMaxColumn(e), getValueInRange: (e, t) => this._context.model.getValueInRange(e, t) }, s = { getDataToCopy: e => { const t = this._context.model.getPlainTextToCopy(this._modelSelections, this._emptySelectionClipboard, A.ED), i = this._context.model.getEOL(), n = this._emptySelectionClipboard && 1 === this._modelSelections.length && this._modelSelections[0].isEmpty(), o = Array.isArray(t) ? t : null, r = Array.isArray(t) ? t.join(i) : t; let s, a = null; if (e && (Fe.RA.forceCopyWithSyntaxHighlighting || this._copyWithSyntaxHighlighting && r.length < 65536)) { const e = this._context.model.getRichTextToCopy(this._modelSelections, this._emptySelectionClipboard); e && (s = e.html, a = e.mode) } return { isFromEmptySelection: n, multicursorText: o, text: r, html: s, mode: a } }, getScreenReaderContent: e => { if (1 === this._accessibilitySupport) { if (A.dz) { const e = this._selections[0]; if (e.isEmpty()) { const t = e.getStartPosition(); let i = this._getWordBeforePosition(t); if (0 === i.length && (i = this._getCharacterBeforePosition(t)), i.length > 0) return new je.un(i, i.length, i.length, t, t) } } return je.un.EMPTY } if (I.Dt) { const e = this._selections[0]; if (e.isEmpty()) { const t = e.getStartPosition(), [i, n] = this._getAndroidWordAtPosition(t); if (i.length > 0) return new je.un(i, n, n, t, t) } return je.un.EMPTY } return je.ee.fromEditorSelection(e, r, this._selections[0], this._accessibilityPageSize, 0 === this._accessibilitySupport) }, deduceModelPosition: (e, t, i) => this._context.model.deduceModelPositionRelativeToViewPosition( e, t, i) }; this._textAreaInput = this._register(new Fe.Fz(s, this.textArea)), this._register(this._textAreaInput.onKeyDown((e => { this._viewController.emitKeyDown(e) }))), this._register(this._textAreaInput.onKeyUp((e => { this._viewController.emitKeyUp(e) }))), this._register(this._textAreaInput.onPaste((e => { let t = !1, i = null, n = null; e.metadata && (t = this._emptySelectionClipboard && !!e.metadata.isFromEmptySelection, i = void 0 !== e.metadata.multicursorText ? e.metadata.multicursorText : null, n = e.metadata.mode), this._viewController.paste(e.text, t, i, n) }))), this._register(this._textAreaInput.onCut((() => { this._viewController.cut() }))), this._register(this._textAreaInput.onType((e => { e.replacePrevCharCnt || e.replaceNextCharCnt || e.positionDelta ? (je.al && console.log( ` => compositionType: <<${e.text}>>, ${e.replacePrevCharCnt}, ${e.replaceNextCharCnt}, ${e.positionDelta}` ), this._viewController.compositionType(e.text, e.replacePrevCharCnt, e.replaceNextCharCnt, e.positionDelta)) : (je.al && console.log( ` => type: <<${e.text}>>`), this._viewController.type(e.text)) }))), this._register(this._textAreaInput.onSelectionChangeRequest((e => { this._viewController.setSelection(e) }))), this._register(this._textAreaInput.onCompositionStart((e => { const t = this._selections[0].startLineNumber, i = this._selections[0].startColumn + e.revealDeltaColumns; this._context.model.revealRange("keyboard", !0, new _e.e(t, i, t, i), 0, 1); const n = this._viewHelper.visibleRangeForPositionRelativeToEditor( t, i); n && (this._visibleTextArea = new et(this._context.viewLayout.getVerticalOffsetForLineNumber( t), n.left, tt ? 0 : 1), this._render()), this.textArea.setClassName( `inputarea ${Je.S} ime-input`), this._viewController.compositionStart(), this._context.model.onCompositionStart() }))), this._register(this._textAreaInput.onCompositionUpdate((e => { this._visibleTextArea && (this._visibleTextArea = this._visibleTextArea .setWidth(function(e, t) { const i = document.createElement("canvas").getContext("2d"); var n; i.font = ("normal", `normal normal ${(n=t).fontWeight} ${n.fontSize}px / ${n.lineHeight}px ${n.fontFamily}` ); const o = i.measureText(e); return I.vU ? o.width + 2 : o.width }(e.data, this._fontInfo)), this._render()) }))), this._register(this._textAreaInput.onCompositionEnd((() => { this._visibleTextArea = null, this._render(), this.textArea.setClassName( `inputarea ${Je.S}`), this._viewController.compositionEnd(), this._context.model.onCompositionEnd() }))), this._register(this._textAreaInput.onFocus((() => { this._context.model.setHasFocus(!0) }))), this._register(this._textAreaInput.onBlur((() => { this._context.model.setHasFocus(!1) }))) } dispose() { super.dispose() } _getAndroidWordAtPosition(e) { const t = this._context.model.getLineContent(e.lineNumber), i = (0, Xe.u)('`~!@#$%^&*()-=+[{]}\\|;:",.<>/?'); let n = !0, o = e.column, r = !0, s = e.column, a = 0; for (; a < 50 && (n || r);) { if (n && o <= 1 && (n = !1), n) { const e = t.charCodeAt(o - 2); 0 !== i.get(e) ? n = !1 : o-- } if (r && s > t.length && (r = !1), r) { const e = t.charCodeAt(s - 1); 0 !== i.get(e) ? r = !1 : s++ } a++ } return [t.substring(o - 1, s - 1), e.column - o] } _getWordBeforePosition(e) { const t = this._context.model.getLineContent(e.lineNumber), i = (0, Xe.u)(this._context.configuration.options.get(116)); let n = e.column, o = 0; for (; n > 1;) { const r = t.charCodeAt(n - 2); if (0 !== i.get(r) || o > 50) return t.substring(n - 1, e.column - 1); o++, n-- } return t.substring(0, e.column - 1) } _getCharacterBeforePosition(e) { if (e.column > 1) { const t = this._context.model.getLineContent(e.lineNumber).charAt(e.column - 2); if (!Ue.ZG(t.charCodeAt(0))) return t } return "" } _getAriaLabel(e) { return 1 === e.get(2) ? y.N("accessibilityOffAriaLabel", "The editor is not accessible at this time. Press {0} for options.", A.IJ ? "Shift+Alt+F1" : "Alt+F1") : e.get(4) } _setAccessibilityOptions(e) { this._accessibilitySupport = e.get(2); const t = e.get(3); 2 === this._accessibilitySupport && t === re.BH.accessibilityPageSize.defaultValue ? this._accessibilityPageSize = 500 : this._accessibilityPageSize = t } onConfigurationChanged(e) { const t = this._context.configuration.options, i = t.get(130); return this._setAccessibilityOptions(t), this._contentLeft = i.contentLeft, this._contentWidth = i.contentWidth, this._contentHeight = i.height, this._fontInfo = t.get(42), this._lineHeight = t.get(58), this._emptySelectionClipboard = t.get(31), this._copyWithSyntaxHighlighting = t.get(20), this.textArea .setAttribute("aria-label", this._getAriaLabel(t)), this.textArea.setAttribute( "tabindex", String(t.get(112))), (e.hasChanged(29) || e.hasChanged( 80)) && (t.get(29) && t.get(80) ? this.textArea.setAttribute( "readonly", "true") : this.textArea.removeAttribute("readonly")), e.hasChanged( 2) && this._textAreaInput.writeScreenReaderContent( "strategy changed"), !0 } onCursorStateChanged(e) { return this._selections = e.selections.slice(0), this._modelSelections = e.modelSelections.slice(0), this._textAreaInput.writeScreenReaderContent( "selection changed"), !0 } onDecorationsChanged(e) { return !0 } onFlushed(e) { return !0 } onLinesChanged(e) { return !0 } onLinesDeleted(e) { return !0 } onLinesInserted(e) { return !0 } onScrollChanged(e) { return this._scrollLeft = e.scrollLeft, this._scrollTop = e.scrollTop, ! 0 } onZonesChanged(e) { return !0 } isFocused() { return this._textAreaInput.isFocused() } focusTextArea() { this._textAreaInput.focusTextArea() } getLastRenderData() { return this._lastRenderPosition } setAriaOptions(e) { e.activeDescendant ? (this.textArea.setAttribute("aria-haspopup", "true"), this.textArea.setAttribute("aria-autocomplete", "list"), this.textArea.setAttribute("aria-activedescendant", e.activeDescendant) ) : (this.textArea.setAttribute("aria-haspopup", "false"), this.textArea .setAttribute("aria-autocomplete", "both"), this.textArea.removeAttribute( "aria-activedescendant")), e.role && this.textArea.setAttribute( "role", e.role) } prepareRender(e) { this._primaryCursorPosition = new fe.L(this._selections[0].positionLineNumber, this._selections[0].positionColumn), this._primaryCursorVisibleRange = e.visibleRangeForPosition(this._primaryCursorPosition) } render(e) { this._textAreaInput.writeScreenReaderContent("render"), this._render() } _render() { if (this._visibleTextArea) return void this._renderInsideEditor(null, this._visibleTextArea.top - this._scrollTop, this._contentLeft + this._visibleTextArea.left - this._scrollLeft, this._visibleTextArea .width, this._lineHeight); if (!this._primaryCursorVisibleRange) return void this._renderAtTopLeft(); const e = this._contentLeft + this._primaryCursorVisibleRange.left - this._scrollLeft; if (e < this._contentLeft || e > this._contentLeft + this._contentWidth) return void this._renderAtTopLeft(); const t = this._context.viewLayout.getVerticalOffsetForLineNumber(this ._selections[0].positionLineNumber) - this._scrollTop; t < 0 || t > this._contentHeight ? this._renderAtTopLeft() : A.dz ? this._renderInsideEditor(this._primaryCursorPosition, t, e, tt ? 0 : 1, this._lineHeight) : this._renderInsideEditor(this._primaryCursorPosition, t, e, tt ? 0 : 1, tt ? 0 : 1) } _renderInsideEditor(e, t, i, n, o) { this._lastRenderPosition = e; const r = this.textArea, s = this.textAreaCover; D.V.applyFontInfo(r, this._fontInfo), r.setTop(t), r.setLeft(i), r.setWidth( n), r.setHeight(o), s.setTop(0), s.setLeft(0), s.setWidth(0), s.setHeight( 0) } _renderAtTopLeft() { this._lastRenderPosition = null; const e = this.textArea, t = this.textAreaCover; if (D.V.applyFontInfo(e, this._fontInfo), e.setTop(0), e.setLeft(0), t .setTop(0), t.setLeft(0), tt) return e.setWidth(0), e.setHeight(0), t .setWidth(0), void t.setHeight(0); e.setWidth(1), e.setHeight(1), t.setWidth(1), t.setHeight(1); const i = this._context.configuration.options; i.get(48) ? t.setClassName("monaco-editor-background textAreaCover " + Qe.OUTER_CLASS_NAME) : 0 !== i.get(59).renderType ? t.setClassName( "monaco-editor-background textAreaCover " + Ye.CLASS_NAME) : t.setClassName( "monaco-editor-background textAreaCover") } } var nt = i(8728); class ot { constructor(e, t, i, n) { this.configuration = e, this.viewModel = t, this.userInputEvents = i, this.commandDelegate = n } paste(e, t, i, n) { this.commandDelegate.paste(e, t, i, n) } type(e) { this.commandDelegate.type(e) } compositionType(e, t, i, n) { this.commandDelegate.compositionType(e, t, i, n) } compositionStart() { this.commandDelegate.startComposition() } compositionEnd() { this.commandDelegate.endComposition() } cut() { this.commandDelegate.cut() } setSelection(e) { nt.CoreNavigationCommands.SetSelection.runCoreEditorCommand(this.viewModel, { source: "keyboard", selection: e }) } _validateViewColumn(e) { const t = this.viewModel.getLineMinColumn(e.lineNumber); return e.column < t ? new fe.L(e.lineNumber, t) : e } _hasMulticursorModifier(e) { switch (this.configuration.options.get(69)) { case "altKey": return e.altKey; case "ctrlKey": return e.ctrlKey; case "metaKey": return e.metaKey; default: return !1 } } _hasNonMulticursorModifier(e) { switch (this.configuration.options.get(69)) { case "altKey": return e.ctrlKey || e.metaKey; case "ctrlKey": return e.altKey || e.metaKey; case "metaKey": return e.ctrlKey || e.altKey; default: return !1 } } dispatchMouse(e) { const t = this.configuration.options, i = A.IJ && t.get(96), n = t.get(17); e.middleButton && !i ? this._columnSelect(e.position, e.mouseColumn, e .inSelectionMode) : e.startedOnLineNumbers ? this._hasMulticursorModifier( e) ? e.inSelectionMode ? this._lastCursorLineSelect(e.position) : this._createCursor(e.position, !0) : e.inSelectionMode ? this._lineSelectDrag( e.position) : this._lineSelect(e.position) : e.mouseDownCount >= 4 ? this._selectAll() : 3 === e.mouseDownCount ? this._hasMulticursorModifier( e) ? e.inSelectionMode ? this._lastCursorLineSelectDrag(e.position) : this._lastCursorLineSelect(e.position) : e.inSelectionMode ? this._lineSelectDrag( e.position) : this._lineSelect(e.position) : 2 === e.mouseDownCount ? this._hasMulticursorModifier(e) ? this._lastCursorWordSelect(e.position) : e.inSelectionMode ? this._wordSelectDrag(e.position) : this._wordSelect( e.position) : this._hasMulticursorModifier(e) ? this._hasNonMulticursorModifier( e) || (e.shiftKey ? this._columnSelect(e.position, e.mouseColumn, !0) : e.inSelectionMode ? this._lastCursorMoveToSelect(e.position) : this._createCursor( e.position, !1)) : e.inSelectionMode ? e.altKey || n ? this._columnSelect( e.position, e.mouseColumn, !0) : this._moveToSelect(e.position) : this.moveTo(e.position) } _usualArgs(e) { return e = this._validateViewColumn(e), { source: "mouse", position: this._convertViewToModelPosition(e), viewPosition: e } } moveTo(e) { nt.CoreNavigationCommands.MoveTo.runCoreEditorCommand(this.viewModel, this._usualArgs(e)) } _moveToSelect(e) { nt.CoreNavigationCommands.MoveToSelect.runCoreEditorCommand(this.viewModel, this._usualArgs(e)) } _columnSelect(e, t, i) { e = this._validateViewColumn(e), nt.CoreNavigationCommands.ColumnSelect .runCoreEditorCommand(this.viewModel, { source: "mouse", position: this._convertViewToModelPosition(e), viewPosition: e, mouseColumn: t, doColumnSelect: i }) } _createCursor(e, t) { e = this._validateViewColumn(e), nt.CoreNavigationCommands.CreateCursor .runCoreEditorCommand(this.viewModel, { source: "mouse", position: this._convertViewToModelPosition(e), viewPosition: e, wholeLine: t }) } _lastCursorMoveToSelect(e) { nt.CoreNavigationCommands.LastCursorMoveToSelect.runCoreEditorCommand( this.viewModel, this._usualArgs(e)) } _wordSelect(e) { nt.CoreNavigationCommands.WordSelect.runCoreEditorCommand(this.viewModel, this._usualArgs(e)) } _wordSelectDrag(e) { nt.CoreNavigationCommands.WordSelectDrag.runCoreEditorCommand(this.viewModel, this._usualArgs(e)) } _lastCursorWordSelect(e) { nt.CoreNavigationCommands.LastCursorWordSelect.runCoreEditorCommand( this.viewModel, this._usualArgs(e)) } _lineSelect(e) { nt.CoreNavigationCommands.LineSelect.runCoreEditorCommand(this.viewModel, this._usualArgs(e)) } _lineSelectDrag(e) { nt.CoreNavigationCommands.LineSelectDrag.runCoreEditorCommand(this.viewModel, this._usualArgs(e)) } _lastCursorLineSelect(e) { nt.CoreNavigationCommands.LastCursorLineSelect.runCoreEditorCommand( this.viewModel, this._usualArgs(e)) } _lastCursorLineSelectDrag(e) { nt.CoreNavigationCommands.LastCursorLineSelectDrag.runCoreEditorCommand( this.viewModel, this._usualArgs(e)) } _selectAll() { nt.CoreNavigationCommands.SelectAll.runCoreEditorCommand(this.viewModel, { source: "mouse" }) } _convertViewToModelPosition(e) { return this.viewModel.coordinatesConverter.convertViewPositionToModelPosition( e) } emitKeyDown(e) { this.userInputEvents.emitKeyDown(e) } emitKeyUp(e) { this.userInputEvents.emitKeyUp(e) } emitContextMenu(e) { this.userInputEvents.emitContextMenu(e) } emitMouseMove(e) { this.userInputEvents.emitMouseMove(e) } emitMouseLeave(e) { this.userInputEvents.emitMouseLeave(e) } emitMouseUp(e) { this.userInputEvents.emitMouseUp(e) } emitMouseDown(e) { this.userInputEvents.emitMouseDown(e) } emitMouseDrag(e) { this.userInputEvents.emitMouseDrag(e) } emitMouseDrop(e) { this.userInputEvents.emitMouseDrop(e) } emitMouseDropCanceled() { this.userInputEvents.emitMouseDropCanceled() } emitMouseWheel(e) { this.userInputEvents.emitMouseWheel(e) } } class rt { constructor(e) { this.onKeyDown = null, this.onKeyUp = null, this.onContextMenu = null, this.onMouseMove = null, this.onMouseLeave = null, this.onMouseDown = null, this.onMouseUp = null, this.onMouseDrag = null, this.onMouseDrop = null, this.onMouseDropCanceled = null, this.onMouseWheel = null, this ._coordinatesConverter = e } emitKeyDown(e) { this.onKeyDown && this.onKeyDown(e) } emitKeyUp(e) { this.onKeyUp && this.onKeyUp(e) } emitContextMenu(e) { this.onContextMenu && this.onContextMenu(this._convertViewToModelMouseEvent( e)) } emitMouseMove(e) { this.onMouseMove && this.onMouseMove(this._convertViewToModelMouseEvent( e)) } emitMouseLeave(e) { this.onMouseLeave && this.onMouseLeave(this._convertViewToModelMouseEvent( e)) } emitMouseDown(e) { this.onMouseDown && this.onMouseDown(this._convertViewToModelMouseEvent( e)) } emitMouseUp(e) { this.onMouseUp && this.onMouseUp(this._convertViewToModelMouseEvent(e)) } emitMouseDrag(e) { this.onMouseDrag && this.onMouseDrag(this._convertViewToModelMouseEvent( e)) } emitMouseDrop(e) { this.onMouseDrop && this.onMouseDrop(this._convertViewToModelMouseEvent( e)) } emitMouseDropCanceled() { this.onMouseDropCanceled && this.onMouseDropCanceled() } emitMouseWheel(e) { this.onMouseWheel && this.onMouseWheel(e) } _convertViewToModelMouseEvent(e) { return e.target ? { event: e.event, target: this._convertViewToModelMouseTarget(e.target) } : e } _convertViewToModelMouseTarget(e) { return rt.convertViewToModelMouseTarget(e, this._coordinatesConverter) } static convertViewToModelMouseTarget(e, t) { return new st(e.element, e.type, e.mouseColumn, e.position ? t.convertViewPositionToModelPosition( e.position) : null, e.range ? t.convertViewRangeToModelRange(e.range) : null, e.detail) } } class st { constructor(e, t, i, n, o, r) { this.element = e, this.type = t, this.mouseColumn = i, this.position = n, this.range = o, this.detail = r } toString() { return Se.toString(this) } } var at, lt = i(72); class dt { constructor(e) { this._createLine = e, this._set(1, []) } flush() { this._set(1, []) } _set(e, t) { this._lines = t, this._rendLineNumberStart = e } _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(e) { const t = e - this._rendLineNumberStart; if (t < 0 || t >= this._lines.length) throw new Error( "Illegal value for lineNumber"); return this._lines[t] } onLinesDeleted(e, t) { if (0 === this.getCount()) return null; const i = this.getStartLineNumber(), n = this.getEndLineNumber(); if (t < i) { const i = t - e + 1; return this._rendLineNumberStart -= i, null } if (e > n) return null; let o = 0, r = 0; for (let s = i; s <= n; s++) { const i = s - this._rendLineNumberStart; e <= s && s <= t && (0 === r ? (o = i, r = 1) : r++) } if (e < i) { let n = 0; n = t < i ? t - e + 1 : i - e, this._rendLineNumberStart -= n } return this._lines.splice(o, r) } onLinesChanged(e, t) { if (0 === this.getCount()) return !1; const i = this.getStartLineNumber(), n = this.getEndLineNumber(); let o = !1; for (let r = e; r <= t; r++) r >= i && r <= n && (this._lines[r - this ._rendLineNumberStart].onContentChanged(), o = !0); return o } onLinesInserted(e, t) { if (0 === this.getCount()) return null; const i = t - e + 1, n = this.getStartLineNumber(), o = this.getEndLineNumber(); if (e <= n) return this._rendLineNumberStart += i, null; if (e > o) return null; if (i + e > o) return this._lines.splice(e - this._rendLineNumberStart, o - e + 1); const r = []; for (let e = 0; e < i; e++) r[e] = this._createLine(); const s = e - this._rendLineNumberStart, a = this._lines.slice(0, s), l = this._lines.slice(s, this._lines.length - i), d = this._lines.slice(this._lines.length - i, this._lines.length); return this._lines = a.concat(r).concat(l), d } onTokensChanged(e) { if (0 === this.getCount()) return !1; const t = this.getStartLineNumber(), i = this.getEndLineNumber(); let n = !1; for (let o = 0, r = e.length; o < r; o++) { const r = e[o]; if (r.toLineNumber < t || r.fromLineNumber > i) continue; const s = Math.max(t, r.fromLineNumber), a = Math.min(i, r.toLineNumber); for (let e = s; e <= a; e++) { const t = e - this._rendLineNumberStart; this._lines[t].onTokensChanged(), n = !0 } } return n } } class ct { constructor(e) { this._host = e, this.domNode = this._createDomNode(), this._linesCollection = new dt((() => this._host.createVisibleLine())) } _createDomNode() { const e = (0, M.X)(document.createElement("div")); return e.setClassName("view-layer"), e.setPosition("absolute"), e.domNode .setAttribute("role", "presentation"), e.domNode.setAttribute( "aria-hidden", "true"), e } onConfigurationChanged(e) { return !!e.hasChanged(130) } onFlushed(e) { return this._linesCollection.flush(), !0 } onLinesChanged(e) { return this._linesCollection.onLinesChanged(e.fromLineNumber, e.toLineNumber) } onLinesDeleted(e) { const t = this._linesCollection.onLinesDeleted(e.fromLineNumber, e.toLineNumber); if (t) for (let e = 0, i = t.length; e < i; e++) { const i = t[e].getDomNode(); i && this.domNode.domNode.removeChild(i) } return !0 } onLinesInserted(e) { const t = this._linesCollection.onLinesInserted(e.fromLineNumber, e.toLineNumber); if (t) for (let e = 0, i = t.length; e < i; e++) { const i = t[e].getDomNode(); i && this.domNode.domNode.removeChild(i) } return !0 } onScrollChanged(e) { return e.scrollTopChanged } onTokensChanged(e) { return this._linesCollection.onTokensChanged(e.ranges) } onZonesChanged(e) { return !0 } getStartLineNumber() { return this._linesCollection.getStartLineNumber() } getEndLineNumber() { return this._linesCollection.getEndLineNumber() } getVisibleLine(e) { return this._linesCollection.getLine(e) } renderLines(e) { const t = this._linesCollection._get(), i = new ht(this.domNode.domNode, this._host, e), n = { rendLineNumberStart: t.rendLineNumberStart, lines: t.lines, linesLength: t.lines.length }, o = i.render(n, e.startLineNumber, e.endLineNumber, e.relativeVerticalOffset); this._linesCollection._set(o.rendLineNumberStart, o.lines) } } class ht { constructor(e, t, i) { this.domNode = e, this.host = t, this.viewportData = i } render(e, t, i, n) { const o = { rendLineNumberStart: e.rendLineNumberStart, lines: e.lines.slice(0), linesLength: e.linesLength }; if (o.rendLineNumberStart + o.linesLength - 1 < t || i < o.rendLineNumberStart) { o.rendLineNumberStart = t, o.linesLength = i - t + 1, o.lines = []; for (let e = t; e <= i; e++) o.lines[e - t] = this.host.createVisibleLine(); return this._finishRendering(o, !0, n), o } if (this._renderUntouchedLines(o, Math.max(t - o.rendLineNumberStart, 0), Math.min(i - o.rendLineNumberStart, o.linesLength - 1), n, t), o .rendLineNumberStart > t) { const e = t, r = Math.min(i, o.rendLineNumberStart - 1); e <= r && (this._insertLinesBefore(o, e, r, n, t), o.linesLength += r - e + 1) } else if (o.rendLineNumberStart < t) { const e = Math.min(o.linesLength, t - o.rendLineNumberStart); e > 0 && (this._removeLinesBefore(o, e), o.linesLength -= e) } if (o.rendLineNumberStart = t, o.rendLineNumberStart + o.linesLength - 1 < i) { const e = o.rendLineNumberStart + o.linesLength, r = i; e <= r && (this._insertLinesAfter(o, e, r, n, t), o.linesLength += r - e + 1) } else if (o.rendLineNumberStart + o.linesLength - 1 > i) { const e = Math.max(0, i - o.rendLineNumberStart + 1), t = o.linesLength - 1 - e + 1; t > 0 && (this._removeLinesAfter(o, t), o.linesLength -= t) } return this._finishRendering(o, !1, n), o } _renderUntouchedLines(e, t, i, n, o) { const r = e.rendLineNumberStart, s = e.lines; for (let e = t; e <= i; e++) { const t = r + e; s[e].layoutLine(t, n[t - o]) } } _insertLinesBefore(e, t, i, n, o) { const r = []; let s = 0; for (let e = t; e <= i; e++) r[s++] = this.host.createVisibleLine(); e.lines = r.concat(e.lines) } _removeLinesBefore(e, t) { for (let i = 0; i < t; i++) { const t = e.lines[i].getDomNode(); t && this.domNode.removeChild(t) } e.lines.splice(0, t) } _insertLinesAfter(e, t, i, n, o) { const r = []; let s = 0; for (let e = t; e <= i; e++) r[s++] = this.host.createVisibleLine(); e.lines = e.lines.concat(r) } _removeLinesAfter(e, t) { const i = e.linesLength - t; for (let n = 0; n < t; n++) { const t = e.lines[i + n].getDomNode(); t && this.domNode.removeChild(t) } e.lines.splice(i, t) } _finishRenderingNewLines(e, t, i, n) { ht._ttPolicy && (i = ht._ttPolicy.createHTML(i)); const o = this.domNode.lastChild; t || !o ? this.domNode.innerHTML = i : o.insertAdjacentHTML("afterend", i); let r = this.domNode.lastChild; for (let t = e.linesLength - 1; t >= 0; t--) { const i = e.lines[t]; n[t] && (i.setDomNode(r), r = r.previousSibling) } } _finishRenderingInvalidLines(e, t, i) { const n = document.createElement("div"); ht._ttPolicy && (t = ht._ttPolicy.createHTML(t)), n.innerHTML = t; for (let t = 0; t < e.linesLength; t++) { const o = e.lines[t]; if (i[t]) { const e = n.firstChild, t = o.getDomNode(); t.parentNode.replaceChild(e, t), o.setDomNode(e) } } } _finishRendering(e, t, i) { const n = ht._sb, o = e.linesLength, r = e.lines, s = e.rendLineNumberStart, a = []; { n.reset(); let l = !1; for (let e = 0; e < o; e++) { const t = r[e]; a[e] = !1, t.getDomNode() || t.renderLine(e + s, i[e], this.viewportData, n) && (a[e] = !0, l = !0) } l && this._finishRenderingNewLines(e, t, n.build(), a) } { n.reset(); let t = !1; const l = []; for (let e = 0; e < o; e++) { const o = r[e]; (l[e] = !1, a[e]) || o.renderLine(e + s, i[e], this.viewportData, n) && (l[e] = !0, t = !0) } t && this._finishRenderingInvalidLines(e, n.build(), l) } } } ht._ttPolicy = null === (at = window.trustedTypes) || void 0 === at ? void 0 : at.createPolicy("editorViewLayer", { createHTML: e => e }), ht._sb = (0, lt.l$)(1e5); class ut extends q { constructor(e) { super(e), this._visibleLines = new ct(this), this.domNode = this._visibleLines .domNode, this._dynamicOverlays = [], this._isFocused = !1, this.domNode .setClassName("view-overlays") } shouldRender() { if (super.shouldRender()) return !0; for (let e = 0, t = this._dynamicOverlays.length; e < t; e++) if (this._dynamicOverlays[e].shouldRender()) return !0; return !1 } dispose() { super.dispose(); for (let e = 0, t = this._dynamicOverlays.length; e < t; e++) this._dynamicOverlays[ e].dispose(); this._dynamicOverlays = [] } getDomNode() { return this.domNode } createVisibleLine() { return new gt(this._context.configuration, this._dynamicOverlays) } addDynamicOverlay(e) { this._dynamicOverlays.push(e) } onConfigurationChanged(e) { this._visibleLines.onConfigurationChanged(e); const t = this._visibleLines.getStartLineNumber(), i = this._visibleLines.getEndLineNumber(); for (let n = t; n <= i; n++) this._visibleLines.getVisibleLine(n).onConfigurationChanged( e); return !0 } onFlushed(e) { return this._visibleLines.onFlushed(e) } onFocusChanged(e) { return this._isFocused = e.isFocused, !0 } onLinesChanged(e) { return this._visibleLines.onLinesChanged(e) } onLinesDeleted(e) { return this._visibleLines.onLinesDeleted(e) } onLinesInserted(e) { return this._visibleLines.onLinesInserted(e) } onScrollChanged(e) { return this._visibleLines.onScrollChanged(e) || !0 } onTokensChanged(e) { return this._visibleLines.onTokensChanged(e) } onZonesChanged(e) { return this._visibleLines.onZonesChanged(e) } prepareRender(e) { const t = this._dynamicOverlays.filter((e => e.shouldRender())); for (let i = 0, n = t.length; i < n; i++) { const n = t[i]; n.prepareRender(e), n.onDidRender() } } render(e) { this._viewOverlaysRender(e), this.domNode.toggleClassName("focused", this._isFocused) } _viewOverlaysRender(e) { this._visibleLines.renderLines(e.viewportData) } } class gt { constructor(e, t) { this._configuration = e, this._lineHeight = this._configuration.options .get(58), this._dynamicOverlays = t, this._domNode = null, this._renderedContent = null } getDomNode() { return this._domNode ? this._domNode.domNode : null } setDomNode(e) { this._domNode = (0, M.X)(e) } onContentChanged() {} onTokensChanged() {} onConfigurationChanged(e) { this._lineHeight = this._configuration.options.get(58) } renderLine(e, t, i, n) { let o = ""; for (let t = 0, n = this._dynamicOverlays.length; t < n; t++) o += this._dynamicOverlays[t].render(i.startLineNumber, e); return this._renderedContent !== o && (this._renderedContent = o, n.appendASCIIString( '
    '), n.appendASCIIString( o), n.appendASCIIString("
    "), !0) } layoutLine(e, t) { this._domNode && (this._domNode.setTop(t), this._domNode.setHeight( this._lineHeight)) } } class pt extends ut { constructor(e) { super(e); const t = this._context.configuration.options.get(130); this._contentWidth = t.contentWidth, this.domNode.setHeight(0) } onConfigurationChanged(e) { const t = this._context.configuration.options.get(130); return this._contentWidth = t.contentWidth, super.onConfigurationChanged( e) || !0 } onScrollChanged(e) { return super.onScrollChanged(e) || e.scrollWidthChanged } _viewOverlaysRender(e) { super._viewOverlaysRender(e), this.domNode.setWidth(Math.max(e.scrollWidth, this._contentWidth)) } } class mt extends ut { constructor(e) { super(e); const t = this._context.configuration.options, i = t.get(130); this._contentLeft = i.contentLeft, this.domNode.setClassName( "margin-view-overlays"), this.domNode.setWidth(1), D.V.applyFontInfo( this.domNode, t.get(42)) } onConfigurationChanged(e) { const t = this._context.configuration.options; D.V.applyFontInfo(this.domNode, t.get(42)); const i = t.get(130); return this._contentLeft = i.contentLeft, super.onConfigurationChanged( e) || !0 } onScrollChanged(e) { return super.onScrollChanged(e) || e.scrollHeightChanged } _viewOverlaysRender(e) { super._viewOverlaysRender(e); const t = Math.min(e.scrollHeight, 1e6); this.domNode.setHeight(t), this.domNode.setWidth(this._contentLeft) } } class ft { constructor(e, t) { this._coordinateBrand = void 0, this.top = e, this.left = t } } class _t extends q { constructor(e, t) { super(e), this._viewDomNode = t, this._widgets = {}, this.domNode = (0, M.X)(document.createElement("div")), Z.write(this.domNode, 1), this.domNode .setClassName("contentWidgets"), this.domNode.setPosition("absolute"), this.domNode.setTop(0), this.overflowingContentWidgetsDomNode = (0, M .X)(document.createElement("div")), Z.write(this.overflowingContentWidgetsDomNode, 2), this.overflowingContentWidgetsDomNode.setClassName( "overflowingContentWidgets") } dispose() { super.dispose(), this._widgets = {} } onConfigurationChanged(e) { const t = Object.keys(this._widgets); for (const i of t) this._widgets[i].onConfigurationChanged(e); return !0 } onDecorationsChanged(e) { return !0 } onFlushed(e) { return !0 } onLineMappingChanged(e) { const t = Object.keys(this._widgets); for (const i of t) this._widgets[i].onLineMappingChanged(e); return !0 } onLinesChanged(e) { return !0 } onLinesDeleted(e) { return !0 } onLinesInserted(e) { return !0 } onScrollChanged(e) { return !0 } onZonesChanged(e) { return !0 } addWidget(e) { const t = new bt(this._context, this._viewDomNode, e); this._widgets[t.id] = t, t.allowEditorOverflow ? this.overflowingContentWidgetsDomNode .appendChild(t.domNode) : this.domNode.appendChild(t.domNode), this.setShouldRender() } setWidgetPosition(e, t, i) { this._widgets[e.getId()].setPosition(t, i), this.setShouldRender() } removeWidget(e) { const t = e.getId(); if (this._widgets.hasOwnProperty(t)) { const e = this._widgets[t]; delete this._widgets[t]; const i = e.domNode.domNode; i.parentNode.removeChild(i), i.removeAttribute( "monaco-visible-content-widget"), this.setShouldRender() } } shouldSuppressMouseDownOnWidget(e) { return !!this._widgets.hasOwnProperty(e) && this._widgets[e].suppressMouseDown } onBeforeRender(e) { const t = Object.keys(this._widgets); for (const i of t) this._widgets[i].onBeforeRender(e) } prepareRender(e) { const t = Object.keys(this._widgets); for (const i of t) this._widgets[i].prepareRender(e) } render(e) { const t = Object.keys(this._widgets); for (const i of t) this._widgets[i].render(e) } } class bt { constructor(e, t, i) { this._context = e, this._viewDomNode = t, this._actual = i, this.domNode = (0, M.X)(this._actual.getDomNode()), this.id = this._actual.getId(), this.allowEditorOverflow = this._actual.allowEditorOverflow || !1, this.suppressMouseDown = this._actual.suppressMouseDown || !1; const n = this._context.configuration.options, o = n.get(130); this._fixedOverflowWidgets = n.get(35), this._contentWidth = o.contentWidth, this._contentLeft = o.contentLeft, this._lineHeight = n.get(58), this ._range = null, this._viewRange = null, this._preference = [], this._cachedDomNodeClientWidth = - 1, this._cachedDomNodeClientHeight = -1, this._maxWidth = this._getMaxWidth(), this._isVisible = !1, this._renderData = null, this.domNode.setPosition( this._fixedOverflowWidgets && this.allowEditorOverflow ? "fixed" : "absolute"), this.domNode.setVisibility("hidden"), this.domNode.setAttribute( "widgetId", this.id), this.domNode.setMaxWidth(this._maxWidth) } onConfigurationChanged(e) { const t = this._context.configuration.options; if (this._lineHeight = t.get(58), e.hasChanged(130)) { const e = t.get(130); this._contentLeft = e.contentLeft, this._contentWidth = e.contentWidth, this._maxWidth = this._getMaxWidth() } } onLineMappingChanged(e) { this._setPosition(this._range) } _setPosition(e) { if (this._range = e, this._viewRange = null, this._range) { const e = this._context.model.validateModelRange(this._range); (this._context.model.coordinatesConverter.modelPositionIsVisible(e.getStartPosition()) || this._context.model.coordinatesConverter.modelPositionIsVisible(e.getEndPosition()) ) && (this._viewRange = this._context.model.coordinatesConverter.convertModelRangeToViewRange( e)) } } _getMaxWidth() { return this.allowEditorOverflow ? window.innerWidth || document.documentElement .clientWidth || document.body.clientWidth : this._contentWidth } setPosition(e, t) { this._setPosition(e), this._preference = t, this._cachedDomNodeClientWidth = - 1, this._cachedDomNodeClientHeight = -1 } _layoutBoxInViewport(e, t, i, n, o) { const r = e.top, s = r, a = t.top + this._lineHeight, l = r - n, d = s >= n, c = a, h = o.viewportHeight - a >= n; let u = e.left, g = t.left; return u + i > o.scrollLeft + o.viewportWidth && (u = o.scrollLeft + o .viewportWidth - i), g + i > o.scrollLeft + o.viewportWidth && (g = o.scrollLeft + o.viewportWidth - i), u < o.scrollLeft && (u = o.scrollLeft), g < o.scrollLeft && (g = o.scrollLeft), { fitsAbove: d, aboveTop: l, aboveLeft: u, fitsBelow: h, belowTop: c, belowLeft: g } } _layoutHorizontalSegmentInPage(e, t, i, n) { const o = Math.max(0, t.left - n), r = Math.min(t.left + t.width + n, e.width); let s = t.left + i - S.DI.scrollX; if (s + n > r) { const e = s - (r - n); s -= e, i -= e } if (s < o) { const e = s - o; s -= e, i -= e } return [i, s] } _layoutBoxInPage(e, t, i, n, o) { const r = e.top - n, s = t.top + this._lineHeight, a = S.i(this._viewDomNode.domNode), l = a.top + r - S.DI.scrollY, d = a.top + s - S.DI.scrollY, c = S.D6(document.body), [h, u] = this._layoutHorizontalSegmentInPage(c, a, e.left - o.scrollLeft + this._contentLeft, i), [g, p] = this._layoutHorizontalSegmentInPage(c, a, t.left - o.scrollLeft + this._contentLeft, i), m = l >= 22, f = d + n <= c.height - 22; return this._fixedOverflowWidgets ? { fitsAbove: m, aboveTop: Math.max(l, 22), aboveLeft: u, fitsBelow: f, belowTop: d, belowLeft: p } : { fitsAbove: m, aboveTop: r, aboveLeft: h, fitsBelow: f, belowTop: s, belowLeft: g } } _prepareRenderWidgetAtExactPositionOverflowing(e) { return new ft(e.top, e.left + this._contentLeft) } _getTopAndBottomLeft(e) { if (!this._viewRange) return [null, null]; const t = e.linesVisibleRangesForRange(this._viewRange, !1); if (!t || 0 === t.length) return [null, null]; let i = t[0], n = t[0]; for (const e of t) e.lineNumber < i.lineNumber && (i = e), e.lineNumber > n.lineNumber && (n = e); let o = 1073741824; for (const e of i.ranges) e.left < o && (o = e.left); let r = 1073741824; for (const e of n.ranges) e.left < r && (r = e.left); const s = e.getVerticalOffsetForLineNumber(i.lineNumber) - e.scrollTop, a = new ft(s, o), l = e.getVerticalOffsetForLineNumber(n.lineNumber) - e.scrollTop; return [a, new ft(l, r)] } _prepareRenderWidget(e) { const [t, i] = this._getTopAndBottomLeft(e); if (!t || !i) return null; if (-1 === this._cachedDomNodeClientWidth || -1 === this._cachedDomNodeClientHeight) { let e = null; if ("function" == typeof this._actual.beforeRender && (e = vt(this._actual .beforeRender, this._actual)), e) this._cachedDomNodeClientWidth = e.width, this._cachedDomNodeClientHeight = e.height; else { const e = this.domNode.domNode; this._cachedDomNodeClientWidth = e.clientWidth, this._cachedDomNodeClientHeight = e.clientHeight } } let n; if (n = this.allowEditorOverflow ? this._layoutBoxInPage(t, i, this._cachedDomNodeClientWidth, this._cachedDomNodeClientHeight, e) : this._layoutBoxInViewport(t, i, this._cachedDomNodeClientWidth, this._cachedDomNodeClientHeight, e), this._preference) for (let e = 1; e <= 2; e++) for (const i of this._preference) if (1 === i) { if (!n) return null; if (2 === e || n.fitsAbove) return { coordinate: new ft(n.aboveTop, n.aboveLeft), position: 1 } } else { if (2 !== i) return this.allowEditorOverflow ? { coordinate: this._prepareRenderWidgetAtExactPositionOverflowing( t), position: 0 } : { coordinate: t, position: 0 }; if (!n) return null; if (2 === e || n.fitsBelow) return { coordinate: new ft(n.belowTop, n.belowLeft), position: 2 } } return null } onBeforeRender(e) { this._viewRange && this._preference && (this._viewRange.endLineNumber < e.startLineNumber || this._viewRange.startLineNumber > e.endLineNumber || this.domNode.setMaxWidth(this._maxWidth)) } prepareRender(e) { this._renderData = this._prepareRenderWidget(e) } render(e) { if (!this._renderData) return this._isVisible && (this.domNode.removeAttribute( "monaco-visible-content-widget"), this._isVisible = !1, this.domNode .setVisibility("hidden")), void("function" == typeof this._actual.afterRender && vt(this._actual.afterRender, this._actual, null)); this.allowEditorOverflow ? (this.domNode.setTop(this._renderData.coordinate .top), this.domNode.setLeft(this._renderData.coordinate.left)) : ( this.domNode.setTop(this._renderData.coordinate.top + e.scrollTop - e.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), "function" == typeof this._actual.afterRender && vt(this._actual.afterRender, this._actual, this._renderData.position) } } function vt(e, t, ...i) { try { return e.call(t, ...i) } catch (e) { return null } } var wt = i(1260), Ct = {}; Ct.styleTagTransform = v(), Ct.setAttributes = m(), Ct.insert = g().bind( null, "head"), Ct.domAPI = h(), Ct.insertStyleElement = _(), d()(wt.Z, Ct), wt.Z && wt.Z.locals && wt.Z.locals; var yt = i(9488); let St = !0; class xt extends qe { constructor(e) { super(), this._context = e; const t = this._context.configuration.options, i = t.get(130); this._lineHeight = t.get(58), this._renderLineHighlight = t.get(85), this._renderLineHighlightOnlyWhenFocus = t.get(86), this._contentLeft = i.contentLeft, this._contentWidth = i.contentWidth, this._selectionIsEmpty = ! 0, this._focused = !1, this._cursorLineNumbers = [1], this._selections = [ new T.Y(1, 1, 1, 1) ], this._renderData = null, this._context.addEventHandler(this) } dispose() { this._context.removeEventHandler(this), super.dispose() } _readFromSelections() { let e = !1; const t = St ? this._selections.slice(0, 1) : this._selections, i = t.map((e => e.positionLineNumber)); i.sort(((e, t) => e - t)), yt.fS(this._cursorLineNumbers, i) || (this._cursorLineNumbers = i, e = !0); const n = t.every((e => e.isEmpty())); return this._selectionIsEmpty !== n && (this._selectionIsEmpty = n, e = ! 0), e } onThemeChanged(e) { return this._readFromSelections() } onConfigurationChanged(e) { const t = this._context.configuration.options, i = t.get(130); return this._lineHeight = t.get(58), this._renderLineHighlight = t.get( 85), this._renderLineHighlightOnlyWhenFocus = t.get(86), this._contentLeft = i.contentLeft, this._contentWidth = i.contentWidth, !0 } onCursorStateChanged(e) { return this._selections = e.selections, this._readFromSelections() } onFlushed(e) { return !0 } onLinesDeleted(e) { return !0 } onLinesInserted(e) { return !0 } onScrollChanged(e) { return e.scrollWidthChanged || e.scrollTopChanged } onZonesChanged(e) { return !0 } onFocusChanged(e) { return !!this._renderLineHighlightOnlyWhenFocus && (this._focused = e.isFocused, ! 0) } prepareRender(e) { if (!this._shouldRenderThis()) return void(this._renderData = null); const t = this._renderOne(e), i = e.visibleRange.startLineNumber, n = e.visibleRange.endLineNumber, o = this._cursorLineNumbers.length; let r = 0; const s = []; for (let e = i; e <= n; e++) { const n = e - i; for (; r < o && this._cursorLineNumbers[r] < e;) r++; r < o && this._cursorLineNumbers[r] === e ? s[n] = t : s[n] = "" } this._renderData = s } render(e, t) { if (!this._renderData) return ""; const i = t - e; return i >= this._renderData.length ? "" : this._renderData[i] } } class kt extends xt { _renderOne(e) { return `
    ` } _shouldRenderThis() { return ("line" === this._renderLineHighlight || "all" === this._renderLineHighlight) && this._selectionIsEmpty && (!this._renderLineHighlightOnlyWhenFocus || this._focused) } _shouldRenderOther() { return ("gutter" === this._renderLineHighlight || "all" === this._renderLineHighlight) && (!this._renderLineHighlightOnlyWhenFocus || this._focused) } } class Lt extends xt { _renderOne(e) { return `
    ` } _shouldRenderMargin() { return ("gutter" === this._renderLineHighlight || "all" === this._renderLineHighlight) && (!this._renderLineHighlightOnlyWhenFocus || this._focused) } _shouldRenderThis() { return !0 } _shouldRenderOther() { return ("line" === this._renderLineHighlight || "all" === this._renderLineHighlight) && this._selectionIsEmpty && (!this._renderLineHighlightOnlyWhenFocus || this._focused) } }(0, Ge.Ic)(((e, t) => { St = !1; const i = e.getColor(Ze.Kh); 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() || e.defines(Ze.Mm)) { const i = e.getColor(Ze.Mm); i && (St = !0, t.addRule( `.monaco-editor .view-overlays .current-line { border: 2px solid ${i}; }` ), t.addRule( `.monaco-editor .margin-view-overlays .current-line-margin { border: 2px solid ${i}; }` ), "hc" === e.type && (t.addRule( ".monaco-editor .view-overlays .current-line { border-width: 1px; }" ), t.addRule( ".monaco-editor .margin-view-overlays .current-line-margin { border-width: 1px; }" ))) } })); var Nt = i(5686), Dt = {}; Dt.styleTagTransform = v(), Dt.setAttributes = m(), Dt.insert = g().bind( null, "head"), Dt.domAPI = h(), Dt.insertStyleElement = _(), d()(Nt.Z, Dt), Nt.Z && Nt.Z.locals && Nt.Z.locals; class Et extends qe { constructor(e) { super(), this._context = e; const t = this._context.configuration.options; this._lineHeight = t.get(58), this._typicalHalfwidthCharacterWidth = t .get(42).typicalHalfwidthCharacterWidth, this._renderResult = null, this._context.addEventHandler(this) } dispose() { this._context.removeEventHandler(this), this._renderResult = null, super.dispose() } onConfigurationChanged(e) { const t = this._context.configuration.options; return this._lineHeight = t.get(58), this._typicalHalfwidthCharacterWidth = t.get(42).typicalHalfwidthCharacterWidth, !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 || e.scrollWidthChanged } onZonesChanged(e) { return !0 } prepareRender(e) { const t = e.getDecorationsInViewport(); let i = [], n = 0; for (let e = 0, o = t.length; e < o; e++) { const o = t[e]; o.options.className && (i[n++] = o) } i = i.sort(((e, t) => { if (e.options.zIndex < t.options.zIndex) return -1; if (e.options.zIndex > t.options.zIndex) return 1; const i = e.options.className, n = t.options.className; return i < n ? -1 : i > n ? 1 : _e.e.compareRangesUsingStarts(e.range, t.range) })); const o = e.visibleRange.startLineNumber, r = e.visibleRange.endLineNumber, s = []; for (let e = o; e <= r; e++) s[e - o] = ""; this._renderWholeLineDecorations(e, i, s), this._renderNormalDecorations( e, i, s), this._renderResult = s } _renderWholeLineDecorations(e, t, i) { const n = String(this._lineHeight), o = e.visibleRange.startLineNumber, r = e.visibleRange.endLineNumber; for (let e = 0, s = t.length; e < s; e++) { const s = t[e]; if (!s.options.isWholeLine) continue; const a = '
    ', l = Math.max(s.range.startLineNumber, o), d = Math.min(s.range.endLineNumber, r); for (let e = l; e <= d; e++) i[e - o] += a } } _renderNormalDecorations(e, t, i) { const n = String(this._lineHeight), o = e.visibleRange.startLineNumber; let r = null, s = !1, a = null; for (let l = 0, d = t.length; l < d; l++) { const d = t[l]; if (d.options.isWholeLine) continue; const c = d.options.className, h = Boolean(d.options.showIfCollapsed); let u = d.range; h && 1 === u.endColumn && u.endLineNumber !== u.startLineNumber && (u = new _e.e(u.startLineNumber, u.startColumn, u.endLineNumber - 1, this._context.model.getLineMaxColumn(u.endLineNumber - 1))), r === c && s === h && _e.e.areIntersectingOrTouching(a, u) ? a = _e.e.plusRange( a, u) : (null !== r && this._renderNormalDecoration(e, a, r, s, n, o, i), r = c, s = h, a = u) } null !== r && this._renderNormalDecoration(e, a, r, s, n, o, i) } _renderNormalDecoration(e, t, i, n, o, r, s) { const a = e.linesVisibleRangesForRange(t, "findMatch" === i); if (a) for (let e = 0, t = a.length; e < t; e++) { const t = a[e]; if (t.outsideRenderedLine) continue; const l = t.lineNumber - r; if (n && 1 === t.ranges.length) { const e = t.ranges[0]; 0 === e.width && (t.ranges[0] = new Q(e.left, this._typicalHalfwidthCharacterWidth)) } for (let e = 0, n = t.ranges.length; e < n; e++) { const n = t.ranges[e], r = '
    '; s[l] += r } } } render(e, t) { if (!this._renderResult) return ""; const i = t - e; return i < 0 || i >= this._renderResult.length ? "" : this._renderResult[ i] } } var It = i(6781); class Tt extends q { constructor(e, t, i, n) { super(e); const o = this._context.configuration.options, r = o.get(92), s = o.get(66), a = o.get(33), l = o.get(95), d = { listenOnDomNode: i.domNode, className: "editor-scrollable " + (0, Ge.m6)(e.theme.type), useShadows: !1, lazyRender: !0, vertical: r.vertical, horizontal: r.horizontal, verticalHasArrows: r.verticalHasArrows, horizontalHasArrows: r.horizontalHasArrows, verticalScrollbarSize: r.verticalScrollbarSize, verticalSliderSize: r.verticalSliderSize, horizontalScrollbarSize: r.horizontalScrollbarSize, horizontalSliderSize: r.horizontalSliderSize, handleMouseWheel: r.handleMouseWheel, alwaysConsumeMouseWheel: r.alwaysConsumeMouseWheel, arrowSize: r.arrowSize, mouseWheelScrollSensitivity: s, fastScrollSensitivity: a, scrollPredominantAxis: l, scrollByPage: r.scrollByPage }; this.scrollbar = this._register(new It.$Z(t.domNode, d, this._context.viewLayout .getScrollable())), Z.write(this.scrollbar.getDomNode(), 5), this.scrollbarDomNode = (0, M.X)(this.scrollbar.getDomNode()), this.scrollbarDomNode.setPosition( "absolute"), this._setLayout(); const c = (e, t, i) => { const n = {}; if (t) { const t = e.scrollTop; t && (n.scrollTop = this._context.viewLayout.getCurrentScrollTop() + t, e.scrollTop = 0) } if (i) { const t = e.scrollLeft; t && (n.scrollLeft = this._context.viewLayout.getCurrentScrollLeft() + t, e.scrollLeft = 0) } this._context.model.setScrollPosition(n, 1) }; this._register(S.nm(i.domNode, "scroll", (e => c(i.domNode, !0, !0)))), this._register(S.nm(t.domNode, "scroll", (e => c(t.domNode, !0, !1)))), this._register(S.nm(n.domNode, "scroll", (e => c(n.domNode, !0, !1)))), this._register(S.nm(this.scrollbarDomNode.domNode, "scroll", (e => c( this.scrollbarDomNode.domNode, !0, !1)))) } dispose() { super.dispose() } _setLayout() { const e = this._context.configuration.options, t = e.get(130); this.scrollbarDomNode.setLeft(t.contentLeft), "right" === e.get(64).side ? this.scrollbarDomNode.setWidth(t.contentWidth + t.minimap.minimapWidth) : this.scrollbarDomNode.setWidth(t.contentWidth), this.scrollbarDomNode .setHeight(t.height) } getOverviewRulerLayoutInfo() { return this.scrollbar.getOverviewRulerLayoutInfo() } getDomNode() { return this.scrollbarDomNode } delegateVerticalScrollbarMouseDown(e) { this.scrollbar.delegateVerticalScrollbarMouseDown(e) } onConfigurationChanged(e) { if (e.hasChanged(92) || e.hasChanged(66) || e.hasChanged(33)) { const e = this._context.configuration.options, t = e.get(92), i = e.get(66), n = e.get(33), o = e.get(95), r = { vertical: t.vertical, horizontal: t.horizontal, verticalScrollbarSize: t.verticalScrollbarSize, horizontalScrollbarSize: t.horizontalScrollbarSize, scrollByPage: t.scrollByPage, handleMouseWheel: t.handleMouseWheel, mouseWheelScrollSensitivity: i, fastScrollSensitivity: n, scrollPredominantAxis: o }; this.scrollbar.updateOptions(r) } return e.hasChanged(130) && this._setLayout(), !0 } onScrollChanged(e) { return !0 } onThemeChanged(e) { return this.scrollbar.updateClassName("editor-scrollable " + (0, Ge.m6) (this._context.theme.type)), !0 } prepareRender(e) {} render(e) { this.scrollbar.renderNow() } } var Mt = i(4827), At = {}; At.styleTagTransform = v(), At.setAttributes = m(), At.insert = g().bind( null, "head"), At.domAPI = h(), At.insertStyleElement = _(), d()(Mt.Z, At), Mt.Z && Mt.Z.locals && Mt.Z.locals; class Rt { constructor(e, t, i) { this._decorationToRenderBrand = void 0, this.startLineNumber = +e, this.endLineNumber = +t, this.className = String(i) } } class Ot extends qe { _render(e, t, i) { const n = []; for (let i = e; i <= t; i++) n[i - e] = []; if (0 === i.length) return n; i.sort(((e, t) => e.className === t.className ? e.startLineNumber === t.startLineNumber ? e.endLineNumber - t.endLineNumber : e.startLineNumber - t.startLineNumber : e.className < t.className ? -1 : 1)); let o = null, r = 0; for (let s = 0, a = i.length; s < a; s++) { const a = i[s], l = a.className; let d = Math.max(a.startLineNumber, e) - e; const c = Math.min(a.endLineNumber, t) - e; o === l ? (d = Math.max(r + 1, d), r = Math.max(r, c)) : (o = l, r = c); for (let e = d; e <= r; e++) n[e].push(o) } return n } } class Pt extends Ot { constructor(e) { super(), this._context = e; const t = this._context.configuration.options, i = t.get(130); this._lineHeight = t.get(58), this._glyphMargin = t.get(48), this._glyphMarginLeft = i.glyphMarginLeft, this._glyphMarginWidth = i.glyphMarginWidth, this._renderResult = null, this._context.addEventHandler(this) } dispose() { this._context.removeEventHandler(this), this._renderResult = null, super.dispose() } onConfigurationChanged(e) { const t = this._context.configuration.options, i = t.get(130); return this._lineHeight = t.get(58), this._glyphMargin = t.get(48), this._glyphMarginLeft = i.glyphMarginLeft, this._glyphMarginWidth = i .glyphMarginWidth, !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 t = e.getDecorationsInViewport(); let i = [], n = 0; for (let e = 0, o = t.length; e < o; e++) { const o = t[e], r = o.options.glyphMarginClassName; r && (i[n++] = new Rt(o.range.startLineNumber, o.range.endLineNumber, r)) } return i } prepareRender(e) { if (!this._glyphMargin) return void(this._renderResult = null); const t = e.visibleRange.startLineNumber, i = e.visibleRange.endLineNumber, n = this._render(t, i, this._getDecorations(e)), o = this._lineHeight.toString(), r = '" style="left:' + this._glyphMarginLeft.toString() + "px;width:" + this._glyphMarginWidth.toString() + "px;height:" + o + 'px;">', s = []; for (let e = t; e <= i; e++) { const i = e - t, o = n[i]; 0 === o.length ? s[i] = "" : s[i] = '
    = this._renderResult.length ? "" : this._renderResult[ i] } } var Ft = i(6848), Bt = {}; Bt.styleTagTransform = v(), Bt.setAttributes = m(), Bt.insert = g().bind( null, "head"), Bt.domAPI = h(), Bt.insertStyleElement = _(), d()(Ft.Z, Bt), Ft.Z && Ft.Z.locals && Ft.Z.locals; class Wt extends qe { constructor(e) { super(), this._context = e, this._primaryLineNumber = 0; const t = this._context.configuration.options, i = t.get(131), n = t.get(42); this._lineHeight = t.get(58), this._spaceWidth = n.spaceWidth, this._enabled = t.get(83), this._activeIndentEnabled = t.get(51), this._maxIndentLeft = - 1 === i.wrappingColumn ? -1 : i.wrappingColumn * n.typicalHalfwidthCharacterWidth, this._renderResult = null, this._context.addEventHandler(this) } dispose() { this._context.removeEventHandler(this), this._renderResult = null, super.dispose() } onConfigurationChanged(e) { const t = this._context.configuration.options, i = t.get(131), n = t.get(42); return this._lineHeight = t.get(58), this._spaceWidth = n.spaceWidth, this._enabled = t.get(83), this._activeIndentEnabled = t.get(51), this._maxIndentLeft = -1 === i.wrappingColumn ? -1 : i.wrappingColumn * n.typicalHalfwidthCharacterWidth, !0 } onCursorStateChanged(e) { const t = e.selections[0], i = t.isEmpty() ? t.positionLineNumber : 0; return this._primaryLineNumber !== i && (this._primaryLineNumber = i, ! 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 } onLanguageConfigurationChanged(e) { return !0 } prepareRender(e) { if (!this._enabled) return void(this._renderResult = null); const t = e.visibleRange.startLineNumber, i = e.visibleRange.endLineNumber, { indentSize: n } = this._context.model.getTextModelOptions(), o = n * this._spaceWidth, r = e.scrollWidth, s = this._lineHeight, a = this._context.model.getLinesIndentGuides(t, i); let l = 0, d = 0, c = 0; if (this._activeIndentEnabled && this._primaryLineNumber) { const e = this._context.model.getActiveIndentGuide(this._primaryLineNumber, t, i); l = e.startLineNumber, d = e.endLineNumber, c = e.indent } const h = []; for (let n = t; n <= i; n++) { const i = l <= n && n <= d, u = n - t, g = a[u]; let p = ""; if (g >= 1) { const t = e.visibleRangeForPosition(new fe.L(n, 1)); let a = t ? t.left : 0; for (let e = 1; e <= g && (p += `
    `, a += o, !(a > r || this._maxIndentLeft > 0 && a > this._maxIndentLeft) ); e++); } h[u] = p } this._renderResult = h } render(e, t) { if (!this._renderResult) return ""; const i = t - e; return i < 0 || i >= this._renderResult.length ? "" : this._renderResult[ i] } }(0, Ge.Ic)(((e, t) => { const i = e.getColor(Ze.tR); i && t.addRule( `.monaco-editor .lines-content .cigr { box-shadow: 1px 0 0 0 ${i} inset; }` ); const n = e.getColor(Ze.Ym) || i; n && t.addRule( `.monaco-editor .lines-content .cigra { box-shadow: 1px 0 0 0 ${n} inset; }` ) })); var zt = i(9565), Vt = {}; Vt.styleTagTransform = v(), Vt.setAttributes = m(), Vt.insert = g().bind( null, "head"), Vt.domAPI = h(), Vt.insertStyleElement = _(), d()(zt.Z, Vt), zt.Z && zt.Z.locals && zt.Z.locals; class Ht { constructor() { this._currentVisibleRange = new _e.e(1, 1, 1, 1) } getCurrentVisibleRange() { return this._currentVisibleRange } setCurrentVisibleRange(e) { this._currentVisibleRange = e } } class Ut { constructor(e, t, i, n, o, r) { this.lineNumber = e, this.startColumn = t, this.endColumn = i, this.startScrollTop = n, this.stopScrollTop = o, this.scrollType = r, this.type = "range", this.minLineNumber = e, this.maxLineNumber = e } } class jt { constructor(e, t, i, n) { this.selections = e, this.startScrollTop = t, this.stopScrollTop = i, this.scrollType = n, this.type = "selections"; let o = e[0].startLineNumber, r = e[0].endLineNumber; for (let t = 1, i = e.length; t < i; t++) { const i = e[t]; o = Math.min(o, i.startLineNumber), r = Math.max(r, i.endLineNumber) } this.minLineNumber = o, this.maxLineNumber = r } } class Kt extends q { constructor(e, t) { super(e), this._linesContent = t, this._textRangeRestingSpot = document.createElement("div"), this._visibleLines = new ct(this), this.domNode = this._visibleLines.domNode; const i = this._context.configuration, n = this._context.configuration.options, o = n.get(42), r = n.get(131); this._lineHeight = n.get(58), this._typicalHalfwidthCharacterWidth = o .typicalHalfwidthCharacterWidth, this._isViewportWrapping = r.isViewportWrapping, this._revealHorizontalRightPadding = n.get(89), this._cursorSurroundingLines = n.get(24), this._cursorSurroundingLinesStyle = n.get(25), this._canUseLayerHinting = ! n.get(27), this._viewLineOptions = new de(i, this._context.theme.type), Z.write(this.domNode, 7), this.domNode.setClassName( `view-lines ${Je.S}`), D.V.applyFontInfo(this.domNode, o), this._maxLineWidth = 0, this._asyncUpdateLineWidths = new P.pY((() => { this._updateLineWidthsSlow() }), 200), this._asyncCheckMonospaceFontAssumptions = new P.pY((() => { this._checkMonospaceFontAssumptions() }), 2e3), this._lastRenderedData = new Ht, this._horizontalRevealRequest = null } dispose() { this._asyncUpdateLineWidths.dispose(), this._asyncCheckMonospaceFontAssumptions .dispose(), super.dispose() } getDomNode() { return this.domNode } createVisibleLine() { return new ce(this._viewLineOptions) } onConfigurationChanged(e) { this._visibleLines.onConfigurationChanged(e), e.hasChanged(131) && ( this._maxLineWidth = 0); const t = this._context.configuration.options, i = t.get(42), n = t.get(131); return this._lineHeight = t.get(58), this._typicalHalfwidthCharacterWidth = i.typicalHalfwidthCharacterWidth, this._isViewportWrapping = n.isViewportWrapping, this._revealHorizontalRightPadding = t.get(89), this._cursorSurroundingLines = t.get(24), this._cursorSurroundingLinesStyle = t.get(25), this._canUseLayerHinting = ! t.get(27), D.V.applyFontInfo(this.domNode, i), this._onOptionsMaybeChanged(), e.hasChanged(130) && (this._maxLineWidth = 0), !0 } _onOptionsMaybeChanged() { const e = this._context.configuration, t = new de(e, this._context.theme.type); if (!this._viewLineOptions.equals(t)) { this._viewLineOptions = t; const e = this._visibleLines.getStartLineNumber(), i = this._visibleLines.getEndLineNumber(); for (let t = e; t <= i; t++) this._visibleLines.getVisibleLine(t).onOptionsChanged( this._viewLineOptions); return !0 } return !1 } onCursorStateChanged(e) { const t = this._visibleLines.getStartLineNumber(), i = this._visibleLines.getEndLineNumber(); let n = !1; for (let e = t; e <= i; e++) n = this._visibleLines.getVisibleLine(e).onSelectionChanged() || n; return n } onDecorationsChanged(e) { { const e = this._visibleLines.getStartLineNumber(), t = this._visibleLines.getEndLineNumber(); for (let i = e; i <= t; i++) this._visibleLines.getVisibleLine(i).onDecorationsChanged() } return !0 } onFlushed(e) { const t = this._visibleLines.onFlushed(e); return this._maxLineWidth = 0, t } onLinesChanged(e) { return this._visibleLines.onLinesChanged(e) } onLinesDeleted(e) { return this._visibleLines.onLinesDeleted(e) } onLinesInserted(e) { return this._visibleLines.onLinesInserted(e) } onRevealRangeRequest(e) { const t = this._computeScrollTopToRevealRange(this._context.viewLayout .getFutureViewport(), e.source, e.range, e.selections, e.verticalType ); if (-1 === t) return !1; let i = this._context.viewLayout.validateScrollPosition({ scrollTop: t }); e.revealHorizontal ? e.range && e.range.startLineNumber !== e.range.endLineNumber ? i = { scrollTop: i.scrollTop, scrollLeft: 0 } : e.range ? this._horizontalRevealRequest = new Ut(e.range.startLineNumber, e.range.startColumn, e.range.endColumn, this._context.viewLayout.getCurrentScrollTop(), i.scrollTop, e.scrollType) : e.selections && e.selections.length > 0 && (this._horizontalRevealRequest = new jt(e.selections, this._context.viewLayout .getCurrentScrollTop(), i.scrollTop, e.scrollType)) : this._horizontalRevealRequest = null; const n = Math.abs(this._context.viewLayout.getCurrentScrollTop() - i.scrollTop) <= this._lineHeight ? 1 : e.scrollType; return this._context.model.setScrollPosition(i, n), !0 } onScrollChanged(e) { if (this._horizontalRevealRequest && e.scrollLeftChanged && (this._horizontalRevealRequest = null), this._horizontalRevealRequest && e.scrollTopChanged) { const t = Math.min(this._horizontalRevealRequest.startScrollTop, this ._horizontalRevealRequest.stopScrollTop), i = Math.max(this._horizontalRevealRequest.startScrollTop, this._horizontalRevealRequest .stopScrollTop); (e.scrollTop < t || e.scrollTop > i) && (this._horizontalRevealRequest = null) } return this.domNode.setWidth(e.scrollWidth), this._visibleLines.onScrollChanged( e) || !0 } onTokensChanged(e) { return this._visibleLines.onTokensChanged(e) } onZonesChanged(e) { return this._context.model.setMaxLineWidth(this._maxLineWidth), this._visibleLines .onZonesChanged(e) } onThemeChanged(e) { return this._onOptionsMaybeChanged() } getPositionFromDOMInfo(e, t) { const i = this._getViewLineDomNode(e); if (null === i) return null; const n = this._getLineNumberFor(i); if (-1 === n) return null; if (n < 1 || n > this._context.model.getLineCount()) return null; if (1 === this._context.model.getLineMaxColumn(n)) return new fe.L(n, 1); const o = this._visibleLines.getStartLineNumber(), r = this._visibleLines.getEndLineNumber(); if (n < o || n > r) return null; let s = this._visibleLines.getVisibleLine(n).getColumnOfNodeOffset(n, e, t); const a = this._context.model.getLineMinColumn(n); return s < a && (s = a), new fe.L(n, s) } _getViewLineDomNode(e) { for (; e && 1 === e.nodeType;) { if (e.className === ce.CLASS_NAME) return e; e = e.parentElement } return null } _getLineNumberFor(e) { const t = this._visibleLines.getStartLineNumber(), i = this._visibleLines.getEndLineNumber(); for (let n = t; n <= i; n++) if (e === this._visibleLines.getVisibleLine(n).getDomNode()) return n; return -1 } getLineWidth(e) { const t = this._visibleLines.getStartLineNumber(), i = this._visibleLines.getEndLineNumber(); return e < t || e > i ? -1 : this._visibleLines.getVisibleLine(e).getWidth() } linesVisibleRangesForRange(e, t) { if (this.shouldRender()) return null; const i = e.endLineNumber, n = _e.e.intersectRanges(e, this._lastRenderedData.getCurrentVisibleRange()); if (!n) return null; let o = [], r = 0; const s = new le(this.domNode.domNode, this._textRangeRestingSpot); let a = 0; t && (a = this._context.model.coordinatesConverter.convertViewPositionToModelPosition( new fe.L(n.startLineNumber, 1)).lineNumber); const l = this._visibleLines.getStartLineNumber(), d = this._visibleLines.getEndLineNumber(); for (let e = n.startLineNumber; e <= n.endLineNumber; e++) { if (e < l || e > d) continue; const c = e === n.startLineNumber ? n.startColumn : 1, h = e === n.endLineNumber ? n.endColumn : this._context.model.getLineMaxColumn( e), u = this._visibleLines.getVisibleLine(e).getVisibleRangesForRange(e, c, h, s); if (u) { if (t && e < i) { const t = a; a = this._context.model.coordinatesConverter.convertViewPositionToModelPosition( new fe.L(e + 1, 1)).lineNumber, t !== a && (u.ranges[u.ranges.length - 1].width += this._typicalHalfwidthCharacterWidth) } o[r++] = new Y(u.outsideRenderedLine, e, Q.from(u.ranges)) } } return 0 === r ? null : o } _visibleRangesForLineRange(e, t, i) { return this.shouldRender() || e < this._visibleLines.getStartLineNumber() || e > this._visibleLines.getEndLineNumber() ? null : this._visibleLines .getVisibleLine(e).getVisibleRangesForRange(e, t, i, new le(this.domNode .domNode, this._textRangeRestingSpot)) } visibleRangeForPosition(e) { const t = this._visibleRangesForLineRange(e.lineNumber, e.column, e.column); return t ? new J(t.outsideRenderedLine, t.ranges[0].left) : null } updateLineWidths() { this._updateLineWidths(!1) } _updateLineWidthsFast() { return this._updateLineWidths(!0) } _updateLineWidthsSlow() { this._updateLineWidths(!1) } _updateLineWidths(e) { const t = this._visibleLines.getStartLineNumber(), i = this._visibleLines.getEndLineNumber(); let n = 1, o = !0; for (let r = t; r <= i; r++) { const t = this._visibleLines.getVisibleLine(r); !e || t.getWidthIsFast() ? n = Math.max(n, t.getWidth()) : o = !1 } return o && 1 === t && i === this._context.model.getLineCount() && ( this._maxLineWidth = 0), this._ensureMaxLineWidth(n), o } _checkMonospaceFontAssumptions() { let e = -1, t = -1; const i = this._visibleLines.getStartLineNumber(), n = this._visibleLines.getEndLineNumber(); for (let o = i; o <= n; o++) { const i = this._visibleLines.getVisibleLine(o); if (i.needsMonospaceFontCheck()) { const n = i.getWidth(); n > t && (t = n, e = o) } } if (-1 !== e && !this._visibleLines.getVisibleLine(e).monospaceAssumptionsAreValid()) for (let e = i; e <= n; e++) this._visibleLines.getVisibleLine(e).onMonospaceAssumptionsInvalidated() } prepareRender() { throw new Error("Not supported") } render() { throw new Error("Not supported") } renderText(e) { if (this._visibleLines.renderLines(e), this._lastRenderedData.setCurrentVisibleRange( e.visibleRange), this.domNode.setWidth(this._context.viewLayout.getScrollWidth()), this.domNode.setHeight(Math.min(this._context.viewLayout.getScrollHeight(), 1e6)), this._horizontalRevealRequest) { const t = this._horizontalRevealRequest; if (e.startLineNumber <= t.minLineNumber && t.maxLineNumber <= e.endLineNumber) { this._horizontalRevealRequest = null, this.onDidRender(); const e = this._computeScrollLeftToReveal(t); e && (this._isViewportWrapping || this._ensureMaxLineWidth(e.maxHorizontalOffset), this._context.model.setScrollPosition({ scrollLeft: e.scrollLeft }, t.scrollType)) } } if (this._updateLineWidthsFast() || this._asyncUpdateLineWidths.schedule(), A.IJ && !this._asyncCheckMonospaceFontAssumptions.isScheduled()) { const e = this._visibleLines.getStartLineNumber(), t = this._visibleLines.getEndLineNumber(); for (let i = e; i <= t; i++) if (this._visibleLines.getVisibleLine(i).needsMonospaceFontCheck()) { this._asyncCheckMonospaceFontAssumptions.schedule(); break } } this._linesContent.setLayerHinting(this._canUseLayerHinting), this._linesContent .setContain("strict"); const t = this._context.viewLayout.getCurrentScrollTop() - e.bigNumbersDelta; this._linesContent.setTop(-t), this._linesContent.setLeft(-this._context .viewLayout.getCurrentScrollLeft()) } _ensureMaxLineWidth(e) { const t = Math.ceil(e); this._maxLineWidth < t && (this._maxLineWidth = t, this._context.model .setMaxLineWidth(this._maxLineWidth)) } _computeScrollTopToRevealRange(e, t, i, n, o) { const r = e.top, s = e.height, a = r + s; let l, d, c, h; if (n && n.length > 0) { let e = n[0].startLineNumber, t = n[0].endLineNumber; for (let i = 1, o = n.length; i < o; i++) { const o = n[i]; e = Math.min(e, o.startLineNumber), t = Math.max(t, o.endLineNumber) } l = !1, d = this._context.viewLayout.getVerticalOffsetForLineNumber(e), c = this._context.viewLayout.getVerticalOffsetForLineNumber(t) + this._lineHeight } else { if (!i) return -1; l = !0, d = this._context.viewLayout.getVerticalOffsetForLineNumber(i .startLineNumber), c = this._context.viewLayout.getVerticalOffsetForLineNumber( i.endLineNumber) + this._lineHeight } if ("mouse" !== t || "default" !== this._cursorSurroundingLinesStyle) { const e = Math.min(s / this._lineHeight / 2, this._cursorSurroundingLines); d -= e * this._lineHeight, c += Math.max(0, e - 1) * this._lineHeight } if (0 !== o && 4 !== o || (c += this._lineHeight), c - d > s) { if (!l) return -1; h = d } else if (5 === o || 6 === o) if (6 === o && r <= d && c <= a) h = r; else { const e = d - Math.max(5 * this._lineHeight, .2 * s), t = c - s; h = Math.max(t, e) } else if (1 === o || 2 === o) if (2 === o && r <= d && c <= a) h = r; else { const e = (d + c) / 2; h = Math.max(0, e - s / 2) } else h = this._computeMinimumScrolling(r, a, d, c, 3 === o, 4 === o); return h } _computeScrollLeftToReveal(e) { const t = this._context.viewLayout.getCurrentViewport(), i = t.left, n = i + t.width; let o = 1073741824, r = 0; if ("range" === e.type) { const t = this._visibleRangesForLineRange(e.lineNumber, e.startColumn, e.endColumn); if (!t) return null; for (const e of t.ranges) o = Math.min(o, Math.round(e.left)), r = Math.max(r, Math.round(e.left + e.width)) } else for (const t of e.selections) { if (t.startLineNumber !== t.endLineNumber) return null; const e = this._visibleRangesForLineRange(t.startLineNumber, t.startColumn, t.endColumn); if (!e) return null; for (const t of e.ranges) o = Math.min(o, Math.round(t.left)), r = Math.max(r, Math.round(t.left + t.width)) } return o = Math.max(0, o - Kt.HORIZONTAL_EXTRA_PX), r += this._revealHorizontalRightPadding, "selections" === e.type && r - o > t.width ? null : { scrollLeft: this._computeMinimumScrolling(i, n, o, r), maxHorizontalOffset: r } } _computeMinimumScrolling(e, t, i, n, o, r) { o = !!o, r = !!r; const s = (t |= 0) - (e |= 0); return (n |= 0) - (i |= 0) < s ? o ? i : r ? Math.max(0, n - s) : i < e ? i : n > t ? Math.max(0, n - s) : e : i } } Kt.HORIZONTAL_EXTRA_PX = 30; var $t = i(4444), qt = {}; qt.styleTagTransform = v(), qt.setAttributes = m(), qt.insert = g().bind( null, "head"), qt.domAPI = h(), qt.insertStyleElement = _(), d()($t.Z, qt), $t.Z && $t.Z.locals && $t.Z.locals; class Zt extends Ot { constructor(e) { super(), this._context = e; const t = this._context.configuration.options.get(130); this._decorationsLeft = t.decorationsLeft, this._decorationsWidth = t.decorationsWidth, this._renderResult = null, this._context.addEventHandler(this) } dispose() { this._context.removeEventHandler(this), this._renderResult = null, super.dispose() } onConfigurationChanged(e) { const t = this._context.configuration.options.get(130); return this._decorationsLeft = t.decorationsLeft, this._decorationsWidth = t.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 t = e.getDecorationsInViewport(); let i = [], n = 0; for (let e = 0, o = t.length; e < o; e++) { const o = t[e], r = o.options.linesDecorationsClassName; r && (i[n++] = new Rt(o.range.startLineNumber, o.range.endLineNumber, r)); const s = o.options.firstLineDecorationClassName; s && (i[n++] = new Rt(o.range.startLineNumber, o.range.startLineNumber, s)) } return i } prepareRender(e) { const t = e.visibleRange.startLineNumber, i = e.visibleRange.endLineNumber, n = this._render(t, i, this._getDecorations(e)), o = '" style="left:' + this._decorationsLeft.toString() + "px;width:" + this._decorationsWidth.toString() + 'px;">
    ', r = []; for (let e = t; e <= i; e++) { const i = e - t, s = n[i]; let a = ""; for (let e = 0, t = s.length; e < t; e++) a += '
    '; o[i] = s } this._renderResult = o } render(e, t) { return this._renderResult ? this._renderResult[t - e] : "" } } var Xt = i(563), Jt = {}; Jt.styleTagTransform = v(), Jt.setAttributes = m(), Jt.insert = g().bind( null, "head"), Jt.domAPI = h(), Jt.insertStyleElement = _(), d()(Xt.Z, Jt), Xt.Z && Xt.Z.locals && Xt.Z.locals; class ei { constructor(e, t, i, n) { this._rgba8Brand = void 0, this.r = ei._clamp(e), this.g = ei._clamp(t), this.b = ei._clamp(i), this.a = ei._clamp(n) } equals(e) { return this.r === e.r && this.g === e.g && this.b === e.b && this.a === e.a } static _clamp(e) { return e < 0 ? 0 : e > 255 ? 255 : 0 | e } } ei.Empty = new ei(0, 0, 0, 0); var ti = i(4101); class ii extends L.JT { constructor() { super(), this._onDidChange = new k.Q5, this.onDidChange = this._onDidChange .event, this._updateColorMap(), this._register(ti.RW.onDidChange((e => { e.changedColorMap && this._updateColorMap() }))) } static getInstance() { return this._INSTANCE || (this._INSTANCE = (0, L.dk)(new ii)), this._INSTANCE } _updateColorMap() { const e = ti.RW.getColorMap(); if (!e) return this._colors = [ei.Empty], void(this._backgroundIsLight = ! 0); this._colors = [ei.Empty]; for (let t = 1; t < e.length; t++) { const i = e[t].rgba; this._colors[t] = new ei(i.r, i.g, i.b, Math.round(255 * i.a)) } let t = e[2].getRelativeLuminance(); this._backgroundIsLight = t >= .5, this._onDidChange.fire(void 0) } getColor(e) { return (e < 1 || e >= this._colors.length) && (e = 2), this._colors[e] } backgroundIsLight() { return this._backgroundIsLight } } ii._INSTANCE = null; var ni = i(3824), oi = i(3910); const ri = (() => { const e = []; for (let t = 32; t <= 126; t++) e.push(t); return e.push(65533), e })(); var si = i(5427); class ai { constructor(e, t) { this.scale = t, this._minimapCharRendererBrand = void 0, this.charDataNormal = ai.soften(e, .8), this.charDataLight = ai.soften(e, 50 / 60) } static soften(e, t) { let i = new Uint8ClampedArray(e.length); for (let n = 0, o = e.length; n < o; n++) i[n] = (0, si.K)(e[n] * t); return i } renderChar(e, t, i, n, o, r, s, a, l) { const d = 1 * this.scale, c = 2 * this.scale, h = l ? 1 : c; if (t + d > e.width || i + h > e.height) return void console.warn( "bad render request outside image data"); const u = a ? this.charDataLight : this.charDataNormal, g = ((e, t) => (e -= 32) < 0 || e > 96 ? t <= 2 ? (e + 96) % 96 : 95 : e)(n, s), p = 4 * e.width, m = r.r, f = r.g, _ = r.b, b = o.r - m, v = o.g - f, w = o.b - _, C = e.data; let y = g * d * c, S = i * p + 4 * t; for (let e = 0; e < h; e++) { let e = S; for (let t = 0; t < d; t++) { const t = u[y++] / 255; C[e++] = m + b * t, C[e++] = f + v * t, C[e++] = _ + w * t, e++ } S += p } } blockRenderChar(e, t, i, n, o, r, s) { const a = 1 * this.scale, l = 2 * this.scale, d = s ? 1 : l; if (t + a > e.width || i + d > e.height) return void console.warn( "bad render request outside image data"); const c = 4 * e.width, h = o.r, u = o.g, g = o.b, p = h + .5 * (n.r - h), m = u + .5 * (n.g - u), f = g + .5 * (n.b - g), _ = e.data; let b = i * c + 4 * t; for (let e = 0; e < d; e++) { let e = b; for (let t = 0; t < a; t++) _[e++] = p, _[e++] = m, _[e++] = f, e++; b += c } } } var li = i(8289); const di = { 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15 }, ci = e => { const t = new Uint8ClampedArray(e.length / 2); for (let i = 0; i < e.length; i += 2) t[i >> 1] = di[e[i]] << 4 | 15 & di[e[i + 1]]; return t }, hi = { 1: (0, li.I)((() => ci( "0000511D6300CF609C709645A78432005642574171487021003C451900274D35D762755E8B629C5BA856AF57BA649530C167D1512A272A3F6038604460398526BCA2A968DB6F8957C768BE5FBE2FB467CF5D8D5B795DC7625B5DFF50DE64C466DB2FC47CD860A65E9A2EB96CB54CE06DA763AB2EA26860524D3763536601005116008177A8705E53AB738E6A982F88BAA35B5F5B626D9C636B449B737E5B7B678598869A662F6B5B8542706C704C80736A607578685B70594A49715A4522E792" ))), 2: (0, li.I)((() => ci( "000000000000000055394F383D2800008B8B1F210002000081B1CBCBCC820000847AAF6B9AAF2119BE08B8881AD60000A44FD07DCCF107015338130C00000000385972265F390B406E2437634B4B48031B12B8A0847000001E15B29A402F0000000000004B33460B00007A752C2A0000000000004D3900000084394B82013400ABA5CFC7AD9C0302A45A3E5A98AB000089A43382D97900008BA54AA087A70A0248A6A7AE6DBE0000BF6F94987EA40A01A06DCFA7A7A9030496C32F77891D0000A99FB1A0AFA80603B29AB9CA75930D010C0948354D3900000C0948354F37460D0028BE673D8400000000AF9D7B6E00002B007AA8933400007AA642675C2700007984CFB9C3985B768772A8A6B7B20000CAAECAAFC4B700009F94A6009F840009D09F9BA4CA9C0000CC8FC76DC87F0000C991C472A2000000A894A48CA7B501079BA2C9C69BA20000B19A5D3FA89000005CA6009DA2960901B0A7F0669FB200009D009E00B7890000DAD0F5D092820000D294D4C48BD10000B5A7A4A3B1A50402CAB6CBA6A2000000B5A7A4A3B1A8044FCDADD19D9CB00000B7778F7B8AAE0803C9AB5D3F5D3F00009EA09EA0BAB006039EA0989A8C7900009B9EF4D6B7C00000A9A7816CACA80000ABAC84705D3F000096DA635CDC8C00006F486F266F263D4784006124097B00374F6D2D6D2D6D4A3A95872322000000030000000000008D8939130000000000002E22A5C9CBC70600AB25C0B5C9B400061A2DB04CA67001082AA6BEBEBFC606002321DACBC19E03087AA08B6768380000282FBAC0B8CA7A88AD25BBA5A29900004C396C5894A6000040485A6E356E9442A32CD17EADA70000B4237923628600003E2DE9C1D7B500002F25BBA5A2990000231DB6AFB4A804023025C0B5CAB588062B2CBDBEC0C706882435A75CA20000002326BD6A82A908048B4B9A5A668000002423A09CB4BB060025259C9D8A7900001C1FCAB2C7C700002A2A9387ABA200002626A4A47D6E9D14333163A0C87500004B6F9C2D643A257049364936493647358A34438355497F1A0000A24C1D590000D38DFFBDD4CD3126" ))) }; class ui { static create(e, t) { if (this.lastCreated && e === this.lastCreated.scale && t === this.lastFontFamily) return this.lastCreated; let i; return i = hi[e] ? new ai(hi[e](), e) : ui.createFromSampleData(ui.createSampleData( t).data, e), this.lastFontFamily = t, this.lastCreated = i, i } static createSampleData(e) { const t = document.createElement("canvas"), i = t.getContext("2d"); t.style.height = "16px", t.height = 16, t.width = 960, t.style.width = "960px", i.fillStyle = "#ffffff", i.font = `bold 16px ${e}`, i.textBaseline = "middle"; let n = 0; for (const e of ri) i.fillText(String.fromCharCode(e), n, 8), n += 10; return i.getImageData(0, 0, 960, 16) } static createFromSampleData(e, t) { if (61440 !== e.length) throw new Error( "Unexpected source in MinimapCharRenderer"); let i = ui._downsample(e, t); return new ai(i, t) } static _downsampleChar(e, t, i, n, o) { const r = 1 * o, s = 2 * o; let a = n, l = 0; for (let n = 0; n < s; n++) { const o = n / s * 16, d = (n + 1) / s * 16; for (let n = 0; n < r; n++) { const s = n / r * 10, c = (n + 1) / r * 10; let h = 0, u = 0; for (let i = o; i < d; i++) { const n = t + 3840 * Math.floor(i), o = 1 - (i - Math.floor(i)); for (let t = s; t < c; t++) { const i = 1 - (t - Math.floor(t)), r = n + 4 * Math.floor(t), s = i * o; u += s, h += e[r] * e[r + 3] / 255 * s } } const g = h / u; l = Math.max(l, g), i[a++] = (0, si.K)(g) } } return l } static _downsample(e, t) { const i = 2 * t * 1 * t, n = 96 * i, o = new Uint8ClampedArray(n); let r = 0, s = 0, a = 0; for (let n = 0; n < 96; n++) a = Math.max(a, this._downsampleChar(e, s, o, r, t)), r += i, s += 40; if (a > 0) { const e = 255 / a; for (let t = 0; t < n; t++) o[t] *= e } return o } } var gi = i(4973); class pi { constructor(e, t, i) { const n = e.options, o = n.get(128), r = n.get(130), s = r.minimap, a = n.get(42), l = n.get(64); this.renderMinimap = s.renderMinimap, this.size = l.size, this.minimapHeightIsEditorHeight = s.minimapHeightIsEditorHeight, this.scrollBeyondLastLine = n.get(94), this.showSlider = l.showSlider, this.pixelRatio = o, this.typicalHalfwidthCharacterWidth = a.typicalHalfwidthCharacterWidth, this.lineHeight = n.get(58), this.minimapLeft = s.minimapLeft, this.minimapWidth = s.minimapWidth, this.minimapHeight = r.height, this.canvasInnerWidth = s.minimapCanvasInnerWidth, this.canvasInnerHeight = s.minimapCanvasInnerHeight, this.canvasOuterWidth = s.minimapCanvasOuterWidth, this.canvasOuterHeight = s.minimapCanvasOuterHeight, this.isSampling = s.minimapIsSampling, this.editorHeight = r.height, this.fontScale = s .minimapScale, this.minimapLineHeight = s.minimapLineHeight, this.minimapCharWidth = 1 * this.fontScale, this.charRenderer = (0, li.I)((() => ui.create( this.fontScale, a.fontFamily))), this.backgroundColor = pi._getMinimapBackground( t, i) } static _getMinimapBackground(e, t) { const i = e.getColor(oi.kV); return i ? new ei(i.rgba.r, i.rgba.g, i.rgba.b, i.rgba.a) : t.getColor( 2) } equals(e) { return this.renderMinimap === e.renderMinimap && this.size === e.size && this.minimapHeightIsEditorHeight === e.minimapHeightIsEditorHeight && this.scrollBeyondLastLine === e.scrollBeyondLastLine && this.showSlider === e.showSlider && this.pixelRatio === e.pixelRatio && this.typicalHalfwidthCharacterWidth === e.typicalHalfwidthCharacterWidth && this.lineHeight === e.lineHeight && this.minimapLeft === e.minimapLeft && this.minimapWidth === e.minimapWidth && this.minimapHeight === e.minimapHeight && this.canvasInnerWidth === e .canvasInnerWidth && this.canvasInnerHeight === e.canvasInnerHeight && this.canvasOuterWidth === e.canvasOuterWidth && this.canvasOuterHeight === e.canvasOuterHeight && this.isSampling === e.isSampling && this.editorHeight === e.editorHeight && this.fontScale === e.fontScale && this.minimapLineHeight === e.minimapLineHeight && this.minimapCharWidth === e.minimapCharWidth && this.backgroundColor && this.backgroundColor.equals(e.backgroundColor) } } class mi { constructor(e, t, i, n, o, r, s, a) { this.scrollTop = e, this.scrollHeight = t, this.sliderNeeded = i, this ._computedSliderRatio = n, this.sliderTop = o, this.sliderHeight = r, this.startLineNumber = s, this.endLineNumber = a } getDesiredScrollTopFromDelta(e) { return Math.round(this.scrollTop + e / this._computedSliderRatio) } getDesiredScrollTopFromTouchLocation(e) { return Math.round((e - this.sliderHeight / 2) / this._computedSliderRatio) } static create(e, t, i, n, o, r, s, a, l, d, c) { const h = e.pixelRatio, u = e.minimapLineHeight, g = Math.floor(e.canvasInnerHeight / u), p = e.lineHeight; if (e.minimapHeightIsEditorHeight) { const t = a * e.lineHeight + (e.scrollBeyondLastLine ? o - e.lineHeight : 0), i = Math.max(1, Math.floor(o * o / t)), n = Math.max(0, e.minimapHeight - i), r = n / (d - o), c = l * r, h = n > 0, u = Math.floor(e.canvasInnerHeight / e.minimapLineHeight); return new mi(l, d, h, r, c, i, 1, Math.min(s, u)) } let m, f; if (r && i !== s) { const e = i - t + 1; m = Math.floor(e * u / h) } else { const e = o / p; m = Math.floor(e * u / h) } f = e.scrollBeyondLastLine ? (s - 1) * u / h : Math.max(0, s * u / h - m), f = Math.min(e.minimapHeight - m, f); const _ = f / (d - o), b = l * _; let v = 0; if (e.scrollBeyondLastLine && (v = o / p - 1), g >= s + v) return new mi( l, d, f > 0, _, b, m, 1, s); { let e = Math.max(1, Math.floor(t - b * h / u)); c && c.scrollHeight === d && (c.scrollTop > l && (e = Math.min(e, c.startLineNumber)), c.scrollTop < l && (e = Math.max(e, c.startLineNumber))); const i = Math.min(s, e + g - 1); return new mi(l, d, !0, _, (t - e + (l - n) / p) * u / h, m, e, i) } } } class fi { constructor(e) { this.dy = e } onContentChanged() { this.dy = -1 } onTokensChanged() { this.dy = -1 } } fi.INVALID = new fi(-1); class _i { constructor(e, t, i) { this.renderedLayout = e, this._imageData = t, this._renderedLines = new dt((() => fi.INVALID)), this._renderedLines._set(e.startLineNumber, i) } linesEquals(e) { if (!this.scrollEquals(e)) return !1; const t = this._renderedLines._get().lines; for (let e = 0, i = t.length; e < i; e++) if (-1 === t[e].dy) return !1; return !0 } scrollEquals(e) { return this.renderedLayout.startLineNumber === e.startLineNumber && this.renderedLayout.endLineNumber === e.endLineNumber } _get() { const e = this._renderedLines._get(); return { imageData: this._imageData, rendLineNumberStart: e.rendLineNumberStart, lines: e.lines } } onLinesChanged(e, t) { return this._renderedLines.onLinesChanged(e, t) } onLinesDeleted(e, t) { this._renderedLines.onLinesDeleted(e, t) } onLinesInserted(e, t) { this._renderedLines.onLinesInserted(e, t) } onTokensChanged(e) { return this._renderedLines.onTokensChanged(e) } } class bi { constructor(e, t, i, n) { this._backgroundFillData = bi._createBackgroundFillData(t, i, n), this ._buffers = [e.createImageData(t, i), e.createImageData(t, i)], this._lastUsedBuffer = 0 } getBuffer() { this._lastUsedBuffer = 1 - this._lastUsedBuffer; const e = this._buffers[this._lastUsedBuffer]; return e.data.set(this._backgroundFillData), e } static _createBackgroundFillData(e, t, i) { const n = i.r, o = i.g, r = i.b, s = new Uint8ClampedArray(e * t * 4); let a = 0; for (let i = 0; i < t; i++) for (let t = 0; t < e; t++) s[a] = n, s[a + 1] = o, s[a + 2] = r, s[a + 3] = 255, a += 4; return s } } class vi { constructor(e, t) { this.samplingRatio = e, this.minimapLines = t } static compute(e, t, i) { if (0 === e.renderMinimap || !e.isSampling) return [null, []]; const n = e.pixelRatio, o = e.lineHeight, r = e.scrollBeyondLastLine, { minimapLineCount: s } = re.gk.computeContainedMinimapLineCount({ viewLineCount: t, scrollBeyondLastLine: r, height: e.editorHeight, lineHeight: o, pixelRatio: n }), a = t / s, l = a / 2; if (!i || 0 === i.minimapLines.length) { let e = []; if (e[0] = 1, s > 1) { for (let t = 0, i = s - 1; t < i; t++) e[t] = Math.round(t * a + l); e[s - 1] = t } return [new vi(a, e), []] } const d = i.minimapLines, c = d.length; let h = [], u = 0, g = 0, p = 1, m = [], f = null; for (let e = 0; e < s; e++) { const i = Math.max(p, Math.round(e * a)), n = Math.max(i, Math.round((e + 1) * a)); for (; u < c && d[u] < i;) { if (m.length < 10) { const e = u + 1 + g; f && "deleted" === f.type && f._oldIndex === u - 1 ? f.deleteToLineNumber++ : (f = { type: "deleted", _oldIndex: u, deleteFromLineNumber: e, deleteToLineNumber: e }, m.push(f)), g-- } u++ } let o; if (u < c && d[u] <= n) o = d[u], u++; else if (o = 0 === e ? 1 : e + 1 === s ? t : Math.round(e * a + l), m .length < 10) { const t = u + 1 + g; f && "inserted" === f.type && f._i === e - 1 ? f.insertToLineNumber++ : (f = { type: "inserted", _i: e, insertFromLineNumber: t, insertToLineNumber: t }, m.push(f)), g++ } h[e] = o, p = o } if (m.length < 10) for (; u < c;) { const e = u + 1 + g; f && "deleted" === f.type && f._oldIndex === u - 1 ? f.deleteToLineNumber++ : (f = { type: "deleted", _oldIndex: u, deleteFromLineNumber: e, deleteToLineNumber: e }, m.push(f)), g--, u++ } else m = [{ type: "flush" }]; return [new vi(a, h), m] } modelLineToMinimapLine(e) { return Math.min(this.minimapLines.length, Math.max(1, Math.round(e / this.samplingRatio))) } modelLineRangeToMinimapLineRange(e, t) { let i = this.modelLineToMinimapLine(e) - 1; for (; i > 0 && this.minimapLines[i - 1] >= e;) i--; let n = this.modelLineToMinimapLine(t) - 1; for (; n + 1 < this.minimapLines.length && this.minimapLines[n + 1] <= t;) n++; if (i === n) { const n = this.minimapLines[i]; if (n < e || n > t) return null } return [i + 1, n + 1] } decorationLineRangeToMinimapLineRange(e, t) { let i = this.modelLineToMinimapLine(e), n = this.modelLineToMinimapLine(t); return e !== t && n === i && (n === this.minimapLines.length ? i > 1 && i-- : n++), [i, n] } onLinesDeleted(e) { const t = e.toLineNumber - e.fromLineNumber + 1; let i = this.minimapLines.length, n = 0; for (let o = this.minimapLines.length - 1; o >= 0 && !(this.minimapLines[ o] < e.fromLineNumber); o--) this.minimapLines[o] <= e.toLineNumber ? (this.minimapLines[o] = Math.max(1, e.fromLineNumber - 1), i = Math.min( i, o), n = Math.max(n, o)) : this.minimapLines[o] -= t; return [i, n] } onLinesInserted(e) { const t = e.toLineNumber - e.fromLineNumber + 1; for (let i = this.minimapLines.length - 1; i >= 0 && !(this.minimapLines[ i] < e.fromLineNumber); i--) this.minimapLines[i] += t } } class wi extends q { constructor(e) { super(e), this.tokensColorTracker = ii.getInstance(), this._selections = [], this._minimapSelections = null, this.options = new pi(this._context.configuration, this._context.theme, this.tokensColorTracker); const [t] = vi.compute(this.options, this._context.model.getLineCount(), null); this._samplingState = t, this._shouldCheckSampling = !1, this._actual = new Ci(e.theme, this) } dispose() { this._actual.dispose(), super.dispose() } getDomNode() { return this._actual.getDomNode() } _onOptionsMaybeChanged() { const e = new pi(this._context.configuration, this._context.theme, this.tokensColorTracker); return !this.options.equals(e) && (this.options = e, this._recreateLineSampling(), this._actual.onDidChangeOptions(), !0) } onConfigurationChanged(e) { return this._onOptionsMaybeChanged() } onCursorStateChanged(e) { return this._selections = e.selections, this._minimapSelections = null, this._actual.onSelectionChanged() } onDecorationsChanged(e) { return !!e.affectsMinimap && this._actual.onDecorationsChanged() } onFlushed(e) { return this._samplingState && (this._shouldCheckSampling = !0), this._actual .onFlushed() } onLinesChanged(e) { if (this._samplingState) { const t = this._samplingState.modelLineRangeToMinimapLineRange(e.fromLineNumber, e.toLineNumber); return !!t && this._actual.onLinesChanged(t[0], t[1]) } return this._actual.onLinesChanged(e.fromLineNumber, e.toLineNumber) } onLinesDeleted(e) { if (this._samplingState) { const [t, i] = this._samplingState.onLinesDeleted(e); return t <= i && this._actual.onLinesChanged(t + 1, i + 1), this._shouldCheckSampling = ! 0, !0 } return this._actual.onLinesDeleted(e.fromLineNumber, e.toLineNumber) } onLinesInserted(e) { return this._samplingState ? (this._samplingState.onLinesInserted(e), this._shouldCheckSampling = !0, !0) : this._actual.onLinesInserted(e .fromLineNumber, e.toLineNumber) } onScrollChanged(e) { return this._actual.onScrollChanged() } onThemeChanged(e) { return this._context.model.invalidateMinimapColorCache(), this._actual .onThemeChanged(), this._onOptionsMaybeChanged(), !0 } onTokensChanged(e) { if (this._samplingState) { let t = []; for (const i of e.ranges) { const e = this._samplingState.modelLineRangeToMinimapLineRange(i.fromLineNumber, i.toLineNumber); e && t.push({ fromLineNumber: e[0], toLineNumber: e[1] }) } return !!t.length && this._actual.onTokensChanged(t) } return this._actual.onTokensChanged(e.ranges) } onTokensColorsChanged(e) { return this._onOptionsMaybeChanged(), this._actual.onTokensColorsChanged() } onZonesChanged(e) { return this._actual.onZonesChanged() } prepareRender(e) { this._shouldCheckSampling && (this._shouldCheckSampling = !1, this._recreateLineSampling()) } render(e) { let t = e.visibleRange.startLineNumber, i = e.visibleRange.endLineNumber; this._samplingState && (t = this._samplingState.modelLineToMinimapLine( t), i = this._samplingState.modelLineToMinimapLine(i)); const n = { viewportContainsWhitespaceGaps: e.viewportData.whitespaceViewportData .length > 0, scrollWidth: e.scrollWidth, scrollHeight: e.scrollHeight, viewportStartLineNumber: t, viewportEndLineNumber: i, viewportStartLineNumberVerticalOffset: e.getVerticalOffsetForLineNumber( t), scrollTop: e.scrollTop, scrollLeft: e.scrollLeft, viewportWidth: e.viewportWidth, viewportHeight: e.viewportHeight }; this._actual.render(n) } _recreateLineSampling() { this._minimapSelections = null; const e = Boolean(this._samplingState), [t, i] = vi.compute(this.options, this._context.model.getLineCount(), this._samplingState); if (this._samplingState = t, e && this._samplingState) for (const e of i) switch (e.type) { case "deleted": this._actual.onLinesDeleted(e.deleteFromLineNumber, e.deleteToLineNumber); break; case "inserted": this._actual.onLinesInserted(e.insertFromLineNumber, e.insertToLineNumber); break; case "flush": this._actual.onFlushed() } } getLineCount() { return this._samplingState ? this._samplingState.minimapLines.length : this._context.model.getLineCount() } getRealLineCount() { return this._context.model.getLineCount() } getLineContent(e) { return this._samplingState ? this._context.model.getLineContent(this._samplingState .minimapLines[e - 1]) : this._context.model.getLineContent(e) } getMinimapLinesRenderingData(e, t, i) { if (this._samplingState) { let n = []; for (let o = 0, r = t - e + 1; o < r; o++) i[o] ? n[o] = this._context .model.getViewLineData(this._samplingState.minimapLines[e + o - 1]) : n[o] = null; return n } return this._context.model.getMinimapLinesRenderingData(e, t, i).data } getSelections() { if (null === this._minimapSelections) if (this._samplingState) { this._minimapSelections = []; for (const e of this._selections) { const [t, i] = this._samplingState.decorationLineRangeToMinimapLineRange( e.startLineNumber, e.endLineNumber); this._minimapSelections.push(new T.Y(t, e.startColumn, i, e.endColumn)) } } else this._minimapSelections = this._selections; return this._minimapSelections } getMinimapDecorationsInViewport(e, t) { let i; if (this._samplingState) { const n = this._samplingState.minimapLines[e - 1], o = this._samplingState.minimapLines[t - 1]; i = new _e.e(n, 1, o, this._context.model.getLineMaxColumn(o)) } else i = new _e.e(e, 1, t, this._context.model.getLineMaxColumn(t)); const n = this._context.model.getDecorationsInViewport(i); if (this._samplingState) { let e = []; for (const t of n) { if (!t.options.minimap) continue; const i = t.range, n = this._samplingState.modelLineToMinimapLine(i.startLineNumber), o = this._samplingState.modelLineToMinimapLine(i.endLineNumber); e.push(new ni.$l(new _e.e(n, i.startColumn, o, i.endColumn), t.options)) } return e } return n } getOptions() { return this._context.model.getTextModelOptions() } revealLineNumber(e) { this._samplingState && (e = this._samplingState.minimapLines[e - 1]), this._context.model.revealRange("mouse", !1, new _e.e(e, 1, e, 1), 1, 0) } setScrollTop(e) { this._context.model.setScrollPosition({ scrollTop: e }, 1) } } class Ci extends L.JT { constructor(e, t) { super(), this._renderDecorations = !1, this._gestureInProgress = !1, this._theme = e, this._model = t, this._lastRenderData = null, this._buffers = null, this._selectionColor = this._theme.getColor(oi.ov), this._domNode = (0, M.X)(document.createElement("div")), Z.write(this._domNode, 8), this._domNode.setClassName(this._getMinimapDomNodeClassName()), this ._domNode.setPosition("absolute"), this._domNode.setAttribute("role", "presentation"), this._domNode.setAttribute("aria-hidden", "true"), this._shadow = (0, M.X)(document.createElement("div")), this._shadow .setClassName("minimap-shadow-hidden"), this._domNode.appendChild( this._shadow), this._canvas = (0, M.X)(document.createElement( "canvas")), this._canvas.setPosition("absolute"), this._canvas.setLeft( 0), this._domNode.appendChild(this._canvas), this._decorationsCanvas = (0, M.X)(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, M.X)(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, M.X)( document.createElement("div")), this._sliderHorizontal.setPosition( "absolute"), this._sliderHorizontal.setClassName( "minimap-slider-horizontal"), this._slider.appendChild(this._sliderHorizontal), this._applyLayout(), this._mouseDownListener = S.mu(this._domNode.domNode, "mousedown", (e => { if (e.preventDefault(), 0 === this._model.options.renderMinimap) return; if (!this._lastRenderData) return; if ("proportional" !== this._model.options.size) { if (e.leftButton && this._lastRenderData) { const t = S.i(this._slider.domNode), i = t.top + t.height / 2; this._startSliderDragging(e.buttons, e.posx, i, e.posy, this._lastRenderData .renderedLayout) } return } const t = this._model.options.minimapLineHeight, i = this._model.options.canvasInnerHeight / this._model.options.canvasOuterHeight * e.browserEvent.offsetY; let n = Math.floor(i / t) + this._lastRenderData.renderedLayout.startLineNumber; n = Math.min(n, this._model.getLineCount()), this._model.revealLineNumber( n) })), this._sliderMouseMoveMonitor = new F.Z, this._sliderMouseDownListener = S.mu(this._slider.domNode, "mousedown", (e => { e.preventDefault(), e.stopPropagation(), e.leftButton && this._lastRenderData && this._startSliderDragging(e.buttons, e.posx, e.posy, e.posy, this._lastRenderData.renderedLayout) })), this._gestureDisposable = R.o.addTarget(this._domNode.domNode), this._sliderTouchStartListener = S.nm(this._domNode.domNode, R.t.Start, ( e => { e.preventDefault(), e.stopPropagation(), this._lastRenderData && (this._slider.toggleClassName("active", !0), this._gestureInProgress = ! 0, this.scrollDueToTouchEvent(e)) }), { passive: !1 }), this._sliderTouchMoveListener = S.nm(this._domNode.domNode, R.t.Change, ( e => { e.preventDefault(), e.stopPropagation(), this._lastRenderData && this._gestureInProgress && this.scrollDueToTouchEvent(e) }), { passive: !1 }), this._sliderTouchEndListener = S.mu(this._domNode.domNode, R.t.End, ( e => { e.preventDefault(), e.stopPropagation(), this._gestureInProgress = ! 1, this._slider.toggleClassName("active", !1) })) } _startSliderDragging(e, t, i, n, o) { this._slider.toggleClassName("active", !0); const r = (e, n) => { const r = Math.abs(n - t); if (A.ED && r > 140) return void this._model.setScrollTop(o.scrollTop); const s = e - i; this._model.setScrollTop(o.getDesiredScrollTopFromDelta(s)) }; n !== i && r(n, t), this._sliderMouseMoveMonitor.startMonitoring(this ._slider.domNode, e, F.e, (e => r(e.posy, e.posx)), (() => { this._slider.toggleClassName("active", !1) })) } scrollDueToTouchEvent(e) { const t = this._domNode.domNode.getBoundingClientRect().top, i = this._lastRenderData.renderedLayout.getDesiredScrollTopFromTouchLocation( e.pageY - t); this._model.setScrollTop(i) } dispose() { this._mouseDownListener.dispose(), this._sliderMouseMoveMonitor.dispose(), this._sliderMouseDownListener.dispose(), this._gestureDisposable.dispose(), this._sliderTouchStartListener.dispose(), this._sliderTouchMoveListener .dispose(), this._sliderTouchEndListener.dispose(), super.dispose() } _getMinimapDomNodeClassName() { return "always" === this._model.options.showSlider ? "minimap slider-always" : "minimap slider-mouseover" } 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 bi( 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(e, t) { return !!this._lastRenderData && this._lastRenderData.onLinesChanged( e, t) } onLinesDeleted(e, t) { return this._lastRenderData && this._lastRenderData.onLinesDeleted(e, t), !0 } onLinesInserted(e, t) { return this._lastRenderData && this._lastRenderData.onLinesInserted(e, t), !0 } onScrollChanged() { return this._renderDecorations = !0, !0 } onThemeChanged() { return this._selectionColor = this._theme.getColor(oi.ov), this._renderDecorations = ! 0, !0 } onTokensChanged(e) { return !!this._lastRenderData && this._lastRenderData.onTokensChanged( e) } onTokensColorsChanged() { return this._lastRenderData = null, this._buffers = null, !0 } onZonesChanged() { return this._lastRenderData = null, !0 } render(e) { if (0 === this._model.options.renderMinimap) return this._shadow.setClassName( "minimap-shadow-hidden"), this._sliderHorizontal.setWidth(0), void this ._sliderHorizontal.setHeight(0); e.scrollLeft + e.viewportWidth >= e.scrollWidth ? this._shadow.setClassName( "minimap-shadow-hidden") : this._shadow.setClassName( "minimap-shadow-visible"); const t = mi.create(this._model.options, e.viewportStartLineNumber, e .viewportEndLineNumber, e.viewportStartLineNumberVerticalOffset, e.viewportHeight, e.viewportContainsWhitespaceGaps, this._model.getLineCount(), this._model .getRealLineCount(), e.scrollTop, e.scrollHeight, this._lastRenderData ? this._lastRenderData.renderedLayout : null); this._slider.setDisplay(t.sliderNeeded ? "block" : "none"), this._slider .setTop(t.sliderTop), this._slider.setHeight(t.sliderHeight); const i = e.scrollLeft / this._model.options.typicalHalfwidthCharacterWidth, n = Math.min(this._model.options.minimapWidth, Math.round(i * this._model .options.minimapCharWidth / this._model.options.pixelRatio)); this._sliderHorizontal.setLeft(n), this._sliderHorizontal.setWidth( this._model.options.minimapWidth - n), this._sliderHorizontal.setTop( 0), this._sliderHorizontal.setHeight(t.sliderHeight), this.renderDecorations( t), this._lastRenderData = this.renderLines(t) } renderDecorations(e) { if (this._renderDecorations) { this._renderDecorations = !1; const t = this._model.getSelections(), i = this._model.getMinimapDecorationsInViewport(e.startLineNumber, e.endLineNumber), { canvasInnerWidth: n, canvasInnerHeight: o } = this._model.options, r = this._model.options.minimapLineHeight, s = this._model.options.minimapCharWidth, a = this._model.getOptions().tabSize, l = this._decorationsCanvas.domNode.getContext("2d"); l.clearRect(0, 0, n, o); const d = new Map; for (let i = 0; i < t.length; i++) { const n = t[i]; for (let t = n.startLineNumber; t <= n.endLineNumber; t++) this.renderDecorationOnLine( l, d, n, this._selectionColor, e, t, r, r, a, s) } for (let t = 0; t < i.length; t++) { const n = i[t]; if (!n.options.minimap) continue; const o = n.options.minimap.getColor(this._theme); for (let t = n.range.startLineNumber; t <= n.range.endLineNumber; t++) switch (n.options.minimap.position) { case gi.F5.Inline: this.renderDecorationOnLine(l, d, n.range, o, e, t, r, r, a, s); continue; case gi.F5.Gutter: const i = (t - e.startLineNumber) * r, c = 2; this.renderDecoration(l, o, c, i, 2, r); continue } } } } renderDecorationOnLine(e, t, i, n, o, r, s, a, l, d) { const c = (r - o.startLineNumber) * a; if (c + s < 0 || c > this._model.options.canvasInnerHeight) return; let h = t.get(r); const u = !h; if (!h) { const e = this._model.getLineContent(r); h = [re.y0]; for (let t = 1; t < e.length + 1; t++) { const i = e.charCodeAt(t - 1), n = 9 === i ? l * d : Ue.K7(i) ? 2 * d : d; h[t] = h[t - 1] + n } t.set(r, h) } const { startColumn: g, endColumn: p, startLineNumber: m, endLineNumber: f } = i, _ = m === r ? h[g - 1] : re.y0, b = f > r ? h.length - 1 : p - 1; if (b > 0) { const t = h[b] - _ || 2; this.renderDecoration(e, n, _, c, t, s) } u && this.renderLineHighlight(e, n, c, s) } renderLineHighlight(e, t, i, n) { e.fillStyle = t && t.transparent(.5).toString() || "", e.fillRect(re.y0, i, e.canvas.width, n) } renderDecoration(e, t, i, n, o, r) { e.fillStyle = t && t.toString() || "", e.fillRect(i, n, o, r) } renderLines(e) { const t = e.startLineNumber, i = e.endLineNumber, n = this._model.options.minimapLineHeight; if (this._lastRenderData && this._lastRenderData.linesEquals(e)) { const t = this._lastRenderData._get(); return new _i(e, t.imageData, t.lines) } const o = this._getBuffer(); if (!o) return null; let [r, s, a] = Ci._renderUntouchedLines(o, t, i, n, this._lastRenderData); const l = this._model.getMinimapLinesRenderingData(t, i, a), d = this._model.getOptions().tabSize, c = this._model.options.backgroundColor, h = this._model.tokensColorTracker, u = h.backgroundIsLight(), g = this._model.options.renderMinimap, p = this._model.options.charRenderer(), m = this._model.options.fontScale, f = this._model.options.minimapCharWidth, _ = (1 === g ? 2 : 3) * m, b = n > _ ? Math.floor((n - _) / 2) : 0; let v = 0; const w = []; for (let e = 0, r = i - t + 1; e < r; e++) a[e] && Ci._renderLine(o, c, u, g, f, h, p, v, b, d, l[e], m, n), w[e] = new fi(v), v += n; const C = -1 === r ? 0 : r, y = (-1 === s ? o.height : s) - C; return this._canvas.domNode.getContext("2d").putImageData(o, 0, 0, 0, C, o.width, y), new _i(e, o, w) } static _renderUntouchedLines(e, t, i, n, o) { const r = []; if (!o) { for (let e = 0, n = i - t + 1; e < n; e++) r[e] = !0; return [-1, -1, r] } const s = o._get(), a = s.imageData.data, l = s.rendLineNumberStart, d = s.lines, c = d.length, h = e.width, u = e.data, g = (i - t + 1) * n * h * 4; let p = -1, m = -1, f = -1, _ = -1, b = -1, v = -1, w = 0; for (let e = t; e <= i; e++) { const i = e - t, o = e - l, s = o >= 0 && o < c ? d[o].dy : -1; if (-1 === s) { r[i] = !0, w += n; continue } const C = s * h * 4, y = (s + n) * h * 4, S = w * h * 4, x = (w + n) * h * 4; _ === C && v === S ? (_ = y, v = x) : (-1 !== f && (u.set(a.subarray( f, _), b), -1 === p && 0 === f && f === b && (p = _), -1 === m && _ === g && f === b && (m = f)), f = C, _ = y, b = S, v = x), r[i] = ! 1, w += n } return -1 !== f && (u.set(a.subarray(f, _), b), -1 === p && 0 === f && f === b && (p = _), -1 === m && _ === g && f === b && (m = f)), [-1 === p ? -1 : p / (4 * h), -1 === m ? -1 : m / (4 * h), r ] } static _renderLine(e, t, i, n, o, r, s, a, l, d, c, h, u) { const g = c.content, p = c.tokens, m = e.width - o, f = 1 === u; let _ = re.y0, b = 0, v = 0; for (let c = 0, u = p.getCount(); c < u; c++) { const u = p.getEndOffset(c), w = p.getForeground(c), C = r.getColor(w); for (; b < u; b++) { if (_ > m) return; const r = g.charCodeAt(b); if (9 === r) { const e = d - (b + v) % d; v += e - 1, _ += e * o } else if (32 === r) _ += o; else { const d = Ue.K7(r) ? 2 : 1; for (let c = 0; c < d; c++) if (2 === n ? s.blockRenderChar(e, _, a + l, C, t, i, f) : s.renderChar( e, _, a + l, r, C, t, h, i, f), _ += o, _ > m) return } } } } }(0, Ge.Ic)(((e, t) => { const i = e.getColor(oi.kV); i && t.addRule( `.monaco-editor .minimap > canvas { opacity: ${i.rgba.a}; will-change: opacity; }` ); const n = e.getColor(oi.CA); n && t.addRule( `.monaco-editor .minimap-slider .minimap-slider-horizontal { background: ${n}; }` ); const o = e.getColor(oi.Xy); o && t.addRule( `.monaco-editor .minimap-slider:hover .minimap-slider-horizontal { background: ${o}; }` ); const r = e.getColor(oi.br); r && t.addRule( `.monaco-editor .minimap-slider.active .minimap-slider-horizontal { background: ${r}; }` ); const s = e.getColor(oi._w); s && t.addRule( `.monaco-editor .minimap-shadow-visible { box-shadow: ${s} -6px 0 6px -6px inset; }` ) })); var yi = i(9822), Si = {}; Si.styleTagTransform = v(), Si.setAttributes = m(), Si.insert = g().bind( null, "head"), Si.domAPI = h(), Si.insertStyleElement = _(), d()(yi.Z, Si), yi.Z && yi.Z.locals && yi.Z.locals; class xi extends q { constructor(e) { super(e); const t = this._context.configuration.options.get(130); this._widgets = {}, this._verticalScrollbarWidth = t.verticalScrollbarWidth, this._minimapWidth = t.minimap.minimapWidth, this._horizontalScrollbarHeight = t.horizontalScrollbarHeight, this._editorHeight = t.height, this._editorWidth = t.width, this._domNode = (0, M.X)(document.createElement("div")), Z.write( this._domNode, 4), this._domNode.setClassName("overlayWidgets") } dispose() { super.dispose(), this._widgets = {} } getDomNode() { return this._domNode } onConfigurationChanged(e) { const t = this._context.configuration.options.get(130); return this._verticalScrollbarWidth = t.verticalScrollbarWidth, this._minimapWidth = t.minimap.minimapWidth, this._horizontalScrollbarHeight = t.horizontalScrollbarHeight, this._editorHeight = t.height, this._editorWidth = t.width, !0 } addWidget(e) { const t = (0, M.X)(e.getDomNode()); this._widgets[e.getId()] = { widget: e, preference: null, domNode: t }, t.setPosition("absolute"), t.setAttribute("widgetId", e.getId()), this._domNode.appendChild(t), this.setShouldRender() } setWidgetPosition(e, t) { const i = this._widgets[e.getId()]; return i.preference !== t && (i.preference = t, this.setShouldRender(), ! 0) } removeWidget(e) { const t = e.getId(); if (this._widgets.hasOwnProperty(t)) { const e = this._widgets[t].domNode.domNode; delete this._widgets[t], e.parentNode.removeChild(e), this.setShouldRender() } } _renderWidget(e) { const t = e.domNode; if (null !== e.preference) if (0 === e.preference) t.setTop(0), t.setRight(2 * this._verticalScrollbarWidth + this._minimapWidth); else if (1 === e.preference) { const e = t.domNode.clientHeight; t.setTop(this._editorHeight - e - 2 * this._horizontalScrollbarHeight), t.setRight(2 * this._verticalScrollbarWidth + this._minimapWidth) } else 2 === e.preference && (t.setTop(0), t.domNode.style.right = "50%"); else t.unsetTop() } prepareRender(e) {} render(e) { this._domNode.setWidth(this._editorWidth); const t = Object.keys(this._widgets); for (let e = 0, i = t.length; e < i; e++) { const i = t[e]; this._renderWidget(this._widgets[i]) } } } var ki = i(1264); class Li { constructor(e, t) { const i = e.options; this.lineHeight = i.get(58), this.pixelRatio = i.get(128), this.overviewRulerLanes = i.get(73), this.renderBorder = i.get(72); const n = t.getColor(Ze.zw); this.borderColor = n ? n.toString() : null, this.hideCursor = i.get(50); const o = t.getColor(Ze.n0); this.cursorColor = o ? o.transparent(.7).toString() : null, this.themeType = t.type; const r = i.get(64), s = r.enabled, a = r.side, l = s ? t.getColor(Ze.e_) || ti.RW.getDefaultBackground() : null; this.backgroundColor = null === l || "left" === a ? null : ki.Il.Format .CSS.formatHex(l); const d = i.get(130).overviewRuler; this.top = d.top, this.right = d.right, this.domWidth = d.width, this.domHeight = d.height, 0 === this.overviewRulerLanes ? (this.canvasWidth = 0, this .canvasHeight = 0) : (this.canvasWidth = this.domWidth * this.pixelRatio | 0, this.canvasHeight = this.domHeight * this.pixelRatio | 0); const [c, h] = this._initLanes(1, this.canvasWidth, this.overviewRulerLanes); this.x = c, this.w = h } _initLanes(e, t, i) { const n = t - e; if (i >= 3) { const t = Math.floor(n / 3), i = Math.floor(n / 3), o = n - t - i, r = e + t; return [ [0, e, r, e, e + t + o, e, r, e], [0, t, o, t + o, i, t + o + i, o + i, t + o + i] ] } if (2 === i) { const t = Math.floor(n / 2), i = n - t; return [ [0, e, e, e, e + t, e, e, e], [0, t, t, t, i, t + i, t + i, t + i] ] } return [ [0, e, e, e, e, e, e, e], [0, n, n, n, n, n, n, n] ] } equals(e) { return this.lineHeight === e.lineHeight && this.pixelRatio === e.pixelRatio && this.overviewRulerLanes === e.overviewRulerLanes && this.renderBorder === e.renderBorder && this.borderColor === e.borderColor && this.hideCursor === e.hideCursor && this.cursorColor === e.cursorColor && this.themeType === e.themeType && this.backgroundColor === e.backgroundColor && this.top === e.top && this.right === e.right && this.domWidth === e.domWidth && this.domHeight === e.domHeight && this.canvasWidth === e.canvasWidth && this.canvasHeight === e.canvasHeight } } class Ni extends q { constructor(e) { super(e), this._domNode = (0, M.X)(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 = ti.RW.onDidChange((e => { e.changedColorMap && this._updateSettings(!0) })), this._cursorPositions = [] } dispose() { super.dispose(), this._tokensColorTrackerListener.dispose() } _updateSettings(e) { const t = new Li(this._context.configuration, this._context.theme); return !(this._settings && this._settings.equals(t) || (this._settings = t, 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, e && this._render(), 0)) } onConfigurationChanged(e) { return this._updateSettings(!1) } onCursorStateChanged(e) { this._cursorPositions = []; for (let t = 0, i = e.selections.length; t < i; t++) this._cursorPositions[ t] = e.selections[t].getPosition(); return this._cursorPositions.sort(fe.L.compare), !0 } onDecorationsChanged(e) { return !!e.affectsOverviewRuler } onFlushed(e) { return !0 } onScrollChanged(e) { return e.scrollHeightChanged } onZonesChanged(e) { return !0 } onThemeChanged(e) { return this._context.model.invalidateOverviewRulerColorCache(), this._updateSettings(! 1) } getDomNode() { return this._domNode.domNode } prepareRender(e) {} render(e) { this._render() } _render() { if (0 === this._settings.overviewRulerLanes) return void this._domNode .setBackgroundColor(this._settings.backgroundColor ? this._settings.backgroundColor : ""); const e = this._settings.canvasWidth, t = this._settings.canvasHeight, i = this._settings.lineHeight, n = this._context.viewLayout, o = t / this._context.viewLayout.getScrollHeight(), r = this._context.model.getAllOverviewRulerDecorations(this._context.theme), s = 6 * this._settings.pixelRatio | 0, a = s / 2 | 0, l = this._domNode.domNode.getContext("2d"); null === this._settings.backgroundColor ? l.clearRect(0, 0, e, t) : (l .fillStyle = this._settings.backgroundColor, l.fillRect(0, 0, e, t)); const d = this._settings.x, c = this._settings.w, h = Object.keys(r); h.sort(); for (let e = 0, u = h.length; e < u; e++) { const u = h[e], g = r[u]; l.fillStyle = u; let p = 0, m = 0, f = 0; for (let e = 0, r = g.length; e < r; e++) { const r = g[3 * e], h = g[3 * e + 1], u = g[3 * e + 2]; let _ = n.getVerticalOffsetForLineNumber(h) * o | 0, b = (n.getVerticalOffsetForLineNumber(u) + i) * o | 0; if (b - _ < s) { let e = (_ + b) / 2 | 0; e < a ? e = a : e + a > t && (e = t - a), _ = e - a, b = e + a } _ > f + 1 || r !== p ? (0 !== e && l.fillRect(d[p], m, c[p], f - m), p = r, m = _, f = b) : b > f && (f = b) } l.fillRect(d[p], m, c[p], f - m) } if (!this._settings.hideCursor && this._settings.cursorColor) { const e = 2 * this._settings.pixelRatio | 0, i = e / 2 | 0, r = this._settings.x[7], s = this._settings.w[7]; l.fillStyle = this._settings.cursorColor; let a = -100, d = -100; for (let c = 0, h = this._cursorPositions.length; c < h; c++) { const h = this._cursorPositions[c]; let u = n.getVerticalOffsetForLineNumber(h.lineNumber) * o | 0; u < i ? u = i : u + i > t && (u = t - i); const g = u - i, p = g + e; g > d + 1 ? (0 !== c && l.fillRect(r, a, s, d - a), a = g, d = p) : p > d && (d = p) } l.fillRect(r, a, s, d - a) } this._settings.renderBorder && this._settings.borderColor && this._settings .overviewRulerLanes > 0 && (l.beginPath(), l.lineWidth = 1, l.strokeStyle = this._settings.borderColor, l.moveTo(0, 0), l.lineTo(0, t), l.stroke(), l.moveTo(0, 0), l.lineTo(e, 0), l.stroke()) } } var Di = i(2003); class Ei extends $ { constructor(e, t) { super(), this._context = e; const i = this._context.configuration.options; this._domNode = (0, M.X)(document.createElement("canvas")), this._domNode .setClassName(t), this._domNode.setPosition("absolute"), this._domNode .setLayerHinting(!0), this._domNode.setContain("strict"), this._zoneManager = new Di.Tj((e => this._context.viewLayout.getVerticalOffsetForLineNumber( e))), this._zoneManager.setDOMWidth(0), this._zoneManager.setDOMHeight( 0), this._zoneManager.setOuterHeight(this._context.viewLayout.getScrollHeight()), this._zoneManager.setLineHeight(i.get(58)), this._zoneManager.setPixelRatio( i.get(128)), this._context.addEventHandler(this) } dispose() { this._context.removeEventHandler(this), super.dispose() } onConfigurationChanged(e) { const t = this._context.configuration.options; return e.hasChanged(58) && (this._zoneManager.setLineHeight(t.get(58)), this._render()), e.hasChanged(128) && (this._zoneManager.setPixelRatio( t.get(128)), 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(e) { return this._render(), !0 } onScrollChanged(e) { return e.scrollHeightChanged && (this._zoneManager.setOuterHeight(e.scrollHeight), this._render()), !0 } onZonesChanged(e) { return this._render(), !0 } getDomNode() { return this._domNode.domNode } setLayout(e) { this._domNode.setTop(e.top), this._domNode.setRight(e.right); let t = !1; t = this._zoneManager.setDOMWidth(e.width) || t, t = this._zoneManager .setDOMHeight(e.height) || t, t && (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(e) { this._zoneManager.setZones(e), this._render() } _render() { if (0 === this._zoneManager.getOuterHeight()) return !1; const e = this._zoneManager.getCanvasWidth(), t = this._zoneManager.getCanvasHeight(), i = this._zoneManager.resolveColorZones(), n = this._zoneManager.getId2Color(), o = this._domNode.domNode.getContext("2d"); return o.clearRect(0, 0, e, t), i.length > 0 && this._renderOneLane(o, i, n, e), !0 } _renderOneLane(e, t, i, n) { let o = 0, r = 0, s = 0; for (const a of t) { const t = a.colorId, l = a.from, d = a.to; t !== o ? (e.fillRect(0, r, n, s - r), o = t, e.fillStyle = i[o], r = l, s = d) : s >= l ? s = Math.max(s, d) : (e.fillRect(0, r, n, s - r), r = l, s = d) } e.fillRect(0, r, n, s - r) } } var Ii = i(9443), Ti = {}; Ti.styleTagTransform = v(), Ti.setAttributes = m(), Ti.insert = g().bind( null, "head"), Ti.domAPI = h(), Ti.insertStyleElement = _(), d()(Ii.Z, Ti), Ii.Z && Ii.Z.locals && Ii.Z.locals; class Mi extends q { constructor(e) { super(e), this.domNode = (0, M.X)(document.createElement("div")), this .domNode.setAttribute("role", "presentation"), this.domNode.setAttribute( "aria-hidden", "true"), this.domNode.setClassName("view-rulers"), this._renderedRulers = []; const t = this._context.configuration.options; this._rulers = t.get(91), this._typicalHalfwidthCharacterWidth = t.get( 42).typicalHalfwidthCharacterWidth } dispose() { super.dispose() } onConfigurationChanged(e) { const t = this._context.configuration.options; return this._rulers = t.get(91), this._typicalHalfwidthCharacterWidth = t.get(42).typicalHalfwidthCharacterWidth, !0 } onScrollChanged(e) { return e.scrollHeightChanged } prepareRender(e) {} _ensureRulersCount() { const e = this._renderedRulers.length, t = this._rulers.length; if (e === t) return; if (e < t) { const { tabSize: i } = this._context.model.getTextModelOptions(), n = i; let o = t - e; for (; o > 0;) { const e = (0, M.X)(document.createElement("div")); e.setClassName("view-ruler"), e.setWidth(n), this.domNode.appendChild( e), this._renderedRulers.push(e), o-- } return } let i = e - t; for (; i > 0;) { const e = this._renderedRulers.pop(); this.domNode.removeChild(e), i-- } } render(e) { this._ensureRulersCount(); for (let t = 0, i = this._rulers.length; t < i; t++) { const i = this._renderedRulers[t], n = this._rulers[t]; i.setBoxShadow(n.color ? `1px 0 0 0 ${n.color} inset` : ""), i.setHeight( Math.min(e.scrollHeight, 1e6)), i.setLeft(n.column * this._typicalHalfwidthCharacterWidth) } } }(0, Ge.Ic)(((e, t) => { const i = e.getColor(Ze.zk); i && t.addRule( `.monaco-editor .view-ruler { box-shadow: 1px 0 0 0 ${i} inset; }`) })); var Ai = i(9649), Ri = {}; Ri.styleTagTransform = v(), Ri.setAttributes = m(), Ri.insert = g().bind( null, "head"), Ri.domAPI = h(), Ri.insertStyleElement = _(), d()(Ai.Z, Ri), Ai.Z && Ai.Z.locals && Ai.Z.locals; class Oi extends q { constructor(e) { super(e), this._scrollTop = 0, this._width = 0, this._updateWidth(), this._shouldShow = !1; const t = this._context.configuration.options.get(92); this._useShadows = t.useShadows, this._domNode = (0, M.X)(document.createElement( "div")), this._domNode.setAttribute("role", "presentation"), this._domNode .setAttribute("aria-hidden", "true") } dispose() { super.dispose() } _updateShouldShow() { const e = this._useShadows && this._scrollTop > 0; return this._shouldShow !== e && (this._shouldShow = e, !0) } getDomNode() { return this._domNode } _updateWidth() { const e = this._context.configuration.options.get(130); 0 === e.minimap.renderMinimap || e.minimap.minimapWidth > 0 && 0 === e .minimap.minimapLeft ? this._width = e.width : this._width = e.width - e.minimap.minimapWidth - e.verticalScrollbarWidth } onConfigurationChanged(e) { const t = this._context.configuration.options.get(92); return this._useShadows = t.useShadows, this._updateWidth(), this._updateShouldShow(), ! 0 } onScrollChanged(e) { return this._scrollTop = e.scrollTop, this._updateShouldShow() } prepareRender(e) {} render(e) { this._domNode.setWidth(this._width), this._domNode.setClassName(this._shouldShow ? "scroll-decoration" : "") } }(0, Ge.Ic)(((e, t) => { const i = e.getColor(oi._w); i && t.addRule( `.monaco-editor .scroll-decoration { box-shadow: ${i} 0 6px 6px -6px inset; }` ) })); var Pi = i(2595), Fi = {}; Fi.styleTagTransform = v(), Fi.setAttributes = m(), Fi.insert = g().bind( null, "head"), Fi.domAPI = h(), Fi.insertStyleElement = _(), d()(Pi.Z, Fi), Pi.Z && Pi.Z.locals && Pi.Z.locals; class Bi { constructor(e) { this.left = e.left, this.width = e.width, this.startStyle = null, this .endStyle = null } } class Wi { constructor(e, t) { this.lineNumber = e, this.ranges = t } } function zi(e) { return new Bi(e) } function Vi(e) { return new Wi(e.lineNumber, e.ranges.map(zi)) } class Hi extends qe { constructor(e) { super(), this._previousFrameVisibleRangesWithStyle = [], this._context = e; const t = this._context.configuration.options; this._lineHeight = t.get(58), this._roundedSelection = t.get(90), this ._typicalHalfwidthCharacterWidth = t.get(42).typicalHalfwidthCharacterWidth, this._selections = [], this._renderResult = null, this._context.addEventHandler( this) } dispose() { this._context.removeEventHandler(this), this._renderResult = null, super.dispose() } onConfigurationChanged(e) { const t = this._context.configuration.options; return this._lineHeight = t.get(58), this._roundedSelection = t.get(90), this._typicalHalfwidthCharacterWidth = t.get(42).typicalHalfwidthCharacterWidth, ! 0 } onCursorStateChanged(e) { return this._selections = e.selections.slice(0), !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 } _visibleRangesHaveGaps(e) { for (let t = 0, i = e.length; t < i; t++) if (e[t].ranges.length > 1) return !0; return !1 } _enrichVisibleRangesWithStyle(e, t, i) { const n = this._typicalHalfwidthCharacterWidth / 4; let o = null, r = null; if (i && i.length > 0 && t.length > 0) { const n = t[0].lineNumber; if (n === e.startLineNumber) for (let e = 0; !o && e < i.length; e++) i[e].lineNumber === n && (o = i[e].ranges[0]); const s = t[t.length - 1].lineNumber; if (s === e.endLineNumber) for (let e = i.length - 1; !r && e >= 0; e--) i[e].lineNumber === s && (r = i[e].ranges[0]); o && !o.startStyle && (o = null), r && !r.startStyle && (r = null) } for (let e = 0, i = t.length; e < i; e++) { const s = t[e].ranges[0], a = s.left, l = s.left + s.width, d = { top: 0, bottom: 0 }, c = { top: 0, bottom: 0 }; if (e > 0) { const i = t[e - 1].ranges[0].left, o = t[e - 1].ranges[0].left + t[e - 1].ranges[0].width; Ui(a - i) < n ? d.top = 2 : a > i && (d.top = 1), Ui(l - o) < n ? c.top = 2 : i < l && l < o && (c.top = 1) } else o && (d.top = o.startStyle.top, c.top = o.endStyle.top); if (e + 1 < i) { const i = t[e + 1].ranges[0].left, o = t[e + 1].ranges[0].left + t[e + 1].ranges[0].width; Ui(a - i) < n ? d.bottom = 2 : i < a && a < o && (d.bottom = 1), Ui( l - o) < n ? c.bottom = 2 : l < o && (c.bottom = 1) } else r && (d.bottom = r.startStyle.bottom, c.bottom = r.endStyle.bottom); s.startStyle = d, s.endStyle = c } } _getVisibleRangesWithStyle(e, t, i) { const n = (t.linesVisibleRangesForRange(e, !0) || []).map(Vi); return !this._visibleRangesHaveGaps(n) && this._roundedSelection && this._enrichVisibleRangesWithStyle(t.visibleRange, n, i), n } _createSelectionPiece(e, t, i, n, o) { return '
    ' } _actualRenderOneSelection(e, t, i, n) { if (0 === n.length) return; const o = !!n[0].ranges[0].startStyle, r = this._lineHeight.toString(), s = (this._lineHeight - 1).toString(), a = n[0].lineNumber, l = n[n.length - 1].lineNumber; for (let d = 0, c = n.length; d < c; d++) { const c = n[d], h = c.lineNumber, u = h - t, g = !i || h !== l && h !== a ? r : s, p = i && h === a ? 1 : 0; let m = "", f = ""; for (let e = 0, t = c.ranges.length; e < t; e++) { const t = c.ranges[e]; if (o) { const e = t.startStyle, i = t.endStyle; if (1 === e.top || 1 === e.bottom) { m += this._createSelectionPiece(p, g, Hi.SELECTION_CLASS_NAME, t.left - Hi.ROUNDED_PIECE_WIDTH, Hi.ROUNDED_PIECE_WIDTH); let i = Hi.EDITOR_BACKGROUND_CLASS_NAME; 1 === e.top && (i += " " + Hi.SELECTION_TOP_RIGHT), 1 === e.bottom && (i += " " + Hi.SELECTION_BOTTOM_RIGHT), m += this._createSelectionPiece( p, g, i, t.left - Hi.ROUNDED_PIECE_WIDTH, Hi.ROUNDED_PIECE_WIDTH ) } if (1 === i.top || 1 === i.bottom) { m += this._createSelectionPiece(p, g, Hi.SELECTION_CLASS_NAME, t.left + t.width, Hi.ROUNDED_PIECE_WIDTH); let e = Hi.EDITOR_BACKGROUND_CLASS_NAME; 1 === i.top && (e += " " + Hi.SELECTION_TOP_LEFT), 1 === i.bottom && (e += " " + Hi.SELECTION_BOTTOM_LEFT), m += this._createSelectionPiece( p, g, e, t.left + t.width, Hi.ROUNDED_PIECE_WIDTH) } } let i = Hi.SELECTION_CLASS_NAME; if (o) { const e = t.startStyle, n = t.endStyle; 0 === e.top && (i += " " + Hi.SELECTION_TOP_LEFT), 0 === e.bottom && (i += " " + Hi.SELECTION_BOTTOM_LEFT), 0 === n.top && (i += " " + Hi.SELECTION_TOP_RIGHT), 0 === n.bottom && (i += " " + Hi.SELECTION_BOTTOM_RIGHT) } f += this._createSelectionPiece(p, g, i, t.left, t.width) } e[u][0] += m, e[u][1] += f } } prepareRender(e) { const t = [], i = e.visibleRange.startLineNumber, n = e.visibleRange.endLineNumber; for (let e = i; e <= n; e++) t[e - i] = ["", ""]; const o = []; for (let n = 0, r = this._selections.length; n < r; n++) { const r = this._selections[n]; if (r.isEmpty()) { o[n] = null; continue } const s = this._getVisibleRangesWithStyle(r, e, this._previousFrameVisibleRangesWithStyle[ n]); o[n] = s, this._actualRenderOneSelection(t, i, this._selections.length > 1, s) } this._previousFrameVisibleRangesWithStyle = o, this._renderResult = t.map( (([e, t]) => e + t)) } render(e, t) { if (!this._renderResult) return ""; const i = t - e; return i < 0 || i >= this._renderResult.length ? "" : this._renderResult[ i] } } function Ui(e) { return e < 0 ? -e : e } Hi.SELECTION_CLASS_NAME = "selected-text", Hi.SELECTION_TOP_LEFT = "top-left-radius", Hi.SELECTION_BOTTOM_LEFT = "bottom-left-radius", Hi.SELECTION_TOP_RIGHT = "top-right-radius", Hi.SELECTION_BOTTOM_RIGHT = "bottom-right-radius", Hi.EDITOR_BACKGROUND_CLASS_NAME = "monaco-editor-background", Hi.ROUNDED_PIECE_WIDTH = 10, (0, Ge.Ic)(((e, t) => { const i = e.getColor(oi.hE); i && t.addRule( `.monaco-editor .focused .selected-text { background-color: ${i}; }` ); const n = e.getColor(oi.ES); n && t.addRule( `.monaco-editor .selected-text { background-color: ${n}; }`); const o = e.getColor(oi.yb); o && !o.isTransparent() && t.addRule( `.monaco-editor .view-line span.inline-selected-text { color: ${o}; }` ) })); var ji = i(4057), Ki = {}; Ki.styleTagTransform = v(), Ki.setAttributes = m(), Ki.insert = g().bind( null, "head"), Ki.domAPI = h(), Ki.insertStyleElement = _(), d()(ji.Z, Ki), ji.Z && ji.Z.locals && ji.Z.locals; class $i { constructor(e, t, i, n, o, r) { this.top = e, this.left = t, this.width = i, this.height = n, this.textContent = o, this.textContentClassName = r } } class qi { constructor(e) { this._context = e; const t = this._context.configuration.options, i = t.get(42); this._cursorStyle = t.get(23), this._lineHeight = t.get(58), this._typicalHalfwidthCharacterWidth = i.typicalHalfwidthCharacterWidth, this._lineCursorWidth = Math.min(t.get( 26), this._typicalHalfwidthCharacterWidth), this._isVisible = !0, this._domNode = (0, M.X)(document.createElement("div")), this._domNode .setClassName(`cursor ${Je.S}`), this._domNode.setHeight(this._lineHeight), this._domNode.setTop(0), this._domNode.setLeft(0), D.V.applyFontInfo( this._domNode, i), this._domNode.setDisplay("none"), this._position = new fe.L(1, 1), this._lastRenderedContent = "", this._renderData = null } getDomNode() { return this._domNode } getPosition() { return this._position } show() { this._isVisible || (this._domNode.setVisibility("inherit"), this._isVisible = ! 0) } hide() { this._isVisible && (this._domNode.setVisibility("hidden"), this._isVisible = ! 1) } onConfigurationChanged(e) { const t = this._context.configuration.options, i = t.get(42); return this._cursorStyle = t.get(23), this._lineHeight = t.get(58), this._typicalHalfwidthCharacterWidth = i.typicalHalfwidthCharacterWidth, this._lineCursorWidth = Math.min(t.get(26), this._typicalHalfwidthCharacterWidth), D.V.applyFontInfo(this._domNode, i), !0 } onCursorPositionChanged(e) { return this._position = e, !0 } _prepareRender(e) { let t = ""; if (this._cursorStyle === re.d2.Line || this._cursorStyle === re.d2.LineThin) { const i = e.visibleRangeForPosition(this._position); if (!i || i.outsideRenderedLine) return null; let n; if (this._cursorStyle === re.d2.Line) { if (n = S.Uh(this._lineCursorWidth > 0 ? this._lineCursorWidth : 2), n > 2) { const e = this._context.model.getLineContent(this._position.lineNumber), i = Ue.vH(e, this._position.column - 1); t = e.substr(this._position.column - 1, i) } } else n = S.Uh(1); let o = i.left; n >= 2 && o >= 1 && (o -= 1); const r = e.getVerticalOffsetForLineNumber(this._position.lineNumber) - e.bigNumbersDelta; return new $i(r, o, n, this._lineHeight, t, "") } const i = this._context.model.getLineContent(this._position.lineNumber), n = Ue.vH(i, this._position.column - 1), o = e.linesVisibleRangesForRange(new _e.e(this._position.lineNumber, this._position.column, this._position.lineNumber, this._position.column + n), !1); if (!o || 0 === o.length) return null; const r = o[0]; if (r.outsideRenderedLine || 0 === r.ranges.length) return null; const s = r.ranges[0], a = s.width < 1 ? this._typicalHalfwidthCharacterWidth : s.width; let l = ""; if (this._cursorStyle === re.d2.Block) { const e = this._context.model.getViewLineData(this._position.lineNumber); t = i.substr(this._position.column - 1, n); const o = e.tokens.findTokenIndexAtOffset(this._position.column - 1); l = e.tokens.getClassName(o) } let d = e.getVerticalOffsetForLineNumber(this._position.lineNumber) - e.bigNumbersDelta, c = this._lineHeight; return this._cursorStyle !== re.d2.Underline && this._cursorStyle !== re.d2.UnderlineThin || (d += this._lineHeight - 2, c = 2), new $i(d, s.left, a, c, t, l) } prepareRender(e) { this._renderData = this._prepareRender(e) } render(e) { return this._renderData ? (this._lastRenderedContent !== this._renderData .textContent && (this._lastRenderedContent = this._renderData.textContent, this._domNode.domNode.textContent = this._lastRenderedContent), this._domNode.setClassName( `cursor ${Je.S} ${this._renderData.textContentClassName}`), this._domNode .setDisplay("block"), this._domNode.setTop(this._renderData.top), this._domNode.setLeft(this._renderData.left), 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) } } class Zi extends q { constructor(e) { super(e); const t = this._context.configuration.options; this._readOnly = t.get(80), this._cursorBlinking = t.get(21), this._cursorStyle = t.get(23), this._cursorSmoothCaretAnimation = t.get(22), this._selectionIsEmpty = ! 0, this._isComposingInput = !1, this._isVisible = !1, this._primaryCursor = new qi(this._context), this._secondaryCursors = [], this._renderData = [], this._domNode = (0, M.X)(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 P._F, this._cursorFlatBlinkInterval = new P.zh, this._blinkingEnabled = ! 1, this._editorHasFocus = !1, this._updateBlinking() } dispose() { super.dispose(), this._startCursorBlinkAnimation.dispose(), this._cursorFlatBlinkInterval .dispose() } getDomNode() { return this._domNode } onCompositionStart(e) { return this._isComposingInput = !0, this._updateBlinking(), !0 } onCompositionEnd(e) { return this._isComposingInput = !1, this._updateBlinking(), !0 } onConfigurationChanged(e) { const t = this._context.configuration.options; this._readOnly = t.get(80), this._cursorBlinking = t.get(21), this._cursorStyle = t.get(23), this._cursorSmoothCaretAnimation = t.get(22), this._updateBlinking(), this._updateDomClassName(), this._primaryCursor.onConfigurationChanged( e); for (let t = 0, i = this._secondaryCursors.length; t < i; t++) this._secondaryCursors[ t].onConfigurationChanged(e); return !0 } _onCursorPositionChanged(e, t) { if (this._primaryCursor.onCursorPositionChanged(e), this._updateBlinking(), this._secondaryCursors.length < t.length) { const e = t.length - this._secondaryCursors.length; for (let t = 0; t < e; t++) { const e = new qi(this._context); this._domNode.domNode.insertBefore(e.getDomNode().domNode, this._primaryCursor .getDomNode().domNode.nextSibling), this._secondaryCursors.push(e) } } else if (this._secondaryCursors.length > t.length) { const e = this._secondaryCursors.length - t.length; for (let t = 0; t < e; t++) this._domNode.removeChild(this._secondaryCursors[ 0].getDomNode()), this._secondaryCursors.splice(0, 1) } for (let e = 0; e < t.length; e++) this._secondaryCursors[e].onCursorPositionChanged( t[e]) } onCursorStateChanged(e) { const t = []; for (let i = 0, n = e.selections.length; i < n; i++) t[i] = e.selections[ i].getPosition(); this._onCursorPositionChanged(t[0], t.slice(1)); const i = e.selections[0].isEmpty(); return this._selectionIsEmpty !== i && (this._selectionIsEmpty = i, this._updateDomClassName()), !0 } onDecorationsChanged(e) { return !0 } onFlushed(e) { return !0 } onFocusChanged(e) { return this._editorHasFocus = e.isFocused, this._updateBlinking(), !1 } onLinesChanged(e) { return !0 } onLinesDeleted(e) { return !0 } onLinesInserted(e) { return !0 } onScrollChanged(e) { return !0 } onTokensChanged(e) { const t = t => { for (let i = 0, n = e.ranges.length; i < n; i++) if (e.ranges[i].fromLineNumber <= t.lineNumber && t.lineNumber <= e .ranges[i].toLineNumber) return !0; return !1 }; if (t(this._primaryCursor.getPosition())) return !0; for (const e of this._secondaryCursors) if (t(e.getPosition())) return !0; return !1 } onZonesChanged(e) { return !0 } _getCursorBlinking() { return this._isComposingInput ? 0 : this._editorHasFocus ? this._readOnly ? 5 : this._cursorBlinking : 0 } _updateBlinking() { this._startCursorBlinkAnimation.cancel(), this._cursorFlatBlinkInterval .cancel(); const e = this._getCursorBlinking(), t = 0 === e, i = 5 === e; t ? this._hide() : this._show(), this._blinkingEnabled = !1, this._updateDomClassName(), t || i || (1 === e ? this._cursorFlatBlinkInterval.cancelAndSet((() => { this._isVisible ? this._hide() : this._show() }), Zi.BLINK_INTERVAL) : this._startCursorBlinkAnimation.setIfNotSet( (() => { this._blinkingEnabled = !0, this._updateDomClassName() }), Zi.BLINK_INTERVAL)) } _updateDomClassName() { this._domNode.setClassName(this._getClassName()) } _getClassName() { let e = "cursors-layer"; switch (this._selectionIsEmpty || (e += " has-selection"), this._cursorStyle) { case re.d2.Line: e += " cursor-line-style"; break; case re.d2.Block: e += " cursor-block-style"; break; case re.d2.Underline: e += " cursor-underline-style"; break; case re.d2.LineThin: e += " cursor-line-thin-style"; break; case re.d2.BlockOutline: e += " cursor-block-outline-style"; break; case re.d2.UnderlineThin: e += " cursor-underline-thin-style"; break; default: e += " cursor-line-style" } if (this._blinkingEnabled) switch (this._getCursorBlinking()) { case 1: e += " cursor-blink"; break; case 2: e += " cursor-smooth"; break; case 3: e += " cursor-phase"; break; case 4: e += " cursor-expand"; break; default: e += " cursor-solid" } else e += " cursor-solid"; return this._cursorSmoothCaretAnimation && (e += " cursor-smooth-caret-animation"), e } _show() { this._primaryCursor.show(); for (let e = 0, t = this._secondaryCursors.length; e < t; e++) this._secondaryCursors[ e].show(); this._isVisible = !0 } _hide() { this._primaryCursor.hide(); for (let e = 0, t = this._secondaryCursors.length; e < t; e++) this._secondaryCursors[ e].hide(); this._isVisible = !1 } prepareRender(e) { this._primaryCursor.prepareRender(e); for (let t = 0, i = this._secondaryCursors.length; t < i; t++) this._secondaryCursors[ t].prepareRender(e) } render(e) { let t = [], i = 0; const n = this._primaryCursor.render(e); n && (t[i++] = n); for (let n = 0, o = this._secondaryCursors.length; n < o; n++) { const o = this._secondaryCursors[n].render(e); o && (t[i++] = o) } this._renderData = t } getLastRenderData() { return this._renderData } } Zi.BLINK_INTERVAL = 500, (0, Ge.Ic)(((e, t) => { const i = e.getColor(Ze.n0); if (i) { let n = e.getColor(Ze.fY); n || (n = i.opposite()), t.addRule( `.monaco-editor .cursors-layer .cursor { background-color: ${i}; border-color: ${i}; color: ${n}; }` ), "hc" === e.type && t.addRule( `.monaco-editor .cursors-layer.has-selection .cursor { border-left: 1px solid ${n}; border-right: 1px solid ${n}; }` ) } })); const Gi = () => { throw new Error("Invalid change accessor") }; class Yi extends q { constructor(e) { super(e); const t = this._context.configuration.options, i = t.get(130); this._lineHeight = t.get(58), this._contentWidth = i.contentWidth, this._contentLeft = i.contentLeft, this.domNode = (0, M.X)(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, M.X)(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 e = this._context.viewLayout.getWhitespaces(), t = new Map; for (const i of e) t.set(i.id, i); let i = !1; return this._context.model.changeWhitespace((e => { const n = Object.keys(this._zones); for (let o = 0, r = n.length; o < r; o++) { const r = n[o], s = this._zones[r], a = this._computeWhitespaceProps(s.delegate), l = t.get(r); !l || l.afterLineNumber === a.afterViewLineNumber && l.height === a.heightInPx || (e.changeOneWhitespace(r, a.afterViewLineNumber, a.heightInPx), this._safeCallOnComputedHeight(s.delegate, a.heightInPx), i = !0) } })), i } onConfigurationChanged(e) { const t = this._context.configuration.options, i = t.get(130); return this._lineHeight = t.get(58), this._contentWidth = i.contentWidth, this._contentLeft = i.contentLeft, e.hasChanged(58) && this._recomputeWhitespacesProps(), ! 0 } onLineMappingChanged(e) { return this._recomputeWhitespacesProps() } onLinesDeleted(e) { return !0 } onScrollChanged(e) { return e.scrollTopChanged || e.scrollWidthChanged } onZonesChanged(e) { return !0 } onLinesInserted(e) { return !0 } _getZoneOrdinal(e) { return void 0 !== e.afterColumn ? e.afterColumn : 1e4 } _computeWhitespaceProps(e) { if (0 === e.afterLineNumber) return { afterViewLineNumber: 0, heightInPx: this._heightInPixels(e), minWidthInPx: this._minWidthInPixels(e) }; let t, i; if (void 0 !== e.afterColumn) t = this._context.model.validateModelPosition({ lineNumber: e.afterLineNumber, column: e.afterColumn }); else { const i = this._context.model.validateModelPosition({ lineNumber: e.afterLineNumber, column: 1 }).lineNumber; t = new fe.L(i, this._context.model.getModelLineMaxColumn(i)) } i = t.column === this._context.model.getModelLineMaxColumn(t.lineNumber) ? this._context.model.validateModelPosition({ lineNumber: t.lineNumber + 1, column: 1 }) : this._context.model.validateModelPosition({ lineNumber: t.lineNumber, column: t.column + 1 }); const n = this._context.model.coordinatesConverter.convertModelPositionToViewPosition( t), o = this._context.model.coordinatesConverter.modelPositionIsVisible(i); return { afterViewLineNumber: n.lineNumber, heightInPx: o ? this._heightInPixels(e) : 0, minWidthInPx: this._minWidthInPixels(e) } } changeViewZones(e) { let t = !1; return this._context.model.changeWhitespace((i => { const n = { addZone: e => (t = !0, this._addZone(i, e)), removeZone: e => { e && (t = this._removeZone(i, e) || t) }, layoutZone: e => { e && (t = this._layoutZone(i, e) || t) } }; ! function(e, t) { try { e(t) } catch (e) { (0, x.dL)(e) } }(e, n), n.addZone = Gi, n.removeZone = Gi, n.layoutZone = Gi })), t } _addZone(e, t) { const i = this._computeWhitespaceProps(t), n = { whitespaceId: e.insertWhitespace(i.afterViewLineNumber, this._getZoneOrdinal( t), i.heightInPx, i.minWidthInPx), delegate: t, isVisible: !1, domNode: (0, M.X)(t.domNode), marginDomNode: t.marginDomNode ? (0, M.X)(t.marginDomNode) : null }; return this._safeCallOnComputedHeight(n.delegate, i.heightInPx), n.domNode .setPosition("absolute"), n.domNode.domNode.style.width = "100%", n.domNode .setDisplay("none"), n.domNode.setAttribute("monaco-view-zone", n.whitespaceId), this.domNode.appendChild(n.domNode), n.marginDomNode && (n.marginDomNode .setPosition("absolute"), n.marginDomNode.domNode.style.width = "100%", n.marginDomNode.setDisplay("none"), n.marginDomNode.setAttribute( "monaco-view-zone", n.whitespaceId), this.marginDomNode.appendChild( n.marginDomNode)), this._zones[n.whitespaceId] = n, this.setShouldRender(), n.whitespaceId } _removeZone(e, t) { if (this._zones.hasOwnProperty(t)) { const i = this._zones[t]; return delete this._zones[t], e.removeWhitespace(i.whitespaceId), i.domNode .removeAttribute("monaco-visible-view-zone"), i.domNode.removeAttribute( "monaco-view-zone"), i.domNode.domNode.parentNode.removeChild(i.domNode .domNode), i.marginDomNode && (i.marginDomNode.removeAttribute( "monaco-visible-view-zone"), i.marginDomNode.removeAttribute( "monaco-view-zone"), i.marginDomNode.domNode.parentNode.removeChild( i.marginDomNode.domNode)), this.setShouldRender(), !0 } return !1 } _layoutZone(e, t) { if (this._zones.hasOwnProperty(t)) { const i = this._zones[t], n = this._computeWhitespaceProps(i.delegate); return e.changeOneWhitespace(i.whitespaceId, n.afterViewLineNumber, n .heightInPx), this._safeCallOnComputedHeight(i.delegate, n.heightInPx), this.setShouldRender(), !0 } return !1 } shouldSuppressMouseDownOnViewZone(e) { if (this._zones.hasOwnProperty(e)) { const t = this._zones[e]; return Boolean(t.delegate.suppressMouseDown) } return !1 } _heightInPixels(e) { return "number" == typeof e.heightInPx ? e.heightInPx : "number" == typeof e.heightInLines ? this._lineHeight * e.heightInLines : this._lineHeight } _minWidthInPixels(e) { return "number" == typeof e.minWidthInPx ? e.minWidthInPx : 0 } _safeCallOnComputedHeight(e, t) { if ("function" == typeof e.onComputedHeight) try { e.onComputedHeight(t) } catch (e) { (0, x.dL)(e) } } _safeCallOnDomNodeTop(e, t) { if ("function" == typeof e.onDomNodeTop) try { e.onDomNodeTop(t) } catch (e) { (0, x.dL)(e) } } prepareRender(e) {} render(e) { const t = e.viewportData.whitespaceViewportData, i = {}; let n = !1; for (let e = 0, o = t.length; e < o; e++) i[t[e].id] = t[e], n = !0; const o = Object.keys(this._zones); for (let t = 0, n = o.length; t < n; t++) { const n = o[t], r = this._zones[n]; let s = 0, a = 0, l = "none"; i.hasOwnProperty(n) ? (s = i[n].verticalOffset - e.bigNumbersDelta, a = i[n].height, l = "block", r.isVisible || (r.domNode.setAttribute( "monaco-visible-view-zone", "true"), r.isVisible = !0), this._safeCallOnDomNodeTop( r.delegate, e.getScrolledTopFromAbsoluteTop(i[n].verticalOffset))) : (r.isVisible && (r.domNode.removeAttribute( "monaco-visible-view-zone"), r.isVisible = !1), this._safeCallOnDomNodeTop( r.delegate, e.getScrolledTopFromAbsoluteTop(-1e6))), r.domNode.setTop( s), r.domNode.setHeight(a), r.domNode.setDisplay(l), r.marginDomNode && (r.marginDomNode.setTop(s), r.marginDomNode.setHeight(a), r.marginDomNode .setDisplay(l)) } n && (this.domNode.setWidth(Math.max(e.scrollWidth, this._contentWidth)), this.marginDomNode.setWidth(this._contentLeft)) } } class Qi { constructor(e) { this._theme = e } get type() { return this._theme.type } update(e) { this._theme = e } getColor(e) { return this._theme.getColor(e) } } class Xi { constructor(e, t, i) { this.configuration = e, this.theme = new Qi(t), this.model = i, this.viewLayout = i.viewLayout } addEventHandler(e) { this.model.addViewEventHandler(e) } removeEventHandler(e) { this.model.removeViewEventHandler(e) } } class Ji { constructor(e, t, i, n) { this.selections = e, this.startLineNumber = 0 | t.startLineNumber, this.endLineNumber = 0 | t.endLineNumber, this.relativeVerticalOffset = t.relativeVerticalOffset, this.bigNumbersDelta = 0 | t.bigNumbersDelta, this.whitespaceViewportData = i, this._model = n, this.visibleRange = new _e.e(t.startLineNumber, this._model.getLineMinColumn(t.startLineNumber), t.endLineNumber, this._model.getLineMaxColumn(t.endLineNumber)) } getViewLineRenderingData(e) { return this._model.getViewLineRenderingData(this.visibleRange, e) } getDecorationsInViewport() { return this._model.getDecorationsInViewport(this.visibleRange) } } class en extends $ { constructor(e, t, i, n, o, r) { super(), this._selections = [new T.Y(1, 1, 1, 1)], this._renderAnimationFrame = null; const s = new ot(t, n, o, e); this._context = new Xi(t, i.getColorTheme(), n), this._configPixelRatio = this._context.configuration.options.get(128), this._context.addEventHandler( this), this._register(i.onDidColorThemeChange((e => { this._context.theme.update(e), this._context.model.onDidColorThemeChange(), this.render(!0, !1) }))), this._viewParts = [], this._textAreaHandler = new it(this._context, s, this._createTextAreaHandlerHelper()), this._viewParts.push(this._textAreaHandler), this._linesContent = (0, M.X)(document.createElement("div")), this._linesContent .setClassName("lines-content monaco-editor-background"), this._linesContent .setPosition("absolute"), this.domNode = (0, M.X)(document.createElement( "div")), this.domNode.setClassName(this._getEditorClassName()), this .domNode.setAttribute("role", "code"), this._overflowGuardContainer = (0, M.X)(document.createElement("div")), Z.write(this._overflowGuardContainer, 3), this._overflowGuardContainer.setClassName("overflow-guard"), this._scrollbar = new Tt(this._context, this._linesContent, this.domNode, this._overflowGuardContainer), this._viewParts.push(this._scrollbar), this._viewLines = new Kt(this._context, this._linesContent), this._viewZones = new Yi(this._context), this._viewParts.push(this._viewZones); const a = new Ni(this._context); this._viewParts.push(a); const l = new Oi(this._context); this._viewParts.push(l); const d = new pt(this._context); this._viewParts.push(d), d.addDynamicOverlay(new kt(this._context)), d .addDynamicOverlay(new Hi(this._context)), d.addDynamicOverlay(new Wt( this._context)), d.addDynamicOverlay(new Et(this._context)); const c = new mt(this._context); this._viewParts.push(c), c.addDynamicOverlay(new Lt(this._context)), c .addDynamicOverlay(new Pt(this._context)), c.addDynamicOverlay(new Qt( this._context)), c.addDynamicOverlay(new Zt(this._context)), c.addDynamicOverlay( new Ye(this._context)); const h = new Qe(this._context); h.getDomNode().appendChild(this._viewZones.marginDomNode), h.getDomNode() .appendChild(c.getDomNode()), this._viewParts.push(h), this._contentWidgets = new _t(this._context, this.domNode), this._viewParts.push(this._contentWidgets), this._viewCursors = new Zi(this._context), this._viewParts.push(this._viewCursors), this._overlayWidgets = new xi(this._context), this._viewParts.push( this._overlayWidgets); const u = new Mi(this._context); this._viewParts.push(u); const g = new wi(this._context); if (this._viewParts.push(g), a) { const e = this._scrollbar.getOverviewRulerLayoutInfo(); e.parent.insertBefore(a.getDomNode(), e.insertBefore) } this._linesContent.appendChild(d.getDomNode()), this._linesContent.appendChild( u.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( h.getDomNode()), this._overflowGuardContainer.appendChild(this._scrollbar .getDomNode()), this._overflowGuardContainer.appendChild(l.getDomNode()), this._overflowGuardContainer.appendChild(this._textAreaHandler.textArea), this._overflowGuardContainer.appendChild(this._textAreaHandler.textAreaCover), this._overflowGuardContainer.appendChild(this._overlayWidgets.getDomNode()), this._overflowGuardContainer.appendChild(g.getDomNode()), this.domNode .appendChild(this._overflowGuardContainer), r ? r.appendChild(this._contentWidgets .overflowingContentWidgetsDomNode.domNode) : this.domNode.appendChild( this._contentWidgets.overflowingContentWidgetsDomNode), this._applyLayout(), this._pointerHandler = this._register(new ze(this._context, s, this._createPointerHandlerHelper())) } _flushAccumulatedAndRenderNow() { this._renderNow() } _createPointerHandlerHelper() { return { viewDomNode: this.domNode.domNode, linesContentDomNode: this._linesContent.domNode, focusTextArea: () => { this.focus() }, dispatchTextAreaEvent: e => { this._textAreaHandler.textArea.domNode.dispatchEvent(e) }, getLastRenderData: () => { const e = this._viewCursors.getLastRenderData() || [], t = this._textAreaHandler.getLastRenderData(); return new ye(e, t) }, shouldSuppressMouseDownOnViewZone: e => this._viewZones.shouldSuppressMouseDownOnViewZone( e), shouldSuppressMouseDownOnWidget: e => this._contentWidgets.shouldSuppressMouseDownOnWidget( e), getPositionFromDOMInfo: (e, t) => (this._flushAccumulatedAndRenderNow(), this._viewLines.getPositionFromDOMInfo(e, t)), visibleRangeForPosition: (e, t) => (this._flushAccumulatedAndRenderNow(), this._viewLines.visibleRangeForPosition(new fe.L(e, t))), getLineWidth: e => (this._flushAccumulatedAndRenderNow(), this._viewLines .getLineWidth(e)) } } _createTextAreaHandlerHelper() { return { visibleRangeForPositionRelativeToEditor: (e, t) => (this._flushAccumulatedAndRenderNow(), this._viewLines.visibleRangeForPosition(new fe.L(e, t))) } } _applyLayout() { const e = this._context.configuration.options.get(130); this.domNode.setWidth(e.width), this.domNode.setHeight(e.height), this ._overflowGuardContainer.setWidth(e.width), this._overflowGuardContainer .setHeight(e.height), this._linesContent.setWidth(1e6), this._linesContent .setHeight(1e6) } _getEditorClassName() { const e = this._textAreaHandler.isFocused() ? " focused" : ""; return this._context.configuration.options.get(127) + " " + (0, Ge.m6) (this._context.theme.type) + e } handleEvents(e) { super.handleEvents(e), this._scheduleRender() } onConfigurationChanged(e) { return this._configPixelRatio = this._context.configuration.options.get( 128), this.domNode.setClassName(this._getEditorClassName()), this._applyLayout(), ! 1 } onCursorStateChanged(e) { return this._selections = e.selections, !1 } onFocusChanged(e) { return this.domNode.setClassName(this._getEditorClassName()), !1 } onThemeChanged(e) { return this.domNode.setClassName(this._getEditorClassName()), !1 } dispose() { null !== this._renderAnimationFrame && (this._renderAnimationFrame.dispose(), this._renderAnimationFrame = null), this._contentWidgets.overflowingContentWidgetsDomNode .domNode.remove(), this._context.removeEventHandler(this), this._viewLines .dispose(); for (const e of this._viewParts) e.dispose(); super.dispose() } _scheduleRender() { null === this._renderAnimationFrame && (this._renderAnimationFrame = S .lI(this._onRenderScheduled.bind(this), 100)) } _onRenderScheduled() { this._renderAnimationFrame = null, this._flushAccumulatedAndRenderNow() } _renderNow() { ! function(e) { try { e() } catch (e) { (0, x.dL)(e) } }((() => this._actualRender())) } _getViewPartsToRender() { let e = [], t = 0; for (const i of this._viewParts) i.shouldRender() && (e[t++] = i); return e } _actualRender() { if (!S.Uw(this.domNode.domNode)) return; let e = this._getViewPartsToRender(); if (!this._viewLines.shouldRender() && 0 === e.length) return; const t = this._context.viewLayout.getLinesViewportData(); this._context.model.setViewport(t.startLineNumber, t.endLineNumber, t.centeredLineNumber); const i = new Ji(this._selections, t, this._context.viewLayout.getWhitespaceViewportData(), this._context.model); this._contentWidgets.shouldRender() && this._contentWidgets.onBeforeRender( i), this._viewLines.shouldRender() && (this._viewLines.renderText(i), this._viewLines.onDidRender(), e = this._getViewPartsToRender()); const n = new G(this._context.viewLayout, i, this._viewLines); for (const t of e) t.prepareRender(n); for (const t of e) t.render(n), t.onDidRender(); Math.abs(I.mX() - this._configPixelRatio) > .001 && this._context.configuration .updatePixelRatio() } delegateVerticalScrollbarMouseDown(e) { this._scrollbar.delegateVerticalScrollbarMouseDown(e) } restoreState(e) { this._context.model.setScrollPosition({ scrollTop: e.scrollTop }, 1), this._context.model.tokenizeViewport(), this._renderNow(), this._viewLines.updateLineWidths(), this._context.model.setScrollPosition({ scrollLeft: e.scrollLeft }, 1) } getOffsetForColumn(e, t) { const i = this._context.model.validateModelPosition({ lineNumber: e, column: t }), n = this._context.model.coordinatesConverter.convertModelPositionToViewPosition( i); this._flushAccumulatedAndRenderNow(); const o = this._viewLines.visibleRangeForPosition(new fe.L(n.lineNumber, n.column)); return o ? o.left : -1 } getTargetAtClientPoint(e, t) { const i = this._pointerHandler.getTargetAtClientPoint(e, t); return i ? rt.convertViewToModelMouseTarget(i, this._context.model.coordinatesConverter) : null } createOverviewRuler(e) { return new Ei(this._context, e) } change(e) { this._viewZones.changeViewZones(e), this._scheduleRender() } render(e, t) { if (t) { this._viewLines.forceShouldRender(); for (const e of this._viewParts) e.forceShouldRender() } e ? this._flushAccumulatedAndRenderNow() : this._scheduleRender() } focus() { this._textAreaHandler.focusTextArea() } isFocused() { return this._textAreaHandler.isFocused() } setAriaOptions(e) { this._textAreaHandler.setAriaOptions(e) } addContentWidget(e) { this._contentWidgets.addWidget(e.widget), this.layoutContentWidget(e), this._scheduleRender() } layoutContentWidget(e) { let t = e.position && e.position.range || null; if (null === t) { const i = e.position ? e.position.position : null; null !== i && (t = new _e.e(i.lineNumber, i.column, i.lineNumber, i.column)) } const i = e.position ? e.position.preference : null; this._contentWidgets.setWidgetPosition(e.widget, t, i), this._scheduleRender() } removeContentWidget(e) { this._contentWidgets.removeWidget(e.widget), this._scheduleRender() } addOverlayWidget(e) { this._overlayWidgets.addWidget(e.widget), this.layoutOverlayWidget(e), this._scheduleRender() } layoutOverlayWidget(e) { const t = e.position ? e.position.preference : null; this._overlayWidgets.setWidgetPosition(e.widget, t) && this._scheduleRender() } removeOverlayWidget(e) { this._overlayWidgets.removeWidget(e.widget), this._scheduleRender() } } class tn { constructor(e) { this._selTrackedRange = null, this._trackSelection = !0, this._setState( e, new be.rS(new _e.e(1, 1, 1, 1), 0, new fe.L(1, 1), 0), new be.rS( new _e.e(1, 1, 1, 1), 0, new fe.L(1, 1), 0)) } dispose(e) { this._removeTrackedRange(e) } startTrackingSelection(e) { this._trackSelection = !0, this._updateTrackedRange(e) } stopTrackingSelection(e) { this._trackSelection = !1, this._removeTrackedRange(e) } _updateTrackedRange(e) { this._trackSelection && (this._selTrackedRange = e.model._setTrackedRange( this._selTrackedRange, this.modelState.selection, 0)) } _removeTrackedRange(e) { this._selTrackedRange = e.model._setTrackedRange(this._selTrackedRange, null, 0) } asCursorState() { return new be.Vi(this.modelState, this.viewState) } readSelectionFromMarkers(e) { const t = e.model._getTrackedRange(this._selTrackedRange); return 0 === this.modelState.selection.getDirection() ? new T.Y(t.startLineNumber, t.startColumn, t.endLineNumber, t.endColumn) : new T.Y(t.endLineNumber, t.endColumn, t.startLineNumber, t.startColumn) } ensureValidState(e) { this._setState(e, this.modelState, this.viewState) } setState(e, t, i) { this._setState(e, t, i) } static _validatePositionWithCache(e, t, i, n) { return t.equals(i) ? n : e.normalizePosition(t, 2) } static _validateViewState(e, t) { const i = t.position, n = t.selectionStart.getStartPosition(), o = t.selectionStart.getEndPosition(), r = e.normalizePosition(i, 2), s = this._validatePositionWithCache(e, n, i, r), a = this._validatePositionWithCache(e, o, n, s); return i.equals(r) && n.equals(s) && o.equals(a) ? t : new be.rS(_e.e.fromPositions( s, a), t.selectionStartLeftoverVisibleColumns + n.column - s.column, r, t.leftoverVisibleColumns + i.column - r.column) } _setState(e, t, i) { if (i && (i = tn._validateViewState(e.viewModel, i)), t) { const i = e.model.validateRange(t.selectionStart), n = t.selectionStart.equalsRange(i) ? t.selectionStartLeftoverVisibleColumns : 0, o = e.model.validatePosition(t.position), r = t.position.equals(o) ? t.leftoverVisibleColumns : 0; t = new be.rS(i, n, o, r) } else { if (!i) return; const n = e.model.validateRange(e.coordinatesConverter.convertViewRangeToModelRange( i.selectionStart)), o = e.model.validatePosition(e.coordinatesConverter.convertViewPositionToModelPosition( i.position)); t = new be.rS(n, i.selectionStartLeftoverVisibleColumns, o, i.leftoverVisibleColumns) } if (i) { const n = e.coordinatesConverter.validateViewRange(i.selectionStart, t.selectionStart), o = e.coordinatesConverter.validateViewPosition(i.position, t.position); i = new be.rS(n, t.selectionStartLeftoverVisibleColumns, o, t.leftoverVisibleColumns) } else { const n = e.coordinatesConverter.convertModelPositionToViewPosition( new fe.L(t.selectionStart.startLineNumber, t.selectionStart.startColumn) ), o = e.coordinatesConverter.convertModelPositionToViewPosition(new fe .L(t.selectionStart.endLineNumber, t.selectionStart.endColumn)), r = new _e.e(n.lineNumber, n.column, o.lineNumber, o.column), s = e.coordinatesConverter.convertModelPositionToViewPosition(t.position); i = new be.rS(r, t.selectionStartLeftoverVisibleColumns, s, t.leftoverVisibleColumns) } this.modelState = t, this.viewState = i, this._updateTrackedRange(e) } } class nn { constructor(e) { this.context = e, this.primaryCursor = new tn(e), this.secondaryCursors = [], this.lastAddedCursorIndex = 0 } dispose() { this.primaryCursor.dispose(this.context), this.killSecondaryCursors() } startTrackingSelections() { this.primaryCursor.startTrackingSelection(this.context); for (let e = 0, t = this.secondaryCursors.length; e < t; e++) this.secondaryCursors[ e].startTrackingSelection(this.context) } stopTrackingSelections() { this.primaryCursor.stopTrackingSelection(this.context); for (let e = 0, t = this.secondaryCursors.length; e < t; e++) this.secondaryCursors[ e].stopTrackingSelection(this.context) } updateContext(e) { this.context = e } ensureValidState() { this.primaryCursor.ensureValidState(this.context); for (let e = 0, t = this.secondaryCursors.length; e < t; e++) this.secondaryCursors[ e].ensureValidState(this.context) } readSelectionFromMarkers() { let e = []; e[0] = this.primaryCursor.readSelectionFromMarkers(this.context); for (let t = 0, i = this.secondaryCursors.length; t < i; t++) e[t + 1] = this.secondaryCursors[t].readSelectionFromMarkers(this.context); return e } getAll() { let e = []; e[0] = this.primaryCursor.asCursorState(); for (let t = 0, i = this.secondaryCursors.length; t < i; t++) e[t + 1] = this.secondaryCursors[t].asCursorState(); return e } getViewPositions() { let e = []; e[0] = this.primaryCursor.viewState.position; for (let t = 0, i = this.secondaryCursors.length; t < i; t++) e[t + 1] = this.secondaryCursors[t].viewState.position; return e } getTopMostViewPosition() { let e = this.primaryCursor.viewState.position; for (let t = 0, i = this.secondaryCursors.length; t < i; t++) { const i = this.secondaryCursors[t].viewState.position; i.isBefore(e) && (e = i) } return e } getBottomMostViewPosition() { let e = this.primaryCursor.viewState.position; for (let t = 0, i = this.secondaryCursors.length; t < i; t++) { const i = this.secondaryCursors[t].viewState.position; e.isBeforeOrEqual(i) && (e = i) } return e } getSelections() { let e = []; e[0] = this.primaryCursor.modelState.selection; for (let t = 0, i = this.secondaryCursors.length; t < i; t++) e[t + 1] = this.secondaryCursors[t].modelState.selection; return e } getViewSelections() { let e = []; e[0] = this.primaryCursor.viewState.selection; for (let t = 0, i = this.secondaryCursors.length; t < i; t++) e[t + 1] = this.secondaryCursors[t].viewState.selection; return e } setSelections(e) { this.setStates(be.Vi.fromModelSelections(e)) } getPrimaryCursor() { return this.primaryCursor.asCursorState() } setStates(e) { null !== e && (this.primaryCursor.setState(this.context, e[0].modelState, e[0].viewState), this._setSecondaryStates(e.slice(1))) } _setSecondaryStates(e) { const t = this.secondaryCursors.length, i = e.length; if (t < i) { let e = i - t; for (let t = 0; t < e; t++) this._addSecondaryCursor() } else if (t > i) { let e = t - i; for (let t = 0; t < e; t++) this._removeSecondaryCursor(this.secondaryCursors .length - 1) } for (let t = 0; t < i; t++) this.secondaryCursors[t].setState(this.context, e[t].modelState, e[t].viewState) } killSecondaryCursors() { this._setSecondaryStates([]) } _addSecondaryCursor() { this.secondaryCursors.push(new tn(this.context)), this.lastAddedCursorIndex = this.secondaryCursors.length } getLastAddedCursorIndex() { return 0 === this.secondaryCursors.length || 0 === this.lastAddedCursorIndex ? 0 : this.lastAddedCursorIndex } _removeSecondaryCursor(e) { this.lastAddedCursorIndex >= e + 1 && this.lastAddedCursorIndex--, this.secondaryCursors[e].dispose(this.context), this.secondaryCursors .splice(e, 1) } _getAll() { let e = []; e[0] = this.primaryCursor; for (let t = 0, i = this.secondaryCursors.length; t < i; t++) e[t + 1] = this.secondaryCursors[t]; return e } normalize() { if (0 === this.secondaryCursors.length) return; let e = this._getAll(), t = []; for (let i = 0, n = e.length; i < n; i++) t.push({ index: i, selection: e[i].modelState.selection }); t.sort(((e, t) => e.selection.startLineNumber === t.selection.startLineNumber ? e.selection.startColumn - t.selection.startColumn : e.selection.startLineNumber - t.selection.startLineNumber)); for (let i = 0; i < t.length - 1; i++) { const n = t[i], o = t[i + 1], r = n.selection, s = o.selection; if (!this.context.cursorConfig.multiCursorMergeOverlapping) continue; let a; if (a = s.isEmpty() || r.isEmpty() ? s.getStartPosition().isBeforeOrEqual( r.getEndPosition()) : s.getStartPosition().isBefore(r.getEndPosition()), a) { const r = n.index < o.index ? i : i + 1, s = n.index < o.index ? i + 1 : i, a = t[s].index, l = t[r].index, d = t[s].selection, c = t[r].selection; if (!d.equalsSelection(c)) { const i = d.plusRange(c), n = d.selectionStartLineNumber === d.startLineNumber && d.selectionStartColumn === d.startColumn, o = c.selectionStartLineNumber === c.startLineNumber && c.selectionStartColumn === c.startColumn; let s, h; a === this.lastAddedCursorIndex ? (s = n, this.lastAddedCursorIndex = l) : s = o, h = s ? new T.Y(i.startLineNumber, i.startColumn, i.endLineNumber, i.endColumn) : new T.Y(i.endLineNumber, i.endColumn, i.startLineNumber, i.startColumn), t[r].selection = h; const u = be.Vi.fromModelSelection(h); e[l].setState(this.context, u.modelState, u.viewState) } for (const e of t) e.index > a && e.index--; e.splice(a, 1), t.splice(s, 1), this._removeSecondaryCursor(a - 1), i-- } } } } var on = i(1380), rn = i(3582), sn = i(3256); class an { constructor() { this.type = 0 } } class ln { constructor() { this.type = 1 } } class dn { constructor(e) { this.type = 2, this._source = e } hasChanged(e) { return this._source.hasChanged(e) } } class cn { constructor(e, t) { this.type = 3, this.selections = e, this.modelSelections = t } } class hn { constructor(e) { this.type = 4, e ? (this.affectsMinimap = e.affectsMinimap, this.affectsOverviewRuler = e.affectsOverviewRuler) : (this.affectsMinimap = !0, this.affectsOverviewRuler = ! 0) } } class un { constructor() { this.type = 5 } } class gn { constructor(e) { this.type = 6, this.isFocused = e } } class pn { constructor() { this.type = 7 } } class mn { constructor() { this.type = 8 } } class fn { constructor(e, t) { this.type = 9, this.fromLineNumber = e, this.toLineNumber = t } } class _n { constructor(e, t) { this.type = 10, this.fromLineNumber = e, this.toLineNumber = t } } class bn { constructor(e, t) { this.type = 11, this.fromLineNumber = e, this.toLineNumber = t } } class vn { constructor(e, t, i, n, o, r) { this.type = 12, this.source = e, this.range = t, this.selections = i, this.verticalType = n, this.revealHorizontal = o, this.scrollType = r } } class wn { constructor(e) { this.type = 13, this.scrollWidth = e.scrollWidth, this.scrollLeft = e.scrollLeft, this.scrollHeight = e.scrollHeight, this.scrollTop = e.scrollTop, this.scrollWidthChanged = e.scrollWidthChanged, this.scrollLeftChanged = e.scrollLeftChanged, this.scrollHeightChanged = e.scrollHeightChanged, this.scrollTopChanged = e.scrollTopChanged } } class Cn { constructor() { this.type = 14 } } class yn { constructor(e) { this.type = 15, this.ranges = e } } class Sn { constructor() { this.type = 16 } } class xn { constructor() { this.type = 17 } } class kn extends L.JT { constructor() { super(), this._onEvent = this._register(new k.Q5), this.onEvent = this._onEvent.event, this._eventHandlers = [], this._viewEventQueue = null, this._isConsumingViewEventQueue = !1, this._collector = null, this._collectorCnt = 0, this._outgoingEvents = [] } emitOutgoingEvent(e) { this._addOutgoingEvent(e), this._emitOutgoingEvents() } _addOutgoingEvent(e) { for (let t = 0, i = this._outgoingEvents.length; t < i; t++) if (this._outgoingEvents[t].kind === e.kind) return void(this._outgoingEvents[ t] = this._outgoingEvents[t].merge(e)); this._outgoingEvents.push(e) } _emitOutgoingEvents() { for (; this._outgoingEvents.length > 0;) { if (this._collector || this._isConsumingViewEventQueue) return; const e = this._outgoingEvents.shift(); e.isNoOp() || this._onEvent.fire(e) } } addViewEventHandler(e) { for (let t = 0, i = this._eventHandlers.length; t < i; t++) this._eventHandlers[ t] === e && console.warn( "Detected duplicate listener in ViewEventDispatcher", e); this._eventHandlers.push(e) } removeViewEventHandler(e) { for (let t = 0; t < this._eventHandlers.length; t++) if (this._eventHandlers[t] === e) { this._eventHandlers.splice(t, 1); break } } beginEmitViewEvents() { return this._collectorCnt++, 1 === this._collectorCnt && (this._collector = new Ln), this._collector } endEmitViewEvents() { if (this._collectorCnt--, 0 === this._collectorCnt) { const e = this._collector.outgoingEvents, t = this._collector.viewEvents; this._collector = null; for (const t of e) this._addOutgoingEvent(t); t.length > 0 && this._emitMany(t) } this._emitOutgoingEvents() } emitSingleViewEvent(e) { try { this.beginEmitViewEvents().emitViewEvent(e) } finally { this.endEmitViewEvents() } } _emitMany(e) { this._viewEventQueue ? this._viewEventQueue = this._viewEventQueue.concat( e) : this._viewEventQueue = e, this._isConsumingViewEventQueue || this._consumeViewEventQueue() } _consumeViewEventQueue() { try { this._isConsumingViewEventQueue = !0, this._doConsumeQueue() } finally { this._isConsumingViewEventQueue = !1 } } _doConsumeQueue() { for (; this._viewEventQueue;) { const e = this._viewEventQueue; this._viewEventQueue = null; const t = this._eventHandlers.slice(0); for (const i of t) i.handleEvents(e) } } } class Ln { constructor() { this.viewEvents = [], this.outgoingEvents = [] } emitViewEvent(e) { this.viewEvents.push(e) } emitOutgoingEvent(e) { this.outgoingEvents.push(e) } } class Nn { constructor(e, t, i, n) { this.kind = 0, this._oldContentWidth = e, this._oldContentHeight = t, this.contentWidth = i, this.contentHeight = n, this.contentWidthChanged = this._oldContentWidth !== this.contentWidth, this.contentHeightChanged = this._oldContentHeight !== this.contentHeight } isNoOp() { return !this.contentWidthChanged && !this.contentHeightChanged } merge(e) { return 0 !== e.kind ? this : new Nn(this._oldContentWidth, this._oldContentHeight, e.contentWidth, e.contentHeight) } } class Dn { constructor(e, t) { this.kind = 1, this.oldHasFocus = e, this.hasFocus = t } isNoOp() { return this.oldHasFocus === this.hasFocus } merge(e) { return 1 !== e.kind ? this : new Dn(this.oldHasFocus, e.hasFocus) } } class En { constructor(e, t, i, n, o, r, s, a) { this.kind = 2, this._oldScrollWidth = e, this._oldScrollLeft = t, this ._oldScrollHeight = i, this._oldScrollTop = n, this.scrollWidth = o, this.scrollLeft = r, this.scrollHeight = s, this.scrollTop = a, 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) } merge(e) { return 2 !== e.kind ? this : new En(this._oldScrollWidth, this._oldScrollLeft, this._oldScrollHeight, this._oldScrollTop, e.scrollWidth, e.scrollLeft, e.scrollHeight, e.scrollTop) } } class In { constructor() { this.kind = 3 } isNoOp() { return !1 } merge(e) { return this } } class Tn { constructor(e, t, i, n, o, r, s) { this.kind = 5, this.oldSelections = e, this.selections = t, this.oldModelVersionId = i, this.modelVersionId = n, this.source = o, this.reason = r, this.reachedMaxCursorCount = s } static _selectionsAreEqual(e, t) { if (!e && !t) return !0; if (!e || !t) return !1; const i = e.length; if (i !== t.length) return !1; for (let n = 0; n < i; n++) if (!e[n].equalsSelection(t[n])) return !1; return !0 } isNoOp() { return Tn._selectionsAreEqual(this.oldSelections, this.selections) && this.oldModelVersionId === this.modelVersionId } merge(e) { return 5 !== e.kind ? this : new Tn(this.oldSelections, e.selections, this.oldModelVersionId, e.modelVersionId, e.source, e.reason, this.reachedMaxCursorCount || e.reachedMaxCursorCount) } } class Mn { constructor() { this.kind = 4 } isNoOp() { return !1 } merge(e) { return this } } class An { constructor(e, t) { this.modelVersionId = e.getVersionId(), this.cursorState = t.getCursorStates() } equals(e) { if (!e) return !1; if (this.modelVersionId !== e.modelVersionId) return !1; if (this.cursorState.length !== e.cursorState.length) return !1; for (let t = 0, i = this.cursorState.length; t < i; t++) if (!this.cursorState[t].equals(e.cursorState[t])) return !1; return !0 } } class Rn { constructor(e, t, i) { this._model = e, this._autoClosedCharactersDecorations = t, this._autoClosedEnclosingDecorations = i } static getAllAutoClosedCharacters(e) { let t = []; for (const i of e) t = t.concat(i.getAutoClosedCharactersRanges()); return t } dispose() { this._autoClosedCharactersDecorations = this._model.deltaDecorations( this._autoClosedCharactersDecorations, []), this._autoClosedEnclosingDecorations = this._model.deltaDecorations(this._autoClosedEnclosingDecorations, []) } getAutoClosedCharactersRanges() { let e = []; for (let t = 0; t < this._autoClosedCharactersDecorations.length; t++) { const i = this._model.getDecorationRange(this._autoClosedCharactersDecorations[ t]); i && e.push(i) } return e } isValid(e) { let t = []; for (let e = 0; e < this._autoClosedEnclosingDecorations.length; e++) { const i = this._model.getDecorationRange(this._autoClosedEnclosingDecorations[ e]); if (i && (t.push(i), i.startLineNumber !== i.endLineNumber)) return ! 1 } t.sort(_e.e.compareRangesUsingStarts), e.sort(_e.e.compareRangesUsingStarts); for (let i = 0; i < e.length; i++) { if (i >= t.length) return !1; if (!t[i].strictContainsRange(e[i])) return !1 } return !0 } } class On extends L.JT { constructor(e, t, i, n) { super(), this._model = e, this._knownModelVersionId = this._model.getVersionId(), this._viewModel = t, this._coordinatesConverter = i, this.context = new be.zp(this._model, this._viewModel, this._coordinatesConverter, n), this._cursors = new nn(this.context), this._hasFocus = !1, this ._isHandling = !1, this._isDoingComposition = !1, this._selectionsWhenCompositionStarted = null, this._columnSelectData = null, this._autoClosedActions = [], this._prevEditOperationType = 0 } dispose() { this._cursors.dispose(), this._autoClosedActions = (0, L.B9)(this._autoClosedActions), super.dispose() } updateConfiguration(e) { this.context = new be.zp(this._model, this._viewModel, this._coordinatesConverter, e), this._cursors.updateContext(this.context) } onLineMappingChanged(e) { this._knownModelVersionId === this._model.getVersionId() && this.setStates( e, "viewModel", 0, this.getCursorStates()) } setHasFocus(e) { this._hasFocus = e } _validateAutoClosedActions() { if (this._autoClosedActions.length > 0) { let e = this._cursors.getSelections(); for (let t = 0; t < this._autoClosedActions.length; t++) { const i = this._autoClosedActions[t]; i.isValid(e) || (i.dispose(), this._autoClosedActions.splice(t, 1), t--) } } } getPrimaryCursorState() { return this._cursors.getPrimaryCursor() } getLastAddedCursorIndex() { return this._cursors.getLastAddedCursorIndex() } getCursorStates() { return this._cursors.getAll() } setStates(e, t, i, n) { let o = !1; null !== n && n.length > On.MAX_CURSOR_COUNT && (n = n.slice(0, On.MAX_CURSOR_COUNT), o = !0); const r = new An(this._model, this); return this._cursors.setStates(n), this._cursors.normalize(), this._columnSelectData = null, this._validateAutoClosedActions(), this._emitStateChangedIfNecessary( e, t, i, r, o) } setCursorColumnSelectData(e) { this._columnSelectData = e } revealPrimary(e, t, i, n) { const o = this._cursors.getViewPositions(); if (o.length > 1) this._emitCursorRevealRange(e, t, null, this._cursors .getViewSelections(), 0, i, n); else { const r = o[0], s = new _e.e(r.lineNumber, r.column, r.lineNumber, r.column); this._emitCursorRevealRange(e, t, s, null, 0, i, n) } } _revealPrimaryCursor(e, t, i, n, o) { const r = this._cursors.getViewPositions(); if (r.length > 1) this._emitCursorRevealRange(e, t, null, this._cursors .getViewSelections(), i, n, o); else { const s = r[0], a = new _e.e(s.lineNumber, s.column, s.lineNumber, s.column); this._emitCursorRevealRange(e, t, a, null, i, n, o) } } _emitCursorRevealRange(e, t, i, n, o, r, s) { e.emitViewEvent(new vn(t, i, n, o, r, s)) } saveState() { let e = []; const t = this._cursors.getSelections(); for (let i = 0, n = t.length; i < n; i++) { const n = t[i]; e.push({ inSelectionMode: !n.isEmpty(), selectionStart: { lineNumber: n.selectionStartLineNumber, column: n.selectionStartColumn }, position: { lineNumber: n.positionLineNumber, column: n.positionColumn } }) } return e } restoreState(e, t) { let i = []; for (let e = 0, n = t.length; e < n; e++) { const n = t[e]; let o = 1, r = 1; n.position && n.position.lineNumber && (o = n.position.lineNumber), n.position && n.position.column && (r = n.position.column); let s = o, a = r; n.selectionStart && n.selectionStart.lineNumber && (s = n.selectionStart .lineNumber), n.selectionStart && n.selectionStart.column && (a = n.selectionStart.column), i.push({ selectionStartLineNumber: s, selectionStartColumn: a, positionLineNumber: o, positionColumn: r }) } this.setStates(e, "restoreState", 0, be.Vi.fromModelSelections(i)), this.revealPrimary(e, "restoreState", !0, 1) } onModelContentChanged(e, t) { if (t instanceof sn.D8) { if (this._isHandling) return; this._isHandling = !0; try { this.setStates(e, "modelChange", 0, this.getCursorStates()) } finally { this._isHandling = !1 } } else { if (this._knownModelVersionId = t.versionId, this._isHandling) return ; const i = t.containsEvent(1); if (this._prevEditOperationType = 0, i) this._cursors.dispose(), this._cursors = new nn(this.context), this._validateAutoClosedActions(), this._emitStateChangedIfNecessary(e, "model", 1, null, !1); else if (this._hasFocus && t.resultingSelection && t.resultingSelection .length > 0) { const i = be.Vi.fromModelSelections(t.resultingSelection); this.setStates(e, "modelChange", t.isUndoing ? 5 : t.isRedoing ? 6 : 2, i) && this._revealPrimaryCursor(e, "modelChange", 0, !0, 0) } else { const t = this._cursors.readSelectionFromMarkers(); this.setStates(e, "modelChange", 2, be.Vi.fromModelSelections(t)) } } } 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 e = this._cursors.getPrimaryCursor(), t = e.viewState.selectionStart.getStartPosition(), i = e.viewState.position; return { isReal: !1, fromViewLineNumber: t.lineNumber, fromViewVisualColumn: be.io.visibleColumnFromColumn2(this.context.cursorConfig, this._viewModel, t), toViewLineNumber: i.lineNumber, toViewVisualColumn: be.io.visibleColumnFromColumn2(this.context.cursorConfig, this._viewModel, i) } } getSelections() { return this._cursors.getSelections() } setSelections(e, t, i, n) { this.setStates(e, t, n, be.Vi.fromModelSelections(i)) } getPrevEditOperationType() { return this._prevEditOperationType } setPrevEditOperationType(e) { this._prevEditOperationType = e } _pushAutoClosedAction(e, t) { let i = [], n = []; for (let o = 0, r = e.length; o < r; o++) i.push({ range: e[o], options: { description: "auto-closed-character", inlineClassName: "auto-closed-character", stickiness: 1 } }), n.push({ range: t[o], options: { description: "auto-closed-enclosing", stickiness: 1 } }); const o = this._model.deltaDecorations([], i), r = this._model.deltaDecorations([], n); this._autoClosedActions.push(new Rn(this._model, o, r)) } _executeEditOperation(e) { if (!e) return; e.shouldPushStackElementBefore && this._model.pushStackElement(); const t = class { static executeCommands(e, t, i) { const n = { model: e, selectionsBefore: t, trackedRanges: [], trackedRangesDirection: [] }, o = this._innerExecuteCommands(n, i); for (let e = 0, t = n.trackedRanges.length; e < t; e++) n.model._setTrackedRange( n.trackedRanges[e], null, 0); return o } static _innerExecuteCommands(e, t) { if (this._arrayIsEmpty(t)) return null; const i = this._getEditOperations(e, t); if (0 === i.operations.length) return null; const n = i.operations, o = this._getLoserCursorMap(n); if (o.hasOwnProperty("0")) return console.warn( "Ignoring commands"), null; let r = []; for (let e = 0, t = n.length; e < t; e++) o.hasOwnProperty(n[e].identifier .major.toString()) || r.push(n[e]); i.hadTrackedEditOperation && r.length > 0 && (r[0]._isTracked = ! 0); let s = e.model.pushEditOperations(e.selectionsBefore, r, (i => { let n = []; for (let t = 0; t < e.selectionsBefore.length; t++) n[t] = []; for (const e of i) e.identifier && n[e.identifier.major].push( e); const o = (e, t) => e.identifier.minor - t.identifier.minor; let r = []; for (let i = 0; i < e.selectionsBefore.length; i++) n[i].length > 0 ? (n[i].sort(o), r[i] = t[i].computeCursorState(e.model, { getInverseEditOperations: () => n[i], getTrackedSelection: t => { const i = parseInt(t, 10), n = e.model._getTrackedRange(e.trackedRanges[i]); return 0 === e.trackedRangesDirection[i] ? new T.Y(n.startLineNumber, n.startColumn, n.endLineNumber, n.endColumn) : new T.Y( n.endLineNumber, n.endColumn, n.startLineNumber, n.startColumn ) } })) : r[i] = e.selectionsBefore[i]; return r })); s || (s = e.selectionsBefore); let a = []; for (let e in o) o.hasOwnProperty(e) && a.push(parseInt(e, 10)); a.sort(((e, t) => t - e)); for (const e of a) s.splice(e, 1); return s } static _arrayIsEmpty(e) { for (let t = 0, i = e.length; t < i; t++) if (e[t]) return !1; return !0 } static _getEditOperations(e, t) { let i = [], n = !1; for (let o = 0, r = t.length; o < r; o++) { const r = t[o]; if (r) { const t = this._getEditOperationsFromCommand(e, o, r); i = i.concat(t.operations), n = n || t.hadTrackedEditOperation } } return { operations: i, hadTrackedEditOperation: n } } static _getEditOperationsFromCommand(e, t, i) { let n = [], o = 0; const r = (e, r, s = !1) => { _e.e.isEmpty(e) && "" === r || n.push({ identifier: { major: t, minor: o++ }, range: e, text: r, forceMoveMarkers: s, isAutoWhitespaceEdit: i.insertsAutoWhitespace }) }; let s = !1; const a = { addEditOperation: r, addTrackedEditOperation: (e, t, i) => { s = !0, r(e, t, i) }, trackSelection: (t, i) => { const n = T.Y.liftSelection(t); let o; if (n.isEmpty()) if ("boolean" == typeof i) o = i ? 2 : 3; else { const t = e.model.getLineMaxColumn(n.startLineNumber); o = n.startColumn === t ? 2 : 3 } else o = 1; const r = e.trackedRanges.length, s = e.model._setTrackedRange(null, n, o); return e.trackedRanges[r] = s, e.trackedRangesDirection[r] = n.getDirection(), r.toString() } }; try { i.getEditOperations(e.model, a) } catch (e) { return (0, x.dL)(e), { operations: [], hadTrackedEditOperation: !1 } } return { operations: n, hadTrackedEditOperation: s } } static _getLoserCursorMap(e) { (e = e.slice(0)).sort(((e, t) => -_e.e.compareRangesUsingEnds(e.range, t.range))); let t = {}; for (let i = 1; i < e.length; i++) { const n = e[i - 1], o = e[i]; if (_e.e.getStartPosition(n.range).isBefore(_e.e.getEndPosition( o.range))) { let r; r = n.identifier.major > o.identifier.major ? n.identifier.major : o.identifier.major, t[r.toString()] = !0; for (let t = 0; t < e.length; t++) e[t].identifier.major === r && (e.splice(t, 1), t < i && i--, t--); i > 0 && i-- } } return t } }.executeCommands(this._model, this._cursors.getSelections(), e.commands); if (t) { this._interpretCommandResult(t); let i = [], n = []; for (let t = 0; t < e.commands.length; t++) { const o = e.commands[t]; o instanceof rn.g && o.enclosingRange && o.closeCharacterRange && ( i.push(o.closeCharacterRange), n.push(o.enclosingRange)) } i.length > 0 && this._pushAutoClosedAction(i, n), this._prevEditOperationType = e.type } e.shouldPushStackElementAfter && this._model.pushStackElement() } _interpretCommandResult(e) { e && 0 !== e.length || (e = this._cursors.readSelectionFromMarkers()), this._columnSelectData = null, this._cursors.setSelections(e), this._cursors .normalize() } _emitStateChangedIfNecessary(e, t, i, n, o) { const r = new An(this._model, this); if (r.equals(n)) return !1; const s = this._cursors.getSelections(), a = this._cursors.getViewSelections(); if (e.emitViewEvent(new cn(a, s)), !n || n.cursorState.length !== r.cursorState .length || r.cursorState.some(((e, t) => !e.modelState.equals(n.cursorState[ t].modelState)))) { const a = n ? n.cursorState.map((e => e.modelState.selection)) : null, l = n ? n.modelVersionId : 0; e.emitOutgoingEvent(new Tn(a, s, l, r.modelVersionId, t || "keyboard", i, o)) } return !0 } _findAutoClosingPairs(e) { if (!e.length) return null; let t = []; for (let i = 0, n = e.length; i < n; i++) { const n = e[i]; if (!n.text || n.text.indexOf("\n") >= 0) return null; const o = n.text.match(/([)\]}>'"`])([^)\]}>'"`]*)$/); if (!o) return null; const r = o[1], s = this.context.cursorConfig.autoClosingPairs.autoClosingPairsCloseSingleChar .get(r); if (!s || 1 !== s.length) return null; const a = s[0].open, l = n.text.length - o[2].length - 1, d = n.text.lastIndexOf(a, l - 1); if (-1 === d) return null; t.push([d, l]) } return t } executeEdits(e, t, i, n) { let o = null; "snippet" === t && (o = this._findAutoClosingPairs(i)), o && (i[0]._isTracked = ! 0); let r = [], s = []; const a = this._model.pushEditOperations(this.getSelections(), i, (e => { if (o) for (let t = 0, i = o.length; t < i; t++) { const [i, n] = o[t], a = e[t], l = a.range.startLineNumber, d = a.range.startColumn - 1 + i, c = a.range.startColumn - 1 + n; r.push(new _e.e(l, c + 1, l, c + 2)), s.push(new _e.e(l, d + 1, l, c + 2)) } const t = n(e); return t && (this._isHandling = !0), t })); a && (this._isHandling = !1, this.setSelections(e, t, a, 0)), r.length > 0 && this._pushAutoClosedAction(r, s) } _executeEdit(e, t, i, n = 0) { if (this.context.cursorConfig.readOnly) return; const o = new An(this._model, this); this._cursors.stopTrackingSelections(), this._isHandling = !0; try { this._cursors.ensureValidState(), e() } catch (e) { (0, x.dL)(e) } this._isHandling = !1, this._cursors.startTrackingSelections(), this._validateAutoClosedActions(), this._emitStateChangedIfNecessary(t, i, n, o, !1) && this._revealPrimaryCursor( t, i, 0, !0, 0) } setIsDoingComposition(e) { this._isDoingComposition = e } getAutoClosedCharacters() { return Rn.getAllAutoClosedCharacters(this._autoClosedActions) } startComposition(e) { this._selectionsWhenCompositionStarted = this.getSelections().slice(0) } endComposition(e, t) { this._executeEdit((() => { "keyboard" === t && (this._executeEditOperation(rn.u.compositionEndWithInterceptors( this._prevEditOperationType, this.context.cursorConfig, this._model, this._selectionsWhenCompositionStarted, this.getSelections(), this.getAutoClosedCharacters())), this._selectionsWhenCompositionStarted = null) }), e, t) } type(e, t, i) { this._executeEdit((() => { if ("keyboard" === i) { const e = t.length; let i = 0; for (; i < e;) { const e = Ue.vH(t, i), n = t.substr(i, e); this._executeEditOperation(rn.u.typeWithInterceptors(this._isDoingComposition, this._prevEditOperationType, this.context.cursorConfig, this ._model, this.getSelections(), this.getAutoClosedCharacters(), n)), i += e } } else this._executeEditOperation(rn.u.typeWithoutInterceptors( this._prevEditOperationType, this.context.cursorConfig, this._model, this.getSelections(), t)) }), e, i) } compositionType(e, t, i, n, o, r) { if (0 !== t.length || 0 !== i || 0 !== n) this._executeEdit((() => { this._executeEditOperation(rn.u.compositionType(this._prevEditOperationType, this.context.cursorConfig, this._model, this.getSelections(), t, i, n, o)) }), e, r); else if (0 !== o) { const t = this.getSelections().map((e => { const t = e.getPosition(); return new T.Y(t.lineNumber, t.column + o, t.lineNumber, t.column + o) })); this.setSelections(e, r, t, 0) } } paste(e, t, i, n, o) { this._executeEdit((() => { this._executeEditOperation(rn.u.paste(this.context.cursorConfig, this._model, this.getSelections(), t, i, n || [])) }), e, o, 4) } cut(e, t) { this._executeEdit((() => { this._executeEditOperation(on.A.cut(this.context.cursorConfig, this._model, this.getSelections())) }), e, t) } executeCommand(e, t, i) { this._executeEdit((() => { this._cursors.killSecondaryCursors(), this._executeEditOperation( new be.Tp(0, [t], { shouldPushStackElementBefore: !1, shouldPushStackElementAfter: !1 })) }), e, i) } executeCommands(e, t, i) { this._executeEdit((() => { this._executeEditOperation(new be.Tp(0, t, { shouldPushStackElementBefore: !1, shouldPushStackElementAfter: !1 })) }), e, i) } } On.MAX_CURSOR_COUNT = 1e4; var Pn = i(653), Fn = i(6518), Bn = i(9102), Wn = i(5713), zn = i(6633); class Vn { constructor() { this._hasPending = !1, this._inserts = [], this._changes = [], this._removes = [] } insert(e) { this._hasPending = !0, this._inserts.push(e) } change(e) { this._hasPending = !0, this._changes.push(e) } remove(e) { this._hasPending = !0, this._removes.push(e) } mustCommit() { return this._hasPending } commit(e) { if (!this._hasPending) return; const t = this._inserts, i = this._changes, n = this._removes; this._hasPending = !1, this._inserts = [], this._changes = [], this._removes = [], e._commitPendingChanges(t, i, n) } } class Hn { constructor(e, t, i, n, o) { this.id = e, this.afterLineNumber = t, this.ordinal = i, this.height = n, this.minWidth = o, this.prefixSum = 0 } } class Un { constructor(e, t, i, n) { this._instanceId = Ue.PJ(++Un.INSTANCE_COUNT), this._pendingChanges = new Vn, this._lastWhitespaceId = 0, this._arr = [], this._prefixSumValidIndex = - 1, this._minWidth = -1, this._lineCount = e, this._lineHeight = t, this._paddingTop = i, this._paddingBottom = n } static findInsertionIndex(e, t, i) { let n = 0, o = e.length; for (; n < o;) { const r = n + o >>> 1; t === e[r].afterLineNumber ? i < e[r].ordinal ? o = r : n = r + 1 : t < e[r].afterLineNumber ? o = r : n = r + 1 } return n } setLineHeight(e) { this._checkPendingChanges(), this._lineHeight = e } setPadding(e, t) { this._paddingTop = e, this._paddingBottom = t } onFlushed(e) { this._checkPendingChanges(), this._lineCount = e } changeWhitespace(e) { let t = !1; try { e({ insertWhitespace: (e, i, n, o) => { t = !0, e |= 0, i |= 0, n |= 0, o |= 0; const r = this._instanceId + ++this._lastWhitespaceId; return this._pendingChanges.insert(new Hn(r, e, i, n, o)), r }, changeOneWhitespace: (e, i, n) => { t = !0, i |= 0, n |= 0, this._pendingChanges.change({ id: e, newAfterLineNumber: i, newHeight: n }) }, removeWhitespace: e => { t = !0, this._pendingChanges.remove({ id: e }) } }) } finally { this._pendingChanges.commit(this) } return t } _commitPendingChanges(e, t, i) { if ((e.length > 0 || i.length > 0) && (this._minWidth = -1), e.length + t.length + i.length <= 1) { for (const t of e) this._insertWhitespace(t); for (const e of t) this._changeOneWhitespace(e.id, e.newAfterLineNumber, e.newHeight); for (const e of i) { const t = this._findWhitespaceIndex(e.id); - 1 !== t && this._removeWhitespace( t) } return } const n = new Set; for (const e of i) n.add(e.id); const o = new Map; for (const e of t) o.set(e.id, e); const r = e => { let t = []; for (const i of e) if (!n.has(i.id)) { if (o.has(i.id)) { const e = o.get(i.id); i.afterLineNumber = e.newAfterLineNumber, i.height = e.newHeight } t.push(i) } return t }, s = r(this._arr).concat(r(e)); s.sort(((e, t) => e.afterLineNumber === t.afterLineNumber ? e.ordinal - t.ordinal : e.afterLineNumber - t.afterLineNumber)), this._arr = s, this._prefixSumValidIndex = -1 } _checkPendingChanges() { this._pendingChanges.mustCommit() && this._pendingChanges.commit(this) } _insertWhitespace(e) { const t = Un.findInsertionIndex(this._arr, e.afterLineNumber, e.ordinal); this._arr.splice(t, 0, e), this._prefixSumValidIndex = Math.min(this._prefixSumValidIndex, t - 1) } _findWhitespaceIndex(e) { const t = this._arr; for (let i = 0, n = t.length; i < n; i++) if (t[i].id === e) return i; return -1 } _changeOneWhitespace(e, t, i) { const n = this._findWhitespaceIndex(e); if (-1 !== n && (this._arr[n].height !== i && (this._arr[n].height = i, this._prefixSumValidIndex = Math.min(this._prefixSumValidIndex, n - 1)), this._arr[n].afterLineNumber !== t)) { const e = this._arr[n]; this._removeWhitespace(n), e.afterLineNumber = t, this._insertWhitespace( e) } } _removeWhitespace(e) { this._arr.splice(e, 1), this._prefixSumValidIndex = Math.min(this._prefixSumValidIndex, e - 1) } onLinesDeleted(e, t) { this._checkPendingChanges(), e |= 0, t |= 0, this._lineCount -= t - e + 1; for (let i = 0, n = this._arr.length; i < n; i++) { const n = this._arr[i].afterLineNumber; e <= n && n <= t ? this._arr[i].afterLineNumber = e - 1 : n > t && ( this._arr[i].afterLineNumber -= t - e + 1) } } onLinesInserted(e, t) { this._checkPendingChanges(), e |= 0, t |= 0, this._lineCount += t - e + 1; for (let i = 0, n = this._arr.length; i < n; i++) e <= this._arr[i].afterLineNumber && (this._arr[i].afterLineNumber += t - e + 1) } getWhitespacesTotalHeight() { return this._checkPendingChanges(), 0 === this._arr.length ? 0 : this.getWhitespacesAccumulatedHeight( this._arr.length - 1) } getWhitespacesAccumulatedHeight(e) { this._checkPendingChanges(), e |= 0; let t = Math.max(0, this._prefixSumValidIndex + 1); 0 === t && (this._arr[0].prefixSum = this._arr[0].height, t++); for (let i = t; i <= e; i++) this._arr[i].prefixSum = this._arr[i - 1] .prefixSum + this._arr[i].height; return this._prefixSumValidIndex = Math.max(this._prefixSumValidIndex, e), this._arr[e].prefixSum } getLinesTotalHeight() { return this._checkPendingChanges(), this._lineHeight * this._lineCount + this.getWhitespacesTotalHeight() + this._paddingTop + this._paddingBottom } getWhitespaceAccumulatedHeightBeforeLineNumber(e) { this._checkPendingChanges(), e |= 0; const t = this._findLastWhitespaceBeforeLineNumber(e); return -1 === t ? 0 : this.getWhitespacesAccumulatedHeight(t) } _findLastWhitespaceBeforeLineNumber(e) { e |= 0; const t = this._arr; let i = 0, n = t.length - 1; for (; i <= n;) { const o = i + ((n - i | 0) / 2 | 0) | 0; if (t[o].afterLineNumber < e) { if (o + 1 >= t.length || t[o + 1].afterLineNumber >= e) return o; i = o + 1 | 0 } else n = o - 1 | 0 } return -1 } _findFirstWhitespaceAfterLineNumber(e) { e |= 0; const t = this._findLastWhitespaceBeforeLineNumber(e) + 1; return t < this._arr.length ? t : -1 } getFirstWhitespaceIndexAfterLineNumber(e) { return this._checkPendingChanges(), e |= 0, this._findFirstWhitespaceAfterLineNumber( e) } getVerticalOffsetForLineNumber(e) { let t; return this._checkPendingChanges(), t = (e |= 0) > 1 ? this._lineHeight * (e - 1) : 0, t + this.getWhitespaceAccumulatedHeightBeforeLineNumber( e) + this._paddingTop } getWhitespaceMinWidth() { if (this._checkPendingChanges(), -1 === this._minWidth) { let e = 0; for (let t = 0, i = this._arr.length; t < i; t++) e = Math.max(e, this._arr[t].minWidth); this._minWidth = e } return this._minWidth } isAfterLines(e) { return this._checkPendingChanges(), e > this.getLinesTotalHeight() } isInTopPadding(e) { return 0 !== this._paddingTop && (this._checkPendingChanges(), e < this._paddingTop) } isInBottomPadding(e) { return 0 !== this._paddingBottom && (this._checkPendingChanges(), e >= this.getLinesTotalHeight() - this._paddingBottom) } getLineNumberAtOrAfterVerticalOffset(e) { if (this._checkPendingChanges(), (e |= 0) < 0) return 1; const t = 0 | this._lineCount, i = this._lineHeight; let n = 1, o = t; for (; n < o;) { const t = (n + o) / 2 | 0, r = 0 | this.getVerticalOffsetForLineNumber(t); if (e >= r + i) n = t + 1; else { if (e >= r) return t; o = t } } return n > t ? t : n } getLinesViewportData(e, t) { this._checkPendingChanges(), e |= 0, t |= 0; const i = this._lineHeight, n = 0 | this.getLineNumberAtOrAfterVerticalOffset(e), o = 0 | this.getVerticalOffsetForLineNumber(n); let r = 0 | this._lineCount, s = 0 | this.getFirstWhitespaceIndexAfterLineNumber(n); const a = 0 | this.getWhitespacesCount(); let l, d; - 1 === s ? (s = a, d = r + 1, l = 0) : (d = 0 | this.getAfterLineNumberForWhitespaceIndex( s), l = 0 | this.getHeightForWhitespaceIndex(s)); let c = o, h = c; const u = 5e5; let g = 0; o >= u && (g = Math.floor(o / u) * u, g = Math.floor(g / i) * i, h -= g); const p = [], m = e + (t - e) / 2; let f = -1; for (let e = n; e <= r; e++) { if (-1 === f) { const t = c, n = c + i; (t <= m && m < n || t > m) && (f = e) } for (c += i, p[e - n] = h, h += i; d === e;) h += l, c += l, s++, s >= a ? d = r + 1 : (d = 0 | this.getAfterLineNumberForWhitespaceIndex(s), l = 0 | this.getHeightForWhitespaceIndex(s)); if (c >= t) { r = e; break } } - 1 === f && (f = r); const _ = 0 | this.getVerticalOffsetForLineNumber(r); let b = n, v = r; return b < v && o < e && b++, b < v && _ + i > t && v--, { bigNumbersDelta: g, startLineNumber: n, endLineNumber: r, relativeVerticalOffset: p, centeredLineNumber: f, completelyVisibleStartLineNumber: b, completelyVisibleEndLineNumber: v } } getVerticalOffsetForWhitespaceIndex(e) { this._checkPendingChanges(), e |= 0; const t = this.getAfterLineNumberForWhitespaceIndex(e); let i, n; return i = t >= 1 ? this._lineHeight * t : 0, n = e > 0 ? this.getWhitespacesAccumulatedHeight( e - 1) : 0, i + n + this._paddingTop } getWhitespaceIndexAtOrAfterVerticallOffset(e) { this._checkPendingChanges(), e |= 0; let t = 0, i = this.getWhitespacesCount() - 1; if (i < 0) return -1; if (e >= this.getVerticalOffsetForWhitespaceIndex(i) + this.getHeightForWhitespaceIndex( i)) return -1; for (; t < i;) { const n = Math.floor((t + i) / 2), o = this.getVerticalOffsetForWhitespaceIndex(n); if (e >= o + this.getHeightForWhitespaceIndex(n)) t = n + 1; else { if (e >= o) return n; i = n } } return t } getWhitespaceAtVerticalOffset(e) { this._checkPendingChanges(), e |= 0; const t = this.getWhitespaceIndexAtOrAfterVerticallOffset(e); if (t < 0) return null; if (t >= this.getWhitespacesCount()) return null; const i = this.getVerticalOffsetForWhitespaceIndex(t); if (i > e) return null; const n = this.getHeightForWhitespaceIndex(t); return { id: this.getIdForWhitespaceIndex(t), afterLineNumber: this.getAfterLineNumberForWhitespaceIndex(t), verticalOffset: i, height: n } } getWhitespaceViewportData(e, t) { this._checkPendingChanges(), e |= 0, t |= 0; const i = this.getWhitespaceIndexAtOrAfterVerticallOffset(e), n = this.getWhitespacesCount() - 1; if (i < 0) return []; let o = []; for (let e = i; e <= n; e++) { const i = this.getVerticalOffsetForWhitespaceIndex(e), n = this.getHeightForWhitespaceIndex(e); if (i >= t) break; o.push({ id: this.getIdForWhitespaceIndex(e), afterLineNumber: this.getAfterLineNumberForWhitespaceIndex(e), verticalOffset: i, height: n }) } return o } getWhitespaces() { return this._checkPendingChanges(), this._arr.slice(0) } getWhitespacesCount() { return this._checkPendingChanges(), this._arr.length } getIdForWhitespaceIndex(e) { return this._checkPendingChanges(), e |= 0, this._arr[e].id } getAfterLineNumberForWhitespaceIndex(e) { return this._checkPendingChanges(), e |= 0, this._arr[e].afterLineNumber } getHeightForWhitespaceIndex(e) { return this._checkPendingChanges(), e |= 0, this._arr[e].height } } Un.INSTANCE_COUNT = 0; class jn { constructor(e, t, i, n) { (e |= 0) < 0 && (e = 0), (t |= 0) < 0 && (t = 0), (i |= 0) < 0 && (i = 0), (n |= 0) < 0 && (n = 0), this.width = e, this.contentWidth = t, this.scrollWidth = Math.max(e, t), this.height = i, this.contentHeight = n, this.scrollHeight = Math.max(i, n) } equals(e) { return this.width === e.width && this.contentWidth === e.contentWidth && this.height === e.height && this.contentHeight === e.contentHeight } } class Kn extends L.JT { constructor(e, t) { super(), this._onDidContentSizeChange = this._register(new k.Q5), this.onDidContentSizeChange = this._onDidContentSizeChange.event, this._dimensions = new jn(0, 0, 0, 0), this._scrollable = this._register( new zn.Rm(e, t)), this.onDidScroll = this._scrollable.onScroll } getScrollable() { return this._scrollable } setSmoothScrollDuration(e) { this._scrollable.setSmoothScrollDuration(e) } validateScrollPosition(e) { return this._scrollable.validateScrollPosition(e) } getScrollDimensions() { return this._dimensions } setScrollDimensions(e) { if (this._dimensions.equals(e)) return; const t = this._dimensions; this._dimensions = e, this._scrollable.setScrollDimensions({ width: e.width, scrollWidth: e.scrollWidth, height: e.height, scrollHeight: e.scrollHeight }, !0); const i = t.contentWidth !== e.contentWidth, n = t.contentHeight !== e.contentHeight; (i || n) && this._onDidContentSizeChange.fire(new Nn(t.contentWidth, t.contentHeight, e.contentWidth, e.contentHeight)) } getFutureScrollPosition() { return this._scrollable.getFutureScrollPosition() } getCurrentScrollPosition() { return this._scrollable.getCurrentScrollPosition() } setScrollPositionNow(e) { this._scrollable.setScrollPositionNow(e) } setScrollPositionSmooth(e) { this._scrollable.setScrollPositionSmooth(e) } } class $n extends L.JT { constructor(e, t, i) { super(), this._configuration = e; const n = this._configuration.options, o = n.get(130), r = n.get(74); this._linesLayout = new Un(t, n.get(58), r.top, r.bottom), this._scrollable = this._register(new Kn(0, i)), this._configureSmoothScrollDuration(), this._scrollable.setScrollDimensions(new jn(o.contentWidth, 0, o.height, 0)), this.onDidScroll = this._scrollable.onDidScroll, this.onDidContentSizeChange = this._scrollable.onDidContentSizeChange, this._updateHeight() } dispose() { super.dispose() } getScrollable() { return this._scrollable.getScrollable() } onHeightMaybeChanged() { this._updateHeight() } _configureSmoothScrollDuration() { this._scrollable.setSmoothScrollDuration(this._configuration.options.get( 103) ? 125 : 0) } onConfigurationChanged(e) { const t = this._configuration.options; if (e.hasChanged(58) && this._linesLayout.setLineHeight(t.get(58)), e .hasChanged(74)) { const e = t.get(74); this._linesLayout.setPadding(e.top, e.bottom) } if (e.hasChanged(130)) { const e = t.get(130), i = e.contentWidth, n = e.height, o = this._scrollable.getScrollDimensions(), r = o.contentWidth; this._scrollable.setScrollDimensions(new jn(i, o.contentWidth, n, this._getContentHeight(i, n, r))) } else this._updateHeight(); e.hasChanged(103) && this._configureSmoothScrollDuration() } onFlushed(e) { this._linesLayout.onFlushed(e) } onLinesDeleted(e, t) { this._linesLayout.onLinesDeleted(e, t) } onLinesInserted(e, t) { this._linesLayout.onLinesInserted(e, t) } _getHorizontalScrollbarHeight(e, t) { const i = this._configuration.options.get(92); return 2 === i.horizontal || e >= t ? 0 : i.horizontalScrollbarSize } _getContentHeight(e, t, i) { const n = this._configuration.options; let o = this._linesLayout.getLinesTotalHeight(); return n.get(94) ? o += Math.max(0, t - n.get(58) - n.get(74).bottom) : o += this._getHorizontalScrollbarHeight(e, i), o } _updateHeight() { const e = this._scrollable.getScrollDimensions(), t = e.width, i = e.height, n = e.contentWidth; this._scrollable.setScrollDimensions(new jn(t, e.contentWidth, i, this._getContentHeight(t, i, n))) } getCurrentViewport() { const e = this._scrollable.getScrollDimensions(), t = this._scrollable.getCurrentScrollPosition(); return new ni.l_(t.scrollTop, t.scrollLeft, e.width, e.height) } getFutureViewport() { const e = this._scrollable.getScrollDimensions(), t = this._scrollable.getFutureScrollPosition(); return new ni.l_(t.scrollTop, t.scrollLeft, e.width, e.height) } _computeContentWidth(e) { const t = this._configuration.options, i = t.get(131), n = t.get(42); if (i.isViewportWrapping) { const i = t.get(130), o = t.get(64); return e > i.contentWidth + n.typicalHalfwidthCharacterWidth && o.enabled && "right" === o.side ? e + i.verticalScrollbarWidth : e } { const i = t.get(93) * n.typicalHalfwidthCharacterWidth, o = this._linesLayout.getWhitespaceMinWidth(); return Math.max(e + i, o) } } setMaxLineWidth(e) { const t = this._scrollable.getScrollDimensions(); this._scrollable.setScrollDimensions(new jn(t.width, this._computeContentWidth( e), t.height, t.contentHeight)), this._updateHeight() } saveState() { const e = this._scrollable.getFutureScrollPosition(); let t = e.scrollTop, i = this._linesLayout.getLineNumberAtOrAfterVerticalOffset(t); return { scrollTop: t, scrollTopWithoutViewZones: t - this._linesLayout.getWhitespaceAccumulatedHeightBeforeLineNumber( i), scrollLeft: e.scrollLeft } } changeWhitespace(e) { const t = this._linesLayout.changeWhitespace(e); return t && this.onHeightMaybeChanged(), t } getVerticalOffsetForLineNumber(e) { return this._linesLayout.getVerticalOffsetForLineNumber(e) } isAfterLines(e) { return this._linesLayout.isAfterLines(e) } isInTopPadding(e) { return this._linesLayout.isInTopPadding(e) } isInBottomPadding(e) { return this._linesLayout.isInBottomPadding(e) } getLineNumberAtVerticalOffset(e) { return this._linesLayout.getLineNumberAtOrAfterVerticalOffset(e) } getWhitespaceAtVerticalOffset(e) { return this._linesLayout.getWhitespaceAtVerticalOffset(e) } getLinesViewportData() { const e = this.getCurrentViewport(); return this._linesLayout.getLinesViewportData(e.top, e.top + e.height) } getLinesViewportDataAtScrollTop(e) { const t = this._scrollable.getScrollDimensions(); return e + t.height > t.scrollHeight && (e = t.scrollHeight - t.height), e < 0 && (e = 0), this._linesLayout.getLinesViewportData(e, e + t.height) } getWhitespaceViewportData() { const e = this.getCurrentViewport(); return this._linesLayout.getWhitespaceViewportData(e.top, e.top + e.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(e) { return this._scrollable.validateScrollPosition(e) } setScrollPosition(e, t) { 1 === t ? this._scrollable.setScrollPositionNow(e) : this._scrollable .setScrollPositionSmooth(e) } deltaScrollNow(e, t) { const i = this._scrollable.getCurrentScrollPosition(); this._scrollable.setScrollPositionNow({ scrollLeft: i.scrollLeft + e, scrollTop: i.scrollTop + t }) } } var qn = i(8411), Zn = i(6281), Gn = i(3544); class Yn { constructor(e) { this._lines = e } convertViewPositionToModelPosition(e) { return this._lines.convertViewPositionToModelPosition(e.lineNumber, e.column) } convertViewRangeToModelRange(e) { return this._lines.convertViewRangeToModelRange(e) } validateViewPosition(e, t) { return this._lines.validateViewPosition(e.lineNumber, e.column, t) } validateViewRange(e, t) { return this._lines.validateViewRange(e, t) } convertModelPositionToViewPosition(e, t) { return this._lines.convertModelPositionToViewPosition(e.lineNumber, e.column, t) } convertModelRangeToViewRange(e, t) { return this._lines.convertModelRangeToViewRange(e, t) } modelPositionIsVisible(e) { return this._lines.modelPositionIsVisible(e.lineNumber, e.column) } getModelLineViewLineCount(e) { return this._lines.getModelLineViewLineCount(e) } } class Qn { constructor(e) { this._counts = e, this._isValid = !1, this._validEndIndex = -1, this._modelToView = [], this._viewToModel = [] } _invalidate(e) { this._isValid = !1, this._validEndIndex = Math.min(this._validEndIndex, e - 1) } _ensureValid() { if (!this._isValid) { for (let e = this._validEndIndex + 1, t = this._counts.length; e < t; e++) { const t = this._counts[e], i = e > 0 ? this._modelToView[e - 1] : 0; this._modelToView[e] = i + t; for (let n = 0; n < t; n++) this._viewToModel[i + n] = e } this._modelToView.length = this._counts.length, this._viewToModel.length = this._modelToView[this._modelToView.length - 1], this._isValid = !0, this._validEndIndex = this._counts.length - 1 } } changeValue(e, t) { this._counts[e] !== t && (this._counts[e] = t, this._invalidate(e)) } removeValues(e, t) { this._counts.splice(e, t), this._invalidate(e) } insertValues(e, t) { this._counts = yt.Zv(this._counts, e, t), this._invalidate(e) } getTotalValue() { return this._ensureValid(), this._viewToModel.length } getAccumulatedValue(e) { return this._ensureValid(), this._modelToView[e] } getIndexOf(e) { this._ensureValid(); const t = this._viewToModel[e], i = t > 0 ? this._modelToView[t - 1] : 0; return new Gn.T(t, e - i) } } class Xn { constructor(e, t, i, n, o, r, s, a, l) { this._editorId = e, this.model = t, this._validModelVersionId = -1, this._domLineBreaksComputerFactory = i, this._monospaceLineBreaksComputerFactory = n, this.fontInfo = o, this.tabSize = r, this.wrappingStrategy = s, this.wrappingColumn = a, this.wrappingIndent = l, this._constructLines(! 0, null) } dispose() { this.hiddenAreasIds = this.model.deltaDecorations(this.hiddenAreasIds, []) } createCoordinatesConverter() { return new Yn(this) } _constructLines(e, t) { this.lines = [], e && (this.hiddenAreasIds = []); const i = this.model.getLinesContent(), n = this.model.getInjectedTextDecorations(this._editorId), o = i.length, r = this.createLineBreaksComputer(), s = new yt.H9(sn.gk.fromDecorations(n)); for (let e = 0; e < o; e++) { const n = s.takeWhile((t => t.lineNumber === e + 1)); r.addRequest(i[e], n, t ? t[e] : null) } const a = r.finalize(); let l = [], d = this.hiddenAreasIds.map((e => this.model.getDecorationRange(e))).sort( _e.e.compareRangesUsingStarts), c = 1, h = 0, u = -1, g = u + 1 < d.length ? h + 1 : o + 2; for (let e = 0; e < o; e++) { let t = e + 1; t === g && (u++, c = d[u].startLineNumber, h = d[u].endLineNumber, g = u + 1 < d.length ? h + 1 : o + 2); let i = t >= c && t <= h, n = ro(a[e], !i); l[e] = n.getViewLineCount(), this.lines[e] = n } this._validModelVersionId = this.model.getVersionId(), this.prefixSumComputer = new Qn(l) } getHiddenAreas() { return this.hiddenAreasIds.map((e => this.model.getDecorationRange(e))) } _reduceRanges(e) { if (0 === e.length) return []; let t = e.map((e => this.model.validateRange(e))).sort(_e.e.compareRangesUsingStarts), i = [], n = t[0].startLineNumber, o = t[0].endLineNumber; for (let e = 1, r = t.length; e < r; e++) { let r = t[e]; r.startLineNumber > o + 1 ? (i.push(new _e.e(n, 1, o, 1)), n = r.startLineNumber, o = r.endLineNumber) : r.endLineNumber > o && (o = r.endLineNumber) } return i.push(new _e.e(n, 1, o, 1)), i } setHiddenAreas(e) { let t = this._reduceRanges(e), i = this.hiddenAreasIds.map((e => this.model.getDecorationRange(e))).sort( _e.e.compareRangesUsingStarts); if (t.length === i.length) { let e = !1; for (let n = 0; n < t.length; n++) if (!t[n].equalsRange(i[n])) { e = !0; break } if (!e) return !1 } let n = []; for (const e of t) n.push({ range: e, options: Zn.qx.EMPTY }); this.hiddenAreasIds = this.model.deltaDecorations(this.hiddenAreasIds, n); let o = t, r = 1, s = 0, a = -1, l = a + 1 < o.length ? s + 1 : this.lines.length + 2, d = !1; for (let e = 0; e < this.lines.length; e++) { let t = e + 1; t === l && (a++, r = o[a].startLineNumber, s = o[a].endLineNumber, l = a + 1 < o.length ? s + 1 : this.lines.length + 2); let i = !1; if (t >= r && t <= s ? this.lines[e].isVisible() && (this.lines[e] = this.lines[e].setVisible(!1), i = !0) : (d = !0, this.lines[e].isVisible() || (this.lines[e] = this.lines[e].setVisible(!0), i = !0)), i) { let t = this.lines[e].getViewLineCount(); this.prefixSumComputer.changeValue(e, t) } } return d || this.setHiddenAreas([]), !0 } modelPositionIsVisible(e, t) { return !(e < 1 || e > this.lines.length) && this.lines[e - 1].isVisible() } getModelLineViewLineCount(e) { return e < 1 || e > this.lines.length ? 1 : this.lines[e - 1].getViewLineCount() } setTabSize(e) { return this.tabSize !== e && (this.tabSize = e, this._constructLines(! 1, null), !0) } setWrappingSettings(e, t, i, n) { const o = this.fontInfo.equals(e), r = this.wrappingStrategy === t, s = this.wrappingColumn === i, a = this.wrappingIndent === n; if (o && r && s && a) return !1; const l = o && r && !s && a; this.fontInfo = e, this.wrappingStrategy = t, this.wrappingColumn = i, this.wrappingIndent = n; let d = null; if (l) { d = []; for (let e = 0, t = this.lines.length; e < t; e++) d[e] = this.lines[ e].getLineBreakData() } return this._constructLines(!1, d), !0 } createLineBreaksComputer() { return ("advanced" === this.wrappingStrategy ? this._domLineBreaksComputerFactory : this._monospaceLineBreaksComputerFactory).createLineBreaksComputer( this.fontInfo, this.tabSize, this.wrappingColumn, this.wrappingIndent ) } onModelFlushed() { this._constructLines(!0, null) } onModelLinesDeleted(e, t, i) { if (!e || e <= this._validModelVersionId) return null; let n = 1 === t ? 1 : this.prefixSumComputer.getAccumulatedValue(t - 2) + 1, o = this.prefixSumComputer.getAccumulatedValue(i - 1); return this.lines.splice(t - 1, i - t + 1), this.prefixSumComputer.removeValues( t - 1, i - t + 1), new _n(n, o) } onModelLinesInserted(e, t, i, n) { if (!e || e <= this._validModelVersionId) return null; const o = t > 2 && !this.lines[t - 2].isVisible(); let r = 1 === t ? 1 : this.prefixSumComputer.getAccumulatedValue(t - 2) + 1, s = 0, a = [], l = []; for (let e = 0, t = n.length; e < t; e++) { let t = ro(n[e], !o); a.push(t); let i = t.getViewLineCount(); s += i, l[e] = i } return this.lines = this.lines.slice(0, t - 1).concat(a).concat(this.lines .slice(t - 1)), this.prefixSumComputer.insertValues(t - 1, l), new bn( r, r + s - 1) } onModelLineChanged(e, t, i) { if (null !== e && e <= this._validModelVersionId) return [!1, null, null, null ]; let n = t - 1, o = this.lines[n].getViewLineCount(), r = ro(i, this.lines[n].isVisible()); this.lines[n] = r; let s = this.lines[n].getViewLineCount(), a = !1, l = 0, d = -1, c = 0, h = -1, u = 0, g = -1; return o > s ? (l = 1 === t ? 1 : this.prefixSumComputer.getAccumulatedValue( t - 2) + 1, d = l + s - 1, u = d + 1, g = u + (o - s) - 1, a = !0) : o < s ? (l = 1 === t ? 1 : this.prefixSumComputer.getAccumulatedValue( t - 2) + 1, d = l + o - 1, c = d + 1, h = c + (s - o) - 1, a = !0) : (l = 1 === t ? 1 : this.prefixSumComputer.getAccumulatedValue(t - 2) + 1, d = l + s - 1), this.prefixSumComputer.changeValue(n, s), [a, l <= d ? new fn(l, d) : null, c <= h ? new bn(c, h) : null, u <= g ? new _n( u, g) : null ] } acceptVersionId(e) { this._validModelVersionId = e, 1 !== this.lines.length || this.lines[0] .isVisible() || this.setHiddenAreas([]) } getViewLineCount() { return this.prefixSumComputer.getTotalValue() } _toValidViewLineNumber(e) { if (e < 1) return 1; const t = this.getViewLineCount(); return e > t ? t : 0 | e } getActiveIndentGuide(e, t, i) { e = this._toValidViewLineNumber(e), t = this._toValidViewLineNumber(t), i = this._toValidViewLineNumber(i); const n = this.convertViewPositionToModelPosition(e, this.getViewLineMinColumn( e)), o = this.convertViewPositionToModelPosition(t, this.getViewLineMinColumn( t)), r = this.convertViewPositionToModelPosition(i, this.getViewLineMinColumn( i)), s = this.model.getActiveIndentGuide(n.lineNumber, o.lineNumber, r.lineNumber), a = this.convertModelPositionToViewPosition(s.startLineNumber, 1), l = this.convertModelPositionToViewPosition(s.endLineNumber, this.model .getLineMaxColumn(s.endLineNumber)); return { startLineNumber: a.lineNumber, endLineNumber: l.lineNumber, indent: s.indent } } getViewLinesIndentGuides(e, t) { e = this._toValidViewLineNumber(e), t = this._toValidViewLineNumber(t); const i = this.convertViewPositionToModelPosition(e, this.getViewLineMinColumn( e)), n = this.convertViewPositionToModelPosition(t, this.getViewLineMaxColumn( t)); let o = [], r = [], s = []; const a = i.lineNumber - 1, l = n.lineNumber - 1; let d = null; for (let e = a; e <= l; e++) { const t = this.lines[e]; if (t.isVisible()) { let n = t.getViewLineNumberOfModelPosition(0, e === a ? i.column : 1), o = t.getViewLineNumberOfModelPosition(0, this.model.getLineMaxColumn( e + 1)), l = o - n + 1, c = 0; l > 1 && 1 === t.getViewLineMinColumn(this.model, e + 1, o) && (c = 0 === n ? 1 : 2), r.push(l), s.push(c), null === d && (d = new fe.L( e + 1, 0)) } else null !== d && (o = o.concat(this.model.getLinesIndentGuides(d.lineNumber, e)), d = null) } null !== d && (o = o.concat(this.model.getLinesIndentGuides(d.lineNumber, n.lineNumber)), d = null); const c = t - e + 1; let h = new Array(c), u = 0; for (let e = 0, t = o.length; e < t; e++) { let t, i = o[e], n = Math.min(c - u, r[e]), a = s[e]; t = 2 === a ? 0 : 1 === a ? 1 : n; for (let e = 0; e < n; e++) e === t && (i = 0), h[u++] = i } return h } getViewLineContent(e) { e = this._toValidViewLineNumber(e); let t = this.prefixSumComputer.getIndexOf(e - 1), i = t.index, n = t.remainder; return this.lines[i].getViewLineContent(this.model, i + 1, n) } getViewLineLength(e) { e = this._toValidViewLineNumber(e); let t = this.prefixSumComputer.getIndexOf(e - 1), i = t.index, n = t.remainder; return this.lines[i].getViewLineLength(this.model, i + 1, n) } getViewLineMinColumn(e) { e = this._toValidViewLineNumber(e); let t = this.prefixSumComputer.getIndexOf(e - 1), i = t.index, n = t.remainder; return this.lines[i].getViewLineMinColumn(this.model, i + 1, n) } getViewLineMaxColumn(e) { e = this._toValidViewLineNumber(e); let t = this.prefixSumComputer.getIndexOf(e - 1), i = t.index, n = t.remainder; return this.lines[i].getViewLineMaxColumn(this.model, i + 1, n) } getViewLineData(e) { e = this._toValidViewLineNumber(e); let t = this.prefixSumComputer.getIndexOf(e - 1), i = t.index, n = t.remainder; return this.lines[i].getViewLineData(this.model, i + 1, n) } getViewLinesData(e, t, i) { e = this._toValidViewLineNumber(e), t = this._toValidViewLineNumber(t); let n = this.prefixSumComputer.getIndexOf(e - 1), o = e, r = n.index, s = n.remainder, a = []; for (let n = r, l = this.model.getLineCount(); n < l; n++) { let l = this.lines[n]; if (!l.isVisible()) continue; let d = n === r ? s : 0, c = l.getViewLineCount() - d, h = !1; o + c > t && (h = !0, c = t - o + 1); let u = d + c; if (l.getViewLinesData(this.model, n + 1, d, u, o - e, i, a), o += c, h) break } return a } validateViewPosition(e, t, i) { e = this._toValidViewLineNumber(e); let n = this.prefixSumComputer.getIndexOf(e - 1), o = n.index, r = n.remainder, s = this.lines[o], a = s.getViewLineMinColumn(this.model, o + 1, r), l = s.getViewLineMaxColumn(this.model, o + 1, r); t < a && (t = a), t > l && (t = l); let d = s.getModelColumnOfViewPosition(r, t); return this.model.validatePosition(new fe.L(o + 1, d)).equals(i) ? new fe .L(e, t) : this.convertModelPositionToViewPosition(i.lineNumber, i.column) } validateViewRange(e, t) { const i = this.validateViewPosition(e.startLineNumber, e.startColumn, t.getStartPosition()), n = this.validateViewPosition(e.endLineNumber, e.endColumn, t.getEndPosition()); return new _e.e(i.lineNumber, i.column, n.lineNumber, n.column) } convertViewPositionToModelPosition(e, t) { e = this._toValidViewLineNumber(e); let i = this.prefixSumComputer.getIndexOf(e - 1), n = i.index, o = i.remainder, r = this.lines[n].getModelColumnOfViewPosition(o, t); return this.model.validatePosition(new fe.L(n + 1, r)) } convertViewRangeToModelRange(e) { const t = this.convertViewPositionToModelPosition(e.startLineNumber, e .startColumn), i = this.convertViewPositionToModelPosition(e.endLineNumber, e.endColumn); return new _e.e(t.lineNumber, t.column, i.lineNumber, i.column) } convertModelPositionToViewPosition(e, t, i = 2) { const n = this.model.validatePosition(new fe.L(e, t)), o = n.lineNumber, r = n.column; let s = o - 1, a = !1; for (; s > 0 && !this.lines[s].isVisible();) s--, a = !0; if (0 === s && !this.lines[s].isVisible()) return new fe.L(1, 1); const l = 1 + (0 === s ? 0 : this.prefixSumComputer.getAccumulatedValue( s - 1)); let d; return d = a ? this.lines[s].getViewPositionOfModelPosition(l, this.model .getLineMaxColumn(s + 1), i) : this.lines[o - 1].getViewPositionOfModelPosition( l, r, i), d } convertModelRangeToViewRange(e, t = 0) { if (e.isEmpty()) { const i = this.convertModelPositionToViewPosition(e.startLineNumber, e.startColumn, t); return _e.e.fromPositions(i) } { const t = this.convertModelPositionToViewPosition(e.startLineNumber, e.startColumn, 1), i = this.convertModelPositionToViewPosition(e.endLineNumber, e.endColumn, 0); return new _e.e(t.lineNumber, t.column, i.lineNumber, i.column) } } _getViewLineNumberForModelPosition(e, t) { let i = e - 1; if (this.lines[i].isVisible()) { const e = 1 + (0 === i ? 0 : this.prefixSumComputer.getAccumulatedValue( i - 1)); return this.lines[i].getViewLineNumberOfModelPosition(e, t) } for (; i > 0 && !this.lines[i].isVisible();) i--; if (0 === i && !this.lines[i].isVisible()) return 1; const n = 1 + (0 === i ? 0 : this.prefixSumComputer.getAccumulatedValue( i - 1)); return this.lines[i].getViewLineNumberOfModelPosition(n, this.model.getLineMaxColumn( i + 1)) } getAllOverviewRulerDecorations(e, t, i) { const n = this.model.getOverviewRulerDecorations(e, t), o = new lo; for (const e of n) { const t = e.options.overviewRuler, n = t ? t.position : 0; if (0 === n) continue; const r = t.getColor(i), s = this._getViewLineNumberForModelPosition(e.range.startLineNumber, e.range.startColumn), a = this._getViewLineNumberForModelPosition(e.range.endLineNumber, e .range.endColumn); o.accept(r, s, a, n) } return o.result } getDecorationsInRange(e, t, i) { const n = this.convertViewPositionToModelPosition(e.startLineNumber, e .startColumn), o = this.convertViewPositionToModelPosition(e.endLineNumber, e.endColumn); if (o.lineNumber - n.lineNumber <= e.endLineNumber - e.startLineNumber) return this.model.getDecorationsInRange(new _e.e(n.lineNumber, 1, o.lineNumber, o.column), t, i); let r = []; const s = n.lineNumber - 1, a = o.lineNumber - 1; let l = null; for (let e = s; e <= a; e++) if (this.lines[e].isVisible()) null === l && (l = new fe.L(e + 1, e === s ? n.column : 1)); else if (null !== l) { const n = this.model.getLineMaxColumn(e); r = r.concat(this.model.getDecorationsInRange(new _e.e(l.lineNumber, l.column, e, n), t, i)), l = null } null !== l && (r = r.concat(this.model.getDecorationsInRange(new _e.e( l.lineNumber, l.column, o.lineNumber, o.column), t, i)), l = null), r.sort(((e, t) => { const i = _e.e.compareRangesUsingStarts(e.range, t.range); return 0 === i ? e.id < t.id ? -1 : e.id > t.id ? 1 : 0 : i })); let d = [], c = 0, h = null; for (const e of r) { const t = e.id; h !== t && (h = t, d[c++] = e) } return d } getInjectedTextAt(e) { const t = this._toValidViewLineNumber(e.lineNumber), i = this.prefixSumComputer.getIndexOf(t - 1), n = i.index, o = i.remainder; return this.lines[n].getInjectedTextAt(o, e.column) } normalizePosition(e, t) { const i = this._toValidViewLineNumber(e.lineNumber), n = this.prefixSumComputer.getIndexOf(i - 1), o = n.index, r = n.remainder; return this.lines[o].normalizePosition(this.model, o + 1, r, e, t) } getLineIndentColumn(e) { const t = this._toValidViewLineNumber(e), i = this.prefixSumComputer.getIndexOf(t - 1), n = i.index; return 0 === i.remainder ? this.model.getLineIndentColumn(n + 1) : 0 } } class Jn { constructor() {} isVisible() { return !0 } setVisible(e) { return e ? this : eo.INSTANCE } getLineBreakData() { return null } getViewLineCount() { return 1 } getViewLineContent(e, t, i) { return e.getLineContent(t) } getViewLineLength(e, t, i) { return e.getLineLength(t) } getViewLineMinColumn(e, t, i) { return e.getLineMinColumn(t) } getViewLineMaxColumn(e, t, i) { return e.getLineMaxColumn(t) } getViewLineData(e, t, i) { let n = e.getLineTokens(t), o = n.getLineContent(); return new ni.IP(o, !1, 1, o.length + 1, 0, n.inflate(), null) } getViewLinesData(e, t, i, n, o, r, s) { r[o] ? s[o] = this.getViewLineData(e, t, 0) : s[o] = null } getModelColumnOfViewPosition(e, t) { return t } getViewPositionOfModelPosition(e, t) { return new fe.L(e, t) } getViewLineNumberOfModelPosition(e, t) { return e } normalizePosition(e, t, i, n, o) { return n } getInjectedTextAt(e, t) { return null } } Jn.INSTANCE = new Jn; class eo { constructor() {} isVisible() { return !1 } setVisible(e) { return e ? Jn.INSTANCE : this } getLineBreakData() { return null } getViewLineCount() { return 0 } getViewLineContent(e, t, i) { throw new Error("Not supported") } getViewLineLength(e, t, i) { throw new Error("Not supported") } getViewLineMinColumn(e, t, i) { throw new Error("Not supported") } getViewLineMaxColumn(e, t, i) { throw new Error("Not supported") } getViewLineData(e, t, i) { throw new Error("Not supported") } getViewLinesData(e, t, i, n, o, r, s) { throw new Error("Not supported") } getModelColumnOfViewPosition(e, t) { throw new Error("Not supported") } getViewPositionOfModelPosition(e, t) { throw new Error("Not supported") } getViewLineNumberOfModelPosition(e, t) { throw new Error("Not supported") } normalizePosition(e, t, i, n, o) { throw new Error("Not supported") } getInjectedTextAt(e, t) { throw new Error("Not supported") } } eo.INSTANCE = new eo; class to { constructor(e, t) { this._lineBreakData = e, this._isVisible = t } isVisible() { return this._isVisible } setVisible(e) { return this._isVisible = e, this } getLineBreakData() { return this._lineBreakData } getViewLineCount() { return this._isVisible ? this._lineBreakData.breakOffsets.length : 0 } getInputStartOffsetOfOutputLineIndex(e) { return this._lineBreakData.getInputOffsetOfOutputPosition(e, 0) } getInputEndOffsetOfOutputLineIndex(e, t, i) { return i + 1 === this._lineBreakData.breakOffsets.length ? e.getLineMaxColumn( t) - 1 : this._lineBreakData.getInputOffsetOfOutputPosition(i + 1, 0) } getViewLineContent(e, t, i) { if (!this._isVisible) throw new Error("Not supported"); const n = i > 0 ? this._lineBreakData.breakOffsets[i - 1] : 0, o = i < this._lineBreakData.breakOffsets.length ? this._lineBreakData .breakOffsets[i] : this._lineBreakData.breakOffsets[this._lineBreakData .breakOffsets.length - 1]; let r; if (null !== this._lineBreakData.injectionOffsets) { const i = this._lineBreakData.injectionOffsets.map(((e, t) => new sn.gk( 0, 0, e + 1, this._lineBreakData.injectionOptions[t], 0))); r = sn.gk.applyInjectedText(e.getLineContent(t), i).substring(n, o) } else r = e.getValueInRange({ startLineNumber: t, startColumn: n + 1, endLineNumber: t, endColumn: o + 1 }); return i > 0 && (r = no(this._lineBreakData.wrappedTextIndentLength) + r), r } getViewLineLength(e, t, i) { if (!this._isVisible) throw new Error("Not supported"); const n = i > 0 ? this._lineBreakData.breakOffsets[i - 1] : 0; let o = (i < this._lineBreakData.breakOffsets.length ? this._lineBreakData .breakOffsets[i] : this._lineBreakData.breakOffsets[this._lineBreakData .breakOffsets.length - 1]) - n; return i > 0 && (o = this._lineBreakData.wrappedTextIndentLength + o), o } getViewLineMinColumn(e, t, i) { if (!this._isVisible) throw new Error("Not supported"); return this._getViewLineMinColumn(i) } _getViewLineMinColumn(e) { return e > 0 ? this._lineBreakData.wrappedTextIndentLength + 1 : 1 } getViewLineMaxColumn(e, t, i) { if (!this._isVisible) throw new Error("Not supported"); return this.getViewLineLength(e, t, i) + 1 } getViewLineData(e, t, i) { if (!this._isVisible) throw new Error("Not supported"); const n = this._lineBreakData, o = i > 0 ? n.wrappedTextIndentLength : 0, r = n.injectionOffsets, s = n.injectionOptions; let a, l, d; if (r) { const c = e.getLineTokens(t).withInserted(r.map(((e, t) => ({ offset: e, text: s[t].content, tokenMetadata: qn.A.defaultTokenMetadata })))), h = i > 0 ? n.breakOffsets[i - 1] : 0, u = n.breakOffsets[i]; a = c.getLineContent().substring(h, u), l = c.sliceAndInflate(h, u, o), d = new Array; let g = 0; for (let e = 0; e < r.length; e++) { const t = s[e].content.length, o = r[e] + g, a = r[e] + g + t; if (o > u) break; if (h < a) { const t = s[e]; if (t.inlineClassName) { const e = i > 0 ? n.wrappedTextIndentLength : 0, r = e + Math.max(o - h, 0), s = e + Math.min(a - h, u); r !== s && d.push(new ni.Wx(r, s, t.inlineClassName, t.inlineClassNameAffectsLetterSpacing)) } } g += t } } else { const n = this.getInputStartOffsetOfOutputLineIndex(i), r = this.getInputEndOffsetOfOutputLineIndex(e, t, i), s = e.getLineTokens(t); a = e.getValueInRange({ startLineNumber: t, startColumn: n + 1, endLineNumber: t, endColumn: r + 1 }), l = s.sliceAndInflate(n, r, o), d = null } i > 0 && (a = no(n.wrappedTextIndentLength) + a); const c = i > 0 ? n.wrappedTextIndentLength + 1 : 1, h = a.length + 1, u = i + 1 < this.getViewLineCount(), g = 0 === i ? 0 : n.breakOffsetsVisibleColumn[i - 1]; return new ni.IP(a, u, c, h, g, l, d) } getViewLinesData(e, t, i, n, o, r, s) { if (!this._isVisible) throw new Error("Not supported"); for (let a = i; a < n; a++) { let n = o + a - i; r[n] ? s[n] = this.getViewLineData(e, t, a) : s[n] = null } } getModelColumnOfViewPosition(e, t) { if (!this._isVisible) throw new Error("Not supported"); let i = t - 1; return e > 0 && (i < this._lineBreakData.wrappedTextIndentLength ? i = 0 : i -= this._lineBreakData.wrappedTextIndentLength), this._lineBreakData .getInputOffsetOfOutputPosition(e, i) + 1 } getViewPositionOfModelPosition(e, t, i = 2) { if (!this._isVisible) throw new Error("Not supported"); let n = this._lineBreakData.getOutputPositionOfInputOffset(t - 1, i), o = n.outputLineIndex, r = n.outputOffset + 1; return o > 0 && (r += this._lineBreakData.wrappedTextIndentLength), new fe.L(e + o, r) } getViewLineNumberOfModelPosition(e, t) { if (!this._isVisible) throw new Error("Not supported"); return e + this._lineBreakData.getOutputPositionOfInputOffset(t - 1).outputLineIndex } normalizePosition(e, t, i, n, o) { if (null !== this._lineBreakData.injectionOffsets) { const e = n.lineNumber - i, t = this._lineBreakData.outputPositionToOffsetInUnwrappedLine(i, n.column - 1), r = this._lineBreakData.normalizeOffsetAroundInjections(t, o); if (r !== t) return this._lineBreakData.getOutputPositionOfOffsetInUnwrappedLine( r, o).toPosition(e, this._lineBreakData.wrappedTextIndentLength) } if (0 === o) { if (i > 0 && n.column === this._getViewLineMinColumn(i)) return new fe .L(n.lineNumber - 1, this.getViewLineMaxColumn(e, t, i - 1)) } else if (1 === o && i < this.getViewLineCount() - 1 && n.column === this.getViewLineMaxColumn(e, t, i)) return new fe.L(n.lineNumber + 1, this._getViewLineMinColumn(i + 1)); return n } getInjectedTextAt(e, t) { return this._lineBreakData.getInjectedText(e, t - 1) } } let io = [""]; function no(e) { if (e >= io.length) for (let t = 1; t <= e; t++) io[t] = oo(t); return io[e] } function oo(e) { return new Array(e + 1).join(" ") } function ro(e, t) { return null === e ? t ? Jn.INSTANCE : eo.INSTANCE : new to(e, t) } class so { constructor(e) { this._lines = e } _validPosition(e) { return this._lines.model.validatePosition(e) } _validRange(e) { return this._lines.model.validateRange(e) } convertViewPositionToModelPosition(e) { return this._validPosition(e) } convertViewRangeToModelRange(e) { return this._validRange(e) } validateViewPosition(e, t) { return this._validPosition(t) } validateViewRange(e, t) { return this._validRange(t) } convertModelPositionToViewPosition(e) { return this._validPosition(e) } convertModelRangeToViewRange(e) { return this._validRange(e) } modelPositionIsVisible(e) { const t = this._lines.model.getLineCount(); return !(e.lineNumber < 1 || e.lineNumber > t) } getModelLineViewLineCount(e) { return 1 } } class ao { constructor(e) { this.model = e } dispose() {} createCoordinatesConverter() { return new so(this) } getHiddenAreas() { return [] } setHiddenAreas(e) { return !1 } setTabSize(e) { return !1 } setWrappingSettings(e, t, i, n) { return !1 } createLineBreaksComputer() { let e = []; return { addRequest: (t, i, n) => { e.push(null) }, finalize: () => e } } onModelFlushed() {} onModelLinesDeleted(e, t, i) { return new _n(t, i) } onModelLinesInserted(e, t, i, n) { return new bn(t, i) } onModelLineChanged(e, t, i) { return [!1, new fn(t, t), null, null] } acceptVersionId(e) {} getViewLineCount() { return this.model.getLineCount() } getActiveIndentGuide(e, t, i) { return { startLineNumber: e, endLineNumber: e, indent: 0 } } getViewLinesIndentGuides(e, t) { const i = t - e + 1; let n = new Array(i); for (let e = 0; e < i; e++) n[e] = 0; return n } getViewLineContent(e) { return this.model.getLineContent(e) } getViewLineLength(e) { return this.model.getLineLength(e) } getViewLineMinColumn(e) { return this.model.getLineMinColumn(e) } getViewLineMaxColumn(e) { return this.model.getLineMaxColumn(e) } getViewLineData(e) { let t = this.model.getLineTokens(e), i = t.getLineContent(); return new ni.IP(i, !1, 1, i.length + 1, 0, t.inflate(), null) } getViewLinesData(e, t, i) { const n = this.model.getLineCount(); e = Math.min(Math.max(1, e), n), t = Math.min(Math.max(1, t), n); let o = []; for (let n = e; n <= t; n++) { let t = n - e; i[t] || (o[t] = null), o[t] = this.getViewLineData(n) } return o } getAllOverviewRulerDecorations(e, t, i) { const n = this.model.getOverviewRulerDecorations(e, t), o = new lo; for (const e of n) { const t = e.options.overviewRuler, n = t ? t.position : 0; if (0 === n) continue; const r = t.getColor(i), s = e.range.startLineNumber, a = e.range.endLineNumber; o.accept(r, s, a, n) } return o.result } getDecorationsInRange(e, t, i) { return this.model.getDecorationsInRange(e, t, i) } normalizePosition(e, t) { return this.model.normalizePosition(e, t) } getLineIndentColumn(e) { return this.model.getLineIndentColumn(e) } getInjectedTextAt(e) { return null } } class lo { constructor() { this.result = Object.create(null) } accept(e, t, i, n) { let o = this.result[e]; if (o) { const e = o[o.length - 3], r = o[o.length - 1]; if (e === n && r + 1 >= t) return void(i > r && (o[o.length - 1] = i)); o.push(n, t, i) } else this.result[e] = [n, t, i] } } class co { constructor(e, t, i, n, o) { this.editorId = e, this.model = t, this.configuration = i, this._linesCollection = n, this._coordinatesConverter = o, 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(e) { const t = e.id; let i = this._decorationsCache[t]; if (!i) { const n = e.range, o = e.options; let r; if (o.isWholeLine) { const e = this._coordinatesConverter.convertModelPositionToViewPosition( new fe.L(n.startLineNumber, 1), 0), t = this._coordinatesConverter.convertModelPositionToViewPosition( new fe.L(n.endLineNumber, this.model.getLineMaxColumn(n.endLineNumber)), 1); r = new _e.e(e.lineNumber, e.column, t.lineNumber, t.column) } else r = this._coordinatesConverter.convertModelRangeToViewRange(n, 1); i = new ni.$l(r, o), this._decorationsCache[t] = i } return i } getDecorationsViewportData(e) { let t = null !== this._cachedModelDecorationsResolver; return t = t && e.equalsRange(this._cachedModelDecorationsResolverViewRange), t || (this._cachedModelDecorationsResolver = this._getDecorationsViewportData( e), this._cachedModelDecorationsResolverViewRange = e), this._cachedModelDecorationsResolver } _getDecorationsViewportData(e) { const t = this._linesCollection.getDecorationsInRange(e, this.editorId, ( 0, re.$J)(this.configuration.options)), i = e.startLineNumber, n = e.endLineNumber; let o = [], r = 0, s = []; for (let e = i; e <= n; e++) s[e - i] = []; for (let e = 0, a = t.length; e < a; e++) { let a = t[e], l = a.options, d = this._getOrCreateViewModelDecoration(a), c = d.range; if (o[r++] = d, l.inlineClassName) { let e = new ni.$t(c, l.inlineClassName, l.inlineClassNameAffectsLetterSpacing ? 3 : 0), t = Math.max(i, c.startLineNumber), o = Math.min(n, c.endLineNumber); for (let n = t; n <= o; n++) s[n - i].push(e) } if (l.beforeContentClassName && i <= c.startLineNumber && c.startLineNumber <= n) { let e = new ni.$t(new _e.e(c.startLineNumber, c.startColumn, c.startLineNumber, c.startColumn), l.beforeContentClassName, 1); s[c.startLineNumber - i].push(e) } if (l.afterContentClassName && i <= c.endLineNumber && c.endLineNumber <= n) { let e = new ni.$t(new _e.e(c.endLineNumber, c.endColumn, c.endLineNumber, c.endColumn), l.afterContentClassName, 2); s[c.endLineNumber - i].push(e) } } return { decorations: o, inlineDecorations: s } } } class ho extends L.JT { constructor(e, t, i, n, o, r) { if (super(), this._editorId = e, this._configuration = t, this.model = i, this._eventDispatcher = new kn, this.onEvent = this._eventDispatcher .onEvent, this.cursorConfig = new be.LM(this.model.getLanguageIdentifier(), this.model.getOptions(), this._configuration), this._tokenizeViewportSoon = this._register(new P.pY((() => this.tokenizeViewport()), 50)), this._updateConfigurationViewLineCount = this._register(new P.pY((() => this._updateConfigurationViewLineCountNow()), 0)), this._hasFocus = !1, this._viewportStartLine = -1, this._viewportStartLineTrackedRange = null, this._viewportStartLineDelta = 0, this.model.isTooLargeForTokenization() ) this._lines = new ao(this.model); else { const e = this._configuration.options, t = e.get(42), i = e.get(124), r = e.get(131), s = e.get(123); this._lines = new Xn(this._editorId, this.model, n, o, t, this.model .getOptions().tabSize, i, r.wrappingColumn, s) } this.coordinatesConverter = this._lines.createCoordinatesConverter(), this._cursor = this._register(new On(i, this, this.coordinatesConverter, this.cursorConfig)), this.viewLayout = this._register(new $n(this._configuration, this.getLineCount(), r)), this._register(this.viewLayout.onDidScroll( (e => { e.scrollTopChanged && this._tokenizeViewportSoon.schedule(), this._eventDispatcher.emitSingleViewEvent(new wn(e)), this._eventDispatcher .emitOutgoingEvent(new En(e.oldScrollWidth, e.oldScrollLeft, e.oldScrollHeight, e.oldScrollTop, e.scrollWidth, e.scrollLeft, e.scrollHeight, e.scrollTop)) }))), this._register(this.viewLayout.onDidContentSizeChange((e => { this._eventDispatcher.emitOutgoingEvent(e) }))), this._decorations = new co(this._editorId, this.model, this._configuration, this._lines, this.coordinatesConverter), this._registerModelEvents(), this._register(this._configuration.onDidChangeFast((e => { try { const t = this._eventDispatcher.beginEmitViewEvents(); this._onConfigurationChanged(t, e) } finally { this._eventDispatcher.endEmitViewEvents() } }))), this._register(ii.getInstance().onDidChange((() => { this._eventDispatcher.emitSingleViewEvent(new Sn) }))), this._updateConfigurationViewLineCountNow() } dispose() { super.dispose(), this._decorations.dispose(), this._lines.dispose(), this.invalidateMinimapColorCache(), this._viewportStartLineTrackedRange = this.model._setTrackedRange(this._viewportStartLineTrackedRange, null, 1), this._eventDispatcher.dispose() } createLineBreaksComputer() { return this._lines.createLineBreaksComputer() } addViewEventHandler(e) { this._eventDispatcher.addViewEventHandler(e) } removeViewEventHandler(e) { this._eventDispatcher.removeViewEventHandler(e) } _updateConfigurationViewLineCountNow() { this._configuration.setViewLineCount(this._lines.getViewLineCount()) } tokenizeViewport() { const e = this.viewLayout.getLinesViewportData(), t = this.coordinatesConverter.convertViewPositionToModelPosition(new fe .L(e.startLineNumber, 1)), i = this.coordinatesConverter.convertViewPositionToModelPosition(new fe .L(e.endLineNumber, 1)); this.model.tokenizeViewport(t.lineNumber, i.lineNumber) } setHasFocus(e) { this._hasFocus = e, this._cursor.setHasFocus(e), this._eventDispatcher .emitSingleViewEvent(new gn(e)), this._eventDispatcher.emitOutgoingEvent( new Dn(!e, e)) } onCompositionStart() { this._eventDispatcher.emitSingleViewEvent(new an) } onCompositionEnd() { this._eventDispatcher.emitSingleViewEvent(new ln) } onDidColorThemeChange() { this._eventDispatcher.emitSingleViewEvent(new Cn) } _onConfigurationChanged(e, t) { let i = null; if (-1 !== this._viewportStartLine) { let e = new fe.L(this._viewportStartLine, this.getLineMinColumn(this ._viewportStartLine)); i = this.coordinatesConverter.convertViewPositionToModelPosition(e) } let n = !1; const o = this._configuration.options, r = o.get(42), s = o.get(124), a = o.get(131), l = o.get(123); if (this._lines.setWrappingSettings(r, s, a.wrappingColumn, l) && (e.emitViewEvent( new un), e.emitViewEvent(new mn), e.emitViewEvent(new hn(null)), this._cursor.onLineMappingChanged(e), this._decorations.onLineMappingChanged(), this.viewLayout.onFlushed(this.getLineCount()), 0 !== this.viewLayout .getCurrentScrollTop() && (n = !0), this._updateConfigurationViewLineCount .schedule()), t.hasChanged(80) && (this._decorations.reset(), e.emitViewEvent( new hn(null))), e.emitViewEvent(new dn(t)), this.viewLayout.onConfigurationChanged( t), n && i) { const e = this.coordinatesConverter.convertModelPositionToViewPosition( i), t = this.viewLayout.getVerticalOffsetForLineNumber(e.lineNumber); this.viewLayout.setScrollPosition({ scrollTop: t + this._viewportStartLineDelta }, 1) } be.LM.shouldRecreate(t) && (this.cursorConfig = new be.LM(this.model.getLanguageIdentifier(), this.model.getOptions(), this._configuration), this._cursor.updateConfiguration( this.cursorConfig)) } _registerModelEvents() { this._register(this.model.onDidChangeContentOrInjectedText((e => { try { const t = this._eventDispatcher.beginEmitViewEvents(); let i = !1, n = !1; const o = e.changes, r = e instanceof sn.dQ ? e.versionId : null, s = this._lines.createLineBreaksComputer(); for (const e of o) switch (e.changeType) { case 4: for (let t = 0; t < e.detail.length; t++) { const i = e.detail[t]; let n = e.injectedTexts[t]; n && (n = n.filter((e => !e.ownerId || e.ownerId === this._editorId))), s.addRequest(i, n, null) } break; case 2: { let t = null; e.injectedText && (t = e.injectedText.filter((e => !e.ownerId || e.ownerId === this._editorId))), s.addRequest(e.detail, t, null); break } } const a = s.finalize(); let l = 0; for (const e of o) switch (e.changeType) { case 1: this._lines.onModelFlushed(), t.emitViewEvent(new un), this._decorations .reset(), this.viewLayout.onFlushed(this.getLineCount()), i = ! 0; break; case 3: { const n = this._lines.onModelLinesDeleted(r, e.fromLineNumber, e.toLineNumber); null !== n && (t.emitViewEvent(n), this.viewLayout.onLinesDeleted( n.fromLineNumber, n.toLineNumber)), i = !0; break } case 4: { const n = a.slice(l, l + e.detail.length); l += e.detail.length; const o = this._lines.onModelLinesInserted(r, e.fromLineNumber, e.toLineNumber, n); null !== o && (t.emitViewEvent(o), this.viewLayout.onLinesInserted( o.fromLineNumber, o.toLineNumber)), i = !0; break } case 2: { const i = a[l]; l++; const [o, s, d, c] = this._lines.onModelLineChanged(r, e.lineNumber, i); n = o, s && t.emitViewEvent(s), d && (t.emitViewEvent(d), this.viewLayout.onLinesInserted(d.fromLineNumber, d.toLineNumber) ), c && (t.emitViewEvent(c), this.viewLayout.onLinesDeleted( c.fromLineNumber, c.toLineNumber)); break } } null !== r && this._lines.acceptVersionId(r), this.viewLayout.onHeightMaybeChanged(), ! i && n && (t.emitViewEvent(new mn), t.emitViewEvent(new hn( null)), this._cursor.onLineMappingChanged(t), this._decorations .onLineMappingChanged()) } finally { this._eventDispatcher.endEmitViewEvents() } if (this._viewportStartLine = -1, this._configuration.setMaxLineNumber( this.model.getLineCount()), this._updateConfigurationViewLineCountNow(), ! this._hasFocus && this.model.getAttachedEditorCount() >= 2 && this._viewportStartLineTrackedRange) { const e = this.model._getTrackedRange(this._viewportStartLineTrackedRange); if (e) { const t = this.coordinatesConverter.convertModelPositionToViewPosition( e.getStartPosition()), i = this.viewLayout.getVerticalOffsetForLineNumber(t.lineNumber); this.viewLayout.setScrollPosition({ scrollTop: i + this._viewportStartLineDelta }, 1) } } try { const t = this._eventDispatcher.beginEmitViewEvents(); this._cursor.onModelContentChanged(t, e) } finally { this._eventDispatcher.endEmitViewEvents() } }))), this._register(this.model.onDidChangeTokens((e => { let t = []; for (let i = 0, n = e.ranges.length; i < n; i++) { const n = e.ranges[i], o = this.coordinatesConverter.convertModelPositionToViewPosition( new fe.L(n.fromLineNumber, 1)).lineNumber, r = this.coordinatesConverter.convertModelPositionToViewPosition( new fe.L(n.toLineNumber, this.model.getLineMaxColumn(n.toLineNumber)) ).lineNumber; t[i] = { fromLineNumber: o, toLineNumber: r } } this._eventDispatcher.emitSingleViewEvent(new yn(t)), e.tokenizationSupportChanged && this._tokenizeViewportSoon.schedule() }))), this._register(this.model.onDidChangeLanguageConfiguration((e => { this._eventDispatcher.emitSingleViewEvent(new pn), this.cursorConfig = new be.LM(this.model.getLanguageIdentifier(), this.model.getOptions(), this._configuration), this._cursor.updateConfiguration(this.cursorConfig) }))), this._register(this.model.onDidChangeLanguage((e => { this.cursorConfig = new be.LM(this.model.getLanguageIdentifier(), this.model.getOptions(), this._configuration), this._cursor.updateConfiguration( this.cursorConfig) }))), this._register(this.model.onDidChangeOptions((e => { if (this._lines.setTabSize(this.model.getOptions().tabSize)) { try { const e = this._eventDispatcher.beginEmitViewEvents(); e.emitViewEvent(new un), e.emitViewEvent(new mn), e.emitViewEvent( new hn(null)), this._cursor.onLineMappingChanged(e), this._decorations .onLineMappingChanged(), this.viewLayout.onFlushed(this.getLineCount()) } finally { this._eventDispatcher.endEmitViewEvents() } this._updateConfigurationViewLineCount.schedule() } this.cursorConfig = new be.LM(this.model.getLanguageIdentifier(), this.model.getOptions(), this._configuration), this._cursor.updateConfiguration( this.cursorConfig) }))), this._register(this.model.onDidChangeDecorations((e => { this._decorations.onModelDecorationsChanged(), this._eventDispatcher .emitSingleViewEvent(new hn(e)) }))) } setHiddenAreas(e) { try { const t = this._eventDispatcher.beginEmitViewEvents(); this._lines.setHiddenAreas(e) && (t.emitViewEvent(new un), t.emitViewEvent( new mn), t.emitViewEvent(new hn(null)), this._cursor.onLineMappingChanged( t), this._decorations.onLineMappingChanged(), this.viewLayout.onFlushed( this.getLineCount()), this.viewLayout.onHeightMaybeChanged()) } finally { this._eventDispatcher.endEmitViewEvents() } this._updateConfigurationViewLineCount.schedule() } getVisibleRangesPlusViewportAboveBelow() { const e = this._configuration.options.get(130), t = this._configuration.options.get(58), i = Math.max(20, Math.round(e.height / t)), n = this.viewLayout.getLinesViewportData(), o = Math.max(1, n.completelyVisibleStartLineNumber - i), r = Math.min(this.getLineCount(), n.completelyVisibleEndLineNumber + i); return this._toModelVisibleRanges(new _e.e(o, this.getLineMinColumn(o), r, this.getLineMaxColumn(r))) } getVisibleRanges() { const e = this.getCompletelyVisibleViewRange(); return this._toModelVisibleRanges(e) } _toModelVisibleRanges(e) { const t = this.coordinatesConverter.convertViewRangeToModelRange(e), i = this._lines.getHiddenAreas(); if (0 === i.length) return [t]; let n = [], o = 0, r = t.startLineNumber, s = t.startColumn, a = t.endLineNumber, l = t.endColumn; for (let e = 0, t = i.length; e < t; e++) { const t = i[e].startLineNumber, l = i[e].endLineNumber; l < r || t > a || (r < t && (n[o++] = new _e.e(r, s, t - 1, this.model .getLineMaxColumn(t - 1))), r = l + 1, s = 1) } return (r < a || r === a && s < l) && (n[o++] = new _e.e(r, s, a, l)), n } getCompletelyVisibleViewRange() { const e = this.viewLayout.getLinesViewportData(), t = e.completelyVisibleStartLineNumber, i = e.completelyVisibleEndLineNumber; return new _e.e(t, this.getLineMinColumn(t), i, this.getLineMaxColumn( i)) } getCompletelyVisibleViewRangeAtScrollTop(e) { const t = this.viewLayout.getLinesViewportDataAtScrollTop(e), i = t.completelyVisibleStartLineNumber, n = t.completelyVisibleEndLineNumber; return new _e.e(i, this.getLineMinColumn(i), n, this.getLineMaxColumn( n)) } saveState() { const e = this.viewLayout.saveState(), t = e.scrollTop, i = this.viewLayout.getLineNumberAtVerticalOffset(t), n = this.coordinatesConverter.convertViewPositionToModelPosition(new fe .L(i, this.getLineMinColumn(i))), o = this.viewLayout.getVerticalOffsetForLineNumber(i) - t; return { scrollLeft: e.scrollLeft, firstPosition: n, firstPositionDeltaTop: o } } reduceRestoreState(e) { if (void 0 === e.firstPosition) return this._reduceRestoreStateCompatibility( e); const t = this.model.validatePosition(e.firstPosition), i = this.coordinatesConverter.convertModelPositionToViewPosition(t), n = this.viewLayout.getVerticalOffsetForLineNumber(i.lineNumber) - e .firstPositionDeltaTop; return { scrollLeft: e.scrollLeft, scrollTop: n } } _reduceRestoreStateCompatibility(e) { return { scrollLeft: e.scrollLeft, scrollTop: e.scrollTopWithoutViewZones } } getTabSize() { return this.model.getOptions().tabSize } getTextModelOptions() { return this.model.getOptions() } getLineCount() { return this._lines.getViewLineCount() } setViewport(e, t, i) { this._viewportStartLine = e; let n = this.coordinatesConverter.convertViewPositionToModelPosition( new fe.L(e, this.getLineMinColumn(e))); this._viewportStartLineTrackedRange = this.model._setTrackedRange( this._viewportStartLineTrackedRange, new _e.e(n.lineNumber, n.column, n.lineNumber, n.column), 1); const o = this.viewLayout.getVerticalOffsetForLineNumber(e), r = this.viewLayout.getCurrentScrollTop(); this._viewportStartLineDelta = r - o } getActiveIndentGuide(e, t, i) { return this._lines.getActiveIndentGuide(e, t, i) } getLinesIndentGuides(e, t) { return this._lines.getViewLinesIndentGuides(e, t) } getLineContent(e) { return this._lines.getViewLineContent(e) } getLineLength(e) { return this._lines.getViewLineLength(e) } getLineMinColumn(e) { return this._lines.getViewLineMinColumn(e) } getLineMaxColumn(e) { return this._lines.getViewLineMaxColumn(e) } getLineFirstNonWhitespaceColumn(e) { const t = Ue.LC(this.getLineContent(e)); return -1 === t ? 0 : t + 1 } getLineLastNonWhitespaceColumn(e) { const t = Ue.ow(this.getLineContent(e)); return -1 === t ? 0 : t + 2 } getDecorationsInViewport(e) { return this._decorations.getDecorationsViewportData(e).decorations } getInjectedTextAt(e) { return this._lines.getInjectedTextAt(e) } getViewLineRenderingData(e, t) { let i = this.model.mightContainRTL(), n = this.model.mightContainNonBasicASCII(), o = this.getTabSize(), r = this._lines.getViewLineData(t), s = this._decorations.getDecorationsViewportData(e).inlineDecorations[ t - e.startLineNumber]; return r.inlineDecorations && (s = [...s, ...r.inlineDecorations.map( (e => e.toInlineDecoration(t)))]), new ni.wA(r.minColumn, r.maxColumn, r.content, r.continuesWithWrappedLine, i, n, r.tokens, s, o, r.startVisibleColumn ) } getViewLineData(e) { return this._lines.getViewLineData(e) } getMinimapLinesRenderingData(e, t, i) { let n = this._lines.getViewLinesData(e, t, i); return new ni.ud(this.getTabSize(), n) } getAllOverviewRulerDecorations(e) { return this._lines.getAllOverviewRulerDecorations(this._editorId, (0, re.$J)(this._configuration.options), e) } invalidateOverviewRulerColorCache() { const e = this.model.getOverviewRulerDecorations(); for (const t of e) { const e = t.options.overviewRuler; e && e.invalidateCachedColor() } } invalidateMinimapColorCache() { const e = this.model.getAllDecorations(); for (const t of e) { const e = t.options.minimap; e && e.invalidateCachedColor() } } getValueInRange(e, t) { const i = this.coordinatesConverter.convertViewRangeToModelRange(e); return this.model.getValueInRange(i, t) } getModelLineMaxColumn(e) { return this.model.getLineMaxColumn(e) } validateModelPosition(e) { return this.model.validatePosition(e) } validateModelRange(e) { return this.model.validateRange(e) } deduceModelPositionRelativeToViewPosition(e, t, i) { const n = this.coordinatesConverter.convertViewPositionToModelPosition( e); 2 === this.model.getEOL().length && (t < 0 ? t -= i : t += i); const o = this.model.getOffsetAt(n) + t; return this.model.getPositionAt(o) } getEOL() { return this.model.getEOL() } getPlainTextToCopy(e, t, i) { const n = i ? "\r\n" : this.model.getEOL(); (e = e.slice(0)).sort(_e.e.compareRangesUsingStarts); let o = !1, r = !1; for (const t of e) t.isEmpty() ? o = !0 : r = !0; if (!r) { if (!t) return ""; const i = e.map((e => e.startLineNumber)); let o = ""; for (let e = 0; e < i.length; e++) e > 0 && i[e - 1] === i[e] || (o += this.model.getLineContent(i[e]) + n); return o } if (o && t) { let t = [], n = 0; for (const o of e) { const e = o.startLineNumber; o.isEmpty() ? e !== n && t.push(this.model.getLineContent(e)) : t.push( this.model.getValueInRange(o, i ? 2 : 0)), n = e } return 1 === t.length ? t[0] : t } let s = []; for (const t of e) t.isEmpty() || s.push(this.model.getValueInRange(t, i ? 2 : 0)); return 1 === s.length ? s[0] : s } getRichTextToCopy(e, t) { const i = this.model.getLanguageIdentifier(); if (1 === i.id) return null; if (1 !== e.length) return null; let n = e[0]; if (n.isEmpty()) { if (!t) return null; const e = n.startLineNumber; n = new _e.e(e, this.model.getLineMinColumn(e), e, this.model.getLineMaxColumn( e)) } const o = this._configuration.options.get(42), r = this._getColorMap(); let s; return /[:;\\\/<>]/.test(o.fontFamily) || o.fontFamily === re.hL.fontFamily ? s = re.hL.fontFamily : (s = o.fontFamily, s = s.replace(/"/g, "'"), /[,']/.test(s) || /[+ ]/.test(s) && (s = `'${s}'`), s = `${s}, ${re.hL.fontFamily}`), { mode: i.language, html: `
    ` + this._getHTMLToCopy(n, r) + "
    " } } _getHTMLToCopy(e, t) { const i = e.startLineNumber, n = e.startColumn, o = e.endLineNumber, r = e.endColumn, s = this.getTabSize(); let a = ""; for (let e = i; e <= o; e++) { const l = this.model.getLineTokens(e), d = l.getLineContent(), c = e === i ? n - 1 : 0, h = e === o ? r - 1 : d.length; a += "" === d ? "
    " : (0, Wn.F)(d, l.inflate(), t, c, h, s, A.ED) } return a } _getColorMap() { let e = ti.RW.getColorMap(), t = ["#000000"]; if (e) for (let i = 1, n = e.length; i < n; i++) t[i] = ki.Il.Format.CSS.formatHex( e[i]); return t } pushStackElement() { this.model.pushStackElement() } getPrimaryCursorState() { return this._cursor.getPrimaryCursorState() } getLastAddedCursorIndex() { return this._cursor.getLastAddedCursorIndex() } getCursorStates() { return this._cursor.getCursorStates() } setCursorStates(e, t, i) { this._withViewEventsCollector((n => this._cursor.setStates(n, e, t, i))) } getCursorColumnSelectData() { return this._cursor.getCursorColumnSelectData() } getCursorAutoClosedCharacters() { return this._cursor.getAutoClosedCharacters() } setCursorColumnSelectData(e) { this._cursor.setCursorColumnSelectData(e) } getPrevEditOperationType() { return this._cursor.getPrevEditOperationType() } setPrevEditOperationType(e) { this._cursor.setPrevEditOperationType(e) } getSelection() { return this._cursor.getSelection() } getSelections() { return this._cursor.getSelections() } getPosition() { return this._cursor.getPrimaryCursorState().modelState.position } setSelections(e, t, i = 0) { this._withViewEventsCollector((n => this._cursor.setSelections(n, e, t, i))) } saveCursorState() { return this._cursor.saveState() } restoreCursorState(e) { this._withViewEventsCollector((t => this._cursor.restoreState(t, e))) } _executeCursorEdit(e) { this._cursor.context.cursorConfig.readOnly ? this._eventDispatcher.emitOutgoingEvent( new Mn) : this._withViewEventsCollector(e) } executeEdits(e, t, i) { this._executeCursorEdit((n => this._cursor.executeEdits(n, e, t, i))) } startComposition() { this._cursor.setIsDoingComposition(!0), this._executeCursorEdit((e => this._cursor.startComposition(e))) } endComposition(e) { this._cursor.setIsDoingComposition(!1), this._executeCursorEdit((t => this._cursor.endComposition(t, e))) } type(e, t) { this._executeCursorEdit((i => this._cursor.type(i, e, t))) } compositionType(e, t, i, n, o) { this._executeCursorEdit((r => this._cursor.compositionType(r, e, t, i, n, o))) } paste(e, t, i, n) { this._executeCursorEdit((o => this._cursor.paste(o, e, t, i, n))) } cut(e) { this._executeCursorEdit((t => this._cursor.cut(t, e))) } executeCommand(e, t) { this._executeCursorEdit((i => this._cursor.executeCommand(i, e, t))) } executeCommands(e, t) { this._executeCursorEdit((i => this._cursor.executeCommands(i, e, t))) } revealPrimaryCursor(e, t) { this._withViewEventsCollector((i => this._cursor.revealPrimary(i, e, t, 0))) } revealTopMostCursor(e) { const t = this._cursor.getTopMostViewPosition(), i = new _e.e(t.lineNumber, t.column, t.lineNumber, t.column); this._withViewEventsCollector((t => t.emitViewEvent(new vn(e, i, null, 0, !0, 0)))) } revealBottomMostCursor(e) { const t = this._cursor.getBottomMostViewPosition(), i = new _e.e(t.lineNumber, t.column, t.lineNumber, t.column); this._withViewEventsCollector((t => t.emitViewEvent(new vn(e, i, null, 0, !0, 0)))) } revealRange(e, t, i, n, o) { this._withViewEventsCollector((r => r.emitViewEvent(new vn(e, i, null, n, t, o)))) } getVerticalOffsetForLineNumber(e) { return this.viewLayout.getVerticalOffsetForLineNumber(e) } getScrollTop() { return this.viewLayout.getCurrentScrollTop() } setScrollTop(e, t) { this.viewLayout.setScrollPosition({ scrollTop: e }, t) } setScrollPosition(e, t) { this.viewLayout.setScrollPosition(e, t) } deltaScrollNow(e, t) { this.viewLayout.deltaScrollNow(e, t) } changeWhitespace(e) { this.viewLayout.changeWhitespace(e) && (this._eventDispatcher.emitSingleViewEvent( new xn), this._eventDispatcher.emitOutgoingEvent(new In)) } setMaxLineWidth(e) { this.viewLayout.setMaxLineWidth(e) } _withViewEventsCollector(e) { try { e(this._eventDispatcher.beginEmitViewEvents()) } finally { this._eventDispatcher.endEmitViewEvents() } } normalizePosition(e, t) { return this._lines.normalizePosition(e, t) } getLineIndentColumn(e) { return this._lines.getLineIndentColumn(e) } } var uo = i(4565), go = i(8819), po = i(2065), mo = i(972), fo = i(9422), _o = i(1106), bo = i(8401), vo = i(4906); class wo extends vo.N { constructor(e, t) { super(0); for (let t = 0; t < e.length; t++) this.set(e.charCodeAt(t), 1); for (let e = 0; e < t.length; e++) this.set(t.charCodeAt(e), 2) } get(e) { return e >= 0 && e < 256 ? this._asciiMap[e] : e >= 12352 && e <= 12543 || e >= 13312 && e <= 19903 || e >= 19968 && e <= 40959 ? 3 : this._map.get(e) || this._defaultValue } } let Co = [], yo = []; class So { constructor(e, t) { this.classifier = new wo(e, t) } static create(e) { return new So(e.get(119), e.get(118)) } createLineBreaksComputer(e, t, i, n) { t |= 0, i = +i; const o = [], r = [], s = []; return { addRequest: (e, t, i) => { o.push(e), r.push(t), s.push(i) }, finalize: () => { const a = e.typicalFullwidthCharacterWidth / e.typicalHalfwidthCharacterWidth; let l = []; for (let e = 0, d = o.length; e < d; e++) { const d = r[e], c = s[e]; !c || c.injectionOptions || d ? l[e] = ko(this.classifier, o[e], d, t, i, a, n) : l[e] = xo(this.classifier, c, o[e], t, i, a, n) } return Co.length = 0, yo.length = 0, l } } } } function xo(e, t, i, n, o, r, s) { if (-1 === o) return null; const a = i.length; if (a <= 1) return null; const l = t.breakOffsets, d = t.breakOffsetsVisibleColumn, c = Eo(i, n, o, r, s), h = o - c; let u = Co, g = yo, p = 0, m = 0, f = 0, _ = o; const b = l.length; let v = 0; if (v >= 0) { let e = Math.abs(d[v] - _); for (; v + 1 < b;) { const t = Math.abs(d[v + 1] - _); if (t >= e) break; e = t, v++ } } for (; v < b;) { let t = v < 0 ? 0 : l[v], o = v < 0 ? 0 : d[v]; m > t && (t = m, o = f); let s = 0, c = 0, w = 0, C = 0; if (o <= _) { let f = o, b = 0 === t ? 0 : i.charCodeAt(t - 1), v = 0 === t ? 0 : e.get(b), y = !0; for (let o = t; o < a; o++) { const t = o, a = i.charCodeAt(o); let l, d; if (Ue.ZG(a) ? (o++, l = 0, d = 2) : (l = e.get(a), d = Lo(a, f, n, r)), t > m && Do(0, v, a, l) && (s = t, c = f), f += d, f > _) { t > m ? (w = t, C = f - d) : (w = o + 1, C = f), f - c > h && (s = 0), y = !1; break } b = a, v = l } if (y) { p > 0 && (u[p] = l[l.length - 1], g[p] = d[l.length - 1], p++); break } } if (0 === s) { let a = o, l = i.charCodeAt(t), d = e.get(l), u = !1; for (let n = t - 1; n >= m; n--) { const t = n + 1, o = i.charCodeAt(n); if (9 === o) { u = !0; break } let g, p; if (Ue.YK(o) ? (n--, g = 0, p = 2) : (g = e.get(o), p = Ue.K7(o) ? r : 1), a <= _) { if (0 === w && (w = t, C = a), a <= _ - h) break; if (Do(0, g, l, d)) { s = t, c = a; break } } a -= p, l = o, d = g } if (0 !== s) { const e = h - (C - c); if (e <= n) { const t = i.charCodeAt(w); let o; o = Ue.ZG(t) ? 2 : Lo(t, C, n, r), e - o < 0 && (s = 0) } } if (u) { v--; continue } } if (0 === s && (s = w, c = C), s <= m) { const e = i.charCodeAt(m); Ue.ZG(e) ? (s = m + 2, c = f + 2) : (s = m + 1, c = f + Lo(e, f, n, r)) } for (m = s, u[p] = s, f = c, g[p] = c, p++, _ = c + h; v < 0 || v < b && d[v] < c;) v++; let y = Math.abs(d[v] - _); for (; v + 1 < b;) { const e = Math.abs(d[v + 1] - _); if (e >= y) break; y = e, v++ } } return 0 === p ? null : (u.length = p, g.length = p, Co = t.breakOffsets, yo = t.breakOffsetsVisibleColumn, t.breakOffsets = u, t.breakOffsetsVisibleColumn = g, t.wrappedTextIndentLength = c, t) } function ko(e, t, i, n, o, r, s) { const a = sn.gk.applyInjectedText(t, i); let l, d; if (i && i.length > 0 ? (l = i.map((e => e.options)), d = i.map((e => e.column - 1))) : (l = null, d = null), -1 === o) return l ? new ni.le([a.length], [], 0, d, l) : null; const c = a.length; if (c <= 1) return l ? new ni.le([a.length], [], 0, d, l) : null; const h = Eo(a, n, o, r, s), u = o - h; let g = [], p = [], m = 0, f = 0, _ = 0, b = o, v = a.charCodeAt(0), w = e.get(v), C = Lo(v, 0, n, r), y = 1; Ue.ZG(v) && (C += 1, v = a.charCodeAt(1), w = e.get(v), y++); for (let t = y; t < c; t++) { const i = t, o = a.charCodeAt(t); let s, l; Ue.ZG(o) ? (t++, s = 0, l = 2) : (s = e.get(o), l = Lo(o, C, n, r)), Do( 0, w, o, s) && (f = i, _ = C), C += l, C > b && ((0 === f || C - _ > u) && (f = i, _ = C - l), g[m] = f, p[m] = _, m++, b = _ + u, f = 0), v = o, w = s } return 0 !== m || i && 0 !== i.length ? (g[m] = c, p[m] = C, new ni.le(g, p, h, d, l)) : null } function Lo(e, t, i, n) { return 9 === e ? i - t % i : Ue.K7(e) || e < 32 ? n : 1 } function No(e, t) { return t - e % t } function Do(e, t, i, n) { return 32 !== i && (2 === t || 3 === t && 2 !== n || 1 === n || 3 === n && 1 !== t) } function Eo(e, t, i, n, o) { let r = 0; if (0 !== o) { const s = Ue.LC(e); if (-1 !== s) { for (let i = 0; i < s; i++) r += 9 === e.charCodeAt(i) ? No(r, t) : 1; const a = 3 === o ? 2 : 2 === o ? 1 : 0; for (let e = 0; e < a; e++) r += No(r, t); r + n > i && (r = 0) } } return r } var Io; const To = null === (Io = window.trustedTypes) || void 0 === Io ? void 0 : Io.createPolicy("domLineBreaksComputer", { createHTML: e => e }); class Mo { static create() { return new Mo } constructor() {} createLineBreaksComputer(e, t, i, n) { t |= 0, i = +i; let o = [], r = []; return { addRequest: (e, t, i) => { o.push(e), r.push(t) }, finalize: () => function(e, t, i, n, o, r) { var s; function a(t) { const i = r[t]; if (i) { const n = sn.gk.applyInjectedText(e[t], i), o = i.map((e => e.options)), r = i.map((e => e.column - 1)); return new ni.le([n.length], [], 0, r, o) } return null } if (-1 === n) { const t = []; for (let i = 0, n = e.length; i < n; i++) t[i] = a(i); return t } const l = Math.round(n * t.typicalHalfwidthCharacterWidth); 2 !== o && 3 !== o || (o = 1); const d = document.createElement("div"); D.V.applyFontInfoSlow(d, t); const c = (0, lt.l$)(1e4), h = [], u = [], g = [], p = [], m = []; for (let n = 0; n < e.length; n++) { const s = sn.gk.applyInjectedText(e[n], r[n]); let a = 0, d = 0, f = l; if (0 !== o) if (a = Ue.LC(s), -1 === a) a = 0; else { for (let e = 0; e < a; e++) d += 9 === s.charCodeAt(e) ? i - d % i : 1; const e = Math.ceil(t.spaceWidth * d); e + t.typicalFullwidthCharacterWidth > l ? (a = 0, d = 0) : f = l - e } const _ = s.substr(a), b = Ao(_, d, i, f, c); h[n] = a, u[n] = d, g[n] = _, p[n] = b[0], m[n] = b[1] } const f = c.build(), _ = null !== (s = null == To ? void 0 : To.createHTML(f)) && void 0 !== s ? s : f; d.innerHTML = _, d.style.position = "absolute", d.style.top = "10000", d.style.wordWrap = "break-word", document.body.appendChild( d); let b = document.createRange(); const v = Array.prototype.slice.call(d.children, 0); let w = []; for (let t = 0; t < e.length; t++) { const e = Ro(b, v[t], g[t], p[t]); if (null === e) { w[t] = a(t); continue } const i = h[t], n = u[t], o = m[t], s = []; for (let t = 0, i = e.length; t < i; t++) s[t] = o[e[t]]; if (0 !== i) for (let t = 0, n = e.length; t < n; t++) e[t] += i; let l, d; const c = r[t]; c ? (l = c.map((e => e.options)), d = c.map((e => e.column - 1))) : (l = null, d = null), w[t] = new ni.le(e, s, n, d, l) } return document.body.removeChild(d), w }(o, e, t, i, n, r) } } } function Ao(e, t, i, n, o) { o.appendASCIIString('
    '); const r = e.length; let s = t, a = 0, l = [], d = [], c = 0 < r ? e.charCodeAt(0) : 0; o.appendASCIIString(""); for (let t = 0; t < r; t++) { 0 !== t && t % 16384 == 0 && o.appendASCIIString(""), l[t] = a, d[t] = s; const n = c; c = t + 1 < r ? e.charCodeAt(t + 1) : 0; let h = 1, u = 1; switch (n) { case 9: h = i - s % i, u = h; for (let e = 1; e <= h; e++) e < h ? o.write1(160) : o.appendASCII(32); break; case 32: 32 === c ? o.write1(160) : o.appendASCII(32); break; case 60: o.appendASCIIString("<"); break; case 62: o.appendASCIIString(">"); break; case 38: o.appendASCIIString("&"); break; case 0: o.appendASCIIString("�"); break; case 65279: case 8232: case 8233: case 133: o.write1(65533); break; default: Ue.K7(n) && u++, n < 32 ? o.write1(9216 + n) : o.write1(n) } a += h, s += u } return o.appendASCIIString(""), l[e.length] = a, d[e.length] = s, o.appendASCIIString("
    "), [l, d] } function Ro(e, t, i, n) { if (i.length <= 1) return null; const o = Array.prototype.slice.call(t.children, 0), r = []; try { Oo(e, o, n, 0, null, i.length - 1, null, r) } catch (e) { return console.log(e), null } return 0 === r.length ? null : (r.push(i.length), r) } function Oo(e, t, i, n, o, r, s, a) { if (n === r) return; if (o = o || Po(e, t, i[n], i[n + 1]), s = s || Po(e, t, i[r], i[r + 1]), Math.abs(o[0].top - s[0].top) <= .1) return; if (n + 1 === r) return void a.push(r); const l = n + (r - n) / 2 | 0, d = Po(e, t, i[l], i[l + 1]); Oo(e, t, i, n, o, l, d, a), Oo(e, t, i, l, d, r, s, a) } function Po(e, t, i, n) { return e.setStart(t[i / 16384 | 0].firstChild, i % 16384), e.setEnd(t[n / 16384 | 0].firstChild, n % 16384), e.getClientRects() } var Fo = i(5795), Bo = function(e, t) { return function(i, n) { t(i, n, e) } }; let Wo = 0; class zo { constructor(e, t, i, n, o) { this.model = e, this.viewModel = t, this.view = i, this.hasRealView = n, this.listenersToRemove = o } dispose() { (0, L.B9)(this.listenersToRemove), this.model.onBeforeDetached(), this .hasRealView && this.view.dispose(), this.viewModel.dispose() } } let Vo = class e extends L.JT { constructor(e, t, i, n, r, s, a, l, d, c) { super(), this._onDidDispose = this._register(new k.Q5), this.onDidDispose = this._onDidDispose.event, this._onDidChangeModelContent = this._register( new k.Q5), this.onDidChangeModelContent = this._onDidChangeModelContent .event, this._onDidChangeModelLanguage = this._register(new k.Q5), this.onDidChangeModelLanguage = this._onDidChangeModelLanguage.event, this._onDidChangeModelLanguageConfiguration = this._register(new k.Q5), this.onDidChangeModelLanguageConfiguration = this._onDidChangeModelLanguageConfiguration .event, this._onDidChangeModelOptions = this._register(new k.Q5), this.onDidChangeModelOptions = this._onDidChangeModelOptions.event, this._onDidChangeModelDecorations = this._register(new k.Q5), this.onDidChangeModelDecorations = this._onDidChangeModelDecorations.event, this._onDidChangeConfiguration = this._register(new k.Q5), this.onDidChangeConfiguration = this._onDidChangeConfiguration .event, this._onDidChangeModel = this._register(new k.Q5), this.onDidChangeModel = this._onDidChangeModel.event, this._onDidChangeCursorPosition = this ._register(new k.Q5), this.onDidChangeCursorPosition = this._onDidChangeCursorPosition .event, this._onDidChangeCursorSelection = this._register(new k.Q5), this.onDidChangeCursorSelection = this._onDidChangeCursorSelection.event, this._onDidAttemptReadOnlyEdit = this._register(new k.Q5), this.onDidAttemptReadOnlyEdit = this._onDidAttemptReadOnlyEdit.event, this._onDidLayoutChange = this ._register(new k.Q5), this.onDidLayoutChange = this._onDidLayoutChange .event, this._editorTextFocus = this._register(new Ho), this.onDidFocusEditorText = this._editorTextFocus.onDidChangeToTrue, this.onDidBlurEditorText = this._editorTextFocus.onDidChangeToFalse, this._editorWidgetFocus = this._register(new Ho), this.onDidFocusEditorWidget = this._editorWidgetFocus .onDidChangeToTrue, this.onDidBlurEditorWidget = this._editorWidgetFocus .onDidChangeToFalse, this._onWillType = this._register(new k.Q5), this.onWillType = this._onWillType.event, this._onDidType = this._register( new k.Q5), this.onDidType = this._onDidType.event, this._onDidCompositionStart = this._register(new k.Q5), this.onDidCompositionStart = this._onDidCompositionStart .event, this._onDidCompositionEnd = this._register(new k.Q5), this.onDidCompositionEnd = this._onDidCompositionEnd.event, this._onDidPaste = this._register( new k.Q5), this.onDidPaste = this._onDidPaste.event, this._onMouseUp = this._register(new k.Q5), this.onMouseUp = this._onMouseUp.event, this._onMouseDown = this._register(new k.Q5), this.onMouseDown = this._onMouseDown.event, this._onMouseDrag = this._register(new k.Q5), this.onMouseDrag = this._onMouseDrag.event, this._onMouseDrop = this ._register(new k.Q5), this.onMouseDrop = this._onMouseDrop.event, this._onMouseDropCanceled = this._register(new k.Q5), this.onMouseDropCanceled = this._onMouseDropCanceled.event, this._onContextMenu = this._register( new k.Q5), this.onContextMenu = this._onContextMenu.event, this._onMouseMove = this._register(new k.Q5), this.onMouseMove = this._onMouseMove.event, this._onMouseLeave = this._register(new k.Q5), this.onMouseLeave = this._onMouseLeave.event, this._onMouseWheel = this._register(new k.Q5), this.onMouseWheel = this._onMouseWheel.event, this._onKeyUp = this._register( new k.Q5), this.onKeyUp = this._onKeyUp.event, this._onKeyDown = this._register(new k.Q5), this.onKeyDown = this._onKeyDown.event, this._onDidContentSizeChange = this._register(new k.Q5), this.onDidContentSizeChange = this._onDidContentSizeChange.event, this._onDidScrollChange = this._register( new k.Q5), this.onDidScrollChange = this._onDidScrollChange.event, this._onDidChangeViewZones = this._register(new k.Q5), this.onDidChangeViewZones = this._onDidChangeViewZones.event; const h = Object.assign({}, t); let u; this._domElement = e, this._overflowWidgetsDomNode = h.overflowWidgetsDomNode, delete h.overflowWidgetsDomNode, this._id = ++Wo, this._decorationTypeKeysToIds = {}, this._decorationTypeSubtypes = {}, this.isSimpleWidget = i.isSimpleWidget || !1, this._telemetryData = i.telemetryData, this._configuration = this._register(this._createConfiguration(h, c)), this._register(this ._configuration.onDidChange((e => { this._onDidChangeConfiguration.fire(e); const t = this._configuration.options; if (e.hasChanged(130)) { const e = t.get(130); this._onDidLayoutChange.fire(e) } }))), this._contextKeyService = this._register(a.createScoped(this._domElement)), this._notificationService = d, this._codeEditorService = r, this._commandService = s, this._themeService = l, this._register(new Uo(this, this._contextKeyService)), this._register(new jo(this, this._contextKeyService)), this._instantiationService = n.createChild(new mo.y([go.i6, this._contextKeyService])), this._modelData = null, this._contributions = {}, this._actions = {}, this._focusTracker = new Ko(e), this._register(this._focusTracker.onChange((() => { this._editorWidgetFocus.setValue(this._focusTracker.hasFocus()) }))), this._contentWidgets = {}, this._overlayWidgets = {}, u = Array.isArray(i.contributions) ? i.contributions : o.Uc.getEditorContributions(); for (const e of u) if (this._contributions[e.id])(0, x.dL)(new Error( `Cannot have two contributions with the same id ${e.id}`)); else try { const t = this._instantiationService.createInstance(e.ctor, this); this._contributions[e.id] = t } catch (e) { (0, x.dL)(e) } o.Uc.getEditorActions().forEach((e => { if (this._actions[e.id]) return void(0, x.dL)(new Error( `Cannot have two actions with the same id ${e.id}`)); const t = new Pn.p(e.id, e.label, e.alias, (0, bo.f6)(e.precondition), ( () => this._instantiationService.invokeFunction((t => Promise.resolve( e.runEditorCommand(t, this, null))))), this._contextKeyService); this._actions[t.id] = t })), this._codeEditorService.addCodeEditor(this) } _createConfiguration(e, t) { return new D.V(this.isSimpleWidget, e, this._domElement, t) } getId() { return this.getEditorType() + ":" + this._id } getEditorType() { return Fn.g.ICodeEditor } dispose() { this._codeEditorService.removeCodeEditor(this), this._focusTracker.dispose(); const e = Object.keys(this._contributions); for (let t = 0, i = e.length; t < i; t++) { const i = e[t]; this._contributions[i].dispose() } this._contributions = {}, this._actions = {}, this._contentWidgets = {}, this._overlayWidgets = {}, this._removeDecorationTypes(), this._postDetachModelCleanup( this._detachModel()), this._onDidDispose.fire(), super.dispose() } invokeWithinContext(e) { return this._instantiationService.invokeFunction(e) } updateOptions(e) { this._configuration.updateOptions(e) } getOptions() { return this._configuration.options } getOption(e) { return this._configuration.options.get(e) } getRawOptions() { return this._configuration.getRawOptions() } getOverflowWidgetsDomNode() { return this._overflowWidgetsDomNode } getConfiguredWordAtPosition(e) { return this._modelData ? Fo.w.getWordAtPosition(this._modelData.model, this._configuration.options.get(116), e) : null } getValue(e = null) { if (!this._modelData) return ""; const t = !(!e || !e.preserveBOM); let i = 0; return e && e.lineEnding && "\n" === e.lineEnding ? i = 1 : e && e.lineEnding && "\r\n" === e.lineEnding && (i = 2), this._modelData.model.getValue(i, t) } setValue(e) { this._modelData && this._modelData.model.setValue(e) } getModel() { return this._modelData ? this._modelData.model : null } setModel(e = null) { const t = e; if (null === this._modelData && null === t) return; if (this._modelData && this._modelData.model === t) return; const i = this.hasTextFocus(), n = this._detachModel(); this._attachModel(t), i && this.hasModel() && this.focus(); const o = { oldModelUrl: n ? n.uri : null, newModelUrl: t ? t.uri : null }; this._removeDecorationTypes(), this._onDidChangeModel.fire(o), this._postDetachModelCleanup( n) } _removeDecorationTypes() { if (this._decorationTypeKeysToIds = {}, this._decorationTypeSubtypes) { for (let e in this._decorationTypeSubtypes) { const t = this._decorationTypeSubtypes[e]; for (let i in t) this._removeDecorationType(e + "-" + i) } 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 _getVerticalOffsetForPosition(e, t, i) { const n = e.model.validatePosition({ lineNumber: t, column: i }), o = e.viewModel.coordinatesConverter.convertModelPositionToViewPosition( n); return e.viewModel.viewLayout.getVerticalOffsetForLineNumber(o.lineNumber) } getTopForLineNumber(t) { return this._modelData ? e._getVerticalOffsetForPosition(this._modelData, t, 1) : -1 } getTopForPosition(t, i) { return this._modelData ? e._getVerticalOffsetForPosition(this._modelData, t, i) : -1 } setHiddenAreas(e) { this._modelData && this._modelData.viewModel.setHiddenAreas(e.map((e => _e.e.lift(e)))) } getVisibleColumnFromPosition(e) { if (!this._modelData) return e.column; const t = this._modelData.model.validatePosition(e), i = this._modelData.model.getOptions().tabSize; return be.io.visibleColumnFromColumn(this._modelData.model.getLineContent( t.lineNumber), t.column, i) + 1 } getPosition() { return this._modelData ? this._modelData.viewModel.getPosition() : null } setPosition(e) { if (this._modelData) { if (!fe.L.isIPosition(e)) throw new Error("Invalid arguments"); this._modelData.viewModel.setSelections("api", [{ selectionStartLineNumber: e.lineNumber, selectionStartColumn: e.column, positionLineNumber: e.lineNumber, positionColumn: e.column }]) } } _sendRevealRange(e, t, i, n) { if (!this._modelData) return; if (!_e.e.isIRange(e)) throw new Error("Invalid arguments"); const o = this._modelData.model.validateRange(e), r = this._modelData.viewModel.coordinatesConverter.convertModelRangeToViewRange( o); this._modelData.viewModel.revealRange("api", i, r, t, n) } revealLine(e, t = 0) { this._revealLine(e, 0, t) } revealLineInCenter(e, t = 0) { this._revealLine(e, 1, t) } revealLineInCenterIfOutsideViewport(e, t = 0) { this._revealLine(e, 2, t) } revealLineNearTop(e, t = 0) { this._revealLine(e, 5, t) } _revealLine(e, t, i) { if ("number" != typeof e) throw new Error("Invalid arguments"); this._sendRevealRange(new _e.e(e, 1, e, 1), t, !1, i) } revealPosition(e, t = 0) { this._revealPosition(e, 0, !0, t) } revealPositionInCenter(e, t = 0) { this._revealPosition(e, 1, !0, t) } revealPositionInCenterIfOutsideViewport(e, t = 0) { this._revealPosition(e, 2, !0, t) } revealPositionNearTop(e, t = 0) { this._revealPosition(e, 5, !0, t) } _revealPosition(e, t, i, n) { if (!fe.L.isIPosition(e)) throw new Error("Invalid arguments"); this._sendRevealRange(new _e.e(e.lineNumber, e.column, e.lineNumber, e.column), t, i, n) } getSelection() { return this._modelData ? this._modelData.viewModel.getSelection() : null } getSelections() { return this._modelData ? this._modelData.viewModel.getSelections() : null } setSelection(e) { const t = T.Y.isISelection(e), i = _e.e.isIRange(e); if (!t && !i) throw new Error("Invalid arguments"); if (t) this._setSelectionImpl(e); else if (i) { const t = { selectionStartLineNumber: e.startLineNumber, selectionStartColumn: e.startColumn, positionLineNumber: e.endLineNumber, positionColumn: e.endColumn }; this._setSelectionImpl(t) } } _setSelectionImpl(e) { if (!this._modelData) return; const t = new T.Y(e.selectionStartLineNumber, e.selectionStartColumn, e.positionLineNumber, e.positionColumn); this._modelData.viewModel.setSelections("api", [t]) } revealLines(e, t, i = 0) { this._revealLines(e, t, 0, i) } revealLinesInCenter(e, t, i = 0) { this._revealLines(e, t, 1, i) } revealLinesInCenterIfOutsideViewport(e, t, i = 0) { this._revealLines(e, t, 2, i) } revealLinesNearTop(e, t, i = 0) { this._revealLines(e, t, 5, i) } _revealLines(e, t, i, n) { if ("number" != typeof e || "number" != typeof t) throw new Error( "Invalid arguments"); this._sendRevealRange(new _e.e(e, 1, t, 1), i, !1, n) } revealRange(e, t = 0, i = !1, n = !0) { this._revealRange(e, i ? 1 : 0, n, t) } revealRangeInCenter(e, t = 0) { this._revealRange(e, 1, !0, t) } revealRangeInCenterIfOutsideViewport(e, t = 0) { this._revealRange(e, 2, !0, t) } revealRangeNearTop(e, t = 0) { this._revealRange(e, 5, !0, t) } revealRangeNearTopIfOutsideViewport(e, t = 0) { this._revealRange(e, 6, !0, t) } revealRangeAtTop(e, t = 0) { this._revealRange(e, 3, !0, t) } _revealRange(e, t, i, n) { if (!_e.e.isIRange(e)) throw new Error("Invalid arguments"); this._sendRevealRange(_e.e.lift(e), t, i, n) } setSelections(e, t = "api", i = 0) { if (this._modelData) { if (!e || 0 === e.length) throw new Error("Invalid arguments"); for (let t = 0, i = e.length; t < i; t++) if (!T.Y.isISelection(e[t])) throw new Error("Invalid arguments"); this._modelData.viewModel.setSelections(t, e, i) } } getContentWidth() { return this._modelData ? this._modelData.viewModel.viewLayout.getContentWidth() : -1 } getScrollWidth() { return this._modelData ? this._modelData.viewModel.viewLayout.getScrollWidth() : -1 } getScrollLeft() { return this._modelData ? this._modelData.viewModel.viewLayout.getCurrentScrollLeft() : -1 } getContentHeight() { return this._modelData ? this._modelData.viewModel.viewLayout.getContentHeight() : -1 } getScrollHeight() { return this._modelData ? this._modelData.viewModel.viewLayout.getScrollHeight() : -1 } getScrollTop() { return this._modelData ? this._modelData.viewModel.viewLayout.getCurrentScrollTop() : -1 } setScrollLeft(e, t = 1) { if (this._modelData) { if ("number" != typeof e) throw new Error("Invalid arguments"); this._modelData.viewModel.setScrollPosition({ scrollLeft: e }, t) } } setScrollTop(e, t = 1) { if (this._modelData) { if ("number" != typeof e) throw new Error("Invalid arguments"); this._modelData.viewModel.setScrollPosition({ scrollTop: e }, t) } } setScrollPosition(e, t = 1) { this._modelData && this._modelData.viewModel.setScrollPosition(e, t) } saveViewState() { if (!this._modelData) return null; const e = {}, t = Object.keys(this._contributions); for (const i of t) { const t = this._contributions[i]; "function" == typeof t.saveViewState && (e[i] = t.saveViewState()) } return { cursorState: this._modelData.viewModel.saveCursorState(), viewState: this._modelData.viewModel.saveState(), contributionsState: e } } restoreViewState(e) { if (!this._modelData || !this._modelData.hasRealView) return; const t = e; if (t && t.cursorState && t.viewState) { const e = t.cursorState; Array.isArray(e) ? this._modelData.viewModel.restoreCursorState(e) : this._modelData.viewModel.restoreCursorState([e]); const i = t.contributionsState || {}, n = Object.keys(this._contributions); for (let e = 0, t = n.length; e < t; e++) { const t = n[e], o = this._contributions[t]; "function" == typeof o.restoreViewState && o.restoreViewState(i[t]) } const o = this._modelData.viewModel.reduceRestoreState(t.viewState); this._modelData.view.restoreState(o) } } getContribution(e) { return this._contributions[e] || null } getActions() { const e = [], t = Object.keys(this._actions); for (let i = 0, n = t.length; i < n; i++) { const n = t[i]; e.push(this._actions[n]) } return e } getSupportedActions() { let e = this.getActions(); return e = e.filter((e => e.isSupported())), e } getAction(e) { return this._actions[e] || null } trigger(e, t, i) { switch (i = i || {}, t) { case "compositionStart": return void this._startComposition(); case "compositionEnd": return void this._endComposition(e); case "type": { const t = i; return void this._type(e, t.text || "") } case "replacePreviousChar": { const t = i; return void this._compositionType(e, t.text || "", t.replaceCharCnt || 0, 0, 0) } case "compositionType": { const t = i; return void this._compositionType(e, t.text || "", t.replacePrevCharCnt || 0, t.replaceNextCharCnt || 0, t.positionDelta || 0) } case "paste": { const t = i; return void this._paste(e, t.text || "", t.pasteOnNewLine || !1, t .multicursorText || null, t.mode || null) } case "cut": return void this._cut(e) } const n = this.getAction(t); n ? Promise.resolve(n.run()).then(void 0, x.dL) : this._modelData && (this._triggerEditorCommand(e, t, i) || this._triggerCommand(t, i)) } _triggerCommand(e, t) { this._commandService.executeCommand(e, t) } _startComposition() { this._modelData && (this._modelData.viewModel.startComposition(), this._onDidCompositionStart.fire()) } _endComposition(e) { this._modelData && (this._modelData.viewModel.endComposition(e), this ._onDidCompositionEnd.fire()) } _type(e, t) { this._modelData && 0 !== t.length && ("keyboard" === e && this._onWillType .fire(t), this._modelData.viewModel.type(t, e), "keyboard" === e && this._onDidType.fire(t)) } _compositionType(e, t, i, n, o) { this._modelData && this._modelData.viewModel.compositionType(t, i, n, o, e) } _paste(e, t, i, n, o) { if (!this._modelData || 0 === t.length) return; const r = this._modelData.viewModel.getSelection().getStartPosition(); this._modelData.viewModel.paste(t, i, n, e); const s = this._modelData.viewModel.getSelection().getStartPosition(); "keyboard" === e && this._onDidPaste.fire({ range: new _e.e(r.lineNumber, r.column, s.lineNumber, s.column), mode: o }) } _cut(e) { this._modelData && this._modelData.viewModel.cut(e) } _triggerEditorCommand(e, t, i) { const n = o.Uc.getEditorCommand(t); return !!n && ((i = i || {}).source = e, this._instantiationService.invokeFunction( (e => { Promise.resolve(n.runEditorCommand(e, this, i)).then(void 0, x.dL) })), !0) } _getViewModel() { return this._modelData ? this._modelData.viewModel : null } pushUndoStop() { return !!this._modelData && !this._configuration.options.get(80) && ( this._modelData.model.pushStackElement(), !0) } popUndoStop() { return !!this._modelData && !this._configuration.options.get(80) && ( this._modelData.model.popStackElement(), !0) } executeEdits(e, t, i) { if (!this._modelData) return !1; if (this._configuration.options.get(80)) return !1; let n; return n = i ? Array.isArray(i) ? () => i : i : () => null, this._modelData .viewModel.executeEdits(e, t, n), !0 } executeCommand(e, t) { this._modelData && this._modelData.viewModel.executeCommand(t, e) } executeCommands(e, t) { this._modelData && this._modelData.viewModel.executeCommands(t, e) } changeDecorations(e) { return this._modelData ? this._modelData.model.changeDecorations(e, this._id) : null } getLineDecorations(e) { return this._modelData ? this._modelData.model.getLineDecorations(e, this._id, (0, re.$J)(this._configuration.options)) : null } deltaDecorations(e, t) { return this._modelData ? 0 === e.length && 0 === t.length ? e : this._modelData .model.deltaDecorations(e, t, this._id) : [] } removeDecorations(e) { const t = this._decorationTypeKeysToIds[e]; t && this.deltaDecorations(t, []), this._decorationTypeKeysToIds.hasOwnProperty( e) && delete this._decorationTypeKeysToIds[e], this._decorationTypeSubtypes .hasOwnProperty(e) && delete this._decorationTypeSubtypes[e] } getLayoutInfo() { return this._configuration.options.get(130) } createOverviewRuler(e) { return this._modelData && this._modelData.hasRealView ? this._modelData .view.createOverviewRuler(e) : null } getContainerDomNode() { return this._domElement } getDomNode() { return this._modelData && this._modelData.hasRealView ? this._modelData .view.domNode.domNode : null } delegateVerticalScrollbarMouseDown(e) { this._modelData && this._modelData.hasRealView && this._modelData.view .delegateVerticalScrollbarMouseDown(e) } layout(e) { this._configuration.observeReferenceElement(e), this.render() } focus() { this._modelData && this._modelData.hasRealView && this._modelData.view .focus() } hasTextFocus() { return !(!this._modelData || !this._modelData.hasRealView) && this._modelData .view.isFocused() } hasWidgetFocus() { return this._focusTracker && this._focusTracker.hasFocus() } addContentWidget(e) { const t = { widget: e, position: e.getPosition() }; this._contentWidgets.hasOwnProperty(e.getId()) && console.warn( "Overwriting a content widget with the same id."), this._contentWidgets[ e.getId()] = t, this._modelData && this._modelData.hasRealView && this._modelData.view.addContentWidget(t) } layoutContentWidget(e) { const t = e.getId(); if (this._contentWidgets.hasOwnProperty(t)) { const i = this._contentWidgets[t]; i.position = e.getPosition(), this._modelData && this._modelData.hasRealView && this._modelData.view.layoutContentWidget(i) } } removeContentWidget(e) { const t = e.getId(); if (this._contentWidgets.hasOwnProperty(t)) { const e = this._contentWidgets[t]; delete this._contentWidgets[t], this._modelData && this._modelData.hasRealView && this._modelData.view.removeContentWidget(e) } } addOverlayWidget(e) { const t = { widget: e, position: e.getPosition() }; this._overlayWidgets.hasOwnProperty(e.getId()) && console.warn( "Overwriting an overlay widget with the same id."), this._overlayWidgets[ e.getId()] = t, this._modelData && this._modelData.hasRealView && this._modelData.view.addOverlayWidget(t) } layoutOverlayWidget(e) { const t = e.getId(); if (this._overlayWidgets.hasOwnProperty(t)) { const i = this._overlayWidgets[t]; i.position = e.getPosition(), this._modelData && this._modelData.hasRealView && this._modelData.view.layoutOverlayWidget(i) } } removeOverlayWidget(e) { const t = e.getId(); if (this._overlayWidgets.hasOwnProperty(t)) { const e = this._overlayWidgets[t]; delete this._overlayWidgets[t], this._modelData && this._modelData.hasRealView && this._modelData.view.removeOverlayWidget(e) } } changeViewZones(e) { this._modelData && this._modelData.hasRealView && this._modelData.view .change(e) } getTargetAtClientPoint(e, t) { return this._modelData && this._modelData.hasRealView ? this._modelData .view.getTargetAtClientPoint(e, t) : null } getScrolledVisiblePosition(t) { if (!this._modelData || !this._modelData.hasRealView) return null; const i = this._modelData.model.validatePosition(t), n = this._configuration.options, o = n.get(130); return { top: e._getVerticalOffsetForPosition(this._modelData, i.lineNumber, i.column) - this.getScrollTop(), left: this._modelData.view.getOffsetForColumn(i.lineNumber, i.column) + o.glyphMarginWidth + o.lineNumbersWidth + o.decorationsWidth - this .getScrollLeft(), height: n.get(58) } } getOffsetForColumn(e, t) { return this._modelData && this._modelData.hasRealView ? this._modelData .view.getOffsetForColumn(e, t) : -1 } render(e = !1) { this._modelData && this._modelData.hasRealView && this._modelData.view .render(!0, e) } setAriaOptions(e) { this._modelData && this._modelData.hasRealView && this._modelData.view .setAriaOptions(e) } applyFontInfo(e) { D.V.applyFontInfoSlow(e, this._configuration.options.get(42)) } _attachModel(e) { if (!e) return void(this._modelData = null); const t = []; this._domElement.setAttribute("data-mode-id", e.getLanguageIdentifier() .language), this._configuration.setIsDominatedByLongLines(e.isDominatedByLongLines()), this._configuration.setMaxLineNumber(e.getLineCount()), e.onBeforeAttached(); const i = new ho(this._id, this._configuration, e, Mo.create(), So.create( this._configuration.options), (e => S.jL(e))); t.push(e.onDidChangeDecorations((e => this._onDidChangeModelDecorations .fire(e)))), t.push(e.onDidChangeLanguage((t => { this._domElement.setAttribute("data-mode-id", e.getLanguageIdentifier() .language), this._onDidChangeModelLanguage.fire(t) }))), t.push(e.onDidChangeLanguageConfiguration((e => this._onDidChangeModelLanguageConfiguration .fire(e)))), t.push(e.onDidChangeContent((e => this._onDidChangeModelContent .fire(e)))), t.push(e.onDidChangeOptions((e => this._onDidChangeModelOptions .fire(e)))), t.push(e.onWillDispose((() => this.setModel(null)))), t.push(i.onEvent((e => { switch (e.kind) { case 0: this._onDidContentSizeChange.fire(e); break; case 1: this._editorTextFocus.setValue(e.hasFocus); break; case 2: this._onDidScrollChange.fire(e); break; case 3: this._onDidChangeViewZones.fire(); break; case 4: this._onDidAttemptReadOnlyEdit.fire(); break; case 5: { e.reachedMaxCursorCount && this._notificationService.warn(y.N( "cursors.maximum", "The number of cursors has been limited to {0}.", On.MAX_CURSOR_COUNT )); const t = []; for (let i = 0, n = e.selections.length; i < n; i++) t[i] = e .selections[i].getPosition(); const i = { position: t[0], secondaryPositions: t.slice(1), reason: e.reason, source: e.source }; this._onDidChangeCursorPosition.fire(i); const n = { selection: e.selections[0], secondarySelections: e.selections.slice(1), modelVersionId: e.modelVersionId, oldSelections: e.oldSelections, oldModelVersionId: e.oldModelVersionId, source: e.source, reason: e.reason }; this._onDidChangeCursorSelection.fire(n); break } } }))); const [n, o] = this._createView(i); if (o) { this._domElement.appendChild(n.domNode.domNode); let t = Object.keys(this._contentWidgets); for (let e = 0, i = t.length; e < i; e++) { const i = t[e]; n.addContentWidget(this._contentWidgets[i]) } t = Object.keys(this._overlayWidgets); for (let e = 0, i = t.length; e < i; e++) { const i = t[e]; n.addOverlayWidget(this._overlayWidgets[i]) } n.render(!1, !0), n.domNode.domNode.setAttribute("data-uri", e.uri.toString()) } this._modelData = new zo(e, i, n, o, t) } _createView(e) { let t; t = this.isSimpleWidget ? { paste: (e, t, i, n) => { this._paste("keyboard", e, t, i, n) }, type: e => { this._type("keyboard", e) }, compositionType: (e, t, i, n) => { this._compositionType("keyboard", e, t, i, n) }, startComposition: () => { this._startComposition() }, endComposition: () => { this._endComposition("keyboard") }, cut: () => { this._cut("keyboard") } } : { paste: (e, t, i, n) => { const o = { text: e, pasteOnNewLine: t, multicursorText: i, mode: n }; this._commandService.executeCommand("paste", o) }, type: e => { const t = { text: e }; this._commandService.executeCommand("type", t) }, compositionType: (e, t, i, n) => { if (i || n) { const o = { text: e, replacePrevCharCnt: t, replaceNextCharCnt: i, positionDelta: n }; this._commandService.executeCommand("compositionType", o) } else { const i = { text: e, replaceCharCnt: t }; this._commandService.executeCommand("replacePreviousChar", i) } }, startComposition: () => { this._commandService.executeCommand("compositionStart", {}) }, endComposition: () => { this._commandService.executeCommand("compositionEnd", {}) }, cut: () => { this._commandService.executeCommand("cut", {}) } }; const i = new rt(e.coordinatesConverter); return i.onKeyDown = e => this._onKeyDown.fire(e), i.onKeyUp = e => this._onKeyUp.fire(e), i.onContextMenu = e => this._onContextMenu.fire( e), i.onMouseMove = e => this._onMouseMove.fire(e), i.onMouseLeave = e => this._onMouseLeave.fire(e), i.onMouseDown = e => this._onMouseDown .fire(e), i.onMouseUp = e => this._onMouseUp.fire(e), i.onMouseDrag = e => this._onMouseDrag.fire(e), i.onMouseDrop = e => this._onMouseDrop .fire(e), i.onMouseDropCanceled = e => this._onMouseDropCanceled.fire( e), i.onMouseWheel = e => this._onMouseWheel.fire(e), [new en(t, this._configuration, this._themeService, e, i, this._overflowWidgetsDomNode ), !0] } _postDetachModelCleanup(e) { e && e.removeAllDecorationsWithOwnerId(this._id) } _detachModel() { if (!this._modelData) return null; const e = this._modelData.model, t = this._modelData.hasRealView ? this._modelData.view.domNode.domNode : null; return this._modelData.dispose(), this._modelData = null, this._domElement .removeAttribute("data-mode-id"), t && this._domElement.contains(t) && this._domElement.removeChild(t), e } _removeDecorationType(e) { this._codeEditorService.removeDecorationType(e) } hasModel() { return null !== this._modelData } }; Vo = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([Bo(3, po.TG), Bo(4, E.$), Bo(5, uo.H), Bo(6, go.i6), Bo(7, Ge.XE), Bo( 8, fo.lT), Bo(9, _o.F)], Vo); class Ho extends L.JT { constructor() { super(), this._onDidChangeToTrue = this._register(new k.Q5), this.onDidChangeToTrue = this._onDidChangeToTrue.event, this._onDidChangeToFalse = this._register( new k.Q5), this.onDidChangeToFalse = this._onDidChangeToFalse.event, this._value = 0 } setValue(e) { const t = e ? 2 : 1; this._value !== t && (this._value = t, 2 === this._value ? this._onDidChangeToTrue .fire() : 1 === this._value && this._onDidChangeToFalse.fire()) } } class Uo extends L.JT { constructor(e, t) { super(), this._editor = e, t.createKey("editorId", e.getId()), this._editorSimpleInput = Bn.u.editorSimpleInput.bindTo(t), this._editorFocus = Bn.u.focus.bindTo( t), this._textInputFocus = Bn.u.textInputFocus.bindTo(t), this._editorTextFocus = Bn.u.editorTextFocus.bindTo(t), this._editorTabMovesFocus = Bn.u.tabMovesFocus .bindTo(t), this._editorReadonly = Bn.u.readOnly.bindTo(t), this._inDiffEditor = Bn.u.inDiffEditor.bindTo(t), this._editorColumnSelection = Bn.u.columnSelection .bindTo(t), this._hasMultipleSelections = Bn.u.hasMultipleSelections .bindTo(t), this._hasNonEmptySelection = Bn.u.hasNonEmptySelection.bindTo( t), this._canUndo = Bn.u.canUndo.bindTo(t), this._canRedo = Bn.u.canRedo .bindTo(t), 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._updateFromConfig(), this._updateFromSelection(), this._updateFromFocus(), this._updateFromModel(), this._editorSimpleInput .set(this._editor.isSimpleWidget) } _updateFromConfig() { const e = this._editor.getOptions(); this._editorTabMovesFocus.set(e.get(129)), this._editorReadonly.set(e .get(80)), this._inDiffEditor.set(e.get(53)), this._editorColumnSelection .set(e.get(17)) } _updateFromSelection() { const e = this._editor.getSelections(); e ? (this._hasMultipleSelections.set(e.length > 1), this._hasNonEmptySelection .set(e.some((e => !e.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 e = this._editor.getModel(); this._canUndo.set(Boolean(e && e.canUndo())), this._canRedo.set( Boolean(e && e.canRedo())) } } class jo extends L.JT { constructor(e, t) { super(), this._editor = e, this._contextKeyService = t, this._langId = Bn.u.languageId.bindTo(t), this._hasCompletionItemProvider = Bn.u.hasCompletionItemProvider .bindTo(t), this._hasCodeActionsProvider = Bn.u.hasCodeActionsProvider .bindTo(t), this._hasCodeLensProvider = Bn.u.hasCodeLensProvider.bindTo( t), this._hasDefinitionProvider = Bn.u.hasDefinitionProvider.bindTo( t), this._hasDeclarationProvider = Bn.u.hasDeclarationProvider.bindTo( t), this._hasImplementationProvider = Bn.u.hasImplementationProvider .bindTo(t), this._hasTypeDefinitionProvider = Bn.u.hasTypeDefinitionProvider .bindTo(t), this._hasHoverProvider = Bn.u.hasHoverProvider.bindTo(t), this._hasDocumentHighlightProvider = Bn.u.hasDocumentHighlightProvider .bindTo(t), this._hasDocumentSymbolProvider = Bn.u.hasDocumentSymbolProvider .bindTo(t), this._hasReferenceProvider = Bn.u.hasReferenceProvider.bindTo( t), this._hasRenameProvider = Bn.u.hasRenameProvider.bindTo(t), this._hasSignatureHelpProvider = Bn.u.hasSignatureHelpProvider.bindTo( t), this._hasInlayHintsProvider = Bn.u.hasInlayHintsProvider.bindTo( t), this._hasDocumentFormattingProvider = Bn.u.hasDocumentFormattingProvider .bindTo(t), this._hasDocumentSelectionFormattingProvider = Bn.u.hasDocumentSelectionFormattingProvider .bindTo(t), this._hasMultipleDocumentFormattingProvider = Bn.u.hasMultipleDocumentFormattingProvider .bindTo(t), this._hasMultipleDocumentSelectionFormattingProvider = Bn.u.hasMultipleDocumentSelectionFormattingProvider.bindTo(t), this._isInWalkThrough = Bn.u.isInWalkThroughSnippet.bindTo(t); const i = () => this._update(); this._register(e.onDidChangeModel(i)), this._register(e.onDidChangeModelLanguage( i)), this._register(ti.KZ.onDidChange(i)), this._register(ti.H9.onDidChange( i)), this._register(ti.He.onDidChange(i)), this._register(ti.Ct.onDidChange( i)), this._register(ti.RN.onDidChange(i)), this._register(ti.vI.onDidChange( i)), this._register(ti.tA.onDidChange(i)), this._register(ti.xp.onDidChange( i)), this._register(ti.vH.onDidChange(i)), this._register(ti.vJ.onDidChange( i)), this._register(ti.FL.onDidChange(i)), this._register(ti.G0.onDidChange( i)), this._register(ti.Az.onDidChange(i)), this._register(ti.vN.onDidChange( i)), this._register(ti.nD.onDidChange(i)), this._register(ti.mX.onDidChange( i)), i() } 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._isInWalkThrough.reset() })) } _update() { const e = this._editor.getModel(); e ? this._contextKeyService.bufferChangeEvents((() => { this._langId.set(e.getLanguageIdentifier().language), this._hasCompletionItemProvider .set(ti.KZ.has(e)), this._hasCodeActionsProvider.set(ti.H9.has(e)), this._hasCodeLensProvider.set(ti.He.has(e)), this._hasDefinitionProvider .set(ti.Ct.has(e)), this._hasDeclarationProvider.set(ti.RN.has(e)), this._hasImplementationProvider.set(ti.vI.has(e)), this._hasTypeDefinitionProvider .set(ti.tA.has(e)), this._hasHoverProvider.set(ti.xp.has(e)), this._hasDocumentHighlightProvider.set(ti.vH.has(e)), this._hasDocumentSymbolProvider .set(ti.vJ.has(e)), this._hasReferenceProvider.set(ti.FL.has(e)), this._hasRenameProvider.set(ti.G0.has(e)), this._hasSignatureHelpProvider .set(ti.nD.has(e)), this._hasInlayHintsProvider.set(ti.mX.has(e)), this._hasDocumentFormattingProvider.set(ti.Az.has(e) || ti.vN.has( e)), this._hasDocumentSelectionFormattingProvider.set(ti.vN.has( e)), this._hasMultipleDocumentFormattingProvider.set(ti.Az.all( e).length + ti.vN.all(e).length > 1), this._hasMultipleDocumentSelectionFormattingProvider .set(ti.vN.all(e).length > 1), this._isInWalkThrough.set(e.uri.scheme === N.lg.walkThroughSnippet) })) : this.reset() } } class Ko extends L.JT { constructor(e) { super(), this._onChange = this._register(new k.Q5), this.onChange = this._onChange.event, this._hasFocus = !1, this._domFocusTracker = this._register(S.go(e)), this._register(this._domFocusTracker.onDidFocus( (() => { this._hasFocus = !0, this._onChange.fire(void 0) }))), this._register(this._domFocusTracker.onDidBlur((() => { this._hasFocus = !1, this._onChange.fire(void 0) }))) } hasFocus() { return this._hasFocus } } const $o = encodeURIComponent( "" ); function Zo(e) { return $o + encodeURIComponent(e.toString()) + qo } const Go = encodeURIComponent( '' ); (0, Ge.Ic)(((e, t) => { const i = e.getColor(oi.b6); i && t.addRule( `.monaco-editor .squiggly-error { border-bottom: 4px double ${i}; }` ); const n = e.getColor(oi.lX); n && t.addRule( `.monaco-editor .squiggly-error { background: url("data:image/svg+xml,${Zo(n)}") repeat-x bottom left; }` ); const o = e.getColor(oi.A2); o && t.addRule( `.monaco-editor .squiggly-error::before { display: block; content: ''; width: 100%; height: 100%; background: ${o}; }` ); const r = e.getColor(oi.pW); r && t.addRule( `.monaco-editor .squiggly-warning { border-bottom: 4px double ${r}; }` ); const s = e.getColor(oi.uo); s && t.addRule( `.monaco-editor .squiggly-warning { background: url("data:image/svg+xml,${Zo(s)}") repeat-x bottom left; }` ); const a = e.getColor(oi.gp); a && t.addRule( `.monaco-editor .squiggly-warning::before { display: block; content: ''; width: 100%; height: 100%; background: ${a}; }` ); const l = e.getColor(oi.T8); l && t.addRule( `.monaco-editor .squiggly-info { border-bottom: 4px double ${l}; }`); const d = e.getColor(oi.c6); d && t.addRule( `.monaco-editor .squiggly-info { background: url("data:image/svg+xml,${Zo(d)}") repeat-x bottom left; }` ); const c = e.getColor(oi.fe); c && t.addRule( `.monaco-editor .squiggly-info::before { display: block; content: ''; width: 100%; height: 100%; background: ${c}; }` ); const h = e.getColor(oi.fE); h && t.addRule( `.monaco-editor .squiggly-hint { border-bottom: 2px dotted ${h}; }`); const u = e.getColor(oi.Du); u && t.addRule( `.monaco-editor .squiggly-hint { background: url("data:image/svg+xml,${function(e){return Go+encodeURIComponent(e.toString())+Yo}(u)}") no-repeat bottom left; }` ); const g = e.getColor(Ze.zu); g && t.addRule( `.monaco-editor.showUnused .squiggly-inline-unnecessary { opacity: ${g.rgba.a}; }` ); const p = e.getColor(Ze.kp); p && t.addRule( `.monaco-editor.showUnused .squiggly-unnecessary { border-bottom: 2px dashed ${p}; }` ); const m = e.getColor(oi.NO) || "inherit"; t.addRule( `.monaco-editor.showDeprecated .squiggly-inline-deprecated { text-decoration: line-through; text-decoration-color: ${m}}` ) })) }, 4527: (e, t, i) => { "use strict"; i.d(t, { H: () => g }); var n = i(6248), o = i(1640), r = i(6341), s = i(4565), a = i(8819), l = i(2065), d = i(9422), c = i(7781), h = i(1106), u = function(e, t) { return function(i, n) { t(i, n, e) } }; let g = class extends r.Gm { constructor(e, t, i, n, o, r, s, a, l, d) { super(e, Object.assign(Object.assign({}, i.getRawOptions()), { overflowWidgetsDomNode: i.getOverflowWidgetsDomNode() }), {}, n, o, r, s, a, l, d), this._parentEditor = i, this._overwriteOptions = t, super.updateOptions(this._overwriteOptions), this._register(i.onDidChangeConfiguration( (e => this._onParentConfigurationChanged(e)))) } getParentEditor() { return this._parentEditor } _onParentConfigurationChanged(e) { super.updateOptions(this._parentEditor.getRawOptions()), super.updateOptions( this._overwriteOptions) } updateOptions(e) { n.jB(this._overwriteOptions, e, !0), super.updateOptions(this._overwriteOptions) } }; g = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([u(3, l.TG), u(4, o.$), u(5, s.H), u(6, a.i6), u(7, c.XE), u(8, d.lT), u(9, h.F) ], g) }, 1329: (e, t, i) => { "use strict"; i.d(t, { T4: () => o, OY: () => r, Sj: () => s, Uo: () => a, hP: () => l }); var n = i(3860); class o { constructor(e, t, i = !1) { this._range = e, this._text = t, this.insertsAutoWhitespace = i } getEditOperations(e, t) { t.addTrackedEditOperation(this._range, this._text) } computeCursorState(e, t) { let i = t.getInverseEditOperations()[0].range; return new n.Y(i.endLineNumber, i.endColumn, i.endLineNumber, i.endColumn) } } class r { constructor(e, t) { this._range = e, this._text = t } getEditOperations(e, t) { t.addTrackedEditOperation(this._range, this._text) } computeCursorState(e, t) { const i = t.getInverseEditOperations()[0].range; return new n.Y(i.startLineNumber, i.startColumn, i.endLineNumber, i.endColumn) } } class s { constructor(e, t, i = !1) { this._range = e, this._text = t, this.insertsAutoWhitespace = i } getEditOperations(e, t) { t.addTrackedEditOperation(this._range, this._text) } computeCursorState(e, t) { let i = t.getInverseEditOperations()[0].range; return new n.Y(i.startLineNumber, i.startColumn, i.startLineNumber, i.startColumn) } } class a { constructor(e, t, i, n, o = !1) { this._range = e, this._text = t, this._columnDeltaOffset = n, this._lineNumberDeltaOffset = i, this.insertsAutoWhitespace = o } getEditOperations(e, t) { t.addTrackedEditOperation(this._range, this._text) } computeCursorState(e, t) { let i = t.getInverseEditOperations()[0].range; return new n.Y(i.endLineNumber + this._lineNumberDeltaOffset, i.endColumn + this._columnDeltaOffset, i.endLineNumber + this._lineNumberDeltaOffset, i.endColumn + this._columnDeltaOffset) } } class l { constructor(e, t, i, n = !1) { this._range = e, this._text = t, this._initialSelection = i, this._forceMoveMarkers = n, this._selectionId = null } getEditOperations(e, t) { t.addTrackedEditOperation(this._range, this._text, this._forceMoveMarkers), this._selectionId = t.trackSelection(this._initialSelection) } computeCursorState(e, t) { return t.getTrackedSelection(this._selectionId) } } }, 291: (e, t, i) => { "use strict"; i.d(t, { U: () => c }); var n = i(7295), o = i(3181), r = i(4314), s = i(3860), a = i(3831); const l = Object.create(null); function d(e, t) { if (t <= 0) return ""; l[e] || (l[e] = ["", e]); const i = l[e]; for (let n = i.length; n <= t; n++) i[n] = i[n - 1] + e; return i[t] } class c { constructor(e, t) { this._opts = t, this._selection = e, this._selectionId = null, this._useLastEditRangeForCursorEndPosition = ! 1, this._selectionStartColumnStaysPut = !1 } static unshiftIndent(e, t, i, n, r) { const s = o.io.visibleColumnFromColumn(e, t, i); if (r) { const e = d(" ", n); return d(e, o.io.prevIndentTabStop(s, n) / n) } return d("\t", o.io.prevRenderTabStop(s, i) / i) } static shiftIndent(e, t, i, n, r) { const s = o.io.visibleColumnFromColumn(e, t, i); if (r) { const e = d(" ", n); return d(e, o.io.nextIndentTabStop(s, n) / n) } return d("\t", o.io.nextRenderTabStop(s, i) / i) } _addEditOperation(e, t, i) { this._useLastEditRangeForCursorEndPosition ? e.addTrackedEditOperation( t, i) : e.addEditOperation(t, i) } getEditOperations(e, t) { const i = this._selection.startLineNumber; let s = this._selection.endLineNumber; 1 === this._selection.endColumn && i !== s && (s -= 1); const { tabSize: l, indentSize: h, insertSpaces: u } = this._opts, g = i === s; if (this._opts.useTabStops) { this._selection.isEmpty() && /^\s*$/.test(e.getLineContent(i)) && ( this._useLastEditRangeForCursorEndPosition = !0); let d = 0, p = 0; for (let m = i; m <= s; m++, d = p) { p = 0; let s, f = e.getLineContent(m), _ = n.LC(f); if ((!this._opts.isUnshift || 0 !== f.length && 0 !== _) && (g || this._opts.isUnshift || 0 !== f.length)) { if (-1 === _ && (_ = f.length), m > 1 && o.io.visibleColumnFromColumn( f, _ + 1, l) % h != 0 && e.isCheapToTokenize(m - 1)) { let t = a.zu.getEnterAction(this._opts.autoIndent, e, new r.e(m - 1, e.getLineMaxColumn(m - 1), m - 1, e.getLineMaxColumn(m - 1))); if (t) { if (p = d, t.appendText) for (let e = 0, i = t.appendText.length; e < i && p < h && 32 === t.appendText.charCodeAt(e); e++) p++; t.removeText && (p = Math.max(0, p - t.removeText)); for (let e = 0; e < p && 0 !== _ && 32 === f.charCodeAt(_ - 1); e++) _-- } } this._opts.isUnshift && 0 === _ || (s = this._opts.isUnshift ? c.unshiftIndent( f, _ + 1, l, h, u) : c.shiftIndent(f, _ + 1, l, h, u), this._addEditOperation( t, new r.e(m, 1, m, _ + 1), s), m !== i || this._selection.isEmpty() || (this._selectionStartColumnStaysPut = this._selection.startColumn <= _ + 1)) } } } else { !this._opts.isUnshift && this._selection.isEmpty() && 0 === e.getLineLength( i) && (this._useLastEditRangeForCursorEndPosition = !0); const o = u ? d(" ", h) : "\t"; for (let a = i; a <= s; a++) { const s = e.getLineContent(a); let l = n.LC(s); if ((!this._opts.isUnshift || 0 !== s.length && 0 !== l) && (g || this._opts.isUnshift || 0 !== s.length) && (-1 === l && (l = s.length), ! this._opts.isUnshift || 0 !== l)) if (this._opts.isUnshift) { l = Math.min(l, h); for (let e = 0; e < l; e++) if (9 === s.charCodeAt(e)) { l = e + 1; break } this._addEditOperation(t, new r.e(a, 1, a, l + 1), "") } else this._addEditOperation(t, new r.e(a, 1, a, 1), o), a !== i || this._selection.isEmpty() || (this._selectionStartColumnStaysPut = 1 === this._selection.startColumn) } } this._selectionId = t.trackSelection(this._selection) } computeCursorState(e, t) { if (this._useLastEditRangeForCursorEndPosition) { let e = t.getInverseEditOperations()[0]; return new s.Y(e.range.endLineNumber, e.range.endColumn, e.range.endLineNumber, e.range.endColumn) } const i = t.getTrackedSelection(this._selectionId); if (this._selectionStartColumnStaysPut) { let e = this._selection.startColumn; return i.startColumn <= e ? i : 0 === i.getDirection() ? new s.Y(i.startLineNumber, e, i.endLineNumber, i.endColumn) : new s.Y(i.endLineNumber, i.endColumn, i.startLineNumber, e) } return i } } }, 6345: (e, t, i) => { "use strict"; i.d(t, { nG: () => p, fv: () => w, ei: () => N, Pe: () => D }); var n = i(3580), o = i(4669), r = i(5976), s = i(6248), a = i(9488), l = i(4141), d = i(2334), c = i(7374), h = i(3193), u = i(9872), g = i(6626); const p = new class { constructor() { this._tabFocus = !1, this._onDidChangeTabFocus = new o.Q5, this.onDidChangeTabFocus = this._onDidChangeTabFocus.event } getTabFocusMode() { return this._tabFocus } setTabFocusMode(e) { this._tabFocus !== e && (this._tabFocus = e, this._onDidChangeTabFocus .fire(this._tabFocus)) } }, m = Object.hasOwnProperty; class f { constructor() { this._values = [] } _read(e) { return this._values[e] } get(e) { return this._values[e] } _write(e, t) { this._values[e] = t } } class _ { constructor() { this._values = [] } _read(e) { return this._values[e] } _write(e, t) { this._values[e] = t } } class b { static readOptions(e) { const t = e, i = new _; for (const e of l.Bc) { const n = "_never_" === e.name ? void 0 : t[e.name]; i._write(e.id, n) } return i } static validateOptions(e) { const t = new l.hu; for (const i of l.Bc) t._write(i.id, i.validate(e._read(i.id))); return t } static computeOptions(e, t) { const i = new f; for (const n of l.Bc) i._write(n.id, n.compute(t, i, e._read(n.id))); return i } static _deepEquals(e, t) { if ("object" != typeof e || "object" != typeof t) return e === t; if (Array.isArray(e) || Array.isArray(t)) return !(!Array.isArray(e) || !Array.isArray(t)) && a.fS(e, t); for (let i in e) if (!b._deepEquals(e[i], t[i])) return !1; return !0 } static checkEquals(e, t) { const i = []; let n = !1; for (const o of l.Bc) { const r = !b._deepEquals(e._read(o.id), t._read(o.id)); i[o.id] = r, r && (n = !0) } return n ? new l.Bb(i) : null } } function v(e) { const t = s.I8(e); return function(e) { const t = e.wordWrap; !0 === t ? e.wordWrap = "on" : !1 === t && (e.wordWrap = "off"); const i = e.lineNumbers; !0 === i ? e.lineNumbers = "on" : !1 === i && (e.lineNumbers = "off"), ! 1 === e.autoClosingBrackets && (e.autoClosingBrackets = "never", e.autoClosingQuotes = "never", e.autoSurround = "never"), "visible" === e.cursorBlinking && (e.cursorBlinking = "solid"); const n = e.renderWhitespace; !0 === n ? e.renderWhitespace = "boundary" : !1 === n && (e.renderWhitespace = "none"); const o = e.renderLineHighlight; !0 === o ? e.renderLineHighlight = "line" : !1 === o && (e.renderLineHighlight = "none"); const r = e.acceptSuggestionOnEnter; !0 === r ? e.acceptSuggestionOnEnter = "on" : !1 === r && (e.acceptSuggestionOnEnter = "off"); const s = e.tabCompletion; !1 === s ? e.tabCompletion = "off" : !0 === s && (e.tabCompletion = "onlySnippets"); const a = e.suggest; if (a && "object" == typeof a.filteredTypes && a.filteredTypes) { const e = { 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" }; (0, g.E)(e, (e => { const t = a.filteredTypes[e.key]; !1 === t && (a[e.value] = t) })) } const l = e.hover; !0 === l ? e.hover = { enabled: !0 } : !1 === l && (e.hover = { enabled: !1 }); const d = e.parameterHints; !0 === d ? e.parameterHints = { enabled: !0 } : !1 === d && (e.parameterHints = { enabled: !1 }); const c = e.autoIndent; !0 === c ? e.autoIndent = "full" : !1 === c && (e.autoIndent = "advanced"); const h = e.matchBrackets; !0 === h ? e.matchBrackets = "always" : !1 === h && (e.matchBrackets = "never") }(t), t } class w extends r.JT { constructor(e, t) { super(), this._onDidChange = this._register(new o.Q5), this.onDidChange = this._onDidChange.event, this._onDidChangeFast = this._register(new o .Q5), this.onDidChangeFast = this._onDidChangeFast.event, this.isSimpleWidget = e, this._isDominatedByLongLines = !1, this._computeOptionsMemory = new l.LJ, this._viewLineCount = 1, this._lineNumbersDigitCount = 1, this._rawOptions = v(t), this._readOptions = b.readOptions(this._rawOptions), this._validatedOptions = b.validateOptions(this._readOptions), this._register( d.C.onDidChangeZoomLevel((e => this._recomputeOptions()))), this._register( p.onDidChangeTabFocus((e => this._recomputeOptions()))) } observeReferenceElement(e) {} updatePixelRatio() {} _recomputeOptions() { const e = this.options, t = this._computeInternalOptions(); if (e) { const i = b.checkEquals(e, t); if (null === i) return; this.options = t, this._onDidChangeFast.fire(i), this._onDidChange.fire( i) } else this.options = t } getRawOptions() { return this._rawOptions } _computeInternalOptions() { const e = this._getEnvConfiguration(), t = c.E4.createFromValidatedSettings(this._validatedOptions, e.zoomLevel, e.pixelRatio, this.isSimpleWidget), i = { memory: this._computeOptionsMemory, outerWidth: e.outerWidth, outerHeight: e.outerHeight, fontInfo: this.readConfiguration(t), extraEditorClassName: e.extraEditorClassName, isDominatedByLongLines: this._isDominatedByLongLines, viewLineCount: this._viewLineCount, lineNumbersDigitCount: this._lineNumbersDigitCount, emptySelectionClipboard: e.emptySelectionClipboard, pixelRatio: e.pixelRatio, tabFocusMode: p.getTabFocusMode(), accessibilitySupport: e.accessibilitySupport }; return b.computeOptions(this._validatedOptions, i) } static _subsetEquals(e, t) { for (const i in t) if (m.call(t, i)) { const n = t[i], o = e[i]; if (o === n) continue; if (Array.isArray(o) && Array.isArray(n)) { if (!a.fS(o, n)) return !1; continue } if (o && "object" == typeof o && n && "object" == typeof n) { if (!this._subsetEquals(o, n)) return !1; continue } return !1 } return !0 } updateOptions(e) { if (void 0 === e) return; const t = v(e); w._subsetEquals(this._rawOptions, t) || (this._rawOptions = s.jB(this ._rawOptions, t || {}), this._readOptions = b.readOptions(this._rawOptions), this._validatedOptions = b.validateOptions(this._readOptions), this ._recomputeOptions()) } setIsDominatedByLongLines(e) { this._isDominatedByLongLines = e, this._recomputeOptions() } setMaxLineNumber(e) { const t = w._digitCount(e); this._lineNumbersDigitCount !== t && (this._lineNumbersDigitCount = t, this._recomputeOptions()) } setViewLineCount(e) { this._viewLineCount !== e && (this._viewLineCount = e, this._recomputeOptions()) } static _digitCount(e) { let t = 0; for (; e;) e = Math.floor(e / 10), t++; return t || 1 } } const C = Object.freeze({ id: "editor", order: 5, type: "object", title: n.N("editorConfigurationTitle", "Editor"), scope: 5 }), y = u.B.as(h.IP.Configuration), S = Object.assign(Object.assign({}, C), { properties: { "editor.tabSize": { type: "number", default: l.DB.tabSize, minimum: 1, markdownDescription: n.N("tabSize", "The number of spaces a tab is equal to. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on." ) }, "editor.insertSpaces": { type: "boolean", default: l.DB.insertSpaces, markdownDescription: n.N("insertSpaces", "Insert spaces when pressing `Tab`. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on." ) }, "editor.detectIndentation": { type: "boolean", default: l.DB.detectIndentation, markdownDescription: n.N("detectIndentation", "Controls whether `#editor.tabSize#` and `#editor.insertSpaces#` will be automatically detected when a file is opened based on the file contents." ) }, "editor.trimAutoWhitespace": { type: "boolean", default: l.DB.trimAutoWhitespace, description: n.N("trimAutoWhitespace", "Remove trailing auto inserted whitespace.") }, "editor.largeFileOptimizations": { type: "boolean", default: l.DB.largeFileOptimizations, description: n.N("largeFileOptimizations", "Special handling for large files to disable certain memory intensive features." ) }, "editor.wordBasedSuggestions": { type: "boolean", default: !0, description: n.N("wordBasedSuggestions", "Controls whether completions should be computed based on words in the document." ) }, "editor.wordBasedSuggestionsMode": { enum: ["currentDocument", "matchingDocuments", "allDocuments"], default: "matchingDocuments", enumDescriptions: [n.N("wordBasedSuggestionsMode.currentDocument", "Only suggest words from the active document."), n.N( "wordBasedSuggestionsMode.matchingDocuments", "Suggest words from all open documents of the same language."), n .N("wordBasedSuggestionsMode.allDocuments", "Suggest words from all open documents.") ], description: n.N("wordBasedSuggestionsMode", "Controls from which documents word based completions are computed." ) }, "editor.semanticHighlighting.enabled": { enum: [!0, !1, "configuredByTheme"], enumDescriptions: [n.N("semanticHighlighting.true", "Semantic highlighting enabled for all color themes."), n.N( "semanticHighlighting.false", "Semantic highlighting disabled for all color themes."), n.N( "semanticHighlighting.configuredByTheme", "Semantic highlighting is configured by the current color theme's `semanticHighlighting` setting." )], default: "configuredByTheme", description: n.N("semanticHighlighting.enabled", "Controls whether the semanticHighlighting is shown for the languages that support it." ) }, "editor.stablePeek": { type: "boolean", default: !1, markdownDescription: n.N("stablePeek", "Keep peek editors open even when double clicking their content or when hitting `Escape`." ) }, "editor.maxTokenizationLineLength": { type: "integer", default: 2e4, description: n.N("maxTokenizationLineLength", "Lines above this length will not be tokenized for performance reasons" ) }, "diffEditor.maxComputationTime": { type: "number", default: 5e3, description: n.N("maxComputationTime", "Timeout in milliseconds after which diff computation is cancelled. Use 0 for no timeout." ) }, "diffEditor.renderSideBySide": { type: "boolean", default: !0, description: n.N("sideBySide", "Controls whether the diff editor shows the diff side by side or inline." ) }, "diffEditor.ignoreTrimWhitespace": { type: "boolean", default: !0, description: n.N("ignoreTrimWhitespace", "When enabled, the diff editor ignores changes in leading or trailing whitespace." ) }, "diffEditor.renderIndicators": { type: "boolean", default: !0, description: n.N("renderIndicators", "Controls whether the diff editor shows +/- indicators for added/removed changes." ) }, "diffEditor.codeLens": { type: "boolean", default: !1, description: n.N("codeLens", "Controls whether the editor shows CodeLens.") }, "diffEditor.wordWrap": { type: "string", enum: ["off", "on", "inherit"], default: "inherit", markdownEnumDescriptions: [n.N("wordWrap.off", "Lines will never wrap."), n.N("wordWrap.on", "Lines will wrap at the viewport width."), n.N("wordWrap.inherit", "Lines will wrap according to the `#editor.wordWrap#` setting.")] } } }); for (const e of l.Bc) { const t = e.schema; if (void 0 !== t) if (void 0 !== (x = t).type || void 0 !== x.anyOf) S.properties[ `editor.${e.name}`] = t; else for (let e in t) m.call(t, e) && (S.properties[e] = t[e]) } var x; let k = null; function L() { return null === k && (k = Object.create(null), Object.keys(S.properties) .forEach((e => { k[e] = !0 }))), k } function N(e) { return L()[`editor.${e}`] || !1 } function D(e) { return L()[`diffEditor.${e}`] || !1 } y.registerConfiguration(S) }, 4141: (e, t, i) => { "use strict"; i.d(t, { y0: () => s, Bb: () => a, hu: () => l, LJ: () => d, O7: () => g, NY: () => b, d2: () => C, n0: () => y, gk: () => x, $J: () => k, hL: () => N, DB: () => D, Bc: () => E, BH: () => T }); var n = i(3580), o = i(1432), r = i(7461); const s = 8; class a { constructor(e) { this._values = e } hasChanged(e) { return this._values[e] } } class l { constructor() { this._values = [] } _read(e) { return this._values[e] } get(e) { return this._values[e] } _write(e, t) { this._values[e] = t } } class d { constructor() { this.stableMinimapLayoutInput = null, this.stableFitMaxMinimapScale = 0, this.stableFitRemainingWidth = 0 } } class c { constructor(e, t, i, n) { this.id = e, this.name = t, this.defaultValue = i, this.schema = n } compute(e, t, i) { return i } } class h { constructor(e, t = null) { this.schema = void 0, this.id = e, this.name = "_never_", this.defaultValue = void 0, this.deps = t } validate(e) { return this.defaultValue } } class u { constructor(e, t, i, n) { this.id = e, this.name = t, this.defaultValue = i, this.schema = n } validate(e) { return void 0 === e ? this.defaultValue : e } compute(e, t, i) { return i } } function g(e, t) { return void 0 === e ? t : "false" !== e && Boolean(e) } class p extends u { constructor(e, t, i, n) { void 0 !== n && (n.type = "boolean", n.default = i), super(e, t, i, n) } validate(e) { return g(e, this.defaultValue) } } class m extends u { constructor(e, t, i, n, o, r) { void 0 !== r && (r.type = "integer", r.default = i, r.minimum = n, r.maximum = o), super(e, t, i, r), this.minimum = n, this.maximum = o } static clampedInt(e, t, i, n) { if (void 0 === e) return t; let o = parseInt(e, 10); return isNaN(o) ? t : (o = Math.max(i, o), o = Math.min(n, o), 0 | o) } validate(e) { return m.clampedInt(e, this.defaultValue, this.minimum, this.maximum) } } class f extends u { constructor(e, t, i, n, o) { void 0 !== o && (o.type = "number", o.default = i), super(e, t, i, o), this.validationFn = n } static clamp(e, t, i) { return e < t ? t : e > i ? i : e } static float(e, t) { if ("number" == typeof e) return e; if (void 0 === e) return t; const i = parseFloat(e); return isNaN(i) ? t : i } validate(e) { return this.validationFn(f.float(e, this.defaultValue)) } } class _ extends u { static string(e, t) { return "string" != typeof e ? t : e } constructor(e, t, i, n) { void 0 !== n && (n.type = "string", n.default = i), super(e, t, i, n) } validate(e) { return _.string(e, this.defaultValue) } } function b(e, t, i) { return "string" != typeof e || -1 === i.indexOf(e) ? t : e } class v extends u { constructor(e, t, i, n, o) { void 0 !== o && (o.type = "string", o.enum = n, o.default = i), super( e, t, i, o), this._allowedValues = n } validate(e) { return b(e, this.defaultValue, this._allowedValues) } } class w extends c { constructor(e, t, i, n, o, r, s) { void 0 !== s && (s.type = "string", s.enum = o, s.default = n), super( e, t, i, s), this._allowedValues = o, this._convert = r } validate(e) { return "string" != typeof e || -1 === this._allowedValues.indexOf(e) ? this.defaultValue : this._convert(e) } } var C; ! function(e) { e[e.Line = 1] = "Line", e[e.Block = 2] = "Block", e[e.Underline = 3] = "Underline", e[e.LineThin = 4] = "LineThin", e[e.BlockOutline = 5] = "BlockOutline", e[e.UnderlineThin = 6] = "UnderlineThin" }(C || (C = {})); class y extends c { constructor() { super(43, "fontLigatures", y.OFF, { anyOf: [{ type: "boolean", description: n.N("fontLigatures", "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: n.N("fontFeatureSettings", "Explicit 'font-feature-settings' CSS property. A boolean can be passed instead if one only needs to turn on/off ligatures." ) }], description: n.N("fontLigaturesGeneral", "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(e) { return void 0 === e ? this.defaultValue : "string" == typeof e ? "false" === e ? y.OFF : "true" === e ? y.ON : e : Boolean(e) ? y.ON : y.OFF } } y.OFF = '"liga" off, "calt" off', y.ON = '"liga" on, "calt" on'; class S extends c { constructor() { super(45, "fontWeight", N.fontWeight, { anyOf: [{ type: "number", minimum: S.MINIMUM_VALUE, maximum: S.MAXIMUM_VALUE, errorMessage: n.N("fontWeightErrorMessage", '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: S.SUGGESTION_VALUES }], default: N.fontWeight, description: n.N("fontWeight", 'Controls the font weight. Accepts "normal" and "bold" keywords or numbers between 1 and 1000.' ) }) } validate(e) { return "normal" === e || "bold" === e ? e : String(m.clampedInt(e, N.fontWeight, S.MINIMUM_VALUE, S.MAXIMUM_VALUE)) } } S.SUGGESTION_VALUES = ["normal", "bold", "100", "200", "300", "400", "500", "600", "700", "800", "900" ], S.MINIMUM_VALUE = 1, S.MAXIMUM_VALUE = 1e3; class x extends h { constructor() { super(130, [48, 57, 36, 64, 92, 59, 60, 94, 117, 120, 121, 122, 2]) } compute(e, t, i) { return x.computeLayout(t, { memory: e.memory, outerWidth: e.outerWidth, outerHeight: e.outerHeight, isDominatedByLongLines: e.isDominatedByLongLines, lineHeight: e.fontInfo.lineHeight, viewLineCount: e.viewLineCount, lineNumbersDigitCount: e.lineNumbersDigitCount, typicalHalfwidthCharacterWidth: e.fontInfo.typicalHalfwidthCharacterWidth, maxDigitWidth: e.fontInfo.maxDigitWidth, pixelRatio: e.pixelRatio }) } static computeContainedMinimapLineCount(e) { const t = e.height / e.lineHeight, i = e.scrollBeyondLastLine ? t - 1 : 0, n = (e.viewLineCount + i) / (e.pixelRatio * e.height); return { typicalViewportLineCount: t, extraLinesBeyondLastLine: i, desiredRatio: n, minimapLineCount: Math.floor(e.viewLineCount / n) } } static _computeMinimapLayout(e, t) { const i = e.outerWidth, n = e.outerHeight, o = e.pixelRatio; if (!e.minimap.enabled) return { renderMinimap: 0, minimapLeft: 0, minimapWidth: 0, minimapHeightIsEditorHeight: !1, minimapIsSampling: !1, minimapScale: 1, minimapLineHeight: 1, minimapCanvasInnerWidth: 0, minimapCanvasInnerHeight: Math.floor(o * n), minimapCanvasOuterWidth: 0, minimapCanvasOuterHeight: n }; const r = t.stableMinimapLayoutInput, a = r && e.outerHeight === r.outerHeight && e.lineHeight === r.lineHeight && e.typicalHalfwidthCharacterWidth === r.typicalHalfwidthCharacterWidth && e.pixelRatio === r.pixelRatio && e.scrollBeyondLastLine === r.scrollBeyondLastLine && e.minimap.enabled === r.minimap.enabled && e.minimap.side === r.minimap .side && e.minimap.size === r.minimap.size && e.minimap.showSlider === r.minimap.showSlider && e.minimap.renderCharacters === r.minimap.renderCharacters && e.minimap.maxColumn === r.minimap.maxColumn && e.minimap.scale === r.minimap .scale && e.verticalScrollbarWidth === r.verticalScrollbarWidth && e.isViewportWrapping === r.isViewportWrapping, l = e.lineHeight, d = e.typicalHalfwidthCharacterWidth, c = e.scrollBeyondLastLine, h = e.minimap.renderCharacters; let u = o >= 2 ? Math.round(2 * e.minimap.scale) : e.minimap.scale; const g = e.minimap.maxColumn, p = e.minimap.size, m = e.minimap.side, f = e.verticalScrollbarWidth, _ = e.viewLineCount, b = e.remainingWidth, v = e.isViewportWrapping, w = h ? 2 : 3; let C = Math.floor(o * n); const y = C / o; let S = !1, k = !1, L = w * u, N = u / o, D = 1; if ("fill" === p || "fit" === p) { const { typicalViewportLineCount: i, extraLinesBeyondLastLine: r, desiredRatio: s, minimapLineCount: d } = x.computeContainedMinimapLineCount({ viewLineCount: _, scrollBeyondLastLine: c, height: n, lineHeight: l, pixelRatio: o }); if (_ / d > 1) S = !0, k = !0, u = 1, L = 1, N = u / o; else { let n = !1, d = u + 1; if ("fit" === p) { const e = Math.ceil((_ + r) * L); v && a && b <= t.stableFitRemainingWidth ? (n = !0, d = t.stableFitMaxMinimapScale) : n = e > C } if ("fill" === p || n) { S = !0; const n = u; L = Math.min(l * o, Math.max(1, Math.floor(1 / s))), v && a && b <= t.stableFitRemainingWidth && (d = t.stableFitMaxMinimapScale), u = Math.min(d, Math.max(1, Math.floor(L / w))), u > n && (D = Math.min( 2, u / n)), N = u / o / D, C = Math.ceil(Math.max(i, _ + r) * L), v ? (t.stableMinimapLayoutInput = e, t.stableFitRemainingWidth = b, t.stableFitMaxMinimapScale = u) : (t.stableMinimapLayoutInput = null, t.stableFitRemainingWidth = 0) } } } const E = Math.floor(g * N), I = Math.min(E, Math.max(0, Math.floor((b - f - 2) * N / (d + N))) + s); let T = Math.floor(o * I); const M = T / o; return T = Math.floor(T * D), { renderMinimap: h ? 1 : 2, minimapLeft: "left" === m ? 0 : i - I - f, minimapWidth: I, minimapHeightIsEditorHeight: S, minimapIsSampling: k, minimapScale: u, minimapLineHeight: L, minimapCanvasInnerWidth: T, minimapCanvasInnerHeight: C, minimapCanvasOuterWidth: M, minimapCanvasOuterHeight: y } } static computeLayout(e, t) { const i = 0 | t.outerWidth, n = 0 | t.outerHeight, o = 0 | t.lineHeight, r = 0 | t.lineNumbersDigitCount, s = t.typicalHalfwidthCharacterWidth, a = t.maxDigitWidth, l = t.pixelRatio, c = t.viewLineCount, h = e.get(122), u = "inherit" === h ? e.get(121) : h, g = "inherit" === u ? e.get(117) : u, p = e.get(120), f = e.get(2), _ = t.isDominatedByLongLines, b = e.get(48), v = 0 !== e.get(59).renderType, w = e.get(60), C = e.get(94), y = e.get(64), S = e.get(92), k = S.verticalScrollbarSize, L = S.verticalHasArrows, N = S.arrowSize, D = S.horizontalScrollbarSize, E = e.get(57), I = e.get(36); let T; if ("string" == typeof E && /^\d+(\.\d+)?ch$/.test(E)) { const e = parseFloat(E.substr(0, E.length - 2)); T = m.clampedInt(e * s, 0, 0, 1e3) } else T = m.clampedInt(E, 0, 0, 1e3); I && (T += 16); let M = 0; if (v) { const e = Math.max(r, w); M = Math.round(e * a) } let A = 0; b && (A = o); let R = 0, O = R + A, P = O + M, F = P + T; const B = i - A - M - T; let W = !1, z = !1, V = -1; 2 !== f && ("inherit" === u && _ ? (W = !0, z = !0) : "on" === g || "bounded" === g ? z = !0 : "wordWrapColumn" === g && (V = p)); const H = x._computeMinimapLayout({ outerWidth: i, outerHeight: n, lineHeight: o, typicalHalfwidthCharacterWidth: s, pixelRatio: l, scrollBeyondLastLine: C, minimap: y, verticalScrollbarWidth: k, viewLineCount: c, remainingWidth: B, isViewportWrapping: z }, t.memory || new d); 0 !== H.renderMinimap && 0 === H.minimapLeft && (R += H.minimapWidth, O += H.minimapWidth, P += H.minimapWidth, F += H.minimapWidth); const U = B - H.minimapWidth, j = Math.max(1, Math.floor((U - k - 2) / s)), K = L ? N : 0; return z && (V = Math.max(1, j), "bounded" === g && (V = Math.min(V, p))), { width: i, height: n, glyphMarginLeft: R, glyphMarginWidth: A, lineNumbersLeft: O, lineNumbersWidth: M, decorationsLeft: P, decorationsWidth: T, contentLeft: F, contentWidth: U, minimap: H, viewportColumn: j, isWordWrapMinified: W, isViewportWrapping: z, wrappingColumn: V, verticalScrollbarWidth: k, horizontalScrollbarHeight: D, overviewRuler: { top: K, width: k, height: n - 2 * K, right: 0 } } } } function k(e) { const t = e.get(87); return "editable" === t ? e.get(80) : "on" !== t } function L(e, t) { if ("string" != typeof e) return t; switch (e) { case "hidden": return 2; case "visible": return 3; default: return 1 } } const N = { fontFamily: o.dz ? "Menlo, Monaco, 'Courier New', monospace" : o.IJ ? "'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback'" : "Consolas, 'Courier New', monospace", fontWeight: "normal", fontSize: o.dz ? 12 : 14, lineHeight: 0, letterSpacing: 0 }, D = { tabSize: 4, indentSize: 4, insertSpaces: !0, detectIndentation: !0, trimAutoWhitespace: !0, largeFileOptimizations: !0, bracketPairColorizationOptions: { enabled: !1 } }, E = []; function I(e) { return E[e.id] = e, e } const T = { acceptSuggestionOnCommitCharacter: I(new p(0, "acceptSuggestionOnCommitCharacter", !0, { markdownDescription: n.N("acceptSuggestionOnCommitCharacter", "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: I(new v(1, "acceptSuggestionOnEnter", "on", [ "on", "smart", "off" ], { markdownEnumDescriptions: ["", n.N("acceptSuggestionOnEnterSmart", "Only accept a suggestion with `Enter` when it makes a textual change." ), ""], markdownDescription: n.N("acceptSuggestionOnEnter", "Controls whether suggestions should be accepted on `Enter`, in addition to `Tab`. Helps to avoid ambiguity between inserting new lines or accepting suggestions." ) })), accessibilitySupport: I(new class extends c { constructor() { super(2, "accessibilitySupport", 0, { type: "string", enum: ["auto", "on", "off"], enumDescriptions: [n.N("accessibilitySupport.auto", "The editor will use platform APIs to detect when a Screen Reader is attached." ), n.N("accessibilitySupport.on", "The editor will be permanently optimized for usage with a Screen Reader. Word wrapping will be disabled." ), n.N("accessibilitySupport.off", "The editor will never be optimized for usage with a Screen Reader." )], default: "auto", description: n.N("accessibilitySupport", "Controls whether the editor should run in a mode where it is optimized for screen readers. Setting to on will disable word wrapping." ) }) } validate(e) { switch (e) { case "auto": return 0; case "off": return 1; case "on": return 2 } return this.defaultValue } compute(e, t, i) { return 0 === i ? e.accessibilitySupport : i } }), accessibilityPageSize: I(new m(3, "accessibilityPageSize", 10, 1, 1073741824, { description: n.N("accessibilityPageSize", "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." ) })), ariaLabel: I(new _(4, "ariaLabel", n.N("editorViewAccessibleLabel", "Editor content"))), autoClosingBrackets: I(new v(5, "autoClosingBrackets", "languageDefined", ["always", "languageDefined", "beforeWhitespace", "never" ], { enumDescriptions: ["", n.N( "editor.autoClosingBrackets.languageDefined", "Use language configurations to determine when to autoclose brackets." ), n.N("editor.autoClosingBrackets.beforeWhitespace", "Autoclose brackets only when the cursor is to the left of whitespace." ), ""], description: n.N("autoClosingBrackets", "Controls whether the editor should automatically close brackets after the user adds an opening bracket." ) })), autoClosingDelete: I(new v(6, "autoClosingDelete", "auto", ["always", "auto", "never" ], { enumDescriptions: ["", n.N("editor.autoClosingDelete.auto", "Remove adjacent closing quotes or brackets only if they were automatically inserted." ), ""], description: n.N("autoClosingDelete", "Controls whether the editor should remove adjacent closing quotes or brackets when deleting." ) })), autoClosingOvertype: I(new v(7, "autoClosingOvertype", "auto", [ "always", "auto", "never" ], { enumDescriptions: ["", n.N("editor.autoClosingOvertype.auto", "Type over closing quotes or brackets only if they were automatically inserted." ), ""], description: n.N("autoClosingOvertype", "Controls whether the editor should type over closing quotes or brackets." ) })), autoClosingQuotes: I(new v(8, "autoClosingQuotes", "languageDefined", [ "always", "languageDefined", "beforeWhitespace", "never" ], { enumDescriptions: ["", n.N( "editor.autoClosingQuotes.languageDefined", "Use language configurations to determine when to autoclose quotes." ), n.N("editor.autoClosingQuotes.beforeWhitespace", "Autoclose quotes only when the cursor is to the left of whitespace." ), ""], description: n.N("autoClosingQuotes", "Controls whether the editor should automatically close quotes after the user adds an opening quote." ) })), autoIndent: I(new w(9, "autoIndent", 4, "full", ["none", "keep", "brackets", "advanced", "full" ], (function(e) { switch (e) { case "none": return 0; case "keep": return 1; case "brackets": return 2; case "advanced": return 3; case "full": return 4 } }), { enumDescriptions: [n.N("editor.autoIndent.none", "The editor will not insert indentation automatically."), n.N( "editor.autoIndent.keep", "The editor will keep the current line's indentation."), n.N( "editor.autoIndent.brackets", "The editor will keep the current line's indentation and honor language defined brackets." ), n.N("editor.autoIndent.advanced", "The editor will keep the current line's indentation, honor language defined brackets and invoke special onEnterRules defined by languages." ), n.N("editor.autoIndent.full", "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: n.N("autoIndent", "Controls whether the editor should automatically adjust the indentation when users type, paste, move or indent lines." ) })), automaticLayout: I(new p(10, "automaticLayout", !1)), autoSurround: I(new v(11, "autoSurround", "languageDefined", [ "languageDefined", "quotes", "brackets", "never" ], { enumDescriptions: [n.N("editor.autoSurround.languageDefined", "Use language configurations to determine when to automatically surround selections." ), n.N("editor.autoSurround.quotes", "Surround with quotes but not brackets."), n.N( "editor.autoSurround.brackets", "Surround with brackets but not quotes."), ""], description: n.N("autoSurround", "Controls whether the editor should automatically surround selections when typing quotes or brackets." ) })), bracketPairColorization: I(new class extends c { constructor() { const e = { enabled: D.bracketPairColorizationOptions.enabled }; super(12, "bracketPairColorization", e, { "editor.bracketPairColorization.enabled": { type: "boolean", default: e.enabled, description: n.N("bracketPairColorization.enabled", "Controls whether bracket pair colorization is enabled or not. Use 'workbench.colorCustomizations' to override the bracket highlight colors." ) } }) } validate(e) { return e && "object" == typeof e ? { enabled: g(e.enabled, this.defaultValue.enabled) } : this.defaultValue } }), stickyTabStops: I(new p(104, "stickyTabStops", !1, { description: n.N("stickyTabStops", "Emulate selection behavior of tab characters when using spaces for indentation. Selection will stick to tab stops." ) })), codeLens: I(new p(13, "codeLens", !0, { description: n.N("codeLens", "Controls whether the editor shows CodeLens.") })), codeLensFontFamily: I(new _(14, "codeLensFontFamily", "", { description: n.N("codeLensFontFamily", "Controls the font family for CodeLens.") })), codeLensFontSize: I(new m(15, "codeLensFontSize", 0, 0, 100, { type: "number", default: 0, minimum: 0, maximum: 100, markdownDescription: n.N("codeLensFontSize", "Controls the font size in pixels for CodeLens. When set to `0`, the 90% of `#editor.fontSize#` is used." ) })), colorDecorators: I(new p(16, "colorDecorators", !0, { description: n.N("colorDecorators", "Controls whether the editor should render the inline color decorators and color picker." ) })), columnSelection: I(new p(17, "columnSelection", !1, { description: n.N("columnSelection", "Enable that the selection with the mouse and keys is doing column selection." ) })), comments: I(new class extends c { constructor() { const e = { insertSpace: !0, ignoreEmptyLines: !0 }; super(18, "comments", e, { "editor.comments.insertSpace": { type: "boolean", default: e.insertSpace, description: n.N("comments.insertSpace", "Controls whether a space character is inserted when commenting." ) }, "editor.comments.ignoreEmptyLines": { type: "boolean", default: e.ignoreEmptyLines, description: n.N("comments.ignoreEmptyLines", "Controls if empty lines should be ignored with toggle, add or remove actions for line comments." ) } }) } validate(e) { if (!e || "object" != typeof e) return this.defaultValue; const t = e; return { insertSpace: g(t.insertSpace, this.defaultValue.insertSpace), ignoreEmptyLines: g(t.ignoreEmptyLines, this.defaultValue.ignoreEmptyLines) } } }), contextmenu: I(new p(19, "contextmenu", !0)), copyWithSyntaxHighlighting: I(new p(20, "copyWithSyntaxHighlighting", ! 0, { description: n.N("copyWithSyntaxHighlighting", "Controls whether syntax highlighting should be copied into the clipboard." ) })), cursorBlinking: I(new w(21, "cursorBlinking", 1, "blink", ["blink", "smooth", "phase", "expand", "solid" ], (function(e) { switch (e) { case "blink": return 1; case "smooth": return 2; case "phase": return 3; case "expand": return 4; case "solid": return 5 } }), { description: n.N("cursorBlinking", "Control the cursor animation style.") })), cursorSmoothCaretAnimation: I(new p(22, "cursorSmoothCaretAnimation", ! 1, { description: n.N("cursorSmoothCaretAnimation", "Controls whether the smooth caret animation should be enabled.") })), cursorStyle: I(new w(23, "cursorStyle", C.Line, "line", ["line", "block", "underline", "line-thin", "block-outline", "underline-thin" ], (function(e) { switch (e) { case "line": return C.Line; case "block": return C.Block; case "underline": return C.Underline; case "line-thin": return C.LineThin; case "block-outline": return C.BlockOutline; case "underline-thin": return C.UnderlineThin } }), { description: n.N("cursorStyle", "Controls the cursor style.") })), cursorSurroundingLines: I(new m(24, "cursorSurroundingLines", 0, 0, 1073741824, { description: n.N("cursorSurroundingLines", "Controls the minimal number of visible leading and trailing lines surrounding the cursor. Known as 'scrollOff' or 'scrollOffset' in some other editors." ) })), cursorSurroundingLinesStyle: I(new v(25, "cursorSurroundingLinesStyle", "default", ["default", "all"], { enumDescriptions: [n.N("cursorSurroundingLinesStyle.default", "`cursorSurroundingLines` is enforced only when triggered via the keyboard or API." ), n.N("cursorSurroundingLinesStyle.all", "`cursorSurroundingLines` is enforced always.")], description: n.N("cursorSurroundingLinesStyle", "Controls when `cursorSurroundingLines` should be enforced.") })), cursorWidth: I(new m(26, "cursorWidth", 0, 0, 1073741824, { markdownDescription: n.N("cursorWidth", "Controls the width of the cursor when `#editor.cursorStyle#` is set to `line`." ) })), disableLayerHinting: I(new p(27, "disableLayerHinting", !1)), disableMonospaceOptimizations: I(new p(28, "disableMonospaceOptimizations", !1)), domReadOnly: I(new p(29, "domReadOnly", !1)), dragAndDrop: I(new p(30, "dragAndDrop", !0, { description: n.N("dragAndDrop", "Controls whether the editor should allow moving selections via drag and drop." ) })), emptySelectionClipboard: I(new class extends p { constructor() { super(31, "emptySelectionClipboard", !0, { description: n.N("emptySelectionClipboard", "Controls whether copying without a selection copies the current line." ) }) } compute(e, t, i) { return i && e.emptySelectionClipboard } }), extraEditorClassName: I(new _(32, "extraEditorClassName", "")), fastScrollSensitivity: I(new f(33, "fastScrollSensitivity", 5, (e => e <= 0 ? 5 : e), { markdownDescription: n.N("fastScrollSensitivity", "Scrolling speed multiplier when pressing `Alt`.") })), find: I(new class extends c { constructor() { const e = { cursorMoveOnType: !0, seedSearchStringFromSelection: "always", autoFindInSelection: "never", globalFindClipboard: !1, addExtraSpaceOnTop: !0, loop: !0 }; super(34, "find", e, { "editor.find.cursorMoveOnType": { type: "boolean", default: e.cursorMoveOnType, description: n.N("find.cursorMoveOnType", "Controls whether the cursor should jump to find matches while typing." ) }, "editor.find.seedSearchStringFromSelection": { type: "string", enum: ["never", "always", "selection"], default: e.seedSearchStringFromSelection, enumDescriptions: [n.N( "editor.find.seedSearchStringFromSelection.never", "Never seed search string from the editor selection."), n.N( "editor.find.seedSearchStringFromSelection.always", "Always seed search string from the editor selection, including word at cursor position." ), n.N("editor.find.seedSearchStringFromSelection.selection", "Only seed search string from the editor selection.")], description: n.N("find.seedSearchStringFromSelection", "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: e.autoFindInSelection, enumDescriptions: [n.N("editor.find.autoFindInSelection.never", "Never turn on Find in Selection automatically (default)."), n.N("editor.find.autoFindInSelection.always", "Always turn on Find in Selection automatically."), n.N( "editor.find.autoFindInSelection.multiline", "Turn on Find in Selection automatically when multiple lines of content are selected." ) ], description: n.N("find.autoFindInSelection", "Controls the condition for turning on Find in Selection automatically." ) }, "editor.find.globalFindClipboard": { type: "boolean", default: e.globalFindClipboard, description: n.N("find.globalFindClipboard", "Controls whether the Find Widget should read or modify the shared find clipboard on macOS." ), included: o.dz }, "editor.find.addExtraSpaceOnTop": { type: "boolean", default: e.addExtraSpaceOnTop, description: n.N("find.addExtraSpaceOnTop", "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: e.loop, description: n.N("find.loop", "Controls whether the search automatically restarts from the beginning (or the end) when no further matches can be found." ) } }) } validate(e) { if (!e || "object" != typeof e) return this.defaultValue; const t = e; return { cursorMoveOnType: g(t.cursorMoveOnType, this.defaultValue.cursorMoveOnType), seedSearchStringFromSelection: "boolean" == typeof e.seedSearchStringFromSelection ? e.seedSearchStringFromSelection ? "always" : "never" : b(t.seedSearchStringFromSelection, this.defaultValue.seedSearchStringFromSelection, ["never", "always", "selection" ]), autoFindInSelection: "boolean" == typeof e.autoFindInSelection ? e.autoFindInSelection ? "always" : "never" : b(t.autoFindInSelection, this.defaultValue.autoFindInSelection, ["never", "always", "multiline" ]), globalFindClipboard: g(t.globalFindClipboard, this.defaultValue.globalFindClipboard), addExtraSpaceOnTop: g(t.addExtraSpaceOnTop, this.defaultValue.addExtraSpaceOnTop), loop: g(t.loop, this.defaultValue.loop) } } }), fixedOverflowWidgets: I(new p(35, "fixedOverflowWidgets", !1)), folding: I(new p(36, "folding", !0, { description: n.N("folding", "Controls whether the editor has code folding enabled.") })), foldingStrategy: I(new v(37, "foldingStrategy", "auto", ["auto", "indentation" ], { enumDescriptions: [n.N("foldingStrategy.auto", "Use a language-specific folding strategy if available, else the indentation-based one." ), n.N("foldingStrategy.indentation", "Use the indentation-based folding strategy.")], description: n.N("foldingStrategy", "Controls the strategy for computing folding ranges.") })), foldingHighlight: I(new p(38, "foldingHighlight", !0, { description: n.N("foldingHighlight", "Controls whether the editor should highlight folded ranges.") })), foldingImportsByDefault: I(new p(39, "foldingImportsByDefault", !1, { description: n.N("foldingImportsByDefault", "Controls whether the editor automatically collapses import ranges." ) })), unfoldOnClickAfterEndOfLine: I(new p(40, "unfoldOnClickAfterEndOfLine", ! 1, { description: n.N("unfoldOnClickAfterEndOfLine", "Controls whether clicking on the empty content after a folded line will unfold the line." ) })), fontFamily: I(new _(41, "fontFamily", N.fontFamily, { description: n.N("fontFamily", "Controls the font family.") })), fontInfo: I(new class extends h { constructor() { super(42) } compute(e, t, i) { return e.fontInfo } }), fontLigatures2: I(new y), fontSize: I(new class extends u { constructor() { super(44, "fontSize", N.fontSize, { type: "number", minimum: 6, maximum: 100, default: N.fontSize, description: n.N("fontSize", "Controls the font size in pixels.") }) } validate(e) { let t = f.float(e, this.defaultValue); return 0 === t ? N.fontSize : f.clamp(t, 6, 100) } compute(e, t, i) { return e.fontInfo.fontSize } }), fontWeight: I(new S), formatOnPaste: I(new p(46, "formatOnPaste", !1, { description: n.N("formatOnPaste", "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: I(new p(47, "formatOnType", !1, { description: n.N("formatOnType", "Controls whether the editor should automatically format the line after typing." ) })), glyphMargin: I(new p(48, "glyphMargin", !0, { description: n.N("glyphMargin", "Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging." ) })), gotoLocation: I(new class extends c { constructor() { const e = { multiple: "peek", multipleDefinitions: "peek", multipleTypeDefinitions: "peek", multipleDeclarations: "peek", multipleImplementations: "peek", multipleReferences: "peek", alternativeDefinitionCommand: "editor.action.goToReferences", alternativeTypeDefinitionCommand: "editor.action.goToReferences", alternativeDeclarationCommand: "editor.action.goToReferences", alternativeImplementationCommand: "", alternativeReferenceCommand: "" }, t = { type: "string", enum: ["peek", "gotoAndPeek", "goto"], default: e.multiple, enumDescriptions: [n.N("editor.gotoLocation.multiple.peek", "Show peek view of the results (default)"), n.N( "editor.gotoLocation.multiple.gotoAndPeek", "Go to the primary result and show a peek view"), n.N( "editor.gotoLocation.multiple.goto", "Go to the primary result and enable peek-less navigation to others" )] }, i = ["", "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(49, "gotoLocation", e, { "editor.gotoLocation.multiple": { deprecationMessage: n.N( "editor.gotoLocation.multiple.deprecated", "This setting is deprecated, please use separate settings like 'editor.editor.gotoLocation.multipleDefinitions' or 'editor.editor.gotoLocation.multipleImplementations' instead." ) }, "editor.gotoLocation.multipleDefinitions": Object.assign({ description: n.N( "editor.editor.gotoLocation.multipleDefinitions", "Controls the behavior the 'Go to Definition'-command when multiple target locations exist." ) }, t), "editor.gotoLocation.multipleTypeDefinitions": Object.assign({ description: n.N( "editor.editor.gotoLocation.multipleTypeDefinitions", "Controls the behavior the 'Go to Type Definition'-command when multiple target locations exist." ) }, t), "editor.gotoLocation.multipleDeclarations": Object.assign({ description: n.N( "editor.editor.gotoLocation.multipleDeclarations", "Controls the behavior the 'Go to Declaration'-command when multiple target locations exist." ) }, t), "editor.gotoLocation.multipleImplementations": Object.assign({ description: n.N( "editor.editor.gotoLocation.multipleImplemenattions", "Controls the behavior the 'Go to Implementations'-command when multiple target locations exist." ) }, t), "editor.gotoLocation.multipleReferences": Object.assign({ description: n.N( "editor.editor.gotoLocation.multipleReferences", "Controls the behavior the 'Go to References'-command when multiple target locations exist." ) }, t), "editor.gotoLocation.alternativeDefinitionCommand": { type: "string", default: e.alternativeDefinitionCommand, enum: i, description: n.N("alternativeDefinitionCommand", "Alternative command id that is being executed when the result of 'Go to Definition' is the current location." ) }, "editor.gotoLocation.alternativeTypeDefinitionCommand": { type: "string", default: e.alternativeTypeDefinitionCommand, enum: i, description: n.N("alternativeTypeDefinitionCommand", "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: e.alternativeDeclarationCommand, enum: i, description: n.N("alternativeDeclarationCommand", "Alternative command id that is being executed when the result of 'Go to Declaration' is the current location." ) }, "editor.gotoLocation.alternativeImplementationCommand": { type: "string", default: e.alternativeImplementationCommand, enum: i, description: n.N("alternativeImplementationCommand", "Alternative command id that is being executed when the result of 'Go to Implementation' is the current location." ) }, "editor.gotoLocation.alternativeReferenceCommand": { type: "string", default: e.alternativeReferenceCommand, enum: i, description: n.N("alternativeReferenceCommand", "Alternative command id that is being executed when the result of 'Go to Reference' is the current location." ) } }) } validate(e) { var t, i, n, o, r; if (!e || "object" != typeof e) return this.defaultValue; const s = e; return { multiple: b(s.multiple, this.defaultValue.multiple, ["peek", "gotoAndPeek", "goto" ]), multipleDefinitions: null !== (t = s.multipleDefinitions) && void 0 !== t ? t : b(s.multipleDefinitions, "peek", ["peek", "gotoAndPeek", "goto" ]), multipleTypeDefinitions: null !== (i = s.multipleTypeDefinitions) && void 0 !== i ? i : b(s.multipleTypeDefinitions, "peek", ["peek", "gotoAndPeek", "goto" ]), multipleDeclarations: null !== (n = s.multipleDeclarations) && void 0 !== n ? n : b(s.multipleDeclarations, "peek", ["peek", "gotoAndPeek", "goto" ]), multipleImplementations: null !== (o = s.multipleImplementations) && void 0 !== o ? o : b(s.multipleImplementations, "peek", ["peek", "gotoAndPeek", "goto" ]), multipleReferences: null !== (r = s.multipleReferences) && void 0 !== r ? r : b(s.multipleReferences, "peek", ["peek", "gotoAndPeek", "goto" ]), alternativeDefinitionCommand: _.string(s.alternativeDefinitionCommand, this.defaultValue.alternativeDefinitionCommand), alternativeTypeDefinitionCommand: _.string(s.alternativeTypeDefinitionCommand, this.defaultValue.alternativeTypeDefinitionCommand), alternativeDeclarationCommand: _.string(s.alternativeDeclarationCommand, this.defaultValue.alternativeDeclarationCommand), alternativeImplementationCommand: _.string(s.alternativeImplementationCommand, this.defaultValue.alternativeImplementationCommand), alternativeReferenceCommand: _.string(s.alternativeReferenceCommand, this.defaultValue.alternativeReferenceCommand) } } }), hideCursorInOverviewRuler: I(new p(50, "hideCursorInOverviewRuler", !1, { description: n.N("hideCursorInOverviewRuler", "Controls whether the cursor should be hidden in the overview ruler." ) })), highlightActiveIndentGuide: I(new p(51, "highlightActiveIndentGuide", ! 0, { description: n.N("highlightActiveIndentGuide", "Controls whether the editor should highlight the active indent guide." ) })), hover: I(new class extends c { constructor() { const e = { enabled: !0, delay: 300, sticky: !0 }; super(52, "hover", e, { "editor.hover.enabled": { type: "boolean", default: e.enabled, description: n.N("hover.enabled", "Controls whether the hover is shown.") }, "editor.hover.delay": { type: "number", default: e.delay, description: n.N("hover.delay", "Controls the delay in milliseconds after which the hover is shown." ) }, "editor.hover.sticky": { type: "boolean", default: e.sticky, description: n.N("hover.sticky", "Controls whether the hover should remain visible when mouse is moved over it." ) } }) } validate(e) { if (!e || "object" != typeof e) return this.defaultValue; const t = e; return { enabled: g(t.enabled, this.defaultValue.enabled), delay: m.clampedInt(t.delay, this.defaultValue.delay, 0, 1e4), sticky: g(t.sticky, this.defaultValue.sticky) } } }), inDiffEditor: I(new p(53, "inDiffEditor", !1)), letterSpacing: I(new f(55, "letterSpacing", N.letterSpacing, (e => f.clamp( e, -5, 20)), { description: n.N("letterSpacing", "Controls the letter spacing in pixels.") })), lightbulb: I(new class extends c { constructor() { const e = { enabled: !0 }; super(56, "lightbulb", e, { "editor.lightbulb.enabled": { type: "boolean", default: e.enabled, description: n.N("codeActions", "Enables the code action lightbulb in the editor.") } }) } validate(e) { return e && "object" == typeof e ? { enabled: g(e.enabled, this.defaultValue.enabled) } : this.defaultValue } }), lineDecorationsWidth: I(new u(57, "lineDecorationsWidth", 10)), lineHeight: I(new class extends f { constructor() { super(58, "lineHeight", N.lineHeight, (e => f.clamp(e, 0, 150)), { markdownDescription: n.N("lineHeight", "Controls the line height. \n - Use 0 to automatically compute the line height from the font size.\n - Values between 0 and 8 will be used as a multiplier with the font size.\n - Values greater than or equal to 8 will be used as effective values." ) }) } compute(e, t, i) { return e.fontInfo.lineHeight } }), lineNumbers: I(new class extends c { constructor() { super(59, "lineNumbers", { renderType: 1, renderFn: null }, { type: "string", enum: ["off", "on", "relative", "interval"], enumDescriptions: [n.N("lineNumbers.off", "Line numbers are not rendered."), n.N("lineNumbers.on", "Line numbers are rendered as absolute number."), n.N( "lineNumbers.relative", "Line numbers are rendered as distance in lines to cursor position." ), n.N("lineNumbers.interval", "Line numbers are rendered every 10 lines.")], default: "on", description: n.N("lineNumbers", "Controls the display of line numbers.") }) } validate(e) { let t = this.defaultValue.renderType, i = this.defaultValue.renderFn; return void 0 !== e && ("function" == typeof e ? (t = 4, i = e) : t = "interval" === e ? 3 : "relative" === e ? 2 : "on" === e ? 1 : 0), { renderType: t, renderFn: i } } }), lineNumbersMinChars: I(new m(60, "lineNumbersMinChars", 5, 1, 300)), linkedEditing: I(new p(61, "linkedEditing", !1, { description: n.N("linkedEditing", "Controls whether the editor has linked editing enabled. Depending on the language, related symbols, e.g. HTML tags, are updated while editing." ) })), links: I(new p(62, "links", !0, { description: n.N("links", "Controls whether the editor should detect links and make them clickable." ) })), matchBrackets: I(new v(63, "matchBrackets", "always", ["always", "near", "never" ], { description: n.N("matchBrackets", "Highlight matching brackets.") })), minimap: I(new class extends c { constructor() { const e = { enabled: !0, size: "proportional", side: "right", showSlider: "mouseover", renderCharacters: !0, maxColumn: 120, scale: 1 }; super(64, "minimap", e, { "editor.minimap.enabled": { type: "boolean", default: e.enabled, description: n.N("minimap.enabled", "Controls whether the minimap is shown.") }, "editor.minimap.size": { type: "string", enum: ["proportional", "fill", "fit"], enumDescriptions: [n.N("minimap.size.proportional", "The minimap has the same size as the editor contents (and might scroll)." ), n.N("minimap.size.fill", "The minimap will stretch or shrink as necessary to fill the height of the editor (no scrolling)." ), n.N("minimap.size.fit", "The minimap will shrink as necessary to never be larger than the editor (no scrolling)." )], default: e.size, description: n.N("minimap.size", "Controls the size of the minimap.") }, "editor.minimap.side": { type: "string", enum: ["left", "right"], default: e.side, description: n.N("minimap.side", "Controls the side where to render the minimap.") }, "editor.minimap.showSlider": { type: "string", enum: ["always", "mouseover"], default: e.showSlider, description: n.N("minimap.showSlider", "Controls when the minimap slider is shown.") }, "editor.minimap.scale": { type: "number", default: e.scale, minimum: 1, maximum: 3, enum: [1, 2, 3], description: n.N("minimap.scale", "Scale of content drawn in the minimap: 1, 2 or 3.") }, "editor.minimap.renderCharacters": { type: "boolean", default: e.renderCharacters, description: n.N("minimap.renderCharacters", "Render the actual characters on a line as opposed to color blocks." ) }, "editor.minimap.maxColumn": { type: "number", default: e.maxColumn, description: n.N("minimap.maxColumn", "Limit the width of the minimap to render at most a certain number of columns." ) } }) } validate(e) { if (!e || "object" != typeof e) return this.defaultValue; const t = e; return { enabled: g(t.enabled, this.defaultValue.enabled), size: b(t.size, this.defaultValue.size, ["proportional", "fill", "fit" ]), side: b(t.side, this.defaultValue.side, ["right", "left"]), showSlider: b(t.showSlider, this.defaultValue.showSlider, [ "always", "mouseover" ]), renderCharacters: g(t.renderCharacters, this.defaultValue.renderCharacters), scale: m.clampedInt(t.scale, 1, 1, 3), maxColumn: m.clampedInt(t.maxColumn, this.defaultValue.maxColumn, 1, 1e4) } } }), mouseStyle: I(new v(65, "mouseStyle", "text", ["text", "default", "copy" ])), mouseWheelScrollSensitivity: I(new f(66, "mouseWheelScrollSensitivity", 1, (e => 0 === e ? 1 : e), { markdownDescription: n.N("mouseWheelScrollSensitivity", "A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events." ) })), mouseWheelZoom: I(new p(67, "mouseWheelZoom", !1, { markdownDescription: n.N("mouseWheelZoom", "Zoom the font of the editor when using mouse wheel and holding `Ctrl`." ) })), multiCursorMergeOverlapping: I(new p(68, "multiCursorMergeOverlapping", ! 0, { description: n.N("multiCursorMergeOverlapping", "Merge multiple cursors when they are overlapping.") })), multiCursorModifier: I(new w(69, "multiCursorModifier", "altKey", "alt", [ "ctrlCmd", "alt" ], (function(e) { return "ctrlCmd" === e ? o.dz ? "metaKey" : "ctrlKey" : "altKey" }), { markdownEnumDescriptions: [n.N("multiCursorModifier.ctrlCmd", "Maps to `Control` on Windows and Linux and to `Command` on macOS." ), n.N("multiCursorModifier.alt", "Maps to `Alt` on Windows and Linux and to `Option` on macOS.")], markdownDescription: n.N({ key: "multiCursorModifier", comment: [ "- `ctrlCmd` refers to a value the setting can take and should not be localized.", "- `Control` and `Command` refer to the modifier keys Ctrl or Cmd on the keyboard and can be localized." ] }, "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. [Read more](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier)." ) })), multiCursorPaste: I(new v(70, "multiCursorPaste", "spread", ["spread", "full" ], { markdownEnumDescriptions: [n.N("multiCursorPaste.spread", "Each cursor pastes a single line of the text."), n.N( "multiCursorPaste.full", "Each cursor pastes the full text.")], markdownDescription: n.N("multiCursorPaste", "Controls pasting when the line count of the pasted text matches the cursor count." ) })), occurrencesHighlight: I(new p(71, "occurrencesHighlight", !0, { description: n.N("occurrencesHighlight", "Controls whether the editor should highlight semantic symbol occurrences." ) })), overviewRulerBorder: I(new p(72, "overviewRulerBorder", !0, { description: n.N("overviewRulerBorder", "Controls whether a border should be drawn around the overview ruler." ) })), overviewRulerLanes: I(new m(73, "overviewRulerLanes", 3, 0, 3)), padding: I(new class extends c { constructor() { super(74, "padding", { top: 0, bottom: 0 }, { "editor.padding.top": { type: "number", default: 0, minimum: 0, maximum: 1e3, description: n.N("padding.top", "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: n.N("padding.bottom", "Controls the amount of space between the bottom edge of the editor and the last line." ) } }) } validate(e) { if (!e || "object" != typeof e) return this.defaultValue; const t = e; return { top: m.clampedInt(t.top, 0, 0, 1e3), bottom: m.clampedInt(t.bottom, 0, 0, 1e3) } } }), parameterHints: I(new class extends c { constructor() { const e = { enabled: !0, cycle: !1 }; super(75, "parameterHints", e, { "editor.parameterHints.enabled": { type: "boolean", default: e.enabled, description: n.N("parameterHints.enabled", "Enables a pop-up that shows parameter documentation and type information as you type." ) }, "editor.parameterHints.cycle": { type: "boolean", default: e.cycle, description: n.N("parameterHints.cycle", "Controls whether the parameter hints menu cycles or closes when reaching the end of the list." ) } }) } validate(e) { if (!e || "object" != typeof e) return this.defaultValue; const t = e; return { enabled: g(t.enabled, this.defaultValue.enabled), cycle: g(t.cycle, this.defaultValue.cycle) } } }), peekWidgetDefaultFocus: I(new v(76, "peekWidgetDefaultFocus", "tree", [ "tree", "editor" ], { enumDescriptions: [n.N("peekWidgetDefaultFocus.tree", "Focus the tree when opening peek"), n.N( "peekWidgetDefaultFocus.editor", "Focus the editor when opening peek")], description: n.N("peekWidgetDefaultFocus", "Controls whether to focus the inline editor or the tree in the peek widget." ) })), definitionLinkOpensInPeek: I(new p(77, "definitionLinkOpensInPeek", !1, { description: n.N("definitionLinkOpensInPeek", "Controls whether the Go to Definition mouse gesture always opens the peek widget." ) })), quickSuggestions: I(new class extends c { constructor() { const e = { other: !0, comments: !1, strings: !1 }; super(78, "quickSuggestions", e, { anyOf: [{ type: "boolean" }, { type: "object", properties: { strings: { type: "boolean", default: e.strings, description: n.N("quickSuggestions.strings", "Enable quick suggestions inside strings.") }, comments: { type: "boolean", default: e.comments, description: n.N("quickSuggestions.comments", "Enable quick suggestions inside comments.") }, other: { type: "boolean", default: e.other, description: n.N("quickSuggestions.other", "Enable quick suggestions outside of strings and comments." ) } } }], default: e, description: n.N("quickSuggestions", "Controls whether suggestions should automatically show up while typing." ) }), this.defaultValue = e } validate(e) { if ("boolean" == typeof e) return e; if (e && "object" == typeof e) { const t = e, i = { other: g(t.other, this.defaultValue.other), comments: g(t.comments, this.defaultValue.comments), strings: g(t.strings, this.defaultValue.strings) }; return !!(i.other && i.comments && i.strings) || !!(i.other || i.comments || i.strings) && i } return this.defaultValue } }), quickSuggestionsDelay: I(new m(79, "quickSuggestionsDelay", 10, 0, 1073741824, { description: n.N("quickSuggestionsDelay", "Controls the delay in milliseconds after which quick suggestions will show up." ) })), readOnly: I(new p(80, "readOnly", !1)), renameOnType: I(new p(81, "renameOnType", !1, { description: n.N("renameOnType", "Controls whether the editor auto renames on type."), markdownDeprecationMessage: n.N("renameOnTypeDeprecate", "Deprecated, use `editor.linkedEditing` instead.") })), renderControlCharacters: I(new p(82, "renderControlCharacters", !1, { description: n.N("renderControlCharacters", "Controls whether the editor should render control characters.") })), renderIndentGuides: I(new p(83, "renderIndentGuides", !0, { description: n.N("renderIndentGuides", "Controls whether the editor should render indent guides.") })), renderFinalNewline: I(new p(84, "renderFinalNewline", !0, { description: n.N("renderFinalNewline", "Render last line number when the file ends with a newline.") })), renderLineHighlight: I(new v(85, "renderLineHighlight", "line", ["none", "gutter", "line", "all" ], { enumDescriptions: ["", "", "", n.N("renderLineHighlight.all", "Highlights both the gutter and the current line.")], description: n.N("renderLineHighlight", "Controls how the editor should render the current line highlight." ) })), renderLineHighlightOnlyWhenFocus: I(new p(86, "renderLineHighlightOnlyWhenFocus", !1, { description: n.N("renderLineHighlightOnlyWhenFocus", "Controls if the editor should render the current line highlight only when the editor is focused." ) })), renderValidationDecorations: I(new v(87, "renderValidationDecorations", "editable", ["editable", "on", "off"])), renderWhitespace: I(new v(88, "renderWhitespace", "selection", ["none", "boundary", "selection", "trailing", "all" ], { enumDescriptions: ["", n.N("renderWhitespace.boundary", "Render whitespace characters except for single spaces between words." ), n.N("renderWhitespace.selection", "Render whitespace characters only on selected text."), n.N( "renderWhitespace.trailing", "Render only trailing whitespace characters."), ""], description: n.N("renderWhitespace", "Controls how the editor should render whitespace characters.") })), revealHorizontalRightPadding: I(new m(89, "revealHorizontalRightPadding", 30, 0, 1e3)), roundedSelection: I(new p(90, "roundedSelection", !0, { description: n.N("roundedSelection", "Controls whether selections should have rounded corners.") })), rulers: I(new class extends c { constructor() { const e = [], t = { type: "number", description: n.N("rulers.size", "Number of monospace characters at which this editor ruler will render." ) }; super(91, "rulers", e, { type: "array", items: { anyOf: [t, { type: ["object"], properties: { column: t, color: { type: "string", description: n.N("rulers.color", "Color of this editor ruler."), format: "color-hex" } } }] }, default: e, description: n.N("rulers", "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(e) { if (Array.isArray(e)) { let t = []; for (let i of e) if ("number" == typeof i) t.push({ column: m.clampedInt(i, 0, 0, 1e4), color: null }); else if (i && "object" == typeof i) { const e = i; t.push({ column: m.clampedInt(e.column, 0, 0, 1e4), color: e.color }) } return t.sort(((e, t) => e.column - t.column)), t } return this.defaultValue } }), scrollbar: I(new class extends c { constructor() { const e = { 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 }; super(92, "scrollbar", e, { "editor.scrollbar.vertical": { type: "string", enum: ["auto", "visible", "hidden"], enumDescriptions: [n.N("scrollbar.vertical.auto", "The vertical scrollbar will be visible only when necessary." ), n.N("scrollbar.vertical.visible", "The vertical scrollbar will always be visible."), n.N( "scrollbar.vertical.fit", "The vertical scrollbar will always be hidden.")], default: "auto", description: n.N("scrollbar.vertical", "Controls the visibility of the vertical scrollbar.") }, "editor.scrollbar.horizontal": { type: "string", enum: ["auto", "visible", "hidden"], enumDescriptions: [n.N("scrollbar.horizontal.auto", "The horizontal scrollbar will be visible only when necessary." ), n.N("scrollbar.horizontal.visible", "The horizontal scrollbar will always be visible."), n.N( "scrollbar.horizontal.fit", "The horizontal scrollbar will always be hidden.")], default: "auto", description: n.N("scrollbar.horizontal", "Controls the visibility of the horizontal scrollbar.") }, "editor.scrollbar.verticalScrollbarSize": { type: "number", default: e.verticalScrollbarSize, description: n.N("scrollbar.verticalScrollbarSize", "The width of the vertical scrollbar.") }, "editor.scrollbar.horizontalScrollbarSize": { type: "number", default: e.horizontalScrollbarSize, description: n.N("scrollbar.horizontalScrollbarSize", "The height of the horizontal scrollbar.") }, "editor.scrollbar.scrollByPage": { type: "boolean", default: e.scrollByPage, description: n.N("scrollbar.scrollByPage", "Controls whether clicks scroll by page or jump to click position." ) } }) } validate(e) { if (!e || "object" != typeof e) return this.defaultValue; const t = e, i = m.clampedInt(t.horizontalScrollbarSize, this.defaultValue.horizontalScrollbarSize, 0, 1e3), n = m.clampedInt(t.verticalScrollbarSize, this.defaultValue.verticalScrollbarSize, 0, 1e3); return { arrowSize: m.clampedInt(t.arrowSize, this.defaultValue.arrowSize, 0, 1e3), vertical: L(t.vertical, this.defaultValue.vertical), horizontal: L(t.horizontal, this.defaultValue.horizontal), useShadows: g(t.useShadows, this.defaultValue.useShadows), verticalHasArrows: g(t.verticalHasArrows, this.defaultValue.verticalHasArrows), horizontalHasArrows: g(t.horizontalHasArrows, this.defaultValue.horizontalHasArrows), handleMouseWheel: g(t.handleMouseWheel, this.defaultValue.handleMouseWheel), alwaysConsumeMouseWheel: g(t.alwaysConsumeMouseWheel, this.defaultValue .alwaysConsumeMouseWheel), horizontalScrollbarSize: i, horizontalSliderSize: m.clampedInt(t.horizontalSliderSize, i, 0, 1e3), verticalScrollbarSize: n, verticalSliderSize: m.clampedInt(t.verticalSliderSize, n, 0, 1e3), scrollByPage: g(t.scrollByPage, this.defaultValue.scrollByPage) } } }), scrollBeyondLastColumn: I(new m(93, "scrollBeyondLastColumn", 5, 0, 1073741824, { description: n.N("scrollBeyondLastColumn", "Controls the number of extra characters beyond which the editor will scroll horizontally." ) })), scrollBeyondLastLine: I(new p(94, "scrollBeyondLastLine", !0, { description: n.N("scrollBeyondLastLine", "Controls whether the editor will scroll beyond the last line.") })), scrollPredominantAxis: I(new p(95, "scrollPredominantAxis", !0, { description: n.N("scrollPredominantAxis", "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: I(new p(96, "selectionClipboard", !0, { description: n.N("selectionClipboard", "Controls whether the Linux primary clipboard should be supported." ), included: o.IJ })), selectionHighlight: I(new p(97, "selectionHighlight", !0, { description: n.N("selectionHighlight", "Controls whether the editor should highlight matches similar to the selection." ) })), selectOnLineNumbers: I(new p(98, "selectOnLineNumbers", !0)), showFoldingControls: I(new v(99, "showFoldingControls", "mouseover", [ "always", "mouseover" ], { enumDescriptions: [n.N("showFoldingControls.always", "Always show the folding controls."), n.N( "showFoldingControls.mouseover", "Only show the folding controls when the mouse is over the gutter." )], description: n.N("showFoldingControls", "Controls when the folding controls on the gutter are shown.") })), showUnused: I(new p(100, "showUnused", !0, { description: n.N("showUnused", "Controls fading out of unused code.") })), showDeprecated: I(new p(125, "showDeprecated", !0, { description: n.N("showDeprecated", "Controls strikethrough deprecated variables.") })), inlayHints: I(new class extends c { constructor() { const e = { enabled: !0, fontSize: 0, fontFamily: "" }; super(126, "inlayHints", e, { "editor.inlayHints.enabled": { type: "boolean", default: e.enabled, description: n.N("inlayHints.enable", "Enables the inlay hints in the editor.") }, "editor.inlayHints.fontSize": { type: "number", default: e.fontSize, markdownDescription: n.N("inlayHints.fontSize", "Controls font size of inlay hints in the editor. When set to `0`, the 90% of `#editor.fontSize#` is used." ) }, "editor.inlayHints.fontFamily": { type: "string", default: e.fontFamily, description: n.N("inlayHints.fontFamily", "Controls font family of inlay hints in the editor. When set to empty, the `#editor.fontFamily#` is used." ) } }) } validate(e) { if (!e || "object" != typeof e) return this.defaultValue; const t = e; return { enabled: g(t.enabled, this.defaultValue.enabled), fontSize: m.clampedInt(t.fontSize, this.defaultValue.fontSize, 0, 100), fontFamily: _.string(t.fontFamily, this.defaultValue.fontFamily) } } }), snippetSuggestions: I(new v(101, "snippetSuggestions", "inline", ["top", "bottom", "inline", "none" ], { enumDescriptions: [n.N("snippetSuggestions.top", "Show snippet suggestions on top of other suggestions."), n.N( "snippetSuggestions.bottom", "Show snippet suggestions below other suggestions."), n.N( "snippetSuggestions.inline", "Show snippets suggestions with other suggestions."), n.N( "snippetSuggestions.none", "Do not show snippet suggestions.")], description: n.N("snippetSuggestions", "Controls whether snippets are shown with other suggestions and how they are sorted." ) })), smartSelect: I(new class extends c { constructor() { super(102, "smartSelect", { selectLeadingAndTrailingWhitespace: !0 }, { "editor.smartSelect.selectLeadingAndTrailingWhitespace": { description: n.N("selectLeadingAndTrailingWhitespace", "Whether leading and trailing whitespace should always be selected." ), default: !0, type: "boolean" } }) } validate(e) { return e && "object" == typeof e ? { selectLeadingAndTrailingWhitespace: g(e.selectLeadingAndTrailingWhitespace, this.defaultValue.selectLeadingAndTrailingWhitespace) } : this.defaultValue } }), smoothScrolling: I(new p(103, "smoothScrolling", !1, { description: n.N("smoothScrolling", "Controls whether the editor will scroll using an animation.") })), stopRenderingLineAfter: I(new m(105, "stopRenderingLineAfter", 1e4, -1, 1073741824)), suggest: I(new class extends c { constructor() { const e = { insertMode: "insert", filterGraceful: !0, snippetsPreventQuickSuggestions: !0, localityBonus: !1, shareSuggestSelections: !1, showIcons: !0, showStatusBar: !1, preview: !1, previewMode: "subwordSmart", showInlineDetails: !0, showMethods: !0, showFunctions: !0, showConstructors: !0, showDeprecated: !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(106, "suggest", e, { "editor.suggest.insertMode": { type: "string", enum: ["insert", "replace"], enumDescriptions: [n.N("suggest.insertMode.insert", "Insert suggestion without overwriting text right of the cursor." ), n.N("suggest.insertMode.replace", "Insert suggestion and overwrite text right of the cursor." )], default: e.insertMode, description: n.N("suggest.insertMode", "Controls whether words are overwritten when accepting completions. Note that this depends on extensions opting into this feature." ) }, "editor.suggest.filterGraceful": { type: "boolean", default: e.filterGraceful, description: n.N("suggest.filterGraceful", "Controls whether filtering and sorting suggestions accounts for small typos." ) }, "editor.suggest.localityBonus": { type: "boolean", default: e.localityBonus, description: n.N("suggest.localityBonus", "Controls whether sorting favors words that appear close to the cursor." ) }, "editor.suggest.shareSuggestSelections": { type: "boolean", default: e.shareSuggestSelections, markdownDescription: n.N("suggest.shareSuggestSelections", "Controls whether remembered suggestion selections are shared between multiple workspaces and windows (needs `#editor.suggestSelection#`)." ) }, "editor.suggest.snippetsPreventQuickSuggestions": { type: "boolean", default: e.snippetsPreventQuickSuggestions, description: n.N("suggest.snippetsPreventQuickSuggestions", "Controls whether an active snippet prevents quick suggestions." ) }, "editor.suggest.showIcons": { type: "boolean", default: e.showIcons, description: n.N("suggest.showIcons", "Controls whether to show or hide icons in suggestions.") }, "editor.suggest.showStatusBar": { type: "boolean", default: e.showStatusBar, description: n.N("suggest.showStatusBar", "Controls the visibility of the status bar at the bottom of the suggest widget." ) }, "editor.suggest.preview": { type: "boolean", default: e.preview, description: n.N("suggest.preview", "Controls whether to preview the suggestion outcome in the editor." ) }, "editor.suggest.previewMode": { type: "string", enum: ["prefix", "subword", "subwordSmart"], enumDescriptions: [n.N("suggest.previewMode.prefix", "Only render a preview if the replace text is a prefix of the insert text." ), n.N("suggest.previewMode.subword", "Only render a preview if the replace text is a subword of the insert text." ), n.N("suggest.previewMode.subwordSmart", "Render a preview if the replace text is a subword of the insert text, or if it is a prefix of the insert text." )], default: e.previewMode, description: n.N("suggest.previewMode", "Controls which mode to use for rendering the suggest preview." ) }, "editor.suggest.showInlineDetails": { type: "boolean", default: e.showInlineDetails, description: n.N("suggest.showInlineDetails", "Controls whether suggest details show inline with the label or only in the details widget" ) }, "editor.suggest.maxVisibleSuggestions": { type: "number", deprecationMessage: n.N("suggest.maxVisibleSuggestions.dep", "This setting is deprecated. The suggest widget can now be resized." ) }, "editor.suggest.filteredTypes": { type: "object", deprecationMessage: n.N("deprecated", "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: n.N("editor.suggest.showMethods", "When enabled IntelliSense shows `method`-suggestions.") }, "editor.suggest.showFunctions": { type: "boolean", default: !0, markdownDescription: n.N("editor.suggest.showFunctions", "When enabled IntelliSense shows `function`-suggestions.") }, "editor.suggest.showConstructors": { type: "boolean", default: !0, markdownDescription: n.N("editor.suggest.showConstructors", "When enabled IntelliSense shows `constructor`-suggestions." ) }, "editor.suggest.showDeprecated": { type: "boolean", default: !0, markdownDescription: n.N("editor.suggest.showDeprecated", "When enabled IntelliSense shows `deprecated`-suggestions.") }, "editor.suggest.showFields": { type: "boolean", default: !0, markdownDescription: n.N("editor.suggest.showFields", "When enabled IntelliSense shows `field`-suggestions.") }, "editor.suggest.showVariables": { type: "boolean", default: !0, markdownDescription: n.N("editor.suggest.showVariables", "When enabled IntelliSense shows `variable`-suggestions.") }, "editor.suggest.showClasses": { type: "boolean", default: !0, markdownDescription: n.N("editor.suggest.showClasss", "When enabled IntelliSense shows `class`-suggestions.") }, "editor.suggest.showStructs": { type: "boolean", default: !0, markdownDescription: n.N("editor.suggest.showStructs", "When enabled IntelliSense shows `struct`-suggestions.") }, "editor.suggest.showInterfaces": { type: "boolean", default: !0, markdownDescription: n.N("editor.suggest.showInterfaces", "When enabled IntelliSense shows `interface`-suggestions.") }, "editor.suggest.showModules": { type: "boolean", default: !0, markdownDescription: n.N("editor.suggest.showModules", "When enabled IntelliSense shows `module`-suggestions.") }, "editor.suggest.showProperties": { type: "boolean", default: !0, markdownDescription: n.N("editor.suggest.showPropertys", "When enabled IntelliSense shows `property`-suggestions.") }, "editor.suggest.showEvents": { type: "boolean", default: !0, markdownDescription: n.N("editor.suggest.showEvents", "When enabled IntelliSense shows `event`-suggestions.") }, "editor.suggest.showOperators": { type: "boolean", default: !0, markdownDescription: n.N("editor.suggest.showOperators", "When enabled IntelliSense shows `operator`-suggestions.") }, "editor.suggest.showUnits": { type: "boolean", default: !0, markdownDescription: n.N("editor.suggest.showUnits", "When enabled IntelliSense shows `unit`-suggestions.") }, "editor.suggest.showValues": { type: "boolean", default: !0, markdownDescription: n.N("editor.suggest.showValues", "When enabled IntelliSense shows `value`-suggestions.") }, "editor.suggest.showConstants": { type: "boolean", default: !0, markdownDescription: n.N("editor.suggest.showConstants", "When enabled IntelliSense shows `constant`-suggestions.") }, "editor.suggest.showEnums": { type: "boolean", default: !0, markdownDescription: n.N("editor.suggest.showEnums", "When enabled IntelliSense shows `enum`-suggestions.") }, "editor.suggest.showEnumMembers": { type: "boolean", default: !0, markdownDescription: n.N("editor.suggest.showEnumMembers", "When enabled IntelliSense shows `enumMember`-suggestions.") }, "editor.suggest.showKeywords": { type: "boolean", default: !0, markdownDescription: n.N("editor.suggest.showKeywords", "When enabled IntelliSense shows `keyword`-suggestions.") }, "editor.suggest.showWords": { type: "boolean", default: !0, markdownDescription: n.N("editor.suggest.showTexts", "When enabled IntelliSense shows `text`-suggestions.") }, "editor.suggest.showColors": { type: "boolean", default: !0, markdownDescription: n.N("editor.suggest.showColors", "When enabled IntelliSense shows `color`-suggestions.") }, "editor.suggest.showFiles": { type: "boolean", default: !0, markdownDescription: n.N("editor.suggest.showFiles", "When enabled IntelliSense shows `file`-suggestions.") }, "editor.suggest.showReferences": { type: "boolean", default: !0, markdownDescription: n.N("editor.suggest.showReferences", "When enabled IntelliSense shows `reference`-suggestions.") }, "editor.suggest.showCustomcolors": { type: "boolean", default: !0, markdownDescription: n.N("editor.suggest.showCustomcolors", "When enabled IntelliSense shows `customcolor`-suggestions." ) }, "editor.suggest.showFolders": { type: "boolean", default: !0, markdownDescription: n.N("editor.suggest.showFolders", "When enabled IntelliSense shows `folder`-suggestions.") }, "editor.suggest.showTypeParameters": { type: "boolean", default: !0, markdownDescription: n.N("editor.suggest.showTypeParameters", "When enabled IntelliSense shows `typeParameter`-suggestions." ) }, "editor.suggest.showSnippets": { type: "boolean", default: !0, markdownDescription: n.N("editor.suggest.showSnippets", "When enabled IntelliSense shows `snippet`-suggestions.") }, "editor.suggest.showUsers": { type: "boolean", default: !0, markdownDescription: n.N("editor.suggest.showUsers", "When enabled IntelliSense shows `user`-suggestions.") }, "editor.suggest.showIssues": { type: "boolean", default: !0, markdownDescription: n.N("editor.suggest.showIssues", "When enabled IntelliSense shows `issues`-suggestions.") } }) } validate(e) { if (!e || "object" != typeof e) return this.defaultValue; const t = e; return { insertMode: b(t.insertMode, this.defaultValue.insertMode, [ "insert", "replace" ]), filterGraceful: g(t.filterGraceful, this.defaultValue.filterGraceful), snippetsPreventQuickSuggestions: g(t.snippetsPreventQuickSuggestions, this.defaultValue.filterGraceful), localityBonus: g(t.localityBonus, this.defaultValue.localityBonus), shareSuggestSelections: g(t.shareSuggestSelections, this.defaultValue .shareSuggestSelections), showIcons: g(t.showIcons, this.defaultValue.showIcons), showStatusBar: g(t.showStatusBar, this.defaultValue.showStatusBar), preview: g(t.preview, this.defaultValue.preview), previewMode: b(t.previewMode, this.defaultValue.previewMode, [ "prefix", "subword", "subwordSmart" ]), showInlineDetails: g(t.showInlineDetails, this.defaultValue.showInlineDetails), showMethods: g(t.showMethods, this.defaultValue.showMethods), showFunctions: g(t.showFunctions, this.defaultValue.showFunctions), showConstructors: g(t.showConstructors, this.defaultValue.showConstructors), showDeprecated: g(t.showDeprecated, this.defaultValue.showDeprecated), showFields: g(t.showFields, this.defaultValue.showFields), showVariables: g(t.showVariables, this.defaultValue.showVariables), showClasses: g(t.showClasses, this.defaultValue.showClasses), showStructs: g(t.showStructs, this.defaultValue.showStructs), showInterfaces: g(t.showInterfaces, this.defaultValue.showInterfaces), showModules: g(t.showModules, this.defaultValue.showModules), showProperties: g(t.showProperties, this.defaultValue.showProperties), showEvents: g(t.showEvents, this.defaultValue.showEvents), showOperators: g(t.showOperators, this.defaultValue.showOperators), showUnits: g(t.showUnits, this.defaultValue.showUnits), showValues: g(t.showValues, this.defaultValue.showValues), showConstants: g(t.showConstants, this.defaultValue.showConstants), showEnums: g(t.showEnums, this.defaultValue.showEnums), showEnumMembers: g(t.showEnumMembers, this.defaultValue.showEnumMembers), showKeywords: g(t.showKeywords, this.defaultValue.showKeywords), showWords: g(t.showWords, this.defaultValue.showWords), showColors: g(t.showColors, this.defaultValue.showColors), showFiles: g(t.showFiles, this.defaultValue.showFiles), showReferences: g(t.showReferences, this.defaultValue.showReferences), showFolders: g(t.showFolders, this.defaultValue.showFolders), showTypeParameters: g(t.showTypeParameters, this.defaultValue.showTypeParameters), showSnippets: g(t.showSnippets, this.defaultValue.showSnippets), showUsers: g(t.showUsers, this.defaultValue.showUsers), showIssues: g(t.showIssues, this.defaultValue.showIssues) } } }), inlineSuggest: I(new class extends c { constructor() { const e = { enabled: !0, mode: "subwordSmart" }; super(54, "inlineSuggest", e, { "editor.inlineSuggest.enabled": { type: "boolean", default: e.enabled, description: n.N("inlineSuggest.enabled", "Controls whether to automatically show inline suggestions in the editor." ) }, "editor.inlineSuggest.mode": { type: "string", enum: ["prefix", "subword", "subwordSmart"], enumDescriptions: [n.N("inlineSuggest.mode.prefix", "Only render an inline suggestion if the replace text is a prefix of the insert text." ), n.N("inlineSuggest.mode.subword", "Only render an inline suggestion if the replace text is a subword of the insert text." ), n.N("inlineSuggest.mode.subwordSmart", "Only render an inline suggestion if the replace text is a subword of the insert text, but the subword must start after the cursor." )], default: e.mode, description: n.N("inlineSuggest.mode", "Controls which mode to use for rendering inline suggestions." ) } }) } validate(e) { if (!e || "object" != typeof e) return this.defaultValue; const t = e; return { enabled: g(t.enabled, this.defaultValue.enabled), mode: b(t.mode, this.defaultValue.mode, ["prefix", "subword", "subwordSmart" ]) } } }), suggestFontSize: I(new m(107, "suggestFontSize", 0, 0, 1e3, { markdownDescription: n.N("suggestFontSize", "Font size for the suggest widget. When set to `0`, the value of `#editor.fontSize#` is used." ) })), suggestLineHeight: I(new m(108, "suggestLineHeight", 0, 0, 1e3, { markdownDescription: n.N("suggestLineHeight", "Line height for the suggest widget. When set to `0`, the value of `#editor.lineHeight#` is used. The minimum value is 8." ) })), suggestOnTriggerCharacters: I(new p(109, "suggestOnTriggerCharacters", ! 0, { description: n.N("suggestOnTriggerCharacters", "Controls whether suggestions should automatically show up when typing trigger characters." ) })), suggestSelection: I(new v(110, "suggestSelection", "recentlyUsed", [ "first", "recentlyUsed", "recentlyUsedByPrefix" ], { markdownEnumDescriptions: [n.N("suggestSelection.first", "Always select the first suggestion."), n.N( "suggestSelection.recentlyUsed", "Select recent suggestions unless further typing selects one, e.g. `console.| -> console.log` because `log` has been completed recently." ), n.N("suggestSelection.recentlyUsedByPrefix", "Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`." )], description: n.N("suggestSelection", "Controls how suggestions are pre-selected when showing the suggest list." ) })), tabCompletion: I(new v(111, "tabCompletion", "off", ["on", "off", "onlySnippets" ], { enumDescriptions: [n.N("tabCompletion.on", "Tab complete will insert the best matching suggestion when pressing tab." ), n.N("tabCompletion.off", "Disable tab completions."), n.N( "tabCompletion.onlySnippets", "Tab complete snippets when their prefix match. Works best when 'quickSuggestions' aren't enabled." )], description: n.N("tabCompletion", "Enables tab completions.") })), tabIndex: I(new m(112, "tabIndex", 0, -1, 1073741824)), unusualLineTerminators: I(new v(113, "unusualLineTerminators", "prompt", [ "auto", "off", "prompt" ], { enumDescriptions: [n.N("unusualLineTerminators.auto", "Unusual line terminators are automatically removed."), n.N( "unusualLineTerminators.off", "Unusual line terminators are ignored."), n.N( "unusualLineTerminators.prompt", "Unusual line terminators prompt to be removed.")], description: n.N("unusualLineTerminators", "Remove unusual line terminators that might cause problems.") })), useShadowDOM: I(new p(114, "useShadowDOM", !0)), useTabStops: I(new p(115, "useTabStops", !0, { description: n.N("useTabStops", "Inserting and deleting whitespace follows tab stops.") })), wordSeparators: I(new _(116, "wordSeparators", r.vu, { description: n.N("wordSeparators", "Characters that will be used as word separators when doing word related navigations or operations." ) })), wordWrap: I(new v(117, "wordWrap", "off", ["off", "on", "wordWrapColumn", "bounded" ], { markdownEnumDescriptions: [n.N("wordWrap.off", "Lines will never wrap."), n.N("wordWrap.on", "Lines will wrap at the viewport width."), n.N({ key: "wordWrap.wordWrapColumn", comment: [ "- `editor.wordWrapColumn` refers to a different setting and should not be localized." ] }, "Lines will wrap at `#editor.wordWrapColumn#`."), n.N({ key: "wordWrap.bounded", comment: [ "- viewport means the edge of the visible window size.", "- `editor.wordWrapColumn` refers to a different setting and should not be localized." ] }, "Lines will wrap at the minimum of viewport and `#editor.wordWrapColumn#`." )], description: n.N({ key: "wordWrap", comment: [ "- 'off', 'on', 'wordWrapColumn' and 'bounded' refer to values the setting can take and should not be localized.", "- `editor.wordWrapColumn` refers to a different setting and should not be localized." ] }, "Controls how lines should wrap.") })), wordWrapBreakAfterCharacters: I(new _(118, "wordWrapBreakAfterCharacters", " \t})]?|/&.,;¢°′″‰℃、。。、¢,.:;?!%・・ゝゞヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻ァィゥェォャュョッー”〉》」』】〕)]}」" )), wordWrapBreakBeforeCharacters: I(new _(119, "wordWrapBreakBeforeCharacters", "([{‘“〈《「『【〔([{「£¥$£¥++")), wordWrapColumn: I(new m(120, "wordWrapColumn", 80, 1, 1073741824, { markdownDescription: n.N({ key: "wordWrapColumn", comment: [ "- `editor.wordWrap` refers to a different setting and should not be localized.", "- 'wordWrapColumn' and 'bounded' refer to values the different setting can take and should not be localized." ] }, "Controls the wrapping column of the editor when `#editor.wordWrap#` is `wordWrapColumn` or `bounded`." ) })), wordWrapOverride1: I(new v(121, "wordWrapOverride1", "inherit", ["off", "on", "inherit" ])), wordWrapOverride2: I(new v(122, "wordWrapOverride2", "inherit", ["off", "on", "inherit" ])), wrappingIndent: I(new w(123, "wrappingIndent", 1, "same", ["none", "same", "indent", "deepIndent" ], (function(e) { switch (e) { case "none": return 0; case "same": return 1; case "indent": return 2; case "deepIndent": return 3 } }), { enumDescriptions: [n.N("wrappingIndent.none", "No indentation. Wrapped lines begin at column 1."), n.N( "wrappingIndent.same", "Wrapped lines get the same indentation as the parent."), n.N( "wrappingIndent.indent", "Wrapped lines get +1 indentation toward the parent."), n.N( "wrappingIndent.deepIndent", "Wrapped lines get +2 indentation toward the parent.")], description: n.N("wrappingIndent", "Controls the indentation of wrapped lines.") })), wrappingStrategy: I(new v(124, "wrappingStrategy", "simple", ["simple", "advanced" ], { enumDescriptions: [n.N("wrappingStrategy.simple", "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." ), n.N("wrappingStrategy.advanced", "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." )], description: n.N("wrappingStrategy", "Controls the algorithm that computes wrapping points.") })), editorClassName: I(new class extends h { constructor() { super(127, [65, 32]) } compute(e, t, i) { const n = ["monaco-editor"]; return t.get(32) && n.push(t.get(32)), e.extraEditorClassName && n .push(e.extraEditorClassName), "default" === t.get(65) ? n.push( "mouse-default") : "copy" === t.get(65) && n.push("mouse-copy"), t.get(100) && n.push("showUnused"), t.get(125) && n.push( "showDeprecated"), n.join(" ") } }), pixelRatio: I(new class extends h { constructor() { super(128) } compute(e, t, i) { return e.pixelRatio } }), tabFocusMode: I(new class extends h { constructor() { super(129, [80]) } compute(e, t, i) { return !!t.get(80) || e.tabFocusMode } }), layoutInfo: I(new x), wrappingInfo: I(new class extends h { constructor() { super(131, [130]) } compute(e, t, i) { const n = t.get(130); return { isDominatedByLongLines: e.isDominatedByLongLines, isWordWrapMinified: n.isWordWrapMinified, isViewportWrapping: n.isViewportWrapping, wrappingColumn: n.wrappingColumn } } }) } }, 2334: (e, t, i) => { "use strict"; i.d(t, { C: () => o }); var n = i(4669); const o = new class { constructor() { this._zoomLevel = 0, this._onDidChangeZoomLevel = new n.Q5, this.onDidChangeZoomLevel = this._onDidChangeZoomLevel.event } getZoomLevel() { return this._zoomLevel } setZoomLevel(e) { e = Math.min(Math.max(-5, e), 20), this._zoomLevel !== e && (this._zoomLevel = e, this._onDidChangeZoomLevel.fire(this._zoomLevel)) } } }, 7374: (e, t, i) => { "use strict"; i.d(t, { E4: () => s, pR: () => a }); var n = i(1432), o = i(2334); const r = n.dz ? 1.5 : 1.35; class s { constructor(e) { this._bareFontInfoBrand = void 0, this.zoomLevel = e.zoomLevel, this.pixelRatio = e.pixelRatio, this.fontFamily = String(e.fontFamily), this.fontWeight = String(e.fontWeight), this.fontSize = e.fontSize, this.fontFeatureSettings = e.fontFeatureSettings, this.lineHeight = 0 | e.lineHeight, this.letterSpacing = e.letterSpacing } static createFromValidatedSettings(e, t, i, n) { const o = e.get(41), r = e.get(45), a = e.get(44), l = e.get(43), d = e.get(58), c = e.get(55); return s._create(o, r, a, l, d, c, t, i, n) } static _create(e, t, i, n, a, l, d, c, h) { 0 === a ? a = r * i : a < 8 && (a *= i), (a = Math.round(a)) < 8 && (a = 8); const u = 1 + (h ? 0 : .1 * o.C.getZoomLevel()); return new s({ zoomLevel: d, pixelRatio: c, fontFamily: e, fontWeight: t, fontSize: i *= u, fontFeatureSettings: n, lineHeight: a *= u, letterSpacing: l }) } getId() { return this.zoomLevel + "-" + this.pixelRatio + "-" + this.fontFamily + "-" + this.fontWeight + "-" + this.fontSize + "-" + this.fontFeatureSettings + "-" + this.lineHeight + "-" + this.letterSpacing } getMassagedFontFamily() { return /[,"']/.test(this.fontFamily) ? this.fontFamily : /[+ ]/.test( this.fontFamily) ? `"${this.fontFamily}"` : this.fontFamily } } class a extends s { constructor(e, t) { super(e), this._editorStylingBrand = void 0, this.version = 1, this.isTrusted = t, this.isMonospace = e.isMonospace, this.typicalHalfwidthCharacterWidth = e.typicalHalfwidthCharacterWidth, this.typicalFullwidthCharacterWidth = e.typicalFullwidthCharacterWidth, this.canUseHalfwidthRightwardsArrow = e.canUseHalfwidthRightwardsArrow, this.spaceWidth = e.spaceWidth, this.middotWidth = e.middotWidth, this.wsmiddotWidth = e.wsmiddotWidth, this.maxDigitWidth = e.maxDigitWidth } equals(e) { return this.fontFamily === e.fontFamily && this.fontWeight === e.fontWeight && this.fontSize === e.fontSize && this.fontFeatureSettings === e.fontFeatureSettings && this.lineHeight === e.lineHeight && this.letterSpacing === e.letterSpacing && this.typicalHalfwidthCharacterWidth === e.typicalHalfwidthCharacterWidth && this.typicalFullwidthCharacterWidth === e.typicalFullwidthCharacterWidth && this.canUseHalfwidthRightwardsArrow === e.canUseHalfwidthRightwardsArrow && this.spaceWidth === e.spaceWidth && this.middotWidth === e.middotWidth && this.wsmiddotWidth === e.wsmiddotWidth && this.maxDigitWidth === e.maxDigitWidth } } }, 3675: (e, t, i) => { "use strict"; i.d(t, { l: () => o }); var n = i(3181); class o { static whitespaceVisibleColumn(e, t, i) { const o = e.length; let r = 0, s = -1, a = -1; for (let l = 0; l < o; l++) { if (l === t) return [s, a, r]; switch (r % i == 0 && (s = l, a = r), e.charCodeAt(l)) { case 32: r += 1; break; case 9: r = n.io.nextRenderTabStop(r, i); break; default: return [-1, -1, -1] } } return t === o ? [s, a, r] : [-1, -1, -1] } static atomicPosition(e, t, i, r) { const s = e.length, [a, l, d] = o.whitespaceVisibleColumn(e, t, i); if (-1 === d) return -1; let c; switch (r) { case 0: c = !0; break; case 1: c = !1; break; case 2: if (d % i == 0) return t; c = d % i <= i / 2 } if (c) { if (-1 === a) return -1; let t = l; for (let o = a; o < s; ++o) { if (t === l + i) return a; switch (e.charCodeAt(o)) { case 32: t += 1; break; case 9: t = n.io.nextRenderTabStop(t, i); break; default: return -1 } } return t === l + i ? a : -1 } const h = n.io.nextRenderTabStop(d, i); let u = d; for (let o = t; o < s; o++) { if (u === h) return o; switch (e.charCodeAt(o)) { case 32: u += 1; break; case 9: u = n.io.nextRenderTabStop(u, i); break; default: return -1 } } return u === h ? s : -1 } } }, 3181: (e, t, i) => { "use strict"; i.d(t, { LM: () => g, rS: () => p, zp: () => m, Vi: () => b, Tp: () => v, io: () => w, LN: () => C }); var n = i(7301), o = i(7295), r = i(187), s = i(4314), a = i(3860), l = i(6281), d = i(3831); const c = () => !0, h = () => !1, u = e => " " === e || "\t" === e; class g { constructor(e, t, i) { this._cursorMoveConfigurationBrand = void 0, this._languageIdentifier = e; const n = i.options, o = n.get(130); this.readOnly = n.get(80), this.tabSize = t.tabSize, this.indentSize = t.indentSize, this.insertSpaces = t.insertSpaces, this.stickyTabStops = n.get(104), this.lineHeight = n.get(58), this.pageSize = Math.max(1, Math.floor(o.height / this.lineHeight) - 2), this.useTabStops = n.get( 115), this.wordSeparators = n.get(116), this.emptySelectionClipboard = n.get(31), this.copyWithSyntaxHighlighting = n.get(20), this.multiCursorMergeOverlapping = n.get(68), this.multiCursorPaste = n.get(70), this.autoClosingBrackets = n.get(5), this.autoClosingQuotes = n.get(8), this.autoClosingDelete = n.get(6), this.autoClosingOvertype = n.get(7), this.autoSurround = n.get( 11), this.autoIndent = n.get(9), this.surroundingPairs = {}, this._electricChars = null, this.shouldAutoCloseBefore = { quote: g._getShouldAutoClose(e, this.autoClosingQuotes), bracket: g._getShouldAutoClose(e, this.autoClosingBrackets) }, this.autoClosingPairs = d.zu.getAutoClosingPairs(e.id); let r = g._getSurroundingPairs(e); if (r) for (const e of r) this.surroundingPairs[e.open] = e.close } static shouldRecreate(e) { return e.hasChanged(130) || e.hasChanged(116) || e.hasChanged(31) || e .hasChanged(68) || e.hasChanged(70) || e.hasChanged(5) || e.hasChanged( 8) || e.hasChanged(6) || e.hasChanged(7) || e.hasChanged(11) || e.hasChanged( 115) || e.hasChanged(58) || e.hasChanged(80) } get electricChars() { if (!this._electricChars) { this._electricChars = {}; let e = g._getElectricCharacters(this._languageIdentifier); if (e) for (const t of e) this._electricChars[t] = !0 } return this._electricChars } normalizeIndentation(e) { return l.yO.normalizeIndentation(e, this.indentSize, this.insertSpaces) } static _getElectricCharacters(e) { try { return d.zu.getElectricCharacters(e.id) } catch (e) { return (0, n.dL)(e), null } } static _getShouldAutoClose(e, t) { switch (t) { case "beforeWhitespace": return u; case "languageDefined": return g._getLanguageDefinedShouldAutoClose(e); case "always": return c; case "never": return h } } static _getLanguageDefinedShouldAutoClose(e) { try { const t = d.zu.getAutoCloseBeforeSet(e.id); return e => -1 !== t.indexOf(e) } catch (e) { return (0, n.dL)(e), h } } static _getSurroundingPairs(e) { try { return d.zu.getSurroundingPairs(e.id) } catch (e) { return (0, n.dL)(e), null } } } class p { constructor(e, t, i, n) { this._singleCursorStateBrand = void 0, this.selectionStart = e, this.selectionStartLeftoverVisibleColumns = t, this.position = i, this.leftoverVisibleColumns = n, this.selection = p._computeSelection(this.selectionStart, this.position) } equals(e) { return this.selectionStartLeftoverVisibleColumns === e.selectionStartLeftoverVisibleColumns && this.leftoverVisibleColumns === e.leftoverVisibleColumns && this.position .equals(e.position) && this.selectionStart.equalsRange(e.selectionStart) } hasSelection() { return !this.selection.isEmpty() || !this.selectionStart.isEmpty() } move(e, t, i, n) { return e ? new p(this.selectionStart, this.selectionStartLeftoverVisibleColumns, new r.L(t, i), n) : new p(new s.e(t, i, t, i), n, new r.L(t, i), n) } static _computeSelection(e, t) { let i, n, o, r; return e.isEmpty() ? (i = e.startLineNumber, n = e.startColumn, o = t.lineNumber, r = t.column) : t.isBeforeOrEqual(e.getStartPosition()) ? (i = e.endLineNumber, n = e.endColumn, o = t.lineNumber, r = t.column) : (i = e.startLineNumber, n = e.startColumn, o = t.lineNumber, r = t.column), new a.Y(i, n, o, r) } } class m { constructor(e, t, i, n) { this._cursorContextBrand = void 0, this.model = e, this.viewModel = t, this.coordinatesConverter = i, this.cursorConfig = n } } class f { constructor(e) { this.modelState = e, this.viewState = null } } class _ { constructor(e) { this.modelState = null, this.viewState = e } } class b { constructor(e, t) { this._cursorStateBrand = void 0, this.modelState = e, this.viewState = t } static fromModelState(e) { return new f(e) } static fromViewState(e) { return new _(e) } static fromModelSelection(e) { const t = e.selectionStartLineNumber, i = e.selectionStartColumn, n = e.positionLineNumber, o = e.positionColumn, a = new p(new s.e(t, i, t, i), 0, new r.L(n, o), 0); return b.fromModelState(a) } static fromModelSelections(e) { let t = []; for (let i = 0, n = e.length; i < n; i++) t[i] = this.fromModelSelection( e[i]); return t } equals(e) { return this.viewState.equals(e.viewState) && this.modelState.equals(e.modelState) } } class v { constructor(e, t, i) { this._editOperationResultBrand = void 0, this.type = e, this.commands = t, this.shouldPushStackElementBefore = i.shouldPushStackElementBefore, this.shouldPushStackElementAfter = i.shouldPushStackElementAfter } } class w { static visibleColumnFromColumn(e, t, i) { const n = e.length, r = t - 1 < n ? t - 1 : n; let s = 0, a = 0; for (; a < r;) { const t = o.ZH(e, r, a); if (a += t >= 65536 ? 2 : 1, 9 === t) s = w.nextRenderTabStop(s, i); else { let i = o.S6(t); for (; a < r;) { const t = o.ZH(e, r, a), n = o.S6(t); if (o.fi(i, n)) break; a += t >= 65536 ? 2 : 1, i = n } o.K7(t) || o.C8(t) ? s += 2 : s += 1 } } return s } static visibleColumnsByColumns(e, t) { const i = e.length; let n = new Array; n.push(-1); let r = 0, s = 0; for (; s < i;) { const a = o.ZH(e, i, s); if (s += a >= 65536 ? 2 : 1, n.push(r), a >= 65536 && n.push(r), 9 === a) r = w.nextRenderTabStop(r, t); else { let t = o.S6(a); for (; s < i;) { const l = o.ZH(e, i, s), d = o.S6(l); if (o.fi(t, d)) break; s += l >= 65536 ? 2 : 1, n.push(r), a >= 65536 && n.push(r), t = d } o.K7(a) || o.C8(a) ? r += 2 : r += 1 } } return n.push(r), n } static visibleColumnFromColumn2(e, t, i) { return this.visibleColumnFromColumn(t.getLineContent(i.lineNumber), i.column, e.tabSize) } static columnFromVisibleColumn(e, t, i) { if (t <= 0) return 1; const n = e.length; let r = 0, s = 1, a = 0; for (; a < n;) { const l = o.ZH(e, n, a); let d; if (a += l >= 65536 ? 2 : 1, 9 === l) d = w.nextRenderTabStop(r, i); else { let t = o.S6(l); for (; a < n;) { const i = o.ZH(e, n, a), r = o.S6(i); if (o.fi(t, r)) break; a += i >= 65536 ? 2 : 1, t = r } d = o.K7(l) || o.C8(l) ? r + 2 : r + 1 } const c = a + 1; if (d >= t) return d - t < t - r ? c : s; r = d, s = c } return n + 1 } static columnFromVisibleColumn2(e, t, i, n) { let o = this.columnFromVisibleColumn(t.getLineContent(i), n, e.tabSize), r = t.getLineMinColumn(i); if (o < r) return r; let s = t.getLineMaxColumn(i); return o > s ? s : o } static nextRenderTabStop(e, t) { return e + t - e % t } static nextIndentTabStop(e, t) { return e + t - e % t } static prevRenderTabStop(e, t) { return Math.max(0, e - 1 - (e - 1) % t) } static prevIndentTabStop(e, t) { return Math.max(0, e - 1 - (e - 1) % t) } } function C(e) { return "'" === e || '"' === e || "`" === e } }, 1380: (e, t, i) => { "use strict"; i.d(t, { A: () => d }); var n = i(7295), o = i(1329), r = i(3181), s = i(8784), a = i(4314), l = i(187); class d { static deleteRight(e, t, i, n) { let r = [], l = 3 !== e; for (let e = 0, d = n.length; e < d; e++) { const d = n[e]; let c = d; if (c.isEmpty()) { let e = d.getPosition(), n = s.o.right(t, i, e); c = new a.e(n.lineNumber, n.column, e.lineNumber, e.column) } c.isEmpty() ? r[e] = null : (c.startLineNumber !== c.endLineNumber && (l = !0), r[e] = new o.T4(c, "")) } return [l, r] } static isAutoClosingPairDelete(e, t, i, n, o, s, a) { if ("never" === t && "never" === i) return !1; if ("never" === e) return !1; for (let l = 0, d = s.length; l < d; l++) { const d = s[l], c = d.getPosition(); if (!d.isEmpty()) return !1; const h = o.getLineContent(c.lineNumber); if (c.column < 2 || c.column >= h.length + 1) return !1; const u = h.charAt(c.column - 2), g = n.get(u); if (!g) return !1; if ((0, r.LN)(u)) { if ("never" === i) return !1 } else if ("never" === t) return !1; const p = h.charAt(c.column - 1); let m = !1; for (const e of g) e.open === u && e.close === p && (m = !0); if (!m) return !1; if ("auto" === e) { let e = !1; for (let t = 0, i = a.length; t < i; t++) { const i = a[t]; if (c.lineNumber === i.startLineNumber && c.column === i.startColumn) { e = !0; break } } if (!e) return !1 } } return !0 } static _runAutoClosingPairDelete(e, t, i) { let n = []; for (let e = 0, t = i.length; e < t; e++) { const t = i[e].getPosition(), r = new a.e(t.lineNumber, t.column - 1, t.lineNumber, t.column + 1); n[e] = new o.T4(r, "") } return [!0, n] } static deleteLeft(e, t, i, n, r) { if (this.isAutoClosingPairDelete(t.autoClosingDelete, t.autoClosingBrackets, t.autoClosingQuotes, t.autoClosingPairs.autoClosingPairsOpenByEnd, i, n, r)) return this._runAutoClosingPairDelete(t, i, n); const s = []; let a = 2 !== e; for (let e = 0, r = n.length; e < r; e++) { let r = d.getDeleteRange(n[e], i, t); r.isEmpty() ? s[e] = null : (r.startLineNumber !== r.endLineNumber && (a = !0), s[e] = new o.T4(r, "")) } return [a, s] } static getDeleteRange(e, t, i) { if (!e.isEmpty()) return e; const o = e.getPosition(); if (i.useTabStops && o.column > 1) { const e = t.getLineContent(o.lineNumber), s = n.LC(e), l = -1 === s ? e.length + 1 : s + 1; if (o.column <= l) { const e = r.io.visibleColumnFromColumn2(i, t, o), n = r.io.prevIndentTabStop(e, i.indentSize), s = r.io.columnFromVisibleColumn2(i, t, o.lineNumber, n); return new a.e(o.lineNumber, s, o.lineNumber, o.column) } } return a.e.fromPositions(d.getPositionAfterDeleteLeft(o, t), o) } static getPositionAfterDeleteLeft(e, t) { if (e.column > 1) { const i = n.oH(e.column - 1, t.getLineContent(e.lineNumber)); return e.with(void 0, i + 1) } if (e.lineNumber > 1) { const i = e.lineNumber - 1; return new l.L(i, t.getLineMaxColumn(i)) } return e } static cut(e, t, i) { let n = []; for (let r = 0, s = i.length; r < s; r++) { const s = i[r]; if (s.isEmpty()) if (e.emptySelectionClipboard) { let e, i, l, d, c = s.getPosition(); c.lineNumber < t.getLineCount() ? (e = c.lineNumber, i = 1, l = c.lineNumber + 1, d = 1) : c.lineNumber > 1 ? (e = c.lineNumber - 1, i = t.getLineMaxColumn( c.lineNumber - 1), l = c.lineNumber, d = t.getLineMaxColumn(c.lineNumber)) : (e = c.lineNumber, i = 1, l = c.lineNumber, d = t.getLineMaxColumn( c.lineNumber)); let h = new a.e(e, i, l, d); h.isEmpty() ? n[r] = null : n[r] = new o.T4(h, "") } else n[r] = null; else n[r] = new o.T4(s, "") } return new r.Tp(0, n, { shouldPushStackElementBefore: !0, shouldPushStackElementAfter: !0 }) } } }, 3814: (e, t, i) => { "use strict"; i.d(t, { P: () => c, N: () => n }); var n, o = i(8401), r = i(3181), s = i(8784), a = i(5795), l = i(187), d = i(4314); class c { static addCursorDown(e, t, i) { let n = [], o = 0; for (let a = 0, l = t.length; a < l; a++) { const l = t[a]; n[o++] = new r.Vi(l.modelState, l.viewState), n[o++] = i ? r.Vi.fromModelState( s.o.translateDown(e.cursorConfig, e.model, l.modelState)) : r.Vi.fromViewState( s.o.translateDown(e.cursorConfig, e, l.viewState)) } return n } static addCursorUp(e, t, i) { let n = [], o = 0; for (let a = 0, l = t.length; a < l; a++) { const l = t[a]; n[o++] = new r.Vi(l.modelState, l.viewState), n[o++] = i ? r.Vi.fromModelState( s.o.translateUp(e.cursorConfig, e.model, l.modelState)) : r.Vi.fromViewState( s.o.translateUp(e.cursorConfig, e, l.viewState)) } return n } static moveToBeginningOfLine(e, t, i) { let n = []; for (let o = 0, r = t.length; o < r; o++) { const r = t[o]; n[o] = this._moveToLineStart(e, r, i) } return n } static _moveToLineStart(e, t, i) { const n = t.viewState.position.column, o = n === t.modelState.position.column, r = t.viewState.position.lineNumber, s = e.getLineFirstNonWhitespaceColumn(r); return o || n === s ? this._moveToLineStartByModel(e, t, i) : this._moveToLineStartByView( e, t, i) } static _moveToLineStartByView(e, t, i) { return r.Vi.fromViewState(s.o.moveToBeginningOfLine(e.cursorConfig, e, t.viewState, i)) } static _moveToLineStartByModel(e, t, i) { return r.Vi.fromModelState(s.o.moveToBeginningOfLine(e.cursorConfig, e .model, t.modelState, i)) } static moveToEndOfLine(e, t, i, n) { let o = []; for (let r = 0, s = t.length; r < s; r++) { const s = t[r]; o[r] = this._moveToLineEnd(e, s, i, n) } return o } static _moveToLineEnd(e, t, i, n) { const o = t.viewState.position, r = e.getLineMaxColumn(o.lineNumber), s = o.column === r, a = t.modelState.position, l = e.model.getLineMaxColumn(a.lineNumber), d = r - o.column == l - a.column; return s || d ? this._moveToLineEndByModel(e, t, i, n) : this._moveToLineEndByView( e, t, i, n) } static _moveToLineEndByView(e, t, i, n) { return r.Vi.fromViewState(s.o.moveToEndOfLine(e.cursorConfig, e, t.viewState, i, n)) } static _moveToLineEndByModel(e, t, i, n) { return r.Vi.fromModelState(s.o.moveToEndOfLine(e.cursorConfig, e.model, t.modelState, i, n)) } static expandLineSelection(e, t) { let i = []; for (let n = 0, o = t.length; n < o; n++) { const o = t[n], s = o.modelState.selection.startLineNumber, a = e.model.getLineCount(); let c, h = o.modelState.selection.endLineNumber; h === a ? c = e.model.getLineMaxColumn(a) : (h++, c = 1), i[n] = r.Vi .fromModelState(new r.rS(new d.e(s, 1, s, 1), 0, new l.L(h, c), 0)) } return i } static moveToBeginningOfBuffer(e, t, i) { let n = []; for (let o = 0, a = t.length; o < a; o++) { const a = t[o]; n[o] = r.Vi.fromModelState(s.o.moveToBeginningOfBuffer(e.cursorConfig, e.model, a.modelState, i)) } return n } static moveToEndOfBuffer(e, t, i) { let n = []; for (let o = 0, a = t.length; o < a; o++) { const a = t[o]; n[o] = r.Vi.fromModelState(s.o.moveToEndOfBuffer(e.cursorConfig, e.model, a.modelState, i)) } return n } static selectAll(e, t) { const i = e.model.getLineCount(), n = e.model.getLineMaxColumn(i); return r.Vi.fromModelState(new r.rS(new d.e(1, 1, 1, 1), 0, new l.L(i, n), 0)) } static line(e, t, i, n, o) { const s = e.model.validatePosition(n), a = o ? e.coordinatesConverter.validateViewPosition(new l.L(o.lineNumber, o.column), s) : e.coordinatesConverter.convertModelPositionToViewPosition( s); if (!i || !t.modelState.hasSelection()) { const t = e.model.getLineCount(); let i = s.lineNumber + 1, n = 1; return i > t && (i = t, n = e.model.getLineMaxColumn(i)), r.Vi.fromModelState( new r.rS(new d.e(s.lineNumber, 1, i, n), 0, new l.L(i, n), 0)) } const c = t.modelState.selectionStart.getStartPosition().lineNumber; if (s.lineNumber < c) return r.Vi.fromViewState(t.viewState.move(t.modelState .hasSelection(), a.lineNumber, 1, 0)); if (s.lineNumber > c) { const i = e.getLineCount(); let n = a.lineNumber + 1, o = 1; return n > i && (n = i, o = e.getLineMaxColumn(n)), r.Vi.fromViewState( t.viewState.move(t.modelState.hasSelection(), n, o, 0)) } { const e = t.modelState.selectionStart.getEndPosition(); return r.Vi.fromModelState(t.modelState.move(t.modelState.hasSelection(), e.lineNumber, e.column, 0)) } } static word(e, t, i, n) { const o = e.model.validatePosition(n); return r.Vi.fromModelState(a.w.word(e.cursorConfig, e.model, t.modelState, i, o)) } static cancelSelection(e, t) { if (!t.modelState.hasSelection()) return new r.Vi(t.modelState, t.viewState); const i = t.viewState.position.lineNumber, n = t.viewState.position.column; return r.Vi.fromViewState(new r.rS(new d.e(i, n, i, n), 0, new l.L(i, n), 0)) } static moveTo(e, t, i, n, o) { const s = e.model.validatePosition(n), a = o ? e.coordinatesConverter.validateViewPosition(new l.L(o.lineNumber, o.column), s) : e.coordinatesConverter.convertModelPositionToViewPosition( s); return r.Vi.fromViewState(t.viewState.move(i, a.lineNumber, a.column, 0)) } static simpleMove(e, t, i, n, o, a) { switch (i) { case 0: return 4 === a ? this._moveHalfLineLeft(e, t, n) : this._moveLeft(e, t, n, o); case 1: return 4 === a ? this._moveHalfLineRight(e, t, n) : this._moveRight( e, t, n, o); case 2: return 2 === a ? this._moveUpByViewLines(e, t, n, o) : this._moveUpByModelLines( e, t, n, o); case 3: return 2 === a ? this._moveDownByViewLines(e, t, n, o) : this._moveDownByModelLines( e, t, n, o); case 4: return 2 === a ? t.map((t => r.Vi.fromViewState(s.o.moveToPrevBlankLine( e.cursorConfig, e, t.viewState, n)))) : t.map((t => r.Vi.fromModelState( s.o.moveToPrevBlankLine(e.cursorConfig, e.model, t.modelState, n) ))); case 5: return 2 === a ? t.map((t => r.Vi.fromViewState(s.o.moveToNextBlankLine( e.cursorConfig, e, t.viewState, n)))) : t.map((t => r.Vi.fromModelState( s.o.moveToNextBlankLine(e.cursorConfig, e.model, t.modelState, n) ))); case 6: return this._moveToViewMinColumn(e, t, n); case 7: return this._moveToViewFirstNonWhitespaceColumn(e, t, n); case 8: return this._moveToViewCenterColumn(e, t, n); case 9: return this._moveToViewMaxColumn(e, t, n); case 10: return this._moveToViewLastNonWhitespaceColumn(e, t, n); default: return null } } static viewportMove(e, t, i, n, o) { const r = e.getCompletelyVisibleViewRange(), s = e.coordinatesConverter.convertViewRangeToModelRange(r); switch (i) { case 11: { const i = this._firstLineNumberInRange(e.model, s, o), r = e.model.getLineFirstNonWhitespaceColumn(i); return [this._moveToModelPosition(e, t[0], n, i, r)] } case 13: { const i = this._lastLineNumberInRange(e.model, s, o), r = e.model.getLineFirstNonWhitespaceColumn(i); return [this._moveToModelPosition(e, t[0], n, i, r)] } case 12: { const i = Math.round((s.startLineNumber + s.endLineNumber) / 2), o = e.model.getLineFirstNonWhitespaceColumn(i); return [this._moveToModelPosition(e, t[0], n, i, o)] } case 14: { let i = []; for (let o = 0, s = t.length; o < s; o++) { const s = t[o]; i[o] = this.findPositionInViewportIfOutside(e, s, r, n) } return i } default: return null } } static findPositionInViewportIfOutside(e, t, i, n) { let o = t.viewState.position.lineNumber; if (i.startLineNumber <= o && o <= i.endLineNumber - 1) return new r.Vi( t.modelState, t.viewState); { o > i.endLineNumber - 1 && (o = i.endLineNumber - 1), o < i.startLineNumber && (o = i.startLineNumber); const r = e.getLineFirstNonWhitespaceColumn(o); return this._moveToViewPosition(e, t, n, o, r) } } static _firstLineNumberInRange(e, t, i) { let n = t.startLineNumber; return t.startColumn !== e.getLineMinColumn(n) && n++, Math.min(t.endLineNumber, n + i - 1) } static _lastLineNumberInRange(e, t, i) { let n = t.startLineNumber; return t.startColumn !== e.getLineMinColumn(n) && n++, Math.max(n, t.endLineNumber - i + 1) } static _moveLeft(e, t, i, n) { return t.map((t => r.Vi.fromViewState(s.o.moveLeft(e.cursorConfig, e, t.viewState, i, n)))) } static _moveHalfLineLeft(e, t, i) { let n = []; for (let o = 0, a = t.length; o < a; o++) { const a = t[o], l = a.viewState.position.lineNumber, d = Math.round(e.getLineContent(l).length / 2); n[o] = r.Vi.fromViewState(s.o.moveLeft(e.cursorConfig, e, a.viewState, i, d)) } return n } static _moveRight(e, t, i, n) { return t.map((t => r.Vi.fromViewState(s.o.moveRight(e.cursorConfig, e, t.viewState, i, n)))) } static _moveHalfLineRight(e, t, i) { let n = []; for (let o = 0, a = t.length; o < a; o++) { const a = t[o], l = a.viewState.position.lineNumber, d = Math.round(e.getLineContent(l).length / 2); n[o] = r.Vi.fromViewState(s.o.moveRight(e.cursorConfig, e, a.viewState, i, d)) } return n } static _moveDownByViewLines(e, t, i, n) { let o = []; for (let a = 0, l = t.length; a < l; a++) { const l = t[a]; o[a] = r.Vi.fromViewState(s.o.moveDown(e.cursorConfig, e, l.viewState, i, n)) } return o } static _moveDownByModelLines(e, t, i, n) { let o = []; for (let a = 0, l = t.length; a < l; a++) { const l = t[a]; o[a] = r.Vi.fromModelState(s.o.moveDown(e.cursorConfig, e.model, l.modelState, i, n)) } return o } static _moveUpByViewLines(e, t, i, n) { let o = []; for (let a = 0, l = t.length; a < l; a++) { const l = t[a]; o[a] = r.Vi.fromViewState(s.o.moveUp(e.cursorConfig, e, l.viewState, i, n)) } return o } static _moveUpByModelLines(e, t, i, n) { let o = []; for (let a = 0, l = t.length; a < l; a++) { const l = t[a]; o[a] = r.Vi.fromModelState(s.o.moveUp(e.cursorConfig, e.model, l.modelState, i, n)) } return o } static _moveToViewPosition(e, t, i, n, o) { return r.Vi.fromViewState(t.viewState.move(i, n, o, 0)) } static _moveToModelPosition(e, t, i, n, o) { return r.Vi.fromModelState(t.modelState.move(i, n, o, 0)) } static _moveToViewMinColumn(e, t, i) { let n = []; for (let o = 0, r = t.length; o < r; o++) { const r = t[o], s = r.viewState.position.lineNumber, a = e.getLineMinColumn(s); n[o] = this._moveToViewPosition(e, r, i, s, a) } return n } static _moveToViewFirstNonWhitespaceColumn(e, t, i) { let n = []; for (let o = 0, r = t.length; o < r; o++) { const r = t[o], s = r.viewState.position.lineNumber, a = e.getLineFirstNonWhitespaceColumn(s); n[o] = this._moveToViewPosition(e, r, i, s, a) } return n } static _moveToViewCenterColumn(e, t, i) { let n = []; for (let o = 0, r = t.length; o < r; o++) { const r = t[o], s = r.viewState.position.lineNumber, a = Math.round((e.getLineMaxColumn(s) + e.getLineMinColumn(s)) / 2); n[o] = this._moveToViewPosition(e, r, i, s, a) } return n } static _moveToViewMaxColumn(e, t, i) { let n = []; for (let o = 0, r = t.length; o < r; o++) { const r = t[o], s = r.viewState.position.lineNumber, a = e.getLineMaxColumn(s); n[o] = this._moveToViewPosition(e, r, i, s, a) } return n } static _moveToViewLastNonWhitespaceColumn(e, t, i) { let n = []; for (let o = 0, r = t.length; o < r; o++) { const r = t[o], s = r.viewState.position.lineNumber, a = e.getLineLastNonWhitespaceColumn(s); n[o] = this._moveToViewPosition(e, r, i, s, a) } return n } }! function(e) { e.description = { description: "Move cursor to a logical position in the view", args: [{ name: "Cursor move argument object", description: "Property-value pairs that can be passed through this argument:\n\t\t\t\t\t* 'to': A mandatory logical position value providing where to move the cursor.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'left', 'right', 'up', 'down', 'prevBlankLine', 'nextBlankLine',\n\t\t\t\t\t\t'wrappedLineStart', 'wrappedLineEnd', 'wrappedLineColumnCenter'\n\t\t\t\t\t\t'wrappedLineFirstNonWhitespaceCharacter', 'wrappedLineLastNonWhitespaceCharacter'\n\t\t\t\t\t\t'viewPortTop', 'viewPortCenter', 'viewPortBottom', 'viewPortIfOutside'\n\t\t\t\t\t\t```\n\t\t\t\t\t* 'by': Unit to move. Default is computed based on 'to' value.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'line', 'wrappedLine', 'character', 'halfLine'\n\t\t\t\t\t\t```\n\t\t\t\t\t* 'value': Number of units to move. Default is '1'.\n\t\t\t\t\t* 'select': If 'true' makes the selection. Default is 'false'.\n\t\t\t\t", constraint: function(e) { if (!o.Kn(e)) return !1; let t = e; return !(!o.HD(t.to) || !o.o8(t.select) && !o.jn(t.select) || !o.o8( t.by) && !o.HD(t.by) || !o.o8(t.value) && !o.hj(t.value)) }, schema: { type: "object", required: ["to"], properties: { to: { type: "string", enum: ["left", "right", "up", "down", "prevBlankLine", "nextBlankLine", "wrappedLineStart", "wrappedLineEnd", "wrappedLineColumnCenter", "wrappedLineFirstNonWhitespaceCharacter", "wrappedLineLastNonWhitespaceCharacter", "viewPortTop", "viewPortCenter", "viewPortBottom", "viewPortIfOutside" ] }, by: { type: "string", enum: ["line", "wrappedLine", "character", "halfLine"] }, value: { type: "number", default: 1 }, select: { type: "boolean", default: !1 } } } }] }, e.RawDirection = { Left: "left", Right: "right", Up: "up", Down: "down", PrevBlankLine: "prevBlankLine", NextBlankLine: "nextBlankLine", WrappedLineStart: "wrappedLineStart", WrappedLineFirstNonWhitespaceCharacter: "wrappedLineFirstNonWhitespaceCharacter", WrappedLineColumnCenter: "wrappedLineColumnCenter", WrappedLineEnd: "wrappedLineEnd", WrappedLineLastNonWhitespaceCharacter: "wrappedLineLastNonWhitespaceCharacter", ViewPortTop: "viewPortTop", ViewPortCenter: "viewPortCenter", ViewPortBottom: "viewPortBottom", ViewPortIfOutside: "viewPortIfOutside" }, e.RawUnit = { Line: "line", WrappedLine: "wrappedLine", Character: "character", HalfLine: "halfLine" }, e.parse = function(t) { if (!t.to) return null; let i; switch (t.to) { case e.RawDirection.Left: i = 0; break; case e.RawDirection.Right: i = 1; break; case e.RawDirection.Up: i = 2; break; case e.RawDirection.Down: i = 3; break; case e.RawDirection.PrevBlankLine: i = 4; break; case e.RawDirection.NextBlankLine: i = 5; break; case e.RawDirection.WrappedLineStart: i = 6; break; case e.RawDirection.WrappedLineFirstNonWhitespaceCharacter: i = 7; break; case e.RawDirection.WrappedLineColumnCenter: i = 8; break; case e.RawDirection.WrappedLineEnd: i = 9; break; case e.RawDirection.WrappedLineLastNonWhitespaceCharacter: i = 10; break; case e.RawDirection.ViewPortTop: i = 11; break; case e.RawDirection.ViewPortBottom: i = 13; break; case e.RawDirection.ViewPortCenter: i = 12; break; case e.RawDirection.ViewPortIfOutside: i = 14; break; default: return null } let n = 0; switch (t.by) { case e.RawUnit.Line: n = 1; break; case e.RawUnit.WrappedLine: n = 2; break; case e.RawUnit.Character: n = 3; break; case e.RawUnit.HalfLine: n = 4 } return { direction: i, unit: n, select: !!t.select, value: t.value || 1 } } }(n || (n = {})) }, 8784: (e, t, i) => { "use strict"; i.d(t, { o: () => d }); var n = i(3181), o = i(187), r = i(4314), s = i(7295), a = i(3675); class l { constructor(e, t, i) { this._cursorPositionBrand = void 0, this.lineNumber = e, this.column = t, this.leftoverVisibleColumns = i } } class d { static leftPosition(e, t) { if (t.column > e.getLineMinColumn(t.lineNumber)) return t.delta(void 0, - s.HO(e.getLineContent(t.lineNumber), t.column - 1)); if (t.lineNumber > 1) { const i = t.lineNumber - 1; return new o.L(i, e.getLineMaxColumn(i)) } return t } static leftPositionAtomicSoftTabs(e, t, i) { if (t.column <= e.getLineIndentColumn(t.lineNumber)) { const n = e.getLineMinColumn(t.lineNumber), r = e.getLineContent(t.lineNumber), s = a.l.atomicPosition(r, t.column - 1, i, 0); if (-1 !== s && s + 1 >= n) return new o.L(t.lineNumber, s + 1) } return this.leftPosition(e, t) } static left(e, t, i) { const n = e.stickyTabStops ? d.leftPositionAtomicSoftTabs(t, i, e.tabSize) : d.leftPosition(t, i); return new l(n.lineNumber, n.column, 0) } static moveLeft(e, t, i, n, o) { let r, s; if (i.hasSelection() && !n) r = i.selection.startLineNumber, s = i.selection .startColumn; else { const n = i.position.delta(void 0, -(o - 1)), a = t.normalizePosition(d.clipPositionColumn(n, t), 0), l = d.left(e, t, a); r = l.lineNumber, s = l.column } return i.move(n, r, s, 0) } static clipPositionColumn(e, t) { return new o.L(e.lineNumber, d.clipRange(e.column, t.getLineMinColumn( e.lineNumber), t.getLineMaxColumn(e.lineNumber))) } static clipRange(e, t, i) { return e < t ? t : e > i ? i : e } static rightPosition(e, t, i) { return i < e.getLineMaxColumn(t) ? i += s.vH(e.getLineContent(t), i - 1) : t < e.getLineCount() && (t += 1, i = e.getLineMinColumn(t)), new o.L(t, i) } static rightPositionAtomicSoftTabs(e, t, i, n, r) { if (i < e.getLineIndentColumn(t)) { const r = e.getLineContent(t), s = a.l.atomicPosition(r, i - 1, n, 1); if (-1 !== s) return new o.L(t, s + 1) } return this.rightPosition(e, t, i) } static right(e, t, i) { const n = e.stickyTabStops ? d.rightPositionAtomicSoftTabs(t, i.lineNumber, i.column, e.tabSize, e.indentSize) : d.rightPosition(t, i.lineNumber, i.column); return new l(n.lineNumber, n.column, 0) } static moveRight(e, t, i, n, o) { let r, s; if (i.hasSelection() && !n) r = i.selection.endLineNumber, s = i.selection .endColumn; else { const n = i.position.delta(void 0, o - 1), a = t.normalizePosition(d.clipPositionColumn(n, t), 1), l = d.right(e, t, a); r = l.lineNumber, s = l.column } return i.move(n, r, s, 0) } static down(e, t, i, o, r, s, a) { const d = n.io.visibleColumnFromColumn(t.getLineContent(i), o, e.tabSize) + r, c = t.getLineCount(), h = i === c && o === t.getLineMaxColumn(i); return (i += s) > c ? (i = c, o = a ? t.getLineMaxColumn(i) : Math.min( t.getLineMaxColumn(i), o)) : o = n.io.columnFromVisibleColumn2(e, t, i, d), r = h ? 0 : d - n.io.visibleColumnFromColumn(t.getLineContent( i), o, e.tabSize), new l(i, o, r) } static moveDown(e, t, i, n, o) { let r, s; i.hasSelection() && !n ? (r = i.selection.endLineNumber, s = i.selection .endColumn) : (r = i.position.lineNumber, s = i.position.column); let a = d.down(e, t, r, s, i.leftoverVisibleColumns, o, !0); return i.move(n, a.lineNumber, a.column, a.leftoverVisibleColumns) } static translateDown(e, t, i) { let s = i.selection, a = d.down(e, t, s.selectionStartLineNumber, s.selectionStartColumn, i.selectionStartLeftoverVisibleColumns, 1, !1), l = d.down(e, t, s.positionLineNumber, s.positionColumn, i.leftoverVisibleColumns, 1, !1); return new n.rS(new r.e(a.lineNumber, a.column, a.lineNumber, a.column), a.leftoverVisibleColumns, new o.L(l.lineNumber, l.column), l.leftoverVisibleColumns ) } static up(e, t, i, o, r, s, a) { const d = n.io.visibleColumnFromColumn(t.getLineContent(i), o, e.tabSize) + r, c = 1 === i && 1 === o; return (i -= s) < 1 ? (i = 1, o = a ? t.getLineMinColumn(i) : Math.min( t.getLineMaxColumn(i), o)) : o = n.io.columnFromVisibleColumn2(e, t, i, d), r = c ? 0 : d - n.io.visibleColumnFromColumn(t.getLineContent( i), o, e.tabSize), new l(i, o, r) } static moveUp(e, t, i, n, o) { let r, s; i.hasSelection() && !n ? (r = i.selection.startLineNumber, s = i.selection .startColumn) : (r = i.position.lineNumber, s = i.position.column); let a = d.up(e, t, r, s, i.leftoverVisibleColumns, o, !0); return i.move(n, a.lineNumber, a.column, a.leftoverVisibleColumns) } static translateUp(e, t, i) { let s = i.selection, a = d.up(e, t, s.selectionStartLineNumber, s.selectionStartColumn, i.selectionStartLeftoverVisibleColumns, 1, !1), l = d.up(e, t, s.positionLineNumber, s.positionColumn, i.leftoverVisibleColumns, 1, !1); return new n.rS(new r.e(a.lineNumber, a.column, a.lineNumber, a.column), a.leftoverVisibleColumns, new o.L(l.lineNumber, l.column), l.leftoverVisibleColumns ) } static _isBlankLine(e, t) { return 0 === e.getLineFirstNonWhitespaceColumn(t) } static moveToPrevBlankLine(e, t, i, n) { let o = i.position.lineNumber; for (; o > 1 && this._isBlankLine(t, o);) o--; for (; o > 1 && !this._isBlankLine(t, o);) o--; return i.move(n, o, t.getLineMinColumn(o), 0) } static moveToNextBlankLine(e, t, i, n) { const o = t.getLineCount(); let r = i.position.lineNumber; for (; r < o && this._isBlankLine(t, r);) r++; for (; r < o && !this._isBlankLine(t, r);) r++; return i.move(n, r, t.getLineMinColumn(r), 0) } static moveToBeginningOfLine(e, t, i, n) { let o, r = i.position.lineNumber, s = t.getLineMinColumn(r), a = t.getLineFirstNonWhitespaceColumn(r) || s; return o = i.position.column === a ? s : a, i.move(n, r, o, 0) } static moveToEndOfLine(e, t, i, n, o) { let r = i.position.lineNumber, s = t.getLineMaxColumn(r); return i.move(n, r, s, o ? 1073741824 - s : 0) } static moveToBeginningOfBuffer(e, t, i, n) { return i.move(n, 1, 1, 0) } static moveToEndOfBuffer(e, t, i, n) { let o = t.getLineCount(), r = t.getLineMaxColumn(o); return i.move(n, o, r, 0) } } }, 3582: (e, t, i) => { "use strict"; i.d(t, { u: () => p, g: () => m }); var n = i(7301), o = i(7295), r = i(1329), s = i(291), a = i(4314), l = i(3860); class d { constructor(e, t, i) { this._range = e, this._charBeforeSelection = t, this._charAfterSelection = i } getEditOperations(e, t) { t.addTrackedEditOperation(new a.e(this._range.startLineNumber, this._range .startColumn, this._range.startLineNumber, this._range.startColumn), this._charBeforeSelection), t.addTrackedEditOperation(new a.e(this._range .endLineNumber, this._range.endColumn, this._range.endLineNumber, this._range.endColumn), this._charAfterSelection) } computeCursorState(e, t) { let i = t.getInverseEditOperations(), n = i[0].range, o = i[1].range; return new l.Y(n.endLineNumber, n.endColumn, o.endLineNumber, o.endColumn - this._charAfterSelection.length) } } var c = i(3181), h = i(9410), u = i(7354), g = i(3831); class p { static indent(e, t, i) { if (null === t || null === i) return []; let n = []; for (let t = 0, o = i.length; t < o; t++) n[t] = new s.U(i[t], { isUnshift: !1, tabSize: e.tabSize, indentSize: e.indentSize, insertSpaces: e.insertSpaces, useTabStops: e.useTabStops, autoIndent: e.autoIndent }); return n } static outdent(e, t, i) { let n = []; for (let t = 0, o = i.length; t < o; t++) n[t] = new s.U(i[t], { isUnshift: !0, tabSize: e.tabSize, indentSize: e.indentSize, insertSpaces: e.insertSpaces, useTabStops: e.useTabStops, autoIndent: e.autoIndent }); return n } static shiftIndent(e, t, i) { return i = i || 1, s.U.shiftIndent(t, t.length + i, e.tabSize, e.indentSize, e.insertSpaces) } static unshiftIndent(e, t, i) { return i = i || 1, s.U.unshiftIndent(t, t.length + i, e.tabSize, e.indentSize, e.insertSpaces) } static _distributedPaste(e, t, i, n) { let o = []; for (let e = 0, t = i.length; e < t; e++) o[e] = new r.T4(i[e], n[e]); return new c.Tp(0, o, { shouldPushStackElementBefore: !0, shouldPushStackElementAfter: !0 }) } static _simplePaste(e, t, i, n, o) { let s = []; for (let e = 0, t = i.length; e < t; e++) { const t = i[e]; let l = t.getPosition(); if (o && !t.isEmpty() && (o = !1), o && n.indexOf("\n") !== n.length - 1 && (o = !1), o) { let i = new a.e(l.lineNumber, 1, l.lineNumber, 1); s[e] = new r.hP(i, n, t, !0) } else s[e] = new r.T4(t, n) } return new c.Tp(0, s, { shouldPushStackElementBefore: !0, shouldPushStackElementAfter: !0 }) } static _distributePasteToCursors(e, t, i, n, r) { if (n) return null; if (1 === t.length) return null; if (r && r.length === t.length) return r; if ("spread" === e.multiCursorPaste) { 10 === i.charCodeAt(i.length - 1) && (i = i.substr(0, i.length - 1)), 13 === i.charCodeAt(i.length - 1) && (i = i.substr(0, i.length - 1)); let e = o.uq(i); if (e.length === t.length) return e } return null } static paste(e, t, i, n, o, r) { const s = this._distributePasteToCursors(e, i, n, o, r); return s ? (i = i.sort(a.e.compareRangesUsingStarts), this._distributedPaste( e, t, i, s)) : this._simplePaste(e, t, i, n, o) } static _goodIndentForLine(e, t, i) { let n = null, r = ""; const s = g.zu.getInheritIndentForLine(e.autoIndent, t, i, !1); if (s) n = s.action, r = s.indentation; else if (i > 1) { let n; for (n = i - 1; n >= 1; n--) { const e = t.getLineContent(n); if (o.ow(e) >= 0) break } if (n < 1) return null; const s = t.getLineMaxColumn(n), l = g.zu.getEnterAction(e.autoIndent, t, new a.e(n, s, n, s)); l && (r = l.indentation + l.appendText) } return n && (n === u.wU.Indent && (r = p.shiftIndent(e, r)), n === u.wU .Outdent && (r = p.unshiftIndent(e, r)), r = e.normalizeIndentation( r)), r || null } static _replaceJumpToNextIndent(e, t, i, n) { let o = "", s = i.getStartPosition(); if (e.insertSpaces) { let i = c.io.visibleColumnFromColumn2(e, t, s), n = e.indentSize, r = n - i % n; for (let e = 0; e < r; e++) o += " " } else o = "\t"; return new r.T4(i, o, n) } static tab(e, t, i) { let n = []; for (let o = 0, l = i.length; o < l; o++) { const l = i[o]; if (l.isEmpty()) { let i = t.getLineContent(l.startLineNumber); if (/^\s*$/.test(i) && t.isCheapToTokenize(l.startLineNumber)) { let s = this._goodIndentForLine(e, t, l.startLineNumber); s = s || "\t"; let d = e.normalizeIndentation(s); if (!i.startsWith(d)) { n[o] = new r.T4(new a.e(l.startLineNumber, 1, l.startLineNumber, i .length + 1), d, !0); continue } } n[o] = this._replaceJumpToNextIndent(e, t, l, !0) } else { if (l.startLineNumber === l.endLineNumber) { let i = t.getLineMaxColumn(l.startLineNumber); if (1 !== l.startColumn || l.endColumn !== i) { n[o] = this._replaceJumpToNextIndent(e, t, l, !1); continue } } n[o] = new s.U(l, { isUnshift: !1, tabSize: e.tabSize, indentSize: e.indentSize, insertSpaces: e.insertSpaces, useTabStops: e.useTabStops, autoIndent: e.autoIndent }) } } return n } static compositionType(e, t, i, n, o, r, s, a) { const l = n.map((e => this._compositionType(i, e, o, r, s, a))); return new c.Tp(4, l, { shouldPushStackElementBefore: _(e, 4), shouldPushStackElementAfter: !1 }) } static _compositionType(e, t, i, n, o, s) { if (!t.isEmpty()) return null; const l = t.getPosition(), d = Math.max(1, l.column - n), c = Math.min(e.getLineMaxColumn(l.lineNumber), l.column + o), h = new a.e(l.lineNumber, d, l.lineNumber, c); return e.getValueInRange(h) === i && 0 === s ? null : new r.Uo(h, i, 0, s) } static _typeCommand(e, t, i) { return i ? new r.Sj(e, t, !0) : new r.T4(e, t, !0) } static _enter(e, t, i, n) { if (0 === e.autoIndent) return p._typeCommand(n, "\n", i); if (!t.isCheapToTokenize(n.getStartPosition().lineNumber) || 1 === e.autoIndent) { let r = t.getLineContent(n.startLineNumber), s = o.V8(r).substring(0, n.startColumn - 1); return p._typeCommand(n, "\n" + e.normalizeIndentation(s), i) } const s = g.zu.getEnterAction(e.autoIndent, t, n); if (s) { if (s.indentAction === u.wU.None) return p._typeCommand(n, "\n" + e.normalizeIndentation( s.indentation + s.appendText), i); if (s.indentAction === u.wU.Indent) return p._typeCommand(n, "\n" + e .normalizeIndentation(s.indentation + s.appendText), i); if (s.indentAction === u.wU.IndentOutdent) { const t = e.normalizeIndentation(s.indentation), o = e.normalizeIndentation(s.indentation + s.appendText), a = "\n" + o + "\n" + t; return i ? new r.Sj(n, a, !0) : new r.Uo(n, a, -1, o.length - t.length, ! 0) } if (s.indentAction === u.wU.Outdent) { const t = p.unshiftIndent(e, s.indentation); return p._typeCommand(n, "\n" + e.normalizeIndentation(t + s.appendText), i) } } const a = t.getLineContent(n.startLineNumber), l = o.V8(a).substring(0, n.startColumn - 1); if (e.autoIndent >= 4) { const s = g.zu.getIndentForEnter(e.autoIndent, t, n, { unshiftIndent: t => p.unshiftIndent(e, t), shiftIndent: t => p.shiftIndent(e, t), normalizeIndentation: t => e.normalizeIndentation(t) }); if (s) { let a = c.io.visibleColumnFromColumn2(e, t, n.getEndPosition()); const l = n.endColumn, d = t.getLineContent(n.endLineNumber), h = o.LC(d); if (n = h >= 0 ? n.setEndPosition(n.endLineNumber, Math.max(n.endColumn, h + 1)) : n.setEndPosition(n.endLineNumber, t.getLineMaxColumn(n.endLineNumber)), i) return new r.Sj(n, "\n" + e.normalizeIndentation(s.afterEnter), ! 0); { let t = 0; return l <= h + 1 && (e.insertSpaces || (a = Math.ceil(a / e.indentSize)), t = Math.min(a + 1 - e.normalizeIndentation(s.afterEnter).length - 1, 0)), new r.Uo(n, "\n" + e.normalizeIndentation(s.afterEnter), 0, t, !0) } } } return p._typeCommand(n, "\n" + e.normalizeIndentation(l), i) } static _isAutoIndentType(e, t, i) { if (e.autoIndent < 4) return !1; for (let e = 0, n = i.length; e < n; e++) if (!t.isCheapToTokenize(i[e].getEndPosition().lineNumber)) return !1; return !0 } static _runAutoIndentType(e, t, i, n) { const o = g.zu.getIndentationAtPosition(t, i.startLineNumber, i.startColumn), r = g.zu.getIndentActionForType(e.autoIndent, t, i, n, { shiftIndent: t => p.shiftIndent(e, t), unshiftIndent: t => p.unshiftIndent(e, t) }); if (null === r) return null; if (r !== e.normalizeIndentation(o)) { const o = t.getLineFirstNonWhitespaceColumn(i.startLineNumber); return 0 === o ? p._typeCommand(new a.e(i.startLineNumber, 1, i.endLineNumber, i.endColumn), e.normalizeIndentation(r) + n, !1) : p._typeCommand( new a.e(i.startLineNumber, 1, i.endLineNumber, i.endColumn), e.normalizeIndentation( r) + t.getLineContent(i.startLineNumber).substring(o - 1, i.startColumn - 1) + n, !1) } return null } static _isAutoClosingOvertype(e, t, i, n, o) { if ("never" === e.autoClosingOvertype) return !1; if (!e.autoClosingPairs.autoClosingPairsCloseSingleChar.has(o)) return !1; for (let r = 0, s = i.length; r < s; r++) { const s = i[r]; if (!s.isEmpty()) return !1; const a = s.getPosition(), l = t.getLineContent(a.lineNumber); if (l.charAt(a.column - 1) !== o) return !1; const d = (0, c.LN)(o); if (92 === (a.column > 2 ? l.charCodeAt(a.column - 2) : 0) && d) return !1; if ("auto" === e.autoClosingOvertype) { let e = !1; for (let t = 0, i = n.length; t < i; t++) { const i = n[t]; if (a.lineNumber === i.startLineNumber && a.column === i.startColumn) { e = !0; break } } if (!e) return !1 } } return !0 } static _runAutoClosingOvertype(e, t, i, n, o) { let s = []; for (let e = 0, t = n.length; e < t; e++) { const t = n[e].getPosition(), i = new a.e(t.lineNumber, t.column, t.lineNumber, t.column + 1); s[e] = new r.T4(i, o) } return new c.Tp(4, s, { shouldPushStackElementBefore: _(e, 4), shouldPushStackElementAfter: !1 }) } static _isBeforeClosingBrace(e, t) { const i = t.charAt(0), n = e.autoClosingPairs.autoClosingPairsOpenByStart.get(i) || [], o = e.autoClosingPairs.autoClosingPairsCloseByStart.get(i) || [], r = n.some((e => t.startsWith(e.open))), s = o.some((e => t.startsWith(e.close))); return !r && s } static _findAutoClosingPairOpen(e, t, i, n) { const o = e.autoClosingPairs.autoClosingPairsOpenByEnd.get(n); if (!o) return null; let r = null; for (const e of o) if (null === r || e.open.length > r.open.length) { let o = !0; for (const r of i) if (t.getValueInRange(new a.e(r.lineNumber, r.column - e.open.length + 1, r.lineNumber, r.column)) + n !== e.open) { o = !1; break } o && (r = e) } return r } static _findSubAutoClosingPairClose(e, t) { if (t.open.length <= 1) return ""; const i = t.close.charAt(t.close.length - 1), n = e.autoClosingPairs.autoClosingPairsCloseByEnd.get(i) || []; let o = null; for (const e of n) e.open !== t.open && t.open.includes(e.open) && t.close .endsWith(e.close) && (!o || e.open.length > o.open.length) && (o = e); return o ? o.close : "" } static _getAutoClosingPairClose(e, t, i, o, r) { const s = (0, c.LN)(o), a = s ? e.autoClosingQuotes : e.autoClosingBrackets; if ("never" === a) return null; const l = this._findAutoClosingPairOpen(e, t, i.map((e => e.getPosition())), o); if (!l) return null; const d = this._findSubAutoClosingPairClose(e, l); let u = !0; const m = s ? e.shouldAutoCloseBefore.quote : e.shouldAutoCloseBefore.bracket; for (let o = 0, c = i.length; o < c; o++) { const c = i[o]; if (!c.isEmpty()) return null; const f = c.getPosition(), _ = t.getLineContent(f.lineNumber), b = _.substring(f.column - 1); if (b.startsWith(d) || (u = !1), _.length > f.column - 1) { const t = _.charAt(f.column - 1); if (!p._isBeforeClosingBrace(e, b) && !m(t)) return null } if (!t.isCheapToTokenize(f.lineNumber)) return null; if (1 === l.open.length && s && "always" !== a) { const t = (0, h.u)(e.wordSeparators); if (r && f.column > 1 && 0 === t.get(_.charCodeAt(f.column - 2))) return null; if (!r && f.column > 2 && 0 === t.get(_.charCodeAt(f.column - 3))) return null } t.forceTokenization(f.lineNumber); const v = t.getLineTokens(f.lineNumber); let w = !1; try { w = g.zu.shouldAutoClosePair(l, v, r ? f.column : f.column - 1) } catch (e) { (0, n.dL)(e) } if (!w) return null } return u ? l.close.substring(0, l.close.length - d.length) : l.close } static _runAutoClosingOpenCharType(e, t, i, n, o, r, s) { let a = []; for (let e = 0, t = n.length; e < t; e++) { const t = n[e]; a[e] = new m(t, o, r, s) } return new c.Tp(4, a, { shouldPushStackElementBefore: !0, shouldPushStackElementAfter: !1 }) } static _shouldSurroundChar(e, t) { return (0, c.LN)(t) ? "quotes" === e.autoSurround || "languageDefined" === e.autoSurround : "brackets" === e.autoSurround || "languageDefined" === e.autoSurround } static _isSurroundSelectionType(e, t, i, n) { if (!p._shouldSurroundChar(e, n) || !e.surroundingPairs.hasOwnProperty( n)) return !1; const o = (0, c.LN)(n); for (let e = 0, n = i.length; e < n; e++) { const n = i[e]; if (n.isEmpty()) return !1; let r = !0; for (let e = n.startLineNumber; e <= n.endLineNumber; e++) { const i = t.getLineContent(e), o = e === n.startLineNumber ? n.startColumn - 1 : 0, s = e === n.endLineNumber ? n.endColumn - 1 : i.length, a = i.substring(o, s); if (/[^ \t]/.test(a)) { r = !1; break } } if (r) return !1; if (o && n.startLineNumber === n.endLineNumber && n.startColumn + 1 === n.endColumn) { const e = t.getValueInRange(n); if ((0, c.LN)(e)) return !1 } } return !0 } static _runSurroundSelectionType(e, t, i, n, o) { let r = []; for (let e = 0, i = n.length; e < i; e++) { const i = n[e], s = t.surroundingPairs[o]; r[e] = new d(i, o, s) } return new c.Tp(0, r, { shouldPushStackElementBefore: !0, shouldPushStackElementAfter: !0 }) } static _isTypeInterceptorElectricChar(e, t, i) { return !(1 !== i.length || !t.isCheapToTokenize(i[0].getEndPosition().lineNumber)) } static _typeInterceptorElectricChar(e, t, i, s, l) { if (!t.electricChars.hasOwnProperty(l) || !s.isEmpty()) return null; let d = s.getPosition(); i.forceTokenization(d.lineNumber); let h, u = i.getLineTokens(d.lineNumber); try { h = g.zu.onElectricCharacter(l, u, d.column) } catch (e) { return (0, n.dL)(e), null } if (!h) return null; if (h.matchOpenBracket) { let n = (u.getLineContent() + l).lastIndexOf(h.matchOpenBracket) + 1, s = i.findMatchingBracketUp(h.matchOpenBracket, { lineNumber: d.lineNumber, column: n }); if (s) { if (s.startLineNumber === d.lineNumber) return null; let n = i.getLineContent(s.startLineNumber), h = o.V8(n), u = t.normalizeIndentation(h), g = i.getLineContent(d.lineNumber), p = i.getLineFirstNonWhitespaceColumn(d.lineNumber) || d.column, m = u + g.substring(p - 1, d.column - 1) + l, _ = new a.e(d.lineNumber, 1, d.lineNumber, d.column); const b = new r.T4(_, m); return new c.Tp(f(m, e), [b], { shouldPushStackElementBefore: !1, shouldPushStackElementAfter: !0 }) } } return null } static compositionEndWithInterceptors(e, t, i, n, o, s) { if (!n || l.Y.selectionsArrEqual(n, o)) return null; let d = null; for (const e of o) { if (!e.isEmpty()) return null; const t = e.getPosition(), n = i.getValueInRange(new a.e(t.lineNumber, t.column - 1, t.lineNumber, t.column)); if (null === d) d = n; else if (d !== n) return null } if (!d) return null; if (this._isAutoClosingOvertype(t, i, o, s, d)) { const e = o.map((e => new r.T4(new a.e(e.positionLineNumber, e.positionColumn, e.positionLineNumber, e.positionColumn + 1), "", !1))); return new c.Tp(4, e, { shouldPushStackElementBefore: !0, shouldPushStackElementAfter: !1 }) } const h = this._getAutoClosingPairClose(t, i, o, d, !1); return null !== h ? this._runAutoClosingOpenCharType(e, t, i, o, d, !1, h) : null } static typeWithInterceptors(e, t, i, n, o, s, a) { if (!e && "\n" === a) { let e = []; for (let t = 0, r = o.length; t < r; t++) e[t] = p._enter(i, n, !1, o[ t]); return new c.Tp(4, e, { shouldPushStackElementBefore: !0, shouldPushStackElementAfter: !1 }) } if (!e && this._isAutoIndentType(i, n, o)) { let e = [], t = !1; for (let r = 0, s = o.length; r < s; r++) if (e[r] = this._runAutoIndentType(i, n, o[r], a), !e[r]) { t = !0; break } if (!t) return new c.Tp(4, e, { shouldPushStackElementBefore: !0, shouldPushStackElementAfter: !1 }) } if (!e && this._isAutoClosingOvertype(i, n, o, s, a)) return this._runAutoClosingOvertype( t, i, n, o, a); if (!e) { const e = this._getAutoClosingPairClose(i, n, o, a, !0); if (e) return this._runAutoClosingOpenCharType(t, i, n, o, a, !0, e) } if (this._isSurroundSelectionType(i, n, o, a)) return this._runSurroundSelectionType( t, i, n, o, a); if (!e && this._isTypeInterceptorElectricChar(i, n, o)) { const e = this._typeInterceptorElectricChar(t, i, n, o[0], a); if (e) return e } let l = []; for (let e = 0, t = o.length; e < t; e++) l[e] = new r.T4(o[e], a); const d = f(a, t); return new c.Tp(d, l, { shouldPushStackElementBefore: _(t, d), shouldPushStackElementAfter: !1 }) } static typeWithoutInterceptors(e, t, i, n, o) { let s = []; for (let e = 0, t = n.length; e < t; e++) s[e] = new r.T4(n[e], o); const a = f(o, e); return new c.Tp(a, s, { shouldPushStackElementBefore: _(e, a), shouldPushStackElementAfter: !1 }) } static lineInsertBefore(e, t, i) { if (null === t || null === i) return []; let n = []; for (let o = 0, s = i.length; o < s; o++) { let s = i[o].positionLineNumber; if (1 === s) n[o] = new r.Sj(new a.e(1, 1, 1, 1), "\n"); else { s--; let i = t.getLineMaxColumn(s); n[o] = this._enter(e, t, !1, new a.e(s, i, s, i)) } } return n } static lineInsertAfter(e, t, i) { if (null === t || null === i) return []; let n = []; for (let o = 0, r = i.length; o < r; o++) { const r = i[o].positionLineNumber; let s = t.getLineMaxColumn(r); n[o] = this._enter(e, t, !1, new a.e(r, s, r, s)) } return n } static lineBreakInsert(e, t, i) { let n = []; for (let o = 0, r = i.length; o < r; o++) n[o] = this._enter(e, t, !0, i[o]); return n } } class m extends r.Uo { constructor(e, t, i, n) { super(e, (i ? t : "") + n, 0, -n.length), this._openCharacter = t, this._closeCharacter = n, this.closeCharacterRange = null, this.enclosingRange = null } computeCursorState(e, t) { let i = t.getInverseEditOperations()[0].range; return this.closeCharacterRange = new a.e(i.startLineNumber, i.endColumn - this._closeCharacter.length, i.endLineNumber, i.endColumn), this.enclosingRange = new a.e(i.startLineNumber, i.endColumn - this._openCharacter.length - this._closeCharacter.length, i.endLineNumber, i.endColumn), super.computeCursorState( e, t) } } function f(e, t) { return " " === e ? 5 === t || 6 === t ? 6 : 5 : 4 } function _(e, t) { return !(!v(e) || v(t)) || 5 !== e && b(e) !== b(t) } function b(e) { return 6 === e || 5 === e ? "space" : e } function v(e) { return 4 === e || 5 === e || 6 === e } }, 5795: (e, t, i) => { "use strict"; i.d(t, { w: () => d, L: () => c }); var n = i(7295), o = i(3181), r = i(1380), s = i(9410), a = i(187), l = i(4314); class d { static _createWord(e, t, i, n, o) { return { start: n, end: o, wordType: t, nextCharClass: i } } static _findPreviousWordOnLine(e, t, i) { let n = t.getLineContent(i.lineNumber); return this._doFindPreviousWordOnLine(n, e, i) } static _doFindPreviousWordOnLine(e, t, i) { let n = 0; for (let o = i.column - 2; o >= 0; o--) { let i = e.charCodeAt(o), r = t.get(i); if (0 === r) { if (2 === n) return this._createWord(e, n, r, o + 1, this._findEndOfWord( e, t, n, o + 1)); n = 1 } else if (2 === r) { if (1 === n) return this._createWord(e, n, r, o + 1, this._findEndOfWord( e, t, n, o + 1)); n = 2 } else if (1 === r && 0 !== n) return this._createWord(e, n, r, o + 1, this._findEndOfWord(e, t, n, o + 1)) } return 0 !== n ? this._createWord(e, n, 1, 0, this._findEndOfWord(e, t, n, 0)) : null } static _findEndOfWord(e, t, i, n) { let o = e.length; for (let r = n; r < o; r++) { let n = e.charCodeAt(r), o = t.get(n); if (1 === o) return r; if (1 === i && 2 === o) return r; if (2 === i && 0 === o) return r } return o } static _findNextWordOnLine(e, t, i) { let n = t.getLineContent(i.lineNumber); return this._doFindNextWordOnLine(n, e, i) } static _doFindNextWordOnLine(e, t, i) { let n = 0, o = e.length; for (let r = i.column - 1; r < o; r++) { let i = e.charCodeAt(r), o = t.get(i); if (0 === o) { if (2 === n) return this._createWord(e, n, o, this._findStartOfWord( e, t, n, r - 1), r); n = 1 } else if (2 === o) { if (1 === n) return this._createWord(e, n, o, this._findStartOfWord( e, t, n, r - 1), r); n = 2 } else if (1 === o && 0 !== n) return this._createWord(e, n, o, this._findStartOfWord( e, t, n, r - 1), r) } return 0 !== n ? this._createWord(e, n, 1, this._findStartOfWord(e, t, n, o - 1), o) : null } static _findStartOfWord(e, t, i, n) { for (let o = n; o >= 0; o--) { let n = e.charCodeAt(o), r = t.get(n); if (1 === r) return o + 1; if (1 === i && 2 === r) return o + 1; if (2 === i && 0 === r) return o + 1 } return 0 } static moveWordLeft(e, t, i, n) { let o = i.lineNumber, r = i.column; 1 === r && o > 1 && (o -= 1, r = t.getLineMaxColumn(o)); let s = d._findPreviousWordOnLine(e, t, new a.L(o, r)); if (0 === n) return new a.L(o, s ? s.start + 1 : 1); if (1 === n) return s && 2 === s.wordType && s.end - s.start == 1 && 0 === s.nextCharClass && (s = d._findPreviousWordOnLine(e, t, new a.L(o, s .start + 1))), new a.L(o, s ? s.start + 1 : 1); if (3 === n) { for (; s && 2 === s.wordType;) s = d._findPreviousWordOnLine(e, t, new a.L(o, s.start + 1)); return new a.L(o, s ? s.start + 1 : 1) } return s && r <= s.end + 1 && (s = d._findPreviousWordOnLine(e, t, new a .L(o, s.start + 1))), new a.L(o, s ? s.end + 1 : 1) } static _moveWordPartLeft(e, t) { const i = t.lineNumber, o = e.getLineMaxColumn(i); if (1 === t.column) return i > 1 ? new a.L(i - 1, e.getLineMaxColumn(i - 1)) : t; const r = e.getLineContent(i); for (let e = t.column - 1; e > 1; e--) { const t = r.charCodeAt(e - 2), s = r.charCodeAt(e - 1); if (95 === t && 95 !== s) return new a.L(i, e); if (n.mK(t) && n.df(s)) return new a.L(i, e); if (n.df(t) && n.df(s) && e + 1 < o) { const t = r.charCodeAt(e); if (n.mK(t)) return new a.L(i, e) } } return new a.L(i, 1) } static moveWordRight(e, t, i, n) { let o = i.lineNumber, r = i.column, s = !1; r === t.getLineMaxColumn(o) && o < t.getLineCount() && (s = !0, o += 1, r = 1); let l = d._findNextWordOnLine(e, t, new a.L(o, r)); if (2 === n) l && 2 === l.wordType && l.end - l.start == 1 && 0 === l.nextCharClass && (l = d._findNextWordOnLine(e, t, new a.L(o, l.end + 1))), r = l ? l.end + 1 : t.getLineMaxColumn(o); else if (3 === n) { for (s && (r = 0); l && (2 === l.wordType || l.start + 1 <= r);) l = d._findNextWordOnLine(e, t, new a.L(o, l.end + 1)); r = l ? l.start + 1 : t.getLineMaxColumn(o) } else l && !s && r >= l.start + 1 && (l = d._findNextWordOnLine(e, t, new a.L(o, l.end + 1))), r = l ? l.start + 1 : t.getLineMaxColumn(o); return new a.L(o, r) } static _moveWordPartRight(e, t) { const i = t.lineNumber, o = e.getLineMaxColumn(i); if (t.column === o) return i < e.getLineCount() ? new a.L(i + 1, 1) : t; const r = e.getLineContent(i); for (let e = t.column + 1; e < o; e++) { const t = r.charCodeAt(e - 2), s = r.charCodeAt(e - 1); if (95 !== t && 95 === s) return new a.L(i, e); if (n.mK(t) && n.df(s)) return new a.L(i, e); if (n.df(t) && n.df(s) && e + 1 < o) { const t = r.charCodeAt(e); if (n.mK(t)) return new a.L(i, e) } } return new a.L(i, o) } static _deleteWordLeftWhitespace(e, t) { const i = e.getLineContent(t.lineNumber), o = t.column - 2, r = n.ow(i, o); return r + 1 < o ? new l.e(t.lineNumber, r + 2, t.lineNumber, t.column) : null } static deleteWordLeft(e, t) { const i = e.wordSeparators, n = e.model, o = e.selection, s = e.whitespaceHeuristics; if (!o.isEmpty()) return o; if (r.A.isAutoClosingPairDelete(e.autoClosingDelete, e.autoClosingBrackets, e.autoClosingQuotes, e.autoClosingPairs.autoClosingPairsOpenByEnd, e .model, [e.selection], e.autoClosedCharacters)) { const t = e.selection.getPosition(); return new l.e(t.lineNumber, t.column - 1, t.lineNumber, t.column + 1) } const c = new a.L(o.positionLineNumber, o.positionColumn); let h = c.lineNumber, u = c.column; if (1 === h && 1 === u) return null; if (s) { let e = this._deleteWordLeftWhitespace(n, c); if (e) return e } let g = d._findPreviousWordOnLine(i, n, c); return 0 === t ? g ? u = g.start + 1 : u > 1 ? u = 1 : (h--, u = n.getLineMaxColumn( h)) : (g && u <= g.end + 1 && (g = d._findPreviousWordOnLine(i, n, new a.L(h, g.start + 1))), g ? u = g.end + 1 : u > 1 ? u = 1 : (h--, u = n.getLineMaxColumn(h))), new l.e(h, u, c.lineNumber, c.column) } static deleteInsideWord(e, t, i) { if (!i.isEmpty()) return i; const n = new a.L(i.positionLineNumber, i.positionColumn); return this._deleteInsideWordWhitespace(t, n) || this._deleteInsideWordDetermineDeleteRange( e, t, n) } static _charAtIsWhitespace(e, t) { const i = e.charCodeAt(t); return 32 === i || 9 === i } static _deleteInsideWordWhitespace(e, t) { const i = e.getLineContent(t.lineNumber), n = i.length; if (0 === n) return null; let o = Math.max(t.column - 2, 0); if (!this._charAtIsWhitespace(i, o)) return null; let r = Math.min(t.column - 1, n - 1); if (!this._charAtIsWhitespace(i, r)) return null; for (; o > 0 && this._charAtIsWhitespace(i, o - 1);) o--; for (; r + 1 < n && this._charAtIsWhitespace(i, r + 1);) r++; return new l.e(t.lineNumber, o + 1, t.lineNumber, r + 2) } static _deleteInsideWordDetermineDeleteRange(e, t, i) { const n = t.getLineContent(i.lineNumber), o = n.length; if (0 === o) return i.lineNumber > 1 ? new l.e(i.lineNumber - 1, t.getLineMaxColumn( i.lineNumber - 1), i.lineNumber, 1) : i.lineNumber < t.getLineCount() ? new l.e(i.lineNumber, 1, i.lineNumber + 1, 1) : new l.e(i.lineNumber, 1, i.lineNumber, 1); const r = e => e.start + 1 <= i.column && i.column <= e.end + 1, s = (e, t) => (e = Math.min(e, i.column), t = Math.max(t, i.column), new l.e(i.lineNumber, e, i.lineNumber, t)), a = e => { let t = e.start + 1, i = e.end + 1, r = !1; for (; i - 1 < o && this._charAtIsWhitespace(n, i - 1);) r = !0, i++; if (!r) for (; t > 1 && this._charAtIsWhitespace(n, t - 2);) t--; return s(t, i) }, c = d._findPreviousWordOnLine(e, t, i); if (c && r(c)) return a(c); const h = d._findNextWordOnLine(e, t, i); return h && r(h) ? a(h) : c && h ? s(c.end + 1, h.start + 1) : c ? s(c .start + 1, c.end + 1) : h ? s(h.start + 1, h.end + 1) : s(1, o + 1) } static _deleteWordPartLeft(e, t) { if (!t.isEmpty()) return t; const i = t.getPosition(), n = d._moveWordPartLeft(e, i); return new l.e(i.lineNumber, i.column, n.lineNumber, n.column) } static _findFirstNonWhitespaceChar(e, t) { let i = e.length; for (let n = t; n < i; n++) { let t = e.charAt(n); if (" " !== t && "\t" !== t) return n } return i } static _deleteWordRightWhitespace(e, t) { const i = e.getLineContent(t.lineNumber), n = t.column - 1, o = this._findFirstNonWhitespaceChar(i, n); return n + 1 < o ? new l.e(t.lineNumber, t.column, t.lineNumber, o + 1) : null } static deleteWordRight(e, t) { const i = e.wordSeparators, n = e.model, o = e.selection, r = e.whitespaceHeuristics; if (!o.isEmpty()) return o; const s = new a.L(o.positionLineNumber, o.positionColumn); let c = s.lineNumber, h = s.column; const u = n.getLineCount(), g = n.getLineMaxColumn(c); if (c === u && h === g) return null; if (r) { let e = this._deleteWordRightWhitespace(n, s); if (e) return e } let p = d._findNextWordOnLine(i, n, s); return 2 === t ? p ? h = p.end + 1 : h < g || c === u ? h = g : (c++, p = d._findNextWordOnLine(i, n, new a.L(c, 1)), h = p ? p.start + 1 : n.getLineMaxColumn(c)) : (p && h >= p.start + 1 && (p = d._findNextWordOnLine( i, n, new a.L(c, p.end + 1))), p ? h = p.start + 1 : h < g || c === u ? h = g : (c++, p = d._findNextWordOnLine(i, n, new a.L(c, 1)), h = p ? p.start + 1 : n.getLineMaxColumn(c))), new l.e(c, h, s.lineNumber, s.column) } static _deleteWordPartRight(e, t) { if (!t.isEmpty()) return t; const i = t.getPosition(), n = d._moveWordPartRight(e, i); return new l.e(i.lineNumber, i.column, n.lineNumber, n.column) } static _createWordAtPosition(e, t, i) { const n = new l.e(t, i.start + 1, t, i.end + 1); return { word: e.getValueInRange(n), startColumn: n.startColumn, endColumn: n.endColumn } } static getWordAtPosition(e, t, i) { const n = (0, s.u)(t), o = d._findPreviousWordOnLine(n, e, i); if (o && 1 === o.wordType && o.start <= i.column - 1 && i.column - 1 <= o.end) return d._createWordAtPosition(e, i.lineNumber, o); const r = d._findNextWordOnLine(n, e, i); return r && 1 === r.wordType && r.start <= i.column - 1 && i.column - 1 <= r.end ? d._createWordAtPosition(e, i.lineNumber, r) : null } static word(e, t, i, n, r) { const c = (0, s.u)(e.wordSeparators); let h, u, g = d._findPreviousWordOnLine(c, t, r), p = d._findNextWordOnLine(c, t, r); if (!n) { let e, i; return g && 1 === g.wordType && g.start <= r.column - 1 && r.column - 1 <= g.end ? (e = g.start + 1, i = g.end + 1) : p && 1 === p.wordType && p.start <= r.column - 1 && r.column - 1 <= p.end ? (e = p.start + 1, i = p.end + 1) : (e = g ? g.end + 1 : 1, i = p ? p.start + 1 : t.getLineMaxColumn( r.lineNumber)), new o.rS(new l.e(r.lineNumber, e, r.lineNumber, i), 0, new a.L(r.lineNumber, i), 0) } g && 1 === g.wordType && g.start < r.column - 1 && r.column - 1 < g.end ? (h = g.start + 1, u = g.end + 1) : p && 1 === p.wordType && p.start < r.column - 1 && r.column - 1 < p.end ? (h = p.start + 1, u = p.end + 1) : (h = r.column, u = r.column); let m, f = r.lineNumber; if (i.selectionStart.containsPosition(r)) m = i.selectionStart.endColumn; else if (r.isBeforeOrEqual(i.selectionStart.getStartPosition())) { m = h; let e = new a.L(f, m); i.selectionStart.containsPosition(e) && (m = i.selectionStart.endColumn) } else { m = u; let e = new a.L(f, m); i.selectionStart.containsPosition(e) && (m = i.selectionStart.startColumn) } return i.move(!0, f, m, 0) } } class c extends d { static deleteWordPartLeft(e) { const t = h([d.deleteWordLeft(e, 0), d.deleteWordLeft(e, 2), d._deleteWordPartLeft( e.model, e.selection)]); return t.sort(l.e.compareRangesUsingEnds), t[2] } static deleteWordPartRight(e) { const t = h([d.deleteWordRight(e, 0), d.deleteWordRight(e, 2), d._deleteWordPartRight( e.model, e.selection)]); return t.sort(l.e.compareRangesUsingStarts), t[0] } static moveWordPartLeft(e, t, i) { const n = h([d.moveWordLeft(e, t, i, 0), d.moveWordLeft(e, t, i, 2), d ._moveWordPartLeft(t, i) ]); return n.sort(a.L.compare), n[2] } static moveWordPartRight(e, t, i) { const n = h([d.moveWordRight(e, t, i, 0), d.moveWordRight(e, t, i, 2), d._moveWordPartRight(t, i) ]); return n.sort(a.L.compare), n[0] } } function h(e) { return e.filter((e => Boolean(e))) } }, 9410: (e, t, i) => { "use strict"; i.d(t, { u: () => r }); var n = i(4906); class o extends n.N { constructor(e) { super(0); for (let t = 0, i = e.length; t < i; t++) this.set(e.charCodeAt(t), 2); this.set(32, 1), this.set(9, 1) } } const r = function(e) { let t = {}; return e => (t.hasOwnProperty(e) || (t[e] = (e => new o(e))(e)), t[e]) }() }, 4906: (e, t, i) => { "use strict"; i.d(t, { N: () => o, q: () => r }); var n = i(5427); class o { constructor(e) { let t = (0, n.K)(e); this._defaultValue = t, this._asciiMap = o._createAsciiMap(t), this._map = new Map } static _createAsciiMap(e) { let t = new Uint8Array(256); for (let i = 0; i < 256; i++) t[i] = e; return t } set(e, t) { let i = (0, n.K)(t); e >= 0 && e < 256 ? this._asciiMap[e] = i : this._map.set(e, i) } get(e) { return e >= 0 && e < 256 ? this._asciiMap[e] : this._map.get(e) || this._defaultValue } } class r { constructor() { this._actual = new o(0) } add(e) { this._actual.set(e, 1) } has(e) { return 1 === this._actual.get(e) } } }, 9386: (e, t, i) => { "use strict"; i.d(t, { h: () => o }); var n = i(4314); class o { static insert(e, t) { return { range: new n.e(e.lineNumber, e.column, e.lineNumber, e.column), text: t, forceMoveMarkers: !0 } } static delete(e) { return { range: e, text: null } } static replace(e, t) { return { range: e, text: t } } static replaceMove(e, t) { return { range: e, text: t, forceMoveMarkers: !0 } } } }, 8411: (e, t, i) => { "use strict"; i.d(t, { A: () => o }); var n = i(4101); class o { constructor(e, t) { this._lineTokensBrand = void 0, this._tokens = e, this._tokensCount = this._tokens.length >>> 1, this._text = t } static createEmpty(e) { const t = o.defaultTokenMetadata, i = new Uint32Array(2); return i[0] = e.length, i[1] = t, new o(i, e) } equals(e) { return e instanceof o && this.slicedEquals(e, 0, this._tokensCount) } slicedEquals(e, t, i) { if (this._text !== e._text) return !1; if (this._tokensCount !== e._tokensCount) return !1; const n = t << 1, o = n + (i << 1); for (let t = n; t < o; t++) if (this._tokens[t] !== e._tokens[t]) return !1; return !0 } getLineContent() { return this._text } getCount() { return this._tokensCount } getStartOffset(e) { return e > 0 ? this._tokens[e - 1 << 1] : 0 } getMetadata(e) { return this._tokens[1 + (e << 1)] } getLanguageId(e) { const t = this._tokens[1 + (e << 1)]; return n.NX.getLanguageId(t) } getStandardTokenType(e) { const t = this._tokens[1 + (e << 1)]; return n.NX.getTokenType(t) } getForeground(e) { const t = this._tokens[1 + (e << 1)]; return n.NX.getForeground(t) } getClassName(e) { const t = this._tokens[1 + (e << 1)]; return n.NX.getClassNameFromMetadata(t) } getInlineStyle(e, t) { const i = this._tokens[1 + (e << 1)]; return n.NX.getInlineStyleFromMetadata(i, t) } getEndOffset(e) { return this._tokens[e << 1] } findTokenIndexAtOffset(e) { return o.findIndexInTokensArray(this._tokens, e) } inflate() { return this } sliceAndInflate(e, t, i) { return new r(this, e, t, i) } static convertToEndOffset(e, t) { const i = (e.length >>> 1) - 1; for (let t = 0; t < i; t++) e[t << 1] = e[t + 1 << 1]; e[i << 1] = t } static findIndexInTokensArray(e, t) { if (e.length <= 2) return 0; let i = 0, n = (e.length >>> 1) - 1; for (; i < n;) { const o = i + Math.floor((n - i) / 2), r = e[o << 1]; if (r === t) return o + 1; r < t ? i = o + 1 : r > t && (n = o) } return i } withInserted(e) { if (0 === e.length) return this; let t = 0, i = 0, n = ""; const r = new Array; let s = 0; for (;;) { let o = t < this._tokensCount ? this._tokens[t << 1] : -1, a = i < e.length ? e[i] : null; if (-1 !== o && (null === a || o <= a.offset)) { n += this._text.substring(s, o); const e = this._tokens[1 + (t << 1)]; r.push(n.length, e), t++, s = o } else { if (!a) break; if (a.offset > s) { n += this._text.substring(s, a.offset); const e = this._tokens[1 + (t << 1)]; r.push(n.length, e), s = a.offset } n += a.text, r.push(n.length, a.tokenMetadata), i++ } } return new o(new Uint32Array(r), n) } } o.defaultTokenMetadata = 16793600; class r { constructor(e, t, i, n) { this._source = e, this._startOffset = t, this._endOffset = i, this._deltaOffset = n, this._firstTokenIndex = e.findTokenIndexAtOffset(t), this._tokensCount = 0; for (let t = this._firstTokenIndex, n = e.getCount(); t < n && !(e.getStartOffset( t) >= i); t++) this._tokensCount++ } equals(e) { return e instanceof r && this._startOffset === e._startOffset && this._endOffset === e._endOffset && this._deltaOffset === e._deltaOffset && this._source.slicedEquals( e._source, this._firstTokenIndex, this._tokensCount) } getCount() { return this._tokensCount } getForeground(e) { return this._source.getForeground(this._firstTokenIndex + e) } getEndOffset(e) { const t = this._source.getEndOffset(this._firstTokenIndex + e); return Math.min(this._endOffset, t) - this._startOffset + this._deltaOffset } getClassName(e) { return this._source.getClassName(this._firstTokenIndex + e) } getInlineStyle(e, t) { return this._source.getInlineStyle(this._firstTokenIndex + e, t) } findTokenIndexAtOffset(e) { return this._source.findTokenIndexAtOffset(e + this._startOffset - this._deltaOffset) - this._firstTokenIndex } } }, 187: (e, t, i) => { "use strict"; i.d(t, { L: () => n }); class n { constructor(e, t) { this.lineNumber = e, this.column = t } with(e = this.lineNumber, t = this.column) { return e === this.lineNumber && t === this.column ? this : new n(e, t) } delta(e = 0, t = 0) { return this.with(this.lineNumber + e, this.column + t) } equals(e) { return n.equals(this, e) } static equals(e, t) { return !e && !t || !!e && !!t && e.lineNumber === t.lineNumber && e.column === t.column } isBefore(e) { return n.isBefore(this, e) } static isBefore(e, t) { return e.lineNumber < t.lineNumber || !(t.lineNumber < e.lineNumber) && e.column < t.column } isBeforeOrEqual(e) { return n.isBeforeOrEqual(this, e) } static isBeforeOrEqual(e, t) { return e.lineNumber < t.lineNumber || !(t.lineNumber < e.lineNumber) && e.column <= t.column } static compare(e, t) { let i = 0 | e.lineNumber, n = 0 | t.lineNumber; return i === n ? (0 | e.column) - (0 | t.column) : i - n } clone() { return new n(this.lineNumber, this.column) } toString() { return "(" + this.lineNumber + "," + this.column + ")" } static lift(e) { return new n(e.lineNumber, e.column) } static isIPosition(e) { return e && "number" == typeof e.lineNumber && "number" == typeof e.column } } }, 4314: (e, t, i) => { "use strict"; i.d(t, { e: () => o }); var n = i(187); class o { constructor(e, t, i, n) { e > i || e === i && t > n ? (this.startLineNumber = i, this.startColumn = n, this.endLineNumber = e, this.endColumn = t) : (this.startLineNumber = e, this.startColumn = t, this.endLineNumber = i, this.endColumn = n) } isEmpty() { return o.isEmpty(this) } static isEmpty(e) { return e.startLineNumber === e.endLineNumber && e.startColumn === e.endColumn } containsPosition(e) { return o.containsPosition(this, e) } static containsPosition(e, t) { return !(t.lineNumber < e.startLineNumber || t.lineNumber > e.endLineNumber || t.lineNumber === e.startLineNumber && t.column < e.startColumn || t.lineNumber === e.endLineNumber && t.column > e.endColumn) } containsRange(e) { return o.containsRange(this, e) } static containsRange(e, t) { return !(t.startLineNumber < e.startLineNumber || t.endLineNumber < e.startLineNumber || t.startLineNumber > e.endLineNumber || t.endLineNumber > e.endLineNumber || t.startLineNumber === e.startLineNumber && t.startColumn < e.startColumn || t.endLineNumber === e.endLineNumber && t.endColumn > e.endColumn) } strictContainsRange(e) { return o.strictContainsRange(this, e) } static strictContainsRange(e, t) { return !(t.startLineNumber < e.startLineNumber || t.endLineNumber < e.startLineNumber || t.startLineNumber > e.endLineNumber || t.endLineNumber > e.endLineNumber || t.startLineNumber === e.startLineNumber && t.startColumn <= e.startColumn || t.endLineNumber === e.endLineNumber && t.endColumn >= e.endColumn) } plusRange(e) { return o.plusRange(this, e) } static plusRange(e, t) { let i, n, r, s; return t.startLineNumber < e.startLineNumber ? (i = t.startLineNumber, n = t.startColumn) : t.startLineNumber === e.startLineNumber ? (i = t.startLineNumber, n = Math.min(t.startColumn, e.startColumn)) : (i = e.startLineNumber, n = e.startColumn), t.endLineNumber > e.endLineNumber ? (r = t.endLineNumber, s = t.endColumn) : t.endLineNumber === e.endLineNumber ? (r = t.endLineNumber, s = Math.max(t.endColumn, e.endColumn)) : (r = e.endLineNumber, s = e.endColumn), new o(i, n, r, s) } intersectRanges(e) { return o.intersectRanges(this, e) } static intersectRanges(e, t) { let i = e.startLineNumber, n = e.startColumn, r = e.endLineNumber, s = e.endColumn, a = t.startLineNumber, l = t.startColumn, d = t.endLineNumber, c = t.endColumn; return i < a ? (i = a, n = l) : i === a && (n = Math.max(n, l)), r > d ? (r = d, s = c) : r === d && (s = Math.min(s, c)), i > r || i === r && n > s ? null : new o(i, n, r, s) } equalsRange(e) { return o.equalsRange(this, e) } static equalsRange(e, t) { return !!e && !!t && e.startLineNumber === t.startLineNumber && e.startColumn === t.startColumn && e.endLineNumber === t.endLineNumber && e.endColumn === t.endColumn } getEndPosition() { return o.getEndPosition(this) } static getEndPosition(e) { return new n.L(e.endLineNumber, e.endColumn) } getStartPosition() { return o.getStartPosition(this) } static getStartPosition(e) { return new n.L(e.startLineNumber, e.startColumn) } toString() { return "[" + this.startLineNumber + "," + this.startColumn + " -> " + this.endLineNumber + "," + this.endColumn + "]" } setEndPosition(e, t) { return new o(this.startLineNumber, this.startColumn, e, t) } setStartPosition(e, t) { return new o(e, t, this.endLineNumber, this.endColumn) } collapseToStart() { return o.collapseToStart(this) } static collapseToStart(e) { return new o(e.startLineNumber, e.startColumn, e.startLineNumber, e.startColumn) } static fromPositions(e, t = e) { return new o(e.lineNumber, e.column, t.lineNumber, t.column) } static lift(e) { return e ? new o(e.startLineNumber, e.startColumn, e.endLineNumber, e.endColumn) : null } static isIRange(e) { return e && "number" == typeof e.startLineNumber && "number" == typeof e .startColumn && "number" == typeof e.endLineNumber && "number" == typeof e.endColumn } static areIntersectingOrTouching(e, t) { return !(e.endLineNumber < t.startLineNumber || e.endLineNumber === t.startLineNumber && e.endColumn < t.startColumn || t.endLineNumber < e.startLineNumber || t.endLineNumber === e.startLineNumber && t.endColumn < e.startColumn ) } static areIntersecting(e, t) { return !(e.endLineNumber < t.startLineNumber || e.endLineNumber === t.startLineNumber && e.endColumn <= t.startColumn || t.endLineNumber < e.startLineNumber || t.endLineNumber === e.startLineNumber && t.endColumn <= e.startColumn ) } static compareRangesUsingStarts(e, t) { if (e && t) { const i = 0 | e.startLineNumber, n = 0 | t.startLineNumber; if (i === n) { const i = 0 | e.startColumn, n = 0 | t.startColumn; if (i === n) { const i = 0 | e.endLineNumber, n = 0 | t.endLineNumber; return i === n ? (0 | e.endColumn) - (0 | t.endColumn) : i - n } return i - n } return i - n } return (e ? 1 : 0) - (t ? 1 : 0) } static compareRangesUsingEnds(e, t) { return e.endLineNumber === t.endLineNumber ? e.endColumn === t.endColumn ? e.startLineNumber === t.startLineNumber ? e.startColumn - t.startColumn : e.startLineNumber - t.startLineNumber : e.endColumn - t.endColumn : e .endLineNumber - t.endLineNumber } static spansMultipleLines(e) { return e.endLineNumber > e.startLineNumber } } }, 3860: (e, t, i) => { "use strict"; i.d(t, { Y: () => r }); var n = i(187), o = i(4314); class r extends o.e { constructor(e, t, i, n) { super(e, t, i, n), this.selectionStartLineNumber = e, this.selectionStartColumn = t, this.positionLineNumber = i, this.positionColumn = n } toString() { return "[" + this.selectionStartLineNumber + "," + this.selectionStartColumn + " -> " + this.positionLineNumber + "," + this.positionColumn + "]" } equalsSelection(e) { return r.selectionsEqual(this, e) } static selectionsEqual(e, t) { return e.selectionStartLineNumber === t.selectionStartLineNumber && e .selectionStartColumn === t.selectionStartColumn && e.positionLineNumber === t.positionLineNumber && e.positionColumn === t.positionColumn } getDirection() { return this.selectionStartLineNumber === this.startLineNumber && this .selectionStartColumn === this.startColumn ? 0 : 1 } setEndPosition(e, t) { return 0 === this.getDirection() ? new r(this.startLineNumber, this.startColumn, e, t) : new r(e, t, this.startLineNumber, this.startColumn) } getPosition() { return new n.L(this.positionLineNumber, this.positionColumn) } setStartPosition(e, t) { return 0 === this.getDirection() ? new r(e, t, this.endLineNumber, this.endColumn) : new r(this.endLineNumber, this.endColumn, e, t) } static fromPositions(e, t = e) { return new r(e.lineNumber, e.column, t.lineNumber, t.column) } static liftSelection(e) { return new r(e.selectionStartLineNumber, e.selectionStartColumn, e.positionLineNumber, e.positionColumn) } static selectionsArrEqual(e, t) { if (e && !t || !e && t) return !1; if (!e && !t) return !0; if (e.length !== t.length) return !1; for (let i = 0, n = e.length; i < n; i++) if (!this.selectionsEqual(e[i], t[i])) return !1; return !0 } static isISelection(e) { return e && "number" == typeof e.selectionStartLineNumber && "number" == typeof e.selectionStartColumn && "number" == typeof e.positionLineNumber && "number" == typeof e.positionColumn } static createWithDirection(e, t, i, n, o) { return 0 === o ? new r(e, t, i, n) : new r(i, n, e, t) } } }, 72: (e, t, i) => { "use strict"; i.d(t, { oe: () => c, lZ: () => h, l$: () => u, kH: () => g }); var n = i(7295), o = i(1432), r = i(3060); let s, a, l; function d() { return s || (s = new TextDecoder("UTF-16LE")), s } function c() { return l || (l = o.r() ? d() : (a || (a = new TextDecoder("UTF-16BE")), a)), l } const h = "undefined" != typeof TextDecoder; let u, g; function p(e, t, i) { let n = [], o = 0; for (let s = 0; s < i; s++) { const i = r.mP(e, t); t += 2, n[o++] = String.fromCharCode(i) } return n.join("") } h ? (u = e => new m(e), g = function(e, t, i) { const n = new Uint16Array(e.buffer, t, i); return i > 0 && (65279 === n[0] || 65534 === n[0]) ? p(e, t, i) : d().decode( n) }) : (u = e => new f, g = p); class m { constructor(e) { this._capacity = 0 | e, this._buffer = new Uint16Array(this._capacity), this._completedStrings = null, this._bufferLength = 0 } reset() { this._completedStrings = null, this._bufferLength = 0 } build() { return null !== this._completedStrings ? (this._flushBuffer(), this._completedStrings .join("")) : this._buildBuffer() } _buildBuffer() { if (0 === this._bufferLength) return ""; const e = new Uint16Array(this._buffer.buffer, 0, this._bufferLength); return c().decode(e) } _flushBuffer() { const e = this._buildBuffer(); this._bufferLength = 0, null === this._completedStrings ? this._completedStrings = [ e ] : this._completedStrings[this._completedStrings.length] = e } write1(e) { const t = this._capacity - this._bufferLength; t <= 1 && (0 === t || n.ZG(e)) && this._flushBuffer(), this._buffer[ this._bufferLength++] = e } appendASCII(e) { this._bufferLength === this._capacity && this._flushBuffer(), this._buffer[ this._bufferLength++] = e } appendASCIIString(e) { const t = e.length; if (this._bufferLength + t >= this._capacity) return this._flushBuffer(), void(this._completedStrings[this._completedStrings.length] = e); for (let i = 0; i < t; i++) this._buffer[this._bufferLength++] = e.charCodeAt( i) } } class f { constructor() { this._pieces = [], this._piecesLen = 0 } reset() { this._pieces = [], this._piecesLen = 0 } build() { return this._pieces.join("") } write1(e) { this._pieces[this._piecesLen++] = String.fromCharCode(e) } appendASCII(e) { this._pieces[this._piecesLen++] = String.fromCharCode(e) } appendASCIIString(e) { this._pieces[this._piecesLen++] = e } } }, 5600: (e, t, i) => { "use strict"; i.d(t, { WU: () => n, hG: () => o, Hi: () => r }); class n { constructor(e, t, i) { this._tokenBrand = void 0, this.offset = 0 | e, this.type = t, this.language = i } toString() { return "(" + this.offset + ", " + this.type + ")" } } class o { constructor(e, t) { this._tokenizationResultBrand = void 0, this.tokens = e, this.endState = t } } class r { constructor(e, t) { this._tokenizationResult2Brand = void 0, this.tokens = e, this.endState = t } } }, 653: (e, t, i) => { "use strict"; i.d(t, { p: () => n }); class n { constructor(e, t, i, n, o, r) { this.id = e, this.label = t, this.alias = i, this._precondition = n, this._run = o, this._contextKeyService = r } isSupported() { return this._contextKeyService.contextMatchesRules(this._precondition) } run() { return this.isSupported() ? this._run() : Promise.resolve(void 0) } } }, 6518: (e, t, i) => { "use strict"; function n(e) { return e && "string" == typeof e.id } i.d(t, { I: () => n, g: () => o }); const o = { ICodeEditor: "vs.editor.ICodeEditor", IDiffEditor: "vs.editor.IDiffEditor" } }, 9102: (e, t, i) => { "use strict"; i.d(t, { u: () => n }); var n, o = i(3580), r = i(8819); ! function(e) { e.editorSimpleInput = new r.uy("editorSimpleInput", !1, !0), e.editorTextFocus = new r.uy("editorTextFocus", !1, o.N("editorTextFocus", "Whether the editor text has focus (cursor is blinking)")), e.focus = new r.uy("editorFocus", !1, o.N("editorFocus", "Whether the editor or an editor widget has focus (e.g. focus is in the find widget)" )), e.textInputFocus = new r.uy("textInputFocus", !1, o.N( "textInputFocus", "Whether an editor or a rich text input has focus (cursor is blinking)" )), e.readOnly = new r.uy("editorReadonly", !1, o.N("editorReadonly", "Whether the editor is read only")), e.inDiffEditor = new r.uy( "inDiffEditor", !1, o.N("inDiffEditor", "Whether the context is a diff editor")), e.columnSelection = new r.uy( "editorColumnSelection", !1, o.N("editorColumnSelection", "Whether `editor.columnSelection` is enabled")), e.writable = e.readOnly .toNegated(), e.hasNonEmptySelection = new r.uy("editorHasSelection", ! 1, o.N("editorHasSelection", "Whether the editor has text selected")), e.hasOnlyEmptySelection = e.hasNonEmptySelection.toNegated(), e.hasMultipleSelections = new r.uy("editorHasMultipleSelections", !1, o.N( "editorHasMultipleSelections", "Whether the editor has multiple selections")), e.hasSingleSelection = e.hasMultipleSelections.toNegated(), e.tabMovesFocus = new r.uy( "editorTabMovesFocus", !1, o.N("editorTabMovesFocus", "Whether `Tab` will move focus out of the editor")), e.tabDoesNotMoveFocus = e.tabMovesFocus.toNegated(), e.isInWalkThroughSnippet = new r.uy( "isInEmbeddedEditor", !1, !0), e.canUndo = new r.uy("canUndo", !1, !0), e.canRedo = new r.uy("canRedo", !1, !0), e.hoverVisible = new r.uy( "editorHoverVisible", !1, o.N("editorHoverVisible", "Whether the editor hover is visible")), e.inCompositeEditor = new r.uy( "inCompositeEditor", void 0, o.N("inCompositeEditor", "Whether the editor is part of a larger editor (e.g. notebooks)")), e .notInCompositeEditor = e.inCompositeEditor.toNegated(), e.languageId = new r.uy("editorLangId", "", o.N("editorLangId", "The language identifier of the editor")), e.hasCompletionItemProvider = new r.uy("editorHasCompletionItemProvider", !1, o.N( "editorHasCompletionItemProvider", "Whether the editor has a completion item provider")), e.hasCodeActionsProvider = new r.uy("editorHasCodeActionsProvider", !1, o.N( "editorHasCodeActionsProvider", "Whether the editor has a code actions provider")), e.hasCodeLensProvider = new r.uy("editorHasCodeLensProvider", !1, o.N( "editorHasCodeLensProvider", "Whether the editor has a code lens provider")), e.hasDefinitionProvider = new r.uy("editorHasDefinitionProvider", !1, o.N( "editorHasDefinitionProvider", "Whether the editor has a definition provider")), e.hasDeclarationProvider = new r.uy("editorHasDeclarationProvider", !1, o.N( "editorHasDeclarationProvider", "Whether the editor has a declaration provider")), e.hasImplementationProvider = new r.uy("editorHasImplementationProvider", !1, o.N( "editorHasImplementationProvider", "Whether the editor has an implementation provider")), e.hasTypeDefinitionProvider = new r.uy("editorHasTypeDefinitionProvider", !1, o.N( "editorHasTypeDefinitionProvider", "Whether the editor has a type definition provider")), e.hasHoverProvider = new r.uy("editorHasHoverProvider", !1, o.N("editorHasHoverProvider", "Whether the editor has a hover provider")), e.hasDocumentHighlightProvider = new r.uy("editorHasDocumentHighlightProvider", !1, o.N( "editorHasDocumentHighlightProvider", "Whether the editor has a document highlight provider")), e.hasDocumentSymbolProvider = new r.uy("editorHasDocumentSymbolProvider", !1, o.N( "editorHasDocumentSymbolProvider", "Whether the editor has a document symbol provider")), e.hasReferenceProvider = new r.uy("editorHasReferenceProvider", !1, o.N( "editorHasReferenceProvider", "Whether the editor has a reference provider")), e.hasRenameProvider = new r.uy("editorHasRenameProvider", !1, o.N("editorHasRenameProvider", "Whether the editor has a rename provider")), e.hasSignatureHelpProvider = new r.uy("editorHasSignatureHelpProvider", !1, o.N( "editorHasSignatureHelpProvider", "Whether the editor has a signature help provider")), e.hasInlayHintsProvider = new r.uy("editorHasInlayHintsProvider", !1, o.N( "editorHasInlayHintsProvider", "Whether the editor has an inline hints provider")), e.hasDocumentFormattingProvider = new r.uy("editorHasDocumentFormattingProvider", !1, o.N( "editorHasDocumentFormattingProvider", "Whether the editor has a document formatting provider")), e.hasDocumentSelectionFormattingProvider = new r.uy("editorHasDocumentSelectionFormattingProvider", !1, o.N( "editorHasDocumentSelectionFormattingProvider", "Whether the editor has a document selection formatting provider")), e .hasMultipleDocumentFormattingProvider = new r.uy( "editorHasMultipleDocumentFormattingProvider", !1, o.N( "editorHasMultipleDocumentFormattingProvider", "Whether the editor has multiple document formatting providers")), e.hasMultipleDocumentSelectionFormattingProvider = new r.uy("editorHasMultipleDocumentSelectionFormattingProvider", !1, o.N( "editorHasMultipleDocumentSelectionFormattingProvider", "Whether the editor has multiple document selection formatting providers" )) }(n || (n = {})) }, 4973: (e, t, i) => { "use strict"; i.d(t, { sh: () => n, F5: () => o, dJ: () => s, tk: () => a, Qi: () => l, je: () => d }); var n, o, r = i(6248); ! function(e) { e[e.Left = 1] = "Left", e[e.Center = 2] = "Center", e[e.Right = 4] = "Right", e[e.Full = 7] = "Full" }(n || (n = {})), function(e) { e[e.Inline = 1] = "Inline", e[e.Gutter = 2] = "Gutter" }(o || (o = {})); class s { constructor(e) { this._textModelResolvedOptionsBrand = void 0, this.tabSize = Math.max( 1, 0 | e.tabSize), this.indentSize = 0 | e.tabSize, this.insertSpaces = Boolean(e.insertSpaces), this.defaultEOL = 0 | e.defaultEOL, this.trimAutoWhitespace = Boolean(e.trimAutoWhitespace), this.bracketPairColorizationOptions = e.bracketPairColorizationOptions } equals(e) { return this.tabSize === e.tabSize && this.indentSize === e.indentSize && this.insertSpaces === e.insertSpaces && this.defaultEOL === e.defaultEOL && this.trimAutoWhitespace === e.trimAutoWhitespace && (0, r.fS)(this.bracketPairColorizationOptions, e.bracketPairColorizationOptions) } createChangeEvent(e) { return { tabSize: this.tabSize !== e.tabSize, indentSize: this.indentSize !== e.indentSize, insertSpaces: this.insertSpaces !== e.insertSpaces, trimAutoWhitespace: this.trimAutoWhitespace !== e.trimAutoWhitespace } } } class a { constructor(e, t) { this._findMatchBrand = void 0, this.range = e, this.matches = t } } class l { constructor(e, t, i, n, o, r) { this.identifier = e, this.range = t, this.text = i, this.forceMoveMarkers = n, this.isAutoWhitespaceEdit = o, this._isTracked = r } } class d { constructor(e, t, i) { this.reverseEdits = e, this.changes = t, this.trimAutoWhitespaceLineNumbers = i } } }, 5215: (e, t, i) => { "use strict"; i.d(t, { e9: () => p, NL: () => m }); var n = i(3580), o = i(7301), r = i(3860), s = i(666), a = i(962), l = i(3060), d = i(5935); function c(e) { return e.toString() } class h { constructor(e, t, i, n, o, r, s) { this.beforeVersionId = e, this.afterVersionId = t, this.beforeEOL = i, this.afterEOL = n, this.beforeCursorState = o, this.afterCursorState = r, this.changes = s } static create(e, t) { const i = e.getAlternativeVersionId(), n = g(e); return new h(i, i, n, n, t, t, []) } append(e, t, i, n, o) { t.length > 0 && (this.changes = (0, a.b)(this.changes, t)), this.afterEOL = i, this.afterVersionId = n, this.afterCursorState = o } static _writeSelectionsSize(e) { return 4 + 16 * (e ? e.length : 0) } static _writeSelections(e, t, i) { if (l.T4(e, t ? t.length : 0, i), i += 4, t) for (const n of t) l.T4(e, n.selectionStartLineNumber, i), i += 4, l.T4( e, n.selectionStartColumn, i), i += 4, l.T4(e, n.positionLineNumber, i), i += 4, l.T4(e, n.positionColumn, i), i += 4; return i } static _readSelections(e, t, i) { const n = l.Ag(e, t); t += 4; for (let o = 0; o < n; o++) { const n = l.Ag(e, t); t += 4; const o = l.Ag(e, t); t += 4; const s = l.Ag(e, t); t += 4; const a = l.Ag(e, t); t += 4, i.push(new r.Y(n, o, s, a)) } return t } serialize() { let e = 10 + h._writeSelectionsSize(this.beforeCursorState) + h._writeSelectionsSize( this.afterCursorState) + 4; for (const t of this.changes) e += t.writeSize(); const t = new Uint8Array(e); let i = 0; l.T4(t, this.beforeVersionId, i), i += 4, l.T4(t, this.afterVersionId, i), i += 4, l.Cg(t, this.beforeEOL, i), i += 1, l.Cg(t, this.afterEOL, i), i += 1, i = h._writeSelections(t, this.beforeCursorState, i), i = h._writeSelections(t, this.afterCursorState, i), l.T4(t, this.changes .length, i), i += 4; for (const e of this.changes) i = e.write(t, i); return t.buffer } static deserialize(e) { const t = new Uint8Array(e); let i = 0; const n = l.Ag(t, i); i += 4; const o = l.Ag(t, i); i += 4; const r = l.Q$(t, i); i += 1; const s = l.Q$(t, i); i += 1; const d = []; i = h._readSelections(t, i, d); const c = []; i = h._readSelections(t, i, c); const u = l.Ag(t, i); i += 4; const g = []; for (let e = 0; e < u; e++) i = a.q.read(t, i, g); return new h(n, o, r, s, d, c, g) } } class u { constructor(e, t) { this.model = e, this._data = h.create(e, t) } get type() { return 0 } get resource() { return s.o.isUri(this.model) ? this.model : this.model.uri } get label() { return n.N("edit", "Typing") } toString() { return (this._data instanceof h ? this._data : h.deserialize(this._data)) .changes.map((e => e.toString())).join(", ") } matchesResource(e) { return (s.o.isUri(this.model) ? this.model : this.model.uri).toString() === e.toString() } setModel(e) { this.model = e } canAppend(e) { return this.model === e && this._data instanceof h } append(e, t, i, n, o) { this._data instanceof h && this._data.append(e, t, i, n, o) } close() { this._data instanceof h && (this._data = this._data.serialize()) } open() { this._data instanceof h || (this._data = h.deserialize(this._data)) } undo() { if (s.o.isUri(this.model)) throw new Error( "Invalid SingleModelEditStackElement"); this._data instanceof h && (this._data = this._data.serialize()); const e = h.deserialize(this._data); this.model._applyUndo(e.changes, e.beforeEOL, e.beforeVersionId, e.beforeCursorState) } redo() { if (s.o.isUri(this.model)) throw new Error( "Invalid SingleModelEditStackElement"); this._data instanceof h && (this._data = this._data.serialize()); const e = h.deserialize(this._data); this.model._applyRedo(e.changes, e.afterEOL, e.afterVersionId, e.afterCursorState) } heapSize() { return this._data instanceof h && (this._data = this._data.serialize()), this._data.byteLength + 168 } } function g(e) { return "\n" === e.getEOL() ? 0 : 1 } function p(e) { return !!e && (e instanceof u || e instanceof class { constructor(e, t) { this.type = 1, this.label = e, this._isOpen = !0, this._editStackElementsArr = t.slice(0), this._editStackElementsMap = new Map; for (const e of this._editStackElementsArr) { const t = c(e.resource); this._editStackElementsMap.set(t, e) } this._delegate = null } get resources() { return this._editStackElementsArr.map((e => e.resource)) } prepareUndoRedo() { if (this._delegate) return this._delegate.prepareUndoRedo(this) } matchesResource(e) { const t = c(e); return this._editStackElementsMap.has(t) } setModel(e) { const t = c(s.o.isUri(e) ? e : e.uri); this._editStackElementsMap.has(t) && this._editStackElementsMap.get( t).setModel(e) } canAppend(e) { if (!this._isOpen) return !1; const t = c(e.uri); return !!this._editStackElementsMap.has(t) && this._editStackElementsMap .get(t).canAppend(e) } append(e, t, i, n, o) { const r = c(e.uri); this._editStackElementsMap.get(r).append(e, t, i, n, o) } close() { this._isOpen = !1 } open() {} undo() { this._isOpen = !1; for (const e of this._editStackElementsArr) e.undo() } redo() { for (const e of this._editStackElementsArr) e.redo() } heapSize(e) { const t = c(e); return this._editStackElementsMap.has(t) ? this._editStackElementsMap .get(t).heapSize() : 0 } split() { return this._editStackElementsArr } toString() { let e = []; for (const t of this._editStackElementsArr) e.push( `${(0,d.EZ)(t.resource)}: ${t}`); return `{${e.join(", ")}}` } }) } class m { constructor(e, t) { this._model = e, this._undoRedoService = t } pushStackElement() { const e = this._undoRedoService.getLastElement(this._model.uri); p(e) && e.close() } popStackElement() { const e = this._undoRedoService.getLastElement(this._model.uri); p(e) && e.open() } clear() { this._undoRedoService.removeElements(this._model.uri) } _getOrCreateEditStackElement(e) { const t = this._undoRedoService.getLastElement(this._model.uri); if (p(t) && t.canAppend(this._model)) return t; const i = new u(this._model, e); return this._undoRedoService.pushElement(i), i } pushEOL(e) { const t = this._getOrCreateEditStackElement(null); this._model.setEOL(e), t.append(this._model, [], g(this._model), this._model .getAlternativeVersionId(), null) } pushEditOperation(e, t, i) { const n = this._getOrCreateEditStackElement(e), o = this._model.applyEdits(t, !0), r = m._computeCursorState(i, o), s = o.map(((e, t) => ({ index: t, textChange: e.textChange }))); return s.sort(((e, t) => e.textChange.oldPosition === t.textChange.oldPosition ? e.index - t.index : e.textChange.oldPosition - t.textChange.oldPosition )), n.append(this._model, s.map((e => e.textChange)), g(this._model), this._model.getAlternativeVersionId(), r), r } static _computeCursorState(e, t) { try { return e ? e(t) : null } catch (e) { return (0, o.dL)(e), null } } } }, 962: (e, t, i) => { "use strict"; i.d(t, { q: () => s, b: () => a }); var n = i(3060), o = i(72); function r(e) { return e.replace(/\n/g, "\\n").replace(/\r/g, "\\r") } class s { constructor(e, t, i, n) { this.oldPosition = e, this.oldText = t, this.newPosition = i, this.newText = n } 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 } toString() { return 0 === this.oldText.length ? `(insert@${this.oldPosition} "${r(this.newText)}")` : 0 === this.newText .length ? `(delete@${this.oldPosition} "${r(this.oldText)}")` : `(replace@${this.oldPosition} "${r(this.oldText)}" with "${r(this.newText)}")` } static _writeStringSize(e) { return 4 + 2 * e.length } static _writeString(e, t, i) { const o = t.length; n.T4(e, o, i), i += 4; for (let r = 0; r < o; r++) n.oq(e, t.charCodeAt(r), i), i += 2; return i } static _readString(e, t) { const i = n.Ag(e, t); return t += 4, (0, o.kH)(e, t, i) } writeSize() { return 8 + s._writeStringSize(this.oldText) + s._writeStringSize(this.newText) } write(e, t) { return n.T4(e, this.oldPosition, t), t += 4, n.T4(e, this.newPosition, t), t += 4, t = s._writeString(e, this.oldText, t), s._writeString(e, this.newText, t) } static read(e, t, i) { const o = n.Ag(e, t); t += 4; const r = n.Ag(e, t); t += 4; const a = s._readString(e, t); t += s._writeStringSize(a); const l = s._readString(e, t); return t += s._writeStringSize(l), i.push(new s(o, a, r, l)), t } } function a(e, t) { return null === e || 0 === e.length ? t : new l(e, t).compress() } class l { constructor(e, t) { this._prevEdits = e, this._currEdits = t, this._result = [], this._resultLen = 0, this._prevLen = this._prevEdits.length, this._prevDeltaOffset = 0, this._currLen = this._currEdits.length, this._currDeltaOffset = 0 } compress() { let e = 0, t = 0, i = this._getPrev(e), n = this._getCurr(t); for (; e < this._prevLen || t < this._currLen;) { if (null === i) { this._acceptCurr(n), n = this._getCurr(++t); continue } if (null === n) { this._acceptPrev(i), i = this._getPrev(++e); continue } if (n.oldEnd <= i.newPosition) { this._acceptCurr(n), n = this._getCurr(++t); continue } if (i.newEnd <= n.oldPosition) { this._acceptPrev(i), i = this._getPrev(++e); continue } if (n.oldPosition < i.newPosition) { const [e, t] = l._splitCurr(n, i.newPosition - n.oldPosition); this._acceptCurr(e), n = t; continue } if (i.newPosition < n.oldPosition) { const [e, t] = l._splitPrev(i, n.oldPosition - i.newPosition); this._acceptPrev(e), i = t; continue } let o, r; if (n.oldEnd === i.newEnd) o = i, r = n, i = this._getPrev(++e), n = this._getCurr(++t); else if (n.oldEnd < i.newEnd) { const [e, s] = l._splitPrev(i, n.oldLength); o = e, r = n, i = s, n = this._getCurr(++t) } else { const [t, s] = l._splitCurr(n, i.newLength); o = i, r = t, i = this._getPrev(++e), n = s } this._result[this._resultLen++] = new s(o.oldPosition, o.oldText, r.newPosition, r.newText), this._prevDeltaOffset += o.newLength - o.oldLength, this._currDeltaOffset += r.newLength - r.oldLength } const o = l._merge(this._result); return l._removeNoOps(o) } _acceptCurr(e) { this._result[this._resultLen++] = l._rebaseCurr(this._prevDeltaOffset, e), this._currDeltaOffset += e.newLength - e.oldLength } _getCurr(e) { return e < this._currLen ? this._currEdits[e] : null } _acceptPrev(e) { this._result[this._resultLen++] = l._rebasePrev(this._currDeltaOffset, e), this._prevDeltaOffset += e.newLength - e.oldLength } _getPrev(e) { return e < this._prevLen ? this._prevEdits[e] : null } static _rebaseCurr(e, t) { return new s(t.oldPosition - e, t.oldText, t.newPosition, t.newText) } static _rebasePrev(e, t) { return new s(t.oldPosition, t.oldText, t.newPosition + e, t.newText) } static _splitPrev(e, t) { const i = e.newText.substr(0, t), n = e.newText.substr(t); return [new s(e.oldPosition, e.oldText, e.newPosition, i), new s(e.oldEnd, "", e.newPosition + t, n)] } static _splitCurr(e, t) { const i = e.oldText.substr(0, t), n = e.oldText.substr(t); return [new s(e.oldPosition, i, e.newPosition, e.newText), new s(e.oldPosition + t, n, e.newEnd, "")] } static _merge(e) { if (0 === e.length) return e; let t = [], i = 0, n = e[0]; for (let o = 1; o < e.length; o++) { const r = e[o]; n.oldEnd === r.oldPosition ? n = new s(n.oldPosition, n.oldText + r.oldText, n.newPosition, n.newText + r.newText) : (t[i++] = n, n = r) } return t[i++] = n, t } static _removeNoOps(e) { if (0 === e.length) return e; let t = [], i = 0; for (let n = 0; n < e.length; n++) { const o = e[n]; o.oldText !== o.newText && (t[i++] = o) } return t } } }, 6281: (e, t, i) => { "use strict"; i.d(t, { qx: () => Tt, yO: () => yt }); var n = i(7301), o = i(4669), r = i(5976), s = i(7295), a = i(666), l = i(4141), d = i(187), c = i(4314), h = i(3860), u = i(4973), g = i(5215); class p { constructor() { this.spacesDiff = 0, this.looksLikeAlignment = !1 } } function m(e, t, i, n, o) { let r; for (o.spacesDiff = 0, o.looksLikeAlignment = !1, r = 0; r < t && r < n && e.charCodeAt(r) === i.charCodeAt(r); r++); let s = 0, a = 0; for (let i = r; i < t; i++) 32 === e.charCodeAt(i) ? s++ : a++; let l = 0, d = 0; for (let e = r; e < n; e++) 32 === i.charCodeAt(e) ? l++ : d++; if (s > 0 && a > 0) return; if (l > 0 && d > 0) return; let c = Math.abs(a - d), h = Math.abs(s - l); if (0 === c) return o.spacesDiff = h, void(h > 0 && 0 <= l - 1 && l - 1 < e.length && l < i.length && 32 !== i.charCodeAt(l) && 32 === e.charCodeAt( l - 1) && 44 === e.charCodeAt(e.length - 1) && (o.looksLikeAlignment = ! 0)); h % c != 0 || (o.spacesDiff = h / c) } function f(e, t, i) { const n = Math.min(e.getLineCount(), 1e4); let o = 0, r = 0, s = "", a = 0; const l = [2, 4, 6, 8, 3, 5, 7]; let d = [0, 0, 0, 0, 0, 0, 0, 0, 0], c = new p; for (let l = 1; l <= n; l++) { let n = e.getLineLength(l), h = e.getLineContent(l); const u = n <= 65536; let g = !1, p = 0, f = 0, _ = 0; for (let t = 0, i = n; t < i; t++) { let i = u ? h.charCodeAt(t) : e.getLineCharCode(l, t); if (9 === i) _++; else { if (32 !== i) { g = !0, p = t; break } f++ } } if (!g) continue; if (_ > 0 ? o++ : f > 1 && r++, m(s, a, h, p, c), c.looksLikeAlignment && (!i || t !== c.spacesDiff)) continue; let b = c.spacesDiff; b <= 8 && d[b]++, s = h, a = p } let h = i; o !== r && (h = o < r); let u = t; if (h) { let e = h ? 0 : .1 * n; l.forEach((t => { let i = d[t]; i > e && (e = i, u = t) })), 4 === u && d[4] > 0 && d[2] > 0 && d[2] >= d[4] / 2 && (u = 2) } return { insertSpaces: h, tabSize: u } } function _(e) { return (1 & e.metadata) >>> 0 } function b(e, t) { e.metadata = 254 & e.metadata | t << 0 } function v(e) { return (2 & e.metadata) >>> 1 == 1 } function w(e, t) { e.metadata = 253 & e.metadata | (t ? 1 : 0) << 1 } function C(e) { return (4 & e.metadata) >>> 2 == 1 } function y(e, t) { e.metadata = 251 & e.metadata | (t ? 1 : 0) << 2 } function S(e, t) { e.metadata = 231 & e.metadata | t << 3 } function x(e, t) { e.metadata = 223 & e.metadata | (t ? 1 : 0) << 5 } class k { constructor(e, t, i) { this.metadata = 0, this.parent = this, this.left = this, this.right = this, b(this, 1), this.start = t, this.end = i, this.delta = 0, this.maxEnd = i, this.id = e, this.ownerId = 0, this.options = null, y(this, !1), S( this, 1), x(this, !1), this.cachedVersionId = 0, this.cachedAbsoluteStart = t, this.cachedAbsoluteEnd = i, this.range = null, w(this, !1) } reset(e, t, i, n) { this.start = t, this.end = i, this.maxEnd = i, this.cachedVersionId = e, this.cachedAbsoluteStart = t, this.cachedAbsoluteEnd = i, this.range = n } setOptions(e) { this.options = e; let t = this.options.className; y(this, "squiggly-error" === t || "squiggly-warning" === t || "squiggly-info" === t), S(this, this.options.stickiness), x(this, this.options.collapseOnReplaceEdit) } setCachedOffsets(e, t, i) { this.cachedVersionId !== i && (this.range = null), this.cachedVersionId = i, this.cachedAbsoluteStart = e, this.cachedAbsoluteEnd = t } detach() { this.parent = null, this.left = null, this.right = null } } const L = new k(null, 0, 0); L.parent = L, L.left = L, L.right = L, b(L, 0); class N { constructor() { this.root = L, this.requestNormalizeDelta = !1 } intervalSearch(e, t, i, n, o) { return this.root === L ? [] : function(e, t, i, n, o, r) { let s = e.root, a = 0, l = 0, d = 0, c = 0, h = [], u = 0; for (; s !== L;) if (v(s)) w(s.left, !1), w(s.right, !1), s === s.parent.right && (a -= s.parent.delta), s = s.parent; else { if (!v(s.left)) { if (l = a + s.maxEnd, l < t) { w(s, !0); continue } if (s.left !== L) { s = s.left; continue } } if (d = a + s.start, d > i) w(s, !0); else { if (c = a + s.end, c >= t) { s.setCachedOffsets(d, c, r); let e = !0; n && s.ownerId && s.ownerId !== n && (e = !1), o && C(s) && (e = ! 1), e && (h[u++] = s) } w(s, !0), s.right === L || v(s.right) || (a += s.delta, s = s.right) } } return w(e.root, !1), h }(this, e, t, i, n, o) } search(e, t, i) { return this.root === L ? [] : function(e, t, i, n) { let o = e.root, r = 0, s = 0, a = 0, l = [], d = 0; for (; o !== L;) { if (v(o)) { w(o.left, !1), w(o.right, !1), o === o.parent.right && (r -= o.parent .delta), o = o.parent; continue } if (o.left !== L && !v(o.left)) { o = o.left; continue } s = r + o.start, a = r + o.end, o.setCachedOffsets(s, a, n); let e = !0; t && o.ownerId && o.ownerId !== t && (e = !1), i && C(o) && (e = !1), e && (l[d++] = o), w(o, !0), o.right === L || v(o.right) || (r += o.delta, o = o.right) } return w(e.root, !1), l }(this, e, t, i) } collectNodesFromOwner(e) { return function(e, t) { let i = e.root, n = [], o = 0; for (; i !== L;) v(i) ? (w(i.left, !1), w(i.right, !1), i = i.parent) : i.left === L || v(i.left) ? (i.ownerId === t && (n[o++] = i), w(i, ! 0), i.right === L || v(i.right) || (i = i.right)) : i = i.left; return w(e.root, !1), n }(this, e) } collectNodesPostOrder() { return function(e) { let t = e.root, i = [], n = 0; for (; t !== L;) v(t) ? (w(t.left, !1), w(t.right, !1), t = t.parent) : t.left === L || v(t.left) ? t.right === L || v(t.right) ? (i[n++] = t, w(t, !0)) : t = t.right : t = t.left; return w(e.root, !1), i }(this) } insert(e) { I(this, e), this._normalizeDeltaIfNecessary() } delete(e) { T(this, e), this._normalizeDeltaIfNecessary() } resolveNode(e, t) { const i = e; let n = 0; for (; e !== this.root;) e === e.parent.right && (n += e.parent.delta), e = e.parent; const o = i.start + n, r = i.end + n; i.setCachedOffsets(o, r, t) } acceptReplace(e, t, i, n) { const o = function(e, t, i) { let n = e.root, o = 0, r = 0, s = 0, a = 0, l = [], d = 0; for (; n !== L;) if (v(n)) w(n.left, !1), w(n.right, !1), n === n.parent.right && (o -= n.parent.delta), n = n.parent; else { if (!v(n.left)) { if (r = o + n.maxEnd, r < t) { w(n, !0); continue } if (n.left !== L) { n = n.left; continue } } s = o + n.start, s > i ? w(n, !0) : (a = o + n.end, a >= t && (n.setCachedOffsets( s, a, 0), l[d++] = n), w(n, !0), n.right === L || v(n.right) || (o += n.delta, n = n.right)) } return w(e.root, !1), l }(this, e, e + t); for (let e = 0, t = o.length; e < t; e++) T(this, o[e]); this._normalizeDeltaIfNecessary(), function(e, t, i, n) { let o = e.root, r = 0, s = 0, a = 0; const l = n - (i - t); for (; o !== L;) if (v(o)) w(o.left, !1), w(o.right, !1), o === o.parent.right && (r -= o.parent.delta), P(o), o = o.parent; else { if (!v(o.left)) { if (s = r + o.maxEnd, s < t) { w(o, !0); continue } if (o.left !== L) { o = o.left; continue } } a = r + o.start, a > i ? (o.start += l, o.end += l, o.delta += l, ( o.delta < -1073741824 || o.delta > 1073741824) && (e.requestNormalizeDelta = ! 0), w(o, !0)) : (w(o, !0), o.right === L || v(o.right) || (r += o.delta, o = o.right)) } w(e.root, !1) }(this, e, e + t, i), this._normalizeDeltaIfNecessary(); for (let r = 0, s = o.length; r < s; r++) { const s = o[r]; s.start = s.cachedAbsoluteStart, s.end = s.cachedAbsoluteEnd, E(s, e, e + t, i, n), s.maxEnd = s.end, I(this, s) } this._normalizeDeltaIfNecessary() } _normalizeDeltaIfNecessary() { this.requestNormalizeDelta && (this.requestNormalizeDelta = !1, function(e) { let t = e.root, i = 0; for (; t !== L;) t.left === L || v(t.left) ? t.right === L || v(t.right) ? (t.start = i + t.start, t.end = i + t.end, t.delta = 0, P(t), w(t, ! 0), w(t.left, !1), w(t.right, !1), t === t.parent.right && (i -= t.parent.delta), t = t.parent) : (i += t.delta, t = t.right) : t = t.left; w(e.root, !1) }(this)) } } function D(e, t, i, n) { return e < i || !(e > i) && 1 !== n && (2 === n || t) } function E(e, t, i, n, o) { const r = function(e) { return (24 & e.metadata) >>> 3 }(e), s = 0 === r || 2 === r, a = 1 === r || 2 === r, l = i - t, d = n, c = Math.min(l, d), h = e.start; let u = !1; const g = e.end; let p = !1; t <= h && g <= i && function(e) { return (32 & e.metadata) >>> 5 == 1 }(e) && (e.start = t, u = !0, e.end = t, p = !0); { const e = o ? 1 : l > 0 ? 2 : 0; !u && D(h, s, t, e) && (u = !0), !p && D(g, a, t, e) && (p = !0) } if (c > 0 && !o) { const e = l > d ? 2 : 0; !u && D(h, s, t + c, e) && (u = !0), !p && D(g, a, t + c, e) && (p = !0) } { const n = o ? 1 : 0; !u && D(h, s, i, n) && (e.start = t + d, u = !0), !p && D(g, a, i, n) && (e.end = t + d, p = !0) } const m = d - l; u || (e.start = Math.max(0, h + m)), p || (e.end = Math.max(0, g + m)), e.start > e.end && (e.end = e.start) } function I(e, t) { if (e.root === L) return t.parent = L, t.left = L, t.right = L, b(t, 0), e.root = t, e.root; ! function(e, t) { let i = 0, n = e.root; const o = t.start, r = t.end; for (;;) if (s = o, a = r, l = n.start + i, d = n.end + i, (s === l ? a - d : s - l) < 0) { if (n.left === L) { t.start -= i, t.end -= i, t.maxEnd -= i, n.left = t; break } n = n.left } else { if (n.right === L) { t.start -= i + n.delta, t.end -= i + n.delta, t.maxEnd -= i + n.delta, n.right = t; break } i += n.delta, n = n.right } var s, a, l, d; t.parent = n, t.left = L, t.right = L, b(t, 1) }(e, t), F(t.parent); let i = t; for (; i !== e.root && 1 === _(i.parent);) if (i.parent === i.parent.parent.left) { const t = i.parent.parent.right; 1 === _(t) ? (b(i.parent, 0), b(t, 0), b(i.parent.parent, 1), i = i.parent .parent) : (i === i.parent.right && (i = i.parent, A(e, i)), b(i.parent, 0), b(i.parent.parent, 1), R(e, i.parent.parent)) } else { const t = i.parent.parent.left; 1 === _(t) ? (b(i.parent, 0), b(t, 0), b(i.parent.parent, 1), i = i.parent .parent) : (i === i.parent.left && (i = i.parent, R(e, i)), b(i.parent, 0), b(i.parent.parent, 1), A(e, i.parent.parent)) } return b(e.root, 0), t } function T(e, t) { let i, n; if (t.left === L ? (i = t.right, n = t, i.delta += t.delta, (i.delta < - 1073741824 || i.delta > 1073741824) && (e.requestNormalizeDelta = !0), i.start += t.delta, i.end += t.delta) : t.right === L ? (i = t.left, n = t) : (n = function(e) { for (; e.left !== L;) e = e.left; return e }(t.right), i = n.right, i.start += n.delta, i.end += n.delta, i.delta += n.delta, (i.delta < -1073741824 || i.delta > 1073741824) && (e.requestNormalizeDelta = ! 0), n.start += t.delta, n.end += t.delta, n.delta = t.delta, (n.delta < -1073741824 || n.delta > 1073741824) && (e.requestNormalizeDelta = !0) ), n === e.root) return e.root = i, b(i, 0), t.detach(), M(), P(i), void(e.root.parent = L); let o, r = 1 === _(n); if (n === n.parent.left ? n.parent.left = i : n.parent.right = i, n === t ? i.parent = n.parent : (n.parent === t ? i.parent = n : i.parent = n .parent, n.left = t.left, n.right = t.right, n.parent = t.parent, b(n, _(t)), t === e.root ? e.root = n : t === t.parent.left ? t.parent.left = n : t.parent.right = n, n.left !== L && (n.left.parent = n), n.right !== L && (n.right.parent = n)), t.detach(), r) return F(i.parent), n !== t && (F(n), F(n.parent)), void M(); for (F(i), F(i.parent), n !== t && (F(n), F(n.parent)); i !== e.root && 0 === _(i);) i === i.parent.left ? (o = i.parent.right, 1 === _(o) && ( b(o, 0), b(i.parent, 1), A(e, i.parent), o = i.parent.right), 0 === _( o.left) && 0 === _(o.right) ? (b(o, 1), i = i.parent) : (0 === _(o.right) && (b(o.left, 0), b(o, 1), R(e, o), o = i.parent.right), b(o, _(i.parent)), b(i.parent, 0), b(o.right, 0), A(e, i.parent), i = e.root)) : (o = i.parent .left, 1 === _(o) && (b(o, 0), b(i.parent, 1), R(e, i.parent), o = i.parent .left), 0 === _(o.left) && 0 === _(o.right) ? (b(o, 1), i = i.parent) : (0 === _(o.left) && (b(o.right, 0), b(o, 1), A(e, o), o = i.parent.left), b(o, _(i.parent)), b(i.parent, 0), b(o.left, 0), R(e, i.parent), i = e.root)); b(i, 0), M() } function M() { L.parent = L, L.delta = 0, L.start = 0, L.end = 0 } function A(e, t) { const i = t.right; i.delta += t.delta, (i.delta < -1073741824 || i.delta > 1073741824) && ( e.requestNormalizeDelta = !0), i.start += t.delta, i.end += t.delta, t .right = i.left, i.left !== L && (i.left.parent = t), i.parent = t.parent, t.parent === L ? e.root = i : t === t.parent.left ? t.parent.left = i : t.parent.right = i, i.left = t, t.parent = i, P(t), P(i) } function R(e, t) { const i = t.left; t.delta -= i.delta, (t.delta < -1073741824 || t.delta > 1073741824) && ( e.requestNormalizeDelta = !0), t.start -= i.delta, t.end -= i.delta, t .left = i.right, i.right !== L && (i.right.parent = t), i.parent = t.parent, t.parent === L ? e.root = i : t === t.parent.right ? t.parent.right = i : t.parent.left = i, i.right = t, t.parent = i, P(t), P(i) } function O(e) { let t = e.end; if (e.left !== L) { const i = e.left.maxEnd; i > t && (t = i) } if (e.right !== L) { const i = e.right.maxEnd + e.delta; i > t && (t = i) } return t } function P(e) { e.maxEnd = O(e) } function F(e) { for (; e !== L;) { const t = O(e); if (e.maxEnd === t) return; e.maxEnd = t, e = e.parent } } class B { constructor(e, t) { this.piece = e, this.color = t, this.size_left = 0, this.lf_left = 0, this.parent = this, this.left = this, this.right = this } next() { if (this.right !== W) return z(this.right); let e = this; for (; e.parent !== W && e.parent.left !== e;) e = e.parent; return e.parent === W ? W : e.parent } prev() { if (this.left !== W) return V(this.left); let e = this; for (; e.parent !== W && e.parent.right !== e;) e = e.parent; return e.parent === W ? W : e.parent } detach() { this.parent = null, this.left = null, this.right = null } } const W = new B(null, 0); function z(e) { for (; e.left !== W;) e = e.left; return e } function V(e) { for (; e.right !== W;) e = e.right; return e } function H(e) { return e === W ? 0 : e.size_left + e.piece.length + H(e.right) } function U(e) { return e === W ? 0 : e.lf_left + e.piece.lineFeedCnt + U(e.right) } function j() { W.parent = W } function K(e, t) { let i = t.right; i.size_left += t.size_left + (t.piece ? t.piece.length : 0), i.lf_left += t.lf_left + (t.piece ? t.piece.lineFeedCnt : 0), t.right = i.left, i.left !== W && (i.left.parent = t), i.parent = t.parent, t.parent === W ? e.root = i : t.parent.left === t ? t.parent.left = i : t.parent.right = i, i.left = t, t.parent = i } function $(e, t) { let i = t.left; t.left = i.right, i.right !== W && (i.right.parent = t), i.parent = t.parent, t.size_left -= i.size_left + (i.piece ? i.piece.length : 0), t.lf_left -= i.lf_left + (i.piece ? i.piece.lineFeedCnt : 0), t.parent === W ? e.root = i : t === t.parent.right ? t.parent.right = i : t.parent.left = i, i.right = t, t.parent = i } function q(e, t) { let i, n; if (t.left === W ? (n = t, i = n.right) : t.right === W ? (n = t, i = n.left) : (n = z(t.right), i = n.right), n === e.root) return e.root = i, i.color = 0, t.detach(), j(), void(e.root.parent = W); let o, r = 1 === n.color; if (n === n.parent.left ? n.parent.left = i : n.parent.right = i, n === t ? (i.parent = n.parent, Y(e, i)) : (n.parent === t ? i.parent = n : i .parent = n.parent, Y(e, i), n.left = t.left, n.right = t.right, n.parent = t.parent, n.color = t.color, t === e.root ? e.root = n : t === t.parent .left ? t.parent.left = n : t.parent.right = n, n.left !== W && (n.left .parent = n), n.right !== W && (n.right.parent = n), n.size_left = t.size_left, n.lf_left = t.lf_left, Y(e, n)), t.detach(), i.parent.left === i) { let t = H(i), n = U(i); if (t !== i.parent.size_left || n !== i.parent.lf_left) { let o = t - i.parent.size_left, r = n - i.parent.lf_left; i.parent.size_left = t, i.parent.lf_left = n, G(e, i.parent, o, r) } } if (Y(e, i.parent), r) j(); else { for (; i !== e.root && 0 === i.color;) i === i.parent.left ? (o = i.parent .right, 1 === o.color && (o.color = 0, i.parent.color = 1, K(e, i.parent), o = i.parent.right), 0 === o.left.color && 0 === o.right.color ? (o.color = 1, i = i.parent) : (0 === o.right.color && (o.left.color = 0, o.color = 1, $(e, o), o = i.parent.right), o.color = i.parent.color, i.parent .color = 0, o.right.color = 0, K(e, i.parent), i = e.root)) : (o = i .parent.left, 1 === o.color && (o.color = 0, i.parent.color = 1, $(e, i.parent), o = i.parent.left), 0 === o.left.color && 0 === o.right.color ? (o.color = 1, i = i.parent) : (0 === o.left.color && (o.right.color = 0, o.color = 1, K(e, o), o = i.parent.left), o.color = i.parent.color, i.parent.color = 0, o.left.color = 0, $(e, i.parent), i = e.root)); i.color = 0, j() } } function Z(e, t) { for (Y(e, t); t !== e.root && 1 === t.parent.color;) if (t.parent === t.parent.parent.left) { const i = t.parent.parent.right; 1 === i.color ? (t.parent.color = 0, i.color = 0, t.parent.parent.color = 1, t = t.parent.parent) : (t === t.parent.right && K(e, t = t.parent), t.parent.color = 0, t.parent.parent.color = 1, $(e, t.parent.parent) ) } else { const i = t.parent.parent.left; 1 === i.color ? (t.parent.color = 0, i.color = 0, t.parent.parent.color = 1, t = t.parent.parent) : (t === t.parent.left && $(e, t = t.parent), t.parent.color = 0, t.parent.parent.color = 1, K(e, t.parent.parent) ) } e.root.color = 0 } function G(e, t, i, n) { for (; t !== e.root && t !== W;) t.parent.left === t && (t.parent.size_left += i, t.parent.lf_left += n), t = t.parent } function Y(e, t) { let i = 0, n = 0; if (t !== e.root) { if (0 === i) { for (; t !== e.root && t === t.parent.right;) t = t.parent; if (t === e.root) return; i = H((t = t.parent).left) - t.size_left, n = U(t.left) - t.lf_left, t .size_left += i, t.lf_left += n } for (; t !== e.root && (0 !== i || 0 !== n);) t.parent.left === t && (t .parent.size_left += i, t.parent.lf_left += n), t = t.parent } } W.parent = W, W.left = W, W.right = W, W.color = 0; var Q = i(7277); const X = 65535; function J(e) { let t; return t = e[e.length - 1] < 65536 ? new Uint16Array(e.length) : new Uint32Array( e.length), t.set(e, 0), t } class ee { constructor(e, t, i, n, o) { this.lineStarts = e, this.cr = t, this.lf = i, this.crlf = n, this.isBasicASCII = o } } function te(e, t = !0) { let i = [0], n = 1; for (let t = 0, o = e.length; t < o; t++) { const r = e.charCodeAt(t); 13 === r ? t + 1 < o && 10 === e.charCodeAt(t + 1) ? (i[n++] = t + 2, t++) : i[n++] = t + 1 : 10 === r && (i[n++] = t + 1) } return t ? J(i) : i } class ie { constructor(e, t, i, n, o) { this.bufferIndex = e, this.start = t, this.end = i, this.lineFeedCnt = n, this.length = o } } class ne { constructor(e, t) { this.buffer = e, this.lineStarts = t } } class oe { constructor(e, t) { this._pieces = [], this._tree = e, this._BOM = t, this._index = 0, e.root !== W && e.iterate(e.root, (e => (e !== W && this._pieces.push(e.piece), ! 0))) } read() { return 0 === this._pieces.length ? 0 === this._index ? (this._index++, this._BOM) : null : this._index > this._pieces.length - 1 ? null : 0 === this._index ? this._BOM + this._tree.getPieceContent(this._pieces[ this._index++]) : this._tree.getPieceContent(this._pieces[this._index++]) } } class re { constructor(e) { this._limit = e, this._cache = [] } get(e) { for (let t = this._cache.length - 1; t >= 0; t--) { let i = this._cache[t]; if (i.nodeStartOffset <= e && i.nodeStartOffset + i.node.piece.length >= e) return i } return null } get2(e) { for (let t = this._cache.length - 1; t >= 0; t--) { let i = this._cache[t]; if (i.nodeStartLineNumber && i.nodeStartLineNumber < e && i.nodeStartLineNumber + i.node.piece.lineFeedCnt >= e) return i } return null } set(e) { this._cache.length >= this._limit && this._cache.shift(), this._cache.push( e) } validate(e) { let t = !1, i = this._cache; for (let n = 0; n < i.length; n++) { let o = i[n]; (null === o.node.parent || o.nodeStartOffset >= e) && (i[n] = null, t = ! 0) } if (t) { let e = []; for (const t of i) null !== t && e.push(t); this._cache = e } } } class se { constructor(e, t, i) { this.create(e, t, i) } create(e, t, i) { this._buffers = [new ne("", [0])], this._lastChangeBufferPos = { line: 0, column: 0 }, this.root = W, this._lineCnt = 1, this._length = 0, this._EOL = t, this._EOLLength = t.length, this._EOLNormalized = i; let n = null; for (let t = 0, i = e.length; t < i; t++) if (e[t].buffer.length > 0) { e[t].lineStarts || (e[t].lineStarts = te(e[t].buffer)); let i = new ie(t + 1, { line: 0, column: 0 }, { line: e[t].lineStarts.length - 1, column: e[t].buffer.length - e[t].lineStarts[e[t].lineStarts.length - 1] }, e[t].lineStarts.length - 1, e[t].buffer.length); this._buffers.push(e[t]), n = this.rbInsertRight(n, i) } this._searchCache = new re(1), this._lastVisitedLine = { lineNumber: 0, value: "" }, this.computeBufferMetadata() } normalizeEOL(e) { let t = 65535 - Math.floor(21845), i = 2 * t, n = "", o = 0, r = []; if (this.iterate(this.root, (s => { let a = this.getNodeContent(s), l = a.length; if (o <= t || o + l < i) return n += a, o += l, !0; let d = n.replace(/\r\n|\r|\n/g, e); return r.push(new ne(d, te(d))), n = a, o = l, !0 })), o > 0) { let t = n.replace(/\r\n|\r|\n/g, e); r.push(new ne(t, te(t))) } this.create(r, e, !0) } getEOL() { return this._EOL } setEOL(e) { this._EOL = e, this._EOLLength = this._EOL.length, this.normalizeEOL(e) } createSnapshot(e) { return new oe(this, e) } getOffsetAt(e, t) { let i = 0, n = this.root; for (; n !== W;) if (n.left !== W && n.lf_left + 1 >= e) n = n.left; else { if (n.lf_left + n.piece.lineFeedCnt + 1 >= e) return i += n.size_left, i + (this.getAccumulatedValue(n, e - n.lf_left - 2) + t - 1); e -= n.lf_left + n.piece.lineFeedCnt, i += n.size_left + n.piece.length, n = n.right } return i } getPositionAt(e) { e = Math.floor(e), e = Math.max(0, e); let t = this.root, i = 0, n = e; for (; t !== W;) if (0 !== t.size_left && t.size_left >= e) t = t.left; else { if (t.size_left + t.piece.length >= e) { let o = this.getIndexOf(t, e - t.size_left); if (i += t.lf_left + o.index, 0 === o.index) { let e = n - this.getOffsetAt(i + 1, 1); return new d.L(i + 1, e + 1) } return new d.L(i + 1, o.remainder + 1) } if (e -= t.size_left + t.piece.length, i += t.lf_left + t.piece.lineFeedCnt, t.right === W) { let t = n - e - this.getOffsetAt(i + 1, 1); return new d.L(i + 1, t + 1) } t = t.right } return new d.L(1, 1) } getValueInRange(e, t) { if (e.startLineNumber === e.endLineNumber && e.startColumn === e.endColumn) return ""; let i = this.nodeAt2(e.startLineNumber, e.startColumn), n = this.nodeAt2(e.endLineNumber, e.endColumn), o = this.getValueInRange2(i, n); return t ? t === this._EOL && this._EOLNormalized && t === this.getEOL() && this._EOLNormalized ? o : o.replace(/\r\n|\r|\n/g, t) : o } getValueInRange2(e, t) { if (e.node === t.node) { let i = e.node, n = this._buffers[i.piece.bufferIndex].buffer, o = this.offsetInBuffer(i.piece.bufferIndex, i.piece.start); return n.substring(o + e.remainder, o + t.remainder) } let i = e.node, n = this._buffers[i.piece.bufferIndex].buffer, o = this.offsetInBuffer(i.piece.bufferIndex, i.piece.start), r = n.substring(o + e.remainder, o + i.piece.length); for (i = i.next(); i !== W;) { let e = this._buffers[i.piece.bufferIndex].buffer, n = this.offsetInBuffer(i.piece.bufferIndex, i.piece.start); if (i === t.node) { r += e.substring(n, n + t.remainder); break } r += e.substr(n, i.piece.length), i = i.next() } return r } getLinesContent() { let e = [], t = 0, i = "", n = !1; return this.iterate(this.root, (o => { if (o === W) return !0; const r = o.piece; let s = r.length; if (0 === s) return !0; const a = this._buffers[r.bufferIndex].buffer, l = this._buffers[r.bufferIndex].lineStarts, d = r.start.line, c = r.end.line; let h = l[d] + r.start.column; if (n && (10 === a.charCodeAt(h) && (h++, s--), e[t++] = i, i = "", n = !1, 0 === s)) return !0; if (d === c) return this._EOLNormalized || 13 !== a.charCodeAt(h + s - 1) ? i += a.substr(h, s) : (n = !0, i += a.substr(h, s - 1)), ! 0; i += this._EOLNormalized ? a.substring(h, Math.max(h, l[d + 1] - this._EOLLength)) : a.substring(h, l[d + 1]).replace( /(\r\n|\r|\n)$/, ""), e[t++] = i; for (let n = d + 1; n < c; n++) i = this._EOLNormalized ? a.substring( l[n], l[n + 1] - this._EOLLength) : a.substring(l[n], l[n + 1]).replace( /(\r\n|\r|\n)$/, ""), e[t++] = i; return this._EOLNormalized || 13 !== a.charCodeAt(l[c] + r.end.column - 1) ? i = a.substr(l[c], r.end.column) : (n = !0, 0 === r.end.column ? t-- : i = a.substr(l[c], r.end.column - 1)), !0 })), n && (e[t++] = i, i = ""), e[t++] = i, e } getLength() { return this._length } getLineCount() { return this._lineCnt } getLineContent(e) { return this._lastVisitedLine.lineNumber === e || (this._lastVisitedLine .lineNumber = e, e === this._lineCnt ? this._lastVisitedLine.value = this.getLineRawContent(e) : this._EOLNormalized ? this._lastVisitedLine .value = this.getLineRawContent(e, this._EOLLength) : this._lastVisitedLine .value = this.getLineRawContent(e).replace(/(\r\n|\r|\n)$/, "")), this._lastVisitedLine.value } _getCharCode(e) { if (e.remainder === e.node.piece.length) { let t = e.node.next(); if (!t) return 0; let i = this._buffers[t.piece.bufferIndex], n = this.offsetInBuffer(t.piece.bufferIndex, t.piece.start); return i.buffer.charCodeAt(n) } { let t = this._buffers[e.node.piece.bufferIndex], i = this.offsetInBuffer(e.node.piece.bufferIndex, e.node.piece.start) + e.remainder; return t.buffer.charCodeAt(i) } } getLineCharCode(e, t) { let i = this.nodeAt2(e, t + 1); return this._getCharCode(i) } getLineLength(e) { if (e === this.getLineCount()) { let t = this.getOffsetAt(e, 1); return this.getLength() - t } return this.getOffsetAt(e + 1, 1) - this.getOffsetAt(e, 1) - this._EOLLength } findMatchesInNode(e, t, i, n, o, r, s, a, l, d, h) { let u, g, p, m = this._buffers[e.piece.bufferIndex], f = this.offsetInBuffer(e.piece.bufferIndex, e.piece.start), _ = this.offsetInBuffer(e.piece.bufferIndex, o), b = this.offsetInBuffer(e.piece.bufferIndex, r), v = { line: 0, column: 0 }; t._wordSeparators ? (g = m.buffer.substring(_, b), p = e => e + _, t.reset( 0)) : (g = m.buffer, p = e => e, t.reset(_)); do { if (u = t.next(g), u) { if (p(u.index) >= b) return d; this.positionInBuffer(e, p(u.index) - f, v); let t = this.getLineFeedCnt(e.piece.bufferIndex, o, v), r = v.line === o.line ? v.column - o.column + n : v.column + 1, s = r + u[0].length; if (h[d++] = (0, Q.iE)(new c.e(i + t, r, i + t, s), u, a), p(u.index) + u[0].length >= b) return d; if (d >= l) return d } } while (u); return d } findMatchesLineByLine(e, t, i, n) { const o = []; let r = 0; const s = new Q.sz(t.wordSeparators, t.regex); let a = this.nodeAt2(e.startLineNumber, e.startColumn); if (null === a) return []; let l = this.nodeAt2(e.endLineNumber, e.endColumn); if (null === l) return []; let d = this.positionInBuffer(a.node, a.remainder), c = this.positionInBuffer(l.node, l.remainder); if (a.node === l.node) return this.findMatchesInNode(a.node, s, e.startLineNumber, e.startColumn, d, c, t, i, n, r, o), o; let h = e.startLineNumber, u = a.node; for (; u !== l.node;) { let l = this.getLineFeedCnt(u.piece.bufferIndex, d, u.piece.end); if (l >= 1) { let a = this._buffers[u.piece.bufferIndex].lineStarts, c = this.offsetInBuffer(u.piece.bufferIndex, u.piece.start), g = a[d.line + l], p = h === e.startLineNumber ? e.startColumn : 1; if (r = this.findMatchesInNode(u, s, h, p, d, this.positionInBuffer( u, g - c), t, i, n, r, o), r >= n) return o; h += l } let c = h === e.startLineNumber ? e.startColumn - 1 : 0; if (h === e.endLineNumber) { const a = this.getLineContent(h).substring(c, e.endColumn - 1); return r = this._findMatchesInLine(t, s, a, e.endLineNumber, c, r, o, i, n), o } if (r = this._findMatchesInLine(t, s, this.getLineContent(h).substr(c), h, c, r, o, i, n), r >= n) return o; h++, a = this.nodeAt2(h, 1), u = a.node, d = this.positionInBuffer(a.node, a.remainder) } if (h === e.endLineNumber) { let a = h === e.startLineNumber ? e.startColumn - 1 : 0; const l = this.getLineContent(h).substring(a, e.endColumn - 1); return r = this._findMatchesInLine(t, s, l, e.endLineNumber, a, r, o, i, n), o } let g = h === e.startLineNumber ? e.startColumn : 1; return r = this.findMatchesInNode(l.node, s, h, g, d, c, t, i, n, r, o), o } _findMatchesInLine(e, t, i, n, o, r, s, a, l) { const d = e.wordSeparators; if (!a && e.simpleSearch) { const t = e.simpleSearch, a = t.length, h = i.length; let g = -a; for (; - 1 !== (g = i.indexOf(t, g + a));) if ((!d || (0, Q.cM)(d, i, h, g, a)) && (s[r++] = new u.tk(new c.e(n, g + 1 + o, n, g + 1 + a + o), null), r >= l)) return r; return r } let h; t.reset(0); do { if (h = t.next(i), h && (s[r++] = (0, Q.iE)(new c.e(n, h.index + 1 + o, n, h.index + 1 + h[0].length + o), h, a), r >= l)) return r } while (h); return r } insert(e, t, i = !1) { if (this._EOLNormalized = this._EOLNormalized && i, this._lastVisitedLine .lineNumber = 0, this._lastVisitedLine.value = "", this.root !== W) { let { node: i, remainder: n, nodeStartOffset: o } = this.nodeAt(e), r = i.piece, s = r.bufferIndex, a = this.positionInBuffer( i, n); if (0 === i.piece.bufferIndex && r.end.line === this._lastChangeBufferPos .line && r.end.column === this._lastChangeBufferPos.column && o + r.length === e && t.length < X) return this.appendToNode(i, t), void this.computeBufferMetadata(); if (o === e) this.insertContentToNodeLeft(t, i), this._searchCache.validate( e); else if (o + i.piece.length > e) { let e = [], o = new ie(r.bufferIndex, a, r.end, this.getLineFeedCnt(r.bufferIndex, a, r.end), this.offsetInBuffer(s, r.end) - this.offsetInBuffer(s, a)); if (this.shouldCheckCRLF() && this.endWithCR(t) && 10 === this.nodeCharCodeAt( i, n)) { let e = { line: o.start.line + 1, column: 0 }; o = new ie(o.bufferIndex, e, o.end, this.getLineFeedCnt(o.bufferIndex, e, o.end), o.length - 1), t += "\n" } if (this.shouldCheckCRLF() && this.startWithLF(t)) if (13 === this.nodeCharCodeAt(i, n - 1)) { let o = this.positionInBuffer(i, n - 1); this.deleteNodeTail(i, o), t = "\r" + t, 0 === i.piece.length && e .push(i) } else this.deleteNodeTail(i, a); else this.deleteNodeTail(i, a); let l = this.createNewPieces(t); o.length > 0 && this.rbInsertRight(i, o); let d = i; for (let e = 0; e < l.length; e++) d = this.rbInsertRight(d, l[e]); this.deleteNodes(e) } else this.insertContentToNodeRight(t, i) } else { let e = this.createNewPieces(t), i = this.rbInsertLeft(null, e[0]); for (let t = 1; t < e.length; t++) i = this.rbInsertRight(i, e[t]) } this.computeBufferMetadata() } delete(e, t) { if (this._lastVisitedLine.lineNumber = 0, this._lastVisitedLine.value = "", t <= 0 || this.root === W) return; let i = this.nodeAt(e), n = this.nodeAt(e + t), o = i.node, r = n.node; if (o === r) { let r = this.positionInBuffer(o, i.remainder), s = this.positionInBuffer(o, n.remainder); if (i.nodeStartOffset === e) { if (t === o.piece.length) { let e = o.next(); return q(this, o), this.validateCRLFWithPrevNode(e), void this.computeBufferMetadata() } return this.deleteNodeHead(o, s), this._searchCache.validate(e), this.validateCRLFWithPrevNode(o), void this.computeBufferMetadata() } return i.nodeStartOffset + o.piece.length === e + t ? (this.deleteNodeTail( o, r), this.validateCRLFWithNextNode(o), void this.computeBufferMetadata()) : (this.shrinkNode(o, r, s), void this.computeBufferMetadata()) } let s = [], a = this.positionInBuffer(o, i.remainder); this.deleteNodeTail(o, a), this._searchCache.validate(e), 0 === o.piece .length && s.push(o); let l = this.positionInBuffer(r, n.remainder); this.deleteNodeHead(r, l), 0 === r.piece.length && s.push(r); for (let e = o.next(); e !== W && e !== r; e = e.next()) s.push(e); let d = 0 === o.piece.length ? o.prev() : o; this.deleteNodes(s), this.validateCRLFWithNextNode(d), this.computeBufferMetadata() } insertContentToNodeLeft(e, t) { let i = []; if (this.shouldCheckCRLF() && this.endWithCR(e) && this.startWithLF(t)) { let n = t.piece, o = { line: n.start.line + 1, column: 0 }, r = new ie(n.bufferIndex, o, n.end, this.getLineFeedCnt(n.bufferIndex, o, n.end), n.length - 1); t.piece = r, e += "\n", G(this, t, -1, -1), 0 === t.piece.length && i .push(t) } let n = this.createNewPieces(e), o = this.rbInsertLeft(t, n[n.length - 1]); for (let e = n.length - 2; e >= 0; e--) o = this.rbInsertLeft(o, n[e]); this.validateCRLFWithPrevNode(o), this.deleteNodes(i) } insertContentToNodeRight(e, t) { this.adjustCarriageReturnFromNext(e, t) && (e += "\n"); let i = this.createNewPieces(e), n = this.rbInsertRight(t, i[0]), o = n; for (let e = 1; e < i.length; e++) o = this.rbInsertRight(o, i[e]); this.validateCRLFWithPrevNode(n) } positionInBuffer(e, t, i) { let n = e.piece, o = e.piece.bufferIndex, r = this._buffers[o].lineStarts, s = r[n.start.line] + n.start.column + t, a = n.start.line, l = n.end.line, d = 0, c = 0, h = 0; for (; a <= l && (d = a + (l - a) / 2 | 0, h = r[d], d !== l);) if (c = r[d + 1], s < h) l = d - 1; else { if (!(s >= c)) break; a = d + 1 } return i ? (i.line = d, i.column = s - h, null) : { line: d, column: s - h } } getLineFeedCnt(e, t, i) { if (0 === i.column) return i.line - t.line; let n = this._buffers[e].lineStarts; if (i.line === n.length - 1) return i.line - t.line; let o = n[i.line + 1], r = n[i.line] + i.column; if (o > r + 1) return i.line - t.line; let s = r - 1; return 13 === this._buffers[e].buffer.charCodeAt(s) ? i.line - t.line + 1 : i.line - t.line } offsetInBuffer(e, t) { return this._buffers[e].lineStarts[t.line] + t.column } deleteNodes(e) { for (let t = 0; t < e.length; t++) q(this, e[t]) } createNewPieces(e) { if (e.length > X) { let t = []; for (; e.length > X;) { const i = e.charCodeAt(65534); let n; 13 === i || i >= 55296 && i <= 56319 ? (n = e.substring(0, 65534), e = e.substring(65534)) : (n = e.substring(0, X), e = e.substring(X)); let o = te(n); t.push(new ie(this._buffers.length, { line: 0, column: 0 }, { line: o.length - 1, column: n.length - o[o.length - 1] }, o.length - 1, n.length)), this._buffers.push(new ne(n, o)) } let i = te(e); return t.push(new ie(this._buffers.length, { line: 0, column: 0 }, { line: i.length - 1, column: e.length - i[i.length - 1] }, i.length - 1, e.length)), this._buffers.push(new ne(e, i)), t } let t = this._buffers[0].buffer.length; const i = te(e, !1); let n = this._lastChangeBufferPos; if (this._buffers[0].lineStarts[this._buffers[0].lineStarts.length - 1] === t && 0 !== t && this.startWithLF(e) && this.endWithCR(this._buffers[0] .buffer)) { this._lastChangeBufferPos = { line: this._lastChangeBufferPos.line, column: this._lastChangeBufferPos.column + 1 }, n = this._lastChangeBufferPos; for (let e = 0; e < i.length; e++) i[e] += t + 1; this._buffers[0].lineStarts = this._buffers[0].lineStarts.concat(i.slice( 1)), this._buffers[0].buffer += "_" + e, t += 1 } else { if (0 !== t) for (let e = 0; e < i.length; e++) i[e] += t; this._buffers[0].lineStarts = this._buffers[0].lineStarts.concat(i.slice( 1)), this._buffers[0].buffer += e } const o = this._buffers[0].buffer.length; let r = this._buffers[0].lineStarts.length - 1, s = { line: r, column: o - this._buffers[0].lineStarts[r] }, a = new ie(0, n, s, this.getLineFeedCnt(0, n, s), o - t); return this._lastChangeBufferPos = s, [a] } getLineRawContent(e, t = 0) { let i = this.root, n = "", o = this._searchCache.get2(e); if (o) { i = o.node; let r = this.getAccumulatedValue(i, e - o.nodeStartLineNumber - 1), s = this._buffers[i.piece.bufferIndex].buffer, a = this.offsetInBuffer(i.piece.bufferIndex, i.piece.start); if (o.nodeStartLineNumber + i.piece.lineFeedCnt !== e) { let n = this.getAccumulatedValue(i, e - o.nodeStartLineNumber); return s.substring(a + r, a + n - t) } n = s.substring(a + r, a + i.piece.length) } else { let o = 0; const r = e; for (; i !== W;) if (i.left !== W && i.lf_left >= e - 1) i = i.left; else { if (i.lf_left + i.piece.lineFeedCnt > e - 1) { let n = this.getAccumulatedValue(i, e - i.lf_left - 2), s = this.getAccumulatedValue(i, e - i.lf_left - 1), a = this._buffers[i.piece.bufferIndex].buffer, l = this.offsetInBuffer(i.piece.bufferIndex, i.piece.start); return o += i.size_left, this._searchCache.set({ node: i, nodeStartOffset: o, nodeStartLineNumber: r - (e - 1 - i.lf_left) }), a.substring(l + n, l + s - t) } if (i.lf_left + i.piece.lineFeedCnt === e - 1) { let t = this.getAccumulatedValue(i, e - i.lf_left - 2), o = this._buffers[i.piece.bufferIndex].buffer, r = this.offsetInBuffer(i.piece.bufferIndex, i.piece.start); n = o.substring(r + t, r + i.piece.length); break } e -= i.lf_left + i.piece.lineFeedCnt, o += i.size_left + i.piece.length, i = i.right } } for (i = i.next(); i !== W;) { let e = this._buffers[i.piece.bufferIndex].buffer; if (i.piece.lineFeedCnt > 0) { let o = this.getAccumulatedValue(i, 0), r = this.offsetInBuffer(i.piece.bufferIndex, i.piece.start); return n += e.substring(r, r + o - t), n } { let t = this.offsetInBuffer(i.piece.bufferIndex, i.piece.start); n += e.substr(t, i.piece.length) } i = i.next() } return n } computeBufferMetadata() { let e = this.root, t = 1, i = 0; for (; e !== W;) t += e.lf_left + e.piece.lineFeedCnt, i += e.size_left + e.piece.length, e = e.right; this._lineCnt = t, this._length = i, this._searchCache.validate(this._length) } getIndexOf(e, t) { let i = e.piece, n = this.positionInBuffer(e, t), o = n.line - i.start.line; if (this.offsetInBuffer(i.bufferIndex, i.end) - this.offsetInBuffer(i.bufferIndex, i.start) === t) { let t = this.getLineFeedCnt(e.piece.bufferIndex, i.start, n); if (t !== o) return { index: t, remainder: 0 } } return { index: o, remainder: n.column } } getAccumulatedValue(e, t) { if (t < 0) return 0; let i = e.piece, n = this._buffers[i.bufferIndex].lineStarts, o = i.start.line + t + 1; return o > i.end.line ? n[i.end.line] + i.end.column - n[i.start.line] - i.start.column : n[o] - n[i.start.line] - i.start.column } deleteNodeTail(e, t) { const i = e.piece, n = i.lineFeedCnt, o = this.offsetInBuffer(i.bufferIndex, i.end), r = t, s = this.offsetInBuffer(i.bufferIndex, r), a = this.getLineFeedCnt(i.bufferIndex, i.start, r), l = a - n, d = s - o, c = i.length + d; e.piece = new ie(i.bufferIndex, i.start, r, a, c), G(this, e, d, l) } deleteNodeHead(e, t) { const i = e.piece, n = i.lineFeedCnt, o = this.offsetInBuffer(i.bufferIndex, i.start), r = t, s = this.getLineFeedCnt(i.bufferIndex, r, i.end), a = s - n, l = o - this.offsetInBuffer(i.bufferIndex, r), d = i.length + l; e.piece = new ie(i.bufferIndex, r, i.end, s, d), G(this, e, l, a) } shrinkNode(e, t, i) { const n = e.piece, o = n.start, r = n.end, s = n.length, a = n.lineFeedCnt, l = t, d = this.getLineFeedCnt(n.bufferIndex, n.start, l), c = this.offsetInBuffer(n.bufferIndex, t) - this.offsetInBuffer(n.bufferIndex, o); e.piece = new ie(n.bufferIndex, n.start, l, d, c), G(this, e, c - s, d - a); let h = new ie(n.bufferIndex, i, r, this.getLineFeedCnt(n.bufferIndex, i, r), this.offsetInBuffer(n.bufferIndex, r) - this.offsetInBuffer( n.bufferIndex, i)), u = this.rbInsertRight(e, h); this.validateCRLFWithPrevNode(u) } appendToNode(e, t) { this.adjustCarriageReturnFromNext(t, e) && (t += "\n"); const i = this.shouldCheckCRLF() && this.startWithLF(t) && this.endWithCR( e), n = this._buffers[0].buffer.length; this._buffers[0].buffer += t; const o = te(t, !1); for (let e = 0; e < o.length; e++) o[e] += n; if (i) { let e = this._buffers[0].lineStarts[this._buffers[0].lineStarts.length - 2]; this._buffers[0].lineStarts.pop(), this._lastChangeBufferPos = { line: this._lastChangeBufferPos.line - 1, column: n - e } } this._buffers[0].lineStarts = this._buffers[0].lineStarts.concat(o.slice( 1)); const r = this._buffers[0].lineStarts.length - 1, s = { line: r, column: this._buffers[0].buffer.length - this._buffers[0].lineStarts[ r] }, a = e.piece.length + t.length, l = e.piece.lineFeedCnt, d = this.getLineFeedCnt(0, e.piece.start, s), c = d - l; e.piece = new ie(e.piece.bufferIndex, e.piece.start, s, d, a), this._lastChangeBufferPos = s, G(this, e, t.length, c) } nodeAt(e) { let t = this.root, i = this._searchCache.get(e); if (i) return { node: i.node, nodeStartOffset: i.nodeStartOffset, remainder: e - i.nodeStartOffset }; let n = 0; for (; t !== W;) if (t.size_left > e) t = t.left; else { if (t.size_left + t.piece.length >= e) { n += t.size_left; let i = { node: t, remainder: e - t.size_left, nodeStartOffset: n }; return this._searchCache.set(i), i } e -= t.size_left + t.piece.length, n += t.size_left + t.piece.length, t = t.right } return null } nodeAt2(e, t) { let i = this.root, n = 0; for (; i !== W;) if (i.left !== W && i.lf_left >= e - 1) i = i.left; else { if (i.lf_left + i.piece.lineFeedCnt > e - 1) { let o = this.getAccumulatedValue(i, e - i.lf_left - 2), r = this.getAccumulatedValue(i, e - i.lf_left - 1); return n += i.size_left, { node: i, remainder: Math.min(o + t - 1, r), nodeStartOffset: n } } if (i.lf_left + i.piece.lineFeedCnt === e - 1) { let o = this.getAccumulatedValue(i, e - i.lf_left - 2); if (o + t - 1 <= i.piece.length) return { node: i, remainder: o + t - 1, nodeStartOffset: n }; t -= i.piece.length - o; break } e -= i.lf_left + i.piece.lineFeedCnt, n += i.size_left + i.piece.length, i = i.right } for (i = i.next(); i !== W;) { if (i.piece.lineFeedCnt > 0) { let e = this.getAccumulatedValue(i, 0), n = this.offsetOfNode(i); return { node: i, remainder: Math.min(t - 1, e), nodeStartOffset: n } } if (i.piece.length >= t - 1) return { node: i, remainder: t - 1, nodeStartOffset: this.offsetOfNode(i) }; t -= i.piece.length, i = i.next() } return null } nodeCharCodeAt(e, t) { if (e.piece.lineFeedCnt < 1) return -1; let i = this._buffers[e.piece.bufferIndex], n = this.offsetInBuffer(e.piece.bufferIndex, e.piece.start) + t; return i.buffer.charCodeAt(n) } offsetOfNode(e) { if (!e) return 0; let t = e.size_left; for (; e !== this.root;) e.parent.right === e && (t += e.parent.size_left + e.parent.piece.length), e = e.parent; return t } shouldCheckCRLF() { return !(this._EOLNormalized && "\n" === this._EOL) } startWithLF(e) { if ("string" == typeof e) return 10 === e.charCodeAt(0); if (e === W || 0 === e.piece.lineFeedCnt) return !1; let t = e.piece, i = this._buffers[t.bufferIndex].lineStarts, n = t.start.line, o = i[n] + t.start.column; return n !== i.length - 1 && !(i[n + 1] > o + 1) && 10 === this._buffers[ t.bufferIndex].buffer.charCodeAt(o) } endWithCR(e) { return "string" == typeof e ? 13 === e.charCodeAt(e.length - 1) : e !== W && 0 !== e.piece.lineFeedCnt && 13 === this.nodeCharCodeAt(e, e.piece .length - 1) } validateCRLFWithPrevNode(e) { if (this.shouldCheckCRLF() && this.startWithLF(e)) { let t = e.prev(); this.endWithCR(t) && this.fixCRLF(t, e) } } validateCRLFWithNextNode(e) { if (this.shouldCheckCRLF() && this.endWithCR(e)) { let t = e.next(); this.startWithLF(t) && this.fixCRLF(e, t) } } fixCRLF(e, t) { let i, n = [], o = this._buffers[e.piece.bufferIndex].lineStarts; i = 0 === e.piece.end.column ? { line: e.piece.end.line - 1, column: o[e.piece.end.line] - o[e.piece.end.line - 1] - 1 } : { line: e.piece.end.line, column: e.piece.end.column - 1 }; const r = e.piece.length - 1, s = e.piece.lineFeedCnt - 1; e.piece = new ie(e.piece.bufferIndex, e.piece.start, i, s, r), G(this, e, -1, -1), 0 === e.piece.length && n.push(e); let a = { line: t.piece.start.line + 1, column: 0 }; const l = t.piece.length - 1, d = this.getLineFeedCnt(t.piece.bufferIndex, a, t.piece.end); t.piece = new ie(t.piece.bufferIndex, a, t.piece.end, d, l), G(this, t, - 1, -1), 0 === t.piece.length && n.push(t); let c = this.createNewPieces("\r\n"); this.rbInsertRight(e, c[0]); for (let e = 0; e < n.length; e++) q(this, n[e]) } adjustCarriageReturnFromNext(e, t) { if (this.shouldCheckCRLF() && this.endWithCR(e)) { let i = t.next(); if (this.startWithLF(i)) { if (e += "\n", 1 === i.piece.length) q(this, i); else { const e = i.piece, t = { line: e.start.line + 1, column: 0 }, n = e.length - 1, o = this.getLineFeedCnt(e.bufferIndex, t, e.end); i.piece = new ie(e.bufferIndex, t, e.end, o, n), G(this, i, -1, -1) } return !0 } } return !1 } iterate(e, t) { if (e === W) return t(W); let i = this.iterate(e.left, t); return i ? t(e) && this.iterate(e.right, t) : i } getNodeContent(e) { if (e === W) return ""; let t, i = this._buffers[e.piece.bufferIndex], n = e.piece, o = this.offsetInBuffer(n.bufferIndex, n.start), r = this.offsetInBuffer(n.bufferIndex, n.end); return t = i.buffer.substring(o, r), t } getPieceContent(e) { let t = this._buffers[e.bufferIndex], i = this.offsetInBuffer(e.bufferIndex, e.start), n = this.offsetInBuffer(e.bufferIndex, e.end); return t.buffer.substring(i, n) } rbInsertRight(e, t) { let i = new B(t, 1); if (i.left = W, i.right = W, i.parent = W, i.size_left = 0, i.lf_left = 0, this.root === W) this.root = i, i.color = 0; else if (e.right === W) e.right = i, i.parent = e; else { let t = z(e.right); t.left = i, i.parent = t } return Z(this, i), i } rbInsertLeft(e, t) { let i = new B(t, 1); if (i.left = W, i.right = W, i.parent = W, i.size_left = 0, i.lf_left = 0, this.root === W) this.root = i, i.color = 0; else if (e.left === W) e.left = i, i.parent = e; else { let t = V(e.left); t.right = i, i.parent = t } return Z(this, i), i } } var ae = i(8409), le = i(962); class de extends r.JT { constructor(e, t, i, n, r, s, a) { super(), this._onDidChangeContent = this._register(new o.Q5), this._BOM = t, this._mightContainNonBasicASCII = !s, this._mightContainRTL = n, this._mightContainUnusualLineTerminators = r, this._pieceTree = new se( e, i, a) } 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(e) { return this._pieceTree.createSnapshot(e ? this._BOM : "") } getOffsetAt(e, t) { return this._pieceTree.getOffsetAt(e, t) } getPositionAt(e) { return this._pieceTree.getPositionAt(e) } getRangeAt(e, t) { let i = e + t; const n = this.getPositionAt(e), o = this.getPositionAt(i); return new c.e(n.lineNumber, n.column, o.lineNumber, o.column) } getValueInRange(e, t = 0) { if (e.isEmpty()) return ""; const i = this._getEndOfLine(t); return this._pieceTree.getValueInRange(e, i) } getValueLengthInRange(e, t = 0) { if (e.isEmpty()) return 0; if (e.startLineNumber === e.endLineNumber) return e.endColumn - e.startColumn; let i = this.getOffsetAt(e.startLineNumber, e.startColumn); return this.getOffsetAt(e.endLineNumber, e.endColumn) - i } getCharacterCountInRange(e, t = 0) { if (this._mightContainNonBasicASCII) { let i = 0; const n = e.startLineNumber, o = e.endLineNumber; for (let t = n; t <= o; t++) { const r = this.getLineContent(t), a = t === n ? e.startColumn - 1 : 0, l = t === o ? e.endColumn - 1 : r.length; for (let e = a; e < l; e++) s.ZG(r.charCodeAt(e)) ? (i += 1, e += 1) : i += 1 } return i += this._getEndOfLine(t).length * (o - n), i } return this.getValueLengthInRange(e, t) } getLength() { return this._pieceTree.getLength() } getLineCount() { return this._pieceTree.getLineCount() } getLinesContent() { return this._pieceTree.getLinesContent() } getLineContent(e) { return this._pieceTree.getLineContent(e) } getLineCharCode(e, t) { return this._pieceTree.getLineCharCode(e, t) } getLineLength(e) { return this._pieceTree.getLineLength(e) } getLineFirstNonWhitespaceColumn(e) { const t = s.LC(this.getLineContent(e)); return -1 === t ? 0 : t + 1 } getLineLastNonWhitespaceColumn(e) { const t = s.ow(this.getLineContent(e)); return -1 === t ? 0 : t + 2 } _getEndOfLine(e) { switch (e) { case 1: return "\n"; case 2: return "\r\n"; case 0: return this.getEOL(); default: throw new Error("Unknown EOL preference") } } setEOL(e) { this._pieceTree.setEOL(e) } applyEdits(e, t, i) { let n = this._mightContainRTL, o = this._mightContainUnusualLineTerminators, r = this._mightContainNonBasicASCII, a = !0, l = []; for (let t = 0; t < e.length; t++) { let i = e[t]; a && i._isTracked && (a = !1); let d = i.range; if (i.text) { let e = !0; r || (e = !s.$i(i.text), r = e), !n && e && (n = s.Ut(i.text)), !o && e && (o = s.ab(i.text)) } let c = "", h = 0, u = 0, g = 0; if (i.text) { let e; [h, u, g, e] = (0, ae.QZ)(i.text); const t = this.getEOL(), n = "\r\n" === t ? 2 : 1; c = 0 === e || e === n ? i.text : i.text.replace(/\r\n|\r|\n/g, t) } l[t] = { sortIndex: t, identifier: i.identifier || null, range: d, rangeOffset: this.getOffsetAt(d.startLineNumber, d.startColumn), rangeLength: this.getValueLengthInRange(d), text: c, eolCount: h, firstLineLength: u, lastLineLength: g, forceMoveMarkers: Boolean(i.forceMoveMarkers), isAutoWhitespaceEdit: i.isAutoWhitespaceEdit || !1 } } l.sort(de._sortOpsAscending); let d = !1; for (let e = 0, t = l.length - 1; e < t; e++) { let t = l[e].range.getEndPosition(), i = l[e + 1].range.getStartPosition(); if (i.isBeforeOrEqual(t)) { if (i.isBefore(t)) throw new Error( "Overlapping ranges are not allowed!"); d = !0 } } a && (l = this._reduceOperations(l)); let c = i || t ? de._getInverseEditRanges(l) : [], h = []; if (t) for (let e = 0; e < l.length; e++) { let t = l[e], i = c[e]; if (t.isAutoWhitespaceEdit && t.range.isEmpty()) for (let e = i.startLineNumber; e <= i.endLineNumber; e++) { let n = ""; e === i.startLineNumber && (n = this.getLineContent(t.range.startLineNumber), - 1 !== s.LC(n)) || h.push({ lineNumber: e, oldContent: n }) } } let g = null; if (i) { let e = 0; g = []; for (let t = 0; t < l.length; t++) { const i = l[t], n = c[t], o = this.getValueInRange(i.range), r = i.rangeOffset + e; e += i.text.length - o.length, g[t] = { sortIndex: i.sortIndex, identifier: i.identifier, range: n, text: o, textChange: new le.q(i.rangeOffset, o, r, i.text) } } d || g.sort(((e, t) => e.sortIndex - t.sortIndex)) } this._mightContainRTL = n, this._mightContainUnusualLineTerminators = o, this._mightContainNonBasicASCII = r; const p = this._doApplyEdits(l); let m = null; if (t && h.length > 0) { h.sort(((e, t) => t.lineNumber - e.lineNumber)), m = []; for (let e = 0, t = h.length; e < t; e++) { let t = h[e].lineNumber; if (e > 0 && h[e - 1].lineNumber === t) continue; let i = h[e].oldContent, n = this.getLineContent(t); 0 !== n.length && n !== i && -1 === s.LC(n) && m.push(t) } } return this._onDidChangeContent.fire(), new u.je(g, p, m) } _reduceOperations(e) { return e.length < 1e3 ? e : [this._toSingleEditOperation(e)] } _toSingleEditOperation(e) { let t = !1; const i = e[0].range, n = e[e.length - 1].range, o = new c.e(i.startLineNumber, i.startColumn, n.endLineNumber, n.endColumn); let r = i.startLineNumber, s = i.startColumn; const a = []; for (let i = 0, n = e.length; i < n; i++) { const n = e[i], o = n.range; t = t || n.forceMoveMarkers, a.push(this.getValueInRange(new c.e(r, s, o.startLineNumber, o.startColumn))), n.text.length > 0 && a.push( n.text), r = o.endLineNumber, s = o.endColumn } const l = a.join(""), [d, h, u] = (0, ae.QZ)(l); return { sortIndex: 0, identifier: e[0].identifier, range: o, rangeOffset: this.getOffsetAt(o.startLineNumber, o.startColumn), rangeLength: this.getValueLengthInRange(o, 0), text: l, eolCount: d, firstLineLength: h, lastLineLength: u, forceMoveMarkers: t, isAutoWhitespaceEdit: !1 } } _doApplyEdits(e) { e.sort(de._sortOpsDescending); let t = []; for (let i = 0; i < e.length; i++) { let n = e[i]; const o = n.range.startLineNumber, r = n.range.startColumn, s = n.range.endLineNumber, a = n.range.endColumn; if (o === s && r === a && 0 === n.text.length) continue; n.text ? (this._pieceTree.delete(n.rangeOffset, n.rangeLength), this ._pieceTree.insert(n.rangeOffset, n.text, !0)) : this._pieceTree.delete( n.rangeOffset, n.rangeLength); const l = new c.e(o, r, s, a); t.push({ range: l, rangeLength: n.rangeLength, text: n.text, rangeOffset: n.rangeOffset, forceMoveMarkers: n.forceMoveMarkers }) } return t } findMatchesLineByLine(e, t, i, n) { return this._pieceTree.findMatchesLineByLine(e, t, i, n) } static _getInverseEditRanges(e) { let t = [], i = 0, n = 0, o = null; for (let r = 0, s = e.length; r < s; r++) { let s, a, l, d = e[r]; if (o ? o.range.endLineNumber === d.range.startLineNumber ? (s = i, a = n + (d.range.startColumn - o.range.endColumn)) : (s = i + (d.range .startLineNumber - o.range.endLineNumber), a = d.range.startColumn) : (s = d.range.startLineNumber, a = d.range.startColumn), d.text.length > 0) { const e = d.eolCount + 1; l = 1 === e ? new c.e(s, a, s, a + d.firstLineLength) : new c.e(s, a, s + e - 1, d.lastLineLength + 1) } else l = new c.e(s, a, s, a); i = l.endLineNumber, n = l.endColumn, t.push(l), o = d } return t } static _sortOpsAscending(e, t) { let i = c.e.compareRangesUsingEnds(e.range, t.range); return 0 === i ? e.sortIndex - t.sortIndex : i } static _sortOpsDescending(e, t) { let i = c.e.compareRangesUsingEnds(e.range, t.range); return 0 === i ? t.sortIndex - e.sortIndex : -i } } class ce { constructor(e, t, i, n, o, r, s, a, l) { this._chunks = e, this._bom = t, this._cr = i, this._lf = n, this._crlf = o, this._containsRTL = r, this._containsUnusualLineTerminators = s, this._isBasicASCII = a, this._normalizeEOL = l } _getEOL(e) { const t = this._cr + this._lf + this._crlf, i = this._cr + this._crlf; return 0 === t ? 1 === e ? "\n" : "\r\n" : i > t / 2 ? "\r\n" : "\n" } create(e) { const t = this._getEOL(e); let i = this._chunks; if (this._normalizeEOL && ("\r\n" === t && (this._cr > 0 || this._lf > 0) || "\n" === t && (this._cr > 0 || this._crlf > 0))) for (let e = 0, n = i.length; e < n; e++) { let n = i[e].buffer.replace(/\r\n|\r|\n/g, t), o = te(n); i[e] = new ne(n, o) } const n = new de(i, this._bom, t, this._containsRTL, this._containsUnusualLineTerminators, this._isBasicASCII, this._normalizeEOL); return { textBuffer: n, disposable: n } } } class he { constructor() { this.chunks = [], this.BOM = "", this._hasPreviousChar = !1, this._previousChar = 0, this._tmpLineStarts = [], this.cr = 0, this.lf = 0, this.crlf = 0, this.containsRTL = !1, this.containsUnusualLineTerminators = !1, this .isBasicASCII = !0 } acceptChunk(e) { if (0 === e.length) return; 0 === this.chunks.length && s.uS(e) && (this.BOM = s.c1, e = e.substr( 1)); const t = e.charCodeAt(e.length - 1); 13 === t || t >= 55296 && t <= 56319 ? (this._acceptChunk1(e.substr(0, e.length - 1), !1), this._hasPreviousChar = !0, this._previousChar = t) : (this._acceptChunk1(e, !1), this._hasPreviousChar = !1, this._previousChar = t) } _acceptChunk1(e, t) { (t || 0 !== e.length) && (this._hasPreviousChar ? this._acceptChunk2( String.fromCharCode(this._previousChar) + e) : this._acceptChunk2(e)) } _acceptChunk2(e) { const t = function(e, t) { e.length = 0, e[0] = 0; let i = 1, n = 0, o = 0, r = 0, s = !0; for (let a = 0, l = t.length; a < l; a++) { const d = t.charCodeAt(a); 13 === d ? a + 1 < l && 10 === t.charCodeAt(a + 1) ? (r++, e[i++] = a + 2, a++) : (n++, e[i++] = a + 1) : 10 === d ? (o++, e[i++] = a + 1) : s && 9 !== d && (d < 32 || d > 126) && (s = !1) } const a = new ee(J(e), n, o, r, s); return e.length = 0, a }(this._tmpLineStarts, e); this.chunks.push(new ne(e, t.lineStarts)), this.cr += t.cr, this.lf += t.lf, this.crlf += t.crlf, this.isBasicASCII && (this.isBasicASCII = t.isBasicASCII), this.isBasicASCII || this.containsRTL || (this.containsRTL = s.Ut(e)), this.isBasicASCII || this.containsUnusualLineTerminators || (this.containsUnusualLineTerminators = s.ab(e)) } finish(e = !0) { return this._finish(), new ce(this.chunks, this.BOM, this.cr, this.lf, this.crlf, this.containsRTL, this.containsUnusualLineTerminators, this.isBasicASCII, e) } _finish() { if (0 === this.chunks.length && this._acceptChunk1("", !0), this._hasPreviousChar) { this._hasPreviousChar = !1; let e = this.chunks[this.chunks.length - 1]; e.buffer += String.fromCharCode(this._previousChar); let t = te(e.buffer); e.lineStarts = t, 13 === this._previousChar && this.cr++ } } } var ue = i(3256), ge = i(9488), pe = i(8411), me = i(4101), fe = i(8111), _e = i(4013), be = i(1432); class ve { constructor() { this._beginState = [], this._valid = [], this._len = 0, this._invalidLineStartIndex = 0 } _reset(e) { this._beginState = [], this._valid = [], this._len = 0, this._invalidLineStartIndex = 0, e && this._setBeginState(0, e) } flush(e) { this._reset(e) } get invalidLineStartIndex() { return this._invalidLineStartIndex } _invalidateLine(e) { e < this._len && (this._valid[e] = !1), e < this._invalidLineStartIndex && (this._invalidLineStartIndex = e) } _isValid(e) { return e < this._len && this._valid[e] } getBeginState(e) { return e < this._len ? this._beginState[e] : null } _ensureLine(e) { for (; e >= this._len;) this._beginState[this._len] = null, this._valid[ this._len] = !1, this._len++ } _deleteLines(e, t) { 0 !== t && (e + t > this._len && (t = this._len - e), this._beginState .splice(e, t), this._valid.splice(e, t), this._len -= t) } _insertLines(e, t) { if (0 === t) return; let i = [], n = []; for (let e = 0; e < t; e++) i[e] = null, n[e] = !1; this._beginState = ge.Zv(this._beginState, e, i), this._valid = ge.Zv( this._valid, e, n), this._len += t } _setValid(e, t) { this._ensureLine(e), this._valid[e] = t } _setBeginState(e, t) { this._ensureLine(e), this._beginState[e] = t } setEndState(e, t, i) { if (this._setValid(t, !0), this._invalidLineStartIndex = t + 1, t === e - 1) return; const n = this.getBeginState(t + 1); if (null === n || !i.equals(n)) return this._setBeginState(t + 1, i), void this._invalidateLine(t + 1); let o = t + 1; for (; o < e && this._isValid(o);) o++; this._invalidLineStartIndex = o } setFakeTokens(e) { this._setValid(e, !1) } applyEdits(e, t) { const i = e.endLineNumber - e.startLineNumber, n = t; for (let t = Math.min(i, n); t >= 0; t--) this._invalidateLine(e.startLineNumber + t - 1); this._acceptDeleteRange(e), this._acceptInsertText(new d.L(e.startLineNumber, e.startColumn), t) } _acceptDeleteRange(e) { e.startLineNumber - 1 >= this._len || this._deleteLines(e.startLineNumber, e.endLineNumber - e.startLineNumber) } _acceptInsertText(e, t) { e.lineNumber - 1 >= this._len || this._insertLines(e.lineNumber, t) } } class we extends r.JT { constructor(e) { super(), this._isDisposed = !1, this._textModel = e, this._tokenizationStateStore = new ve, this._tokenizationSupport = null, this._register(me.RW.onDidChange( (e => { const t = this._textModel.getLanguageIdentifier(); - 1 !== e.changedLanguages .indexOf(t.language) && (this._resetTokenizationState(), this._textModel .clearTokens()) }))), this._register(this._textModel.onDidChangeContentFast((e => { if (e.isFlush) this._resetTokenizationState(); else { for (let t = 0, i = e.changes.length; t < i; t++) { const i = e.changes[t], [n] = (0, ae.QZ)(i.text); this._tokenizationStateStore.applyEdits(i.range, n) } this._beginBackgroundTokenization() } }))), this._register(this._textModel.onDidChangeAttached((() => { this._beginBackgroundTokenization() }))), this._register(this._textModel.onDidChangeLanguage((() => { this._resetTokenizationState(), this._textModel.clearTokens() }))), this._resetTokenizationState() } dispose() { this._isDisposed = !0, super.dispose() } _resetTokenizationState() { const [e, t] = function(e) { const t = e.getLanguageIdentifier(); let i = e.isTooLargeForTokenization() ? null : me.RW.get(t.language), o = null; if (i) try { o = i.getInitialState() } catch (e) { (0, n.dL)(e), i = null } return [i, o] }(this._textModel); this._tokenizationSupport = e, this._tokenizationStateStore.flush(t), this._beginBackgroundTokenization() } _beginBackgroundTokenization() { this._textModel.isAttachedToEditor() && this._hasLinesToTokenize() && be.xS((() => { this._isDisposed || this._revalidateTokensNow() })) } _revalidateTokensNow() { const e = this._textModel.getLineCount(), t = new ae.DA, i = _e.G.create(!1); let n = -1; for (; this._hasLinesToTokenize() && !(i.elapsed() > 1) && (n = this._tokenizeOneInvalidLine( t), !(n >= e));); this._beginBackgroundTokenization(), this._textModel.setTokens(t.tokens, n >= e) } tokenizeViewport(e, t) { const i = new ae.DA; this._tokenizeViewport(i, e, t), this._textModel.setTokens(i.tokens) } reset() { this._resetTokenizationState(), this._textModel.clearTokens() } forceTokenization(e) { const t = new ae.DA; this._updateTokensUntilLine(t, e), this._textModel.setTokens(t.tokens) } isCheapToTokenize(e) { if (!this._tokenizationSupport) return !0; const t = this._tokenizationStateStore.invalidLineStartIndex + 1; return !(e > t) && (e < t || this._textModel.getLineLength(e) < 2048) } _hasLinesToTokenize() { return !!this._tokenizationSupport && this._tokenizationStateStore.invalidLineStartIndex < this._textModel.getLineCount() } _tokenizeOneInvalidLine(e) { if (!this._hasLinesToTokenize()) return this._textModel.getLineCount() + 1; const t = this._tokenizationStateStore.invalidLineStartIndex + 1; return this._updateTokensUntilLine(e, t), t } _updateTokensUntilLine(e, t) { if (!this._tokenizationSupport) return; const i = this._textModel.getLanguageIdentifier(), n = this._textModel.getLineCount(), o = t - 1; for (let t = this._tokenizationStateStore.invalidLineStartIndex; t <= o; t++) { const o = this._textModel.getLineContent(t + 1), r = this._tokenizationStateStore.getBeginState(t), s = Ce(i, this._tokenizationSupport, o, !0, r); e.add(t + 1, s.tokens), this._tokenizationStateStore.setEndState(n, t, s.endState), t = this._tokenizationStateStore.invalidLineStartIndex - 1 } } _tokenizeViewport(e, t, i) { if (!this._tokenizationSupport) return; if (i <= this._tokenizationStateStore.invalidLineStartIndex) return; if (t <= this._tokenizationStateStore.invalidLineStartIndex) return void this._updateTokensUntilLine(e, i); let n = this._textModel.getLineFirstNonWhitespaceColumn(t), o = [], r = null; for (let e = t - 1; n > 0 && e >= 1; e--) { let t = this._textModel.getLineFirstNonWhitespaceColumn(e); if (0 !== t && t < n) { if (r = this._tokenizationStateStore.getBeginState(e - 1), r) break; o.push(this._textModel.getLineContent(e)), n = t } } r || (r = this._tokenizationSupport.getInitialState()); const s = this._textModel.getLanguageIdentifier(); let a = r; for (let e = o.length - 1; e >= 0; e--) a = Ce(s, this._tokenizationSupport, o[e], !1, a).endState; for (let n = t; n <= i; n++) { let t = this._textModel.getLineContent(n), i = Ce(s, this._tokenizationSupport, t, !0, a); e.add(n, i.tokens), this._tokenizationStateStore.setFakeTokens(n - 1), a = i.endState } } } function Ce(e, t, i, o, r) { let s = null; if (t) try { s = t.tokenize2(i, o, r.clone(), 0) } catch (e) { (0, n.dL)(e) } return s || (s = (0, fe.mh)(e.id, i, r, 0)), pe.A.convertToEndOffset(s.tokens, i.length), s } var ye = i(7461), Se = i(3831), xe = i(764), ke = i(4227), Le = i(1264); const Ne = new Array; class De { constructor(e, t) { this.items = e, this.additionalItems = t } static create(e, t) { if (e <= 128 && 0 === t.length) { let i = De.cache[e]; return i || (i = new De(e, t), De.cache[e] = i), i } return new De(e, t) } static getEmpty() { return this.empty } add(e, t) { const i = t.getKey(e); let n = i >> 5; if (0 === n) { const e = 1 << i | this.items; return e === this.items ? this : De.create(e, this.additionalItems) } n--; const o = this.additionalItems.slice(0); for (; o.length < n;) o.push(0); return o[n] |= 1 << (31 & i), De.create(this.items, o) } has(e, t) { const i = t.getKey(e); let n = i >> 5; return 0 === n ? 0 != (this.items & 1 << i) : (n--, 0 != ((this.additionalItems[ n] || 0) & 1 << (31 & i))) } merge(e) { const t = this.items | e.items; if (this.additionalItems === Ne && e.additionalItems === Ne) return t === this.items ? this : t === e.items ? e : De.create(t, Ne); const i = new Array; for (let t = 0; t < Math.max(this.additionalItems.length, e.additionalItems .length); t++) { const n = this.additionalItems[t] || 0, o = e.additionalItems[t] || 0; i.push(n | o) } return De.create(t, i) } intersects(e) { if (0 != (this.items & e.items)) return !0; for (let t = 0; t < Math.min(this.additionalItems.length, e.additionalItems .length); t++) if (0 != (this.additionalItems[t] & e.additionalItems[t])) return !0; return !1 } } De.cache = new Array(129), De.empty = De.create(0, Ne); class Ee { constructor() { this.items = new Map } getKey(e) { let t = this.items.get(e); return void 0 === t && (t = this.items.size, this.items.set(e, t)), t } } var Ie = i(7869), Te = i(7781); class Me { constructor(e, t) { this.lineCount = e, this.columnCount = t } toString() { return `${this.lineCount},${this.columnCount}` } } const Ae = Math.pow(2, 26); function Re(e, t) { return e * Ae + t } function Oe(e) { const t = e, i = Math.floor(t / Ae); return new Me(i, t - i * Ae) } function Pe(e) { return Math.floor(e / Ae) } function Fe(e, t) { return t < Ae ? e + t : e - e % Ae + t } function Be(e, t) { return e < t } function We(e, t) { return e <= t } function ze(e) { return Re(e.lineNumber - 1, e.column - 1) } function Ve(e, t) { const i = e, n = Math.floor(i / Ae), o = i - n * Ae, r = t, s = Math.floor(r / Ae), a = r - s * Ae; return new c.e(n + 1, o + 1, s + 1, a + 1) } class He { constructor(e, t, i) { this.startOffset = e, this.endOffset = t, this.newLength = i } } class Ue { constructor(e, t) { this.documentLength = t, this.nextEditIdx = 0, this.deltaOldToNewLineCount = 0, this.deltaOldToNewColumnCount = 0, this.deltaLineIdxInOld = -1, this.edits = e.map((e => je.from(e))) } getOffsetBeforeChange(e) { return this.adjustNextEdit(e), this.translateCurToOld(e) } getDistanceToNextChange(e) { this.adjustNextEdit(e); const t = this.edits[this.nextEditIdx]; return function(e, t) { const i = e, n = t; if (n - i <= 0) return 0; const o = Math.floor(i / Ae), r = Math.floor(n / Ae), s = n - r * Ae; return o === r ? Re(0, s - (i - o * Ae)) : Re(r - o, s) }(e, t ? this.translateOldToCur(t.offsetObj) : this.documentLength) } translateOldToCur(e) { return e.lineCount === this.deltaLineIdxInOld ? Re(e.lineCount + this.deltaOldToNewLineCount, e.columnCount + this.deltaOldToNewColumnCount) : Re(e.lineCount + this.deltaOldToNewLineCount, e.columnCount) } translateCurToOld(e) { const t = Oe(e); return t.lineCount - this.deltaOldToNewLineCount === this.deltaLineIdxInOld ? Re(t.lineCount - this.deltaOldToNewLineCount, t.columnCount - this.deltaOldToNewColumnCount) : Re(t.lineCount - this.deltaOldToNewLineCount, t.columnCount) } adjustNextEdit(e) { for (; this.nextEditIdx < this.edits.length;) { const t = this.edits[this.nextEditIdx], i = this.translateOldToCur(t.endOffsetAfterObj); if (!We(i, e)) break; { this.nextEditIdx++; const e = Oe(i), n = Oe(this.translateOldToCur(t.endOffsetBeforeObj)), o = e.lineCount - n.lineCount; this.deltaOldToNewLineCount += o; const r = this.deltaLineIdxInOld === t.endOffsetBeforeObj.lineCount ? this.deltaOldToNewColumnCount : 0, s = e.columnCount - n.columnCount; this.deltaOldToNewColumnCount = r + s, this.deltaLineIdxInOld = t.endOffsetBeforeObj .lineCount } } } } class je { constructor(e, t, i) { this.endOffsetBeforeObj = Oe(t), this.endOffsetAfterObj = Oe(Fe(e, i)), this.offsetObj = Oe(e) } static from(e) { return new je(e.startOffset, e.endOffset, e.newLength) } } class Ke { constructor(e) { this._length = e } get length() { return this._length } } class $e extends Ke { constructor(e, t, i, n) { super(e), this.category = t, this.children = i, this.unopenedBrackets = n } static create(e, t, i, n) { const o = function(e, t, i) { let n = e.length; return t && (n = Fe(n, t.length)), i && (n = Fe(n, i.length)), n }(t, i, n), r = new Array(1); return r[0] = t, i && r.push(i), n && r.push(n), new $e(o, e, r, i ? i .unopenedBrackets : De.getEmpty()) } get kind() { return 2 } get listHeight() { return 0 } canBeReused(e, t) { return null !== this.closingBracket && !e.intersects(this.unopenedBrackets) } get closingBracket() { return this.children.length <= 1 ? null : 1 === this.children[1].kind ? this.children[1] || null : this.children[2] || null } clone() { return new $e(this.length, this.category, Ze(this.children), this.unopenedBrackets) } } class qe extends Ke { constructor(e, t, i, n) { super(e), this.listHeight = t, this._items = i, this._unopenedBrackets = n } static create(e) { if (0 === e.length) return new qe(0, 0, e, De.getEmpty()); { let t = e[0].length, i = e[0].unopenedBrackets; for (let n = 1; n < e.length; n++) t = Fe(t, e[n].length), i = i.merge( e[n].unopenedBrackets); return new qe(t, e[0].listHeight + 1, e, i) } } get kind() { return 4 } get children() { return this._items } get unopenedBrackets() { return this._unopenedBrackets } canBeReused(e, t) { if (0 === this._items.length) return !0; if (e.intersects(this.unopenedBrackets)) return !1; let i = this; for (; i.children.length > 0 && 4 === i.kind;) i = (0, ge.Gb)(i.children); return i.canBeReused(e, t) } clone() { return new qe(this.length, this.listHeight, Ze(this._items), this.unopenedBrackets) } handleChildrenChanged() { const e = this._items; if (0 === e.length) return; let t = e[0].length, i = e[0].unopenedBrackets; for (let n = 1; n < e.length; n++) t = Fe(t, e[n].length), i = i.merge( e[n].unopenedBrackets); this._length = t, this._unopenedBrackets = i } append(e) { const t = this._append(e); return t ? qe.create([this, t]) : this } _append(e) { if (e.listHeight === this.listHeight) return e; const t = this._items[this._items.length - 1], i = 4 === t.kind ? t._append(e) : e; if (i) { if (this._items.length >= 3) { const e = this._items.pop(); return this.handleChildrenChanged(), qe.create([e, i]) } return this._items.push(i), void this.handleChildrenChanged() } this.handleChildrenChanged() } prepend(e) { const t = this._prepend(e); return t ? qe.create([t, this]) : this } _prepend(e) { if (e.listHeight === this.listHeight) return e; if (4 !== this.kind) throw new Error("unexpected"); const t = this._items[0], i = 4 === t.kind ? t._prepend(e) : e; if (i) { if (this._items.length >= 3) { const e = this._items.shift(); return this.handleChildrenChanged(), qe.create([i, e]) } return this._items.unshift(i), void this.handleChildrenChanged() } this.handleChildrenChanged() } } function Ze(e) { const t = new Array(e.length); for (let i = 0; i < e.length; i++) t[i] = e[i].clone(); return t } const Ge = []; class Ye extends Ke {get kind() { return 0 } get listHeight() { return 0 }get children() { return Ge } get unopenedBrackets() { return De.getEmpty() } canBeReused(e, t) { return !t } clone() { return this } } class Qe extends Ke { constructor(e) { super(e) } static create(e) { const t = e, i = Qe.cacheByLength.get(t); if (i) return i; const n = new Qe(e); return Qe.cacheByLength.set(t, n), n } get kind() { return 1 } get listHeight() { return 0 } get children() { return Ge } get unopenedBrackets() { return De.getEmpty() } canBeReused(e, t) { return !1 } clone() { return this } } Qe.cacheByLength = new Map; class Xe extends Ke { constructor(e, t, i) { super(t), this.unopenedBrackets = De.getEmpty().add(e, i) } get kind() { return 3 } get listHeight() { return 0 } get children() { return Ge } canBeReused(e, t) { return !e.intersects(this.unopenedBrackets) } clone() { return this } } class Je { constructor(e, t, i, n, o) { this.length = e, this.kind = t, this.category = i, this.languageId = n, this.astNode = o } } class et { constructor(e, t) { this.textModel = e, this.bracketTokens = t, this.reader = new tt(this.textModel, this.bracketTokens), this._offset = 0, this.didPeek = !1, this.peeked = null, this.textBufferLineCount = e.getLineCount(), this.textBufferLastLineLength = e.getLineLength(this.textBufferLineCount) } get offset() { return this._offset } get length() { return Re(this.textBufferLineCount, this.textBufferLastLineLength) } skip(e) { this.didPeek = !1, this._offset = Fe(this._offset, e); const t = Oe(this._offset); this.reader.setPosition(t.lineCount, t.columnCount) } read() { let e; return this.peeked ? (this.didPeek = !1, e = this.peeked) : e = this.reader .read(), e && (this._offset = Fe(this._offset, e.length)), e } peek() { return this.didPeek || (this.peeked = this.reader.read(), this.didPeek = ! 0), this.peeked } } class tt { constructor(e, t) { this.textModel = e, this.bracketTokens = t, this.lineIdx = 0, this.line = null, this.lineCharOffset = 0, this.lineTokens = null, this.lineTokenOffset = 0, this.peekedToken = null, this.textBufferLineCount = e.getLineCount(), this.textBufferLastLineLength = e.getLineLength(this.textBufferLineCount) } setPosition(e, t) { e === this.lineIdx ? (this.lineCharOffset = t, this.lineTokenOffset = 0 === this.lineCharOffset ? 0 : this.lineTokens.findTokenIndexAtOffset( this.lineCharOffset)) : (this.lineIdx = e, this.lineCharOffset = t, this.line = null), this.peekedToken = null } read() { if (this.peekedToken) { const e = this.peekedToken; return this.peekedToken = null, this.lineCharOffset += e.length, e } if (this.lineIdx > this.textBufferLineCount - 1 || this.lineIdx === this.textBufferLineCount - 1 && this.lineCharOffset >= this.textBufferLastLineLength ) return null; null === this.line && (this.lineTokens = this.textModel.getLineTokens( this.lineIdx + 1), this.line = this.lineTokens.getLineContent(), this.lineTokenOffset = 0 === this.lineCharOffset ? 0 : this.lineTokens .findTokenIndexAtOffset(this.lineCharOffset)); const e = this.lineIdx, t = this.lineCharOffset; let i = 0; for (; i < 1e3;) { const n = this.lineTokens, o = n.getCount(); let r = null; if (this.lineTokenOffset < o) { let s = n.getMetadata(this.lineTokenOffset); for (; this.lineTokenOffset + 1 < o && s === n.getMetadata(this.lineTokenOffset + 1);) this.lineTokenOffset++; const a = 0 === me.NX.getTokenType(s), l = n.getEndOffset(this.lineTokenOffset); if (a && l !== this.lineCharOffset) { const e = n.getLanguageId(this.lineTokenOffset), t = this.line.substring(this.lineCharOffset, l), i = this.bracketTokens.getSingleLanguageBracketTokens(e), o = i.regExpGlobal; if (o) { o.lastIndex = 0; const e = o.exec(t); e && (r = i.getToken(e[0]), r && (this.lineCharOffset += e.index)) } } if (i += l - this.lineCharOffset, r) { if (e !== this.lineIdx || t !== this.lineCharOffset) { this.peekedToken = r; break } return this.lineCharOffset += r.length, r } this.lineTokenOffset++, this.lineCharOffset = l } else { if (this.lineIdx === this.textBufferLineCount - 1) break; this.lineIdx++, this.lineTokens = this.textModel.getLineTokens(this.lineIdx + 1), this.lineTokenOffset = 0, this.line = this.lineTokens.getLineContent(), this.lineCharOffset = 0, i++ } } const n = (o = e, r = t, s = this.lineIdx, a = this.lineCharOffset, o !== s ? Re(s - o, a) : Re(0, a - r)); var o, r, s, a; return new Je(n, 0, -1, -1, new Ye(n)) } } class it { constructor(e, t) { this.text = e, this._offset = 0, this.idx = 0; const i = t.getRegExpStr() ? new RegExp(t.getRegExpStr() + "|\n", "g") : null, n = []; let o, r = 0, s = 0, a = 0, l = 0; const d = new Array; for (let e = 0; e < 60; e++) d.push(new Je(Re(0, e), 0, -1, -1, new Ye( Re(0, e)))); const c = new Array; for (let e = 0; e < 60; e++) c.push(new Je(Re(1, e), 0, -1, -1, new Ye( Re(1, e)))); if (i) for (i.lastIndex = 0; null !== (o = i.exec(e));) { const e = o.index, i = o[0]; if ("\n" === i) r++, s = e + 1; else { if (a !== e) { let t; if (l === r) { const i = e - a; if (i < d.length) t = d[i]; else { const e = Re(0, i); t = new Je(e, 0, -1, -1, new Ye(e)) } } else { const i = r - l, n = e - s; if (1 === i && n < c.length) t = c[n]; else { const e = Re(i, n); t = new Je(e, 0, -1, -1, new Ye(e)) } } n.push(t) } n.push(t.getToken(i)), a = e + i.length, l = r } } const h = e.length; if (a !== h) { const e = l === r ? Re(0, h - a) : Re(r - l, h - s); n.push(new Je(e, 0, -1, -1, new Ye(e))) } this.length = Re(r, h - s), this.tokens = n } get offset() { return this._offset } read() { return this.tokens[this.idx++] || null } peek() { return this.tokens[this.idx] || null } skip(e) { throw new n.B8 } } class nt { constructor() { this.hasRegExp = !1, this._regExpGlobal = null, this.map = new Map } static createFromLanguage(e, t) { const i = [...Se.zu.getColorizedBracketPairs(e)], n = new nt; let o = 0; for (const t of i) n.addBracket(e, t[0], 1, o), n.addBracket(e, t[1], 2, o), o++; for (const i of t) o++, n.addBracket(e, i[0], 1, o), n.addBracket(e, i[ 1], 2, o); return n } addBracket(e, t, i, n) { const o = Re(0, t.length); this.map.set(t, new Je(o, i, 1e3 * e + n, e, Qe.create(o))) } getRegExpStr() { if (this.isEmpty) return null; { const e = [...this.map.keys()]; return e.sort(), e.reverse(), e.map((e => (0, s.ec)(e))).join("|") } } get regExpGlobal() { if (!this.hasRegExp) { const e = this.getRegExpStr(); this._regExpGlobal = e ? new RegExp(e, "g") : null, this.hasRegExp = ! 0 } return this._regExpGlobal } getToken(e) { return this.map.get(e) } get isEmpty() { return 0 === this.map.size } } class ot { constructor(e) { this.customBracketPairs = e, this.languageIdToBracketTokens = new Map } didLanguageChange(e) { const t = this.languageIdToBracketTokens.get(e); if (!t) return !1; const i = nt.createFromLanguage(e, this.customBracketPairs).getRegExpStr(); return t.getRegExpStr() !== i } getSingleLanguageBracketTokens(e) { let t = this.languageIdToBracketTokens.get(e); return t || (t = nt.createFromLanguage(e, this.customBracketPairs), this.languageIdToBracketTokens.set(e, t)), t } } function rt(e, t) { return Math.abs(e.listHeight - t.listHeight) } function st(e, t) { return e.listHeight === t.listHeight ? qe.create([e, t]) : e.listHeight > t.listHeight ? e.append(t) : t.prepend(e) } class at { constructor(e) { this.lastOffset = 0, this.nextNodes = [e], this.offsets = [0], this.idxs = [] } readLongestNodeAt(e, t) { if (Be(e, this.lastOffset)) throw new Error("Invalid offset"); for (this.lastOffset = e;;) { const i = lt(this.nextNodes); if (!i) return; const n = lt(this.offsets); if (Be(e, n)) return; if (Be(n, e)) Fe(n, i.length) <= e ? this.nextNodeAfterCurrent() : i.children .length > 0 ? (this.nextNodes.push(i.children[0]), this.offsets.push( n), this.idxs.push(0)) : this.nextNodeAfterCurrent(); else { if (t(i)) return this.nextNodeAfterCurrent(), i; if (0 === i.children.length) return void this.nextNodeAfterCurrent(); this.nextNodes.push(i.children[0]), this.offsets.push(n), this.idxs.push( 0) } } } nextNodeAfterCurrent() { for (;;) { const e = lt(this.offsets), t = lt(this.nextNodes); if (this.nextNodes.pop(), this.offsets.pop(), 0 === this.idxs.length) break; const i = lt(this.nextNodes); this.idxs[this.idxs.length - 1]++; const n = this.idxs[this.idxs.length - 1]; if (n < i.children.length) { this.nextNodes.push(i.children[n]), this.offsets.push(Fe(e, t.length)); break } this.idxs.pop() } } } function lt(e) { return e.length > 0 ? e[e.length - 1] : void 0 } function dt(e, t, i, n) { return new ct(e, t, i, n).parseDocument() } class ct { constructor(e, t, i, n) { this.tokenizer = e, this.denseKeyProvider = n, this._itemsConstructed = 0, this._itemsFromCache = 0, this.oldNodeReader = i ? new at(i) : void 0, this.positionMapper = new Ue(t, e.length) } parseDocument() { this._itemsConstructed = 0, this._itemsFromCache = 0; let e = this.parseList(De.getEmpty()); return e || (e = qe.create([])), e } parseList(e) { const t = new Array; for (;;) { const i = this.tokenizer.peek(); if (!i || 2 === i.kind && e.has(i.category, this.denseKeyProvider)) break; const n = this.parseChild(e); 4 === n.kind && 0 === n.children.length || t.push(n) } return function(e) { return 0 === e.length ? null : 1 === e.length ? e[0] : function(e) { const t = e[0].listHeight; for (const i of e) if (i.listHeight !== t) return !1; return !0 }(e) ? function(e) { let t = e.length; for (; t > 1;) { const i = t >> 1, n = new Array(i); for (let o = 0; o < i; o++) { const i = o << 1; n[o] = qe.create(e.slice(i, i + 3 === t ? t : i + 2)) } t = i, e = n } return e[0] }(e) : function(e) { let t = e[0], i = e[1]; for (let n = 2; n < e.length; n++) { const o = e[n]; rt(t, i) <= rt(i, o) ? (t = st(t, i), i = o) : i = st(i, o) } return st(t, i) }(e) }(t) } parseChild(e) { if (this.oldNodeReader) { const t = this.positionMapper.getDistanceToNextChange(this.tokenizer.offset); if (0 !== t) { const i = this.oldNodeReader.readLongestNodeAt(this.positionMapper.getOffsetBeforeChange( this.tokenizer.offset), (i => { if (!We(i.length, t)) return !1; const n = Pe(i.length) === Pe(t); return i.canBeReused(e, n) })); if (i) return this._itemsFromCache++, this.tokenizer.skip(i.length), i } } this._itemsConstructed++; const t = this.tokenizer.read(); switch (t.kind) { case 2: return new Xe(t.category, t.length, this.denseKeyProvider); case 0: return t.astNode; case 1: const i = e.add(t.category, this.denseKeyProvider), n = this.parseList(i), o = this.tokenizer.peek(); return o && 2 === o.kind && o.category === t.category ? (this.tokenizer .read(), $e.create(t.category, t.astNode, n, o.astNode)) : $e.create( t.category, t.astNode, n, null); default: throw new Error("unexpected") } } } class ht extends r.JT { constructor(e) { super(), this.textModel = e, this.didChangeDecorationsEmitter = new o .Q5, this.cache = this._register(new r.XK), this._register(Se.zu.onDidChange( (e => { var t; (null === (t = this.cache.value) || void 0 === t ? void 0 : t.object .didLanguageChange(e.languageIdentifier.id)) && (this.cache.clear(), this.updateCache()) }))), this._register(e.onDidChangeOptions((e => { this.cache.clear(), this.updateCache() }))), this._register(e.onDidChangeAttached((() => { this.updateCache() }))) } get isDocumentSupported() { return this.textModel.getValueLength() <= 5e6 } updateCache() { const e = this.textModel.getOptions().bracketPairColorizationOptions; if (this.textModel.isAttachedToEditor() && this.isDocumentSupported && e.enabled) { if (!this.cache.value) { const e = new r.SL; this.cache.value = (t = e.add(new ut(this.textModel)), i = e, { object: t, dispose: () => null == i ? void 0 : i.dispose() }), e.add(this.cache.value.object.onDidChangeDecorations((e => this.didChangeDecorationsEmitter.fire(e)))), this.didChangeDecorationsEmitter .fire() } } else this.cache.clear(), this.didChangeDecorationsEmitter.fire(); var t, i } handleContentChanged(e) { var t; null === (t = this.cache.value) || void 0 === t || t.object.handleContentChanged( e) } getDecorationsInRange(e, t, i) { var n; return void 0 === t ? [] : (null === (n = this.cache.value) || void 0 === n ? void 0 : n.object.getDecorationsInRange(e, t, i)) || [] } getAllDecorations(e, t) { var i; return void 0 === e ? [] : (null === (i = this.cache.value) || void 0 === i ? void 0 : i.object.getAllDecorations(e, t)) || [] } onDidChangeDecorations(e) { return this.didChangeDecorationsEmitter.event(e) } } class ut extends r.JT { constructor(e) { if (super(), this.textModel = e, this.didChangeDecorationsEmitter = new o.Q5, this.colorProvider = new mt, this.brackets = new ot([]), this.denseKeyProvider = new Ee, this.onDidChangeDecorations = this.didChangeDecorationsEmitter .event, this._register(e.onBackgroundTokenizationStateChanged((() => { if (2 === e.backgroundTokenizationState) { const e = void 0 === this.initialAstWithoutTokens; this.initialAstWithoutTokens = void 0, e || this.didChangeDecorationsEmitter .fire() } }))), this._register(e.onDidChangeTokens((({ ranges: e }) => { const t = e.map((e => new He(Re(e.fromLineNumber - 1, 0), Re(e.toLineNumber, 0), Re(e.toLineNumber - e.fromLineNumber + 1, 0)))); this.astWithTokens = this.parseDocumentFromTextBuffer(t, this.astWithTokens), this.initialAstWithoutTokens || this.didChangeDecorationsEmitter .fire() }))), 0 === e.backgroundTokenizationState) { const e = this.brackets.getSingleLanguageBracketTokens(this.textModel .getLanguageIdentifier().id), t = new it(this.textModel.getValue(), e); this.initialAstWithoutTokens = dt(t, [], void 0, this.denseKeyProvider), this.astWithTokens = this.initialAstWithoutTokens.clone() } else 2 === e.backgroundTokenizationState ? (this.initialAstWithoutTokens = void 0, this.astWithTokens = this.parseDocumentFromTextBuffer([], void 0)) : 1 === e.backgroundTokenizationState && (this.initialAstWithoutTokens = this.parseDocumentFromTextBuffer([], void 0), this.astWithTokens = this.initialAstWithoutTokens.clone()) } didLanguageChange(e) { return this.brackets.didLanguageChange(e) } handleContentChanged(e) { const t = e.changes.map((e => { const t = c.e.lift(e.range); return new He(ze(t.getStartPosition()), ze(t.getEndPosition()), function(e) { const t = (0, s.uq)(e); return Re(t.length - 1, t[t.length - 1].length) }(e.text)) })).reverse(); this.astWithTokens = this.parseDocumentFromTextBuffer(t, this.astWithTokens), this.initialAstWithoutTokens && (this.initialAstWithoutTokens = this .parseDocumentFromTextBuffer(t, this.initialAstWithoutTokens)) } parseDocumentFromTextBuffer(e, t) { const i = t; return dt(new et(this.textModel, this.brackets), e, i, this.denseKeyProvider) } getBracketsInRange(e) { const t = Re(e.startLineNumber - 1, e.startColumn - 1), i = Re(e.endLineNumber - 1, e.endColumn - 1), n = new Array, o = this.initialAstWithoutTokens || this.astWithTokens; return gt(o, 0, o.length, t, i, n), n } getDecorationsInRange(e, t, i) { const n = new Array, o = this.getBracketsInRange(e); for (const e of o) n.push({ id: `bracket${e.hash()}`, options: { description: "BracketPairColorization", inlineClassName: this.colorProvider.getInlineClassName(e) }, ownerId: 0, range: e.range }); return n } getAllDecorations(e, t) { return this.getDecorationsInRange(new c.e(1, 1, this.textModel.getLineCount(), 1), e, t) } } function gt(e, t, i, n, o, r, s = 0) { if (1 === e.kind) { const e = Ve(t, i); r.push(new pt(e, s - 1, !1)) } else if (3 === e.kind) { const e = Ve(t, i); r.push(new pt(e, s - 1, !0)) } else { 2 === e.kind && s++; for (const a of e.children) i = Fe(t, a.length), We(t, o) && i >= n && gt(a, t, i, n, o, r, s), t = i } } class pt { constructor(e, t, i) { this.range = e, this.level = t, this.isInvalid = i } hash() { return `${this.range.toString()}-${this.level}` } } class mt { constructor() { this.unexpectedClosingBracketClassName = "unexpected-closing-bracket" } getInlineClassName(e) { return e.isInvalid ? this.unexpectedClosingBracketClassName : this.getInlineClassNameOfLevel( e.level) } getInlineClassNameOfLevel(e) { return "bracket-highlighting-" + e % 30 } } function ft(e, t) { return ("string" == typeof e ? function(e) { const t = new he; return t.acceptChunk(e), t.finish() }(e) : e).create(t) }(0, Te.Ic)(((e, t) => { const i = [Ie.zJ, Ie.Vs, Ie.CE, Ie.UP, Ie.r0, Ie.m1], n = new mt; t.addRule( `.monaco-editor .${n.unexpectedClosingBracketClassName} { color: ${e.getColor(Ie.ts)}; }` ); let o = i.map((t => e.getColor(t))).filter((e => !!e)).filter((e => !e .isTransparent())); for (let e = 0; e < 30; e++) { const i = o[e % o.length]; t.addRule( `.monaco-editor .${n.getInlineClassNameOfLevel(e)} { color: ${i}; }` ) } })); let _t = 0; class bt { constructor(e) { this._source = e, this._eos = !1 } read() { if (this._eos) return null; let e = [], t = 0, i = 0; for (;;) { let n = this._source.read(); if (null === n) return this._eos = !0, 0 === t ? null : e.join(""); if (n.length > 0 && (e[t++] = n, i += n.length), i >= 65536) return e .join("") } } } const vt = () => { throw new Error("Invalid change accessor") }; class wt { constructor() { this._searchCanceledBrand = void 0 } } function Ct(e) { return e instanceof wt ? null : e } wt.INSTANCE = new wt; class yt extends r.JT { constructor(e, t, i, n = null, r) { super(), this._onWillDispose = this._register(new o.Q5), this.onWillDispose = this._onWillDispose.event, this._onDidChangeDecorations = this._register( new Rt((e => this.handleBeforeFireDecorationsChangedEvent(e)))), this.onDidChangeDecorations = this._onDidChangeDecorations.event, this._onDidChangeLanguage = this._register(new o.Q5), this.onDidChangeLanguage = this._onDidChangeLanguage.event, this._onDidChangeLanguageConfiguration = this._register(new o.Q5), this.onDidChangeLanguageConfiguration = this._onDidChangeLanguageConfiguration.event, this._onDidChangeTokens = this._register(new o.Q5), this.onDidChangeTokens = this._onDidChangeTokens .event, this._onDidChangeOptions = this._register(new o.Q5), this.onDidChangeOptions = this._onDidChangeOptions.event, this._onDidChangeAttached = this._register( new o.Q5), this.onDidChangeAttached = this._onDidChangeAttached.event, this._onDidChangeContentOrInjectedText = this._register(new o.Q5), this.onDidChangeContentOrInjectedText = this._onDidChangeContentOrInjectedText .event, this._eventEmitter = this._register(new Ot), this._backgroundTokenizationState = 0, this._onBackgroundTokenizationStateChanged = this._register(new o .Q5), this.onBackgroundTokenizationStateChanged = this._onBackgroundTokenizationStateChanged .event, this._register(this._eventEmitter.fastEvent((e => { this._onDidChangeContentOrInjectedText.fire(e.rawContentChangedEvent) }))), _t++, this.id = "$model" + _t, this.isForSimpleWidget = t.isForSimpleWidget, this._associatedResource = null == n ? a.o.parse("inmemory://model/" + _t) : n, this._undoRedoService = r, this._attachedEditorCount = 0; const { textBuffer: l, disposable: d } = ft(e, t.defaultEOL); this._buffer = l, this._bufferDisposable = d, this._options = yt.resolveOptions( this._buffer, t); const h = this._buffer.getLineCount(), u = this._buffer.getValueLengthInRange(new c.e(1, 1, h, this._buffer .getLineLength(h) + 1), 0); t.largeFileOptimizations ? this._isTooLargeForTokenization = u > yt.LARGE_FILE_SIZE_THRESHOLD || h > yt.LARGE_FILE_LINE_COUNT_THRESHOLD : this._isTooLargeForTokenization = ! 1, this._isTooLargeForSyncing = u > yt.MODEL_SYNC_LIMIT, this._versionId = 1, this._alternativeVersionId = 1, this._initialUndoRedoSnapshot = null, this._isDisposed = !1, this._isDisposing = !1, this._languageIdentifier = i || fe.pA, this._languageRegistryListener = Se.zu.onDidChange((e => { e.languageIdentifier.id === this._languageIdentifier.id && this._onDidChangeLanguageConfiguration .fire({}) })), this._instanceId = s.PJ(_t), this._lastDecorationId = 0, this._decorations = Object.create(null), this._decorationsTree = new kt, this._commandManager = new g.NL(this, r), this._isUndoing = !1, this._isRedoing = !1, this._trimAutoWhitespaceLines = null, this._tokens = new ae.Rl, this._tokens2 = new ae.cx, this._tokenization = new we(this), this._bracketPairColorizer = this._register(new ht( this)), this._decorationProvider = this._bracketPairColorizer, this ._register(this._decorationProvider.onDidChangeDecorations((() => { this._onDidChangeDecorations.beginDeferredEmit(), this._onDidChangeDecorations .fire(), this._onDidChangeDecorations.endDeferredEmit() }))) } static resolveOptions(e, t) { if (t.detectIndentation) { const i = f(e, t.tabSize, t.insertSpaces); return new u.dJ({ tabSize: i.tabSize, indentSize: i.tabSize, insertSpaces: i.insertSpaces, trimAutoWhitespace: t.trimAutoWhitespace, defaultEOL: t.defaultEOL, bracketPairColorizationOptions: t.bracketPairColorizationOptions }) } return new u.dJ({ tabSize: t.tabSize, indentSize: t.indentSize, insertSpaces: t.insertSpaces, trimAutoWhitespace: t.trimAutoWhitespace, defaultEOL: t.defaultEOL, bracketPairColorizationOptions: t.bracketPairColorizationOptions }) } onDidChangeContentFast(e) { return this._eventEmitter.fastEvent((t => e(t.contentChangedEvent))) } onDidChangeContent(e) { return this._eventEmitter.slowEvent((t => e(t.contentChangedEvent))) } get backgroundTokenizationState() { return this._backgroundTokenizationState } setBackgroundTokenizationState(e) { this._backgroundTokenizationState !== e && (this._backgroundTokenizationState = e, this._onBackgroundTokenizationStateChanged.fire()) } dispose() { this._isDisposing = !0, this._onWillDispose.fire(), this._languageRegistryListener .dispose(), this._tokenization.dispose(), this._isDisposed = !0, super.dispose(), this._bufferDisposable.dispose(), this._isDisposing = ! 1; const e = new de([], "", "\n", !1, !1, !0, !0); e.dispose(), this._buffer = e } _assertNotDisposed() { if (this._isDisposed) throw new Error("Model is disposed!") } _emitContentChangedEvent(e, t) { this._bracketPairColorizer.handleContentChanged(t), this._isDisposing || this._eventEmitter.fire(new ue.fV(e, t)) } setValue(e) { if (this._assertNotDisposed(), null === e) return; const { textBuffer: t, disposable: i } = ft(e, this._options.defaultEOL); this._setValueFromTextBuffer(t, i) } _createContentChanged2(e, t, i, n, o, r, s) { return { changes: [{ range: e, rangeOffset: t, rangeLength: i, text: n }], eol: this._buffer.getEOL(), versionId: this.getVersionId(), isUndoing: o, isRedoing: r, isFlush: s } } _setValueFromTextBuffer(e, t) { this._assertNotDisposed(); const i = this.getFullModelRange(), n = this.getValueLengthInRange(i), o = this.getLineCount(), r = this.getLineMaxColumn(o); this._buffer = e, this._bufferDisposable.dispose(), this._bufferDisposable = t, this._increaseVersionId(), this._tokens.flush(), this._tokens2.flush(), this._decorations = Object.create(null), this._decorationsTree = new kt, this._commandManager.clear(), this._trimAutoWhitespaceLines = null, this._emitContentChangedEvent(new ue.dQ([new ue.Jx], this._versionId, ! 1, !1), this._createContentChanged2(new c.e(1, 1, o, r), 0, n, this.getValue(), !1, !1, !0)) } setEOL(e) { this._assertNotDisposed(); const t = 1 === e ? "\r\n" : "\n"; if (this._buffer.getEOL() === t) return; const i = this.getFullModelRange(), n = this.getValueLengthInRange(i), o = this.getLineCount(), r = this.getLineMaxColumn(o); this._onBeforeEOLChange(), this._buffer.setEOL(t), this._increaseVersionId(), this._onAfterEOLChange(), this._emitContentChangedEvent(new ue.dQ([ new ue.CZ ], this._versionId, !1, !1), this._createContentChanged2(new c.e(1, 1, o, r), 0, n, this.getValue(), !1, !1, !1)) } _onBeforeEOLChange() { this._decorationsTree.ensureAllNodesHaveRanges(this) } _onAfterEOLChange() { const e = this.getVersionId(), t = this._decorationsTree.collectNodesPostOrder(); for (let i = 0, n = t.length; i < n; i++) { const n = t[i], o = n.range, r = n.cachedAbsoluteStart - n.start, s = this._buffer.getOffsetAt(o.startLineNumber, o.startColumn), a = this._buffer.getOffsetAt(o.endLineNumber, o.endColumn); n.cachedAbsoluteStart = s, n.cachedAbsoluteEnd = a, n.cachedVersionId = e, n.start = s - r, n.end = a - r, P(n) } } onBeforeAttached() { this._attachedEditorCount++, 1 === this._attachedEditorCount && this._onDidChangeAttached .fire(void 0) } onBeforeDetached() { this._attachedEditorCount--, 0 === this._attachedEditorCount && this._onDidChangeAttached .fire(void 0) } isAttachedToEditor() { return this._attachedEditorCount > 0 } getAttachedEditorCount() { return this._attachedEditorCount } isTooLargeForSyncing() { return this._isTooLargeForSyncing } isTooLargeForTokenization() { return this._isTooLargeForTokenization } isDisposed() { return this._isDisposed } isDominatedByLongLines() { if (this._assertNotDisposed(), this.isTooLargeForTokenization()) return !1; let e = 0, t = 0; const i = this._buffer.getLineCount(); for (let n = 1; n <= i; n++) { const i = this._buffer.getLineLength(n); i >= 1e4 ? t += i : e += i } return t > e } get uri() { return this._associatedResource } getOptions() { return this._assertNotDisposed(), this._options } getFormattingOptions() { return { tabSize: this._options.indentSize, insertSpaces: this._options.insertSpaces } } updateOptions(e) { this._assertNotDisposed(); let t = void 0 !== e.tabSize ? e.tabSize : this._options.tabSize, i = void 0 !== e.indentSize ? e.indentSize : this._options.indentSize, n = void 0 !== e.insertSpaces ? e.insertSpaces : this._options.insertSpaces, o = void 0 !== e.trimAutoWhitespace ? e.trimAutoWhitespace : this._options .trimAutoWhitespace, r = void 0 !== e.bracketColorizationOptions ? e.bracketColorizationOptions : this._options.bracketPairColorizationOptions, s = new u.dJ({ tabSize: t, indentSize: i, insertSpaces: n, defaultEOL: this._options.defaultEOL, trimAutoWhitespace: o, bracketPairColorizationOptions: r }); if (this._options.equals(s)) return; let a = this._options.createChangeEvent(s); this._options = s, this._onDidChangeOptions.fire(a) } detectIndentation(e, t) { this._assertNotDisposed(); let i = f(this._buffer, t, e); this.updateOptions({ insertSpaces: i.insertSpaces, tabSize: i.tabSize, indentSize: i.tabSize }) } static _normalizeIndentationFromWhitespace(e, t, i) { let n = 0; for (let i = 0; i < e.length; i++) "\t" === e.charAt(i) ? n += t : n++; let o = ""; if (!i) { let e = Math.floor(n / t); n %= t; for (let t = 0; t < e; t++) o += "\t" } for (let e = 0; e < n; e++) o += " "; return o } static normalizeIndentation(e, t, i) { let n = s.LC(e); return -1 === n && (n = e.length), yt._normalizeIndentationFromWhitespace( e.substring(0, n), t, i) + e.substring(n) } normalizeIndentation(e) { return this._assertNotDisposed(), yt.normalizeIndentation(e, this._options .indentSize, this._options.insertSpaces) } getVersionId() { return this._assertNotDisposed(), this._versionId } mightContainRTL() { return this._buffer.mightContainRTL() } mightContainUnusualLineTerminators() { return this._buffer.mightContainUnusualLineTerminators() } removeUnusualLineTerminators(e = null) { const t = this.findMatches(s.Qe.source, !1, !0, !1, null, !1, 1073741824); this._buffer.resetMightContainUnusualLineTerminators(), this.pushEditOperations( e, t.map((e => ({ range: e.range, text: null }))), (() => null)) } mightContainNonBasicASCII() { return this._buffer.mightContainNonBasicASCII() } getAlternativeVersionId() { return this._assertNotDisposed(), this._alternativeVersionId } getInitialUndoRedoSnapshot() { return this._assertNotDisposed(), this._initialUndoRedoSnapshot } getOffsetAt(e) { this._assertNotDisposed(); let t = this._validatePosition(e.lineNumber, e.column, 0); return this._buffer.getOffsetAt(t.lineNumber, t.column) } getPositionAt(e) { this._assertNotDisposed(); let t = Math.min(this._buffer.getLength(), Math.max(0, e)); return this._buffer.getPositionAt(t) } _increaseVersionId() { this._versionId = this._versionId + 1, this._alternativeVersionId = this._versionId } _overwriteVersionId(e) { this._versionId = e } _overwriteAlternativeVersionId(e) { this._alternativeVersionId = e } _overwriteInitialUndoRedoSnapshot(e) { this._initialUndoRedoSnapshot = e } getValue(e, t = !1) { this._assertNotDisposed(); const i = this.getFullModelRange(), n = this.getValueInRange(i, e); return t ? this._buffer.getBOM() + n : n } createSnapshot(e = !1) { return new bt(this._buffer.createSnapshot(e)) } getValueLength(e, t = !1) { this._assertNotDisposed(); const i = this.getFullModelRange(), n = this.getValueLengthInRange(i, e); return t ? this._buffer.getBOM().length + n : n } getValueInRange(e, t = 0) { return this._assertNotDisposed(), this._buffer.getValueInRange(this.validateRange( e), t) } getValueLengthInRange(e, t = 0) { return this._assertNotDisposed(), this._buffer.getValueLengthInRange( this.validateRange(e), t) } getCharacterCountInRange(e, t = 0) { return this._assertNotDisposed(), this._buffer.getCharacterCountInRange( this.validateRange(e), t) } getLineCount() { return this._assertNotDisposed(), this._buffer.getLineCount() } getLineContent(e) { if (this._assertNotDisposed(), e < 1 || e > this.getLineCount()) throw new Error( "Illegal value for lineNumber"); return this._buffer.getLineContent(e) } getLineLength(e) { if (this._assertNotDisposed(), e < 1 || e > this.getLineCount()) throw new Error( "Illegal value for lineNumber"); return this._buffer.getLineLength(e) } getLinesContent() { return this._assertNotDisposed(), this._buffer.getLinesContent() } getEOL() { return this._assertNotDisposed(), this._buffer.getEOL() } getEndOfLineSequence() { return this._assertNotDisposed(), "\n" === this._buffer.getEOL() ? 0 : 1 } getLineMinColumn(e) { return this._assertNotDisposed(), 1 } getLineMaxColumn(e) { if (this._assertNotDisposed(), e < 1 || e > this.getLineCount()) throw new Error( "Illegal value for lineNumber"); return this._buffer.getLineLength(e) + 1 } getLineFirstNonWhitespaceColumn(e) { if (this._assertNotDisposed(), e < 1 || e > this.getLineCount()) throw new Error( "Illegal value for lineNumber"); return this._buffer.getLineFirstNonWhitespaceColumn(e) } getLineLastNonWhitespaceColumn(e) { if (this._assertNotDisposed(), e < 1 || e > this.getLineCount()) throw new Error( "Illegal value for lineNumber"); return this._buffer.getLineLastNonWhitespaceColumn(e) } _validateRangeRelaxedNoAllocations(e) { const t = this._buffer.getLineCount(), i = e.startLineNumber, n = e.startColumn; let o = Math.floor("number" != typeof i || isNaN(i) ? 1 : i), r = Math.floor("number" != typeof n || isNaN(n) ? 1 : n); if (o < 1) o = 1, r = 1; else if (o > t) o = t, r = this.getLineMaxColumn(o); else if (r <= 1) r = 1; else { const e = this.getLineMaxColumn(o); r >= e && (r = e) } const s = e.endLineNumber, a = e.endColumn; let l = Math.floor("number" != typeof s || isNaN(s) ? 1 : s), d = Math.floor("number" != typeof a || isNaN(a) ? 1 : a); if (l < 1) l = 1, d = 1; else if (l > t) l = t, d = this.getLineMaxColumn(l); else if (d <= 1) d = 1; else { const e = this.getLineMaxColumn(l); d >= e && (d = e) } return i === o && n === r && s === l && a === d && e instanceof c.e && !(e instanceof h.Y) ? e : new c.e(o, r, l, d) } _isValidPosition(e, t, i) { if ("number" != typeof e || "number" != typeof t) return !1; if (isNaN(e) || isNaN(t)) return !1; if (e < 1 || t < 1) return !1; if ((0 | e) !== e || (0 | t) !== t) return !1; if (e > this._buffer.getLineCount()) return !1; if (1 === t) return !0; if (t > this.getLineMaxColumn(e)) return !1; if (1 === i) { const i = this._buffer.getLineCharCode(e, t - 2); if (s.ZG(i)) return !1 } return !0 } _validatePosition(e, t, i) { const n = Math.floor("number" != typeof e || isNaN(e) ? 1 : e), o = Math.floor("number" != typeof t || isNaN(t) ? 1 : t), r = this._buffer.getLineCount(); if (n < 1) return new d.L(1, 1); if (n > r) return new d.L(r, this.getLineMaxColumn(r)); if (o <= 1) return new d.L(n, 1); const a = this.getLineMaxColumn(n); if (o >= a) return new d.L(n, a); if (1 === i) { const e = this._buffer.getLineCharCode(n, o - 2); if (s.ZG(e)) return new d.L(n, o - 1) } return new d.L(n, o) } validatePosition(e) { return this._assertNotDisposed(), e instanceof d.L && this._isValidPosition( e.lineNumber, e.column, 1) ? e : this._validatePosition(e.lineNumber, e.column, 1) } _isValidRange(e, t) { const i = e.startLineNumber, n = e.startColumn, o = e.endLineNumber, r = e.endColumn; if (!this._isValidPosition(i, n, 0)) return !1; if (!this._isValidPosition(o, r, 0)) return !1; if (1 === t) { const e = n > 1 ? this._buffer.getLineCharCode(i, n - 2) : 0, t = r > 1 && r <= this._buffer.getLineLength(o) ? this._buffer.getLineCharCode( o, r - 2) : 0, a = s.ZG(e), l = s.ZG(t); return !a && !l } return !0 } validateRange(e) { if (this._assertNotDisposed(), e instanceof c.e && !(e instanceof h.Y) && this._isValidRange(e, 1)) return e; const t = this._validatePosition(e.startLineNumber, e.startColumn, 0), i = this._validatePosition(e.endLineNumber, e.endColumn, 0), n = t.lineNumber, o = t.column, r = i.lineNumber, a = i.column; { const e = o > 1 ? this._buffer.getLineCharCode(n, o - 2) : 0, t = a > 1 && a <= this._buffer.getLineLength(r) ? this._buffer.getLineCharCode( r, a - 2) : 0, i = s.ZG(e), l = s.ZG(t); return i || l ? n === r && o === a ? new c.e(n, o - 1, r, a - 1) : i && l ? new c.e(n, o - 1, r, a + 1) : i ? new c.e(n, o - 1, r, a) : new c .e(n, o, r, a + 1) : new c.e(n, o, r, a) } } modifyPosition(e, t) { this._assertNotDisposed(); let i = this.getOffsetAt(e) + t; return this.getPositionAt(Math.min(this._buffer.getLength(), Math.max( 0, i))) } getFullModelRange() { this._assertNotDisposed(); const e = this.getLineCount(); return new c.e(1, 1, e, this.getLineMaxColumn(e)) } findMatchesLineByLine(e, t, i, n) { return this._buffer.findMatchesLineByLine(e, t, i, n) } findMatches(e, t, i, n, o, r, s = 999) { this._assertNotDisposed(); let a = null; null !== t && (Array.isArray(t) || (t = [t]), t.every((e => c.e.isIRange( e))) && (a = t.map((e => this.validateRange(e))))), null === a && ( a = [this.getFullModelRange()]), a = a.sort(((e, t) => e.startLineNumber - t.startLineNumber || e.startColumn - t.startColumn)); const l = []; let d; if (l.push(a.reduce(((e, t) => c.e.areIntersecting(e, t) ? e.plusRange( t) : (l.push(e), t)))), !i && e.indexOf("\n") < 0) { const t = new Q.bc(e, i, n, o).parseSearchRequest(); if (!t) return []; d = e => this.findMatchesLineByLine(e, t, r, s) } else d = t => Q.pM.findMatches(this, new Q.bc(e, i, n, o), t, r, s); return l.map(d).reduce(((e, t) => e.concat(t)), []) } findNextMatch(e, t, i, n, o, r) { this._assertNotDisposed(); const s = this.validatePosition(t); if (!i && e.indexOf("\n") < 0) { const t = new Q.bc(e, i, n, o).parseSearchRequest(); if (!t) return null; const a = this.getLineCount(); let l = new c.e(s.lineNumber, s.column, a, this.getLineMaxColumn(a)), d = this.findMatchesLineByLine(l, t, r, 1); return Q.pM.findNextMatch(this, new Q.bc(e, i, n, o), s, r), d.length > 0 ? d[0] : (l = new c.e(1, 1, s.lineNumber, this.getLineMaxColumn(s .lineNumber)), d = this.findMatchesLineByLine(l, t, r, 1), d.length > 0 ? d[0] : null) } return Q.pM.findNextMatch(this, new Q.bc(e, i, n, o), s, r) } findPreviousMatch(e, t, i, n, o, r) { this._assertNotDisposed(); const s = this.validatePosition(t); return Q.pM.findPreviousMatch(this, new Q.bc(e, i, n, o), s, r) } pushStackElement() { this._commandManager.pushStackElement() } popStackElement() { this._commandManager.popStackElement() } pushEOL(e) { if (("\n" === this.getEOL() ? 0 : 1) !== e) try { this._onDidChangeDecorations.beginDeferredEmit(), this._eventEmitter .beginDeferredEmit(), null === this._initialUndoRedoSnapshot && ( this._initialUndoRedoSnapshot = this._undoRedoService.createSnapshot( this.uri)), this._commandManager.pushEOL(e) } finally { this._eventEmitter.endDeferredEmit(), this._onDidChangeDecorations.endDeferredEmit() } } _validateEditOperation(e) { return e instanceof u.Qi ? e : new u.Qi(e.identifier || null, this.validateRange( e.range), e.text, e.forceMoveMarkers || !1, e.isAutoWhitespaceEdit || !1, e._isTracked || !1) } _validateEditOperations(e) { const t = []; for (let i = 0, n = e.length; i < n; i++) t[i] = this._validateEditOperation( e[i]); return t } pushEditOperations(e, t, i) { try { return this._onDidChangeDecorations.beginDeferredEmit(), this._eventEmitter .beginDeferredEmit(), this._pushEditOperations(e, this._validateEditOperations( t), i) } finally { this._eventEmitter.endDeferredEmit(), this._onDidChangeDecorations.endDeferredEmit() } } _pushEditOperations(e, t, i) { if (this._options.trimAutoWhitespace && this._trimAutoWhitespaceLines) { let i = t.map((e => ({ range: this.validateRange(e.range), text: e.text }))), n = !0; if (e) for (let t = 0, o = e.length; t < o; t++) { let o = e[t], r = !1; for (let e = 0, t = i.length; e < t; e++) { let t = i[e].range, n = t.startLineNumber > o.endLineNumber, s = o.startLineNumber > t.endLineNumber; if (!n && !s) { r = !0; break } } if (!r) { n = !1; break } } if (n) for (let e = 0, n = this._trimAutoWhitespaceLines.length; e < n; e++) { let n = this._trimAutoWhitespaceLines[e], o = this.getLineMaxColumn(n), r = !0; for (let e = 0, t = i.length; e < t; e++) { let t = i[e].range, s = i[e].text; if (!(n < t.startLineNumber || n > t.endLineNumber || n === t.startLineNumber && t.startColumn === o && t.isEmpty() && s && s.length > 0 && "\n" === s.charAt(0) || n === t.startLineNumber && 1 === t.startColumn && t.isEmpty() && s && s.length > 0 && "\n" === s.charAt(s.length - 1))) { r = !1; break } } if (r) { const e = new c.e(n, 1, n, o); t.push(new u.Qi(null, e, null, !1, !1, !1)) } } this._trimAutoWhitespaceLines = null } return null === this._initialUndoRedoSnapshot && (this._initialUndoRedoSnapshot = this._undoRedoService.createSnapshot(this.uri)), this._commandManager .pushEditOperation(e, t, i) } _applyUndo(e, t, i, n) { const o = e.map((e => { const t = this.getPositionAt(e.newPosition), i = this.getPositionAt(e.newEnd); return { range: new c.e(t.lineNumber, t.column, i.lineNumber, i.column), text: e.oldText } })); this._applyUndoRedoEdits(o, t, !0, !1, i, n) } _applyRedo(e, t, i, n) { const o = e.map((e => { const t = this.getPositionAt(e.oldPosition), i = this.getPositionAt(e.oldEnd); return { range: new c.e(t.lineNumber, t.column, i.lineNumber, i.column), text: e.newText } })); this._applyUndoRedoEdits(o, t, !1, !0, i, n) } _applyUndoRedoEdits(e, t, i, n, o, r) { try { this._onDidChangeDecorations.beginDeferredEmit(), this._eventEmitter .beginDeferredEmit(), this._isUndoing = i, this._isRedoing = n, this.applyEdits(e, !1), this.setEOL(t), this._overwriteAlternativeVersionId( o) } finally { this._isUndoing = !1, this._isRedoing = !1, this._eventEmitter.endDeferredEmit( r), this._onDidChangeDecorations.endDeferredEmit() } } applyEdits(e, t = !1) { try { this._onDidChangeDecorations.beginDeferredEmit(), this._eventEmitter .beginDeferredEmit(); const i = this._validateEditOperations(e); return this._doApplyEdits(i, t) } finally { this._eventEmitter.endDeferredEmit(), this._onDidChangeDecorations.endDeferredEmit() } } _doApplyEdits(e, t) { const i = this._buffer.getLineCount(), n = this._buffer.applyEdits(e, this._options.trimAutoWhitespace, t), o = this._buffer.getLineCount(), r = n.changes; if (this._trimAutoWhitespaceLines = n.trimAutoWhitespaceLineNumbers, 0 !== r.length) { for (let e = 0, t = r.length; e < t; e++) { const t = r[e], [i, n, o] = (0, ae.QZ)(t.text); this._tokens.acceptEdit(t.range, i, n), this._tokens2.acceptEdit(t.range, i, n, o, t.text.length > 0 ? t.text.charCodeAt(0) : 0), this._decorationsTree .acceptReplace(t.rangeOffset, t.rangeLength, t.text.length, t.forceMoveMarkers) } let e = []; this._increaseVersionId(); let t = i; for (let i = 0, n = r.length; i < n; i++) { const n = r[i], [s] = (0, ae.QZ)(n.text); this._onDidChangeDecorations.fire(); const a = n.range.startLineNumber, l = n.range.endLineNumber, c = l - a, h = s, u = Math.min(c, h), g = h - c, p = o - t - g + a, m = p, f = p + h, _ = this._decorationsTree.getInjectedTextInInterval(this, this.getOffsetAt( new d.L(m, 1)), this.getOffsetAt(new d.L(f, this.getLineMaxColumn( f))), 0), b = ue.gk.fromDecorations(_), v = new ge.H9(b); for (let t = u; t >= 0; t--) { const i = a + t, n = p + t; v.takeFromEndWhile((e => e.lineNumber > n)); const o = v.takeFromEndWhile((e => e.lineNumber === n)); e.push(new ue.rU(i, this.getLineContent(n), o)) } if (u < c) { const t = a + u; e.push(new ue.lN(t + 1, l)) } if (u < h) { const i = new ge.H9(b), n = a + u, r = h - u, s = o - t - r + n + 1; let l = [], d = []; for (let e = 0; e < r; e++) { let t = s + e; d[e] = this.getLineContent(t), i.takeWhile((e => e.lineNumber < t)), l[e] = i.takeWhile((e => e.lineNumber === t)) } e.push(new ue.Tx(n + 1, a + h, d, l)) } t += g } this._emitContentChangedEvent(new ue.dQ(e, this.getVersionId(), this ._isUndoing, this._isRedoing), { changes: r, eol: this._buffer.getEOL(), versionId: this.getVersionId(), isUndoing: this._isUndoing, isRedoing: this._isRedoing, isFlush: !1 }) } return null === n.reverseEdits ? void 0 : n.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(e) { if (null === e || 0 === e.size) return; const t = [...e].map((e => new ue.rU(e, this.getLineContent(e), this._getInjectedTextInLine( e)))); this._onDidChangeContentOrInjectedText.fire(new ue.D8(t)) } changeDecorations(e, t = 0) { this._assertNotDisposed(); try { return this._onDidChangeDecorations.beginDeferredEmit(), this._changeDecorations( t, e) } finally { this._onDidChangeDecorations.endDeferredEmit() } } _changeDecorations(e, t) { let i = { addDecoration: (t, i) => this._deltaDecorationsImpl(e, [], [{ range: t, options: i }])[0], changeDecoration: (e, t) => { this._changeDecorationImpl(e, t) }, changeDecorationOptions: (e, t) => { this._changeDecorationOptionsImpl(e, At(t)) }, removeDecoration: t => { this._deltaDecorationsImpl(e, [t], []) }, deltaDecorations: (t, i) => 0 === t.length && 0 === i.length ? [] : this ._deltaDecorationsImpl(e, t, i) }, o = null; try { o = t(i) } catch (e) { (0, n.dL)(e) } return i.addDecoration = vt, i.changeDecoration = vt, i.changeDecorationOptions = vt, i.removeDecoration = vt, i.deltaDecorations = vt, o } deltaDecorations(e, t, i = 0) { if (this._assertNotDisposed(), e || (e = []), 0 === e.length && 0 === t.length) return []; try { return this._onDidChangeDecorations.beginDeferredEmit(), this._deltaDecorationsImpl( i, e, t) } finally { this._onDidChangeDecorations.endDeferredEmit() } } _getTrackedRange(e) { return this.getDecorationRange(e) } _setTrackedRange(e, t, i) { const n = e ? this._decorations[e] : null; if (!n) return t ? this._deltaDecorationsImpl(0, [], [{ range: t, options: Mt[i] }])[0] : null; if (!t) return this._decorationsTree.delete(n), delete this._decorations[ n.id], null; const o = this._validateRangeRelaxedNoAllocations(t), r = this._buffer.getOffsetAt(o.startLineNumber, o.startColumn), s = this._buffer.getOffsetAt(o.endLineNumber, o.endColumn); return this._decorationsTree.delete(n), n.reset(this.getVersionId(), r, s, o), n.setOptions(Mt[i]), this._decorationsTree.insert(n), n.id } removeAllDecorationsWithOwnerId(e) { if (this._isDisposed) return; const t = this._decorationsTree.collectNodesFromOwner(e); for (let e = 0, i = t.length; e < i; e++) { const i = t[e]; this._decorationsTree.delete(i), delete this._decorations[i.id] } } getDecorationOptions(e) { const t = this._decorations[e]; return t ? t.options : null } getDecorationRange(e) { const t = this._decorations[e]; return t ? this._decorationsTree.getNodeRange(this, t) : null } getLineDecorations(e, t = 0, i = !1) { return e < 1 || e > this.getLineCount() ? [] : this.getLinesDecorations( e, e, t, i) } getLinesDecorations(e, t, i = 0, n = !1) { let o = this.getLineCount(), r = Math.min(o, Math.max(1, e)), s = Math.min(o, Math.max(1, t)), a = this.getLineMaxColumn(s); const l = new c.e(r, 1, s, a), d = this._getDecorationsInRange(l, i, n); return d.push(...this._decorationProvider.getDecorationsInRange(l, i, n)), d } getDecorationsInRange(e, t = 0, i = !1) { let n = this.validateRange(e); const o = this._getDecorationsInRange(n, t, i); return o.push(...this._decorationProvider.getDecorationsInRange(n, t, i)), o } getOverviewRulerDecorations(e = 0, t = !1) { return this._decorationsTree.getAll(this, e, t, !0) } getInjectedTextDecorations(e = 0) { return this._decorationsTree.getAllInjectedText(this, e) } _getInjectedTextInLine(e) { const t = this._buffer.getOffsetAt(e, 1), i = t + this._buffer.getLineLength(e), n = this._decorationsTree.getInjectedTextInInterval(this, t, i, 0); return ue.gk.fromDecorations(n).filter((t => t.lineNumber === e)) } getAllDecorations(e = 0, t = !1) { const i = this._decorationsTree.getAll(this, e, t, !1); return i.push(...this._decorationProvider.getAllDecorations(e, t)), i } _getDecorationsInRange(e, t, i) { const n = this._buffer.getOffsetAt(e.startLineNumber, e.startColumn), o = this._buffer.getOffsetAt(e.endLineNumber, e.endColumn); return this._decorationsTree.getAllInInterval(this, n, o, t, i) } getRangeAt(e, t) { return this._buffer.getRangeAt(e, t - e) } _changeDecorationImpl(e, t) { const i = this._decorations[e]; if (!i) return; if (i.options.after) { const t = this.getDecorationRange(e); this._onDidChangeDecorations.recordLineAffectedByInjectedText(t.endLineNumber) } if (i.options.before) { const t = this.getDecorationRange(e); this._onDidChangeDecorations.recordLineAffectedByInjectedText(t.startLineNumber) } const n = this._validateRangeRelaxedNoAllocations(t), o = this._buffer.getOffsetAt(n.startLineNumber, n.startColumn), r = this._buffer.getOffsetAt(n.endLineNumber, n.endColumn); this._decorationsTree.delete(i), i.reset(this.getVersionId(), o, r, n), this._decorationsTree.insert(i), this._onDidChangeDecorations.checkAffectedAndFire( i.options), i.options.after && this._onDidChangeDecorations.recordLineAffectedByInjectedText( n.endLineNumber), i.options.before && this._onDidChangeDecorations.recordLineAffectedByInjectedText( n.startLineNumber) } _changeDecorationOptionsImpl(e, t) { const i = this._decorations[e]; if (!i) return; const n = !(!i.options.overviewRuler || !i.options.overviewRuler.color), o = !(!t.overviewRuler || !t.overviewRuler.color); if (this._onDidChangeDecorations.checkAffectedAndFire(i.options), this._onDidChangeDecorations.checkAffectedAndFire(t), i.options.after || t.after) { const e = this._decorationsTree.getNodeRange(this, i); this._onDidChangeDecorations.recordLineAffectedByInjectedText(e.endLineNumber) } if (i.options.before || t.before) { const e = this._decorationsTree.getNodeRange(this, i); this._onDidChangeDecorations.recordLineAffectedByInjectedText(e.startLineNumber) } n !== o ? (this._decorationsTree.delete(i), i.setOptions(t), this._decorationsTree .insert(i)) : i.setOptions(t) } _deltaDecorationsImpl(e, t, i) { const n = this.getVersionId(), o = t.length; let r = 0; const s = i.length; let a = 0, l = new Array(s); for (; r < o || a < s;) { let d = null; if (r < o) { do { d = this._decorations[t[r++]] } while (!d && r < o); if (d) { if (d.options.after) { const e = this._decorationsTree.getNodeRange(this, d); this._onDidChangeDecorations.recordLineAffectedByInjectedText(e.endLineNumber) } if (d.options.before) { const e = this._decorationsTree.getNodeRange(this, d); this._onDidChangeDecorations.recordLineAffectedByInjectedText(e.startLineNumber) } this._decorationsTree.delete(d), this._onDidChangeDecorations.checkAffectedAndFire( d.options) } } if (a < s) { if (!d) { const e = ++this._lastDecorationId, t = `${this._instanceId};${e}`; d = new k(t, 0, 0), this._decorations[t] = d } const t = i[a], o = this._validateRangeRelaxedNoAllocations(t.range), r = At(t.options), s = this._buffer.getOffsetAt(o.startLineNumber, o.startColumn), c = this._buffer.getOffsetAt(o.endLineNumber, o.endColumn); d.ownerId = e, d.reset(n, s, c, o), d.setOptions(r), d.options.after && this._onDidChangeDecorations.recordLineAffectedByInjectedText(o.endLineNumber), d.options.before && this._onDidChangeDecorations.recordLineAffectedByInjectedText( o.startLineNumber), this._onDidChangeDecorations.checkAffectedAndFire( r), this._decorationsTree.insert(d), l[a] = d.id, a++ } else d && delete this._decorations[d.id] } return l } setTokens(e, t = !1) { if (0 !== e.length) { let t = []; for (let i = 0, n = e.length; i < n; i++) { const n = e[i]; let o = 0, r = 0, s = !1; for (let e = 0, t = n.tokens.length; e < t; e++) { const t = n.startLineNumber + e; s ? (this._tokens.setTokens(this._languageIdentifier.id, t - 1, this._buffer.getLineLength(t), n.tokens[e], !1), r = t) : this._tokens .setTokens(this._languageIdentifier.id, t - 1, this._buffer.getLineLength( t), n.tokens[e], !0) && (s = !0, o = t, r = t) } s && t.push({ fromLineNumber: o, toLineNumber: r }) } t.length > 0 && this._emitModelTokensChangedEvent({ tokenizationSupportChanged: !1, semanticTokensApplied: !1, ranges: t }) } this.setBackgroundTokenizationState(t ? 2 : 1) } setSemanticTokens(e, t) { this._tokens2.set(e, t), this._emitModelTokensChangedEvent({ tokenizationSupportChanged: !1, semanticTokensApplied: null !== e, ranges: [{ fromLineNumber: 1, toLineNumber: this.getLineCount() }] }) } hasCompleteSemanticTokens() { return this._tokens2.isComplete() } hasSomeSemanticTokens() { return !this._tokens2.isEmpty() } setPartialSemanticTokens(e, t) { if (this.hasCompleteSemanticTokens()) return; const i = this._tokens2.setPartial(e, t); this._emitModelTokensChangedEvent({ tokenizationSupportChanged: !1, semanticTokensApplied: !0, ranges: [{ fromLineNumber: i.startLineNumber, toLineNumber: i.endLineNumber }] }) } tokenizeViewport(e, t) { e = Math.max(1, e), t = Math.min(this._buffer.getLineCount(), t), this._tokenization.tokenizeViewport(e, t) } clearTokens() { this._tokens.flush(), this._emitModelTokensChangedEvent({ tokenizationSupportChanged: !0, semanticTokensApplied: !1, ranges: [{ fromLineNumber: 1, toLineNumber: this._buffer.getLineCount() }] }) } _emitModelTokensChangedEvent(e) { this._isDisposing || this._onDidChangeTokens.fire(e) } resetTokenization() { this._tokenization.reset() } forceTokenization(e) { if (e < 1 || e > this.getLineCount()) throw new Error( "Illegal value for lineNumber"); this._tokenization.forceTokenization(e) } isCheapToTokenize(e) { return this._tokenization.isCheapToTokenize(e) } tokenizeIfCheap(e) { this.isCheapToTokenize(e) && this.forceTokenization(e) } getLineTokens(e) { if (e < 1 || e > this.getLineCount()) throw new Error( "Illegal value for lineNumber"); return this._getLineTokens(e) } _getLineTokens(e) { const t = this.getLineContent(e), i = this._tokens.getTokens(this._languageIdentifier.id, e - 1, t); return this._tokens2.addSemanticTokens(e, i) } getLanguageIdentifier() { return this._languageIdentifier } getModeId() { return this._languageIdentifier.language } setMode(e) { if (this._languageIdentifier.id === e.id) return; let t = { oldLanguage: this._languageIdentifier.language, newLanguage: e.language }; this._languageIdentifier = e, this._onDidChangeLanguage.fire(t), this ._onDidChangeLanguageConfiguration.fire({}) } getLanguageIdAtPosition(e, t) { const i = this.validatePosition(new d.L(e, t)), n = this.getLineTokens(i.lineNumber); return n.getLanguageId(n.findTokenIndexAtOffset(i.column - 1)) } getWordAtPosition(e) { this._assertNotDisposed(); const t = this.validatePosition(e), i = this.getLineContent(t.lineNumber), n = this._getLineTokens(t.lineNumber), o = n.findTokenIndexAtOffset(t.column - 1), [r, s] = yt._findLanguageBoundaries(n, o), a = (0, ye.t2)(t.column, Se.zu.getWordDefinition(n.getLanguageId(o)), i.substring(r, s), r); if (a && a.startColumn <= e.column && e.column <= a.endColumn) return a; if (o > 0 && r === t.column - 1) { const [r, s] = yt._findLanguageBoundaries(n, o - 1), a = (0, ye.t2)( t.column, Se.zu.getWordDefinition(n.getLanguageId(o - 1)), i.substring( r, s), r); if (a && a.startColumn <= e.column && e.column <= a.endColumn) return a } return null } static _findLanguageBoundaries(e, t) { const i = e.getLanguageId(t); let n = 0; for (let o = t; o >= 0 && e.getLanguageId(o) === i; o--) n = e.getStartOffset( o); let o = e.getLineContent().length; for (let n = t, r = e.getCount(); n < r && e.getLanguageId(n) === i; n++) o = e.getEndOffset(n); return [n, o] } getWordUntilPosition(e) { const t = this.getWordAtPosition(e); return t ? { word: t.word.substr(0, e.column - t.startColumn), startColumn: t.startColumn, endColumn: e.column } : { word: "", startColumn: e.column, endColumn: e.column } } findMatchingBracketUp(e, t) { let i = e.toLowerCase(), n = this.validatePosition(t), o = this._getLineTokens(n.lineNumber), r = o.getLanguageId(o.findTokenIndexAtOffset(n.column - 1)), s = Se.zu.getBracketsSupport(r); if (!s) return null; let a = s.textIsBracket[i]; return a ? Ct(this._findMatchingBracketUp(a, n, null)) : null } matchBracket(e) { return this._matchBracket(this.validatePosition(e)) } _establishBracketSearchOffsets(e, t, i, n) { const o = t.getCount(), r = t.getLanguageId(n); let s = Math.max(0, e.column - 1 - i.maxBracketLength); for (let e = n - 1; e >= 0; e--) { const i = t.getEndOffset(e); if (i <= s) break; if ((0, xe.Bu)(t.getStandardTokenType(e)) || t.getLanguageId(e) !== r) { s = i; break } } let a = Math.min(t.getLineContent().length, e.column - 1 + i.maxBracketLength); for (let e = n + 1; e < o; e++) { const i = t.getStartOffset(e); if (i >= a) break; if ((0, xe.Bu)(t.getStandardTokenType(e)) || t.getLanguageId(e) !== r) { a = i; break } } return { searchStartOffset: s, searchEndOffset: a } } _matchBracket(e) { const t = e.lineNumber, i = this._getLineTokens(t), n = this._buffer.getLineContent(t), o = i.findTokenIndexAtOffset(e.column - 1); if (o < 0) return null; const r = Se.zu.getBracketsSupport(i.getLanguageId(o)); if (r && !(0, xe.Bu)(i.getStandardTokenType(o))) { let { searchStartOffset: s, searchEndOffset: a } = this._establishBracketSearchOffsets(e, i, r, o), l = null; for (;;) { const i = ke.Vr.findNextBracketInRange(r.forwardRegex, t, n, s, a); if (!i) break; if (i.startColumn <= e.column && e.column <= i.endColumn) { const e = n.substring(i.startColumn - 1, i.endColumn - 1).toLowerCase(), t = this._matchFoundBracket(i, r.textIsBracket[e], r.textIsOpenBracket[ e], null); if (t) { if (t instanceof wt) return null; l = t } } s = i.endColumn - 1 } if (l) return l } if (o > 0 && i.getStartOffset(o) === e.column - 1) { const r = o - 1, s = Se.zu.getBracketsSupport(i.getLanguageId(r)); if (s && !(0, xe.Bu)(i.getStandardTokenType(r))) { let { searchStartOffset: o, searchEndOffset: a } = this._establishBracketSearchOffsets(e, i, s, r); const l = ke.Vr.findPrevBracketInRange(s.reversedRegex, t, n, o, a); if (l && l.startColumn <= e.column && e.column <= l.endColumn) { const e = n.substring(l.startColumn - 1, l.endColumn - 1).toLowerCase(), t = this._matchFoundBracket(l, s.textIsBracket[e], s.textIsOpenBracket[ e], null); if (t) return t instanceof wt ? null : t } } } return null } _matchFoundBracket(e, t, i, n) { if (!t) return null; const o = i ? this._findMatchingBracketDown(t, e.getEndPosition(), n) : this._findMatchingBracketUp(t, e.getStartPosition(), n); return o ? o instanceof wt ? o : [e, o] : null } _findMatchingBracketUp(e, t, i) { const n = e.languageIdentifier.id, o = e.reversedRegex; let r = -1, s = 0; const a = (t, n, a, l) => { for (;;) { if (i && ++s % 100 == 0 && !i()) return wt.INSTANCE; const d = ke.Vr.findPrevBracketInRange(o, t, n, a, l); if (!d) break; const c = n.substring(d.startColumn - 1, d.endColumn - 1).toLowerCase(); if (e.isOpen(c) ? r++ : e.isClose(c) && r--, 0 === r) return d; l = d.startColumn - 1 } return null }; for (let e = t.lineNumber; e >= 1; e--) { const i = this._getLineTokens(e), o = i.getCount(), r = this._buffer.getLineContent(e); let s = o - 1, l = r.length, d = r.length; e === t.lineNumber && (s = i.findTokenIndexAtOffset(t.column - 1), l = t.column - 1, d = t.column - 1); let c = !0; for (; s >= 0; s--) { const t = i.getLanguageId(s) === n && !(0, xe.Bu)(i.getStandardTokenType( s)); if (t) c ? l = i.getStartOffset(s) : (l = i.getStartOffset(s), d = i.getEndOffset(s)); else if (c && l !== d) { const t = a(e, r, l, d); if (t) return t } c = t } if (c && l !== d) { const t = a(e, r, l, d); if (t) return t } } return null } _findMatchingBracketDown(e, t, i) { const n = e.languageIdentifier.id, o = e.forwardRegex; let r = 1, s = 0; const a = (t, n, a, l) => { for (;;) { if (i && ++s % 100 == 0 && !i()) return wt.INSTANCE; const d = ke.Vr.findNextBracketInRange(o, t, n, a, l); if (!d) break; const c = n.substring(d.startColumn - 1, d.endColumn - 1).toLowerCase(); if (e.isOpen(c) ? r++ : e.isClose(c) && r--, 0 === r) return d; a = d.endColumn - 1 } return null }, l = this.getLineCount(); for (let e = t.lineNumber; e <= l; e++) { const i = this._getLineTokens(e), o = i.getCount(), r = this._buffer.getLineContent(e); let s = 0, l = 0, d = 0; e === t.lineNumber && (s = i.findTokenIndexAtOffset(t.column - 1), l = t.column - 1, d = t.column - 1); let c = !0; for (; s < o; s++) { const t = i.getLanguageId(s) === n && !(0, xe.Bu)(i.getStandardTokenType( s)); if (t) c || (l = i.getStartOffset(s)), d = i.getEndOffset(s); else if (c && l !== d) { const t = a(e, r, l, d); if (t) return t } c = t } if (c && l !== d) { const t = a(e, r, l, d); if (t) return t } } return null } findPrevBracket(e) { const t = this.validatePosition(e); let i = -1, n = null; for (let e = t.lineNumber; e >= 1; e--) { const o = this._getLineTokens(e), r = o.getCount(), s = this._buffer.getLineContent(e); let a = r - 1, l = s.length, d = s.length; if (e === t.lineNumber) { a = o.findTokenIndexAtOffset(t.column - 1), l = t.column - 1, d = t .column - 1; const e = o.getLanguageId(a); i !== e && (i = e, n = Se.zu.getBracketsSupport(i)) } let c = !0; for (; a >= 0; a--) { const t = o.getLanguageId(a); if (i !== t) { if (n && c && l !== d) { const t = ke.Vr.findPrevBracketInRange(n.reversedRegex, e, s, l, d); if (t) return this._toFoundBracket(n, t); c = !1 } i = t, n = Se.zu.getBracketsSupport(i) } const r = !!n && !(0, xe.Bu)(o.getStandardTokenType(a)); if (r) c ? l = o.getStartOffset(a) : (l = o.getStartOffset(a), d = o.getEndOffset(a)); else if (n && c && l !== d) { const t = ke.Vr.findPrevBracketInRange(n.reversedRegex, e, s, l, d); if (t) return this._toFoundBracket(n, t) } c = r } if (n && c && l !== d) { const t = ke.Vr.findPrevBracketInRange(n.reversedRegex, e, s, l, d); if (t) return this._toFoundBracket(n, t) } } return null } findNextBracket(e) { const t = this.validatePosition(e), i = this.getLineCount(); let n = -1, o = null; for (let e = t.lineNumber; e <= i; e++) { const i = this._getLineTokens(e), r = i.getCount(), s = this._buffer.getLineContent(e); let a = 0, l = 0, d = 0; if (e === t.lineNumber) { a = i.findTokenIndexAtOffset(t.column - 1), l = t.column - 1, d = t .column - 1; const e = i.getLanguageId(a); n !== e && (n = e, o = Se.zu.getBracketsSupport(n)) } let c = !0; for (; a < r; a++) { const t = i.getLanguageId(a); if (n !== t) { if (o && c && l !== d) { const t = ke.Vr.findNextBracketInRange(o.forwardRegex, e, s, l, d); if (t) return this._toFoundBracket(o, t); c = !1 } n = t, o = Se.zu.getBracketsSupport(n) } const r = !!o && !(0, xe.Bu)(i.getStandardTokenType(a)); if (r) c || (l = i.getStartOffset(a)), d = i.getEndOffset(a); else if (o && c && l !== d) { const t = ke.Vr.findNextBracketInRange(o.forwardRegex, e, s, l, d); if (t) return this._toFoundBracket(o, t) } c = r } if (o && c && l !== d) { const t = ke.Vr.findNextBracketInRange(o.forwardRegex, e, s, l, d); if (t) return this._toFoundBracket(o, t) } } return null } findEnclosingBrackets(e, t) { let i; if (void 0 === t) i = null; else { const e = Date.now(); i = () => Date.now() - e <= t } const n = this.validatePosition(e), o = this.getLineCount(), r = new Map; let s = []; const a = (e, t) => { if (!r.has(e)) { let i = []; for (let e = 0, n = t ? t.brackets.length : 0; e < n; e++) i[e] = 0; r.set(e, i) } s = r.get(e) }; let l = 0; const d = (e, t, n, o, r) => { for (;;) { if (i && ++l % 100 == 0 && !i()) return wt.INSTANCE; const a = ke.Vr.findNextBracketInRange(e.forwardRegex, t, n, o, r); if (!a) break; const d = n.substring(a.startColumn - 1, a.endColumn - 1).toLowerCase(), c = e.textIsBracket[d]; if (c && (c.isOpen(d) ? s[c.index]++ : c.isClose(d) && s[c.index]--, - 1 === s[c.index])) return this._matchFoundBracket(a, c, !1, i); o = a.endColumn - 1 } return null }; let c = -1, h = null; for (let e = n.lineNumber; e <= o; e++) { const t = this._getLineTokens(e), i = t.getCount(), o = this._buffer.getLineContent(e); let r = 0, s = 0, l = 0; if (e === n.lineNumber) { r = t.findTokenIndexAtOffset(n.column - 1), s = n.column - 1, l = n .column - 1; const e = t.getLanguageId(r); c !== e && (c = e, h = Se.zu.getBracketsSupport(c), a(c, h)) } let u = !0; for (; r < i; r++) { const i = t.getLanguageId(r); if (c !== i) { if (h && u && s !== l) { const t = d(h, e, o, s, l); if (t) return Ct(t); u = !1 } c = i, h = Se.zu.getBracketsSupport(c), a(c, h) } const n = !!h && !(0, xe.Bu)(t.getStandardTokenType(r)); if (n) u || (s = t.getStartOffset(r)), l = t.getEndOffset(r); else if (h && u && s !== l) { const t = d(h, e, o, s, l); if (t) return Ct(t) } u = n } if (h && u && s !== l) { const t = d(h, e, o, s, l); if (t) return Ct(t) } } return null } _toFoundBracket(e, t) { if (!t) return null; let i = this.getValueInRange(t); i = i.toLowerCase(); let n = e.textIsBracket[i]; return n ? { range: t, open: n.open, close: n.close, isOpen: e.textIsOpenBracket[i] } : null } static computeIndentLevel(e, t) { let i = 0, n = 0, o = e.length; for (; n < o;) { let o = e.charCodeAt(n); if (32 === o) i++; else { if (9 !== o) break; i = i - i % t + t } n++ } return n === o ? -1 : i } _computeIndentLevel(e) { return yt.computeIndentLevel(this._buffer.getLineContent(e + 1), this ._options.tabSize) } getActiveIndentGuide(e, t, i) { this._assertNotDisposed(); const n = this.getLineCount(); if (e < 1 || e > n) throw new Error("Illegal value for lineNumber"); const o = Se.zu.getFoldingRules(this._languageIdentifier.id), r = Boolean(o && o.offSide); let s = -2, a = -1, l = -2, d = -1; const c = e => { if (-1 !== s && (-2 === s || s > e - 1)) { s = -1, a = -1; for (let t = e - 2; t >= 0; t--) { let e = this._computeIndentLevel(t); if (e >= 0) { s = t, a = e; break } } } if (-2 === l) { l = -1, d = -1; for (let t = e; t < n; t++) { let e = this._computeIndentLevel(t); if (e >= 0) { l = t, d = e; break } } } }; let h = -2, u = -1, g = -2, p = -1; const m = e => { if (-2 === h) { h = -1, u = -1; for (let t = e - 2; t >= 0; t--) { let e = this._computeIndentLevel(t); if (e >= 0) { h = t, u = e; break } } } if (-1 !== g && (-2 === g || g < e - 1)) { g = -1, p = -1; for (let t = e; t < n; t++) { let e = this._computeIndentLevel(t); if (e >= 0) { g = t, p = e; break } } } }; let f = 0, _ = !0, b = 0, v = !0, w = 0, C = 0; for (let o = 0; _ || v; o++) { const s = e - o, g = e + o; o > 1 && (s < 1 || s < t) && (_ = !1), o > 1 && (g > n || g > i) && (v = !1), o > 5e4 && (_ = !1, v = !1); let y = -1; if (_) { const e = this._computeIndentLevel(s - 1); e >= 0 ? (l = s - 1, d = e, y = Math.ceil(e / this._options.indentSize)) : (c(s), y = this._getIndentLevelForWhitespaceLine(r, a, d)) } let S = -1; if (v) { const e = this._computeIndentLevel(g - 1); e >= 0 ? (h = g - 1, u = e, S = Math.ceil(e / this._options.indentSize)) : (m(g), S = this._getIndentLevelForWhitespaceLine(r, u, p)) } if (0 !== o) { if (1 === o) { if (g <= n && S >= 0 && C + 1 === S) { _ = !1, f = g, b = g, w = S; continue } if (s >= 1 && y >= 0 && y - 1 === C) { v = !1, f = s, b = s, w = y; continue } if (f = e, b = e, w = C, 0 === w) return { startLineNumber: f, endLineNumber: b, indent: w } } _ && (y >= w ? f = s : _ = !1), v && (S >= w ? b = g : v = !1) } else C = y } return { startLineNumber: f, endLineNumber: b, indent: w } } getLinesIndentGuides(e, t) { this._assertNotDisposed(); const i = this.getLineCount(); if (e < 1 || e > i) throw new Error( "Illegal value for startLineNumber"); if (t < 1 || t > i) throw new Error("Illegal value for endLineNumber"); const n = Se.zu.getFoldingRules(this._languageIdentifier.id), o = Boolean(n && n.offSide); let r = new Array(t - e + 1), s = -2, a = -1, l = -2, d = -1; for (let n = e; n <= t; n++) { let t = n - e; const c = this._computeIndentLevel(n - 1); if (c >= 0) s = n - 1, a = c, r[t] = Math.ceil(c / this._options.indentSize); else { if (-2 === s) { s = -1, a = -1; for (let e = n - 2; e >= 0; e--) { let t = this._computeIndentLevel(e); if (t >= 0) { s = e, a = t; break } } } if (-1 !== l && (-2 === l || l < n - 1)) { l = -1, d = -1; for (let e = n; e < i; e++) { let t = this._computeIndentLevel(e); if (t >= 0) { l = e, d = t; break } } } r[t] = this._getIndentLevelForWhitespaceLine(o, a, d) } } return r } _getIndentLevelForWhitespaceLine(e, t, i) { return -1 === t || -1 === i ? 0 : t < i ? 1 + Math.floor(t / this._options .indentSize) : t === i || e ? Math.ceil(i / this._options.indentSize) : 1 + Math.floor(i / this._options.indentSize) } normalizePosition(e, t) { return e } getLineIndentColumn(e) { return function(e) { let t = 0; for (const i of e) { if (" " !== i && "\t" !== i) break; t++ } return t }(this.getLineContent(e)) + 1 } } function St(e) { return !(!e.options.overviewRuler || !e.options.overviewRuler.color) } function xt(e) { return !!e.options.after || !!e.options.before } yt.MODEL_SYNC_LIMIT = 52428800, yt.LARGE_FILE_SIZE_THRESHOLD = 20971520, yt.LARGE_FILE_LINE_COUNT_THRESHOLD = 3e5, yt.DEFAULT_CREATION_OPTIONS = { isForSimpleWidget: !1, tabSize: l.DB.tabSize, indentSize: l.DB.indentSize, insertSpaces: l.DB.insertSpaces, detectIndentation: !1, defaultEOL: 1, trimAutoWhitespace: l.DB.trimAutoWhitespace, largeFileOptimizations: l.DB.largeFileOptimizations, bracketPairColorizationOptions: l.DB.bracketPairColorizationOptions }; class kt { constructor() { this._decorationsTree0 = new N, this._decorationsTree1 = new N, this._injectedTextDecorationsTree = new N } ensureAllNodesHaveRanges(e) { this.getAll(e, 0, !1, !1) } _ensureNodesHaveRanges(e, t) { for (const i of t) null === i.range && (i.range = e.getRangeAt(i.cachedAbsoluteStart, i.cachedAbsoluteEnd)); return t } getAllInInterval(e, t, i, n, o) { const r = e.getVersionId(), s = this._intervalSearch(t, i, n, o, r); return this._ensureNodesHaveRanges(e, s) } _intervalSearch(e, t, i, n, o) { const r = this._decorationsTree0.intervalSearch(e, t, i, n, o), s = this._decorationsTree1.intervalSearch(e, t, i, n, o), a = this._injectedTextDecorationsTree.intervalSearch(e, t, i, n, o); return r.concat(s).concat(a) } getInjectedTextInInterval(e, t, i, n) { const o = e.getVersionId(), r = this._injectedTextDecorationsTree.intervalSearch(t, i, n, !1, o); return this._ensureNodesHaveRanges(e, r) } getAllInjectedText(e, t) { const i = e.getVersionId(), n = this._injectedTextDecorationsTree.search(t, !1, i); return this._ensureNodesHaveRanges(e, n) } getAll(e, t, i, n) { const o = e.getVersionId(), r = this._search(t, i, n, o); return this._ensureNodesHaveRanges(e, r) } _search(e, t, i, n) { if (i) return this._decorationsTree1.search(e, t, n); { const i = this._decorationsTree0.search(e, t, n), o = this._decorationsTree1.search(e, t, n), r = this._injectedTextDecorationsTree.search(e, t, n); return i.concat(o).concat(r) } } collectNodesFromOwner(e) { const t = this._decorationsTree0.collectNodesFromOwner(e), i = this._decorationsTree1.collectNodesFromOwner(e), n = this._injectedTextDecorationsTree.collectNodesFromOwner(e); return t.concat(i).concat(n) } collectNodesPostOrder() { const e = this._decorationsTree0.collectNodesPostOrder(), t = this._decorationsTree1.collectNodesPostOrder(), i = this._injectedTextDecorationsTree.collectNodesPostOrder(); return e.concat(t).concat(i) } insert(e) { xt(e) ? this._injectedTextDecorationsTree.insert(e) : St(e) ? this._decorationsTree1 .insert(e) : this._decorationsTree0.insert(e) } delete(e) { xt(e) ? this._injectedTextDecorationsTree.delete(e) : St(e) ? this._decorationsTree1 .delete(e) : this._decorationsTree0.delete(e) } getNodeRange(e, t) { const i = e.getVersionId(); return t.cachedVersionId !== i && this._resolveNode(t, i), null === t.range && (t.range = e.getRangeAt(t.cachedAbsoluteStart, t.cachedAbsoluteEnd)), t.range } _resolveNode(e, t) { xt(e) ? this._injectedTextDecorationsTree.resolveNode(e, t) : St(e) ? this._decorationsTree1.resolveNode(e, t) : this._decorationsTree0.resolveNode( e, t) } acceptReplace(e, t, i, n) { this._decorationsTree0.acceptReplace(e, t, i, n), this._decorationsTree1 .acceptReplace(e, t, i, n), this._injectedTextDecorationsTree.acceptReplace( e, t, i, n) } } function Lt(e) { return e.replace(/[^a-z0-9\-_]/gi, " ") } class Nt { constructor(e) { this.color = e.color || "", this.darkColor = e.darkColor || "" } } class Dt extends Nt { constructor(e) { super(e), this._resolvedColor = null, this.position = "number" == typeof e.position ? e.position : u.sh.Center } getColor(e) { return this._resolvedColor || ("light" !== e.type && this.darkColor ? this._resolvedColor = this._resolveColor(this.darkColor, e) : this._resolvedColor = this._resolveColor(this.color, e)), this._resolvedColor } invalidateCachedColor() { this._resolvedColor = null } _resolveColor(e, t) { if ("string" == typeof e) return e; let i = e ? t.getColor(e.id) : null; return i ? i.toString() : "" } } class Et extends Nt { constructor(e) { super(e), this.position = e.position } getColor(e) { return this._resolvedColor || ("light" !== e.type && this.darkColor ? this._resolvedColor = this._resolveColor(this.darkColor, e) : this._resolvedColor = this._resolveColor(this.color, e)), this._resolvedColor } invalidateCachedColor() { this._resolvedColor = void 0 } _resolveColor(e, t) { return "string" == typeof e ? Le.Il.fromHex(e) : t.getColor(e.id) } } class It { constructor(e) { this.content = e.content || "", this.inlineClassName = e.inlineClassName || null, this.inlineClassNameAffectsLetterSpacing = e.inlineClassNameAffectsLetterSpacing || !1 } static from(e) { return e instanceof It ? e : new It(e) } } class Tt { constructor(e) { this.description = e.description, this.stickiness = e.stickiness || 0, this.zIndex = e.zIndex || 0, this.className = e.className ? Lt(e.className) : null, this.hoverMessage = e.hoverMessage || null, this.glyphMarginHoverMessage = e.glyphMarginHoverMessage || null, this.isWholeLine = e.isWholeLine || !1, this.showIfCollapsed = e.showIfCollapsed || !1, this.collapseOnReplaceEdit = e.collapseOnReplaceEdit || !1, this.overviewRuler = e.overviewRuler ? new Dt(e.overviewRuler) : null, this.minimap = e.minimap ? new Et(e.minimap) : null, this.glyphMarginClassName = e.glyphMarginClassName ? Lt(e.glyphMarginClassName) : null, this.linesDecorationsClassName = e.linesDecorationsClassName ? Lt(e.linesDecorationsClassName) : null, this.firstLineDecorationClassName = e.firstLineDecorationClassName ? Lt(e.firstLineDecorationClassName) : null, this.marginClassName = e.marginClassName ? Lt(e.marginClassName) : null, this.inlineClassName = e.inlineClassName ? Lt(e.inlineClassName) : null, this.inlineClassNameAffectsLetterSpacing = e.inlineClassNameAffectsLetterSpacing || !1, this.beforeContentClassName = e.beforeContentClassName ? Lt(e.beforeContentClassName) : null, this.afterContentClassName = e.afterContentClassName ? Lt(e.afterContentClassName) : null, this.after = e.after ? It.from(e.after) : null, this.before = e .before ? It.from(e.before) : null } static register(e) { return new Tt(e) } static createDynamic(e) { return new Tt(e) } } Tt.EMPTY = Tt.register({ description: "empty" }); const Mt = [Tt.register({ description: "tracked-range-always-grows-when-typing-at-edges", stickiness: 0 }), Tt.register({ description: "tracked-range-never-grows-when-typing-at-edges", stickiness: 1 }), Tt.register({ description: "tracked-range-grows-only-when-typing-before", stickiness: 2 }), Tt.register({ description: "tracked-range-grows-only-when-typing-after", stickiness: 3 })]; function At(e) { return e instanceof Tt ? e : Tt.createDynamic(e) } class Rt extends r.JT { constructor(e) { super(), this.handleBeforeFire = e, this._actual = this._register(new o .Q5), this.event = this._actual.event, this._affectedInjectedTextLines = null, this._deferredCnt = 0, this._shouldFire = !1, this._affectsMinimap = ! 1, this._affectsOverviewRuler = !1 } beginDeferredEmit() { this._deferredCnt++ } endDeferredEmit() { var e; if (this._deferredCnt--, 0 === this._deferredCnt) { if (this._shouldFire) { this.handleBeforeFire(this._affectedInjectedTextLines); const e = { affectsMinimap: this._affectsMinimap, affectsOverviewRuler: this._affectsOverviewRuler }; this._shouldFire = !1, this._affectsMinimap = !1, this._affectsOverviewRuler = ! 1, this._actual.fire(e) } null === (e = this._affectedInjectedTextLines) || void 0 === e || e.clear(), this._affectedInjectedTextLines = null } } recordLineAffectedByInjectedText(e) { this._affectedInjectedTextLines || (this._affectedInjectedTextLines = new Set), this._affectedInjectedTextLines.add(e) } checkAffectedAndFire(e) { this._affectsMinimap || (this._affectsMinimap = !(!e.minimap || !e.minimap .position)), this._affectsOverviewRuler || (this._affectsOverviewRuler = ! (!e.overviewRuler || !e.overviewRuler.color)), this._shouldFire = ! 0 } fire() { this._affectsMinimap = !0, this._affectsOverviewRuler = !0, this._shouldFire = ! 0 } } class Ot extends r.JT { constructor() { super(), this._fastEmitter = this._register(new o.Q5), this.fastEvent = this._fastEmitter.event, this._slowEmitter = this._register(new o.Q5), this.slowEvent = this._slowEmitter.event, this._deferredCnt = 0, this._deferredEvent = null } beginDeferredEmit() { this._deferredCnt++ } endDeferredEmit(e = null) { if (this._deferredCnt--, 0 === this._deferredCnt && null !== this._deferredEvent) { this._deferredEvent.rawContentChangedEvent.resultingSelection = e; const t = this._deferredEvent; this._deferredEvent = null, this._fastEmitter.fire(t), this._slowEmitter .fire(t) } } fire(e) { this._deferredCnt > 0 ? this._deferredEvent ? this._deferredEvent = this._deferredEvent.merge(e) : this._deferredEvent = e : (this._fastEmitter .fire(e), this._slowEmitter.fire(e)) } } }, 3256: (e, t, i) => { "use strict"; i.d(t, { Jx: () => n, gk: () => o, rU: () => r, lN: () => s, Tx: () => a, CZ: () => l, dQ: () => d, D8: () => c, fV: () => h }); class n { constructor() { this.changeType = 1 } } class o { constructor(e, t, i, n, o) { this.ownerId = e, this.lineNumber = t, this.column = i, this.options = n, this.order = o } static applyInjectedText(e, t) { if (!t || 0 === t.length) return e; let i = "", n = 0; for (const o of t) i += e.substring(n, o.column - 1), n = o.column - 1, i += o.options.content; return i += e.substring(n), i } static fromDecorations(e) { const t = []; for (const i of e) i.options.before && i.options.before.content.length > 0 && t.push(new o(i.ownerId, i.range.startLineNumber, i.range.startColumn, i.options.before, 0)), i.options.after && i.options.after.content.length > 0 && t.push(new o(i.ownerId, i.range.endLineNumber, i.range.endColumn, i.options.after, 1)); return t.sort(((e, t) => e.lineNumber === t.lineNumber ? e.column === t.column ? e.order - t.order : e.column - t.column : e.lineNumber - t.lineNumber)), t } } class r { constructor(e, t, i) { this.changeType = 2, this.lineNumber = e, this.detail = t, this.injectedText = i } } class s { constructor(e, t) { this.changeType = 3, this.fromLineNumber = e, this.toLineNumber = t } } class a { constructor(e, t, i, n) { this.changeType = 4, this.injectedTexts = n, this.fromLineNumber = e, this.toLineNumber = t, this.detail = i } } class l { constructor() { this.changeType = 5 } } class d { constructor(e, t, i, n) { this.changes = e, this.versionId = t, this.isUndoing = i, this.isRedoing = n, this.resultingSelection = null } containsEvent(e) { for (let t = 0, i = this.changes.length; t < i; t++) if (this.changes[t].changeType === e) return !0; return !1 } static merge(e, t) { const i = [].concat(e.changes).concat(t.changes), n = t.versionId, o = e.isUndoing || t.isUndoing, r = e.isRedoing || t.isRedoing; return new d(i, n, o, r) } } class c { constructor(e) { this.changes = e } } class h { constructor(e, t) { this.rawContentChangedEvent = e, this.contentChangedEvent = t } merge(e) { const t = d.merge(this.rawContentChangedEvent, e.rawContentChangedEvent), i = h._mergeChangeEvents(this.contentChangedEvent, e.contentChangedEvent); return new h(t, i) } static _mergeChangeEvents(e, t) { return { changes: [].concat(e.changes).concat(t.changes), eol: t.eol, versionId: t.versionId, isUndoing: e.isUndoing || t.isUndoing, isRedoing: e.isRedoing || t.isRedoing, isFlush: e.isFlush || t.isFlush } } } }, 7277: (e, t, i) => { "use strict"; i.d(t, { bc: () => l, iE: () => c, pM: () => u, cM: () => g, sz: () => p }); var n = i(7295), o = i(9410), r = i(187), s = i(4314), a = i(4973); class l { constructor(e, t, i, n) { this.searchString = e, this.isRegex = t, this.matchCase = i, this.wordSeparators = n } parseSearchRequest() { if ("" === this.searchString) return null; let e; e = this.isRegex ? function(e) { if (!e || 0 === e.length) return !1; for (let t = 0, i = e.length; t < i; t++) if (92 === e.charCodeAt(t)) { if (t++, t >= i) break; const n = e.charCodeAt(t); if (110 === n || 114 === n || 87 === n || 119 === n) return !0 } return !1 }(this.searchString) : this.searchString.indexOf("\n") >= 0; let t = null; try { t = n.GF(this.searchString, this.isRegex, { matchCase: this.matchCase, wholeWord: !1, multiline: e, global: !0, unicode: !0 }) } catch (e) { return null } if (!t) return null; let i = !this.isRegex && !e; return i && this.searchString.toLowerCase() !== this.searchString.toUpperCase() && (i = this.matchCase), new d(t, this.wordSeparators ? (0, o.u)(this.wordSeparators) : null, i ? this.searchString : null) } } class d { constructor(e, t, i) { this.regex = e, this.wordSeparators = t, this.simpleSearch = i } } function c(e, t, i) { if (!i) return new a.tk(e, null); let n = []; for (let e = 0, i = t.length; e < i; e++) n[e] = t[e]; return new a.tk(e, n) } class h { constructor(e) { let t = [], i = 0; for (let n = 0, o = e.length; n < o; n++) 10 === e.charCodeAt(n) && (t[ i++] = n); this._lineFeedsOffsets = t } findLineFeedCountBeforeOffset(e) { const t = this._lineFeedsOffsets; let i = 0, n = t.length - 1; if (-1 === n) return 0; if (e <= t[0]) return 0; for (; i < n;) { const o = i + ((n - i) / 2 >> 0); t[o] >= e ? n = o - 1 : t[o + 1] >= e ? (i = o, n = o) : i = o + 1 } return i + 1 } } class u { static findMatches(e, t, i, n, o) { const r = t.parseSearchRequest(); return r ? r.regex.multiline ? this._doFindMatchesMultiline(e, i, new p( r.wordSeparators, r.regex), n, o) : this._doFindMatchesLineByLine(e, i, r, n, o) : [] } static _getMultilineMatchRange(e, t, i, n, o, r) { let a, l, d = 0; if (n ? (d = n.findLineFeedCountBeforeOffset(o), a = t + o + d) : a = t + o, n) { let e = n.findLineFeedCountBeforeOffset(o + r.length) - d; l = a + r.length + e } else l = a + r.length; const c = e.getPositionAt(a), h = e.getPositionAt(l); return new s.e(c.lineNumber, c.column, h.lineNumber, h.column) } static _doFindMatchesMultiline(e, t, i, n, o) { const r = e.getOffsetAt(t.getStartPosition()), s = e.getValueInRange(t, 1), a = "\r\n" === e.getEOL() ? new h(s) : null, l = []; let d, u = 0; for (i.reset(0); d = i.next(s);) if (l[u++] = c(this._getMultilineMatchRange(e, r, s, a, d.index, d[0]), d, n), u >= o) return l; return l } static _doFindMatchesLineByLine(e, t, i, n, o) { const r = []; let s = 0; if (t.startLineNumber === t.endLineNumber) { const a = e.getLineContent(t.startLineNumber).substring(t.startColumn - 1, t.endColumn - 1); return s = this._findMatchesInLine(i, a, t.startLineNumber, t.startColumn - 1, s, r, n, o), r } const a = e.getLineContent(t.startLineNumber).substring(t.startColumn - 1); s = this._findMatchesInLine(i, a, t.startLineNumber, t.startColumn - 1, s, r, n, o); for (let a = t.startLineNumber + 1; a < t.endLineNumber && s < o; a++) s = this._findMatchesInLine(i, e.getLineContent(a), a, 0, s, r, n, o); if (s < o) { const a = e.getLineContent(t.endLineNumber).substring(0, t.endColumn - 1); s = this._findMatchesInLine(i, a, t.endLineNumber, 0, s, r, n, o) } return r } static _findMatchesInLine(e, t, i, n, o, r, l, d) { const h = e.wordSeparators; if (!l && e.simpleSearch) { const l = e.simpleSearch, c = l.length, u = t.length; let p = -c; for (; - 1 !== (p = t.indexOf(l, p + c));) if ((!h || g(h, t, u, p, c)) && (r[o++] = new a.tk(new s.e(i, p + 1 + n, i, p + 1 + c + n), null), o >= d)) return o; return o } const u = new p(e.wordSeparators, e.regex); let m; u.reset(0); do { if (m = u.next(t), m && (r[o++] = c(new s.e(i, m.index + 1 + n, i, m.index + 1 + m[0].length + n), m, l), o >= d)) return o } while (m); return o } static findNextMatch(e, t, i, n) { const o = t.parseSearchRequest(); if (!o) return null; const r = new p(o.wordSeparators, o.regex); return o.regex.multiline ? this._doFindNextMatchMultiline(e, i, r, n) : this._doFindNextMatchLineByLine(e, i, r, n) } static _doFindNextMatchMultiline(e, t, i, n) { const o = new r.L(t.lineNumber, 1), a = e.getOffsetAt(o), l = e.getLineCount(), d = e.getValueInRange(new s.e(o.lineNumber, o.column, l, e.getLineMaxColumn( l)), 1), u = "\r\n" === e.getEOL() ? new h(d) : null; i.reset(t.column - 1); let g = i.next(d); return g ? c(this._getMultilineMatchRange(e, a, d, u, g.index, g[0]), g, n) : 1 !== t.lineNumber || 1 !== t.column ? this._doFindNextMatchMultiline( e, new r.L(1, 1), i, n) : null } static _doFindNextMatchLineByLine(e, t, i, n) { const o = e.getLineCount(), r = t.lineNumber, s = e.getLineContent(r), a = this._findFirstMatchInLine(i, s, r, t.column, n); if (a) return a; for (let t = 1; t <= o; t++) { const s = (r + t - 1) % o, a = e.getLineContent(s + 1), l = this._findFirstMatchInLine(i, a, s + 1, 1, n); if (l) return l } return null } static _findFirstMatchInLine(e, t, i, n, o) { e.reset(n - 1); const r = e.next(t); return r ? c(new s.e(i, r.index + 1, i, r.index + 1 + r[0].length), r, o) : null } static findPreviousMatch(e, t, i, n) { const o = t.parseSearchRequest(); if (!o) return null; const r = new p(o.wordSeparators, o.regex); return o.regex.multiline ? this._doFindPreviousMatchMultiline(e, i, r, n) : this._doFindPreviousMatchLineByLine(e, i, r, n) } static _doFindPreviousMatchMultiline(e, t, i, n) { const o = this._doFindMatchesMultiline(e, new s.e(1, 1, t.lineNumber, t.column), i, n, 9990); if (o.length > 0) return o[o.length - 1]; const a = e.getLineCount(); return t.lineNumber !== a || t.column !== e.getLineMaxColumn(a) ? this ._doFindPreviousMatchMultiline(e, new r.L(a, e.getLineMaxColumn(a)), i, n) : null } static _doFindPreviousMatchLineByLine(e, t, i, n) { const o = e.getLineCount(), r = t.lineNumber, s = e.getLineContent(r).substring(0, t.column - 1), a = this._findLastMatchInLine(i, s, r, n); if (a) return a; for (let t = 1; t <= o; t++) { const s = (o + r - t - 1) % o, a = e.getLineContent(s + 1), l = this._findLastMatchInLine(i, a, s + 1, n); if (l) return l } return null } static _findLastMatchInLine(e, t, i, n) { let o, r = null; for (e.reset(0); o = e.next(t);) r = c(new s.e(i, o.index + 1, i, o.index + 1 + o[0].length), o, n); return r } } function g(e, t, i, n, o) { return function(e, t, i, n, o) { if (0 === n) return !0; const r = t.charCodeAt(n - 1); if (0 !== e.get(r)) return !0; if (13 === r || 10 === r) return !0; if (o > 0) { const i = t.charCodeAt(n); if (0 !== e.get(i)) return !0 } return !1 }(e, t, 0, n, o) && function(e, t, i, n, o) { if (n + o === i) return !0; const r = t.charCodeAt(n + o); if (0 !== e.get(r)) return !0; if (13 === r || 10 === r) return !0; if (o > 0) { const i = t.charCodeAt(n + o - 1); if (0 !== e.get(i)) return !0 } return !1 }(e, t, i, n, o) } class p { constructor(e, t) { this._wordSeparators = e, this._searchRegex = t, this._prevMatchStartIndex = - 1, this._prevMatchLength = 0 } reset(e) { this._searchRegex.lastIndex = e, this._prevMatchStartIndex = -1, this._prevMatchLength = 0 } next(e) { const t = e.length; let i; do { if (this._prevMatchStartIndex + this._prevMatchLength === t) return null; if (i = this._searchRegex.exec(e), !i) return null; const o = i.index, r = i[0].length; if (o === this._prevMatchStartIndex && r === this._prevMatchLength) { if (0 === r) { n.ZH(e, t, this._searchRegex.lastIndex) > 65535 ? this._searchRegex .lastIndex += 2 : this._searchRegex.lastIndex += 1; continue } return null } if (this._prevMatchStartIndex = o, this._prevMatchLength = r, !this._wordSeparators || g(this._wordSeparators, e, t, o, r)) return i } while (i); return null } } }, 8409: (e, t, i) => { "use strict"; i.d(t, { QZ: () => l, DA: () => h, OU: () => u, Wz: () => p, cx: () => _, Rl: () => b }); var n = i(9488), o = i(8411), r = i(187), s = i(4314), a = i(4101); function l(e) { let t = 0, i = 0, n = 0, o = 0; for (let r = 0, s = e.length; r < s; r++) { const a = e.charCodeAt(r); 13 === a ? (0 === t && (i = r), t++, r + 1 < s && 10 === e.charCodeAt(r + 1) ? (o |= 2, r++) : o |= 3, n = r + 1) : 10 === a && (o |= 1, 0 === t && (i = r), t++, n = r + 1) } return 0 === t && (i = e.length), [t, i, e.length - n, o] } function d(e) { return (16384 | e << 0 | 2 << 23) >>> 0 } const c = new Uint32Array(0).buffer; class h { constructor() { this.tokens = [] } add(e, t) { if (this.tokens.length > 0) { const i = this.tokens[this.tokens.length - 1]; if (i.startLineNumber + i.tokens.length - 1 + 1 === e) return void i.tokens .push(t) } this.tokens.push(new m(e, [t])) } } class u { constructor(e) { this._tokens = e, this._tokenCount = e.length / 4 } toString(e) { let t = []; for (let i = 0; i < this._tokenCount; i++) t.push( `(${this._getDeltaLine(i)+e},${this._getStartCharacter(i)}-${this._getEndCharacter(i)})` ); return `[${t.join(",")}]` } getMaxDeltaLine() { const e = this._getTokenCount(); return 0 === e ? -1 : this._getDeltaLine(e - 1) } getRange() { const e = this._getTokenCount(); if (0 === e) return null; const t = this._getStartCharacter(0), i = this._getDeltaLine(e - 1), n = this._getEndCharacter(e - 1); return new s.e(0, t + 1, i, n + 1) } _getTokenCount() { return this._tokenCount } _getDeltaLine(e) { return this._tokens[4 * e] } _getStartCharacter(e) { return this._tokens[4 * e + 1] } _getEndCharacter(e) { return this._tokens[4 * e + 2] } isEmpty() { return 0 === this._getTokenCount() } getLineTokens(e) { let t = 0, i = this._getTokenCount() - 1; for (; t < i;) { const n = t + Math.floor((i - t) / 2), o = this._getDeltaLine(n); if (o < e) t = n + 1; else { if (!(o > e)) { let o = n; for (; o > t && this._getDeltaLine(o - 1) === e;) o--; let r = n; for (; r < i && this._getDeltaLine(r + 1) === e;) r++; return new g(this._tokens.subarray(4 * o, 4 * r + 4)) } i = n - 1 } } return this._getDeltaLine(t) === e ? new g(this._tokens.subarray(4 * t, 4 * t + 4)) : null } clear() { this._tokenCount = 0 } removeTokens(e, t, i, n) { const o = this._tokens, r = this._tokenCount; let s = 0, a = !1, l = 0; for (let d = 0; d < r; d++) { const r = 4 * d, c = o[r], h = o[r + 1], u = o[r + 2], g = o[r + 3]; if ((c > e || c === e && u >= t) && (c < i || c === i && h <= n)) a = ! 0; else { if (0 === s && (l = c), a) { const e = 4 * s; o[e] = c - l, o[e + 1] = h, o[e + 2] = u, o[e + 3] = g } s++ } } return this._tokenCount = s, l } split(e, t, i, n) { const o = this._tokens, r = this._tokenCount; let s = [], a = [], l = s, d = 0, c = 0; for (let s = 0; s < r; s++) { const r = 4 * s, h = o[r], u = o[r + 1], g = o[r + 2], p = o[r + 3]; if (h > e || h === e && g >= t) { if (h < i || h === i && u <= n) continue; l !== a && (l = a, d = 0, c = h) } l[d++] = h - c, l[d++] = u, l[d++] = g, l[d++] = p } return [new u(new Uint32Array(s)), new u(new Uint32Array(a)), c] } acceptDeleteRange(e, t, i, n, o) { const r = this._tokens, s = this._tokenCount, a = n - t; let l = 0, d = !1; for (let c = 0; c < s; c++) { const h = 4 * c; let u = r[h], g = r[h + 1], p = r[h + 2]; const m = r[h + 3]; if (u < t || u === t && p <= i) { l++; continue } if (u === t && g < i) u === n && p > o ? p -= o - i : p = i; else if (u === t && g === i) { if (!(u === n && p > o)) { d = !0; continue } p -= o - i } else if (u < n || u === n && g < o) { if (!(u === n && p > o)) { d = !0; continue } u === t ? (g = i, p = g + (p - o)) : (g = 0, p = g + (p - o)) } else if (u > n) { if (0 === a && !d) { l = s; break } u -= a } else { if (!(u === n && g >= o)) throw new Error("Not possible!"); e && 0 === u && (g += e, p += e), u -= a, g -= o - i, p -= o - i } const f = 4 * l; r[f] = u, r[f + 1] = g, r[f + 2] = p, r[f + 3] = m, l++ } this._tokenCount = l } acceptInsertText(e, t, i, n, o, r) { const s = 0 === i && 1 === n && (r >= 48 && r <= 57 || r >= 65 && r <= 90 || r >= 97 && r <= 122), a = this._tokens, l = this._tokenCount; for (let r = 0; r < l; r++) { const l = 4 * r; let d = a[l], c = a[l + 1], h = a[l + 2]; if (!(d < e || d === e && h < t)) { if (d === e && h === t) { if (!s) continue; h += 1 } else if (d === e && c < t && t < h) 0 === i ? h += n : h = t; else { if (d === e && c === t && s) continue; if (d === e) if (d += i, 0 === i) c += n, h += n; else { const e = h - c; c = o + (c - t), h = c + e } else d += i } a[l] = d, a[l + 1] = c, a[l + 2] = h } } } } class g { constructor(e) { this._tokens = e } getCount() { return this._tokens.length / 4 } getStartCharacter(e) { return this._tokens[4 * e + 1] } getEndCharacter(e) { return this._tokens[4 * e + 2] } getMetadata(e) { return this._tokens[4 * e + 3] } } class p { constructor(e, t) { this.startLineNumber = e, this.tokens = t, 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(e) { return this.startLineNumber <= e && e <= this.endLineNumber ? this.tokens .getLineTokens(e - this.startLineNumber) : null } getRange() { const e = this.tokens.getRange(); return e ? new s.e(this.startLineNumber + e.startLineNumber, e.startColumn, this.startLineNumber + e.endLineNumber, e.endColumn) : e } removeTokens(e) { const t = e.startLineNumber - this.startLineNumber, i = e.endLineNumber - this.startLineNumber; this.startLineNumber += this.tokens.removeTokens(t, e.startColumn - 1, i, e.endColumn - 1), this._updateEndLineNumber() } split(e) { const t = e.startLineNumber - this.startLineNumber, i = e.endLineNumber - this.startLineNumber, [n, o, r] = this.tokens.split(t, e.startColumn - 1, i, e.endColumn - 1); return [new p(this.startLineNumber, n), new p(this.startLineNumber + r, o)] } applyEdit(e, t) { const [i, n, o] = l(t); this.acceptEdit(e, i, n, o, t.length > 0 ? t.charCodeAt(0) : 0) } acceptEdit(e, t, i, n, o) { this._acceptDeleteRange(e), this._acceptInsertText(new r.L(e.startLineNumber, e.startColumn), t, i, n, o), this._updateEndLineNumber() } _acceptDeleteRange(e) { if (e.startLineNumber === e.endLineNumber && e.startColumn === e.endColumn) return; const t = e.startLineNumber - this.startLineNumber, i = e.endLineNumber - this.startLineNumber; if (i < 0) { const e = i - t; return void(this.startLineNumber -= e) } const n = this.tokens.getMaxDeltaLine(); if (!(t >= n + 1)) { if (t < 0 && i >= n + 1) return this.startLineNumber = 0, void this.tokens .clear(); if (t < 0) { const n = -t; this.startLineNumber -= n, this.tokens.acceptDeleteRange(e.startColumn - 1, 0, 0, i, e.endColumn - 1) } else this.tokens.acceptDeleteRange(0, t, e.startColumn - 1, i, e.endColumn - 1) } } _acceptInsertText(e, t, i, n, o) { if (0 === t && 0 === i) return; const r = e.lineNumber - this.startLineNumber; r < 0 ? this.startLineNumber += t : r >= this.tokens.getMaxDeltaLine() + 1 || this.tokens.acceptInsertText(r, e.column - 1, t, i, n, o) } } class m { constructor(e, t) { this.startLineNumber = e, this.tokens = t } } function f(e) { return e instanceof Uint32Array ? e : new Uint32Array(e) } class _ { constructor() { this._pieces = [], this._isComplete = !1 } flush() { this._pieces = [], this._isComplete = !1 } isEmpty() { return 0 === this._pieces.length } set(e, t) { this._pieces = e || [], this._isComplete = t } setPartial(e, t) { let i = e; if (t.length > 0) { const n = t[0].getRange(), o = t[t.length - 1].getRange(); if (!n || !o) return e; i = e.plusRange(n).plusRange(o) } let o = null; for (let e = 0, t = this._pieces.length; e < t; e++) { const n = this._pieces[e]; if (n.endLineNumber < i.startLineNumber) continue; if (n.startLineNumber > i.endLineNumber) { o = o || { index: e }; break } if (n.removeTokens(i), n.isEmpty()) { this._pieces.splice(e, 1), e--, t--; continue } if (n.endLineNumber < i.startLineNumber) continue; if (n.startLineNumber > i.endLineNumber) { o = o || { index: e }; continue } const [r, s] = n.split(i); r.isEmpty() ? o = o || { index: e } : s.isEmpty() || (this._pieces.splice(e, 1, r, s), e++, t++, o = o || { index: e }) } return o = o || { index: this._pieces.length }, t.length > 0 && (this._pieces = n.Zv(this._pieces, o.index, t)), i } isComplete() { return this._isComplete } addSemanticTokens(e, t) { const i = this._pieces; if (0 === i.length) return t; const n = i[_._findFirstPieceWithLine(i, e)].getLineTokens(e); if (!n) return t; const r = t.getCount(), s = n.getCount(); let a = 0, l = [], d = 0, c = 0; const h = (e, t) => { e !== c && (c = e, l[d++] = e, l[d++] = t) }; for (let e = 0; e < s; e++) { const i = n.getStartCharacter(e), o = n.getEndCharacter(e), s = n.getMetadata(e), l = ((1 & s ? 2048 : 0) | (2 & s ? 4096 : 0) | (4 & s ? 8192 : 0) | (8 & s ? 8372224 : 0) | (16 & s ? 4286578688 : 0)) >>> 0, d = ~l >>> 0; for (; a < r && t.getEndOffset(a) <= i;) h(t.getEndOffset(a), t.getMetadata( a)), a++; for (a < r && t.getStartOffset(a) < i && h(i, t.getMetadata(a)); a < r && t.getEndOffset(a) < o;) h(t.getEndOffset(a), t.getMetadata(a) & d | s & l), a++; if (a < r) h(o, t.getMetadata(a) & d | s & l), t.getEndOffset(a) === o && a++; else { const e = Math.min(Math.max(0, a - 1), r - 1); h(o, t.getMetadata(e) & d | s & l) } } for (; a < r;) h(t.getEndOffset(a), t.getMetadata(a)), a++; return new o.A(new Uint32Array(l), t.getLineContent()) } static _findFirstPieceWithLine(e, t) { let i = 0, n = e.length - 1; for (; i < n;) { let o = i + Math.floor((n - i) / 2); if (e[o].endLineNumber < t) i = o + 1; else { if (!(e[o].startLineNumber > t)) { for (; o > i && e[o - 1].startLineNumber <= t && t <= e[o - 1].endLineNumber;) o--; return o } n = o - 1 } } return i } acceptEdit(e, t, i, n, o) { for (const r of this._pieces) r.acceptEdit(e, t, i, n, o) } } class b { constructor() { this._lineTokens = [], this._len = 0 } flush() { this._lineTokens = [], this._len = 0 } getTokens(e, t, i) { let n = null; if (t < this._len && (n = this._lineTokens[t]), null !== n && n !== c) return new o.A(f(n), i); let r = new Uint32Array(2); return r[0] = i.length, r[1] = d(e), new o.A(r, i) } static _massageTokens(e, t, i) { const n = i ? f(i) : null; if (0 === t) { let t = !1; if (n && n.length > 1 && (t = a.NX.getLanguageId(n[1]) !== e), !t) return c } if (!n || 0 === n.length) { const i = new Uint32Array(2); return i[0] = t, i[1] = d(e), i.buffer } return n[n.length - 2] = t, 0 === n.byteOffset && n.byteLength === n.buffer .byteLength ? n.buffer : n } _ensureLine(e) { for (; e >= this._len;) this._lineTokens[this._len] = null, this._len++ } _deleteLines(e, t) { 0 !== t && (e + t > this._len && (t = this._len - e), this._lineTokens .splice(e, t), this._len -= t) } _insertLines(e, t) { if (0 === t) return; let i = []; for (let e = 0; e < t; e++) i[e] = null; this._lineTokens = n.Zv(this._lineTokens, e, i), this._len += t } setTokens(e, t, i, n, o) { const r = b._massageTokens(e, i, n); this._ensureLine(t); const s = this._lineTokens[t]; return this._lineTokens[t] = r, !!o && !b._equals(s, r) } static _equals(e, t) { if (!e || !t) return !e && !t; const i = f(e), n = f(t); if (i.length !== n.length) return !1; for (let e = 0, t = i.length; e < t; e++) if (i[e] !== n[e]) return !1; return !0 } acceptEdit(e, t, i) { this._acceptDeleteRange(e), this._acceptInsertText(new r.L(e.startLineNumber, e.startColumn), t, i) } _acceptDeleteRange(e) { const t = e.startLineNumber - 1; if (t >= this._len) return; if (e.startLineNumber === e.endLineNumber) { if (e.startColumn === e.endColumn) return; return void(this._lineTokens[t] = b._delete(this._lineTokens[t], e.startColumn - 1, e.endColumn - 1)) } this._lineTokens[t] = b._deleteEnding(this._lineTokens[t], e.startColumn - 1); const i = e.endLineNumber - 1; let n = null; i < this._len && (n = b._deleteBeginning(this._lineTokens[i], e.endColumn - 1)), this._lineTokens[t] = b._append(this._lineTokens[t], n), this._deleteLines( e.startLineNumber, e.endLineNumber - e.startLineNumber) } _acceptInsertText(e, t, i) { if (0 === t && 0 === i) return; const n = e.lineNumber - 1; n >= this._len || (0 !== t ? (this._lineTokens[n] = b._deleteEnding( this._lineTokens[n], e.column - 1), this._lineTokens[n] = b._insert( this._lineTokens[n], e.column - 1, i), this._insertLines(e.lineNumber, t)) : this._lineTokens[n] = b._insert(this._lineTokens[n], e.column - 1, i)) } static _deleteBeginning(e, t) { return null === e || e === c ? e : b._delete(e, 0, t) } static _deleteEnding(e, t) { if (null === e || e === c) return e; const i = f(e), n = i[i.length - 2]; return b._delete(e, t, n) } static _delete(e, t, i) { if (null === e || e === c || t === i) return e; const n = f(e), r = n.length >>> 1; if (0 === t && n[n.length - 2] === i) return c; const s = o.A.findIndexInTokensArray(n, t), a = s > 0 ? n[s - 1 << 1] : 0; if (i < n[s << 1]) { const o = i - t; for (let e = s; e < r; e++) n[e << 1] -= o; return e } let l, d; a !== t ? (n[s << 1] = t, l = s + 1 << 1, d = t) : (l = s << 1, d = a); const h = i - t; for (let e = s + 1; e < r; e++) { const t = n[e << 1] - h; t > d && (n[l++] = t, n[l++] = n[1 + (e << 1)], d = t) } if (l === n.length) return e; let u = new Uint32Array(l); return u.set(n.subarray(0, l), 0), u.buffer } static _append(e, t) { if (t === c) return e; if (e === c) return t; if (null === e) return e; if (null === t) return null; const i = f(e), n = f(t), o = n.length >>> 1; let r = new Uint32Array(i.length + n.length); r.set(i, 0); let s = i.length; const a = i[i.length - 2]; for (let e = 0; e < o; e++) r[s++] = n[e << 1] + a, r[s++] = n[1 + (e << 1)]; return r.buffer } static _insert(e, t, i) { if (null === e || e === c) return e; const n = f(e), r = n.length >>> 1; let s = o.A.findIndexInTokensArray(n, t); s > 0 && n[s - 1 << 1] === t && s--; for (let e = s; e < r; e++) n[e << 1] += i; return e } } }, 7461: (e, t, i) => { "use strict"; i.d(t, { vu: () => n, Af: () => o, eq: () => r, t2: () => a }); const n = "`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?", o = function(e = "") { let t = "(-?\\d*\\.\\d\\w*)|([^"; for (const i of n) e.indexOf(i) >= 0 || (t += "\\" + i); return t += "\\s]+)", new RegExp(t, "g") }(); function r(e) { let t = o; if (e && e instanceof RegExp) if (e.global) t = e; else { let i = "g"; e.ignoreCase && (i += "i"), e.multiline && (i += "m"), e.unicode && (i += "u"), t = new RegExp(e.source, i) } return t.lastIndex = 0, t } const s = { maxLen: 1e3, windowSize: 15, timeBudget: 150 }; function a(e, t, i, n, o = s) { if (i.length > o.maxLen) { let r = e - o.maxLen / 2; return r < 0 ? r = 0 : n += r, a(e, t, i = i.substring(r, e + o.maxLen / 2), n, o) } const r = Date.now(), d = e - 1 - n; let c = -1, h = null; for (let e = 1; !(Date.now() - r >= o.timeBudget); e++) { const n = d - o.windowSize * e; t.lastIndex = Math.max(0, n); const r = l(t, i, d, c); if (!r && h) break; if (h = r, n <= 0) break; c = n } if (h) { let e = { word: h[0], startColumn: n + 1 + h.index, endColumn: n + 1 + h.index + h[0].length }; return t.lastIndex = 0, e } return null } function l(e, t, i, n) { let o; for (; o = e.exec(t);) { const t = o.index || 0; if (t <= i && e.lastIndex >= i) return o; if (n > 0 && t > n) return null } return null } }, 4101: (e, t, i) => { "use strict"; i.d(t, { H9: () => O, He: () => A, OH: () => z, KZ: () => y, RN: () => I, Ct: () => E, Az: () => P, MY: () => m, vH: () => N, vN: () => F, K7: () => j, wT: () => U, vJ: () => L, AD: () => v, aC: () => H, xp: () => k, vI: () => T, mX: () => R, bw: () => g, zu: () => S, rl: () => d, pM: () => W, id: () => D, ln: () => B, FL: () => w, G0: () => C, AC: () => V, nD: () => x, WW: () => p, uZ: () => f, NX: () => c, RW: () => K, tA: () => M, jr: () => u, Sy: () => h, vx: () => b }); var n = i(666), o = i(4314), r = i(1036), s = i(4669), a = i(5976), l = i(3046); class d { constructor(e, t) { this.language = e, this.id = t } } class c { static getLanguageId(e) { return (255 & e) >>> 0 } static getTokenType(e) { return (1792 & e) >>> 8 } static getFontStyle(e) { return (14336 & e) >>> 11 } static getForeground(e) { return (8372224 & e) >>> 14 } static getBackground(e) { return (4286578688 & e) >>> 23 } static getClassNameFromMetadata(e) { let t = "mtk" + this.getForeground(e), i = this.getFontStyle(e); return 1 & i && (t += " mtki"), 2 & i && (t += " mtkb"), 4 & i && (t += " mtku"), t } static getInlineStyleFromMetadata(e, t) { const i = this.getForeground(e), n = this.getFontStyle(e); let o = `color: ${t[i]};`; return 1 & n && (o += "font-style: italic;"), 2 & n && (o += "font-weight: bold;"), 4 & n && (o += "text-decoration: underline;"), o } } const h = function() { let e = Object.create(null); return e[0] = "symbol-method", e[1] = "symbol-function", e[2] = "symbol-constructor", e[3] = "symbol-field", e[4] = "symbol-variable", e[5] = "symbol-class", e[6] = "symbol-struct", e[7] = "symbol-interface", e[8] = "symbol-module", e[9] = "symbol-property", e[10] = "symbol-event", e[11] = "symbol-operator", e[12] = "symbol-unit", e[13] = "symbol-value", e[14] = "symbol-constant", e[15] = "symbol-enum", e[16] = "symbol-enum-member", e[17] = "symbol-keyword", e[27] = "symbol-snippet", e[18] = "symbol-text", e[19] = "symbol-color", e[20] = "symbol-file", e[21] = "symbol-reference", e[ 22] = "symbol-customcolor", e[23] = "symbol-folder", e[24] = "symbol-type-parameter", e[25] = "account", e[26] = "issues", function(t) { const i = e[t]; let n = i && l.fK.get(i); return n || (console.info("No codicon found for CompletionItemKind " + t), n = l.lA.symbolProperty), n.classNames } }(); let u = function() { let e = Object.create(null); return e.method = 0, e.function = 1, e.constructor = 2, e.field = 3, e.variable = 4, e.class = 5, e.struct = 6, e.interface = 7, e.module = 8, e.property = 9, e.event = 10, e.operator = 11, e.unit = 12, e.value = 13, e.constant = 14, e.enum = 15, e["enum-member"] = 16, e.enumMember = 16, e.keyword = 17, e.snippet = 27, e.text = 18, e.color = 19, e.file = 20, e.reference = 21, e.customcolor = 22, e.folder = 23, e["type-parameter"] = 24, e.typeParameter = 24, e.account = 25, e.issue = 26, function(t, i) { let n = e[t]; return void 0 !== n || i || (n = 9), n } }(); var g, p, m, f, _; function b(e) { return e && n.o.isUri(e.uri) && o.e.isIRange(e.range) && (o.e.isIRange(e .originSelectionRange) || o.e.isIRange(e.targetSelectionRange)) }! function(e) { e[e.Automatic = 0] = "Automatic", e[e.Explicit = 1] = "Explicit" }(g || (g = {})), function(e) { e[e.Invoke = 1] = "Invoke", e[e.TriggerCharacter = 2] = "TriggerCharacter", e[e.ContentChange = 3] = "ContentChange" }(p || (p = {})), function(e) { e[e.Text = 0] = "Text", e[e.Read = 1] = "Read", e[e.Write = 2] = "Write" }(m || (m = {})), function(e) { const t = new Map; t.set("file", 0), t.set("module", 1), t.set("namespace", 2), t.set( "package", 3), t.set("class", 4), t.set("method", 5), t.set("property", 6), t.set("field", 7), t.set("constructor", 8), t.set("enum", 9), t.set( "interface", 10), t.set("function", 11), t.set("variable", 12), t.set( "constant", 13), t.set("string", 14), t.set("number", 15), t.set( "boolean", 16), t.set("array", 17), t.set("object", 18), t.set("key", 19), t.set("null", 20), t.set("enum-member", 21), t.set("struct", 22), t.set("event", 23), t.set("operator", 24), t.set("type-parameter", 25); const i = new Map; i.set(0, "file"), i.set(1, "module"), i.set(2, "namespace"), i.set(3, "package"), i.set(4, "class"), i.set(5, "method"), i.set(6, "property"), i.set(7, "field"), i.set(8, "constructor"), i.set(9, "enum"), i.set(10, "interface"), i.set(11, "function"), i.set(12, "variable"), i.set(13, "constant"), i.set(14, "string"), i.set(15, "number"), i.set(16, "boolean"), i.set(17, "array"), i.set(18, "object"), i.set(19, "key"), i.set(20, "null"), i.set(21, "enum-member"), i.set(22, "struct"), i.set( 23, "event"), i.set(24, "operator"), i.set(25, "type-parameter"), e.fromString = function(e) { return t.get(e) }, e.toString = function(e) { return i.get(e) }, e.toCssClassName = function(e, t) { const n = i.get(e); let o = n && l.fK.get("symbol-" + n); return o || (console.info("No codicon found for SymbolKind " + e), o = l.lA.symbolProperty), `${t?"inline":"block"} ${o.classNames}` } }(f || (f = {})); class v { constructor(e) { this.value = e } } v.Comment = new v("comment"), v.Imports = new v("imports"), v.Region = new v("region"), function(e) { e[e.Other = 0] = "Other", e[e.Type = 1] = "Type", e[e.Parameter = 2] = "Parameter" }(_ || (_ = {})); const w = new r.c, C = new r.c, y = new r.c, S = new r.c, x = new r.c, k = new r.c, L = new r.c, N = new r.c, D = new r.c, E = new r.c, I = new r.c, T = new r.c, M = new r.c, A = new r.c, R = new r.c, O = new r.c, P = new r.c, F = new r.c, B = new r.c, W = new r.c, z = new r.c, V = new r.c, H = new r.c, U = new r.c, j = new r.c, K = new class { constructor() { this._map = new Map, this._promises = new Map, this._onDidChange = new s.Q5, this.onDidChange = this._onDidChange.event, this._colorMap = null } fire(e) { this._onDidChange.fire({ changedLanguages: e, changedColorMap: !1 }) } register(e, t) { return this._map.set(e, t), this.fire([e]), (0, a.OF)((() => { this._map.get(e) === t && (this._map.delete(e), this.fire([e])) })) } registerPromise(e, t) { let i = null, n = !1; return this._promises.set(e, t.then((t => { this._promises.delete(e), !n && t && (i = this.register(e, t)) }))), (0, a.OF)((() => { n = !0, i && i.dispose() })) } getPromise(e) { const t = this.get(e); if (t) return Promise.resolve(t); const i = this._promises.get(e); return i ? i.then((t => this.get(e))) : null } get(e) { return this._map.get(e) || null } setColorMap(e) { this._colorMap = e, this._onDidChange.fire({ changedLanguages: Array.from(this._map.keys()), changedColorMap: !0 }) } getColorMap() { return this._colorMap } getDefaultBackground() { return this._colorMap && this._colorMap.length > 2 ? this._colorMap[2] : null } } }, 7354: (e, t, i) => { "use strict"; var n; i.d(t, { wU: () => n, V6: () => o, c$: () => r }), function(e) { e[e.None = 0] = "None", e[e.Indent = 1] = "Indent", e[e.IndentOutdent = 2] = "IndentOutdent", e[e.Outdent = 3] = "Outdent" }(n || (n = {})); class o { constructor(e) { if (this._standardAutoClosingPairConditionalBrand = void 0, this.open = e.open, this.close = e.close, this._standardTokenMask = 0, Array.isArray( e.notIn)) for (let t = 0, i = e.notIn.length; t < i; t++) switch (e.notIn[t]) { case "string": this._standardTokenMask |= 2; break; case "comment": this._standardTokenMask |= 1; break; case "regex": this._standardTokenMask |= 4 } } isOK(e) { return 0 == (this._standardTokenMask & e) } } class r { constructor(e) { this.autoClosingPairsOpenByStart = new Map, this.autoClosingPairsOpenByEnd = new Map, this.autoClosingPairsCloseByStart = new Map, this.autoClosingPairsCloseByEnd = new Map, this.autoClosingPairsCloseSingleChar = new Map; for (const t of e) s(this.autoClosingPairsOpenByStart, t.open.charAt(0), t), s(this.autoClosingPairsOpenByEnd, t.open.charAt(t.open.length - 1), t), s(this.autoClosingPairsCloseByStart, t.close.charAt(0), t), s(this.autoClosingPairsCloseByEnd, t.close.charAt(t.close.length - 1), t), 1 === t.close.length && 1 === t.open.length && s(this.autoClosingPairsCloseSingleChar, t.close, t) } } function s(e, t, i) { e.has(t) ? e.get(t).push(i) : e.set(t, [i]) } }, 3831: (e, t, i) => { "use strict"; i.d(t, { zu: () => w }); var n = i(4669), o = i(5976), r = i(7295), s = i(7461), a = i(7354), l = i(764); class d { constructor(e) { if (e.autoClosingPairs ? this._autoClosingPairs = e.autoClosingPairs.map( (e => new a.V6(e))) : e.brackets ? this._autoClosingPairs = e.brackets .map((e => new a.V6({ open: e[0], close: e[1] }))) : this._autoClosingPairs = [], e.colorizedBracketPairs ? this._colorizedBracketPairs = e.colorizedBracketPairs.map((e => [e[0], e[1]])) : e.brackets ? this._colorizedBracketPairs = e.brackets.map((e => [e[0], e[1]])) : this._colorizedBracketPairs = [], e.__electricCharacterSupport && e.__electricCharacterSupport.docComment ) { const t = e.__electricCharacterSupport.docComment; this._autoClosingPairs.push(new a.V6({ open: t.open, close: t.close || "" })) } this._autoCloseBefore = "string" == typeof e.autoCloseBefore ? e.autoCloseBefore : d.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED, this._surroundingPairs = e.surroundingPairs || this._autoClosingPairs } getAutoClosingPairs() { return this._autoClosingPairs } getAutoCloseBeforeSet() { return this._autoCloseBefore } static shouldAutoClosePair(e, t, i) { if (0 === t.getTokenCount()) return !0; const n = t.findTokenIndexAtOffset(i - 2), o = t.getStandardTokenType(n); return e.isOK(o) } getSurroundingPairs() { return this._surroundingPairs } getColorizedBrackets() { return this._colorizedBracketPairs } } d.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED = ";:.,=}])> \n\t"; var c = i(4227); class h { constructor(e) { this._richEditBrackets = e } getElectricCharacters() { let e = []; if (this._richEditBrackets) for (const t of this._richEditBrackets.brackets) for (const i of t.close) { const t = i.charAt(i.length - 1); e.push(t) } return e = e.filter(((e, t, i) => i.indexOf(e) === t)), e } onElectricCharacter(e, t, i) { if (!this._richEditBrackets || 0 === this._richEditBrackets.brackets.length) return null; const n = t.findTokenIndexAtOffset(i - 1); if ((0, l.Bu)(t.getStandardTokenType(n))) return null; const o = this._richEditBrackets.reversedRegex, r = t.getLineContent().substring(0, i - 1) + e, s = c.Vr.findPrevBracketInRange(o, 1, r, 0, r.length); if (!s) return null; const a = r.substring(s.startColumn - 1, s.endColumn - 1).toLowerCase(); if (this._richEditBrackets.textIsOpenBracket[a]) return null; const d = t.getActualLineContentBefore(s.startColumn - 1); return /^\s*$/.test(d) ? { matchOpenBracket: a } : null } } function u(e) { return e.global && (e.lastIndex = 0), !0 } class g { constructor(e) { this._indentationRules = e } shouldIncrease(e) { return !!(this._indentationRules && this._indentationRules.increaseIndentPattern && u(this._indentationRules.increaseIndentPattern) && this._indentationRules .increaseIndentPattern.test(e)) } shouldDecrease(e) { return !!(this._indentationRules && this._indentationRules.decreaseIndentPattern && u(this._indentationRules.decreaseIndentPattern) && this._indentationRules .decreaseIndentPattern.test(e)) } shouldIndentNextLine(e) { return !!(this._indentationRules && this._indentationRules.indentNextLinePattern && u(this._indentationRules.indentNextLinePattern) && this._indentationRules .indentNextLinePattern.test(e)) } shouldIgnore(e) { return !!(this._indentationRules && this._indentationRules.unIndentedLinePattern && u(this._indentationRules.unIndentedLinePattern) && this._indentationRules .unIndentedLinePattern.test(e)) } getIndentMetadata(e) { let t = 0; return this.shouldIncrease(e) && (t += 1), this.shouldDecrease(e) && ( t += 2), this.shouldIndentNextLine(e) && (t += 4), this.shouldIgnore( e) && (t += 8), t } } var p = i(7301); class m { constructor(e) { (e = e || {}).brackets = e.brackets || [ ["(", ")"], ["{", "}"], ["[", "]"] ], this._brackets = [], e.brackets.forEach((e => { const t = m._createOpenBracketRegExp(e[0]), i = m._createCloseBracketRegExp(e[1]); t && i && this._brackets.push({ open: e[0], openRegExp: t, close: e[1], closeRegExp: i }) })), this._regExpRules = e.onEnterRules || [] } onEnter(e, t, i, n) { if (e >= 3) for (let e = 0, o = this._regExpRules.length; e < o; e++) { let o = this._regExpRules[e]; if ([{ reg: o.beforeText, text: i }, { reg: o.afterText, text: n }, { reg: o.previousLineText, text: t }].every((e => !e.reg || (e.reg.lastIndex = 0, e.reg.test(e.text))))) return o.action } if (e >= 2 && i.length > 0 && n.length > 0) for (let e = 0, t = this._brackets.length; e < t; e++) { let t = this._brackets[e]; if (t.openRegExp.test(i) && t.closeRegExp.test(n)) return { indentAction: a.wU.IndentOutdent } } if (e >= 2 && i.length > 0) for (let e = 0, t = this._brackets.length; e < t; e++) if (this._brackets[e].openRegExp.test(i)) return { indentAction: a.wU.Indent }; return null } static _createOpenBracketRegExp(e) { let t = r.ec(e); return /\B/.test(t.charAt(0)) || (t = "\\b" + t), t += "\\s*$", m._safeRegExp( t) } static _createCloseBracketRegExp(e) { let t = r.ec(e); return /\B/.test(t.charAt(t.length - 1)) || (t += "\\b"), t = "^\\s*" + t, m._safeRegExp(t) } static _safeRegExp(e) { try { return new RegExp(e) } catch (e) { return (0, p.dL)(e), null } } } class f { constructor(e, t) { this._languageIdentifier = e, this._brackets = null, this._electricCharacter = null, this._conf = t, this._onEnterSupport = this._conf.brackets || this._conf.indentationRules || this._conf.onEnterRules ? new m(this._conf) : null, this.comments = f._handleComments(this._conf), this.characterPair = new d(this._conf), this.wordDefinition = this._conf.wordPattern || s.Af, this.indentationRules = this._conf.indentationRules, this._conf.indentationRules ? this.indentRulesSupport = new g(this._conf.indentationRules) : this.indentRulesSupport = null, this.foldingRules = this._conf.folding || {} } get brackets() { return !this._brackets && this._conf.brackets && (this._brackets = new c .EA(this._languageIdentifier, this._conf.brackets)), this._brackets } get electricCharacter() { return this._electricCharacter || (this._electricCharacter = new h( this.brackets)), this._electricCharacter } onEnter(e, t, i, n) { return this._onEnterSupport ? this._onEnterSupport.onEnter(e, t, i, n) : null } static _handleComments(e) { let t = e.comments; if (!t) return null; let i = {}; if (t.lineComment && (i.lineCommentToken = t.lineComment), t.blockComment) { let [e, n] = t.blockComment; i.blockCommentStartToken = e, i.blockCommentEndToken = n } return i } } class _ { constructor(e) { this.languageIdentifier = e } } class b { constructor(e, t, i) { this.configuration = e, this.priority = t, this.order = i } static cmp(e, t) { return e.priority === t.priority ? e.order - t.order : e.priority - t.priority } } class v { constructor(e) { this.languageIdentifier = e, this._resolved = null, this._entries = [], this._order = 0, this._resolved = null } register(e, t) { const i = new b(e, t, ++this._order); return this._entries.push(i), this._resolved = null, (0, o.OF)((() => { for (let e = 0; e < this._entries.length; e++) if (this._entries[e] === i) { this._entries.splice(e, 1), this._resolved = null; break } })) } getRichEditSupport() { if (!this._resolved) { const e = this._resolve(); e && (this._resolved = new f(this.languageIdentifier, e)) } return this._resolved } _resolve() { if (0 === this._entries.length) return null; this._entries.sort(b.cmp); const e = {}; for (const t of this._entries) { const i = t.configuration; e.comments = i.comments || e.comments, e.brackets = i.brackets || e.brackets, e.wordPattern = i.wordPattern || e.wordPattern, e.indentationRules = i.indentationRules || e.indentationRules, e.onEnterRules = i.onEnterRules || e.onEnterRules, e.autoClosingPairs = i.autoClosingPairs || e.autoClosingPairs, e.surroundingPairs = i.surroundingPairs || e.surroundingPairs, e.autoCloseBefore = i.autoCloseBefore || e.autoCloseBefore, e.folding = i.folding || e.folding, e.colorizedBracketPairs = i.colorizedBracketPairs || e.colorizedBracketPairs, e.__electricCharacterSupport = i.__electricCharacterSupport || e.__electricCharacterSupport } return e } } const w = new class { constructor() { this._entries2 = new Map, this._onDidChange = new n.Q5, this.onDidChange = this._onDidChange.event } register(e, t, i = 0) { let n = this._entries2.get(e.id); n || (n = new v(e), this._entries2.set(e.id, n)); const r = n.register(t, i); return this._onDidChange.fire(new _(e)), (0, o.OF)((() => { r.dispose(), this._onDidChange.fire(new _(e)) })) } _getRichEditSupport(e) { const t = this._entries2.get(e); return t ? t.getRichEditSupport() : null } getIndentationRules(e) { const t = this._getRichEditSupport(e); return t && t.indentationRules || null } _getElectricCharacterSupport(e) { let t = this._getRichEditSupport(e); return t && t.electricCharacter || null } getElectricCharacters(e) { let t = this._getElectricCharacterSupport(e); return t ? t.getElectricCharacters() : [] } onElectricCharacter(e, t, i) { let n = (0, l.wH)(t, i - 1), o = this._getElectricCharacterSupport(n.languageId); return o ? o.onElectricCharacter(e, n, i - n.firstCharOffset) : null } getComments(e) { let t = this._getRichEditSupport(e); return t && t.comments || null } _getCharacterPairSupport(e) { let t = this._getRichEditSupport(e); return t && t.characterPair || null } getAutoClosingPairs(e) { const t = this._getCharacterPairSupport(e); return new a.c$(t ? t.getAutoClosingPairs() : []) } getAutoCloseBeforeSet(e) { let t = this._getCharacterPairSupport(e); return t ? t.getAutoCloseBeforeSet() : d.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED } getSurroundingPairs(e) { let t = this._getCharacterPairSupport(e); return t ? t.getSurroundingPairs() : [] } shouldAutoClosePair(e, t, i) { const n = (0, l.wH)(t, i - 1); return d.shouldAutoClosePair(e, n, i - n.firstCharOffset) } getWordDefinition(e) { let t = this._getRichEditSupport(e); return t ? (0, s.eq)(t.wordDefinition || null) : (0, s.eq)(null) } getFoldingRules(e) { let t = this._getRichEditSupport(e); return t ? t.foldingRules : {} } getIndentRulesSupport(e) { let t = this._getRichEditSupport(e); return t && t.indentRulesSupport || null } getPrecedingValidLine(e, t, i) { let n = e.getLanguageIdAtPosition(t, 0); if (t > 1) { let o, r = -1; for (o = t - 1; o >= 1; o--) { if (e.getLanguageIdAtPosition(o, 0) !== n) return r; let t = e.getLineContent(o); if (!i.shouldIgnore(t) && !/^\s+$/.test(t) && "" !== t) return o; r = o } } return -1 } getInheritIndentForLine(e, t, i, n = !0) { if (e < 4) return null; const o = this.getIndentRulesSupport(t.getLanguageIdentifier().id); if (!o) return null; if (i <= 1) return { indentation: "", action: null }; const s = this.getPrecedingValidLine(t, i, o); if (s < 0) return null; if (s < 1) return { indentation: "", action: null }; const l = t.getLineContent(s); if (o.shouldIncrease(l) || o.shouldIndentNextLine(l)) return { indentation: r.V8(l), action: a.wU.Indent, line: s }; if (o.shouldDecrease(l)) return { indentation: r.V8(l), action: null, line: s }; { if (1 === s) return { indentation: r.V8(t.getLineContent(s)), action: null, line: s }; const e = s - 1, i = o.getIndentMetadata(t.getLineContent(e)); if (!(3 & i) && 4 & i) { let i = 0; for (let n = e - 1; n > 0; n--) if (!o.shouldIndentNextLine(t.getLineContent(n))) { i = n; break } return { indentation: r.V8(t.getLineContent(i + 1)), action: null, line: i + 1 } } if (n) return { indentation: r.V8(t.getLineContent(s)), action: null, line: s }; for (let e = s; e > 0; e--) { const i = t.getLineContent(e); if (o.shouldIncrease(i)) return { indentation: r.V8(i), action: a.wU.Indent, line: e }; if (o.shouldIndentNextLine(i)) { let i = 0; for (let n = e - 1; n > 0; n--) if (!o.shouldIndentNextLine(t.getLineContent(e))) { i = n; break } return { indentation: r.V8(t.getLineContent(i + 1)), action: null, line: i + 1 } } if (o.shouldDecrease(i)) return { indentation: r.V8(i), action: null, line: e } } return { indentation: r.V8(t.getLineContent(1)), action: null, line: 1 } } } getGoodIndentForLine(e, t, i, n, o) { if (e < 4) return null; const s = this._getRichEditSupport(i); if (!s) return null; const l = this.getIndentRulesSupport(i); if (!l) return null; const d = this.getInheritIndentForLine(e, t, n), c = t.getLineContent(n); if (d) { const i = d.line; if (void 0 !== i) { const n = s.onEnter(e, "", t.getLineContent(i), ""); if (n) { let e = r.V8(t.getLineContent(i)); return n.removeText && (e = e.substring(0, e.length - n.removeText)), n.indentAction === a.wU.Indent || n.indentAction === a.wU.IndentOutdent ? e = o.shiftIndent(e) : n.indentAction === a.wU.Outdent && (e = o.unshiftIndent( e)), l.shouldDecrease(c) && (e = o.unshiftIndent(e)), n.appendText && (e += n.appendText), r.V8(e) } } return l.shouldDecrease(c) ? d.action === a.wU.Indent ? d.indentation : o.unshiftIndent(d.indentation) : d.action === a.wU.Indent ? o.shiftIndent( d.indentation) : d.indentation } return null } getIndentForEnter(e, t, i, n) { if (e < 4) return null; t.forceTokenization(i.startLineNumber); const o = t.getLineTokens(i.startLineNumber), s = (0, l.wH)(o, i.startColumn - 1), d = s.getLineContent(); let c, h, u = !1; s.firstCharOffset > 0 && o.getLanguageId(0) !== s.languageId ? (u = ! 0, c = d.substr(0, i.startColumn - 1 - s.firstCharOffset)) : c = o.getLineContent() .substring(0, i.startColumn - 1), h = i.isEmpty() ? d.substr(i.startColumn - 1 - s.firstCharOffset) : this.getScopedLineTokens(t, i.endLineNumber, i.endColumn).getLineContent().substr(i.endColumn - 1 - s.firstCharOffset); const g = this.getIndentRulesSupport(s.languageId); if (!g) return null; const p = c, m = r.V8(c), f = { getLineTokens: e => t.getLineTokens(e), getLanguageIdentifier: () => t.getLanguageIdentifier(), getLanguageIdAtPosition: (e, i) => t.getLanguageIdAtPosition(e, i), getLineContent: e => e === i.startLineNumber ? p : t.getLineContent( e) }, _ = r.V8(o.getLineContent()), b = this.getInheritIndentForLine(e, f, i.startLineNumber + 1); if (!b) { const e = u ? _ : m; return { beforeEnter: e, afterEnter: e } } let v = u ? _ : b.indentation; return b.action === a.wU.Indent && (v = n.shiftIndent(v)), g.shouldDecrease( h) && (v = n.unshiftIndent(v)), { beforeEnter: u ? _ : m, afterEnter: v } } getIndentActionForType(e, t, i, n, o) { if (e < 4) return null; const r = this.getScopedLineTokens(t, i.startLineNumber, i.startColumn); if (r.firstCharOffset) return null; const s = this.getIndentRulesSupport(r.languageId); if (!s) return null; const l = r.getLineContent(), d = l.substr(0, i.startColumn - 1 - r.firstCharOffset); let c; if (c = i.isEmpty() ? l.substr(i.startColumn - 1 - r.firstCharOffset) : this.getScopedLineTokens(t, i.endLineNumber, i.endColumn).getLineContent() .substr(i.endColumn - 1 - r.firstCharOffset), !s.shouldDecrease(d + c) && s.shouldDecrease(d + n + c)) { const n = this.getInheritIndentForLine(e, t, i.startLineNumber, !1); if (!n) return null; let r = n.indentation; return n.action !== a.wU.Indent && (r = o.unshiftIndent(r)), r } return null } getIndentMetadata(e, t) { const i = this.getIndentRulesSupport(e.getLanguageIdentifier().id); return i ? t < 1 || t > e.getLineCount() ? null : i.getIndentMetadata( e.getLineContent(t)) : null } getEnterAction(e, t, i) { const n = this.getScopedLineTokens(t, i.startLineNumber, i.startColumn), o = this._getRichEditSupport(n.languageId); if (!o) return null; const r = n.getLineContent(), s = r.substr(0, i.startColumn - 1 - n.firstCharOffset); let l; l = i.isEmpty() ? r.substr(i.startColumn - 1 - n.firstCharOffset) : this.getScopedLineTokens(t, i.endLineNumber, i.endColumn).getLineContent() .substr(i.endColumn - 1 - n.firstCharOffset); let d = ""; if (i.startLineNumber > 1 && 0 === n.firstCharOffset) { const e = this.getScopedLineTokens(t, i.startLineNumber - 1); e.languageId === n.languageId && (d = e.getLineContent()) } const c = o.onEnter(e, d, s, l); if (!c) return null; const h = c.indentAction; let u = c.appendText; const g = c.removeText || 0; u ? h === a.wU.Indent && (u = "\t" + u) : u = h === a.wU.Indent || h === a.wU.IndentOutdent ? "\t" : ""; let p = this.getIndentationAtPosition(t, i.startLineNumber, i.startColumn); return g && (p = p.substring(0, p.length - g)), { indentAction: h, appendText: u, removeText: g, indentation: p } } getIndentationAtPosition(e, t, i) { const n = e.getLineContent(t); let o = r.V8(n); return o.length > i - 1 && (o = o.substring(0, i - 1)), o } getScopedLineTokens(e, t, i) { e.forceTokenization(t); const n = e.getLineTokens(t), o = void 0 === i ? e.getLineMaxColumn(t) - 1 : i - 1; return (0, l.wH)(n, o) } getBracketsSupport(e) { const t = this._getRichEditSupport(e); return t && t.brackets || null } getColorizedBracketPairs(e) { var t; return (null === (t = this._getRichEditSupport(e)) || void 0 === t ? void 0 : t.characterPair.getColorizedBrackets()) || [] } } }, 1036: (e, t, i) => { "use strict"; i.d(t, { c: () => g, Y: () => f }); var n = i(4669), o = i(9954), r = i(5976), s = i(3702), a = i(9870), l = i(4118), d = i(8721); function c(e, t, i, n) { if (Array.isArray(e)) { let o = 0; for (const r of e) { const e = c(r, t, i, n); if (10 === e) return e; e > o && (o = e) } return o } if ("string" == typeof e) return n ? "*" === e ? 5 : e === i ? 10 : 0 : 0; if (e) { const { language: o, pattern: r, scheme: s, hasAccessToAllModels: a } = e; if (!n && !a) return 0; let c = 0; if (s) if (s === t.scheme) c = 10; else { if ("*" !== s) return 0; c = 5 } if (o) if (o === i) c = 10; else { if ("*" !== o) return 0; c = Math.max(c, 5) } if (r) { let e; if (e = "string" == typeof r ? r : Object.assign(Object.assign({}, r), { base: (0, d.Fv)(r.base) }), e !== t.fsPath && !(0, l.EQ)(e, t.fsPath)) return 0; c = 10 } return c } return 0 } var h = i(1200); function u(e) { return "string" != typeof e && (Array.isArray(e) ? e.every(u) : !!e.exclusive) } class g { constructor() { this._clock = 0, this._entries = [], this._onDidChange = new n.Q5 } get onDidChange() { return this._onDidChange.event } register(e, t) { let i = { selector: e, provider: t, _score: -1, _time: this._clock++ }; return this._entries.push(i), this._lastCandidate = void 0, this._onDidChange .fire(this._entries.length), (0, r.OF)((() => { if (i) { let e = this._entries.indexOf(i); e >= 0 && (this._entries.splice(e, 1), this._lastCandidate = void 0, this._onDidChange.fire(this._entries.length), i = void 0) } })) } has(e) { return this.all(e).length > 0 } all(e) { if (!e) return []; this._updateScores(e); const t = []; for (let e of this._entries) e._score > 0 && t.push(e.provider); return t } ordered(e) { const t = []; return this._orderedForEach(e, (e => t.push(e.provider))), t } orderedGroups(e) { const t = []; let i, n; return this._orderedForEach(e, (e => { i && n === e._score ? i.push(e.provider) : (n = e._score, i = [e.provider], t.push(i)) })), t } _orderedForEach(e, t) { if (e) { this._updateScores(e); for (const e of this._entries) e._score > 0 && t(e) } } _updateScores(e) { let t = { uri: e.uri.toString(), language: e.getLanguageIdentifier().language }; if (!this._lastCandidate || this._lastCandidate.language !== t.language || this._lastCandidate.uri !== t.uri) { this._lastCandidate = t; for (let t of this._entries) if (t._score = c(t.selector, e.uri, e.getLanguageIdentifier().language, ( 0, h.p)(e)), u(t.selector) && t._score > 0) { for (let e of this._entries) e._score = 0; t._score = 1e3; break } this._entries.sort(g._compareByScoreAndTime) } } static _compareByScoreAndTime(e, t) { return e._score < t._score ? 1 : e._score > t._score ? -1 : e._time < t._time ? 1 : e._time > t._time ? -1 : 0 } } const p = new WeakMap; let m = 0; class f { constructor(e, t, i = Number.MAX_SAFE_INTEGER) { this._registry = e, this.min = t, this.max = i, this._cache = new s.z6( 50, .7) } _key(e) { return e.id + this._registry.all(e).reduce(((e, t) => (0, o.SP)( function(e) { let t = p.get(e); return void 0 === t && (t = ++m, p.set(e, t)), t }(t), e)), 0) } _clamp(e) { return void 0 === e ? this.min : Math.min(this.max, Math.max(this.min, Math.floor(1.3 * e))) } get(e) { const t = this._key(e), i = this._cache.get(t); return this._clamp(null == i ? void 0 : i.value) } update(e, t) { const i = this._key(e); let n = this._cache.get(i); return n || (n = new a.n, this._cache.set(i, n)), n.update(t), this.get( e) } } }, 1144: (e, t, i) => { "use strict"; i.d(t, { dQ: () => d, XT: () => c, Tb: () => h }); var n = i(3580), o = i(4669), r = i(4101), s = i(3831), a = i(9872), l = i(1170); const d = new class { constructor() { this._onDidChangeLanguages = new o.Q5, this.onDidChangeLanguages = this._onDidChangeLanguages.event, this._languages = [], this._dynamicLanguages = [] } registerLanguage(e) { return this._languages.push(e), this._onDidChangeLanguages.fire(void 0), { dispose: () => { for (let t = 0, i = this._languages.length; t < i; t++) if (this._languages[t] === e) return void this._languages.splice( t, 1) } } } getLanguages() { return [].concat(this._languages).concat(this._dynamicLanguages) } }; a.B.add("editor.modesRegistry", d); const c = "plaintext", h = new r.rl(c, 1); d.registerLanguage({ id: c, extensions: [".txt"], aliases: [n.N("plainText.alias", "Plain Text"), "text"], mimetypes: [l.vW.text] }), s.zu.register(h, { brackets: [ ["(", ")"], ["[", "]"], ["{", "}"] ], surroundingPairs: [{ open: "{", close: "}" }, { open: "[", close: "]" }, { open: "(", close: ")" }, { open: "<", close: ">" }, { open: '"', close: '"' }, { open: "'", close: "'" }, { open: "`", close: "`" }], folding: { offSide: !0 } }, 0) }, 8111: (e, t, i) => { "use strict"; i.d(t, { nO: () => r, TG: () => s, pA: () => a, Ri: () => l, mh: () => d }); var n = i(5600), o = i(4101); const r = new class { clone() { return this } equals(e) { return this === e } }, s = "vs.editor.nullMode", a = new o.rl(s, 0); function l(e, t, i, o) { return new n.hG([new n.WU(o, "", e)], i) } function d(e, t, i, o) { let s = new Uint32Array(2); return s[0] = o, s[1] = (16384 | e << 0 | 2 << 23) >>> 0, new n.Hi(s, null === i ? r : i) } }, 764: (e, t, i) => { "use strict"; function n(e, t) { let i = e.getCount(), n = e.findTokenIndexAtOffset(t), r = e.getLanguageId(n), s = n; for (; s + 1 < i && e.getLanguageId(s + 1) === r;) s++; let a = n; for (; a > 0 && e.getLanguageId(a - 1) === r;) a--; return new o(e, r, a, s + 1, e.getStartOffset(a), e.getEndOffset(s)) } i.d(t, { wH: () => n, Bu: () => r }); class o { constructor(e, t, i, n, o, r) { this._scopedLineTokensBrand = void 0, this._actual = e, this.languageId = t, this._firstTokenIndex = i, this._lastTokenIndex = n, this.firstCharOffset = o, this._lastCharOffset = r } getLineContent() { return this._actual.getLineContent().substring(this.firstCharOffset, this._lastCharOffset) } getActualLineContentBefore(e) { return this._actual.getLineContent().substring(0, this.firstCharOffset + e) } getTokenCount() { return this._lastTokenIndex - this._firstTokenIndex } findTokenIndexAtOffset(e) { return this._actual.findTokenIndexAtOffset(e + this.firstCharOffset) - this._firstTokenIndex } getStandardTokenType(e) { return this._actual.getStandardTokenType(e + this._firstTokenIndex) } } function r(e) { return 0 != (7 & e) } }, 4227: (e, t, i) => { "use strict"; i.d(t, { EA: () => a, Vr: () => p }); var n = i(7295), o = i(72), r = i(4314); class s { constructor(e, t, i, n, o, r) { this._richEditBracketBrand = void 0, this.languageIdentifier = e, this .index = t, this.open = i, this.close = n, this.forwardRegex = o, this.reversedRegex = r, this._openSet = s._toSet(this.open), this._closeSet = s._toSet(this.close) } isOpen(e) { return this._openSet.has(e) } isClose(e) { return this._closeSet.has(e) } static _toSet(e) { const t = new Set; for (const i of e) t.add(i); return t } } class a { constructor(e, t) { this._richEditBracketsBrand = void 0; const i = function(e) { const t = e.length; e = e.map((e => [e[0].toLowerCase(), e[1].toLowerCase()])); const i = []; for (let e = 0; e < t; e++) i[e] = e; const n = (e, t) => { const [i, n] = e, [o, r] = t; return i === o || i === r || n === o || n === r }, o = (e, n) => { const o = Math.min(e, n), r = Math.max(e, n); for (let e = 0; e < t; e++) i[e] === r && (i[e] = o) }; for (let r = 0; r < t; r++) { const s = e[r]; for (let a = r + 1; a < t; a++) n(s, e[a]) && o(i[r], i[a]) } const r = []; for (let n = 0; n < t; n++) { let o = [], s = []; for (let r = 0; r < t; r++) if (i[r] === n) { const [t, i] = e[r]; o.push(t), s.push(i) } o.length > 0 && r.push({ open: o, close: s }) } return r }(t); this.brackets = i.map(((t, n) => new s(e, n, t.open, t.close, function( e, t, i, n) { let o = []; o = o.concat(e), o = o.concat(t); for (let e = 0, t = o.length; e < t; e++) l(o[e], i, n, o); return o = c(o), o.sort(d), o.reverse(), u(o) }(t.open, t.close, i, n), function(e, t, i, n) { let o = []; o = o.concat(e), o = o.concat(t); for (let e = 0, t = o.length; e < t; e++) l(o[e], i, n, o); return o = c(o), o.sort(d), o.reverse(), u(o.map(g)) }(t.open, t.close, i, n)))), this.forwardRegex = function(e) { let t = []; for (const i of e) { for (const e of i.open) t.push(e); for (const e of i.close) t.push(e) } return t = c(t), u(t) }(this.brackets), this.reversedRegex = function(e) { let t = []; for (const i of e) { for (const e of i.open) t.push(e); for (const e of i.close) t.push(e) } return t = c(t), u(t.map(g)) }(this.brackets), this.textIsBracket = {}, this.textIsOpenBracket = {}, this.maxBracketLength = 0; for (const e of this.brackets) { for (const t of e.open) this.textIsBracket[t] = e, this.textIsOpenBracket[ t] = !0, this.maxBracketLength = Math.max(this.maxBracketLength, t.length); for (const t of e.close) this.textIsBracket[t] = e, this.textIsOpenBracket[ t] = !1, this.maxBracketLength = Math.max(this.maxBracketLength, t.length) } } } function l(e, t, i, n) { for (let o = 0, r = t.length; o < r; o++) { if (o === i) continue; const r = t[o]; for (const t of r.open) t.indexOf(e) >= 0 && n.push(t); for (const t of r.close) t.indexOf(e) >= 0 && n.push(t) } } function d(e, t) { return e.length - t.length } function c(e) { if (e.length <= 1) return e; const t = [], i = new Set; for (const n of e) i.has(n) || (t.push(n), i.add(n)); return t } function h(e) { const t = /^[\w ]+$/.test(e); return e = n.ec(e), t ? `\\b${e}\\b` : e } function u(e) { let t = `(${e.map(h).join(")|(")})`; return n.GF(t, !0) } const g = function() { let e = null, t = null; return function(i) { return e !== i && (e = i, t = function(e) { if (o.lZ) { const t = new Uint16Array(e.length); let i = 0; for (let n = e.length - 1; n >= 0; n--) t[i++] = e.charCodeAt(n); return o.oe().decode(t) } { let t = [], i = 0; for (let n = e.length - 1; n >= 0; n--) t[i++] = e.charAt(n); return t.join("") } }(e)), t } }(); class p { static _findPrevBracketInText(e, t, i, n) { let o = i.match(e); if (!o) return null; let s = i.length - (o.index || 0), a = o[0].length, l = n + s; return new r.e(t, l - a + 1, t, l + 1) } static findPrevBracketInRange(e, t, i, n, o) { const r = g(i).substring(i.length - o, i.length - n); return this._findPrevBracketInText(e, t, r, n) } static findNextBracketInText(e, t, i, n) { let o = i.match(e); if (!o) return null; let s = o.index || 0, a = o[0].length; if (0 === a) return null; let l = n + s; return new r.e(t, l + 1, t, l + 1 + a) } static findNextBracketInRange(e, t, i, n, o) { const r = i.substring(n, o); return this.findNextBracketInText(e, t, r, n) } } }, 5713: (e, t, i) => { "use strict"; i.d(t, { C: () => a, F: () => l }); var n = i(7295), o = i(8411), r = i(8111); const s = { getInitialState: () => r.nO, tokenize2: (e, t, i, n) => (0, r.mh)(0, e, i, n) }; function a(e, t = s) { return function(e, t) { let i = '
    ', r = n.uq(e), s = t.getInitialState(); for (let e = 0, a = r.length; e < a; e++) { let a = r[e]; e > 0 && (i += "
    "); let l = t.tokenize2(a, !0, s, 0); o.A.convertToEndOffset(l.tokens, a.length); let d = new o.A(l.tokens, a).inflate(), c = 0; for (let e = 0, t = d.getCount(); e < t; e++) { const t = d.getClassName(e), o = d.getEndOffset(e); i += `${n.YU(a.substring(c,o))}`, c = o } s = l.endState } return i += "
    ", i }(e, t || s) } function l(e, t, i, n, o, r, s) { let a = "
    ", l = n, d = 0; for (let c = 0, h = t.getCount(); c < h; c++) { const h = t.getEndOffset(c); if (h <= n) continue; let u = ""; for (; l < h && l < o; l++) { const t = e.charCodeAt(l); switch (t) { case 9: let e = r - (l + d) % r; for (d += e - 1; e > 0;) u += s ? " " : " ", e--; break; case 60: u += "<"; break; case 62: u += ">"; break; case 38: u += "&"; break; case 0: u += "�"; break; case 65279: case 8232: case 8233: case 133: u += "�"; break; case 13: u += "​"; break; case 32: u += s ? " " : " "; break; default: u += String.fromCharCode(t) } } if (a += `${u}`, h > o || l >= o) break } return a += "
    ", a } }, 469: (e, t, i) => { "use strict"; i.d(t, { p: () => n }); const n = (0, i(2065).yh)("editorWorkerService") }, 9510: (e, t, i) => { "use strict"; i.d(t, { St: () => v, ML: () => _, Vl: () => m, Vj: () => f }); var n = i(1050), o = i(7301), r = i(666), s = i(4101), a = i(1200), l = i(4565), d = i(8401), c = i(3060), h = i(1432); function u(e) { const t = new Uint32Array(function(e) { let t = 0; if (t += 2, "full" === e.type) t += 1 + e.data.length; else { t += 1, t += 3 * e.deltas.length; for (const i of e.deltas) i.data && (t += i.data.length) } return t }(e)); let i = 0; if (t[i++] = e.id, "full" === e.type) t[i++] = 1, t[i++] = e.data.length, t.set(e.data, i), i += e.data.length; else { t[i++] = 2, t[i++] = e.deltas.length; for (const n of e.deltas) t[i++] = n.start, t[i++] = n.deleteCount, n.data ? (t[i++] = n.data.length, t.set(n.data, i), i += n.data.length) : t[i++] = 0 } return function(e) { const t = new Uint8Array(e.buffer, e.byteOffset, 4 * e.length); return h.r() || function(e) { for (let t = 0, i = e.length; t < i; t += 4) { const i = e[t + 0], n = e[t + 1], o = e[t + 2], r = e[t + 3]; e[t + 0] = r, e[t + 1] = o, e[t + 2] = n, e[t + 3] = i } }(t), c.KN.wrap(t) }(t) } var g = i(4314), p = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; function m(e) { return e && !!e.data } function f(e) { return e && Array.isArray(e.edits) } function _(e, t, i) { const n = b(e); return n ? { provider: n, request: Promise.resolve(n.provideDocumentSemanticTokens(e, t, i)) } : null } function b(e) { const t = s.wT.ordered(e); return t.length > 0 ? t[0] : null } function v(e) { const t = s.K7.ordered(e); return t.length > 0 ? t[0] : null } l.P.registerCommand("_provideDocumentSemanticTokensLegend", ((e, ...t) => p(void 0, void 0, void 0, (function*() { const [i] = t; (0, d.p_)(i instanceof r.o); const n = e.get(a.q).getModel(i); if (!n) return; const o = b(n); return o ? o.getLegend() : e.get(l.H).executeCommand( "_provideDocumentRangeSemanticTokensLegend", i) })))), l.P.registerCommand("_provideDocumentSemanticTokens", ((e, ...t) => p(void 0, void 0, void 0, (function*() { const [i] = t; (0, d.p_)(i instanceof r.o); const s = e.get(a.q).getModel(i); if (!s) return; const c = _(s, null, n.T.None); if (!c) return e.get(l.H).executeCommand( "_provideDocumentRangeSemanticTokens", i, s.getFullModelRange()); const { provider: h, request: g } = c; let p; try { p = yield g } catch (e) { return void(0, o.Cp)(e) } if (!p || !m(p)) return; const f = u({ id: 0, type: "full", data: p.data }); return p.resultId && h.releaseDocumentSemanticTokens(p.resultId), f })))), l.P.registerCommand("_provideDocumentRangeSemanticTokensLegend", ( (e, ...t) => p(void 0, void 0, void 0, (function*() { const [i] = t; (0, d.p_)(i instanceof r.o); const n = e.get(a.q).getModel(i); if (!n) return; const o = v(n); return o ? o.getLegend() : void 0 })))), l.P.registerCommand("_provideDocumentRangeSemanticTokens", ((e, ...t) => p(void 0, void 0, void 0, (function*() { const [i, s] = t; (0, d.p_)(i instanceof r.o), (0, d.p_)(g.e.isIRange(s)); const l = e.get(a.q).getModel(i); if (!l) return; const c = v(l); if (!c) return; let h; try { h = yield c.provideDocumentRangeSemanticTokens(l, g.e.lift(s), n.T .None) } catch (e) { return void(0, o.Cp)(e) } return h && m(h) ? u({ id: 0, type: "full", data: h.data }) : void 0 })))) }, 6479: (e, t, i) => { "use strict"; i.d(t, { i: () => n }); const n = (0, i(2065).yh)("markerDecorationsService") }, 1531: (e, t, i) => { "use strict"; i.d(t, { h: () => n }); const n = (0, i(2065).yh)("modeService") }, 1200: (e, t, i) => { "use strict"; i.d(t, { q: () => n, p: () => o }); const n = (0, i(2065).yh)("modelService"); function o(e) { return !e.isTooLargeForSyncing() && !e.isForSimpleWidget } }, 7390: (e, t, i) => { "use strict"; i.d(t, { BR: () => I, e3: () => T, tw: () => M }); var n = i(4669), o = i(5976), r = i(1432), s = i(7301), a = i(4141), l = i(6281), d = i(4101), c = i(1144), h = i(3187), u = i(3108), g = i(5393), p = i(1050), m = i(7781), f = i(3557), _ = i(4862), b = i(9954), v = i(5215), w = i(6663), C = i(5072), y = i(9510), S = i(6248), x = function(e, t) { return function(i, n) { t(i, n, e) } }; function k(e) { return e.toString() } function L(e) { const t = new b.yP, i = e.createSnapshot(); let n; for (; n = i.read();) t.update(n); return t.digest() } class N { constructor(e, t, i) { this._modelEventListeners = new o.SL, this.model = e, this._languageSelection = null, this._languageSelectionListener = null, this._modelEventListeners .add(e.onWillDispose((() => t(e)))), this._modelEventListeners.add(e.onDidChangeLanguage( (t => i(e, t)))) } _disposeLanguageSelection() { this._languageSelectionListener && (this._languageSelectionListener.dispose(), this._languageSelectionListener = null) } dispose() { this._modelEventListeners.dispose(), this._disposeLanguageSelection() } setLanguage(e) { this._disposeLanguageSelection(), this._languageSelection = e, this._languageSelectionListener = this._languageSelection.onDidChange((() => this.model.setMode(e.languageIdentifier))), this.model.setMode(e.languageIdentifier) } } const D = r.IJ || r.dz ? 1 : 2; class E { constructor(e, t, i, n, o, r, s, a) { this.uri = e, this.initialUndoRedoSnapshot = t, this.time = i, this.sharesUndoRedoStack = n, this.heapSize = o, this.sha1 = r, this.versionId = s, this.alternativeVersionId = a } } let I = class e extends o.JT { constructor(e, t, i, o, r) { super(), this._configurationService = e, this._resourcePropertiesService = t, this._themeService = i, this._logService = o, this._undoRedoService = r, this._onModelAdded = this._register(new n.Q5), this.onModelAdded = this._onModelAdded.event, this._onModelRemoved = this._register(new n .Q5), this.onModelRemoved = this._onModelRemoved.event, this._onModelModeChanged = this._register(new n.Q5), this.onModelModeChanged = this._onModelModeChanged .event, this._modelCreationOptionsByLanguageAndResource = Object.create( null), this._models = {}, this._disposedModels = new Map, this._disposedModelsHeapSize = 0, this._semanticStyling = this._register(new R(this._themeService, this._logService)), this._register(this._configurationService.onDidChangeConfiguration( (() => this._updateModelOptions()))), this._updateModelOptions(), this._register(new A(this, this._themeService, this._configurationService, this._semanticStyling)) } static _readModelOptions(e, t) { var i; let n = a.DB.tabSize; if (e.editor && void 0 !== e.editor.tabSize) { const t = parseInt(e.editor.tabSize, 10); isNaN(t) || (n = t), n < 1 && (n = 1) } let o = n; if (e.editor && void 0 !== e.editor.indentSize && "tabSize" !== e.editor .indentSize) { const t = parseInt(e.editor.indentSize, 10); isNaN(t) || (o = t), o < 1 && (o = 1) } let r = a.DB.insertSpaces; e.editor && void 0 !== e.editor.insertSpaces && (r = "false" !== e.editor .insertSpaces && Boolean(e.editor.insertSpaces)); let s = D; const l = e.eol; "\r\n" === l ? s = 2 : "\n" === l && (s = 1); let d = a.DB.trimAutoWhitespace; e.editor && void 0 !== e.editor.trimAutoWhitespace && (d = "false" !== e.editor.trimAutoWhitespace && Boolean(e.editor.trimAutoWhitespace) ); let c = a.DB.detectIndentation; e.editor && void 0 !== e.editor.detectIndentation && (c = "false" !== e.editor.detectIndentation && Boolean(e.editor.detectIndentation)); let h = a.DB.largeFileOptimizations; e.editor && void 0 !== e.editor.largeFileOptimizations && (h = "false" !== e.editor.largeFileOptimizations && Boolean(e.editor.largeFileOptimizations) ); let u = a.DB.bracketPairColorizationOptions; return (null === (i = e.editor) || void 0 === i ? void 0 : i.bracketPairColorization) && "object" == typeof e.editor.bracketPairColorization && (u = { enabled: !!e.editor.bracketPairColorization.enabled }), { isForSimpleWidget: t, tabSize: n, indentSize: o, insertSpaces: r, detectIndentation: c, defaultEOL: s, trimAutoWhitespace: d, largeFileOptimizations: h, bracketPairColorizationOptions: u } } _getEOL(e, t) { if (e) return this._resourcePropertiesService.getEOL(e, t); const i = this._configurationService.getValue("files.eol", { overrideIdentifier: t }); return i && "string" == typeof i && "auto" !== i ? i : 3 === r.OS || 2 === r.OS ? "\n" : "\r\n" } _shouldRestoreUndoStack() { const e = this._configurationService.getValue( "files.restoreUndoStack"); return "boolean" != typeof e || e } getCreationOptions(t, i, n) { let o = this._modelCreationOptionsByLanguageAndResource[t + i]; if (!o) { const r = this._configurationService.getValue("editor", { overrideIdentifier: t, resource: i }), s = this._getEOL(i, t); o = e._readModelOptions({ editor: r, eol: s }, n), this._modelCreationOptionsByLanguageAndResource[t + i] = o } return o } _updateModelOptions() { const t = this._modelCreationOptionsByLanguageAndResource; this._modelCreationOptionsByLanguageAndResource = Object.create(null); const i = Object.keys(this._models); for (let n = 0, o = i.length; n < o; n++) { const o = i[n], r = this._models[o], s = r.model.getLanguageIdentifier().language, a = r.model.uri, l = t[s + a], d = this.getCreationOptions(s, a, r.model.isForSimpleWidget); e._setModelOptionsForModel(r.model, d, l) } } static _setModelOptionsForModel(e, t, i) { i && i.defaultEOL !== t.defaultEOL && 1 === e.getLineCount() && e.setEOL( 1 === t.defaultEOL ? 0 : 1), i && i.detectIndentation === t.detectIndentation && i.insertSpaces === t.insertSpaces && i.tabSize === t.tabSize && i.indentSize === t.indentSize && i.trimAutoWhitespace === t.trimAutoWhitespace && (0, S.fS)(i.bracketPairColorizationOptions, t.bracketPairColorizationOptions) || (t.detectIndentation ? (e.detectIndentation(t.insertSpaces, t.tabSize), e.updateOptions({ trimAutoWhitespace: t.trimAutoWhitespace, bracketColorizationOptions: t.bracketPairColorizationOptions })) : e.updateOptions({ insertSpaces: t.insertSpaces, tabSize: t.tabSize, indentSize: t.indentSize, trimAutoWhitespace: t.trimAutoWhitespace, bracketColorizationOptions: t.bracketPairColorizationOptions })) } _insertDisposedModel(e) { this._disposedModels.set(k(e.uri), e), this._disposedModelsHeapSize += e.heapSize } _removeDisposedModel(e) { const t = this._disposedModels.get(k(e)); return t && (this._disposedModelsHeapSize -= t.heapSize), this._disposedModels .delete(k(e)), t } _ensureDisposedModelsHeapSize(e) { if (this._disposedModelsHeapSize > e) { const t = []; for (this._disposedModels.forEach((e => { e.sharesUndoRedoStack || t.push(e) })), t.sort(((e, t) => e.time - t.time)); t.length > 0 && this._disposedModelsHeapSize > e;) { const e = t.shift(); this._removeDisposedModel(e.uri), null !== e.initialUndoRedoSnapshot && this._undoRedoService.restoreSnapshot(e.initialUndoRedoSnapshot) } } } _createModelData(e, t, i, n) { const o = this.getCreationOptions(t.language, i, n), r = new l.yO(e, o, t, i, this._undoRedoService); if (i && this._disposedModels.has(k(i))) { const e = this._removeDisposedModel(i), t = this._undoRedoService.getElements(i), n = L(r) === e.sha1; if (n || e.sharesUndoRedoStack) { for (const e of t.past)(0, v.e9)(e) && e.matchesResource(i) && e.setModel( r); for (const e of t.future)(0, v.e9)(e) && e.matchesResource(i) && e.setModel( r); this._undoRedoService.setElementsValidFlag(i, !0, (e => (0, v.e9)(e) && e.matchesResource(i))), n && (r._overwriteVersionId(e.versionId), r._overwriteAlternativeVersionId(e.alternativeVersionId), r._overwriteInitialUndoRedoSnapshot( e.initialUndoRedoSnapshot)) } else null !== e.initialUndoRedoSnapshot && this._undoRedoService.restoreSnapshot( e.initialUndoRedoSnapshot) } const s = k(r.uri); if (this._models[s]) throw new Error( "ModelService: Cannot add model because it already exists!"); const a = new N(r, (e => this._onWillDispose(e)), ((e, t) => this._onDidChangeLanguage( e, t))); return this._models[s] = a, a } createModel(e, t, i, n = !1) { let o; return t ? (o = this._createModelData(e, t.languageIdentifier, i, n), this.setMode(o.model, t)) : o = this._createModelData(e, c.Tb, i, n), this._onModelAdded.fire(o.model), o.model } setMode(e, t) { if (!t) return; const i = this._models[k(e.uri)]; i && i.setLanguage(t) } getModels() { const e = [], t = Object.keys(this._models); for (let i = 0, n = t.length; i < n; i++) { const n = t[i]; e.push(this._models[n].model) } return e } getModel(e) { const t = k(e), i = this._models[t]; return i ? i.model : null } getSemanticTokensProviderStyling(e) { return this._semanticStyling.get(e) } _onWillDispose(t) { const i = k(t.uri), n = this._models[i], o = this._undoRedoService.getUriComparisonKey(t.uri) !== t.uri.toString(); let r = !1, s = 0; if (o || this._shouldRestoreUndoStack() && ((a = t.uri).scheme === w.lg .file || a.scheme === w.lg.vscodeRemote || a.scheme === w.lg.userData || a.scheme === w.lg.vscodeNotebookCell || "fake-fs" === a.scheme)) { const e = this._undoRedoService.getElements(t.uri); if (e.past.length > 0 || e.future.length > 0) { for (const i of e.past)(0, v.e9)(i) && i.matchesResource(t.uri) && (r = !0, s += i.heapSize(t.uri), i.setModel(t.uri)); for (const i of e.future)(0, v.e9)(i) && i.matchesResource(t.uri) && (r = !0, s += i.heapSize(t.uri), i.setModel(t.uri)) } } var a; const l = e.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK; if (r) if (!o && s > l) { const e = n.model.getInitialUndoRedoSnapshot(); null !== e && this._undoRedoService.restoreSnapshot(e) } else this._ensureDisposedModelsHeapSize(l - s), this._undoRedoService .setElementsValidFlag(t.uri, !1, (e => (0, v.e9)(e) && e.matchesResource( t.uri))), this._insertDisposedModel(new E(t.uri, n.model.getInitialUndoRedoSnapshot(), Date.now(), o, s, L(t), t.getVersionId(), t.getAlternativeVersionId() )); else if (!o) { const e = n.model.getInitialUndoRedoSnapshot(); null !== e && this._undoRedoService.restoreSnapshot(e) } delete this._models[i], n.dispose(), delete this._modelCreationOptionsByLanguageAndResource[ t.getLanguageIdentifier().language + t.uri], this._onModelRemoved.fire( t) } _onDidChangeLanguage(t, i) { const n = i.oldLanguage, o = t.getLanguageIdentifier().language, r = this.getCreationOptions(n, t.uri, t.isForSimpleWidget), s = this.getCreationOptions(o, t.uri, t.isForSimpleWidget); e._setModelOptionsForModel(t, s, r), this._onModelModeChanged.fire({ model: t, oldModeId: n }) } }; I.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK = 20971520, I = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([x(0, u.Ui), x(1, h.y), x(2, m.XE), x(3, f.VZ), x(4, _.tJ)], I); const T = "editor.semanticHighlighting"; function M(e, t, i) { var n; const o = null === (n = i.getValue(T, { overrideIdentifier: e.getLanguageIdentifier().language, resource: e.uri })) || void 0 === n ? void 0 : n.enabled; return "boolean" == typeof o ? o : t.getColorTheme().semanticHighlighting } class A extends o.JT { constructor(e, t, i, n) { super(), this._watchers = Object.create(null), this._semanticStyling = n; const o = e => { this._watchers[e.uri.toString()] = new P(e, t, this._semanticStyling) }, r = (e, t) => { t.dispose(), delete this._watchers[e.uri.toString()] }, s = () => { for (let n of e.getModels()) { const e = this._watchers[n.uri.toString()]; M(n, t, i) ? e || o(n) : e && r(n, e) } }; this._register(e.onModelAdded((e => { M(e, t, i) && o(e) }))), this._register(e.onModelRemoved((e => { const t = this._watchers[e.uri.toString()]; t && r(e, t) }))), this._register(i.onDidChangeConfiguration((e => { e.affectsConfiguration(T) && s() }))), this._register(t.onDidColorThemeChange(s)) } } class R extends o.JT { constructor(e, t) { super(), this._themeService = e, this._logService = t, this._caches = new WeakMap, this._register(this._themeService.onDidColorThemeChange( (() => { this._caches = new WeakMap }))) } get(e) { return this._caches.has(e) || this._caches.set(e, new C.$(e.getLegend(), this._themeService, this._logService)), this._caches.get(e) } } class O { constructor(e, t, i) { this._provider = e, this.resultId = t, this.data = i } dispose() { this._provider.releaseDocumentSemanticTokens(this.resultId) } } class P extends o.JT { constructor(e, t, i) { super(), this._isDisposed = !1, this._model = e, this._semanticStyling = i, this._fetchDocumentSemanticTokens = this._register(new g.pY((() => this._fetchDocumentSemanticTokensNow()), P.FETCH_DOCUMENT_SEMANTIC_TOKENS_DELAY)), this._currentDocumentResponse = null, this._currentDocumentRequestCancellationTokenSource = null, this._documentProvidersChangeListeners = [], this._register( this._model.onDidChangeContent((() => { this._fetchDocumentSemanticTokens.isScheduled() || this._fetchDocumentSemanticTokens .schedule() }))), 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 n = () => { (0, o.B9)(this._documentProvidersChangeListeners), this._documentProvidersChangeListeners = []; for (const t of d.wT.all(e)) "function" == typeof t.onDidChange && this._documentProvidersChangeListeners.push(t.onDidChange((() => this._fetchDocumentSemanticTokens.schedule(0)))) }; n(), this._register(d.wT.onDidChange((() => { n(), this._fetchDocumentSemanticTokens.schedule() }))), this._register(t.onDidColorThemeChange((e => { this._setDocumentSemanticTokens(null, null, null, []), this._fetchDocumentSemanticTokens .schedule() }))), this._fetchDocumentSemanticTokens.schedule(0) } dispose() { this._currentDocumentResponse && (this._currentDocumentResponse.dispose(), this._currentDocumentResponse = null), this._currentDocumentRequestCancellationTokenSource && (this._currentDocumentRequestCancellationTokenSource.cancel(), this._currentDocumentRequestCancellationTokenSource = null), this._setDocumentSemanticTokens(null, null, null, []), this._isDisposed = ! 0, super.dispose() } _fetchDocumentSemanticTokensNow() { if (this._currentDocumentRequestCancellationTokenSource) return; const e = new p.A, t = this._currentDocumentResponse && this._currentDocumentResponse.resultId || null, i = (0, y.ML)(this._model, t, e.token); if (!i) return void(this._currentDocumentResponse && this._model.setSemanticTokens( null, !1)); const { provider: n, request: o } = i; this._currentDocumentRequestCancellationTokenSource = e; const r = [], a = this._model.onDidChangeContent((e => { r.push(e) })), l = this._semanticStyling.get(n); o.then((e => { this._currentDocumentRequestCancellationTokenSource = null, a.dispose(), this._setDocumentSemanticTokens(n, e || null, l, r) }), (e => { e && (s.VV(e) || "string" == typeof e.message && -1 !== e.message .indexOf("busy")) || s.dL(e), this._currentDocumentRequestCancellationTokenSource = null, a.dispose(), r.length > 0 && (this._fetchDocumentSemanticTokens .isScheduled() || this._fetchDocumentSemanticTokens.schedule()) })) } static _copy(e, t, i, n, o) { for (let r = 0; r < o; r++) i[n + r] = e[t + r] } _setDocumentSemanticTokens(e, t, i, n) { const o = this._currentDocumentResponse, r = () => { n.length > 0 && !this._fetchDocumentSemanticTokens.isScheduled() && this._fetchDocumentSemanticTokens.schedule() }; if (this._currentDocumentResponse && (this._currentDocumentResponse.dispose(), this._currentDocumentResponse = null), this._isDisposed) e && t && e.releaseDocumentSemanticTokens(t.resultId); else if (e && i) { if (!t) return this._model.setSemanticTokens(null, !0), void r(); if ((0, y.Vj)(t)) { if (!o) return void this._model.setSemanticTokens(null, !0); if (0 === t.edits.length) t = { resultId: t.resultId, data: o.data }; else { let e = 0; for (const i of t.edits) e += (i.data ? i.data.length : 0) - i.deleteCount; const i = o.data, n = new Uint32Array(i.length + e); let r = i.length, s = n.length; for (let e = t.edits.length - 1; e >= 0; e--) { const o = t.edits[e], a = r - (o.start + o.deleteCount); a > 0 && (P._copy(i, r - a, n, s - a, a), s -= a), o.data && (P._copy( o.data, 0, n, s - o.data.length, o.data.length), s -= o.data.length), r = o.start } r > 0 && P._copy(i, 0, n, 0, r), t = { resultId: t.resultId, data: n } } } if ((0, y.Vl)(t)) { this._currentDocumentResponse = new O(e, t.resultId, t.data); const o = (0, C.h)(t, i, this._model.getLanguageIdentifier()); if (n.length > 0) for (const e of n) for (const t of o) for (const i of e.changes) t.applyEdit(i.range, i.text); this._model.setSemanticTokens(o, !0) } else this._model.setSemanticTokens(null, !0); r() } else this._model.setSemanticTokens(null, !1) } } P.FETCH_DOCUMENT_SEMANTIC_TOKENS_DELAY = 300 }, 8216: (e, t, i) => { "use strict"; i.d(t, { S: () => n }); const n = (0, i(2065).yh)("textModelService") }, 5072: (e, t, i) => { "use strict"; i.d(t, { $: () => s, h: () => a }); var n = i(4101), o = i(3557), r = i(8409); class s { constructor(e, t, i) { this._legend = e, this._themeService = t, this._logService = i, this._hashTable = new d, this._hasWarnedOverlappingTokens = !1 } getMetadata(e, t, i) { const r = this._hashTable.get(e, t, i.id); let s; if (r) s = r.metadata, this._logService.getLevel() === o.in.Trace && this._logService.trace( `SemanticTokensProviderStyling [CACHED] ${e} / ${t}: foreground ${n.NX.getForeground(s)}, fontStyle ${n.NX.getFontStyle(s).toString(2)}` ); else { let r = this._legend.tokenTypes[e]; const a = []; if (r) { let e = t; for (let t = 0; e > 0 && t < this._legend.tokenModifiers.length; t++) 1 & e && a.push(this._legend.tokenModifiers[t]), e >>= 1; e > 0 && this._logService.getLevel() === o.in.Trace && (this._logService .trace( `SemanticTokensProviderStyling: unknown token modifier index: ${t.toString(2)} for legend: ${JSON.stringify(this._legend.tokenModifiers)}` ), a.push("not-in-legend")); const n = this._themeService.getColorTheme().getTokenStyleMetadata(r, a, i.language); void 0 === n ? s = 2147483647 : (s = 0, void 0 !== n.italic && (s |= 1 | (n.italic ? 1 : 0) << 11), void 0 !== n.bold && (s |= 2 | (n.bold ? 2 : 0) << 11), void 0 !== n.underline && (s |= 4 | (n.underline ? 4 : 0) << 11), n.foreground && (s |= 8 | n.foreground << 14), 0 === s && (s = 2147483647)) } else this._logService.getLevel() === o.in.Trace && this._logService .trace( `SemanticTokensProviderStyling: unknown token type index: ${e} for legend: ${JSON.stringify(this._legend.tokenTypes)}` ), s = 2147483647, r = "not-in-legend"; this._hashTable.add(e, t, i.id, s), this._logService.getLevel() === o .in.Trace && this._logService.trace( `SemanticTokensProviderStyling ${e} (${r}) / ${t} (${a.join(" ")}): foreground ${n.NX.getForeground(s)}, fontStyle ${n.NX.getFontStyle(s).toString(2)}` ) } return s } warnOverlappingSemanticTokens(e, t) { this._hasWarnedOverlappingTokens || (this._hasWarnedOverlappingTokens = ! 0, console.warn( `Overlapping semantic tokens detected at lineNumber ${e}, column ${t}` )) } } function a(e, t, i) { const n = e.data, o = e.data.length / 5 | 0, s = Math.max(Math.ceil(o / 1024), 400), a = []; let l = 0, d = 1, c = 0; for (; l < o;) { const e = l; let h = Math.min(e + s, o); if (h < o) { let t = h; for (; t - 1 > e && 0 === n[5 * t];) t--; if (t - 1 === e) { let e = h; for (; e + 1 < o && 0 === n[5 * e];) e++; h = e } else h = t } let u = new Uint32Array(4 * (h - e)), g = 0, p = 0, m = 0, f = 0, _ = 0; for (; l < h;) { const e = 5 * l, o = n[e], r = n[e + 1], s = d + o, a = 0 === o ? c + r : r, h = n[e + 2], b = n[e + 3], v = n[e + 4], w = t.getMetadata(b, v, i); 2147483647 !== w && (0 === p && (p = s), m === s && _ > a && (t.warnOverlappingSemanticTokens( s, a + 1), f < a ? u[g - 4 + 2] = a : g -= 4), u[g] = s - p, u[g + 1] = a, u[g + 2] = a + h, u[g + 3] = w, g += 4, m = s, f = a, _ = a + h), d = s, c = a, l++ } g !== u.length && (u = u.subarray(0, g)); const b = new r.Wz(p, new r.OU(u)); a.push(b) } return a } class l { constructor(e, t, i, n) { this.tokenTypeIndex = e, this.tokenModifierSet = t, this.languageId = i, this.metadata = n, this.next = null } } class d { constructor() { this._elementsCount = 0, this._currentLengthIndex = 0, this._currentLength = d._SIZES[this._currentLengthIndex], this._growCount = Math.round(this ._currentLengthIndex + 1 < d._SIZES.length ? 2 / 3 * this._currentLength : 0), this._elements = [], d._nullOutEntries(this._elements, this._currentLength) } static _nullOutEntries(e, t) { for (let i = 0; i < t; i++) e[i] = null } _hash2(e, t) { return (e << 5) - e + t | 0 } _hashFunc(e, t, i) { return this._hash2(this._hash2(e, t), i) % this._currentLength } get(e, t, i) { const n = this._hashFunc(e, t, i); let o = this._elements[n]; for (; o;) { if (o.tokenTypeIndex === e && o.tokenModifierSet === t && o.languageId === i) return o; o = o.next } return null } add(e, t, i, n) { if (this._elementsCount++, 0 !== this._growCount && this._elementsCount >= this._growCount) { const e = this._elements; this._currentLengthIndex++, this._currentLength = d._SIZES[this._currentLengthIndex], this._growCount = Math.round(this._currentLengthIndex + 1 < d._SIZES .length ? 2 / 3 * this._currentLength : 0), this._elements = [], d._nullOutEntries( this._elements, this._currentLength); for (const t of e) { let e = t; for (; e;) { const t = e.next; e.next = null, this._add(e), e = t } } } this._add(new l(e, t, i, n)) } _add(e) { const t = this._hashFunc(e.tokenTypeIndex, e.tokenModifierSet, e.languageId); e.next = this._elements[t], this._elements[t] = e } } d._SIZES = [3, 7, 13, 31, 61, 127, 251, 509, 1021, 2039, 4093, 8191, 16381, 32749, 65521, 131071, 262139, 524287, 1048573, 2097143 ] }, 3187: (e, t, i) => { "use strict"; i.d(t, { V: () => o, y: () => r }); var n = i(2065); const o = (0, n.yh)("textResourceConfigurationService"), r = (0, n.yh)("textResourcePropertiesService") }, 913: (e, t, i) => { "use strict"; i.d(t, { Oe: () => n, ug: () => o, qq: () => r, ld: () => s, UX: () => a, aq: () => l, B8: () => d, xi: () => c, UL: () => h }); var n, o, r, s, a, l, d, c, h, u = i(3580); ! function(e) { e.noSelection = u.N("noSelection", "No selection"), e.singleSelectionRange = u.N("singleSelectionRange", "Line {0}, Column {1} ({2} selected)"), e.singleSelection = u.N("singleSelection", "Line {0}, Column {1}"), e.multiSelectionRange = u.N("multiSelectionRange", "{0} selections ({1} characters selected)"), e.multiSelection = u.N("multiSelection", "{0} selections"), e.emergencyConfOn = u.N("emergencyConfOn", "Now changing the setting `accessibilitySupport` to 'on'."), e.openingDocs = u.N("openingDocs", "Now opening the Editor Accessibility documentation page."), e.readonlyDiffEditor = u.N("readonlyDiffEditor", " in a read-only pane of a diff editor."), e.editableDiffEditor = u.N("editableDiffEditor", " in a pane of a diff editor."), e.readonlyEditor = u.N("readonlyEditor", " in a read-only code editor"), e.editableEditor = u.N("editableEditor", " in a code editor"), e.changeConfigToOnMac = u.N( "changeConfigToOnMac", "To configure the editor to be optimized for usage with a Screen Reader press Command+E now." ), e.changeConfigToOnWinLinux = u.N("changeConfigToOnWinLinux", "To configure the editor to be optimized for usage with a Screen Reader press Control+E now." ), e.auto_on = u.N("auto_on", "The editor is configured to be optimized for usage with a Screen Reader." ), e.auto_off = u.N("auto_off", "The editor is configured to never be optimized for usage with a Screen Reader, which is not the case at this time." ), e.tabFocusModeOnMsg = u.N("tabFocusModeOnMsg", "Pressing Tab in the current editor will move focus to the next focusable element. Toggle this behavior by pressing {0}." ), e.tabFocusModeOnMsgNoKb = u.N("tabFocusModeOnMsgNoKb", "Pressing Tab in the current editor will move focus to the next focusable element. The command {0} is currently not triggerable by a keybinding." ), e.tabFocusModeOffMsg = u.N("tabFocusModeOffMsg", "Pressing Tab in the current editor will insert the tab character. Toggle this behavior by pressing {0}." ), e.tabFocusModeOffMsgNoKb = u.N("tabFocusModeOffMsgNoKb", "Pressing Tab in the current editor will insert the tab character. The command {0} is currently not triggerable by a keybinding." ), e.openDocMac = u.N("openDocMac", "Press Command+H now to open a browser window with more information related to editor accessibility." ), e.openDocWinLinux = u.N("openDocWinLinux", "Press Control+H now to open a browser window with more information related to editor accessibility." ), e.outroMsg = u.N("outroMsg", "You can dismiss this tooltip and return to the editor by pressing Escape or Shift+Escape." ), e.showAccessibilityHelpAction = u.N("showAccessibilityHelpAction", "Show Accessibility Help") }(n || (n = {})), function(e) { e.inspectTokensAction = u.N("inspectTokens", "Developer: Inspect Tokens") }(o || (o = {})), function(e) { e.gotoLineActionLabel = u.N("gotoLineActionLabel", "Go to Line/Column...") }(r || (r = {})), function(e) { e.helpQuickAccessActionLabel = u.N("helpQuickAccess", "Show all Quick Access Providers") }(s || (s = {})), function(e) { e.quickCommandActionLabel = u.N("quickCommandActionLabel", "Command Palette"), e.quickCommandHelp = u.N("quickCommandActionHelp", "Show And Run Commands") }(a || (a = {})), function(e) { e.quickOutlineActionLabel = u.N("quickOutlineActionLabel", "Go to Symbol..."), e.quickOutlineByCategoryActionLabel = u.N( "quickOutlineByCategoryActionLabel", "Go to Symbol by Category...") }(l || (l = {})), function(e) { e.editorViewAccessibleLabel = u.N("editorViewAccessibleLabel", "Editor content"), e.accessibilityHelpMessage = u.N( "accessibilityHelpMessage", "Press Alt+F1 for Accessibility Options.") }(d || (d = {})), function(e) { e.toggleHighContrast = u.N("toggleHighContrast", "Toggle High Contrast Theme") }(c || (c = {})), function(e) { e.bulkEditServiceSummary = u.N("bulkEditServiceSummary", "Made {0} edits in {1} files") }(h || (h = {})) }, 7869: (e, t, i) => { "use strict"; i.d(t, { Kh: () => a, Mm: () => l, n0: () => g, fY: () => p, tR: () => f, Ym: () => _, hw: () => b, DD: () => w, zk: () => C, Yp: () => y, TC: () => S, Dl: () => x, zw: () => k, e_: () => L, kp: () => D, zu: () => E, x3: () => I, N5: () => T, m9: () => A, lK: () => R, Re: () => O, eS: () => P, zJ: () => F, Vs: () => B, CE: () => W, UP: () => z, r0: () => V, m1: () => H, ts: () => U }); var n = i(3580), o = i(1264), r = i(3910), s = i(7781); const a = (0, r.P6)("editor.lineHighlightBackground", { dark: null, light: null, hc: null }, n.N("lineHighlight", "Background color for the highlight of line at the cursor position.")), l = (0, r.P6)("editor.lineHighlightBorder", { dark: "#282828", light: "#eeeeee", hc: "#f38518" }, n.N("lineHighlightBorderBox", "Background color for the border around the line at the cursor position." )), d = (0, r.P6)("editor.rangeHighlightBackground", { dark: "#ffffff0b", light: "#fdff0033", hc: null }, n.N("rangeHighlight", "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), c = (0, r.P6)("editor.rangeHighlightBorder", { dark: null, light: null, hc: r.xL }, n.N("rangeHighlightBorder", "Background color of the border around highlighted ranges."), !0), h = (0, r.P6)("editor.symbolHighlightBackground", { dark: r.MU, light: r.MU, hc: null }, n.N("symbolHighlight", "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), u = (0, r.P6)("editor.symbolHighlightBorder", { dark: null, light: null, hc: r.xL }, n.N("symbolHighlightBorder", "Background color of the border around highlighted symbols."), !0), g = (0, r.P6)("editorCursor.foreground", { dark: "#AEAFAD", light: o.Il.black, hc: o.Il.white }, n.N("caret", "Color of the editor cursor.")), p = (0, r.P6)("editorCursor.background", null, n.N( "editorCursorBackground", "The background color of the editor cursor. Allows customizing the color of a character overlapped by a block cursor." )), m = (0, r.P6)("editorWhitespace.foreground", { dark: "#e3e4e229", light: "#33333333", hc: "#e3e4e229" }, n.N("editorWhitespaces", "Color of whitespace characters in the editor.")), f = (0, r.P6)("editorIndentGuide.background", { dark: m, light: m, hc: m }, n.N("editorIndentGuides", "Color of the editor indentation guides.")), _ = (0, r.P6)("editorIndentGuide.activeBackground", { dark: m, light: m, hc: m }, n.N("editorActiveIndentGuide", "Color of the active editor indentation guides.")), b = (0, r.P6)("editorLineNumber.foreground", { dark: "#858585", light: "#237893", hc: o.Il.white }, n.N("editorLineNumbers", "Color of editor line numbers.")), v = (0, r.P6)("editorActiveLineNumber.foreground", { dark: "#c6c6c6", light: "#0B216F", hc: r.xL }, n.N("editorActiveLineNumber", "Color of editor active line number"), ! 1, n.N("deprecatedEditorActiveLineNumber", "Id is deprecated. Use 'editorLineNumber.activeForeground' instead.")), w = (0, r.P6)("editorLineNumber.activeForeground", { dark: v, light: v, hc: v }, n.N("editorActiveLineNumber", "Color of editor active line number")), C = (0, r.P6)("editorRuler.foreground", { dark: "#5A5A5A", light: o.Il.lightgrey, hc: o.Il.white }, n.N("editorRuler", "Color of the editor rulers.")), y = (0, r.P6)("editorCodeLens.foreground", { dark: "#999999", light: "#919191", hc: "#999999" }, n.N("editorCodeLensForeground", "Foreground color of editor CodeLens")), S = (0, r.P6)("editorBracketMatch.background", { dark: "#0064001a", light: "#0064001a", hc: "#0064001a" }, n.N("editorBracketMatchBackground", "Background color behind matching brackets")), x = (0, r.P6)("editorBracketMatch.border", { dark: "#888", light: "#B9B9B9", hc: r.lR }, n.N("editorBracketMatchBorder", "Color for matching brackets boxes")), k = (0, r.P6)("editorOverviewRuler.border", { dark: "#7f7f7f4d", light: "#7f7f7f4d", hc: "#7f7f7f4d" }, n.N("editorOverviewRulerBorder", "Color of the overview ruler border.")), L = (0, r.P6)("editorOverviewRuler.background", null, n.N( "editorOverviewRulerBackground", "Background color of the editor overview ruler. Only used when the minimap is enabled and placed on the right side of the editor." )), N = (0, r.P6)("editorGutter.background", { dark: r.cv, light: r.cv, hc: r.cv }, n.N("editorGutter", "Background color of the editor gutter. The gutter contains the glyph margins and the line numbers." )), D = (0, r.P6)("editorUnnecessaryCode.border", { dark: null, light: null, hc: o.Il.fromHex("#fff").transparent(.8) }, n.N("unnecessaryCodeBorder", "Border color of unnecessary (unused) source code in the editor.")), E = (0, r.P6)("editorUnnecessaryCode.opacity", { dark: o.Il.fromHex("#000a"), light: o.Il.fromHex("#0007"), hc: null }, n.N("unnecessaryCodeOpacity", "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." )), I = (0, r.P6)("editorGhostText.border", { dark: null, light: null, hc: o.Il.fromHex("#fff").transparent(.8) }, n.N("editorGhostTextBorder", "Border color of ghost text in the editor.")), T = (0, r.P6)("editorGhostText.foreground", { dark: o.Il.fromHex("#ffffff56"), light: o.Il.fromHex("#0007"), hc: null }, n.N("editorGhostTextForeground", "Foreground color of the ghost text in the editor.")), M = new o.Il(new o.VS(0, 122, 204, .6)), A = (0, r.P6)("editorOverviewRuler.rangeHighlightForeground", { dark: M, light: M, hc: M }, n.N("overviewRulerRangeHighlight", "Overview ruler marker color for range highlights. The color must not be opaque so as not to hide underlying decorations." ), !0), R = (0, r.P6)("editorOverviewRuler.errorForeground", { dark: new o.Il(new o.VS(255, 18, 18, .7)), light: new o.Il(new o.VS(255, 18, 18, .7)), hc: new o.Il(new o.VS(255, 50, 50, 1)) }, n.N("overviewRuleError", "Overview ruler marker color for errors.")), O = (0, r.P6)("editorOverviewRuler.warningForeground", { dark: r.uo, light: r.uo, hc: r.pW }, n.N("overviewRuleWarning", "Overview ruler marker color for warnings.")), P = (0, r.P6)("editorOverviewRuler.infoForeground", { dark: r.c6, light: r.c6, hc: r.T8 }, n.N("overviewRuleInfo", "Overview ruler marker color for infos.")), F = (0, r.P6)("editorBracketHighlight.foreground1", { dark: "#FFD700", light: "#0431FAFF", hc: "#FFD700" }, n.N("editorBracketHighlightForeground1", "Foreground color of brackets (1). Requires enabling bracket pair colorization." )), B = (0, r.P6)("editorBracketHighlight.foreground2", { dark: "#DA70D6", light: "#319331FF", hc: "#DA70D6" }, n.N("editorBracketHighlightForeground2", "Foreground color of brackets (2). Requires enabling bracket pair colorization." )), W = (0, r.P6)("editorBracketHighlight.foreground3", { dark: "#179FFF", light: "#7B3814FF", hc: "#87CEFA" }, n.N("editorBracketHighlightForeground3", "Foreground color of brackets (3). Requires enabling bracket pair colorization." )), z = (0, r.P6)("editorBracketHighlight.foreground4", { dark: "#00000000", light: "#00000000", hc: "#00000000" }, n.N("editorBracketHighlightForeground4", "Foreground color of brackets (4). Requires enabling bracket pair colorization." )), V = (0, r.P6)("editorBracketHighlight.foreground5", { dark: "#00000000", light: "#00000000", hc: "#00000000" }, n.N("editorBracketHighlightForeground5", "Foreground color of brackets (5). Requires enabling bracket pair colorization." )), H = (0, r.P6)("editorBracketHighlight.foreground6", { dark: "#00000000", light: "#00000000", hc: "#00000000" }, n.N("editorBracketHighlightForeground6", "Foreground color of brackets (6). Requires enabling bracket pair colorization." )), U = (0, r.P6)("editorBracketHighlight.unexpectedBracket.foreground", { dark: new o.Il(new o.VS(255, 18, 18, .8)), light: new o.Il(new o.VS(255, 18, 18, .8)), hc: new o.Il(new o.VS(255, 50, 50, 1)) }, n.N("editorBracketHighlightUnexpectedBracketForeground", "Foreground color of unexpected brackets.")); (0, s.Ic)(((e, t) => { const i = e.getColor(r.cv); i && t.addRule( `.monaco-editor, .monaco-editor-background, .monaco-editor .inputarea.ime-input { background-color: ${i}; }` ); const n = e.getColor(r.NO); n && t.addRule( `.monaco-editor, .monaco-editor .inputarea.ime-input { color: ${n}; }` ); const o = e.getColor(N); o && t.addRule(`.monaco-editor .margin { background-color: ${o}; }`); const s = e.getColor(d); s && t.addRule( `.monaco-editor .rangeHighlight { background-color: ${s}; }`); const a = e.getColor(c); a && t.addRule( `.monaco-editor .rangeHighlight { border: 1px ${"hc"===e.type?"dotted":"solid"} ${a}; }` ); const l = e.getColor(h); l && t.addRule( `.monaco-editor .symbolHighlight { background-color: ${l}; }`); const g = e.getColor(u); g && t.addRule( `.monaco-editor .symbolHighlight { border: 1px ${"hc"===e.type?"dotted":"solid"} ${g}; }` ); const p = e.getColor(m); p && (t.addRule(`.monaco-editor .mtkw { color: ${p} !important; }`), t .addRule(`.monaco-editor .mtkz { color: ${p} !important; }`)) })) }, 2003: (e, t, i) => { "use strict"; i.d(t, { EY: () => o, Tj: () => r }); class n { constructor(e, t, i) { this._colorZoneBrand = void 0, this.from = 0 | e, this.to = 0 | t, this.colorId = 0 | i } static compare(e, t) { return e.colorId === t.colorId ? e.from === t.from ? e.to - t.to : e.from - t.from : e.colorId - t.colorId } } class o { constructor(e, t, i) { this._overviewRulerZoneBrand = void 0, this.startLineNumber = e, this.endLineNumber = t, this.color = i, this._colorZone = null } static compare(e, t) { return e.color === t.color ? e.startLineNumber === t.startLineNumber ? e.endLineNumber - t.endLineNumber : e.startLineNumber - t.startLineNumber : e.color < t.color ? -1 : 1 } setColorZone(e) { this._colorZone = e } getColorZones() { return this._colorZone } } class r { constructor(e) { this._getVerticalOffsetForLine = e, this._zones = [], this._colorZonesInvalid = ! 1, this._lineHeight = 0, this._domWidth = 0, this._domHeight = 0, this._outerHeight = 0, this._pixelRatio = 1, this._lastAssignedId = 0, this._color2Id = Object.create(null), this._id2Color = [] } getId2Color() { return this._id2Color } setZones(e) { this._zones = e, this._zones.sort(o.compare) } setLineHeight(e) { return this._lineHeight !== e && (this._lineHeight = e, this._colorZonesInvalid = ! 0, !0) } setPixelRatio(e) { this._pixelRatio = e, this._colorZonesInvalid = !0 } getDOMWidth() { return this._domWidth } getCanvasWidth() { return this._domWidth * this._pixelRatio } setDOMWidth(e) { return this._domWidth !== e && (this._domWidth = e, this._colorZonesInvalid = ! 0, !0) } getDOMHeight() { return this._domHeight } getCanvasHeight() { return this._domHeight * this._pixelRatio } setDOMHeight(e) { return this._domHeight !== e && (this._domHeight = e, this._colorZonesInvalid = ! 0, !0) } getOuterHeight() { return this._outerHeight } setOuterHeight(e) { return this._outerHeight !== e && (this._outerHeight = e, this._colorZonesInvalid = ! 0, !0) } resolveColorZones() { const e = this._colorZonesInvalid, t = Math.floor(this._lineHeight), i = Math.floor(this.getCanvasHeight()), o = i / Math.floor(this._outerHeight), r = Math.floor(4 * this._pixelRatio / 2); let s = []; for (let a = 0, l = this._zones.length; a < l; a++) { const l = this._zones[a]; if (!e) { const e = l.getColorZones(); if (e) { s.push(e); continue } } const d = Math.floor(o * this._getVerticalOffsetForLine(l.startLineNumber)), c = Math.floor(o * (this._getVerticalOffsetForLine(l.endLineNumber) + t)); let h = Math.floor((d + c) / 2), u = c - h; u < r && (u = r), h - u < 0 && (h = u), h + u > i && (h = i - u); const g = l.color; let p = this._color2Id[g]; p || (p = ++this._lastAssignedId, this._color2Id[g] = p, this._id2Color[ p] = g); const m = new n(h - u, h + u, p); l.setColorZone(m), s.push(m) } return this._colorZonesInvalid = !1, s.sort(n.compare), s } } }, 2550: (e, t, i) => { "use strict"; i.d(t, { Kp: () => o, k: () => a }); var n = i(7295); class o { constructor(e, t, i, n) { this.startColumn = e, this.endColumn = t, this.className = i, this.type = n, this._lineDecorationBrand = void 0 } static _equals(e, t) { return e.startColumn === t.startColumn && e.endColumn === t.endColumn && e.className === t.className && e.type === t.type } static equalsArr(e, t) { const i = e.length; if (i !== t.length) return !1; for (let n = 0; n < i; n++) if (!o._equals(e[n], t[n])) return !1; return !0 } static extractWrapped(e, t, i) { if (0 === e.length) return e; const n = t + 1, r = i + 1, s = i - t, a = []; let l = 0; for (const t of e) t.endColumn <= n || t.startColumn >= r || (a[l++] = new o(Math.max(1, t.startColumn - n + 1), Math.min(s + 1, t.endColumn - n + 1), t.className, t.type)); return a } static filter(e, t, i, n) { if (0 === e.length) return []; let r = [], s = 0; for (let a = 0, l = e.length; a < l; a++) { const l = e[a], d = l.range; if (d.endLineNumber < t || d.startLineNumber > t) continue; if (d.isEmpty() && (0 === l.type || 3 === l.type)) continue; const c = d.startLineNumber === t ? d.startColumn : i, h = d.endLineNumber === t ? d.endColumn : n; r[s++] = new o(c, h, l.inlineClassName, l.type) } return r } static _typeCompare(e, t) { const i = [2, 0, 1, 3]; return i[e] - i[t] } static compare(e, t) { if (e.startColumn !== t.startColumn) return e.startColumn - t.startColumn; if (e.endColumn !== t.endColumn) return e.endColumn - t.endColumn; const i = o._typeCompare(e.type, t.type); return 0 !== i ? i : e.className !== t.className ? e.className < t.className ? -1 : 1 : 0 } } class r { constructor(e, t, i, n) { this.startOffset = e, this.endOffset = t, this.className = i, this.metadata = n } } class s { constructor() { this.stopOffsets = [], this.classNames = [], this.metadata = [], this.count = 0 } static _metadata(e) { let t = 0; for (let i = 0, n = e.length; i < n; i++) t |= e[i]; return t } consumeLowerThan(e, t, i) { for (; this.count > 0 && this.stopOffsets[0] < e;) { let e = 0; for (; e + 1 < this.count && this.stopOffsets[e] === this.stopOffsets[ e + 1];) e++; i.push(new r(t, this.stopOffsets[e], this.classNames.join(" "), s._metadata( this.metadata))), t = this.stopOffsets[e] + 1, this.stopOffsets.splice( 0, e + 1), this.classNames.splice(0, e + 1), this.metadata.splice(0, e + 1), this.count -= e + 1 } return this.count > 0 && t < e && (i.push(new r(t, e - 1, this.classNames .join(" "), s._metadata(this.metadata))), t = e), t } insert(e, t, i) { if (0 === this.count || this.stopOffsets[this.count - 1] <= e) this.stopOffsets .push(e), this.classNames.push(t), this.metadata.push(i); else for (let n = 0; n < this.count; n++) if (this.stopOffsets[n] >= e) { this.stopOffsets.splice(n, 0, e), this.classNames.splice(n, 0, t), this.metadata.splice(n, 0, i); break } this.count++ } } class a { static normalize(e, t) { if (0 === t.length) return []; let i = []; const o = new s; let r = 0; for (let s = 0, a = t.length; s < a; s++) { const a = t[s]; let l = a.startColumn, d = a.endColumn; const c = a.className, h = 1 === a.type ? 2 : 2 === a.type ? 4 : 0; if (l > 1) { const t = e.charCodeAt(l - 2); n.ZG(t) && l-- } if (d > 1) { const t = e.charCodeAt(d - 2); n.ZG(t) && d-- } const u = l - 1, g = d - 2; r = o.consumeLowerThan(u, r, i), 0 === o.count && (r = u), o.insert(g, c, h) } return o.consumeLowerThan(1073741824, r, i), i } } }, 7736: (e, t, i) => { "use strict"; i.d(t, { zG: () => a, IJ: () => l, Nd: () => d, d1: () => u, tF: () => p }); var n = i(7295), o = i(72), r = i(2550); class s { constructor(e, t, i) { this._linePartBrand = void 0, this.endIndex = e, this.type = t, this.metadata = i } isWhitespace() { return !!(1 & this.metadata) } isPseudoAfter() { return !!(4 & this.metadata) } } class a { constructor(e, t) { this.startOffset = e, this.endOffset = t } equals(e) { return this.startOffset === e.startOffset && this.endOffset === e.endOffset } } class l { constructor(e, t, i, n, o, s, a, l, d, c, h, u, g, p, m, f, _, b, v) { this.useMonospaceOptimizations = e, this.canUseHalfwidthRightwardsArrow = t, this.lineContent = i, this.continuesWithWrappedLine = n, this.isBasicASCII = o, this.containsRTL = s, this.fauxIndentLength = a, this.lineTokens = l, this.lineDecorations = d.sort(r.Kp.compare), this.tabSize = c, this.startVisibleColumn = h, this.spaceWidth = u, this.stopRenderingLineAfter = m, this.renderWhitespace = "all" === f ? 4 : "boundary" === f ? 1 : "selection" === f ? 2 : "trailing" === f ? 3 : 0, this.renderControlCharacters = _, this.fontLigatures = b, this.selectionsOnLine = v && v.sort(((e, t) => e.startOffset < t.startOffset ? -1 : 1)), Math.abs(p - u) < Math.abs( g - u) ? (this.renderSpaceWidth = p, this.renderSpaceCharCode = 11825) : (this.renderSpaceWidth = g, this.renderSpaceCharCode = 183) } sameSelection(e) { if (null === this.selectionsOnLine) return null === e; if (null === e) return !1; if (e.length !== this.selectionsOnLine.length) return !1; for (let t = 0; t < this.selectionsOnLine.length; t++) if (!this.selectionsOnLine[t].equals(e[t])) return !1; return !0 } equals(e) { return this.useMonospaceOptimizations === e.useMonospaceOptimizations && this.canUseHalfwidthRightwardsArrow === e.canUseHalfwidthRightwardsArrow && this.lineContent === e.lineContent && this.continuesWithWrappedLine === e.continuesWithWrappedLine && this.isBasicASCII === e.isBasicASCII && this.containsRTL === e.containsRTL && this.fauxIndentLength === e.fauxIndentLength && this.tabSize === e.tabSize && this.startVisibleColumn === e.startVisibleColumn && this.spaceWidth === e.spaceWidth && this.renderSpaceWidth === e.renderSpaceWidth && this.renderSpaceCharCode === e.renderSpaceCharCode && this.stopRenderingLineAfter === e.stopRenderingLineAfter && this.renderWhitespace === e.renderWhitespace && this.renderControlCharacters === e.renderControlCharacters && this.fontLigatures === e.fontLigatures && r.Kp.equalsArr(this.lineDecorations, e.lineDecorations) && this.lineTokens.equals(e.lineTokens) && this.sameSelection(e.selectionsOnLine) } } class d { constructor(e, t) { this.partIndex = e, this.charIndex = t } } class c { constructor(e, t) { this.length = e, this._data = new Uint32Array(this.length), this._absoluteOffsets = new Uint32Array(this.length) } static getPartIndex(e) { return (4294901760 & e) >>> 16 } static getCharIndex(e) { return (65535 & e) >>> 0 } setColumnInfo(e, t, i, n) { const o = (t << 16 | i << 0) >>> 0; this._data[e - 1] = o, this._absoluteOffsets[e - 1] = n + i } getAbsoluteOffset(e) { return 0 === this._absoluteOffsets.length ? 0 : this._absoluteOffsets[ e - 1] } charOffsetToPartData(e) { return 0 === this.length ? 0 : e < 0 ? this._data[0] : e >= this.length ? this._data[this.length - 1] : this._data[e] } getDomPosition(e) { const t = this.charOffsetToPartData(e - 1), i = c.getPartIndex(t), n = c.getCharIndex(t); return new d(i, n) } getColumn(e, t) { return this.partDataToCharOffset(e.partIndex, t, e.charIndex) + 1 } partDataToCharOffset(e, t, i) { if (0 === this.length) return 0; let n = (e << 16 | i << 0) >>> 0, o = 0, r = this.length - 1; for (; o + 1 < r;) { let e = o + r >>> 1, t = this._data[e]; if (t === n) return e; t > n ? r = e : o = e } if (o === r) return o; let s = this._data[o], a = this._data[r]; if (s === n) return o; if (a === n) return r; let l, d = c.getPartIndex(s), h = c.getCharIndex(s); return l = d !== c.getPartIndex(a) ? t : c.getCharIndex(a), i - h <= l - i ? o : r } } class h { constructor(e, t, i) { this._renderLineOutputBrand = void 0, this.characterMapping = e, this.containsRTL = t, this.containsForeignElements = i } } function u(e, t) { if (0 === e.lineContent.length) { if (e.lineDecorations.length > 0) { t.appendASCIIString(""); let i = 0, n = 0, o = 0; for (const r of e.lineDecorations) 1 !== r.type && 2 !== r.type || (t.appendASCIIString( ''), 1 === r.type && (o |= 1, i++), 2 === r.type && (o |= 2, n++)); t.appendASCIIString(""); const r = new c(1, i + n); return r.setColumnInfo(1, i, 0, 0), new h(r, !1, o) } return t.appendASCIIString(""), new h(new c(0, 0), !1, 0) } return function(e, t) { const i = e.fontIsMonospace, o = e.canUseHalfwidthRightwardsArrow, r = e.containsForeignElements, s = e.lineContent, a = e.len, l = e.isOverflowing, d = e.parts, u = e.fauxIndentLength, g = e.tabSize, p = e.startVisibleColumn, m = e.containsRTL, f = e.spaceWidth, _ = e.renderSpaceCharCode, b = e.renderWhitespace, v = e.renderControlCharacters, w = new c(a + 1, d.length); let C = !1, y = 0, S = p, x = 0, k = 0, L = 0, N = 0; m ? t.appendASCIIString('') : t.appendASCIIString( ""); for (let e = 0, l = d.length; e < l; e++) { N += L; const l = d[e], c = l.endIndex, h = l.type, p = 0 !== b && l.isWhitespace(), m = p && !i && ("mtkw" === h || !r), D = y === c && l.isPseudoAfter(); if (x = 0, t.appendASCIIString('= u && (t += n) } } for (m && (t.appendASCIIString(' style="width:'), t.appendASCIIString( String(f * i)), t.appendASCIIString('px"')), t.appendASCII(62); y < c; y++) { let i; if (w.setColumnInfo(y + 1, e - k, x, N), k = 0, 9 === s.charCodeAt( y)) { i = g - S % g | 0, !o || i > 1 ? t.write1(8594) : t.write1(65515); for (let e = 2; e <= i; e++) t.write1(160) } else i = 1, t.write1(_); x += i, y >= u && (S += i) } L = i } else { let i = 0; for (t.appendASCII(62); y < c; y++) { w.setColumnInfo(y + 1, e - k, x, N), k = 0; const o = s.charCodeAt(y); let r = 1, a = 1; switch (o) { case 9: r = g - S % g, a = r; for (let e = 1; e <= r; e++) t.write1(160); break; case 32: t.write1(160); break; case 60: t.appendASCIIString("<"); break; case 62: t.appendASCIIString(">"); break; case 38: t.appendASCIIString("&"); break; case 0: v ? t.write1(9216) : t.appendASCIIString("�"); break; case 65279: case 8232: case 8233: case 133: t.write1(65533); break; default: n.K7(o) && a++, v && o < 32 ? t.write1(9216 + o) : v && 127 === o ? t.write1(9249) : t.write1(o) } x += r, i += r, y >= u && (S += a) } L = i } D ? k++ : k = 0, y >= a && !C && l.isPseudoAfter() && (C = !0, w.setColumnInfo( y + 1, e, x, N)), t.appendASCIIString("") } return C || w.setColumnInfo(a + 1, d.length - 1, x, N), l && t.appendASCIIString( ""), t.appendASCIIString(""), new h(w, m, r) }(function(e) { const t = e.lineContent; let i, o; - 1 !== e.stopRenderingLineAfter && e.stopRenderingLineAfter < t.length ? (i = !0, o = e.stopRenderingLineAfter) : (i = !1, o = t.length); let a = function(e, t, i) { let n = [], o = 0; t > 0 && (n[o++] = new s(t, "", 0)); for (let r = 0, a = e.getCount(); r < a; r++) { const a = e.getEndOffset(r); if (a <= t) continue; const l = e.getClassName(r); if (a >= i) { n[o++] = new s(i, l, 0); break } n[o++] = new s(a, l, 0) } return n }(e.lineTokens, e.fauxIndentLength, o); (4 === e.renderWhitespace || 1 === e.renderWhitespace || 2 === e.renderWhitespace && e.selectionsOnLine || 3 === e.renderWhitespace) && (a = function(e, t, i, o) { const r = e.continuesWithWrappedLine, a = e.fauxIndentLength, l = e.tabSize, d = e.startVisibleColumn, c = e.useMonospaceOptimizations, h = e.selectionsOnLine, u = 1 === e.renderWhitespace, g = 3 === e.renderWhitespace, p = e.renderSpaceWidth !== e.spaceWidth; let m = [], f = 0, _ = 0, b = o[_].type, v = o[_].endIndex; const w = o.length; let C, y = !1, S = n.LC(t); - 1 === S ? (y = !0, S = i, C = i) : C = n.ow(t); let x = !1, k = 0, L = h && h[k], N = d % l; for (let e = a; e < i; e++) { const r = t.charCodeAt(e); let d; if (L && e >= L.endOffset && (k++, L = h && h[k]), e < S || e > C) d = !0; else if (9 === r) d = !0; else if (32 === r) if (u) if (x) d = !0; else { const n = e + 1 < i ? t.charCodeAt(e + 1) : 0; d = 32 === n || 9 === n } else d = !0; else d = !1; if (d && h && (d = !!L && L.startOffset <= e && L.endOffset > e), d && g && (d = y || e > C), x) { if (!d || !c && N >= l) { if (p) for (let t = (f > 0 ? m[f - 1].endIndex : a) + 1; t <= e; t++) m[ f++] = new s(t, "mtkw", 1); else m[f++] = new s(e, "mtkw", 1); N %= l } } else(e === v || d && e > a) && (m[f++] = new s(e, b, 0), N %= l); for (9 === r ? N = l : n.K7(r) ? N += 2 : N++, x = d; e === v && ( _++, _ < w);) b = o[_].type, v = o[_].endIndex } let D = !1; if (x) if (r && u) { let e = i > 0 ? t.charCodeAt(i - 1) : 0, n = i > 1 ? t.charCodeAt(i - 2) : 0; 32 === e && 32 !== n && 9 !== n || (D = !0) } else D = !0; if (D) if (p) for (let e = (f > 0 ? m[f - 1].endIndex : a) + 1; e <= i; e++) m[ f++] = new s(e, "mtkw", 1); else m[f++] = new s(i, "mtkw", 1); else m[f++] = new s(i, b, 0); return m }(e, t, o, a)); let l = 0; if (e.lineDecorations.length > 0) { for (let t = 0, i = e.lineDecorations.length; t < i; t++) { const i = e.lineDecorations[t]; 3 === i.type || 1 === i.type ? l |= 1 : 2 === i.type && (l |= 2) } a = function(e, t, i, n) { n.sort(r.Kp.compare); const o = r.k.normalize(e, n), a = o.length; let l = 0, d = [], c = 0, h = 0; for (let e = 0, t = i.length; e < t; e++) { const t = i[e], n = t.endIndex, r = t.type, u = t.metadata; for (; l < a && o[l].startOffset < n;) { const e = o[l]; if (e.startOffset > h && (h = e.startOffset, d[c++] = new s(h, r, u)), !(e.endOffset + 1 <= n)) { h = n, d[c++] = new s(h, r + " " + e.className, u | e.metadata); break } h = e.endOffset + 1, d[c++] = new s(h, r + " " + e.className, u | e.metadata), l++ } n > h && (h = n, d[c++] = new s(h, r, u)) } const u = i[i.length - 1].endIndex; if (l < a && o[l].startOffset === u) for (; l < a && o[l].startOffset === u;) { const e = o[l]; d[c++] = new s(h, e.className, e.metadata), l++ } return d }(t, 0, a, e.lineDecorations) } return e.containsRTL || (a = function(e, t, i) { let n = 0, o = [], r = 0; if (i) for (let i = 0, a = t.length; i < a; i++) { const a = t[i], l = a.endIndex; if (n + 50 < l) { const t = a.type, i = a.metadata; let d = -1, c = n; for (let a = n; a < l; a++) 32 === e.charCodeAt(a) && (d = a), - 1 !== d && a - c >= 50 && (o[r++] = new s(d + 1, t, i), c = d + 1, d = -1); c !== l && (o[r++] = new s(l, t, i)) } else o[r++] = a; n = l } else for (let e = 0, i = t.length; e < i; e++) { const i = t[e], a = i.endIndex; let l = a - n; if (l > 50) { const e = i.type, t = i.metadata, d = Math.ceil(l / 50); for (let i = 1; i < d; i++) { let a = n + 50 * i; o[r++] = new s(a, e, t) } o[r++] = new s(a, e, t) } else o[r++] = i; n = a } return o }(t, a, !e.isBasicASCII || e.fontLigatures)), new m(e.useMonospaceOptimizations, e.canUseHalfwidthRightwardsArrow, t, o, i, a, l, e.fauxIndentLength, e.tabSize, e.startVisibleColumn, e.containsRTL, e.spaceWidth, e.renderSpaceCharCode, e.renderWhitespace, e.renderControlCharacters) }(e), t) } class g { constructor(e, t, i, n) { this.characterMapping = e, this.html = t, this.containsRTL = i, this.containsForeignElements = n } } function p(e) { let t = (0, o.l$)(1e4), i = u(e, t); return new g(i.characterMapping, t.build(), i.containsRTL, i.containsForeignElements) } class m { constructor(e, t, i, n, o, r, s, a, l, d, c, h, u, g, p) { this.fontIsMonospace = e, this.canUseHalfwidthRightwardsArrow = t, this.lineContent = i, this.len = n, this.isOverflowing = o, this.parts = r, this.containsForeignElements = s, this.fauxIndentLength = a, this.tabSize = l, this.startVisibleColumn = d, this.containsRTL = c, this.spaceWidth = h, this.renderSpaceCharCode = u, this.renderWhitespace = g, this.renderControlCharacters = p } } }, 3544: (e, t, i) => { "use strict"; i.d(t, { T: () => o, o: () => r }); var n = i(5427); class o { constructor(e, t) { this._prefixSumIndexOfResultBrand = void 0, this.index = e, this.remainder = t } } class r { constructor(e) { this.values = e, this.prefixSum = new Uint32Array(e.length), this.prefixSumValidIndex = new Int32Array(1), this.prefixSumValidIndex[0] = -1 } insertValues(e, t) { e = (0, n.A)(e); const i = this.values, o = this.prefixSum, r = t.length; return 0 !== r && (this.values = new Uint32Array(i.length + r), this.values .set(i.subarray(0, e), 0), this.values.set(i.subarray(e), e + r), this.values.set(t, e), e - 1 < this.prefixSumValidIndex[0] && (this.prefixSumValidIndex[ 0] = e - 1), this.prefixSum = new Uint32Array(this.values.length), this.prefixSumValidIndex[0] >= 0 && this.prefixSum.set(o.subarray(0, this.prefixSumValidIndex[0] + 1)), !0) } changeValue(e, t) { return e = (0, n.A)(e), t = (0, n.A)(t), this.values[e] !== t && (this .values[e] = t, e - 1 < this.prefixSumValidIndex[0] && (this.prefixSumValidIndex[ 0] = e - 1), !0) } removeValues(e, t) { e = (0, n.A)(e), t = (0, n.A)(t); const i = this.values, o = this.prefixSum; if (e >= i.length) return !1; let r = i.length - e; return t >= r && (t = r), 0 !== t && (this.values = new Uint32Array(i.length - t), this.values.set(i.subarray(0, e), 0), this.values.set(i.subarray( e + t), e), this.prefixSum = new Uint32Array(this.values.length), e - 1 < this.prefixSumValidIndex[0] && (this.prefixSumValidIndex[0] = e - 1), this.prefixSumValidIndex[0] >= 0 && this.prefixSum.set(o.subarray( 0, this.prefixSumValidIndex[0] + 1)), !0) } getTotalSum() { return 0 === this.values.length ? 0 : this._getPrefixSum(this.values.length - 1) } getPrefixSum(e) { return e < 0 ? 0 : (e = (0, n.A)(e), this._getPrefixSum(e)) } _getPrefixSum(e) { if (e <= this.prefixSumValidIndex[0]) return this.prefixSum[e]; let t = this.prefixSumValidIndex[0] + 1; 0 === t && (this.prefixSum[0] = this.values[0], t++), e >= this.values .length && (e = this.values.length - 1); for (let i = t; i <= e; i++) this.prefixSum[i] = this.prefixSum[i - 1] + this.values[i]; return this.prefixSumValidIndex[0] = Math.max(this.prefixSumValidIndex[ 0], e), this.prefixSum[e] } getIndexOf(e) { e = Math.floor(e), this.getTotalSum(); let t = 0, i = this.values.length - 1, n = 0, r = 0, s = 0; for (; t <= i;) if (n = t + (i - t) / 2 | 0, r = this.prefixSum[n], s = r - this.values[ n], e < s) i = n - 1; else { if (!(e >= r)) break; t = n + 1 } return new o(n, e - s) } } }, 3824: (e, t, i) => { "use strict"; i.d(t, { l_: () => s, le: () => l, ud: () => d, IP: () => c, wA: () => h, $t: () => u, Wx: () => g, $l: () => p }); var n = i(7295), o = i(187), r = i(4314); class s { constructor(e, t, i, n) { this._viewportBrand = void 0, this.top = 0 | e, this.left = 0 | t, this.width = 0 | i, this.height = 0 | n } } class a { constructor(e, t) { this.outputLineIndex = e, this.outputOffset = t } toString() { return `${this.outputLineIndex}:${this.outputOffset}` } toPosition(e, t) { const i = this.outputLineIndex > 0 ? t : 0; return new o.L(e + this.outputLineIndex, i + this.outputOffset + 1) } } class l { constructor(e, t, i, n, o) { this.breakOffsets = e, this.breakOffsetsVisibleColumn = t, this.wrappedTextIndentLength = i, this.injectionOffsets = n, this.injectionOptions = o } getInputOffsetOfOutputPosition(e, t) { let i = 0; if (i = 0 === e ? t : this.breakOffsets[e - 1] + t, null !== this.injectionOffsets) for (let e = 0; e < this.injectionOffsets.length && i > this.injectionOffsets[ e]; e++) i < this.injectionOffsets[e] + this.injectionOptions[e].content .length ? i = this.injectionOffsets[e] : i -= this.injectionOptions[ e].content.length; return i } getOutputPositionOfInputOffset(e, t = 2) { let i = 0; if (null !== this.injectionOffsets) for (let n = 0; n < this.injectionOffsets.length && !(e < this.injectionOffsets[ n]) && (1 === t || e !== this.injectionOffsets[n]); n++) i += this.injectionOptions[ n].content.length; return e += i, this.getOutputPositionOfOffsetInUnwrappedLine(e, t) } getOutputPositionOfOffsetInUnwrappedLine(e, t = 2) { let i = 0, n = this.breakOffsets.length - 1, o = 0, r = 0; for (; i <= n;) { o = i + (n - i) / 2 | 0; const s = this.breakOffsets[o]; if (r = o > 0 ? this.breakOffsets[o - 1] : 0, 0 === t) if (e <= r) n = o - 1; else { if (!(e > s)) break; i = o + 1 } else if (e < r) n = o - 1; else { if (!(e >= s)) break; i = o + 1 } } return new a(o, e - r) } outputPositionToOffsetInUnwrappedLine(e, t) { let i = (e > 0 ? this.breakOffsets[e - 1] : 0) + t; return e > 0 && (i -= this.wrappedTextIndentLength), i } normalizeOffsetAroundInjections(e, t) { const i = this.getInjectedTextAtOffset(e); if (!i) return e; if (2 === t) return e === i.offsetInUnwrappedLine + i.length ? i.offsetInUnwrappedLine + i.length : i.offsetInUnwrappedLine; if (1 === t) { let e = i.offsetInUnwrappedLine + i.length, t = i.injectedTextIndex; for (; t + 1 < this.injectionOffsets.length && this.injectionOffsets[ t + 1] === this.injectionOffsets[t];) e += this.injectionOptions[t + 1].content.length, t++; return e } let n = i.offsetInUnwrappedLine, o = i.injectedTextIndex; for (; o - 1 >= 0 && this.injectionOffsets[o - 1] === this.injectionOffsets[ o];) n -= this.injectionOptions[o - 1].content.length, o++; return n } getInjectedText(e, t) { const i = this.outputPositionToOffsetInUnwrappedLine(e, t), n = this.getInjectedTextAtOffset(i); return n ? { options: this.injectionOptions[n.injectedTextIndex] } : null } getInjectedTextAtOffset(e) { const t = this.injectionOffsets, i = this.injectionOptions; if (null !== t) { let n = 0; for (let o = 0; o < t.length; o++) { const r = i[o].content.length, s = t[o] + n, a = t[o] + n + r; if (s > e) break; if (e <= a) return { injectedTextIndex: o, offsetInUnwrappedLine: s, length: r }; n += r } } } } class d { constructor(e, t) { this.tabSize = e, this.data = t } } class c { constructor(e, t, i, n, o, r, s) { this._viewLineDataBrand = void 0, this.content = e, this.continuesWithWrappedLine = t, this.minColumn = i, this.maxColumn = n, this.startVisibleColumn = o, this.tokens = r, this.inlineDecorations = s } } class h { constructor(e, t, i, n, o, r, s, a, l, d) { this.minColumn = e, this.maxColumn = t, this.content = i, this.continuesWithWrappedLine = n, this.isBasicASCII = h.isBasicASCII(i, r), this.containsRTL = h.containsRTL( i, this.isBasicASCII, o), this.tokens = s, this.inlineDecorations = a, this.tabSize = l, this.startVisibleColumn = d } static isBasicASCII(e, t) { return !t || n.$i(e) } static containsRTL(e, t, i) { return !(t || !i) && n.Ut(e) } } class u { constructor(e, t, i) { this.range = e, this.inlineClassName = t, this.type = i } } class g { constructor(e, t, i, n) { this.startOffset = e, this.endOffset = t, this.inlineClassName = i, this.inlineClassNameAffectsLetterSpacing = n } toInlineDecoration(e) { return new u(new r.e(e, this.startOffset + 1, e, this.endOffset + 1), this.inlineClassName, this.inlineClassNameAffectsLetterSpacing ? 3 : 0) } } class p { constructor(e, t) { this._viewModelDecorationBrand = void 0, this.range = e, this.options = t } } }, 4396: (e, t, i) => { "use strict"; i.r(t), i.d(t, { SelectionAnchorSet: () => L }); var n = i(3379), o = i.n(n), r = i(7795), s = i.n(r), a = i(569), l = i.n(a), d = i(3565), c = i.n(d), h = i(9216), u = i.n(h), g = i(4589), p = i.n(g), m = i(2671), f = {}; f.styleTagTransform = p(), f.setAttributes = c(), f.insert = l().bind( null, "head"), f.domAPI = s(), f.insertStyleElement = u(), o()(m.Z, f), m.Z && m.Z.locals && m.Z.locals; var _ = i(6830), b = i(3580), v = i(9102), w = i(3860), C = i(2258), y = i(8819), S = i(9365), x = i(6346), k = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; const L = new y.uy("selectionAnchorSet", !1); let N = class e { constructor(e, t) { this.editor = e, this.selectionAnchorSetContextKey = L.bindTo(t), this.modelChangeListener = e.onDidChangeModel((() => this.selectionAnchorSetContextKey .reset())) } static get(t) { return t.getContribution(e.ID) } setSelectionAnchor() { if (this.editor.hasModel()) { const e = this.editor.getPosition(), t = this.decorationId ? [this.decorationId] : [], i = this.editor.deltaDecorations(t, [{ range: w.Y.fromPositions(e, e), options: { description: "selection-anchor", stickiness: 1, hoverMessage: (new S.W5).appendText((0, b.N)("selectionAnchor", "Selection Anchor")), className: "selection-anchor" } }]); this.decorationId = i[0], this.selectionAnchorSetContextKey.set(!! this.decorationId), (0, x.Z9)((0, b.N)("anchorSet", "Anchor set at {0}:{1}", e.lineNumber, e.column)) } } goToSelectionAnchor() { if (this.editor.hasModel() && this.decorationId) { const e = this.editor.getModel().getDecorationRange(this.decorationId); e && this.editor.setPosition(e.getStartPosition()) } } selectFromAnchorToCursor() { if (this.editor.hasModel() && this.decorationId) { const e = this.editor.getModel().getDecorationRange(this.decorationId); if (e) { const t = this.editor.getPosition(); this.editor.setSelection(w.Y.fromPositions(e.getStartPosition(), t)), this.cancelSelectionAnchor() } } } cancelSelectionAnchor() { this.decorationId && (this.editor.deltaDecorations([this.decorationId], []), this.decorationId = void 0, this.selectionAnchorSetContextKey.set(! 1)) } dispose() { this.cancelSelectionAnchor(), this.modelChangeListener.dispose() } }; var D, E; N.ID = "editor.contrib.selectionAnchorController", N = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([(D = 1, E = y.i6, function(e, t) { E(e, t, D) })], N); class I extends _.R6 { constructor() { super({ id: "editor.action.setSelectionAnchor", label: (0, b.N)("setSelectionAnchor", "Set Selection Anchor"), alias: "Set Selection Anchor", precondition: void 0, kbOpts: { kbExpr: v.u.editorTextFocus, primary: (0, C.gx)(2089, 2080), weight: 100 } }) } run(e, t) { return k(this, void 0, void 0, (function*() { N.get(t).setSelectionAnchor() })) } } class T extends _.R6 { constructor() { super({ id: "editor.action.goToSelectionAnchor", label: (0, b.N)("goToSelectionAnchor", "Go to Selection Anchor"), alias: "Go to Selection Anchor", precondition: L }) } run(e, t) { return k(this, void 0, void 0, (function*() { N.get(t).goToSelectionAnchor() })) } } class M extends _.R6 { constructor() { super({ id: "editor.action.selectFromAnchorToCursor", label: (0, b.N)("selectFromAnchorToCursor", "Select from Anchor to Cursor"), alias: "Select from Anchor to Cursor", precondition: L, kbOpts: { kbExpr: v.u.editorTextFocus, primary: (0, C.gx)(2089, 2089), weight: 100 } }) } run(e, t) { return k(this, void 0, void 0, (function*() { N.get(t).selectFromAnchorToCursor() })) } } class A extends _.R6 { constructor() { super({ id: "editor.action.cancelSelectionAnchor", label: (0, b.N)("cancelSelectionAnchor", "Cancel Selection Anchor"), alias: "Cancel Selection Anchor", precondition: L, kbOpts: { kbExpr: v.u.editorTextFocus, primary: 9, weight: 100 } }) } run(e, t) { return k(this, void 0, void 0, (function*() { N.get(t).cancelSelectionAnchor() })) } }(0, _._K)(N.ID, N), (0, _.Qr)(I), (0, _.Qr)(T), (0, _.Qr)(M), (0, _.Qr) (A) }, 6012: (e, t, i) => { "use strict"; i.r(t), i.d(t, { BracketMatchingController: () => O }); var n = i(3379), o = i.n(n), r = i(7795), s = i.n(r), a = i(569), l = i.n(a), d = i(3565), c = i.n(d), h = i(9216), u = i.n(h), g = i(4589), p = i.n(g), m = i(7667), f = {}; f.styleTagTransform = p(), f.setAttributes = c(), f.insert = l().bind( null, "head"), f.domAPI = s(), f.insertStyleElement = u(), o()(m.Z, f), m.Z && m.Z.locals && m.Z.locals; var _ = i(3580), b = i(5393), v = i(5976), w = i(6830), C = i(187), y = i(4314), S = i(3860), x = i(9102), k = i(4973), L = i(6281), N = i(7869), D = i(3910), E = i(7781), I = i(4144); const T = (0, D.P6)("editorOverviewRuler.bracketMatchForeground", { dark: "#A0A0A0", light: "#A0A0A0", hc: "#A0A0A0" }, _.N("overviewRulerBracketMatchForeground", "Overview ruler marker color for matching brackets.")); class M extends w.R6 { constructor() { super({ id: "editor.action.jumpToBracket", label: _.N("smartSelect.jumpBracket", "Go to Bracket"), alias: "Go to Bracket", precondition: void 0, kbOpts: { kbExpr: x.u.editorTextFocus, primary: 3160, weight: 100 } }) } run(e, t) { let i = O.get(t); i && i.jumpToBracket() } } class A extends w.R6 { constructor() { super({ id: "editor.action.selectToBracket", label: _.N("smartSelect.selectToBracket", "Select to Bracket"), alias: "Select to Bracket", precondition: void 0, description: { description: "Select to Bracket", args: [{ name: "args", schema: { type: "object", properties: { selectBrackets: { type: "boolean", default: !0 } } } }] } }) } run(e, t, i) { const n = O.get(t); if (!n) return; let o = !0; i && !1 === i.selectBrackets && (o = !1), n.selectToBracket(o) } } class R { constructor(e, t, i) { this.position = e, this.brackets = t, this.options = i } } class O extends v.JT { constructor(e) { super(), this._editor = e, this._lastBracketsData = [], this._lastVersionId = 0, this._decorations = [], this._updateBracketsSoon = this._register( new b.pY((() => this._updateBrackets()), 50)), this._matchBrackets = this._editor.getOption(63), this._updateBracketsSoon.schedule(), this._register(e.onDidChangeCursorPosition((e => { "never" !== this._matchBrackets && this._updateBracketsSoon.schedule() }))), this._register(e.onDidChangeModelContent((e => { this._updateBracketsSoon.schedule() }))), this._register(e.onDidChangeModel((e => { this._lastBracketsData = [], this._decorations = [], this._updateBracketsSoon .schedule() }))), this._register(e.onDidChangeModelLanguageConfiguration((e => { this._lastBracketsData = [], this._updateBracketsSoon.schedule() }))), this._register(e.onDidChangeConfiguration((e => { e.hasChanged(63) && (this._matchBrackets = this._editor.getOption( 63), this._decorations = this._editor.deltaDecorations(this._decorations, []), this._lastBracketsData = [], this._lastVersionId = 0, this._updateBracketsSoon .schedule()) }))) } static get(e) { return e.getContribution(O.ID) } jumpToBracket() { if (!this._editor.hasModel()) return; const e = this._editor.getModel(), t = this._editor.getSelections().map((t => { const i = t.getStartPosition(), n = e.matchBracket(i); let o = null; if (n) n[0].containsPosition(i) ? o = n[1].getStartPosition() : n[ 1].containsPosition(i) && (o = n[0].getStartPosition()); else { const t = e.findEnclosingBrackets(i); if (t) o = t[0].getStartPosition(); else { const t = e.findNextBracket(i); t && t.range && (o = t.range.getStartPosition()) } } return o ? new S.Y(o.lineNumber, o.column, o.lineNumber, o.column) : new S.Y(i.lineNumber, i.column, i.lineNumber, i.column) })); this._editor.setSelections(t), this._editor.revealRange(t[0]) } selectToBracket(e) { if (!this._editor.hasModel()) return; const t = this._editor.getModel(), i = []; this._editor.getSelections().forEach((n => { const o = n.getStartPosition(); let r = t.matchBracket(o); if (!r && (r = t.findEnclosingBrackets(o), !r)) { const e = t.findNextBracket(o); e && e.range && (r = t.matchBracket(e.range.getStartPosition())) } let s = null, a = null; if (r) { r.sort(y.e.compareRangesUsingStarts); const [t, i] = r; if (s = e ? t.getStartPosition() : t.getEndPosition(), a = e ? i .getEndPosition() : i.getStartPosition(), i.containsPosition(o) ) { const e = s; s = a, a = e } } s && a && i.push(new S.Y(s.lineNumber, s.column, a.lineNumber, a.column)) })), i.length > 0 && (this._editor.setSelections(i), this._editor.revealRange( i[0])) } _updateBrackets() { if ("never" === this._matchBrackets) return; this._recomputeBrackets(); let e = [], t = 0; for (const i of this._lastBracketsData) { let n = i.brackets; n && (e[t++] = { range: n[0], options: i.options }, e[t++] = { range: n[1], options: i.options }) } this._decorations = this._editor.deltaDecorations(this._decorations, e) } _recomputeBrackets() { if (!this._editor.hasModel()) return this._lastBracketsData = [], void(this._lastVersionId = 0); const e = this._editor.getSelections(); if (e.length > 100) return this._lastBracketsData = [], void(this._lastVersionId = 0); const t = this._editor.getModel(), i = t.getVersionId(); let n = []; this._lastVersionId === i && (n = this._lastBracketsData); let o = [], r = 0; for (let t = 0, i = e.length; t < i; t++) { let i = e[t]; i.isEmpty() && (o[r++] = i.getStartPosition()) } o.length > 1 && o.sort(C.L.compare); let s = [], a = 0, l = 0, d = n.length; for (let e = 0, i = o.length; e < i; e++) { let i = o[e]; for (; l < d && n[l].position.isBefore(i);) l++; if (l < d && n[l].position.equals(i)) s[a++] = n[l]; else { let e = t.matchBracket(i), n = O._DECORATION_OPTIONS_WITH_OVERVIEW_RULER; e || "always" !== this._matchBrackets || (e = t.findEnclosingBrackets( i, 20), n = O._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER), s[a++] = new R(i, e, n) } } this._lastBracketsData = s, this._lastVersionId = i } } O.ID = "editor.contrib.bracketMatchingController", O._DECORATION_OPTIONS_WITH_OVERVIEW_RULER = L.qx.register({ description: "bracket-match-overview", stickiness: 1, className: "bracket-match", overviewRuler: { color: (0, E.EN)(T), position: k.sh.Center } }), O._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER = L.qx.register({ description: "bracket-match-no-overview", stickiness: 1, className: "bracket-match" }), (0, w._K)(O.ID, O), (0, w.Qr)(A), (0, w.Qr)(M), (0, E.Ic)(((e, t) => { const i = e.getColor(N.TC); i && t.addRule( `.monaco-editor .bracket-match { background-color: ${i}; }`); const n = e.getColor(N.Dl); n && t.addRule( `.monaco-editor .bracket-match { border: 1px solid ${n}; }`) })), I.BH.appendMenuItem(I.eH.MenubarGoMenu, { group: "5_infile_nav", command: { id: "editor.action.jumpToBracket", title: _.N({ key: "miGoToBracket", comment: ["&& denotes a mnemonic"] }, "Go to &&Bracket") }, order: 2 }) }, 4594: (e, t, i) => { "use strict"; i.r(t); var n = i(3580), o = i(6830), r = i(9102), s = i(4314), a = i(3860); class l { constructor(e, t) { this._selection = e, this._isMovingLeft = t } getEditOperations(e, t) { if (this._selection.startLineNumber !== this._selection.endLineNumber || this._selection.isEmpty()) return; const i = this._selection.startLineNumber, n = this._selection.startColumn, o = this._selection.endColumn; if ((!this._isMovingLeft || 1 !== n) && (this._isMovingLeft || o !== e .getLineMaxColumn(i))) if (this._isMovingLeft) { const r = new s.e(i, n - 1, i, n), a = e.getValueInRange(r); t.addEditOperation(r, null), t.addEditOperation(new s.e(i, o, i, o), a) } else { const r = new s.e(i, o, i, o + 1), a = e.getValueInRange(r); t.addEditOperation(r, null), t.addEditOperation(new s.e(i, n, i, n), a) } } computeCursorState(e, t) { return this._isMovingLeft ? new a.Y(this._selection.startLineNumber, this._selection.startColumn - 1, this._selection.endLineNumber, this ._selection.endColumn - 1) : new a.Y(this._selection.startLineNumber, this._selection.startColumn + 1, this._selection.endLineNumber, this ._selection.endColumn + 1) } } class d extends o.R6 { constructor(e, t) { super(t), this.left = e } run(e, t) { if (!t.hasModel()) return; let i = [], n = t.getSelections(); for (const e of n) i.push(new l(e, this.left)); t.pushUndoStop(), t.executeCommands(this.id, i), t.pushUndoStop() } }(0, o.Qr)(class extends d { constructor() { super(!0, { id: "editor.action.moveCarretLeftAction", label: n.N("caret.moveLeft", "Move Selected Text Left"), alias: "Move Selected Text Left", precondition: r.u.writable }) } }), (0, o.Qr)(class extends d { constructor() { super(!1, { id: "editor.action.moveCarretRightAction", label: n.N("caret.moveRight", "Move Selected Text Right"), alias: "Move Selected Text Right", precondition: r.u.writable }) } }) }, 7847: (e, t, i) => { "use strict"; i.r(t); var n = i(3580), o = i(6830), r = i(1329), s = i(4314), a = i(9102), l = i(8784); class d extends o.R6 { constructor() { super({ id: "editor.action.transposeLetters", label: n.N("transposeLetters.label", "Transpose Letters"), alias: "Transpose Letters", precondition: a.u.writable, kbOpts: { kbExpr: a.u.textInputFocus, primary: 0, mac: { primary: 306 }, weight: 100 } }) } run(e, t) { if (!t.hasModel()) return; let i = t.getModel(), n = [], o = t.getSelections(); for (let e of o) { if (!e.isEmpty()) continue; let t = e.startLineNumber, o = e.startColumn, a = i.getLineMaxColumn(t); if (1 === t && (1 === o || 2 === o && 2 === a)) continue; let d = o === a ? e.getPosition() : l.o.rightPosition(i, e.getPosition() .lineNumber, e.getPosition().column), c = l.o.leftPosition(i, d), h = l.o.leftPosition(i, c), u = i.getValueInRange(s.e.fromPositions(h, c)), g = i.getValueInRange(s.e.fromPositions(c, d)), p = s.e.fromPositions(h, d); n.push(new r.T4(p, g + u)) } n.length > 0 && (t.pushUndoStop(), t.executeCommands(this.id, n), t.pushUndoStop()) } }(0, o.Qr)(d) }, 2015: (e, t, i) => { "use strict"; i.r(t), i.d(t, { CutAction: () => _, CopyAction: () => b, PasteAction: () => v }); var n = i(3580), o = i(6268), r = i(1432), s = i(5715), a = i(6830), l = i(1640), d = i(9102), c = i(4144), h = i(4972); const u = "9_cutcopypaste", g = r.tY || document.queryCommandSupported("cut"), p = r.tY || document.queryCommandSupported("copy"), m = void 0 !== navigator.clipboard && !o.vU || document.queryCommandSupported( "paste"); function f(e) { return e.register(), e } const _ = g ? f(new a.AJ({ id: "editor.action.clipboardCutAction", precondition: void 0, kbOpts: r.tY ? { primary: 2102, win: { primary: 2102, secondary: [1044] }, weight: 100 } : void 0, menuOpts: [{ menuId: c.eH.MenubarEditMenu, group: "2_ccp", title: n.N({ key: "miCut", comment: ["&& denotes a mnemonic"] }, "Cu&&t"), order: 1 }, { menuId: c.eH.EditorContext, group: u, title: n.N("actions.clipboard.cutLabel", "Cut"), when: d.u.writable, order: 1 }, { menuId: c.eH.CommandPalette, group: "", title: n.N("actions.clipboard.cutLabel", "Cut"), order: 1 }, { menuId: c.eH.SimpleEditorContext, group: u, title: n.N("actions.clipboard.cutLabel", "Cut"), when: d.u.writable, order: 1 }] })) : void 0, b = p ? f(new a.AJ({ id: "editor.action.clipboardCopyAction", precondition: void 0, kbOpts: r.tY ? { primary: 2081, win: { primary: 2081, secondary: [2067] }, weight: 100 } : void 0, menuOpts: [{ menuId: c.eH.MenubarEditMenu, group: "2_ccp", title: n.N({ key: "miCopy", comment: ["&& denotes a mnemonic"] }, "&&Copy"), order: 2 }, { menuId: c.eH.EditorContext, group: u, title: n.N("actions.clipboard.copyLabel", "Copy"), order: 2 }, { menuId: c.eH.CommandPalette, group: "", title: n.N("actions.clipboard.copyLabel", "Copy"), order: 1 }, { menuId: c.eH.SimpleEditorContext, group: u, title: n.N("actions.clipboard.copyLabel", "Copy"), order: 2 }] })) : void 0; c.BH.appendMenuItem(c.eH.MenubarEditMenu, { submenu: c.eH.MenubarCopy, title: { value: n.N("copy as", "Copy As"), original: "Copy As" }, group: "2_ccp", order: 3 }), c.BH.appendMenuItem(c.eH.EditorContext, { submenu: c.eH.EditorContextCopy, title: { value: n.N("copy as", "Copy As"), original: "Copy As" }, group: u, order: 3 }); const v = m ? f(new a.AJ({ id: "editor.action.clipboardPasteAction", precondition: void 0, kbOpts: r.tY ? { primary: 2100, win: { primary: 2100, secondary: [1043] }, linux: { primary: 2100, secondary: [1043] }, weight: 100 } : void 0, menuOpts: [{ menuId: c.eH.MenubarEditMenu, group: "2_ccp", title: n.N({ key: "miPaste", comment: ["&& denotes a mnemonic"] }, "&&Paste"), order: 4 }, { menuId: c.eH.EditorContext, group: u, title: n.N("actions.clipboard.pasteLabel", "Paste"), when: d.u.writable, order: 4 }, { menuId: c.eH.CommandPalette, group: "", title: n.N("actions.clipboard.pasteLabel", "Paste"), order: 1 }, { menuId: c.eH.SimpleEditorContext, group: u, title: n.N("actions.clipboard.pasteLabel", "Paste"), when: d.u.writable, order: 4 }] })) : void 0; class w extends a.R6 { constructor() { super({ id: "editor.action.clipboardCopyWithSyntaxHighlightingAction", label: n.N("actions.clipboard.copyWithSyntaxHighlightingLabel", "Copy With Syntax Highlighting"), alias: "Copy With Syntax Highlighting", precondition: void 0, kbOpts: { kbExpr: d.u.textInputFocus, primary: 0, weight: 100 } }) } run(e, t) { t.hasModel() && (!t.getOption(31) && t.getSelection().isEmpty() || (s .RA.forceCopyWithSyntaxHighlighting = !0, t.focus(), document.execCommand( "copy"), s.RA.forceCopyWithSyntaxHighlighting = !1)) } } function C(e, t) { e && (e.addImplementation(1e4, "code-editor", ((e, i) => { const n = e.get(l.$).getFocusedCodeEditor(); if (n && n.hasTextFocus()) { const e = n.getOption(31), i = n.getSelection(); return i && i.isEmpty() && !e || document.execCommand(t), !0 } return !1 })), e.addImplementation(0, "generic-dom", ((e, i) => (document.execCommand( t), !0)))) } C(_, "cut"), C(b, "copy"), v && (v.addImplementation(1e4, "code-editor", ( (e, t) => { const i = e.get(l.$), n = e.get(h.p), o = i.getFocusedCodeEditor(); return !(!o || !o.hasTextFocus()) && !(!document.execCommand("paste") && r.$L && (a = void 0, d = void 0, c = void 0, u = function*() { const e = yield n.readText(); if ("" !== e) { const t = s.Nl.INSTANCE.get(e); let i = !1, n = null, r = null; t && (i = o.getOption(31) && !!t.isFromEmptySelection, n = void 0 !== t.multicursorText ? t.multicursorText : null, r = t.mode), o.trigger( "keyboard", "paste", { text: e, pasteOnNewLine: i, multicursorText: n, mode: r }) } }, new(c || (c = Promise))((function(e, t) { function i(e) { try { o(u.next(e)) } catch (e) { t(e) } } function n(e) { try { o(u.throw(e)) } catch (e) { t(e) } } function o(t) { var o; t.done ? e(t.value) : (o = t.value, o instanceof c ? o : new c( (function(e) { e(o) }))).then(i, n) } o((u = u.apply(a, d || [])).next()) })), 0)); var a, d, c, u })), v.addImplementation(0, "generic-dom", ((e, t) => (document.execCommand( "paste"), !0)))), p && (0, a.Qr)(w) }, 1907: (e, t, i) => { "use strict"; i.d(t, { RB: () => _, Bb: () => b, MN: () => v, uH: () => w, TM: () => C, bA: () => y, aI: () => k }); var n = i(9488), o = i(1050), r = i(7301), s = i(5976), a = i(666), l = i(9925), d = i(4314), c = i(3860), h = i(4101), u = i(1200), g = i(9532), p = i(535), m = i(4565), f = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; const _ = "editor.action.codeAction", b = "editor.action.refactor", v = "editor.action.sourceAction", w = "editor.action.organizeImports", C = "editor.action.fixAll"; class y { constructor(e, t) { this.action = e, this.provider = t } resolve(e) { var t; return f(this, void 0, void 0, (function*() { if ((null === (t = this.provider) || void 0 === t ? void 0 : t.resolveCodeAction) && !this.action.edit) { let t; try { t = yield this.provider.resolveCodeAction(this.action, e) } catch (e) { (0, r.Cp)(e) } t && (this.action.edit = t.edit) } return this })) } } class S extends s.JT { constructor(e, t, i) { super(), this.documentation = t, this._register(i), this.allActions = [ ...e ].sort(S.codeActionsComparator), this.validActions = this.allActions .filter((({ action: e }) => !e.disabled)) } static codeActionsComparator({ action: e }, { action: t }) { return e.isPreferred && !t.isPreferred ? -1 : !e.isPreferred && t.isPreferred ? 1 : (0, n.Of)(e.diagnostics) ? (0, n.Of)(t.diagnostics) ? e.diagnostics[ 0].message.localeCompare(t.diagnostics[0].message) : -1 : (0, n.Of) (t.diagnostics) ? 1 : 0 } get hasAutoFix() { return this.validActions.some((({ action: e }) => !!e.kind && g.yN.QuickFix.contains(new g.yN(e.kind)) && !!e.isPreferred)) } } const x = { actions: [], documentation: void 0 }; function k(e, t, i, o, a) { var d; const c = i.filter || {}, u = { only: null === (d = c.include) || void 0 === d ? void 0 : d.value, trigger: i.type }, p = new l.YQ(e, a), m = function(e, t) { return h.H9.all(e).filter((e => !e.providedCodeActionKinds || e.providedCodeActionKinds .some((e => (0, g.EU)(t, new g.yN(e)))))) }(e, c), _ = new s.SL, b = m.map((i => f(this, void 0, void 0, (function*() { try { o.report(i); const n = yield i.provideCodeActions(e, t, u, p.token); if (n && _.add(n), p.token.isCancellationRequested) return x; const r = ((null == n ? void 0 : n.actions) || []).filter((e => e && (0, g.Yl)(c, e))), s = function(e, t, i) { if (!e.documentation) return; const n = e.documentation.map((e => ({ kind: new g.yN(e.kind), command: e.command }))); if (i) { let e; for (const t of n) t.kind.contains(i) && (e ? e.kind.contains( t.kind) && (e = t) : e = t); if (e) return null == e ? void 0 : e.command } for (const e of t) if (e.kind) for (const t of n) if (t.kind.contains(new g.yN(e.kind))) return t.command }(i, r, c.include); return { actions: r.map((e => new y(e, i))), documentation: s } } catch (e) { if ((0, r.VV)(e)) throw e; return (0, r.Cp)(e), x } })))), v = h.H9.onDidChange((() => { const t = h.H9.all(e); (0, n.fS)(t, m) || p.cancel() })); return Promise.all(b).then((e => { const t = (0, n.xH)(e.map((e => e.actions))), i = (0, n.kX)(e.map((e => e.documentation))); return new S(t, i, _) })).finally((() => { v.dispose(), p.dispose() })) } m.P.registerCommand("_executeCodeActionProvider", (function(e, t, i, n, s) { return f(this, void 0, void 0, (function*() { if (!(t instanceof a.o)) throw (0, r.b1)(); const l = e.get(u.q).getModel(t); if (!l) throw (0, r.b1)(); const h = c.Y.isISelection(i) ? c.Y.liftSelection(i) : d.e.isIRange( i) ? l.validateRange(i) : void 0; if (!h) throw (0, r.b1)(); const m = "string" == typeof n ? new g.yN(n) : void 0, f = yield k(l, h, { type: 1, filter: { includeSourceActions: !0, include: m } }, p.E.None, o.T.None), _ = [], b = Math.min(f.validActions.length, "number" == typeof s ? s : 0); for (let e = 0; e < b; e++) _.push(f.validActions[e].resolve(o.T.None)); try { return yield Promise.all(_), f.validActions.map((e => e.action)) } finally { setTimeout((() => f.dispose()), 100) } })) })) }, 787: (e, t, i) => { "use strict"; i.d(t, { S5: () => Ee, dW: () => xe, Hv: () => De, o$: () => Ne, E7: () => Se, pY: () => we, Eb: () => ke, VQ: () => Le }); var n = i(1050); class o { constructor(e) { this.executor = e, this._didRun = !1 } getValue() { if (!this._didRun) try { this._value = this.executor() } catch (e) { this._error = e } finally { this._didRun = !0 } if (this._error) throw this._error; return this._value } get rawValue() { return this._value } } var r = i(5976), s = i(7295), a = i(6830), l = i(6007), d = i(9102), c = i(1907), h = i(7301), u = i(845), g = i(2065), p = i(5321), m = i(4741), f = i(187), _ = i(4101), b = i(9532), v = i(5606), w = i(1847), C = function(e, t) { return function(i, n) { t(i, n, e) } }; class y extends m.aU { constructor(e, t) { super(e.command ? e.command.id : e.title, e.title.replace( /\r\n|\r|\n/g, " "), void 0, !e.disabled, t), this.action = e } } let S = class extends r.JT { constructor(e, t, i, n) { super(), this._editor = e, this._delegate = t, this._contextMenuService = i, this._visible = !1, this._showingActions = this._register(new r.XK), this._keybindingResolver = new x({ getKeybindings: () => n.getKeybindings() }) } get isVisible() { return this._visible } show(e, t, i, n) { return o = this, r = void 0, a = function*() { const o = n.includeDisabledActions ? t.allActions : t.validActions; if (!o.length) return void(this._visible = !1); if (!this._editor.getDomNode()) throw this._visible = !1, (0, h.F0) (); this._visible = !0, this._showingActions.value = t; const r = this.getMenuActions(e, o, t.documentation), s = f.L.isIPosition(i) ? this._toCoords(i) : i || { x: 0, y: 0 }, a = this._keybindingResolver.getResolver(), l = this._editor.getOption(114); this._contextMenuService.showContextMenu({ domForShadowRoot: l ? this._editor.getDomNode() : void 0, getAnchor: () => s, getActions: () => r, onHide: () => { this._visible = !1, this._editor.focus() }, autoSelectFirstItem: !0, getKeyBinding: e => e instanceof y ? a(e.action) : void 0 }) }, new((s = void 0) || (s = Promise))((function(e, t) { function i(e) { try { l(a.next(e)) } catch (e) { t(e) } } function n(e) { try { l(a.throw(e)) } catch (e) { t(e) } } function l(t) { var o; t.done ? e(t.value) : (o = t.value, o instanceof s ? o : new s(( function(e) { e(o) }))).then(i, n) } l((a = a.apply(o, r || [])).next()) })); var o, r, s, a } getMenuActions(e, t, i) { var n, o; const r = e => new y(e.action, (() => this._delegate.onSelectCodeAction( e))), s = t.map(r), a = [...i], l = this._editor.getModel(); if (l && s.length) for (const i of _.H9.all(l)) i._getAdditionalMenuItems && a.push(...i ._getAdditionalMenuItems({ trigger: e.type, only: null === (o = null === (n = e.filter) || void 0 === n ? void 0 : n.include) || void 0 === o ? void 0 : o.value }, t.map((e => e.action)))); return a.length && s.push(new m.Z0, ...a.map((e => r(new c.bA({ title: e.title, command: e }, void 0))))), s } _toCoords(e) { if (!this._editor.hasModel()) return { x: 0, y: 0 }; this._editor.revealPosition(e, 1), this._editor.render(); const t = this._editor.getScrolledVisiblePosition(e), i = (0, p.i)(this._editor.getDomNode()); return { x: i.left + t.left, y: i.top + t.top + t.height } } }; S = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([C(2, v.i), C(3, w.d)], S); class x { constructor(e) { this._keybindingProvider = e } getResolver() { const e = new o((() => this._keybindingProvider.getKeybindings().filter( (e => x.codeActionCommands.indexOf(e.command) >= 0)).filter((e => e.resolvedKeybinding)).map((e => { let t = e.commandArgs; return e.command === c.uH ? t = { kind: b.yN.SourceOrganizeImports.value } : e.command === c.TM && (t = { kind: b.yN.SourceFixAll.value }), Object.assign({ resolvedKeybinding: e.resolvedKeybinding }, b.wZ.fromUser(t, { kind: b.yN.None, apply: "never" })) })))); return t => { if (t.kind) { const i = this.bestKeybindingForCodeAction(t, e.getValue()); return null == i ? void 0 : i.resolvedKeybinding } } } bestKeybindingForCodeAction(e, t) { if (!e.kind) return; const i = new b.yN(e.kind); return t.filter((e => e.kind.contains(i))).filter((t => !t.preferred || e.isPreferred)).reduceRight(((e, t) => e ? e.kind.contains(t.kind) ? t : e : t), void 0) } } x.codeActionCommands = [c.Bb, c.RB, c.MN, c.uH, c.TM]; var k = i(7974), L = i(4669), N = i(3379), D = i.n(N), E = i(7795), I = i.n(E), T = i(569), M = i.n(T), A = i(3565), R = i.n(A), O = i(9216), P = i.n(O), F = i(4589), B = i.n(F), W = i(4754), z = {}; z.styleTagTransform = B(), z.setAttributes = R(), z.insert = M().bind( null, "head"), z.domAPI = I(), z.insertStyleElement = P(), D()(W.Z, z), W.Z && W.Z.locals && W.Z.locals; var V, H = i(6281), U = i(3580), j = i(7781), K = i(3910), $ = i(553), q = i(3046); ! function(e) { e.Hidden = { type: 0 }, e.Showing = class { constructor(e, t, i, n) { this.actions = e, this.trigger = t, this.editorPosition = i, this.widgetPosition = n, this.type = 1 } } }(V || (V = {})); let Z = class e extends r.JT { constructor(e, t, i, n) { super(), this._editor = e, this._quickFixActionId = t, this._preferredFixActionId = i, this._keybindingService = n, this._onClick = this._register(new L .Q5), this.onClick = this._onClick.event, this._state = V.Hidden, this._domNode = document.createElement("div"), this._domNode.className = q.lA.lightBulb.classNames, this._editor.addContentWidget(this), this ._register(this._editor.onDidChangeModelContent((e => { const t = this._editor.getModel(); (1 !== this.state.type || !t || this.state.editorPosition.lineNumber >= t.getLineCount()) && this.hide() }))), $.o.ignoreTarget(this._domNode), this._register(p.Gw(this._domNode, ( e => { if (1 !== this.state.type) return; this._editor.focus(), e.preventDefault(); const { top: t, height: i } = p.i(this._domNode), n = this._editor.getOption(58); let o = Math.floor(n / 3); null !== this.state.widgetPosition.position && this.state.widgetPosition .position.lineNumber < this.state.editorPosition.lineNumber && (o += n), this._onClick.fire({ x: e.posx, y: t + i + o, actions: this.state.actions, trigger: this.state.trigger }) }))), this._register(p.nm(this._domNode, "mouseenter", (e => { if (1 != (1 & e.buttons)) return; this.hide(); const t = new k.Z; t.startMonitoring(e.target, e.buttons, k.e, (() => {}), (() => { t.dispose() })) }))), this._register(this._editor.onDidChangeConfiguration((e => { e.hasChanged(56) && !this._editor.getOption(56).enabled && this.hide() }))), this._updateLightBulbTitleAndIcon(), this._register(this._keybindingService .onDidUpdateKeybindings(this._updateLightBulbTitleAndIcon, this)) } dispose() { super.dispose(), this._editor.removeContentWidget(this) } getId() { return "LightBulbWidget" } getDomNode() { return this._domNode } getPosition() { return 1 === this._state.type ? this._state.widgetPosition : null } update(t, i, n) { if (t.validActions.length <= 0) return this.hide(); const o = this._editor.getOptions(); if (!o.get(56).enabled) return this.hide(); const r = this._editor.getModel(); if (!r) return this.hide(); const { lineNumber: s, column: a } = r.validatePosition(n), l = r.getOptions().tabSize, d = o.get(42), c = r.getLineContent(s), h = H.yO.computeIndentLevel(c, l), u = e => e > 2 && this._editor.getTopForLineNumber(e) === this._editor.getTopForLineNumber( e - 1); let g = s; if (!(d.spaceWidth * h > 22)) if (s > 1 && !u(s - 1)) g -= 1; else if (u(s + 1)) { if (a * d.spaceWidth < 22) return this.hide() } else g += 1; this.state = new V.Showing(t, i, n, { position: { lineNumber: g, column: 1 }, preference: e._posPref }), this._editor.layoutContentWidget(this) } hide() { this.state = V.Hidden, this._editor.layoutContentWidget(this) } get state() { return this._state } set state(e) { this._state = e, this._updateLightBulbTitleAndIcon() } _updateLightBulbTitleAndIcon() { if (1 === this.state.type && this.state.actions.hasAutoFix) { this._domNode.classList.remove(...q.lA.lightBulb.classNamesArray), this._domNode.classList.add(...q.lA.lightbulbAutofix.classNamesArray); const e = this._keybindingService.lookupKeybinding(this._preferredFixActionId); if (e) return void(this.title = U.N("preferredcodeActionWithKb", "Show Code Actions. Preferred Quick Fix Available ({0})", e.getLabel() )) } this._domNode.classList.remove(...q.lA.lightbulbAutofix.classNamesArray), this._domNode.classList.add(...q.lA.lightBulb.classNamesArray); const e = this._keybindingService.lookupKeybinding(this._quickFixActionId); this.title = e ? U.N("codeActionWithKb", "Show Code Actions ({0})", e .getLabel()) : U.N("codeAction", "Show Code Actions") } set title(e) { this._domNode.title = e } }; var G, Y; Z._posPref = [0], Z = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([(G = 3, Y = w.d, function(e, t) { Y(e, t, G) })], Z), (0, j.Ic)(((e, t) => { var i; const n = null === (i = e.getColor(K.cv)) || void 0 === i ? void 0 : i.transparent(.7), o = e.getColor(K.Fu); o && t.addRule( `\n\t\t.monaco-editor .contentWidgets ${q.lA.lightBulb.cssSelector} {\n\t\t\tcolor: ${o};\n\t\t\tbackground-color: ${n};\n\t\t}` ); const r = e.getColor(K.sK); r && t.addRule( `\n\t\t.monaco-editor .contentWidgets ${q.lA.lightbulbAutofix.cssSelector} {\n\t\t\tcolor: ${r};\n\t\t\tbackground-color: ${n};\n\t\t}` ) })); var Q, X = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; let J = class extends r.JT { constructor(e, t, i, n, s) { super(), this._editor = e, this.delegate = n, this._activeCodeActions = this._register(new r.XK), Q.set(this, !1), this._codeActionWidget = new o((() => this._register(s.createInstance(S, this._editor, { onSelectCodeAction: e => X(this, void 0, void 0, (function*() { this.delegate.applyCodeAction(e, !0) })) })))), this._lightBulbWidget = new o((() => { const e = this._register(s.createInstance(Z, this._editor, t, i)); return this._register(e.onClick((e => this.showCodeActionList(e.trigger, e.actions, e, { includeDisabledActions: !1 })))), e })) } dispose() { (function(e, t, i, n, o) { if ("m" === n) throw new TypeError("Private method is not writable"); if ("a" === n && !o) throw new TypeError( "Private accessor was defined without a setter"); if ("function" == typeof t ? e !== t || !o : !t.has(e)) throw new TypeError( "Cannot write private member to an object whose class did not declare it" ); "a" === n ? o.call(e, i) : o ? o.value = i : t.set(e, i) })(this, Q, !0, "f"), super.dispose() } update(e) { var t, i, n; return X(this, void 0, void 0, (function*() { if (1 !== e.type) return void(null === (t = this._lightBulbWidget .rawValue) || void 0 === t || t.hide()); let o; try { o = yield e.actions } catch (e) { return void(0, h.dL)(e) } if (! function(e, t, i, n) { if ("a" === i && !n) throw new TypeError( "Private accessor was defined without a getter"); if ("function" == typeof t ? e !== t || !n : !t.has(e)) throw new TypeError( "Cannot read private member from an object whose class did not declare it" ); return "m" === i ? n : "a" === i ? n.call(e) : n ? n.value : t.get( e) }(this, Q, "f")) if (this._lightBulbWidget.getValue().update(o, e.trigger, e.position), 1 === e.trigger.type) { if (null === (i = e.trigger.filter) || void 0 === i ? void 0 : i.include) { const t = this.tryGetValidActionToApply(e.trigger, o); if (t) { try { yield this.delegate.applyCodeAction(t, !1) } finally { o.dispose() } return } if (e.trigger.context) { const t = this.getInvalidActionThatWouldHaveBeenApplied(e.trigger, o); if (t && t.action.disabled) return u.O.get(this._editor).showMessage( t.action.disabled, e.trigger.context.position), void o.dispose() } } const t = !!(null === (n = e.trigger.filter) || void 0 === n ? void 0 : n.include); if (e.trigger.context && (!o.allActions.length || !t && !o.validActions .length)) return u.O.get(this._editor).showMessage(e.trigger.context .notAvailableMessage, e.trigger.context.position), this._activeCodeActions .value = o, void o.dispose(); this._activeCodeActions.value = o, this._codeActionWidget.getValue() .show(e.trigger, o, e.position, { includeDisabledActions: t }) } else this._codeActionWidget.getValue().isVisible ? o.dispose() : this._activeCodeActions.value = o })) } getInvalidActionThatWouldHaveBeenApplied(e, t) { if (t.allActions.length) return "first" === e.autoApply && 0 === t.validActions .length || "ifSingle" === e.autoApply && 1 === t.allActions.length ? t.allActions.find((({ action: e }) => e.disabled)) : void 0 } tryGetValidActionToApply(e, t) { if (t.validActions.length) return "first" === e.autoApply && t.validActions .length > 0 || "ifSingle" === e.autoApply && 1 === t.validActions.length ? t.validActions[0] : void 0 } showCodeActionList(e, t, i, n) { return X(this, void 0, void 0, (function*() { this._codeActionWidget.getValue().show(e, t, i, n) })) } }; Q = new WeakMap, J = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([function(e, t) { return function(i, n) { t(i, n, e) } }(4, g.TG)], J); var ee, te = i(4565), ie = i(8819), ne = i(8674), oe = i(9422), re = i(535), se = i(829), ae = i(5393), le = i(5935), de = i(4314), ce = function(e, t, i, n) { if ("a" === i && !n) throw new TypeError( "Private accessor was defined without a getter"); if ("function" == typeof t ? e !== t || !n : !t.has(e)) throw new TypeError( "Cannot read private member from an object whose class did not declare it" ); return "m" === i ? n : "a" === i ? n.call(e) : n ? n.value : t.get(e) }; const he = new ie.uy("supportedCodeAction", ""); class ue extends r.JT { constructor(e, t, i, n = 250) { super(), this._editor = e, this._markerService = t, this._signalChange = i, this._delay = n, this._autoTriggerTimer = this._register(new ae._F), this._register(this._markerService.onMarkerChanged((e => this._onMarkerChanges( e)))), this._register(this._editor.onDidChangeCursorPosition((() => this._onCursorChange()))) } trigger(e) { const t = this._getRangeOfSelectionUnlessWhitespaceEnclosed(e); return this._createEventAndSignalChange(e, t) } _onMarkerChanges(e) { const t = this._editor.getModel(); t && e.some((e => (0, le.Xy)(e, t.uri))) && this._autoTriggerTimer.cancelAndSet( (() => { this.trigger({ type: 2 }) }), this._delay) } _onCursorChange() { this._autoTriggerTimer.cancelAndSet((() => { this.trigger({ type: 2 }) }), this._delay) } _getRangeOfMarker(e) { const t = this._editor.getModel(); if (t) for (const i of this._markerService.read({ resource: t.uri })) { const n = t.validateRange(i); if (de.e.intersectRanges(n, e)) return de.e.lift(n) } } _getRangeOfSelectionUnlessWhitespaceEnclosed(e) { if (!this._editor.hasModel()) return; const t = this._editor.getModel(), i = this._editor.getSelection(); if (i.isEmpty() && 2 === e.type) { const { lineNumber: e, column: n } = i.getPosition(), o = t.getLineContent(e); if (0 === o.length) return; if (1 === n) { if (/\s/.test(o[0])) return } else if (n === t.getLineMaxColumn(e)) { if (/\s/.test(o[o.length - 1])) return } else if (/\s/.test(o[n - 2]) && /\s/.test(o[n - 1])) return } return i } _createEventAndSignalChange(e, t) { const i = this._editor.getModel(); if (!t || !i) return void this._signalChange(void 0); const n = this._getRangeOfMarker(t), o = n ? n.getStartPosition() : t.getStartPosition(), r = { trigger: e, selection: t, position: o }; return this._signalChange(r), r } } var ge; ! function(e) { e.Empty = { type: 0 }, e.Triggered = class { constructor(e, t, i, n) { this.trigger = e, this.rangeOrSelection = t, this.position = i, this ._cancellablePromise = n, this.type = 1, this.actions = n.catch((e => { if ((0, h.VV)(e)) return pe; throw e })) } cancel() { this._cancellablePromise.cancel() } } }(ge || (ge = {})); const pe = { allActions: [], validActions: [], dispose: () => {}, documentation: [], hasAutoFix: !1 }; class me extends r.JT { constructor(e, t, i, n) { super(), this._editor = e, this._markerService = t, this._progressService = n, this._codeActionOracle = this._register(new r.XK), this._state = ge.Empty, this._onDidChangeState = this._register(new L.Q5), this.onDidChangeState = this._onDidChangeState.event, ee.set(this, !1), this._supportedCodeActions = he.bindTo(i), this._register(this._editor.onDidChangeModel((() => this._update()))), this._register(this._editor.onDidChangeModelLanguage( (() => this._update()))), this._register(_.H9.onDidChange((() => this._update()))), this._update() } dispose() { ce(this, ee, "f") || (function(e, t, i, n, o) { if ("m" === n) throw new TypeError( "Private method is not writable"); if ("a" === n && !o) throw new TypeError( "Private accessor was defined without a setter"); if ("function" == typeof t ? e !== t || !o : !t.has(e)) throw new TypeError( "Cannot write private member to an object whose class did not declare it" ); "a" === n ? o.call(e, i) : o ? o.value = i : t.set(e, i) }(this, ee, !0, "f"), super.dispose(), this.setState(ge.Empty, !0)) } _update() { if (ce(this, ee, "f")) return; this._codeActionOracle.value = void 0, this.setState(ge.Empty); const e = this._editor.getModel(); if (e && _.H9.has(e) && !this._editor.getOption(80)) { const t = []; for (const i of _.H9.all(e)) Array.isArray(i.providedCodeActionKinds) && t.push(...i.providedCodeActionKinds); this._supportedCodeActions.set(t.join(" ")), this._codeActionOracle.value = new ue(this._editor, this._markerService, (t => { var i; if (!t) return void this.setState(ge.Empty); const n = (0, ae.PG)((i => (0, c.aI)(e, t.selection, t.trigger, re.E.None, i))); 1 === t.trigger.type && (null === (i = this._progressService) || void 0 === i || i.showWhile(n, 250)), this.setState(new ge.Triggered( t.trigger, t.selection, t.position, n)) }), void 0), this._codeActionOracle.value.trigger({ type: 2 }) } else this._supportedCodeActions.reset() } trigger(e) { this._codeActionOracle.value && this._codeActionOracle.value.trigger( e) } setState(e, t) { e !== this._state && (1 === this._state.type && this._state.cancel(), this._state = e, t || ce(this, ee, "f") || this._onDidChangeState.fire( e)) } } ee = new WeakMap; var fe = function(e, t) { return function(i, n) { t(i, n, e) } }, _e = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; function be(e) { return ie.Ao.regex(he.keys()[0], new RegExp("(\\s|^)" + (0, s.ec)(e.value) + "\\b")) } const ve = { type: "object", defaultSnippets: [{ body: { kind: "" } }], properties: { kind: { type: "string", description: U.N("args.schema.kind", "Kind of the code action to run.") }, apply: { type: "string", description: U.N("args.schema.apply", "Controls when the returned actions are applied."), default: "ifSingle", enum: ["first", "ifSingle", "never"], enumDescriptions: [U.N("args.schema.apply.first", "Always apply the first returned code action."), U.N( "args.schema.apply.ifSingle", "Apply the first returned code action if it is the only one."), U.N( "args.schema.apply.never", "Do not apply the returned code actions.")] }, preferred: { type: "boolean", default: !1, description: U.N("args.schema.preferred", "Controls if only preferred code actions should be returned.") } } }; let we = class e extends r.JT { constructor(e, t, i, n, r) { super(), this._instantiationService = r, this._editor = e, this._model = this._register(new me(this._editor, t, i, n)), this._register(this._model .onDidChangeState((e => this.update(e)))), this._ui = new o((() => this._register(new J(e, Se.Id, Ee.Id, { applyCodeAction: (e, t) => _e(this, void 0, void 0, (function*() { try { yield this._applyCodeAction(e) } finally { t && this._trigger({ type: 2, filter: {} }) } })) }, this._instantiationService)))) } static get(t) { return t.getContribution(e.ID) } update(e) { this._ui.getValue().update(e) } showCodeActions(e, t, i) { return this._ui.getValue().showCodeActionList(e, t, i, { includeDisabledActions: !1 }) } manualTriggerAtCurrentPosition(e, t, i) { if (!this._editor.hasModel()) return; u.O.get(this._editor).closeMessage(); const n = this._editor.getPosition(); this._trigger({ type: 1, filter: t, autoApply: i, context: { notAvailableMessage: e, position: n } }) } _trigger(e) { return this._model.trigger(e) } _applyCodeAction(e) { return this._instantiationService.invokeFunction(Ce, e, this._editor) } }; function Ce(e, t, i) { return _e(this, void 0, void 0, (function*() { const o = e.get(l.vu), r = e.get(te.H), s = e.get(se.b), a = e.get(oe.lT); if (s.publicLog2("codeAction.applyCodeAction", { codeActionTitle: t.action.title, codeActionKind: t.action.kind, codeActionIsPreferred: !!t.action.isPreferred }), yield t.resolve(n.T.None), t.action.edit && (yield o.apply(l.fo .convert(t.action.edit), { editor: i, label: t.action.title })), t.action.command) try { yield r.executeCommand(t.action.command.id, ...t.action.command.arguments || []) } catch (e) { const t = function(e) { return "string" == typeof e ? e : e instanceof Error && "string" == typeof e.message ? e.message : void 0 }(e); a.error("string" == typeof t ? t : U.N("applyCodeActionFailed", "An unknown error occurred while applying the code action")) } })) } function ye(e, t, i, n) { if (e.hasModel()) { const o = we.get(e); o && o.manualTriggerAtCurrentPosition(t, i, n) } } we.ID = "editor.contrib.quickFixController", we = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([fe(1, ne.lT), fe(2, ie.i6), fe(3, re.e), fe(4, g.TG)], we); class Se extends a.R6 { constructor() { super({ id: Se.Id, label: U.N("quickfix.trigger.label", "Quick Fix..."), alias: "Quick Fix...", precondition: ie.Ao.and(d.u.writable, d.u.hasCodeActionsProvider), kbOpts: { kbExpr: d.u.editorTextFocus, primary: 2132, weight: 100 } }) } run(e, t) { return ye(t, U.N("editor.action.quickFix.noneMessage", "No code actions available"), void 0, void 0) } } Se.Id = "editor.action.quickFix"; class xe extends a._l { constructor() { super({ id: c.RB, precondition: ie.Ao.and(d.u.writable, d.u.hasCodeActionsProvider), description: { description: "Trigger a code action", args: [{ name: "args", schema: ve }] } }) } runEditorCommand(e, t, i) { const n = b.wZ.fromUser(i, { kind: b.yN.Empty, apply: "ifSingle" }); return ye(t, "string" == typeof(null == i ? void 0 : i.kind) ? n.preferred ? U.N("editor.action.codeAction.noneMessage.preferred.kind", "No preferred code actions for '{0}' available", i.kind) : U.N( "editor.action.codeAction.noneMessage.kind", "No code actions for '{0}' available", i.kind) : n.preferred ? U.N( "editor.action.codeAction.noneMessage.preferred", "No preferred code actions available") : U.N( "editor.action.codeAction.noneMessage", "No code actions available"), { include: n.kind, includeSourceActions: !0, onlyIncludePreferredActions: n.preferred }, n.apply) } } class ke extends a.R6 { constructor() { super({ id: c.Bb, label: U.N("refactor.label", "Refactor..."), alias: "Refactor...", precondition: ie.Ao.and(d.u.writable, d.u.hasCodeActionsProvider), kbOpts: { kbExpr: d.u.editorTextFocus, primary: 3120, mac: { primary: 1328 }, weight: 100 }, contextMenuOpts: { group: "1_modification", order: 2, when: ie.Ao.and(d.u.writable, be(b.yN.Refactor)) }, description: { description: "Refactor...", args: [{ name: "args", schema: ve }] } }) } run(e, t, i) { const n = b.wZ.fromUser(i, { kind: b.yN.Refactor, apply: "never" }); return ye(t, "string" == typeof(null == i ? void 0 : i.kind) ? n.preferred ? U.N("editor.action.refactor.noneMessage.preferred.kind", "No preferred refactorings for '{0}' available", i.kind) : U.N( "editor.action.refactor.noneMessage.kind", "No refactorings for '{0}' available", i.kind) : n.preferred ? U.N( "editor.action.refactor.noneMessage.preferred", "No preferred refactorings available") : U.N( "editor.action.refactor.noneMessage", "No refactorings available"), { include: b.yN.Refactor.contains(n.kind) ? n.kind : b.yN.None, onlyIncludePreferredActions: n.preferred }, n.apply) } } class Le extends a.R6 { constructor() { super({ id: c.MN, label: U.N("source.label", "Source Action..."), alias: "Source Action...", precondition: ie.Ao.and(d.u.writable, d.u.hasCodeActionsProvider), contextMenuOpts: { group: "1_modification", order: 2.1, when: ie.Ao.and(d.u.writable, be(b.yN.Source)) }, description: { description: "Source Action...", args: [{ name: "args", schema: ve }] } }) } run(e, t, i) { const n = b.wZ.fromUser(i, { kind: b.yN.Source, apply: "never" }); return ye(t, "string" == typeof(null == i ? void 0 : i.kind) ? n.preferred ? U.N("editor.action.source.noneMessage.preferred.kind", "No preferred source actions for '{0}' available", i.kind) : U.N( "editor.action.source.noneMessage.kind", "No source actions for '{0}' available", i.kind) : n.preferred ? U .N("editor.action.source.noneMessage.preferred", "No preferred source actions available") : U.N( "editor.action.source.noneMessage", "No source actions available"), { include: b.yN.Source.contains(n.kind) ? n.kind : b.yN.None, includeSourceActions: !0, onlyIncludePreferredActions: n.preferred }, n.apply) } } class Ne extends a.R6 { constructor() { super({ id: c.uH, label: U.N("organizeImports.label", "Organize Imports"), alias: "Organize Imports", precondition: ie.Ao.and(d.u.writable, be(b.yN.SourceOrganizeImports)), kbOpts: { kbExpr: d.u.editorTextFocus, primary: 1581, weight: 100 } }) } run(e, t) { return ye(t, U.N("editor.action.organize.noneMessage", "No organize imports action available"), { include: b.yN.SourceOrganizeImports, includeSourceActions: !0 }, "ifSingle") } } class De extends a.R6 { constructor() { super({ id: c.TM, label: U.N("fixAll.label", "Fix All"), alias: "Fix All", precondition: ie.Ao.and(d.u.writable, be(b.yN.SourceFixAll)) }) } run(e, t) { return ye(t, U.N("fixAll.noneMessage", "No fix all action available"), { include: b.yN.SourceFixAll, includeSourceActions: !0 }, "ifSingle") } } class Ee extends a.R6 { constructor() { super({ id: Ee.Id, label: U.N("autoFix.label", "Auto Fix..."), alias: "Auto Fix...", precondition: ie.Ao.and(d.u.writable, be(b.yN.QuickFix)), kbOpts: { kbExpr: d.u.editorTextFocus, primary: 1620, mac: { primary: 2644 }, weight: 100 } }) } run(e, t) { return ye(t, U.N("editor.action.autoFix.noneMessage", "No auto fixes available"), { include: b.yN.QuickFix, onlyIncludePreferredActions: !0 }, "ifSingle") } } Ee.Id = "editor.action.autoFix" }, 9093: (e, t, i) => { "use strict"; i.r(t); var n = i(6830), o = i(787); (0, n._K)(o.pY.ID, o.pY), (0, n.Qr)(o.E7), (0, n.Qr)(o.Eb), (0, n.Qr)(o.VQ), ( 0, n.Qr)(o.o$), (0, n.Qr)(o.S5), (0, n.Qr)(o.Hv), (0, n.fK)(new o.dW) }, 9532: (e, t, i) => { "use strict"; i.d(t, { yN: () => n, EU: () => o, Yl: () => r, wZ: () => a }); class n { constructor(e) { this.value = e } equals(e) { return this.value === e.value } contains(e) { return this.equals(e) || "" === this.value || e.value.startsWith(this.value + n.sep) } intersects(e) { return this.contains(e) || e.contains(this) } append(e) { return new n(this.value + n.sep + e) } } function o(e, t) { return !(e.include && !e.include.intersects(t) || e.excludes && e.excludes .some((i => s(t, i, e.include))) || !e.includeSourceActions && n.Source .contains(t)) } function r(e, t) { const i = t.kind ? new n(t.kind) : void 0; return !(!(!e.include || i && e.include.contains(i)) || e.excludes && i && e.excludes.some((t => s(i, t, e.include))) || !e.includeSourceActions && i && n.Source.contains(i) || e.onlyIncludePreferredActions && !t.isPreferred ) } function s(e, t, i) { return !(!t.contains(e) || i && t.contains(i)) } n.sep = ".", n.None = new n("@@none@@"), n.Empty = new n(""), n.QuickFix = new n("quickfix"), n.Refactor = new n("refactor"), n.Source = new n( "source"), n.SourceOrganizeImports = n.Source.append("organizeImports"), n.SourceFixAll = n.Source.append("fixAll"); class a { constructor(e, t, i) { this.kind = e, this.apply = t, this.preferred = i } static fromUser(e, t) { return e && "object" == typeof e ? new a(a.getKindFromUser(e, t.kind), a.getApplyFromUser(e, t.apply), a.getPreferredUser(e)) : new a(t.kind, t.apply, !1) } static getApplyFromUser(e, t) { switch ("string" == typeof e.apply ? e.apply.toLowerCase() : "") { case "first": return "first"; case "never": return "never"; case "ifsingle": return "ifSingle"; default: return t } } static getKindFromUser(e, t) { return "string" == typeof e.kind ? new n(e.kind) : t } static getPreferredUser(e) { return "boolean" == typeof e.preferred && e.preferred } } }, 8191: (e, t, i) => { "use strict"; i.r(t), i.d(t, { CodeLensContribution: () => re }); var n = i(5393), o = i(7301), r = i(5976), s = i(9925), a = i(6830), l = i(4101), d = i(1050), c = i(666), h = i(1200), u = i(4565), g = i(8401), p = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; class m { constructor() { this.lenses = [], this._disposables = new r.SL } dispose() { this._disposables.dispose() } add(e, t) { this._disposables.add(e); for (const i of e.lenses) this.lenses.push({ symbol: i, provider: t }) } } function f(e, t) { return p(this, void 0, void 0, (function*() { const i = l.He.ordered(e), n = new Map, r = new m, s = i.map(((i, s) => p(this, void 0, void 0, (function*() { n.set(i, s); try { const n = yield Promise.resolve(i.provideCodeLenses(e, t)); n && r.add(n, i) } catch (e) { (0, o.Cp)(e) } })))); return yield Promise.all(s), r.lenses = r.lenses.sort(((e, t) => e.symbol .range.startLineNumber < t.symbol.range.startLineNumber ? -1 : e.symbol .range.startLineNumber > t.symbol.range.startLineNumber ? 1 : n.get( e.provider) < n.get(t.provider) ? -1 : n.get(e.provider) > n.get( t.provider) ? 1 : e.symbol.range.startColumn < t.symbol.range.startColumn ? -1 : e.symbol.range.startColumn > t.symbol.range.startColumn ? 1 : 0)), r })) } u.P.registerCommand("_executeCodeLensProvider", (function(e, ...t) { let [i, n] = t; (0, g.p_)(c.o.isUri(i)), (0, g.p_)("number" == typeof n || !n); const s = e.get(h.q).getModel(i); if (!s) throw (0, o.b1)(); const a = [], l = new r.SL; return f(s, d.T.None).then((e => { l.add(e); let t = []; for (const i of e.lenses) null == n || Boolean(i.symbol.command) ? a.push(i.symbol) : n-- > 0 && i.provider.resolveCodeLens && t.push( Promise.resolve(i.provider.resolveCodeLens(s, i.symbol, d.T.None)) .then((e => a.push(e || i.symbol)))); return Promise.all(t) })).then((() => a)).finally((() => { setTimeout((() => l.dispose()), 100) })) })); var _ = i(3379), b = i.n(_), v = i(7795), w = i.n(v), C = i(569), y = i.n(C), S = i(3565), x = i.n(S), k = i(9216), L = i.n(k), N = i(4589), D = i.n(N), E = i(5674), I = {}; I.styleTagTransform = D(), I.setAttributes = x(), I.insert = y().bind( null, "head"), I.domAPI = w(), I.insertStyleElement = L(), b()(E.Z, I), E.Z && E.Z.locals && E.Z.locals; var T = i(5321), M = i(4314), A = i(6281), R = i(7869), O = i(3910), P = i(7781), F = i(6811); class B { constructor(e, t, i) { this.afterLineNumber = e, this.heightInPx = t, this._onHeight = i, this.suppressMouseDown = !0, this.domNode = document.createElement( "div") } onComputedHeight(e) { void 0 === this._lastHeight ? this._lastHeight = e : this._lastHeight !== e && (this._lastHeight = e, this._onHeight()) } } class W { constructor(e, t, i) { this.allowEditorOverflow = !1, this.suppressMouseDown = !0, this._commands = new Map, this._isEmpty = !0, this._editor = e, this._id = "codelens.widget-" + W._idPool++, this.updatePosition(i), this._domNode = document.createElement("span"), this._domNode.className = `codelens-decoration ${t}` } withCommands(e, t) { this._commands.clear(); let i = [], n = !1; for (let t = 0; t < e.length; t++) { const o = e[t]; if (o && (n = !0, o.command)) { const n = (0, F.T)(o.command.title.trim()); o.command.id ? (i.push(T.$("a", { id: String(t), title: o.command.tooltip }, ...n)), this._commands.set(String(t), o.command)) : i.push(T.$( "span", { title: o.command.tooltip }, ...n)), t + 1 < e.length && i.push(T.$("span", void 0, " | ")) } } n ? (T.mc(this._domNode, ...i), this._isEmpty && t && this._domNode.classList .add("fadein"), this._isEmpty = !1) : T.mc(this._domNode, T.$("span", void 0, "no commands")) } getCommand(e) { return e.parentElement === this._domNode ? this._commands.get(e.id) : void 0 } getId() { return this._id } getDomNode() { return this._domNode } updatePosition(e) { const t = this._editor.getModel().getLineFirstNonWhitespaceColumn(e); this._widgetPosition = { position: { lineNumber: e, column: t }, preference: [1] } } getPosition() { return this._widgetPosition || null } } W._idPool = 0; class z { constructor() { this._removeDecorations = [], this._addDecorations = [], this._addDecorationsCallbacks = [] } addDecoration(e, t) { this._addDecorations.push(e), this._addDecorationsCallbacks.push(t) } removeDecoration(e) { this._removeDecorations.push(e) } commit(e) { let t = e.deltaDecorations(this._removeDecorations, this._addDecorations); for (let e = 0, i = t.length; e < i; e++) this._addDecorationsCallbacks[ e](t[e]) } } class V { constructor(e, t, i, n, o, r, s) { let a; this._isDisposed = !1, this._editor = t, this._className = i, this._data = e, this._decorationIds = []; let l = []; this._data.forEach(((e, t) => { e.symbol.command && l.push(e.symbol), n.addDecoration({ range: e.symbol.range, options: A.qx.EMPTY }, (e => this._decorationIds[t] = e)), a = a ? M.e.plusRange(a, e .symbol.range) : M.e.lift(e.symbol.range) })), this._viewZone = new B(a.startLineNumber - 1, r, s), this._viewZoneId = o.addZone(this._viewZone), l.length > 0 && (this._createContentWidgetIfNecessary(), this._contentWidget.withCommands(l, !1)) } _createContentWidgetIfNecessary() { this._contentWidget ? this._editor.layoutContentWidget(this._contentWidget) : (this._contentWidget = new W(this._editor, this._className, this._viewZone .afterLineNumber + 1), this._editor.addContentWidget(this._contentWidget)) } dispose(e, t) { this._decorationIds.forEach(e.removeDecoration, e), this._decorationIds = [], t && 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(((e, t) => { const i = this._editor.getModel().getDecorationRange(e), n = this._data[t].symbol; return !(!i || M.e.isEmpty(n.range) !== i.isEmpty()) })) } updateCodeLensSymbols(e, t) { this._decorationIds.forEach(t.removeDecoration, t), this._decorationIds = [], this._data = e, this._data.forEach(((e, i) => { t.addDecoration({ range: e.symbol.range, options: A.qx.EMPTY }, (e => this._decorationIds[i] = e)) })) } updateHeight(e, t) { this._viewZone.heightInPx = e, t.layoutZone(this._viewZoneId), this._contentWidget && this._editor.layoutContentWidget(this._contentWidget) } computeIfNecessary(e) { if (!this._viewZone.domNode.hasAttribute("monaco-visible-view-zone")) return null; for (let t = 0; t < this._decorationIds.length; t++) { const i = e.getDecorationRange(this._decorationIds[t]); i && (this._data[t].symbol.range = i) } return this._data } updateCommands(e) { this._createContentWidgetIfNecessary(), this._contentWidget.withCommands( e, !0); for (let t = 0; t < this._data.length; t++) { const i = e[t]; if (i) { const { symbol: e } = this._data[t]; e.command = i.command || e.command } } } getCommand(e) { var t; return null === (t = this._contentWidget) || void 0 === t ? void 0 : t .getCommand(e) } getLineNumber() { const e = this._editor.getModel().getDecorationRange(this._decorationIds[ 0]); return e ? e.startLineNumber : -1 } update(e) { if (this.isValid()) { const t = this._editor.getModel().getDecorationRange(this._decorationIds[ 0]); t && (this._viewZone.afterLineNumber = t.startLineNumber - 1, e.layoutZone( this._viewZoneId), this._contentWidget && (this._contentWidget.updatePosition( t.startLineNumber), this._editor.layoutContentWidget(this._contentWidget))) } } getItems() { return this._data } }(0, P.Ic)(((e, t) => { const i = e.getColor(R.Yp); i && (t.addRule(`.monaco-editor .codelens-decoration { color: ${i}; }`), t.addRule( `.monaco-editor .codelens-decoration .codicon { color: ${i}; }`)); const n = e.getColor(O._Y); n && (t.addRule( `.monaco-editor .codelens-decoration > a:hover { color: ${n} !important; }` ), t.addRule( `.monaco-editor .codelens-decoration > a:hover .codicon { color: ${n} !important; }` )) })); var H = i(9422), U = i(2065), j = i(5026), K = i(3702), $ = i(6904), q = i(8289); const Z = (0, U.yh)("ICodeLensCache"); class G { constructor(e, t) { this.lineCount = e, this.data = t } } let Y = class { constructor(e) { this._fakeProvider = new class { provideCodeLenses() { throw new Error("not supported") } }, this._cache = new K.z6(20, .75), (0, n.To)((() => e.remove( "codelens/cache", 1))); const t = "codelens/cache2", i = e.get(t, 1, "{}"); this._deserialize(i), (0, q.I)(e.onWillSaveState)((i => { i.reason === $.fk.SHUTDOWN && e.store(t, this._serialize(), 1, 1) })) } put(e, t) { const i = t.lenses.map((e => { var t; return { range: e.symbol.range, command: e.symbol.command && { id: "", title: null === (t = e.symbol.command) || void 0 === t ? void 0 : t .title } } })), n = new m; n.add({ lenses: i, dispose: () => {} }, this._fakeProvider); const o = new G(e.getLineCount(), n); this._cache.set(e.uri.toString(), o) } get(e) { const t = this._cache.get(e.uri.toString()); return t && t.lineCount === e.getLineCount() ? t.data : void 0 } delete(e) { this._cache.delete(e.uri.toString()) } _serialize() { const e = Object.create(null); for (const [t, i] of this._cache) { const n = new Set; for (const e of i.data.lenses) n.add(e.symbol.range.startLineNumber); e[t] = { lineCount: i.lineCount, lines: [...n.values()] } } return JSON.stringify(e) } _deserialize(e) { try { const t = JSON.parse(e); for (const e in t) { const i = t[e], n = []; for (const e of i.lines) n.push({ range: new M.e(e, 1, e, 11) }); const o = new m; o.add({ lenses: n, dispose() {} }, this._fakeProvider), this._cache.set(e, new G(i.lineCount, o)) } } catch (e) {} } }; var Q, X; Y = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([(Q = 0, X = $.Uy, function(e, t) { X(e, t, Q) })], Y), (0, j.z)(Z, Y); var J = i(9954), ee = i(1157), te = i(3580), ie = i(9102), ne = i(1036), oe = function(e, t) { return function(i, n) { t(i, n, e) } }; let re = class { constructor(e, t, i, o) { this._editor = e, this._commandService = t, this._notificationService = i, this._codeLensCache = o, this._disposables = new r.SL, this._localToDispose = new r.SL, this._lenses = [], this._getCodeLensModelDelays = new ne.Y( l.He, 250, 2500), this._oldCodeLensModels = new r.SL, this._resolveCodeLensesDelays = new ne.Y(l.He, 250, 2500), this._resolveCodeLensesScheduler = new n.pY( (() => this._resolveCodeLensesInViewport()), this._resolveCodeLensesDelays .min), this._disposables.add(this._editor.onDidChangeModel((() => this._onModelChange()))), this._disposables.add(this._editor.onDidChangeModelLanguage( (() => this._onModelChange()))), this._disposables.add(this._editor .onDidChangeConfiguration((e => { (e.hasChanged(42) || e.hasChanged(15) || e.hasChanged(14)) && this._updateLensStyle(), e.hasChanged(13) && this._onModelChange() }))), this._disposables.add(l.He.onDidChange(this._onModelChange, this)), this._onModelChange(), this._styleClassName = "_" + (0, J.vp) (this._editor.getId()).toString(16), this._styleElement = T.dS(T.OO( this._editor.getContainerDomNode()) ? this._editor.getContainerDomNode() : void 0), this._updateLensStyle() } dispose() { var e; this._localDispose(), this._disposables.dispose(), this._oldCodeLensModels .dispose(), null === (e = this._currentCodeLensModel) || void 0 === e || e.dispose(), this._styleElement.remove() } _getLayoutInfo() { let e, t = this._editor.getOption(15); return !t || t < 5 ? (t = .9 * this._editor.getOption(44) | 0, e = this._editor.getOption(58)) : e = t * Math.max(1.3, this._editor.getOption( 58) / this._editor.getOption(44)) | 0, { codeLensHeight: e, fontSize: t } } _updateLensStyle() { const { codeLensHeight: e, fontSize: t } = this._getLayoutInfo(), i = this._editor.getOption(14), n = this._editor .getOption(42), o = `--codelens-font-family${this._styleClassName}`, r = `--codelens-font-features${this._styleClassName}`; let s = `\n\t\t.monaco-editor .codelens-decoration.${this._styleClassName} { line-height: ${e}px; font-size: ${t}px; padding-right: ${Math.round(.5*t)}px; font-feature-settings: var(${r}) }\n\t\t.monaco-editor .codelens-decoration.${this._styleClassName} span.codicon { line-height: ${e}px; font-size: ${t}px; }\n\t\t`; i && (s += `.monaco-editor .codelens-decoration.${this._styleClassName} { font-family: var(${o})}` ), this._styleElement.textContent = s, this._editor.getContainerDomNode() .style.setProperty(o, null != i ? i : "inherit"), this._editor.getContainerDomNode() .style.setProperty(r, n.fontFeatureSettings), this._editor.changeViewZones( (t => { for (let i of this._lenses) i.updateHeight(e, t) })) } _localDispose() { var e, t, i; null === (e = this._getCodeLensModelPromise) || void 0 === e || e.cancel(), this._getCodeLensModelPromise = void 0, null === (t = this._resolveCodeLensesPromise) || void 0 === t || t.cancel(), this._resolveCodeLensesPromise = void 0, this._localToDispose.clear(), this._oldCodeLensModels.clear(), null === (i = this._currentCodeLensModel) || void 0 === i || i.dispose() } _onModelChange() { this._localDispose(); const e = this._editor.getModel(); if (!e) return; if (!this._editor.getOption(13)) return; const t = this._codeLensCache.get(e); if (t && this._renderCodeLensSymbols(t), !l.He.has(e)) return void(t && this._localToDispose.add((0, n.Vg)((() => { const i = this._codeLensCache.get(e); t === i && (this._codeLensCache.delete(e), this._onModelChange()) }), 3e4))); for (const t of l.He.all(e)) if ("function" == typeof t.onDidChange) { let e = t.onDidChange((() => i.schedule())); this._localToDispose.add(e) } const i = new n.pY((() => { var t; const r = Date.now(); null === (t = this._getCodeLensModelPromise) || void 0 === t || t .cancel(), this._getCodeLensModelPromise = (0, n.PG)((t => f(e, t))), this._getCodeLensModelPromise.then((t => { this._currentCodeLensModel && this._oldCodeLensModels.add( this._currentCodeLensModel), this._currentCodeLensModel = t, this._codeLensCache.put(e, t); const n = this._getCodeLensModelDelays.update(e, Date.now() - r); i.delay = n, this._renderCodeLensSymbols(t), this._resolveCodeLensesInViewportSoon() }), o.dL) }), this._getCodeLensModelDelays.get(e)); this._localToDispose.add(i), this._localToDispose.add((0, r.OF)((() => this._resolveCodeLensesScheduler.cancel()))), this._localToDispose.add( this._editor.onDidChangeModelContent((() => { this._editor.changeDecorations((e => { this._editor.changeViewZones((t => { let i = [], n = -1; this._lenses.forEach((e => { e.isValid() && n !== e.getLineNumber() ? (e.update(t), n = e.getLineNumber()) : i.push(e) })); let o = new z; i.forEach((e => { e.dispose(o, t), this._lenses.splice(this._lenses.indexOf( e), 1) })), o.commit(e) })) })), i.schedule() }))), this._localToDispose.add(this._editor.onDidFocusEditorWidget( (() => { i.schedule() }))), this._localToDispose.add(this._editor.onDidScrollChange((e => { e.scrollTopChanged && this._lenses.length > 0 && this._resolveCodeLensesInViewportSoon() }))), this._localToDispose.add(this._editor.onDidLayoutChange((() => { this._resolveCodeLensesInViewportSoon() }))), this._localToDispose.add((0, r.OF)((() => { if (this._editor.getModel()) { const e = s.ZF.capture(this._editor); this._editor.changeDecorations((e => { this._editor.changeViewZones((t => { this._disposeAllLenses(e, t) })) })), e.restore(this._editor) } else this._disposeAllLenses(void 0, void 0) }))), this._localToDispose.add(this._editor.onMouseDown((e => { if (9 !== e.target.type) return; let t = e.target.element; if ("SPAN" === (null == t ? void 0 : t.tagName) && (t = t.parentElement), "A" === (null == t ? void 0 : t.tagName)) for (const e of this._lenses) { let i = e.getCommand(t); if (i) { this._commandService.executeCommand(i.id, ...i.arguments || []) .catch((e => this._notificationService.error(e))); break } } }))), i.schedule() } _disposeAllLenses(e, t) { const i = new z; for (const e of this._lenses) e.dispose(i, t); e && i.commit(e), this._lenses.length = 0 } _renderCodeLensSymbols(e) { if (!this._editor.hasModel()) return; let t, i = this._editor.getModel().getLineCount(), n = []; for (let o of e.lenses) { let e = o.symbol.range.startLineNumber; e < 1 || e > i || (t && t[t.length - 1].symbol.range.startLineNumber === e ? t.push(o) : (t = [o], n.push(t))) } const o = s.ZF.capture(this._editor), r = this._getLayoutInfo(); this._editor.changeDecorations((e => { this._editor.changeViewZones((t => { const i = new z; let o = 0, s = 0; for (; s < n.length && o < this._lenses.length;) { let e = n[s][0].symbol.range.startLineNumber, a = this._lenses[o].getLineNumber(); a < e ? (this._lenses[o].dispose(i, t), this._lenses.splice( o, 1)) : a === e ? (this._lenses[o].updateCodeLensSymbols( n[s], i), s++, o++) : (this._lenses.splice(o, 0, new V(n[s], this._editor, this._styleClassName, i, t, r.codeLensHeight, ( () => this._resolveCodeLensesInViewportSoon()))), o++, s++) } for (; o < this._lenses.length;) this._lenses[o].dispose(i, t), this._lenses.splice(o, 1); for (; s < n.length;) this._lenses.push(new V(n[s], this._editor, this._styleClassName, i, t, r.codeLensHeight, (() => this._resolveCodeLensesInViewportSoon()) )), s++; i.commit(e) })) })), o.restore(this._editor) } _resolveCodeLensesInViewportSoon() { this._editor.getModel() && this._resolveCodeLensesScheduler.schedule() } _resolveCodeLensesInViewport() { var e; null === (e = this._resolveCodeLensesPromise) || void 0 === e || e.cancel(), this._resolveCodeLensesPromise = void 0; const t = this._editor.getModel(); if (!t) return; const i = [], r = []; if (this._lenses.forEach((e => { const n = e.computeIfNecessary(t); n && (i.push(n), r.push(e)) })), 0 === i.length) return; const s = Date.now(), a = (0, n.PG)((e => { const n = i.map(((i, n) => { const s = new Array(i.length), a = i.map(((i, n) => i.symbol.command || "function" != typeof i.provider.resolveCodeLens ? (s[n] = i.symbol, Promise.resolve(void 0)) : Promise.resolve(i.provider.resolveCodeLens( t, i.symbol, e)).then((e => { s[n] = e }), o.Cp))); return Promise.all(a).then((() => { e.isCancellationRequested || r[n].isDisposed() || r[n].updateCommands( s) })) })); return Promise.all(n) })); this._resolveCodeLensesPromise = a, this._resolveCodeLensesPromise.then( (() => { const e = this._resolveCodeLensesDelays.update(t, Date.now() - s); this._resolveCodeLensesScheduler.delay = e, this._currentCodeLensModel && this._codeLensCache.put(t, this._currentCodeLensModel), this._oldCodeLensModels .clear(), a === this._resolveCodeLensesPromise && (this._resolveCodeLensesPromise = void 0) }), (e => { (0, o.dL)(e), a === this._resolveCodeLensesPromise && (this._resolveCodeLensesPromise = void 0) })) } getLenses() { return this._lenses } }; re.ID = "css.editor.codeLens", re = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([oe(1, u.H), oe(2, H.lT), oe(3, Z)], re), (0, a._K)(re.ID, re), (0, a.Qr) (class extends a.R6 { constructor() { super({ id: "codelens.showLensesInCurrentLine", precondition: ie.u.hasCodeLensProvider, label: (0, te.N)("showLensOnLine", "Show CodeLens Commands For Current Line"), alias: "Show CodeLens Commands For Current Line" }) } run(e, t) { return i = this, n = void 0, r = function*() { if (!t.hasModel()) return; const i = e.get(ee.eJ), n = e.get(u.H), o = e.get(H.lT), r = t.getSelection().positionLineNumber, s = t.getContribution(re.ID), a = []; for (let e of s.getLenses()) if (e.getLineNumber() === r) for (let t of e.getItems()) { const { command: e } = t.symbol; e && a.push({ label: e.title, command: e }) } if (0 === a.length) return; const l = yield i.pick(a, { canPickMany: !1 }); if (l) try { yield n.executeCommand(l.command.id, ...l.command.arguments || []) } catch (e) { o.error(e) } }, new((o = void 0) || (o = Promise))((function(e, t) { function s(e) { try { l(r.next(e)) } catch (e) { t(e) } } function a(e) { try { l(r.throw(e)) } catch (e) { t(e) } } function l(t) { var i; t.done ? e(t.value) : (i = t.value, i instanceof o ? i : new o( (function(e) { e(i) }))).then(s, a) } l((r = r.apply(i, n || [])).next()) })); var i, n, o, r } }) }, 3308: (e, t, i) => { "use strict"; i.d(t, { E: () => c, R: () => h }); var n = i(1050), o = i(7301), r = i(666), s = i(4314), a = i(4101), l = i(1200), d = i(4565); function c(e, t) { const i = [], n = a.OH.ordered(e).reverse().map((n => Promise.resolve(n.provideDocumentColors( e, t)).then((e => { if (Array.isArray(e)) for (let t of e) i.push({ colorInfo: t, provider: n }) })))); return Promise.all(n).then((() => i)) } function h(e, t, i, n) { return Promise.resolve(i.provideColorPresentations(e, t, n)) } d.P.registerCommand("_executeDocumentColorProvider", (function(e, ...t) { const [i] = t; if (!(i instanceof r.o)) throw (0, o.b1)(); const s = e.get(l.q).getModel(i); if (!s) throw (0, o.b1)(); const d = [], c = a.OH.ordered(s).reverse().map((e => Promise.resolve(e.provideDocumentColors( s, n.T.None)).then((e => { if (Array.isArray(e)) for (let t of e) d.push({ range: t.range, color: [t.color.red, t.color.green, t.color.blue, t.color.alpha] }) })))); return Promise.all(c).then((() => d)) })), d.P.registerCommand("_executeColorPresentationProvider", (function( e, ...t) { const [i, d] = t, { uri: c, range: h } = d; if (!(c instanceof r.o && Array.isArray(i) && 4 === i.length && s.e.isIRange( h))) throw (0, o.b1)(); const [u, g, p, m] = i, f = e.get(l.q).getModel(c); if (!f) throw (0, o.b1)(); const _ = { range: h, color: { red: u, green: g, blue: p, alpha: m } }, b = [], v = a.OH.ordered(f).reverse().map((e => Promise.resolve(e.provideColorPresentations( f, _, n.T.None)).then((e => { Array.isArray(e) && b.push(...e) })))); return Promise.all(v).then((() => b)) })) }, 7956: (e, t, i) => { "use strict"; i.r(t), i.d(t, { ColorContribution: () => a }), i(4494); var n = i(5976), o = i(6830), r = i(3285), s = i(4314); class a extends n.JT { constructor(e) { super(), this._editor = e, this._register(e.onMouseDown((e => this.onMouseDown( e)))) } dispose() { super.dispose() } onMouseDown(e) { var t; if (6 !== e.target.type) return; if (![...(null === (t = e.target.element) || void 0 === t ? void 0 : t.classList.values()) || []].find((e => e.startsWith("ced-colorBox")))) return; if (!e.target.range) return; const i = this._editor.getContribution(r.ModesHoverController.ID); if (!i.isColorPickerVisible()) { const t = new s.e(e.target.range.startLineNumber, e.target.range.startColumn + 1, e.target.range.endLineNumber, e.target.range.endColumn + 1); i.showContentHover(t, 0, !1) } } } a.ID = "editor.contrib.colorContribution", (0, o._K)(a.ID, a) }, 4494: (e, t, i) => { "use strict"; i.d(t, { i: () => f }); var n = i(5393), o = i(1264), r = i(7301), s = i(9954), a = i(5976), l = i(6830), d = i(1640), c = i(4314), h = i(6281), u = i(4101), g = i(3308), p = i(3108), m = function(e, t) { return function(i, n) { t(i, n, e) } }; let f = class e extends a.JT { constructor(e, t, i) { super(), this._editor = e, this._codeEditorService = t, this._configurationService = i, this._localToDispose = this._register(new a.SL), this._decorationsIds = [], this._colorDatas = new Map, this._colorDecoratorIds = [], this._decorationsTypes = new Set, this._register(e.onDidChangeModel((() => { this._isEnabled = this.isEnabled(), this.onModelChanged() }))), this._register(e.onDidChangeModelLanguage((() => this.onModelChanged()))), this._register(u.OH.onDidChange((() => this.onModelChanged()))), this._register(e.onDidChangeConfiguration((() => { let e = this._isEnabled; this._isEnabled = this.isEnabled(), e !== this._isEnabled && ( this._isEnabled ? this.onModelChanged() : this.removeAllDecorations() ) }))), this._timeoutTimer = null, this._computePromise = null, this._isEnabled = this.isEnabled(), this.onModelChanged() } isEnabled() { const e = this._editor.getModel(); if (!e) return !1; const t = e.getLanguageIdentifier(), i = this._configurationService.getValue(t.language); if (i && "object" == typeof i) { const e = i.colorDecorators; if (e && void 0 !== e.enable && !e.enable) return e.enable } return this._editor.getOption(16) } static get(e) { return e.getContribution(this.ID) } dispose() { this.stop(), this.removeAllDecorations(), super.dispose() } onModelChanged() { if (this.stop(), !this._isEnabled) return; const t = this._editor.getModel(); t && u.OH.has(t) && (this._localToDispose.add(this._editor.onDidChangeModelContent( (() => { this._timeoutTimer || (this._timeoutTimer = new n._F, this._timeoutTimer .cancelAndSet((() => { this._timeoutTimer = null, this.beginCompute() }), e.RECOMPUTE_TIME)) }))), this.beginCompute()) } beginCompute() { this._computePromise = (0, n.PG)((e => { const t = this._editor.getModel(); return t ? (0, g.E)(t, e) : Promise.resolve([]) })), this._computePromise.then((e => { this.updateDecorations(e), this.updateColorDecorators(e), this._computePromise = null }), r.dL) } stop() { this._timeoutTimer && (this._timeoutTimer.cancel(), this._timeoutTimer = null), this._computePromise && (this._computePromise.cancel(), this ._computePromise = null), this._localToDispose.clear() } updateDecorations(e) { const t = e.map((e => ({ range: { startLineNumber: e.colorInfo.range.startLineNumber, startColumn: e.colorInfo.range.startColumn, endLineNumber: e.colorInfo.range.endLineNumber, endColumn: e.colorInfo.range.endColumn }, options: h.qx.EMPTY }))); this._decorationsIds = this._editor.deltaDecorations(this._decorationsIds, t), this._colorDatas = new Map, this._decorationsIds.forEach(((t, i) => this._colorDatas.set(t, e[i]))) } updateColorDecorators(e) { let t = [], i = {}; for (let n = 0; n < e.length && t.length < 500; n++) { const { red: r, green: a, blue: l, alpha: d } = e[n].colorInfo.color, c = new o.VS(Math.round(255 * r), Math.round( 255 * a), Math.round(255 * l), d); let h = (0, s.vp)(`rgba(${c.r},${c.g},${c.b},${c.a})`).toString(16), u = `rgba(${c.r}, ${c.g}, ${c.b}, ${c.a})`, g = "colorBox-" + h; this._decorationsTypes.has(g) || i[g] || this._codeEditorService.registerDecorationType( "color-detector-color", g, { before: { contentText: " ", border: "solid 0.1em #000", margin: "0.1em 0.2em 0 0.2em", width: "0.8em", height: "0.8em", backgroundColor: u }, dark: { before: { border: "solid 0.1em #eee" } } }, void 0, this._editor), i[g] = !0, t.push({ range: { startLineNumber: e[n].colorInfo.range.startLineNumber, startColumn: e[n].colorInfo.range.startColumn, endLineNumber: e[n].colorInfo.range.endLineNumber, endColumn: e[n].colorInfo.range.endColumn }, options: this._codeEditorService.resolveDecorationOptions(g, !0) }) } this._decorationsTypes.forEach((e => { i[e] || this._codeEditorService.removeDecorationType(e) })), this._colorDecoratorIds = this._editor.deltaDecorations(this._colorDecoratorIds, t) } removeAllDecorations() { this._decorationsIds = this._editor.deltaDecorations(this._decorationsIds, []), this._colorDecoratorIds = this._editor.deltaDecorations(this._colorDecoratorIds, []), this._decorationsTypes.forEach((e => { this._codeEditorService.removeDecorationType(e) })) } getColorData(e) { const t = this._editor.getModel(); if (!t) return null; const i = t.getDecorationsInRange(c.e.fromPositions(e, e)).filter((e => this._colorDatas.has(e.id))); return 0 === i.length ? null : this._colorDatas.get(i[0].id) } }; f.ID = "editor.contrib.colorDetector", f.RECOMPUTE_TIME = 1e3, f = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([m(1, d.$), m(2, p.Ui)], f), (0, l._K)(f.ID, f) }, 9098: (e, t, i) => { "use strict"; i.r(t); var n = i(3580), o = i(2258), r = i(6830), s = i(4314), a = i(9102), l = i(9386), d = i(187), c = i(3860), h = i(3831); class u { constructor(e, t) { this._selection = e, this._insertSpace = t, this._usedEndToken = null } static _haystackHasNeedleAtOffset(e, t, i) { if (i < 0) return !1; const n = t.length; if (i + n > e.length) return !1; for (let o = 0; o < n; o++) { const n = e.charCodeAt(i + o), r = t.charCodeAt(o); if (n !== r && !(n >= 65 && n <= 90 && n + 32 === r || r >= 65 && r <= 90 && r + 32 === n)) return !1 } return !0 } _createOperationsForBlockComment(e, t, i, n, o, r) { const a = e.startLineNumber, l = e.startColumn, d = e.endLineNumber, c = e.endColumn, h = o.getLineContent(a), g = o.getLineContent(d); let p, m = h.lastIndexOf(t, l - 1 + t.length), f = g.indexOf(i, c - 1 - i.length); if (-1 !== m && -1 !== f) if (a === d) h.substring(m + t.length, f).indexOf(i) >= 0 && (m = -1, f = -1); else { const e = h.substring(m + t.length), n = g.substring(0, f); (e.indexOf(i) >= 0 || n.indexOf(i) >= 0) && (m = -1, f = -1) } - 1 !== m && -1 !== f ? (n && m + t.length < h.length && 32 === h.charCodeAt( m + t.length) && (t += " "), n && f > 0 && 32 === g.charCodeAt(f - 1) && (i = " " + i, f -= 1), p = u._createRemoveBlockCommentOperations( new s.e(a, m + t.length + 1, d, f + 1), t, i)) : (p = u._createAddBlockCommentOperations( e, t, i, this._insertSpace), this._usedEndToken = 1 === p.length ? i : null); for (const e of p) r.addTrackedEditOperation(e.range, e.text) } static _createRemoveBlockCommentOperations(e, t, i) { let n = []; return s.e.isEmpty(e) ? n.push(l.h.delete(new s.e(e.startLineNumber, e .startColumn - t.length, e.endLineNumber, e.endColumn + i.length))) : (n.push(l.h.delete(new s.e(e.startLineNumber, e.startColumn - t.length, e.startLineNumber, e.startColumn))), n.push(l.h.delete(new s.e(e.endLineNumber, e.endColumn, e.endLineNumber, e.endColumn + i.length)))), n } static _createAddBlockCommentOperations(e, t, i, n) { let o = []; return s.e.isEmpty(e) ? o.push(l.h.replace(new s.e(e.startLineNumber, e.startColumn, e.endLineNumber, e.endColumn), t + " " + i)) : (o.push( l.h.insert(new d.L(e.startLineNumber, e.startColumn), t + (n ? " " : ""))), o.push(l.h.insert(new d.L(e.endLineNumber, e.endColumn), (n ? " " : "") + i))), o } getEditOperations(e, t) { const i = this._selection.startLineNumber, n = this._selection.startColumn; e.tokenizeIfCheap(i); const o = e.getLanguageIdAtPosition(i, n), r = h.zu.getComments(o); r && r.blockCommentStartToken && r.blockCommentEndToken && this._createOperationsForBlockComment( this._selection, r.blockCommentStartToken, r.blockCommentEndToken, this._insertSpace, e, t) } computeCursorState(e, t) { const i = t.getInverseEditOperations(); if (2 === i.length) { const e = i[0], t = i[1]; return new c.Y(e.range.endLineNumber, e.range.endColumn, t.range.startLineNumber, t.range.startColumn) } { const e = i[0].range, t = this._usedEndToken ? -this._usedEndToken.length - 1 : 0; return new c.Y(e.endLineNumber, e.endColumn + t, e.endLineNumber, e.endColumn + t) } } } var g = i(7295); class p { constructor(e, t, i, n, o, r) { this._selection = e, this._tabSize = t, this._type = i, this._insertSpace = n, this._selectionId = null, this._deltaColumn = 0, this._moveEndPositionDown = ! 1, this._ignoreEmptyLines = o, this._ignoreFirstLine = r || !1 } static _gatherPreflightCommentStrings(e, t, i) { e.tokenizeIfCheap(t); const n = e.getLanguageIdAtPosition(t, 1), o = h.zu.getComments(n), r = o ? o.lineCommentToken : null; if (!r) return null; let s = []; for (let e = 0, n = i - t + 1; e < n; e++) s[e] = { ignore: !1, commentStr: r, commentStrOffset: 0, commentStrLength: r.length }; return s } static _analyzeLines(e, t, i, n, o, r, s) { let a, l = !0; a = 0 === e || 1 !== e; for (let d = 0, c = n.length; d < c; d++) { const c = n[d], h = o + d; if (h === o && s) { c.ignore = !0; continue } const p = i.getLineContent(h), m = g.LC(p); if (-1 !== m) { if (l = !1, c.ignore = !1, c.commentStrOffset = m, a && !u._haystackHasNeedleAtOffset( p, c.commentStr, m) && (0 === e ? a = !1 : 1 === e || (c.ignore = ! 0)), a && t) { const e = m + c.commentStrLength; e < p.length && 32 === p.charCodeAt(e) && (c.commentStrLength += 1) } } else c.ignore = r, c.commentStrOffset = p.length } if (0 === e && l) { a = !1; for (let e = 0, t = n.length; e < t; e++) n[e].ignore = !1 } return { supported: !0, shouldRemoveComments: a, lines: n } } static _gatherPreflightData(e, t, i, n, o, r, s) { const a = p._gatherPreflightCommentStrings(i, n, o); return null === a ? { supported: !1 } : p._analyzeLines(e, t, i, a, n, r, s) } _executeLineComments(e, t, i, n) { let o; i.shouldRemoveComments ? o = p._createRemoveLineCommentsOperations(i.lines, n.startLineNumber) : (p._normalizeInsertionPoint(e, i.lines, n.startLineNumber, this._tabSize), o = this._createAddLineCommentsOperations(i.lines, n.startLineNumber)); const r = new d.L(n.positionLineNumber, n.positionColumn); for (let i = 0, n = o.length; i < n; i++) t.addEditOperation(o[i].range, o[i].text), s.e.isEmpty(o[i].range) && s.e.getStartPosition(o[i].range) .equals(r) && e.getLineContent(r.lineNumber).length + 1 === r.column && (this._deltaColumn = (o[i].text || "").length); this._selectionId = t.trackSelection(n) } _attemptRemoveBlockComment(e, t, i, n) { let o = t.startLineNumber, r = t.endLineNumber, a = n.length + Math.max(e.getLineFirstNonWhitespaceColumn(t.startLineNumber), t.startColumn), l = e.getLineContent(o).lastIndexOf(i, a - 1), d = e.getLineContent(r).indexOf(n, t.endColumn - 1 - i.length); return -1 !== l && -1 === d && (d = e.getLineContent(o).indexOf(n, l + i.length), r = o), -1 === l && -1 !== d && (l = e.getLineContent(r).lastIndexOf( i, d), o = r), !t.isEmpty() || -1 !== l && -1 !== d || (l = e.getLineContent( o).indexOf(i), -1 !== l && (d = e.getLineContent(o).indexOf(n, l + i.length))), -1 !== l && 32 === e.getLineContent(o).charCodeAt(l + i .length) && (i += " "), -1 !== d && 32 === e.getLineContent(r).charCodeAt( d - 1) && (n = " " + n, d -= 1), -1 !== l && -1 !== d ? u._createRemoveBlockCommentOperations( new s.e(o, l + i.length + 1, r, d + 1), i, n) : null } _executeBlockComment(e, t, i) { e.tokenizeIfCheap(i.startLineNumber); let n = e.getLanguageIdAtPosition(i.startLineNumber, 1), o = h.zu.getComments(n); if (!o || !o.blockCommentStartToken || !o.blockCommentEndToken) return ; const r = o.blockCommentStartToken, a = o.blockCommentEndToken; let l = this._attemptRemoveBlockComment(e, i, r, a); if (!l) { if (i.isEmpty()) { const t = e.getLineContent(i.startLineNumber); let n = g.LC(t); - 1 === n && (n = t.length), l = u._createAddBlockCommentOperations( new s.e(i.startLineNumber, n + 1, i.startLineNumber, t.length + 1), r, a, this._insertSpace) } else l = u._createAddBlockCommentOperations(new s.e(i.startLineNumber, e.getLineFirstNonWhitespaceColumn(i.startLineNumber), i.endLineNumber, e.getLineMaxColumn(i.endLineNumber)), r, a, this._insertSpace); 1 === l.length && (this._deltaColumn = r.length + 1) } this._selectionId = t.trackSelection(i); for (const e of l) t.addEditOperation(e.range, e.text) } getEditOperations(e, t) { let i = this._selection; if (this._moveEndPositionDown = !1, i.startLineNumber === i.endLineNumber && this._ignoreFirstLine) return t.addEditOperation(new s.e(i.startLineNumber, e.getLineMaxColumn(i.startLineNumber), i.startLineNumber + 1, 1), i.startLineNumber === e.getLineCount() ? "" : "\n"), void(this._selectionId = t.trackSelection(i)); i.startLineNumber < i.endLineNumber && 1 === i.endColumn && (this._moveEndPositionDown = ! 0, i = i.setEndPosition(i.endLineNumber - 1, e.getLineMaxColumn(i.endLineNumber - 1))); const n = p._gatherPreflightData(this._type, this._insertSpace, e, i.startLineNumber, i.endLineNumber, this._ignoreEmptyLines, this._ignoreFirstLine); return n.supported ? this._executeLineComments(e, t, n, i) : this._executeBlockComment( e, t, i) } computeCursorState(e, t) { let i = t.getTrackedSelection(this._selectionId); return this._moveEndPositionDown && (i = i.setEndPosition(i.endLineNumber + 1, 1)), new c.Y(i.selectionStartLineNumber, i.selectionStartColumn + this._deltaColumn, i.positionLineNumber, i.positionColumn + this._deltaColumn ) } static _createRemoveLineCommentsOperations(e, t) { let i = []; for (let n = 0, o = e.length; n < o; n++) { const o = e[n]; o.ignore || i.push(l.h.delete(new s.e(t + n, o.commentStrOffset + 1, t + n, o.commentStrOffset + o.commentStrLength + 1))) } return i } _createAddLineCommentsOperations(e, t) { let i = []; const n = this._insertSpace ? " " : ""; for (let o = 0, r = e.length; o < r; o++) { const r = e[o]; r.ignore || i.push(l.h.insert(new d.L(t + o, r.commentStrOffset + 1), r.commentStr + n)) } return i } static nextVisibleColumn(e, t, i, n) { return i ? e + (t - e % t) : e + n } static _normalizeInsertionPoint(e, t, i, n) { let o, r, s = 1073741824; for (let o = 0, r = t.length; o < r; o++) { if (t[o].ignore) continue; const r = e.getLineContent(i + o); let a = 0; for (let e = 0, i = t[o].commentStrOffset; a < s && e < i; e++) a = p .nextVisibleColumn(a, n, 9 === r.charCodeAt(e), 1); a < s && (s = a) } s = Math.floor(s / n) * n; for (let a = 0, l = t.length; a < l; a++) { if (t[a].ignore) continue; const l = e.getLineContent(i + a); let d = 0; for (o = 0, r = t[a].commentStrOffset; d < s && o < r; o++) d = p.nextVisibleColumn( d, n, 9 === l.charCodeAt(o), 1); t[a].commentStrOffset = d > s ? o - 1 : o } } } var m = i(4144); class f extends r.R6 { constructor(e, t) { super(t), this._type = e } run(e, t) { if (!t.hasModel()) return; const i = [], n = t.getModel().getOptions(), o = t.getOption(18), r = t.getSelections().map(((e, t) => ({ selection: e, index: t, ignoreFirstLine: !1 }))); r.sort(((e, t) => s.e.compareRangesUsingStarts(e.selection, t.selection))); let a = r[0]; for (let e = 1; e < r.length; e++) { const t = r[e]; a.selection.endLineNumber === t.selection.startLineNumber && (a.index < t.index ? t.ignoreFirstLine = !0 : (a.ignoreFirstLine = !0, a = t) ) } for (const e of r) i.push(new p(e.selection, n.tabSize, this._type, o .insertSpace, o.ignoreEmptyLines, e.ignoreFirstLine)); t.pushUndoStop(), t.executeCommands(this.id, i), t.pushUndoStop() } } class _ extends r.R6 { constructor() { super({ id: "editor.action.blockComment", label: n.N("comment.block", "Toggle Block Comment"), alias: "Toggle Block Comment", precondition: a.u.writable, kbOpts: { kbExpr: a.u.editorTextFocus, primary: 1567, linux: { primary: 3103 }, weight: 100 }, menuOpts: { menuId: m.eH.MenubarEditMenu, group: "5_insert", title: n.N({ key: "miToggleBlockComment", comment: ["&& denotes a mnemonic"] }, "Toggle &&Block Comment"), order: 2 } }) } run(e, t) { if (!t.hasModel()) return; const i = t.getOption(18), n = [], o = t.getSelections(); for (const e of o) n.push(new u(e, i.insertSpace)); t.pushUndoStop(), t.executeCommands(this.id, n), t.pushUndoStop() } }(0, r.Qr)(class extends f { constructor() { super(0, { id: "editor.action.commentLine", label: n.N("comment.line", "Toggle Line Comment"), alias: "Toggle Line Comment", precondition: a.u.writable, kbOpts: { kbExpr: a.u.editorTextFocus, primary: 2133, weight: 100 }, menuOpts: { menuId: m.eH.MenubarEditMenu, group: "5_insert", title: n.N({ key: "miToggleLineComment", comment: ["&& denotes a mnemonic"] }, "&&Toggle Line Comment"), order: 1 } }) } }), (0, r.Qr)(class extends f { constructor() { super(1, { id: "editor.action.addCommentLine", label: n.N("comment.line.add", "Add Line Comment"), alias: "Add Line Comment", precondition: a.u.writable, kbOpts: { kbExpr: a.u.editorTextFocus, primary: (0, o.gx)(2089, 2081), weight: 100 } }) } }), (0, r.Qr)(class extends f { constructor() { super(2, { id: "editor.action.removeCommentLine", label: n.N("comment.line.remove", "Remove Line Comment"), alias: "Remove Line Comment", precondition: a.u.writable, kbOpts: { kbExpr: a.u.editorTextFocus, primary: (0, o.gx)(2089, 2099), weight: 100 } }) } }), (0, r.Qr)(_) }, 6522: (e, t, i) => { "use strict"; i.r(t), i.d(t, { ContextMenuController: () => f }); var n = i(3580), o = i(5321), r = i(4741), s = i(5976), a = i(6830), l = i(9102), d = i(4144), c = i(8819), h = i(5606), u = i(1847), g = i(6033), p = i(1432), m = function(e, t) { return function(i, n) { t(i, n, e) } }; let f = class e { constructor(e, t, i, n, r, a) { this._contextMenuService = t, this._contextViewService = i, this._contextKeyService = n, this._keybindingService = r, this._menuService = a, this._toDispose = new s.SL, this._contextMenuIsBeingShownCount = 0, this._editor = e, this._toDispose.add(this._editor.onContextMenu((e => this._onContextMenu( e)))), this._toDispose.add(this._editor.onMouseWheel((e => { if (this._contextMenuIsBeingShownCount > 0) { const t = this._contextViewService.getContextViewElement(), i = e.srcElement; i.shadowRoot && o.Ay(t) === i.shadowRoot || this._contextViewService .hideContextView() } }))), this._toDispose.add(this._editor.onKeyDown((e => { 58 === e.keyCode && (e.preventDefault(), e.stopPropagation(), this.showContextMenu()) }))) } static get(t) { return t.getContribution(e.ID) } _onContextMenu(e) { if (!this._editor.hasModel()) return; if (!this._editor.getOption(19)) return this._editor.focus(), void(e.target .position && !this._editor.getSelection().containsPosition(e.target .position) && this._editor.setPosition(e.target.position)); if (12 === e.target.type) return; if (e.event.preventDefault(), e.event.stopPropagation(), 6 !== e.target .type && 7 !== e.target.type && 1 !== e.target.type) return; if (this._editor.focus(), e.target.position) { let t = !1; for (const i of this._editor.getSelections()) if (i.containsPosition(e.target.position)) { t = !0; break } t || this._editor.setPosition(e.target.position) } let t = null; 1 !== e.target.type && (t = { x: e.event.posx - 1, width: 2, y: e.event.posy - 1, height: 2 }), this.showContextMenu(t) } showContextMenu(e) { if (!this._editor.getOption(19)) return; if (!this._editor.hasModel()) return; if (!this._contextMenuService) return void this._editor.focus(); const t = this._getMenuActions(this._editor.getModel(), this._editor.isSimpleWidget ? d.eH.SimpleEditorContext : d.eH.EditorContext); t.length > 0 && this._doShowContextMenu(t, e) } _getMenuActions(e, t) { const i = [], n = this._menuService.createMenu(t, this._contextKeyService), o = n.getActions({ arg: e.uri }); n.dispose(); for (let t of o) { const [, n] = t; let o = 0; for (const t of n) if (t instanceof d.NZ) { const n = this._getMenuActions(e, t.item.submenu); n.length > 0 && (i.push(new r.wY(t.id, t.label, n)), o++) } else i.push(t), o++; o && i.push(new r.Z0) } return i.length && i.pop(), i } _doShowContextMenu(e, t = null) { if (!this._editor.hasModel()) return; const i = this._editor.getOption(52); if (this._editor.updateOptions({ hover: { enabled: !1 } }), !t) { this._editor.revealPosition(this._editor.getPosition(), 1), this._editor .render(); const e = this._editor.getScrolledVisiblePosition(this._editor.getPosition()), i = o.i(this._editor.getDomNode()), n = i.left + e.left, r = i.top + e.top + e.height; t = { x: n, y: r } } const n = this._editor.getOption(114) && !p.gn; this._contextMenuIsBeingShownCount++, this._contextMenuService.showContextMenu({ domForShadowRoot: n ? this._editor.getDomNode() : void 0, getAnchor: () => t, getActions: () => e, getActionViewItem: e => { const t = this._keybindingFor(e); if (t) return new g.g(e, e, { label: !0, keybinding: t.getLabel(), isMenu: !0 }); const i = e; return "function" == typeof i.getActionViewItem ? i.getActionViewItem() : new g.g(e, e, { icon: !0, label: !0, isMenu: !0 }) }, getKeyBinding: e => this._keybindingFor(e), onHide: e => { this._contextMenuIsBeingShownCount--, this._editor.focus(), this ._editor.updateOptions({ hover: i }) } }) } _keybindingFor(e) { return this._keybindingService.lookupKeybinding(e.id) } dispose() { this._contextMenuIsBeingShownCount > 0 && this._contextViewService.hideContextView(), this._toDispose.dispose() } }; f.ID = "editor.contrib.contextmenu", f = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([m(1, h.i), m(2, h.u), m(3, c.i6), m(4, u.d), m(5, d.co)], f); class _ extends a.R6 { constructor() { super({ id: "editor.action.showContextMenu", label: n.N("action.showContextMenu.label", "Show Editor Context Menu"), alias: "Show Editor Context Menu", precondition: void 0, kbOpts: { kbExpr: l.u.textInputFocus, primary: 1092, weight: 100 } }) } run(e, t) { f.get(t).showContextMenu() } }(0, a._K)(f.ID, f), (0, a.Qr)(_) }, 2834: (e, t, i) => { "use strict"; i.r(t), i.d(t, { CursorUndoRedoController: () => d, CursorUndo: () => c, CursorRedo: () => h }); var n = i(3580), o = i(5976), r = i(6830), s = i(9102); class a { constructor(e) { this.selections = e } equals(e) { const t = this.selections.length; if (t !== e.selections.length) return !1; for (let i = 0; i < t; i++) if (!this.selections[i].equalsSelection(e.selections[i])) return !1; return !0 } } class l { constructor(e, t, i) { this.cursorState = e, this.scrollTop = t, this.scrollLeft = i } } class d extends o.JT { constructor(e) { super(), this._editor = e, this._isCursorUndoRedo = !1, this._undoStack = [], this._redoStack = [], this._register(e.onDidChangeModel((e => { this._undoStack = [], this._redoStack = [] }))), this._register(e.onDidChangeModelContent((e => { this._undoStack = [], this._redoStack = [] }))), this._register(e.onDidChangeCursorSelection((t => { if (this._isCursorUndoRedo) return; if (!t.oldSelections) return; if (t.oldModelVersionId !== t.modelVersionId) return; const i = new a(t.oldSelections); this._undoStack.length > 0 && this._undoStack[this._undoStack.length - 1].cursorState.equals(i) || (this._undoStack.push(new l(i, e.getScrollTop(), e.getScrollLeft())), this._redoStack = [], this._undoStack.length > 50 && this._undoStack.shift()) }))) } static get(e) { return e.getContribution(d.ID) } cursorUndo() { this._editor.hasModel() && 0 !== this._undoStack.length && (this._redoStack .push(new l(new a(this._editor.getSelections()), this._editor.getScrollTop(), this._editor.getScrollLeft())), this._applyState(this._undoStack.pop()) ) } cursorRedo() { this._editor.hasModel() && 0 !== this._redoStack.length && (this._undoStack .push(new l(new a(this._editor.getSelections()), this._editor.getScrollTop(), this._editor.getScrollLeft())), this._applyState(this._redoStack.pop()) ) } _applyState(e) { this._isCursorUndoRedo = !0, this._editor.setSelections(e.cursorState .selections), this._editor.setScrollPosition({ scrollTop: e.scrollTop, scrollLeft: e.scrollLeft }), this._isCursorUndoRedo = !1 } } d.ID = "editor.contrib.cursorUndoRedoController"; class c extends r.R6 { constructor() { super({ id: "cursorUndo", label: n.N("cursor.undo", "Cursor Undo"), alias: "Cursor Undo", precondition: void 0, kbOpts: { kbExpr: s.u.textInputFocus, primary: 2099, weight: 100 } }) } run(e, t, i) { d.get(t).cursorUndo() } } class h extends r.R6 { constructor() { super({ id: "cursorRedo", label: n.N("cursor.redo", "Cursor Redo"), alias: "Cursor Redo", precondition: void 0 }) } run(e, t, i) { d.get(t).cursorRedo() } }(0, r._K)(d.ID, d), (0, r.Qr)(c), (0, r.Qr)(h) }, 6961: (e, t, i) => { "use strict"; i.r(t), i.d(t, { DragAndDropController: () => L }); var n = i(3379), o = i.n(n), r = i(7795), s = i.n(r), a = i(569), l = i.n(a), d = i(3565), c = i.n(d), h = i(9216), u = i.n(h), g = i(4589), p = i.n(g), m = i(9100), f = {}; f.styleTagTransform = p(), f.setAttributes = c(), f.insert = l().bind( null, "head"), f.domAPI = s(), f.insertStyleElement = u(), o()(m.Z, f), m.Z && m.Z.locals && m.Z.locals; var _ = i(5976), b = i(1432), v = i(6830), w = i(187), C = i(4314), y = i(3860); class S { constructor(e, t, i) { this.selection = e, this.targetPosition = t, this.copy = i, this.targetSelection = null } getEditOperations(e, t) { let i = e.getValueInRange(this.selection); this.copy || t.addEditOperation(this.selection, null), t.addEditOperation( new C.e(this.targetPosition.lineNumber, this.targetPosition.column, this.targetPosition.lineNumber, this.targetPosition.column), i), ! this.selection.containsPosition(this.targetPosition) || this.copy && (this.selection.getEndPosition().equals(this.targetPosition) || this.selection .getStartPosition().equals(this.targetPosition)) ? this.copy ? this.targetSelection = new y.Y(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) : this.targetPosition .lineNumber > this.selection.endLineNumber ? this.targetSelection = new y.Y(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) : this.targetPosition.lineNumber < this.selection.endLineNumber ? this.targetSelection = new y.Y(this.targetPosition .lineNumber, this.targetPosition.column, this.targetPosition.lineNumber + this.selection.endLineNumber - this.selection.startLineNumber, this.selection .startLineNumber === this.selection.endLineNumber ? this.targetPosition .column + this.selection.endColumn - this.selection.startColumn : this.selection.endColumn) : this.selection.endColumn <= this.targetPosition .column ? this.targetSelection = new y.Y(this.targetPosition.lineNumber - this.selection.endLineNumber + this.selection.startLineNumber, (this .selection.startLineNumber, this.selection.endLineNumber, this.targetPosition .column - this.selection.endColumn + this.selection.startColumn), this.targetPosition.lineNumber, this.selection.startLineNumber === this.selection.endLineNumber ? this.targetPosition.column : this.selection .endColumn) : this.targetSelection = new y.Y(this.targetPosition.lineNumber - this.selection.endLineNumber + this.selection.startLineNumber, this.targetPosition .column, this.targetPosition.lineNumber, this.targetPosition.column + this.selection.endColumn - this.selection.startColumn) : this.targetSelection = this.selection } computeCursorState(e, t) { return this.targetSelection } } var x = i(6281); function k(e) { return b.dz ? e.altKey : e.ctrlKey } class L extends _.JT { constructor(e) { super(), this._editor = e, this._register(this._editor.onMouseDown((e => this._onEditorMouseDown(e)))), this._register(this._editor.onMouseUp( (e => this._onEditorMouseUp(e)))), this._register(this._editor.onMouseDrag( (e => this._onEditorMouseDrag(e)))), this._register(this._editor.onMouseDrop( (e => this._onEditorMouseDrop(e)))), this._register(this._editor.onMouseDropCanceled( (() => this._onEditorMouseDropCanceled()))), this._register(this._editor .onKeyDown((e => this.onEditorKeyDown(e)))), this._register(this._editor .onKeyUp((e => this.onEditorKeyUp(e)))), this._register(this._editor .onDidBlurEditorWidget((() => this.onEditorBlur()))), this._register( this._editor.onDidBlurEditorText((() => this.onEditorBlur()))), this._dndDecorationIds = [], this._mouseDown = !1, this._modifierPressed = ! 1, this._dragSelection = null } onEditorBlur() { this._removeDecoration(), this._dragSelection = null, this._mouseDown = ! 1, this._modifierPressed = !1 } onEditorKeyDown(e) { this._editor.getOption(30) && !this._editor.getOption(17) && (k(e) && (this._modifierPressed = !0), this._mouseDown && k(e) && this._editor .updateOptions({ mouseStyle: "copy" })) } onEditorKeyUp(e) { this._editor.getOption(30) && !this._editor.getOption(17) && (k(e) && (this._modifierPressed = !1), this._mouseDown && e.keyCode === L.TRIGGER_KEY_VALUE && this._editor.updateOptions({ mouseStyle: "default" })) } _onEditorMouseDown(e) { this._mouseDown = !0 } _onEditorMouseUp(e) { this._mouseDown = !1, this._editor.updateOptions({ mouseStyle: "text" }) } _onEditorMouseDrag(e) { let t = e.target; if (null === this._dragSelection) { let e = (this._editor.getSelections() || []).filter((e => t.position && e.containsPosition(t.position))); if (1 !== e.length) return; this._dragSelection = e[0] } k(e.event) ? this._editor.updateOptions({ mouseStyle: "copy" }) : this._editor.updateOptions({ mouseStyle: "default" }), t.position && (this._dragSelection.containsPosition(t.position) ? this._removeDecoration() : this.showAt(t.position)) } _onEditorMouseDropCanceled() { this._editor.updateOptions({ mouseStyle: "text" }), this._removeDecoration(), this._dragSelection = null, this._mouseDown = ! 1 } _onEditorMouseDrop(e) { if (e.target && (this._hitContent(e.target) || this._hitMargin(e.target)) && e.target.position) { let t = new w.L(e.target.position.lineNumber, e.target.position.column); if (null === this._dragSelection) { let i = null; if (e.event.shiftKey) { let e = this._editor.getSelection(); if (e) { const { selectionStartLineNumber: n, selectionStartColumn: o } = e; i = [new y.Y(n, o, t.lineNumber, t.column)] } } else i = (this._editor.getSelections() || []).map((e => e.containsPosition( t) ? new y.Y(t.lineNumber, t.column, t.lineNumber, t.column) : e)); this._editor.setSelections(i || [], "mouse", 3) } else(!this._dragSelection.containsPosition(t) || (k(e.event) || this._modifierPressed) && (this._dragSelection.getEndPosition().equals( t) || this._dragSelection.getStartPosition().equals(t))) && (this._editor .pushUndoStop(), this._editor.executeCommand(L.ID, new S(this._dragSelection, t, k(e.event) || this._modifierPressed)), this._editor.pushUndoStop() ) } this._editor.updateOptions({ mouseStyle: "text" }), this._removeDecoration(), this._dragSelection = null, this._mouseDown = ! 1 } showAt(e) { let t = [{ range: new C.e(e.lineNumber, e.column, e.lineNumber, e.column), options: L._DECORATION_OPTIONS }]; this._dndDecorationIds = this._editor.deltaDecorations(this._dndDecorationIds, t), this._editor.revealPosition(e, 1) } _removeDecoration() { this._dndDecorationIds = this._editor.deltaDecorations(this._dndDecorationIds, []) } _hitContent(e) { return 6 === e.type || 7 === e.type } _hitMargin(e) { return 2 === e.type || 3 === e.type || 4 === e.type } dispose() { this._removeDecoration(), this._dragSelection = null, this._mouseDown = ! 1, this._modifierPressed = !1, super.dispose() } } L.ID = "editor.contrib.dragAndDrop", L.TRIGGER_KEY_VALUE = b.dz ? 6 : 5, L._DECORATION_OPTIONS = x.qx.register({ description: "dnd-target", className: "dnd-target" }), (0, v._K)(L.ID, L) }, 1372: (e, t, i) => { "use strict"; i.r(t), i.d(t, { getDocumentSymbols: () => h }); var n = i(666), o = i(1200), r = i(1050), s = i(8216), a = i(6895), l = i(4565), d = i(8401), c = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; function h(e, t, i) { return c(this, void 0, void 0, (function*() { const n = yield a.C3.create(e, i); return t ? n.asListOfDocumentSymbols() : n.getTopLevelSymbols() })) } l.P.registerCommand("_executeDocumentSymbolProvider", (function(e, ...t) { return c(this, void 0, void 0, (function*() { const [i] = t; (0, d.p_)(n.o.isUri(i)); const a = e.get(o.q).getModel(i); if (a) return h(a, !1, r.T.None); const l = yield e.get(s.S).createModelReference(i); try { return yield h(l.object.textEditorModel, !1, r.T.None) } finally { l.dispose() } })) })) }, 6895: (e, t, i) => { "use strict"; i.d(t, { C3: () => p }); var n = i(9488), o = i(1050), r = i(7301), s = i(3702), a = i(4314), l = i(4101), d = i(3725), c = i(1036); class h { remove() { this.parent && this.parent.children.delete(this.id) } static findId(e, t) { let i; "string" == typeof e ? i = `${t.id}/${e}` : (i = `${t.id}/${e.name}`, void 0 !== t.children.get(i) && (i = `${t.id}/${e.name}_${e.range.startLineNumber}_${e.range.startColumn}` )); let n = i; for (let e = 0; void 0 !== t.children.get(n); e++) n = `${i}_${e}`; return n } static empty(e) { return 0 === e.children.size } } class u extends h { constructor(e, t, i) { super(), this.id = e, this.parent = t, this.symbol = i, this.children = new Map } } class g extends h { constructor(e, t, i, n) { super(), this.id = e, this.parent = t, this.label = i, this.order = n, this.children = new Map } } class p extends h { constructor(e) { super(), this.uri = e, this.id = "root", this.parent = void 0, this._groups = new Map, this.children = new Map, this.id = "root", this.parent = void 0 } static create(e, t) { let i = this._keys.for(e, !0), n = p._requests.get(i); if (!n) { let t = new o.A; n = { promiseCnt: 0, source: t, promise: p._create(e, t.token), model: void 0 }, p._requests.set(i, n); const r = Date.now(); n.promise.then((() => { this._requestDurations.update(e, Date.now() - r) })) } return n.model ? Promise.resolve(n.model) : (n.promiseCnt += 1, t.onCancellationRequested( (() => { 0 == --n.promiseCnt && (n.source.cancel(), p._requests.delete(i)) })), new Promise(((e, t) => { n.promise.then((t => { n.model = t, e(t) }), (e => { p._requests.delete(i), t(e) })) }))) } static _create(e, t) { const i = new o.A(t), s = new p(e.uri), a = l.vJ.ordered(e), d = a.map(((t, n) => { var o; let a = h.findId(`provider_${n}`, s), l = new g(a, s, null !== (o = t.displayName) && void 0 !== o ? o : "Unknown Outline Provider", n); return Promise.resolve(t.provideDocumentSymbols(e, i.token)).then( (e => { for (const t of e || []) p._makeOutlineElement(t, l); return l }), (e => ((0, r.Cp)(e), l))).then((e => { h.empty(e) ? e.remove() : s._groups.set(a, e) })) })), c = l.vJ.onDidChange((() => { const t = l.vJ.ordered(e); (0, n.fS)(t, a) || i.cancel() })); return Promise.all(d).then((() => i.token.isCancellationRequested && ! t.isCancellationRequested ? p._create(e, t) : s._compact())).finally( (() => { c.dispose() })) } static _makeOutlineElement(e, t) { let i = h.findId(e, t), n = new u(i, t, e); if (e.children) for (const t of e.children) p._makeOutlineElement(t, n); t.children.set(n.id, n) } _compact() { let e = 0; for (const [t, i] of this._groups) 0 === i.children.size ? this._groups .delete(t) : e += 1; if (1 !== e) this.children = this._groups; else { let e = d.$.first(this._groups.values()); for (let [, t] of e.children) t.parent = this, this.children.set(t.id, t) } return this } getTopLevelSymbols() { const e = []; for (const t of this.children.values()) t instanceof u ? e.push(t.symbol) : e.push(...d.$.map(t.children.values(), (e => e.symbol))); return e.sort(((e, t) => a.e.compareRangesUsingStarts(e.range, t.range))) } asListOfDocumentSymbols() { const e = this.getTopLevelSymbols(), t = []; return p._flattenDocumentSymbols(t, e, ""), t.sort(((e, t) => a.e.compareRangesUsingStarts( e.range, t.range))) } static _flattenDocumentSymbols(e, t, i) { for (const n of t) e.push({ kind: n.kind, tags: n.tags, name: n.name, detail: n.detail, containerName: n.containerName || i, range: n.range, selectionRange: n.selectionRange, children: void 0 }), n.children && p._flattenDocumentSymbols(e, n.children, n.name) } } p._requestDurations = new c.Y(l.vJ, 350), p._requests = new s.z6(9, .75), p._keys = new class { constructor() { this._counter = 1, this._data = new WeakMap } for (e, t) { return `${e.id}/${t?e.getVersionId():""}/${this._hash(l.vJ.all(e))}` } _hash(e) { let t = ""; for (const i of e) { let e = this._data.get(i); void 0 === e && (e = this._counter++, this._data.set(i, e)), t += e } return t } } }, 255: (e, t, i) => { "use strict"; i.r(t), i.d(t, { CommonFindController: () => Bt, FindController: () => Wt, MatchFindAction: () => Ht, NextMatchFindAction: () => Ut, NextSelectionMatchFindAction: () => $t, PreviousMatchFindAction: () => jt, PreviousSelectionMatchFindAction: () => qt, SelectionMatchFindAction: () => Kt, StartFindAction: () => zt, StartFindReplaceAction: () => Zt, StartFindWithSelectionAction: () => Vt, getSelectionSearchString: () => Ft }); var n = i(3580), o = i(5393), r = i(5976), s = i(7295), a = i(6830), l = i(9102), d = i(1329), c = i(187), h = i(4314), u = i(3860), g = i(7277), p = i(4973), m = i(6281), f = i(3910), _ = i(7781); class b { constructor(e) { this._editor = e, this._decorations = [], this._overviewRulerApproximateDecorations = [], this._findScopeDecorationIds = [], this._rangeHighlightDecorationId = null, this._highlightedDecorationId = null, this._startPosition = this._editor.getPosition() } dispose() { this._editor.deltaDecorations(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 e = this._findScopeDecorationIds.map((e => this._editor.getModel() .getDecorationRange(e))).filter((e => !!e)); if (e.length) return e } return null } getStartPosition() { return this._startPosition } setStartPosition(e) { this._startPosition = e, this.setCurrentFindMatch(null) } _getDecorationIndex(e) { const t = this._decorations.indexOf(e); return t >= 0 ? t + 1 : 1 } getCurrentMatchesPosition(e) { let t = this._editor.getModel().getDecorationsInRange(e); for (const e of t) { const t = e.options; if (t === b._FIND_MATCH_DECORATION || t === b._CURRENT_FIND_MATCH_DECORATION) return this._getDecorationIndex(e.id) } return 0 } setCurrentFindMatch(e) { let t = null, i = 0; if (e) for (let n = 0, o = this._decorations.length; n < o; n++) { let o = this._editor.getModel().getDecorationRange(this._decorations[ n]); if (e.equalsRange(o)) { t = this._decorations[n], i = n + 1; break } } return null === this._highlightedDecorationId && null === t || this._editor .changeDecorations((e => { if (null !== this._highlightedDecorationId && (e.changeDecorationOptions( this._highlightedDecorationId, b._FIND_MATCH_DECORATION), this._highlightedDecorationId = null), null !== t && (this._highlightedDecorationId = t, e.changeDecorationOptions( this._highlightedDecorationId, b._CURRENT_FIND_MATCH_DECORATION )), null !== this._rangeHighlightDecorationId && (e.removeDecoration( this._rangeHighlightDecorationId), this._rangeHighlightDecorationId = null), null !== t) { let i = this._editor.getModel().getDecorationRange(t); if (i.startLineNumber !== i.endLineNumber && 1 === i.endColumn) { let e = i.endLineNumber - 1, t = this._editor.getModel().getLineMaxColumn(e); i = new h.e(i.startLineNumber, i.startColumn, e, t) } this._rangeHighlightDecorationId = e.addDecoration(i, b._RANGE_HIGHLIGHT_DECORATION) } })), i } set(e, t) { this._editor.changeDecorations((i => { let n = b._FIND_MATCH_DECORATION, o = []; if (e.length > 1e3) { n = b._FIND_MATCH_NO_OVERVIEW_DECORATION; const t = this._editor.getModel().getLineCount(), i = this._editor.getLayoutInfo().height / t, r = Math.max(2, Math.ceil(3 / i)); let s = e[0].range.startLineNumber, a = e[0].range.endLineNumber; for (let t = 1, i = e.length; t < i; t++) { const i = e[t].range; a + r >= i.startLineNumber ? i.endLineNumber > a && (a = i.endLineNumber) : (o.push({ range: new h.e(s, 1, a, 1), options: b._FIND_MATCH_ONLY_OVERVIEW_DECORATION }), s = i.startLineNumber, a = i.endLineNumber) } o.push({ range: new h.e(s, 1, a, 1), options: b._FIND_MATCH_ONLY_OVERVIEW_DECORATION }) } let r = new Array(e.length); for (let t = 0, i = e.length; t < i; t++) r[t] = { range: e[t].range, options: n }; this._decorations = i.deltaDecorations(this._decorations, r), this ._overviewRulerApproximateDecorations = i.deltaDecorations(this._overviewRulerApproximateDecorations, o), this._rangeHighlightDecorationId && (i.removeDecoration(this ._rangeHighlightDecorationId), this._rangeHighlightDecorationId = null), this._findScopeDecorationIds.length && (this._findScopeDecorationIds .forEach((e => i.removeDecoration(e))), this._findScopeDecorationIds = [] ), (null == t ? void 0 : t.length) && (this._findScopeDecorationIds = t.map((e => i.addDecoration(e, b._FIND_SCOPE_DECORATION)))) })) } matchBeforePosition(e) { if (0 === this._decorations.length) return null; for (let t = this._decorations.length - 1; t >= 0; t--) { let i = this._decorations[t], n = this._editor.getModel().getDecorationRange(i); if (n && !(n.endLineNumber > e.lineNumber)) { if (n.endLineNumber < e.lineNumber) return n; if (!(n.endColumn > e.column)) return n } } return this._editor.getModel().getDecorationRange(this._decorations[ this._decorations.length - 1]) } matchAfterPosition(e) { if (0 === this._decorations.length) return null; for (let t = 0, i = this._decorations.length; t < i; t++) { let i = this._decorations[t], n = this._editor.getModel().getDecorationRange(i); if (n && !(n.startLineNumber < e.lineNumber)) { if (n.startLineNumber > e.lineNumber) return n; if (!(n.startColumn < e.column)) return n } } return this._editor.getModel().getDecorationRange(this._decorations[0]) } _allDecorations() { let e = []; return e = e.concat(this._decorations), e = e.concat(this._overviewRulerApproximateDecorations), this._findScopeDecorationIds.length && e.push(...this._findScopeDecorationIds), this._rangeHighlightDecorationId && e.push(this._rangeHighlightDecorationId), e } } b._CURRENT_FIND_MATCH_DECORATION = m.qx.register({ description: "current-find-match", stickiness: 1, zIndex: 13, className: "currentFindMatch", showIfCollapsed: !0, overviewRuler: { color: (0, _.EN)(f.Fm), position: p.sh.Center }, minimap: { color: (0, _.EN)(f.KT), position: p.F5.Inline } }), b._FIND_MATCH_DECORATION = m.qx.register({ description: "find-match", stickiness: 1, className: "findMatch", showIfCollapsed: !0, overviewRuler: { color: (0, _.EN)(f.Fm), position: p.sh.Center }, minimap: { color: (0, _.EN)(f.KT), position: p.F5.Inline } }), b._FIND_MATCH_NO_OVERVIEW_DECORATION = m.qx.register({ description: "find-match-no-overview", stickiness: 1, className: "findMatch", showIfCollapsed: !0 }), b._FIND_MATCH_ONLY_OVERVIEW_DECORATION = m.qx.register({ description: "find-match-only-overview", stickiness: 1, overviewRuler: { color: (0, _.EN)(f.Fm), position: p.sh.Center } }), b._RANGE_HIGHLIGHT_DECORATION = m.qx.register({ description: "find-range-highlight", stickiness: 1, className: "rangeHighlight", isWholeLine: !0 }), b._FIND_SCOPE_DECORATION = m.qx.register({ description: "find-scope", className: "findScope", isWholeLine: !0 }); class v { constructor(e, t, i) { this._editorSelection = e, this._ranges = t, this._replaceStrings = i, this._trackedEditorSelectionId = null } getEditOperations(e, t) { if (this._ranges.length > 0) { let e = []; for (let t = 0; t < this._ranges.length; t++) e.push({ range: this._ranges[t], text: this._replaceStrings[t] }); e.sort(((e, t) => h.e.compareRangesUsingStarts(e.range, t.range))); let i = [], n = e[0]; for (let t = 1; t < e.length; t++) n.range.endLineNumber === e[t].range .startLineNumber && n.range.endColumn === e[t].range.startColumn ? ( n.range = n.range.plusRange(e[t].range), n.text = n.text + e[t].text ) : (i.push(n), n = e[t]); i.push(n); for (const e of i) t.addEditOperation(e.range, e.text) } this._trackedEditorSelectionId = t.trackSelection(this._editorSelection) } computeCursorState(e, t) { return t.getTrackedSelection(this._trackedEditorSelectionId) } } function w(e, t) { if (e && "" !== e[0]) { const i = C(e, t, "-"), n = C(e, t, "_"); return i && !n ? y(e, t, "-") : !i && n ? y(e, t, "_") : e[0].toUpperCase() === e[0] ? t.toUpperCase() : e[0].toLowerCase() === e[0] ? t.toLowerCase() : s.Kw(e[0][0]) && t.length > 0 ? t[0].toUpperCase() + t.substr(1) : e[0] [0].toUpperCase() !== e[0][0] && t.length > 0 ? t[0].toLowerCase() + t .substr(1) : t } return t } function C(e, t, i) { return -1 !== e[0].indexOf(i) && -1 !== t.indexOf(i) && e[0].split(i).length === t.split(i).length } function y(e, t, i) { const n = t.split(i), o = e[0].split(i); let r = ""; return n.forEach(((e, t) => { r += w([o[t]], e) + i })), r.slice(0, -1) } class S { constructor(e) { this.staticValue = e, this.kind = 0 } } class x { constructor(e) { this.pieces = e, this.kind = 1 } } class k { constructor(e) { e && 0 !== e.length ? 1 === e.length && null !== e[0].staticValue ? this._state = new S(e[0].staticValue) : this._state = new x(e) : this ._state = new S("") } static fromStaticValue(e) { return new k([L.staticValue(e)]) } get hasReplacementPatterns() { return 1 === this._state.kind } buildReplaceString(e, t) { if (0 === this._state.kind) return t ? w(e, this._state.staticValue) : this._state.staticValue; let i = ""; for (let t = 0, n = this._state.pieces.length; t < n; t++) { let n = this._state.pieces[t]; if (null !== n.staticValue) { i += n.staticValue; continue } let o = k._substitute(n.matchIndex, e); if (null !== n.caseOps && n.caseOps.length > 0) { let e = [], t = n.caseOps.length, i = 0; for (let r = 0, s = o.length; r < s; r++) { if (i >= t) { e.push(o.slice(r)); break } switch (n.caseOps[i]) { case "U": e.push(o[r].toUpperCase()); break; case "u": e.push(o[r].toUpperCase()), i++; break; case "L": e.push(o[r].toLowerCase()); break; case "l": e.push(o[r].toLowerCase()), i++; break; default: e.push(o[r]) } } o = e.join("") } i += o } return i } static _substitute(e, t) { if (null === t) return ""; if (0 === e) return t[0]; let i = ""; for (; e > 0;) { if (e < t.length) return (t[e] || "") + i; i = String(e % 10) + i, e = Math.floor(e / 10) } return "$" + i } } class L { constructor(e, t, i) { this.staticValue = e, this.matchIndex = t, i && 0 !== i.length ? this.caseOps = i.slice(0) : this.caseOps = null } static staticValue(e) { return new L(e, -1, null) } static caseOps(e, t) { return new L(null, e, t) } } class N { constructor(e) { this._source = e, this._lastCharIndex = 0, this._result = [], this._resultLen = 0, this._currentStaticPiece = "" } emitUnchanged(e) { this._emitStatic(this._source.substring(this._lastCharIndex, e)), this ._lastCharIndex = e } emitStatic(e, t) { this._emitStatic(e), this._lastCharIndex = t } _emitStatic(e) { 0 !== e.length && (this._currentStaticPiece += e) } emitMatchIndex(e, t, i) { 0 !== this._currentStaticPiece.length && (this._result[this._resultLen++] = L.staticValue(this._currentStaticPiece), this._currentStaticPiece = ""), this._result[this._resultLen++] = L.caseOps(e, i), this._lastCharIndex = t } finalize() { return this.emitUnchanged(this._source.length), 0 !== this._currentStaticPiece .length && (this._result[this._resultLen++] = L.staticValue(this._currentStaticPiece), this._currentStaticPiece = ""), new k(this._result) } } var D = i(8819), E = i(9488); const I = new D.uy("findWidgetVisible", !1), T = new D.uy("findInputFocussed", !1), M = new D.uy("replaceInputFocussed", !1), A = { primary: 545, mac: { primary: 2593 } }, R = { primary: 565, mac: { primary: 2613 } }, O = { primary: 560, mac: { primary: 2608 } }, P = { primary: 554, mac: { primary: 2602 } }, F = { primary: 558, mac: { primary: 2606 } }, B = "editor.action.nextMatchFindAction", W = "editor.action.previousMatchFindAction", z = "closeFindWidget", V = "toggleFindCaseSensitive", H = "toggleFindWholeWord", U = "toggleFindRegex", j = "toggleFindInSelection", K = "togglePreserveCase", $ = "editor.action.replaceOne", q = "editor.action.replaceAll", Z = 19999; class G { constructor(e, t) { this._toDispose = new r.SL, this._editor = e, this._state = t, this._isDisposed = ! 1, this._startSearchingTimer = new o._F, this._decorations = new b(e), this._toDispose.add(this._decorations), this._updateDecorationsScheduler = new o.pY((() => this.research(!1)), 100), this._toDispose.add(this._updateDecorationsScheduler), this._toDispose.add(this._editor.onDidChangeCursorPosition((e => { 3 !== e.reason && 5 !== e.reason && 6 !== e.reason || this._decorations .setStartPosition(this._editor.getPosition()) }))), this._ignoreModelContentChanged = !1, this._toDispose.add(this._editor .onDidChangeModelContent((e => { this._ignoreModelContentChanged || (e.isFlush && this._decorations .reset(), this._decorations.setStartPosition(this._editor.getPosition()), this._updateDecorationsScheduler.schedule()) }))), this._toDispose.add(this._state.onFindReplaceStateChange((e => this._onStateChanged(e)))), this.research(!1, this._state.searchScope) } dispose() { this._isDisposed = !0, (0, r.B9)(this._startSearchingTimer), this._toDispose .dispose() } _onStateChanged(e) { !this._isDisposed && this._editor.hasModel() && (e.searchString || e.isReplaceRevealed || e.isRegex || e.wholeWord || e.matchCase || e.searchScope) && (this._editor .getModel().isTooLargeForSyncing() ? (this._startSearchingTimer.cancel(), this._startSearchingTimer.setIfNotSet((() => { e.searchScope ? this.research(e.moveCursor, this._state.searchScope) : this.research(e.moveCursor) }), 240)) : e.searchScope ? this.research(e.moveCursor, this._state .searchScope) : this.research(e.moveCursor)) } static _getSearchRange(e, t) { return t || e.getFullModelRange() } research(e, t) { let i = null; void 0 !== t ? null !== t && (i = Array.isArray(t) ? t : [t]) : i = this._decorations.getFindScopes(), null !== i && (i = i.map((e => { if (e.startLineNumber !== e.endLineNumber) { let t = e.endLineNumber; return 1 === e.endColumn && (t -= 1), new h.e(e.startLineNumber, 1, t, this._editor.getModel().getLineMaxColumn(t)) } return e }))); let n = this._findMatches(i, !1, Z); this._decorations.set(n, i); const o = this._editor.getSelection(); let r = this._decorations.getCurrentMatchesPosition(o); if (0 === r && n.length > 0) { const e = (0, E.lG)(n.map((e => e.range)), (e => h.e.compareRangesUsingStarts( e, o) >= 0)); r = e > 0 ? e - 1 + 1 : r } this._state.changeMatchInfo(r, this._decorations.getCount(), void 0), e && this._editor.getOption(34).cursorMoveOnType && this._moveToNextMatch( this._decorations.getStartPosition()) } _hasMatches() { return this._state.matchesCount > 0 } _cannotFind() { if (!this._hasMatches()) { let e = this._decorations.getFindScope(); return e && this._editor.revealRangeInCenterIfOutsideViewport(e, 0), ! 0 } return !1 } _setCurrentFindMatch(e) { let t = this._decorations.setCurrentFindMatch(e); this._state.changeMatchInfo(t, this._decorations.getCount(), e), this._editor .setSelection(e), this._editor.revealRangeInCenterIfOutsideViewport(e, 0) } _prevSearchPosition(e) { let t = this._state.isRegex && (this._state.searchString.indexOf("^") >= 0 || this._state.searchString.indexOf("$") >= 0), { lineNumber: i, column: n } = e, o = this._editor.getModel(); return t || 1 === n ? (1 === i ? i = o.getLineCount() : i--, n = o.getLineMaxColumn( i)) : n--, new c.L(i, n) } _moveToPrevMatch(e, t = !1) { if (!this._state.canNavigateBack()) { const t = this._decorations.matchAfterPosition(e); return void(t && this._setCurrentFindMatch(t)) } if (this._decorations.getCount() < Z) { let t = this._decorations.matchBeforePosition(e); return t && t.isEmpty() && t.getStartPosition().equals(e) && (e = this._prevSearchPosition(e), t = this._decorations.matchBeforePosition( e)), void(t && this._setCurrentFindMatch(t)) } if (this._cannotFind()) return; let i = this._decorations.getFindScope(), n = G._getSearchRange(this._editor.getModel(), i); n.getEndPosition().isBefore(e) && (e = n.getEndPosition()), e.isBefore( n.getStartPosition()) && (e = n.getEndPosition()); let { lineNumber: o, column: r } = e, s = this._editor.getModel(), a = new c.L(o, r), l = s.findPreviousMatch( this._state.searchString, a, this._state.isRegex, this._state.matchCase, this._state.wholeWord ? this._editor.getOption(116) : null, !1); return l && l.range.isEmpty() && l.range.getStartPosition().equals(a) && (a = this._prevSearchPosition(a), l = s.findPreviousMatch(this._state .searchString, a, this._state.isRegex, this._state.matchCase, this._state .wholeWord ? this._editor.getOption(116) : null, !1)), l ? t || n.containsRange( l.range) ? void this._setCurrentFindMatch(l.range) : this._moveToPrevMatch( l.range.getStartPosition(), !0) : void 0 } moveToPrevMatch() { this._moveToPrevMatch(this._editor.getSelection().getStartPosition()) } _nextSearchPosition(e) { let t = this._state.isRegex && (this._state.searchString.indexOf("^") >= 0 || this._state.searchString.indexOf("$") >= 0), { lineNumber: i, column: n } = e, o = this._editor.getModel(); return t || n === o.getLineMaxColumn(i) ? (i === o.getLineCount() ? i = 1 : i++, n = 1) : n++, new c.L(i, n) } _moveToNextMatch(e) { if (!this._state.canNavigateForward()) { const t = this._decorations.matchBeforePosition(e); return void(t && this._setCurrentFindMatch(t)) } if (this._decorations.getCount() < Z) { let t = this._decorations.matchAfterPosition(e); return t && t.isEmpty() && t.getStartPosition().equals(e) && (e = this._nextSearchPosition(e), t = this._decorations.matchAfterPosition( e)), void(t && this._setCurrentFindMatch(t)) } let t = this._getNextMatch(e, !1, !0); t && this._setCurrentFindMatch(t.range) } _getNextMatch(e, t, i, n = !1) { if (this._cannotFind()) return null; let o = this._decorations.getFindScope(), r = G._getSearchRange(this._editor.getModel(), o); r.getEndPosition().isBefore(e) && (e = r.getStartPosition()), e.isBefore( r.getStartPosition()) && (e = r.getStartPosition()); let { lineNumber: s, column: a } = e, l = this._editor.getModel(), d = new c.L(s, a), h = l.findNextMatch( this._state.searchString, d, this._state.isRegex, this._state.matchCase, this._state.wholeWord ? this._editor.getOption(116) : null, t); return i && h && h.range.isEmpty() && h.range.getStartPosition().equals( d) && (d = this._nextSearchPosition(d), h = l.findNextMatch(this._state .searchString, d, this._state.isRegex, this._state.matchCase, this._state .wholeWord ? this._editor.getOption(116) : null, t)), h ? n || r.containsRange( h.range) ? h : this._getNextMatch(h.range.getEndPosition(), t, i, !0) : null } moveToNextMatch() { this._moveToNextMatch(this._editor.getSelection().getEndPosition()) } _getReplacePattern() { return this._state.isRegex ? function(e) { if (!e || 0 === e.length) return new k(null); let t = [], i = new N(e); for (let n = 0, o = e.length; n < o; n++) { let r = e.charCodeAt(n); if (92 !== r) { if (36 === r) { if (n++, n >= o) break; let r = e.charCodeAt(n); if (36 === r) { i.emitUnchanged(n - 1), i.emitStatic("$", n + 1); continue } if (48 === r || 38 === r) { i.emitUnchanged(n - 1), i.emitMatchIndex(0, n + 1, t), t.length = 0; continue } if (49 <= r && r <= 57) { let s = r - 48; if (n + 1 < o) { let o = e.charCodeAt(n + 1); if (48 <= o && o <= 57) { n++, s = 10 * s + (o - 48), i.emitUnchanged(n - 2), i.emitMatchIndex( s, n + 1, t), t.length = 0; continue } } i.emitUnchanged(n - 1), i.emitMatchIndex(s, n + 1, t), t.length = 0; continue } } } else { if (n++, n >= o) break; let r = e.charCodeAt(n); switch (r) { case 92: i.emitUnchanged(n - 1), i.emitStatic("\\", n + 1); break; case 110: i.emitUnchanged(n - 1), i.emitStatic("\n", n + 1); break; case 116: i.emitUnchanged(n - 1), i.emitStatic("\t", n + 1); break; case 117: case 85: case 108: case 76: i.emitUnchanged(n - 1), i.emitStatic("", n + 1), t.push(String.fromCharCode( r)) } } } return i.finalize() }(this._state.replaceString) : k.fromStaticValue(this._state.replaceString) } replace() { if (!this._hasMatches()) return; let e = this._getReplacePattern(), t = this._editor.getSelection(), i = this._getNextMatch(t.getStartPosition(), !0, !1); if (i) if (t.equalsRange(i.range)) { let n = e.buildReplaceString(i.matches, this._state.preserveCase), o = new d.T4(t, n); this._executeEditorCommand("replace", o), this._decorations.setStartPosition( new c.L(t.startLineNumber, t.startColumn + n.length)), this.research(! 0) } else this._decorations.setStartPosition(this._editor.getPosition()), this._setCurrentFindMatch(i.range) } _findMatches(e, t, i) { const n = (e || [null]).map((e => G._getSearchRange(this._editor.getModel(), e))); return this._editor.getModel().findMatches(this._state.searchString, n, this._state.isRegex, this._state.matchCase, this._state.wholeWord ? this._editor.getOption(116) : null, t, i) } replaceAll() { if (!this._hasMatches()) return; const e = this._decorations.getFindScopes(); null === e && this._state.matchesCount >= Z ? this._largeReplaceAll() : this._regularReplaceAll(e), this.research(!1) } _largeReplaceAll() { const e = new g.bc(this._state.searchString, this._state.isRegex, this ._state.matchCase, this._state.wholeWord ? this._editor.getOption( 116) : null).parseSearchRequest(); if (!e) return; let t = e.regex; if (!t.multiline) { let e = "mu"; t.ignoreCase && (e += "i"), t.global && (e += "g"), t = new RegExp(t.source, e) } const i = this._editor.getModel(), n = i.getValue(1), o = i.getFullModelRange(), r = this._getReplacePattern(); let s; const a = this._state.preserveCase; s = r.hasReplacementPatterns || a ? n.replace(t, (function() { return r.buildReplaceString(arguments, a) })) : n.replace(t, r.buildReplaceString(null, a)); let l = new d.hP(o, s, this._editor.getSelection()); this._executeEditorCommand("replaceAll", l) } _regularReplaceAll(e) { const t = this._getReplacePattern(); let i = this._findMatches(e, t.hasReplacementPatterns || this._state.preserveCase, 1073741824), n = []; for (let e = 0, o = i.length; e < o; e++) n[e] = t.buildReplaceString( i[e].matches, this._state.preserveCase); let o = new v(this._editor.getSelection(), i.map((e => e.range)), n); this._executeEditorCommand("replaceAll", o) } selectAllMatches() { if (!this._hasMatches()) return; let e = this._decorations.getFindScopes(), t = this._findMatches(e, !1, 1073741824).map((e => new u.Y(e.range.startLineNumber, e.range.startColumn, e.range.endLineNumber, e.range.endColumn))), i = this._editor.getSelection(); for (let e = 0, n = t.length; e < n; e++) if (t[e].equalsRange(i)) { t = [i].concat(t.slice(0, e)).concat(t.slice(e + 1)); break } this._editor.setSelections(t) } _executeEditorCommand(e, t) { try { this._ignoreModelContentChanged = !0, this._editor.pushUndoStop(), this._editor.executeCommand(e, t), this._editor.pushUndoStop() } finally { this._ignoreModelContentChanged = !1 } } } var Y = i(5321), Q = i(3794), X = i(3046), J = i(1264), ee = i(4669), te = i(3379), ie = i.n(te), ne = i(7795), oe = i.n(ne), re = i(569), se = i.n(re), ae = i(3565), le = i.n(ae), de = i(9216), ce = i.n(de), he = i(4589), ue = i.n(he), ge = i(4664), pe = {}; pe.styleTagTransform = ue(), pe.setAttributes = le(), pe.insert = se().bind( null, "head"), pe.domAPI = oe(), pe.insertStyleElement = ce(), ie()(ge.Z, pe), ge.Z && ge.Z.locals && ge.Z.locals; const me = { inputActiveOptionBorder: J.Il.fromHex("#007ACC00"), inputActiveOptionForeground: J.Il.fromHex("#FFFFFF"), inputActiveOptionBackground: J.Il.fromHex("#0E639C50") }; class fe extends Q.$ { constructor(e) { super(), this._onChange = this._register(new ee.Q5), this.onChange = this._onChange.event, this._onKeyDown = this._register(new ee.Q5), this.onKeyDown = this._onKeyDown.event, this._opts = Object.assign( Object.assign({}, me), e), this._checked = this._opts.isChecked; const t = ["monaco-custom-checkbox"]; this._opts.icon && t.push(...X.dT.asClassNameArray(this._opts.icon)), this._opts.actionClassName && t.push(...this._opts.actionClassName.split( " ")), this._checked && t.push("checked"), this.domNode = document.createElement( "div"), this.domNode.title = this._opts.title, this.domNode.classList .add(...t), 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, (e => { this.checked = !this._checked, this._onChange.fire(!1), e.preventDefault() })), this.ignoreGesture(this.domNode), this.onkeydown(this.domNode, ( e => { if (10 === e.keyCode || 3 === e.keyCode) return this.checked = ! this._checked, this._onChange.fire(!0), void e.preventDefault(); this._onKeyDown.fire(e) })) } get enabled() { return "true" !== this.domNode.getAttribute("aria-disabled") } focus() { this.domNode.focus() } get checked() { return this._checked } set checked(e) { this._checked = e, this.domNode.setAttribute("aria-checked", String( this._checked)), this.domNode.classList.toggle("checked", this._checked), this.applyStyles() } width() { return 22 } style(e) { e.inputActiveOptionBorder && (this._opts.inputActiveOptionBorder = e.inputActiveOptionBorder), e.inputActiveOptionForeground && (this._opts.inputActiveOptionForeground = e.inputActiveOptionForeground), e.inputActiveOptionBackground && ( this._opts.inputActiveOptionBackground = e.inputActiveOptionBackground ), this.applyStyles() } applyStyles() { this.domNode && (this.domNode.style.borderColor = this._checked && this._opts.inputActiveOptionBorder ? this._opts.inputActiveOptionBorder .toString() : "transparent", this.domNode.style.color = this._checked && this._opts.inputActiveOptionForeground ? this._opts.inputActiveOptionForeground .toString() : "inherit", this.domNode.style.backgroundColor = this._checked && this._opts.inputActiveOptionBackground ? this._opts.inputActiveOptionBackground .toString() : "transparent") } enable() { this.domNode.setAttribute("aria-disabled", String(!1)) } disable() { this.domNode.setAttribute("aria-disabled", String(!0)) } } const _e = n.N("caseDescription", "Match Case"), be = n.N("wordsDescription", "Match Whole Word"), ve = n.N("regexDescription", "Use Regular Expression"); class we extends fe { constructor(e) { super({ icon: X.lA.caseSensitive, title: _e + e.appendTitle, isChecked: e.isChecked, inputActiveOptionBorder: e.inputActiveOptionBorder, inputActiveOptionForeground: e.inputActiveOptionForeground, inputActiveOptionBackground: e.inputActiveOptionBackground }) } } class Ce extends fe { constructor(e) { super({ icon: X.lA.wholeWord, title: be + e.appendTitle, isChecked: e.isChecked, inputActiveOptionBorder: e.inputActiveOptionBorder, inputActiveOptionForeground: e.inputActiveOptionForeground, inputActiveOptionBackground: e.inputActiveOptionBackground }) } } class ye extends fe { constructor(e) { super({ icon: X.lA.regex, title: ve + e.appendTitle, isChecked: e.isChecked, inputActiveOptionBorder: e.inputActiveOptionBorder, inputActiveOptionForeground: e.inputActiveOptionForeground, inputActiveOptionBackground: e.inputActiveOptionBackground }) } } class Se extends Q.$ { constructor(e, t, i, n) { super(), this._hideSoon = this._register(new o.pY((() => this._hide()), 2e3)), this._isVisible = !1, this._editor = e, this._state = t, this._keybindingService = i, this._domNode = document.createElement( "div"), this._domNode.className = "findOptionsWidget", this._domNode .style.display = "none", this._domNode.style.top = "10px", this._domNode .setAttribute("role", "presentation"), this._domNode.setAttribute( "aria-hidden", "true"); const r = n.getColorTheme().getColor(f.PR), s = n.getColorTheme().getColor(f.Pv), a = n.getColorTheme().getColor(f.XE); this.caseSensitive = this._register(new we({ appendTitle: this._keybindingLabelFor(V), isChecked: this._state.matchCase, inputActiveOptionBorder: r, inputActiveOptionForeground: s, inputActiveOptionBackground: a })), this._domNode.appendChild(this.caseSensitive.domNode), this._register( this.caseSensitive.onChange((() => { this._state.change({ matchCase: this.caseSensitive.checked }, !1) }))), this.wholeWords = this._register(new Ce({ appendTitle: this._keybindingLabelFor(H), isChecked: this._state.wholeWord, inputActiveOptionBorder: r, inputActiveOptionForeground: s, inputActiveOptionBackground: a })), this._domNode.appendChild(this.wholeWords.domNode), this._register( this.wholeWords.onChange((() => { this._state.change({ wholeWord: this.wholeWords.checked }, !1) }))), this.regex = this._register(new ye({ appendTitle: this._keybindingLabelFor(U), isChecked: this._state.isRegex, inputActiveOptionBorder: r, inputActiveOptionForeground: s, inputActiveOptionBackground: a })), 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((e => { let t = !1; e.isRegex && (this.regex.checked = this._state.isRegex, t = !0), e.wholeWord && (this.wholeWords.checked = this._state.wholeWord, t = !0), e.matchCase && (this.caseSensitive.checked = this._state .matchCase, t = !0), !this._state.isRevealed && t && this._revealTemporarily() }))), this._register(Y.j_(this._domNode, (e => this._onMouseOut()))), this._register(Y.nm(this._domNode, "mouseover", (e => this._onMouseOver()))), this._applyTheme(n.getColorTheme()), this._register(n.onDidColorThemeChange( this._applyTheme.bind(this))) } _keybindingLabelFor(e) { let t = this._keybindingService.lookupKeybinding(e); return t ? ` (${t.getLabel()})` : "" } dispose() { this._editor.removeOverlayWidget(this), super.dispose() } getId() { return Se.ID } getDomNode() { return this._domNode } getPosition() { return { preference: 0 } } highlightFindOptions() { this._revealTemporarily() } _revealTemporarily() { this._show(), this._hideSoon.schedule() } _onMouseOut() { 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") } _applyTheme(e) { let t = { inputActiveOptionBorder: e.getColor(f.PR), inputActiveOptionForeground: e.getColor(f.Pv), inputActiveOptionBackground: e.getColor(f.XE) }; this.caseSensitive.style(t), this.wholeWords.style(t), this.regex.style( t) } } function xe(e, t) { return 1 === e || 2 !== e && t } Se.ID = "editor.contrib.findOptionsWidget", (0, _.Ic)(((e, t) => { const i = e.getColor(f.D0); i && t.addRule( `.monaco-editor .findOptionsWidget { background-color: ${i}; }`); const n = e.getColor(f.Hf); n && t.addRule(`.monaco-editor .findOptionsWidget { color: ${n}; }`); const o = e.getColor(f.rh); o && t.addRule( `.monaco-editor .findOptionsWidget { box-shadow: 0 0 8px 2px ${o}; }` ); const r = e.getColor(f.lR); r && t.addRule( `.monaco-editor .findOptionsWidget { border: 2px solid ${r}; }`) })); class ke extends r.JT { constructor() { super(), this._onFindReplaceStateChange = this._register(new ee.Q5), 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 } get searchString() { return this._searchString } get replaceString() { return this._replaceString } get isRevealed() { return this._isRevealed } get isReplaceRevealed() { return this._isReplaceRevealed } get isRegex() { return xe(this._isRegexOverride, this._isRegex) } get wholeWord() { return xe(this._wholeWordOverride, this._wholeWord) } get matchCase() { return xe(this._matchCaseOverride, this._matchCase) } get preserveCase() { return xe(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 } changeMatchInfo(e, t, i) { let n = { 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 }, o = !1; 0 === t && (e = 0), e > t && (e = t), this._matchesPosition !== e && (this._matchesPosition = e, n.matchesPosition = !0, o = !0), this._matchesCount !== t && (this._matchesCount = t, n.matchesCount = !0, o = !0), void 0 !== i && (h.e.equalsRange(this._currentMatch, i) || (this._currentMatch = i, n.currentMatch = !0, o = !0)), o && this._onFindReplaceStateChange .fire(n) } change(e, t, i = !0) { var n; let o = { moveCursor: t, updateHistory: i, 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 }, r = !1; const s = this.isRegex, a = this.wholeWord, l = this.matchCase, d = this.preserveCase; void 0 !== e.searchString && this._searchString !== e.searchString && (this._searchString = e.searchString, o.searchString = !0, r = !0), void 0 !== e.replaceString && this._replaceString !== e.replaceString && (this._replaceString = e.replaceString, o.replaceString = !0, r = !0), void 0 !== e.isRevealed && this._isRevealed !== e.isRevealed && ( this._isRevealed = e.isRevealed, o.isRevealed = !0, r = !0), void 0 !== e.isReplaceRevealed && this._isReplaceRevealed !== e.isReplaceRevealed && (this._isReplaceRevealed = e.isReplaceRevealed, o.isReplaceRevealed = ! 0, r = !0), void 0 !== e.isRegex && (this._isRegex = e.isRegex), void 0 !== e.wholeWord && (this._wholeWord = e.wholeWord), void 0 !== e.matchCase && (this._matchCase = e.matchCase), void 0 !== e.preserveCase && (this._preserveCase = e.preserveCase), void 0 !== e.searchScope && ( (null === (n = e.searchScope) || void 0 === n ? void 0 : n.every((e => { var t; return null === (t = this._searchScope) || void 0 === t ? void 0 : t.some((t => !h.e.equalsRange(t, e))) }))) || (this._searchScope = e.searchScope, o.searchScope = !0, r = ! 0)), void 0 !== e.loop && this._loop !== e.loop && (this._loop = e .loop, o.loop = !0, r = !0), this._isRegexOverride = void 0 !== e.isRegexOverride ? e.isRegexOverride : 0, this._wholeWordOverride = void 0 !== e.wholeWordOverride ? e.wholeWordOverride : 0, this._matchCaseOverride = void 0 !== e.matchCaseOverride ? e.matchCaseOverride : 0, this._preserveCaseOverride = void 0 !== e.preserveCaseOverride ? e.preserveCaseOverride : 0, s !== this.isRegex && (r = !0, o.isRegex = ! 0), a !== this.wholeWord && (r = !0, o.wholeWord = !0), l !== this.matchCase && (r = !0, o.matchCase = !0), d !== this.preserveCase && (r = !0, o.preserveCase = ! 0), r && this._onFindReplaceStateChange.fire(o) } canNavigateBack() { return this.canNavigateInLoop() || 1 !== this.matchesPosition } canNavigateForward() { return this.canNavigateInLoop() || this.matchesPosition < this.matchesCount } canNavigateInLoop() { return this._loop || this.matchesCount >= Z } } var Le = i(5160), Ne = {}; Ne.styleTagTransform = ue(), Ne.setAttributes = le(), Ne.insert = se().bind( null, "head"), Ne.domAPI = oe(), Ne.insertStyleElement = ce(), ie()(Le.Z, Ne), Le.Z && Le.Z.locals && Le.Z.locals; var De = i(6346), Ee = i(3841), Ie = i(7301), Te = i(1432), Me = i(4299), Ae = i(6266), Re = {}; Re.styleTagTransform = ue(), Re.setAttributes = le(), Re.insert = se().bind( null, "head"), Re.domAPI = oe(), Re.insertStyleElement = ce(), ie()(Ae.Z, Re), Ae.Z && Ae.Z.locals && Ae.Z.locals; const Oe = n.N("defaultLabel", "input"); class Pe extends Q.$ { constructor(e, t, i, n) { super(), this._showOptionButtons = i, this.fixFocusOnOptionClickEnabled = ! 0, this.imeSessionInProgress = !1, this._onDidOptionChange = this._register( new ee.Q5), this.onDidOptionChange = this._onDidOptionChange.event, this._onKeyDown = this._register(new ee.Q5), this.onKeyDown = this._onKeyDown .event, this._onMouseDown = this._register(new ee.Q5), this.onMouseDown = this._onMouseDown.event, this._onInput = this._register(new ee.Q5), this._onKeyUp = this._register(new ee.Q5), this._onCaseSensitiveKeyDown = this._register(new ee.Q5), this.onCaseSensitiveKeyDown = this._onCaseSensitiveKeyDown .event, this._onRegexKeyDown = this._register(new ee.Q5), this.onRegexKeyDown = this._onRegexKeyDown.event, this._lastHighlightFindOptions = 0, this .contextViewProvider = t, this.placeholder = n.placeholder || "", this.validation = n.validation, this.label = n.label || Oe, this.inputActiveOptionBorder = n.inputActiveOptionBorder, this.inputActiveOptionForeground = n.inputActiveOptionForeground, this.inputActiveOptionBackground = n.inputActiveOptionBackground, this.inputBackground = n.inputBackground, this.inputForeground = n.inputForeground, this.inputBorder = n.inputBorder, this.inputValidationInfoBorder = n .inputValidationInfoBorder, this.inputValidationInfoBackground = n.inputValidationInfoBackground, this.inputValidationInfoForeground = n.inputValidationInfoForeground, this.inputValidationWarningBorder = n.inputValidationWarningBorder, this.inputValidationWarningBackground = n.inputValidationWarningBackground, this.inputValidationWarningForeground = n.inputValidationWarningForeground, this.inputValidationErrorBorder = n.inputValidationErrorBorder, this .inputValidationErrorBackground = n.inputValidationErrorBackground, this.inputValidationErrorForeground = n.inputValidationErrorForeground; const o = n.appendCaseSensitiveLabel || "", r = n.appendWholeWordsLabel || "", s = n.appendRegexLabel || "", a = n.history || [], l = !!n.flexibleHeight, d = !!n.flexibleWidth, c = n.flexibleMaxHeight; this.domNode = document.createElement("div"), this.domNode.classList.add( "monaco-findInput"), this.inputBox = this._register(new Me.p(this.domNode, this.contextViewProvider, { placeholder: this.placeholder || "", ariaLabel: this.label || "", validationOptions: { validation: this.validation }, inputBackground: this.inputBackground, inputForeground: this.inputForeground, inputBorder: this.inputBorder, inputValidationInfoBackground: this.inputValidationInfoBackground, inputValidationInfoForeground: this.inputValidationInfoForeground, inputValidationInfoBorder: this.inputValidationInfoBorder, inputValidationWarningBackground: this.inputValidationWarningBackground, inputValidationWarningForeground: this.inputValidationWarningForeground, inputValidationWarningBorder: this.inputValidationWarningBorder, inputValidationErrorBackground: this.inputValidationErrorBackground, inputValidationErrorForeground: this.inputValidationErrorForeground, inputValidationErrorBorder: this.inputValidationErrorBorder, history: a, flexibleHeight: l, flexibleWidth: d, flexibleMaxHeight: c })), this.regex = this._register(new ye({ appendTitle: s, isChecked: !1, inputActiveOptionBorder: this.inputActiveOptionBorder, inputActiveOptionForeground: this.inputActiveOptionForeground, inputActiveOptionBackground: this.inputActiveOptionBackground })), this._register(this.regex.onChange((e => { this._onDidOptionChange.fire(e), !e && this.fixFocusOnOptionClickEnabled && this.inputBox.focus(), this.validate() }))), this._register(this.regex.onKeyDown((e => { this._onRegexKeyDown.fire(e) }))), this.wholeWords = this._register(new Ce({ appendTitle: r, isChecked: !1, inputActiveOptionBorder: this.inputActiveOptionBorder, inputActiveOptionForeground: this.inputActiveOptionForeground, inputActiveOptionBackground: this.inputActiveOptionBackground })), this._register(this.wholeWords.onChange((e => { this._onDidOptionChange.fire(e), !e && this.fixFocusOnOptionClickEnabled && this.inputBox.focus(), this.validate() }))), this.caseSensitive = this._register(new we({ appendTitle: o, isChecked: !1, inputActiveOptionBorder: this.inputActiveOptionBorder, inputActiveOptionForeground: this.inputActiveOptionForeground, inputActiveOptionBackground: this.inputActiveOptionBackground })), this._register(this.caseSensitive.onChange((e => { this._onDidOptionChange.fire(e), !e && this.fixFocusOnOptionClickEnabled && this.inputBox.focus(), this.validate() }))), this._register(this.caseSensitive.onKeyDown((e => { this._onCaseSensitiveKeyDown.fire(e) }))), this._showOptionButtons && (this.inputBox.paddingRight = this.caseSensitive .width() + this.wholeWords.width() + this.regex.width()); let h = [this.caseSensitive.domNode, this.wholeWords.domNode, this.regex .domNode ]; this.onkeydown(this.domNode, (e => { if (e.equals(15) || e.equals(17) || e.equals(9)) { let t = h.indexOf(document.activeElement); if (t >= 0) { let i = -1; e.equals(17) ? i = (t + 1) % h.length : e.equals(15) && (i = 0 === t ? h.length - 1 : t - 1), e.equals(9) ? (h[t].blur(), this.inputBox .focus()) : i >= 0 && h[i].focus(), Y.zB.stop(e, !0) } } })); let u = document.createElement("div"); u.className = "controls", u.style.display = this._showOptionButtons ? "block" : "none", u.appendChild(this.caseSensitive.domNode), u.appendChild( this.wholeWords.domNode), u.appendChild(this.regex.domNode), this.domNode .appendChild(u), e && e.appendChild(this.domNode), this._register(Y.nm( this.inputBox.inputElement, "compositionstart", (e => { this.imeSessionInProgress = !0 }))), this._register(Y.nm(this.inputBox.inputElement, "compositionend", (e => { this.imeSessionInProgress = !1, this._onInput.fire() }))), this.onkeydown(this.inputBox.inputElement, (e => this._onKeyDown .fire(e))), this.onkeyup(this.inputBox.inputElement, (e => this._onKeyUp .fire(e))), this.oninput(this.inputBox.inputElement, (e => this._onInput .fire())), this.onmousedown(this.inputBox.inputElement, (e => this._onMouseDown .fire(e))) } enable() { this.domNode.classList.remove("disabled"), this.inputBox.enable(), this.regex.enable(), this.wholeWords.enable(), this.caseSensitive.enable() } disable() { this.domNode.classList.add("disabled"), this.inputBox.disable(), this .regex.disable(), this.wholeWords.disable(), this.caseSensitive.disable() } setFocusInputOnOptionClick(e) { this.fixFocusOnOptionClickEnabled = e } setEnabled(e) { e ? this.enable() : this.disable() } getValue() { return this.inputBox.value } setValue(e) { this.inputBox.value !== e && (this.inputBox.value = e) } style(e) { this.inputActiveOptionBorder = e.inputActiveOptionBorder, this.inputActiveOptionForeground = e.inputActiveOptionForeground, this.inputActiveOptionBackground = e.inputActiveOptionBackground, this.inputBackground = e.inputBackground, this.inputForeground = e.inputForeground, this.inputBorder = e.inputBorder, this.inputValidationInfoBackground = e.inputValidationInfoBackground, this.inputValidationInfoForeground = e.inputValidationInfoForeground, this.inputValidationInfoBorder = e.inputValidationInfoBorder, this.inputValidationWarningBackground = e.inputValidationWarningBackground, this.inputValidationWarningForeground = e.inputValidationWarningForeground, this.inputValidationWarningBorder = e.inputValidationWarningBorder, this.inputValidationErrorBackground = e.inputValidationErrorBackground, this.inputValidationErrorForeground = e.inputValidationErrorForeground, this.inputValidationErrorBorder = e.inputValidationErrorBorder, this .applyStyles() } applyStyles() { if (this.domNode) { const e = { inputActiveOptionBorder: this.inputActiveOptionBorder, inputActiveOptionForeground: this.inputActiveOptionForeground, inputActiveOptionBackground: this.inputActiveOptionBackground }; this.regex.style(e), this.wholeWords.style(e), this.caseSensitive.style( e); const t = { inputBackground: this.inputBackground, inputForeground: this.inputForeground, inputBorder: this.inputBorder, inputValidationInfoBackground: this.inputValidationInfoBackground, inputValidationInfoForeground: this.inputValidationInfoForeground, inputValidationInfoBorder: this.inputValidationInfoBorder, inputValidationWarningBackground: this.inputValidationWarningBackground, inputValidationWarningForeground: this.inputValidationWarningForeground, inputValidationWarningBorder: this.inputValidationWarningBorder, inputValidationErrorBackground: this.inputValidationErrorBackground, inputValidationErrorForeground: this.inputValidationErrorForeground, inputValidationErrorBorder: this.inputValidationErrorBorder }; this.inputBox.style(t) } } select() { this.inputBox.select() } focus() { this.inputBox.focus() } getCaseSensitive() { return this.caseSensitive.checked } setCaseSensitive(e) { this.caseSensitive.checked = e } getWholeWords() { return this.wholeWords.checked } setWholeWords(e) { this.wholeWords.checked = e } getRegex() { return this.regex.checked } setRegex(e) { this.regex.checked = e, 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() } clearMessage() { this.inputBox.hideMessage() } } const Fe = n.N("defaultLabel", "input"), Be = n.N("label.preserveCaseCheckbox", "Preserve Case"); class We extends fe { constructor(e) { super({ icon: X.lA.preserveCase, title: Be + e.appendTitle, isChecked: e.isChecked, inputActiveOptionBorder: e.inputActiveOptionBorder, inputActiveOptionForeground: e.inputActiveOptionForeground, inputActiveOptionBackground: e.inputActiveOptionBackground }) } } class ze extends Q.$ { constructor(e, t, i, n) { super(), this._showOptionButtons = i, this.fixFocusOnOptionClickEnabled = ! 0, this.cachedOptionsWidth = 0, this._onDidOptionChange = this._register( new ee.Q5), this.onDidOptionChange = this._onDidOptionChange.event, this._onKeyDown = this._register(new ee.Q5), this.onKeyDown = this._onKeyDown .event, this._onMouseDown = this._register(new ee.Q5), this._onInput = this._register(new ee.Q5), this._onKeyUp = this._register(new ee.Q5), this._onPreserveCaseKeyDown = this._register(new ee.Q5), this.onPreserveCaseKeyDown = this._onPreserveCaseKeyDown.event, this.contextViewProvider = t, this.placeholder = n.placeholder || "", this.validation = n.validation, this.label = n.label || Fe, this.inputActiveOptionBorder = n.inputActiveOptionBorder, this.inputActiveOptionForeground = n.inputActiveOptionForeground, this.inputActiveOptionBackground = n.inputActiveOptionBackground, this.inputBackground = n.inputBackground, this.inputForeground = n.inputForeground, this.inputBorder = n.inputBorder, this.inputValidationInfoBorder = n .inputValidationInfoBorder, this.inputValidationInfoBackground = n.inputValidationInfoBackground, this.inputValidationInfoForeground = n.inputValidationInfoForeground, this.inputValidationWarningBorder = n.inputValidationWarningBorder, this.inputValidationWarningBackground = n.inputValidationWarningBackground, this.inputValidationWarningForeground = n.inputValidationWarningForeground, this.inputValidationErrorBorder = n.inputValidationErrorBorder, this .inputValidationErrorBackground = n.inputValidationErrorBackground, this.inputValidationErrorForeground = n.inputValidationErrorForeground; const o = n.appendPreserveCaseLabel || "", r = n.history || [], s = !!n.flexibleHeight, a = !!n.flexibleWidth, l = n.flexibleMaxHeight; this.domNode = document.createElement("div"), this.domNode.classList.add( "monaco-findInput"), this.inputBox = this._register(new Me.p(this.domNode, this.contextViewProvider, { ariaLabel: this.label || "", placeholder: this.placeholder || "", validationOptions: { validation: this.validation }, inputBackground: this.inputBackground, inputForeground: this.inputForeground, inputBorder: this.inputBorder, inputValidationInfoBackground: this.inputValidationInfoBackground, inputValidationInfoForeground: this.inputValidationInfoForeground, inputValidationInfoBorder: this.inputValidationInfoBorder, inputValidationWarningBackground: this.inputValidationWarningBackground, inputValidationWarningForeground: this.inputValidationWarningForeground, inputValidationWarningBorder: this.inputValidationWarningBorder, inputValidationErrorBackground: this.inputValidationErrorBackground, inputValidationErrorForeground: this.inputValidationErrorForeground, inputValidationErrorBorder: this.inputValidationErrorBorder, history: r, flexibleHeight: s, flexibleWidth: a, flexibleMaxHeight: l })), this.preserveCase = this._register(new We({ appendTitle: o, isChecked: !1, inputActiveOptionBorder: this.inputActiveOptionBorder, inputActiveOptionForeground: this.inputActiveOptionForeground, inputActiveOptionBackground: this.inputActiveOptionBackground })), this._register(this.preserveCase.onChange((e => { this._onDidOptionChange.fire(e), !e && this.fixFocusOnOptionClickEnabled && this.inputBox.focus(), this.validate() }))), this._register(this.preserveCase.onKeyDown((e => { this._onPreserveCaseKeyDown.fire(e) }))), this._showOptionButtons ? this.cachedOptionsWidth = this.preserveCase .width() : this.cachedOptionsWidth = 0; let d = [this.preserveCase.domNode]; this.onkeydown(this.domNode, (e => { if (e.equals(15) || e.equals(17) || e.equals(9)) { let t = d.indexOf(document.activeElement); if (t >= 0) { let i = -1; e.equals(17) ? i = (t + 1) % d.length : e.equals(15) && (i = 0 === t ? d.length - 1 : t - 1), e.equals(9) ? (d[t].blur(), this.inputBox .focus()) : i >= 0 && d[i].focus(), Y.zB.stop(e, !0) } } })); let c = document.createElement("div"); c.className = "controls", c.style.display = this._showOptionButtons ? "block" : "none", c.appendChild(this.preserveCase.domNode), this.domNode .appendChild(c), e && e.appendChild(this.domNode), this.onkeydown( this.inputBox.inputElement, (e => this._onKeyDown.fire(e))), this.onkeyup( this.inputBox.inputElement, (e => this._onKeyUp.fire(e))), this.oninput( this.inputBox.inputElement, (e => this._onInput.fire())), this.onmousedown( this.inputBox.inputElement, (e => this._onMouseDown.fire(e))) } 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(e) { e ? this.enable() : this.disable() } style(e) { this.inputActiveOptionBorder = e.inputActiveOptionBorder, this.inputActiveOptionForeground = e.inputActiveOptionForeground, this.inputActiveOptionBackground = e.inputActiveOptionBackground, this.inputBackground = e.inputBackground, this.inputForeground = e.inputForeground, this.inputBorder = e.inputBorder, this.inputValidationInfoBackground = e.inputValidationInfoBackground, this.inputValidationInfoForeground = e.inputValidationInfoForeground, this.inputValidationInfoBorder = e.inputValidationInfoBorder, this.inputValidationWarningBackground = e.inputValidationWarningBackground, this.inputValidationWarningForeground = e.inputValidationWarningForeground, this.inputValidationWarningBorder = e.inputValidationWarningBorder, this.inputValidationErrorBackground = e.inputValidationErrorBackground, this.inputValidationErrorForeground = e.inputValidationErrorForeground, this.inputValidationErrorBorder = e.inputValidationErrorBorder, this .applyStyles() } applyStyles() { if (this.domNode) { const e = { inputActiveOptionBorder: this.inputActiveOptionBorder, inputActiveOptionForeground: this.inputActiveOptionForeground, inputActiveOptionBackground: this.inputActiveOptionBackground }; this.preserveCase.style(e); const t = { inputBackground: this.inputBackground, inputForeground: this.inputForeground, inputBorder: this.inputBorder, inputValidationInfoBackground: this.inputValidationInfoBackground, inputValidationInfoForeground: this.inputValidationInfoForeground, inputValidationInfoBorder: this.inputValidationInfoBorder, inputValidationWarningBackground: this.inputValidationWarningBackground, inputValidationWarningForeground: this.inputValidationWarningForeground, inputValidationWarningBorder: this.inputValidationWarningBorder, inputValidationErrorBackground: this.inputValidationErrorBackground, inputValidationErrorForeground: this.inputValidationErrorForeground, inputValidationErrorBorder: this.inputValidationErrorBorder }; this.inputBox.style(t) } } select() { this.inputBox.select() } focus() { this.inputBox.focus() } getPreserveCase() { return this.preserveCase.checked } setPreserveCase(e) { this.preserveCase.checked = e } focusOnPreserve() { this.preserveCase.focus() } validate() { this.inputBox && this.inputBox.validate() } set width(e) { this.inputBox.paddingRight = this.cachedOptionsWidth, this.inputBox.width = e, this.domNode.style.width = e + "px" } dispose() { super.dispose() } } var Ve = i(9989), He = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }, Ue = function(e, t) { return function(i, n) { t(i, n, e) } }; const je = "historyNavigationWidget", Ke = "historyNavigationForwardsEnabled", $e = "historyNavigationBackwardsEnabled"; function qe(e, t) { return e.getContext(document.activeElement).getValue(t) } function Ze(e, t) { const i = function(e, t) { return e.createScoped(t.target) }(e, t); return function(e, t, i) { new D.uy("historyNavigationWidget", t).bindTo(e) }(i, t), { scopedContextKeyService: i, historyNavigationForwardsEnablement: new D.uy(Ke, !0).bindTo(i), historyNavigationBackwardsEnablement: new D.uy($e, !0).bindTo(i) } } let Ge = class extends Pe { constructor(e, t, i, n, o = !1) { super(e, t, o, i), this._register(Ze(n, { target: this.inputBox.element, historyNavigator: this.inputBox }).scopedContextKeyService) } }; Ge = He([Ue(3, D.i6)], Ge); let Ye = class extends ze { constructor(e, t, i, n, o = !1) { super(e, t, o, i), this._register(Ze(n, { target: this.inputBox.element, historyNavigator: this.inputBox }).scopedContextKeyService) } }; Ye = He([Ue(3, D.i6)], Ye), Ve.W.registerCommandAndKeybindingRule({ id: "history.showPrevious", weight: 200, when: D.Ao.and(D.Ao.has(je), D.Ao.equals($e, !0)), primary: 16, secondary: [528], handler: e => { const t = qe(e.get(D.i6), je); t && t.historyNavigator.showPreviousValue() } }), Ve.W.registerCommandAndKeybindingRule({ id: "history.showNext", weight: 200, when: D.Ao.and(D.Ao.has(je), D.Ao.equals(Ke, !0)), primary: 18, secondary: [530], handler: e => { const t = qe(e.get(D.i6), je); t && t.historyNavigator.showNextValue() } }); var Qe = i(9554); const Xe = (0, Qe.q5)("find-selection", X.lA.selection, n.N( "findSelectionIcon", "Icon for 'Find in Selection' in the editor find widget.")), Je = (0, Qe.q5)("find-collapsed", X.lA.chevronRight, n.N( "findCollapsedIcon", "Icon to indicate that the editor find widget is collapsed.")), et = (0, Qe.q5)("find-expanded", X.lA.chevronDown, n.N( "findExpandedIcon", "Icon to indicate that the editor find widget is expanded.")), tt = (0, Qe.q5)("find-replace", X.lA.replace, n.N("findReplaceIcon", "Icon for 'Replace' in the editor find widget.")), it = (0, Qe.q5)("find-replace-all", X.lA.replaceAll, n.N( "findReplaceAllIcon", "Icon for 'Replace All' in the editor find widget.")), nt = (0, Qe.q5)("find-previous-match", X.lA.arrowUp, n.N( "findPreviousMatchIcon", "Icon for 'Find Previous' in the editor find widget.")), ot = (0, Qe.q5)("find-next-match", X.lA.arrowDown, n.N( "findNextMatchIcon", "Icon for 'Find Next' in the editor find widget." )), rt = n.N("label.find", "Find"), st = n.N("placeholder.find", "Find"), at = n.N("label.previousMatchButton", "Previous Match"), lt = n.N("label.nextMatchButton", "Next Match"), dt = n.N("label.toggleSelectionFind", "Find in Selection"), ct = n.N("label.closeButton", "Close"), ht = n.N("label.replace", "Replace"), ut = n.N("placeholder.replace", "Replace"), gt = n.N("label.replaceButton", "Replace"), pt = n.N("label.replaceAllButton", "Replace All"), mt = n.N("label.toggleReplaceButton", "Toggle Replace"), ft = n.N("title.matchesCountLimit", "Only the first {0} results are highlighted, but all find operations work on the entire text.", Z), _t = n.N("label.matchesLocation", "{0} of {1}"), bt = n.N("label.noResults", "No results"), vt = 419; let wt = 69; const Ct = "ctrlEnterReplaceAll.windows.donotask", yt = Te.dz ? 256 : 2048; class St { constructor(e) { this.afterLineNumber = e, this.heightInPx = 33, this.suppressMouseDown = ! 1, this.domNode = document.createElement("div"), this.domNode.className = "dock-find-viewzone" } } function xt(e, t, i) { const n = !!t.match(/\n/); i && n && i.selectionStart > 0 && e.stopPropagation() } function kt(e, t, i) { const n = !!t.match(/\n/); i && n && i.selectionEnd < i.value.length && e.stopPropagation() } class Lt extends Q.$ { constructor(e, t, i, n, s, a, l, d, c) { super(), this._cachedHeight = null, this._revealTimeouts = [], this._codeEditor = e, this._controller = t, this._state = i, this._contextViewProvider = n, this._keybindingService = s, this._contextKeyService = a, this._storageService = d, this._notificationService = c, this._ctrlEnterReplaceAllWarningPrompted = ! !d.getBoolean(Ct, 0), this._isVisible = !1, this._isReplaceVisible = ! 1, this._ignoreChangeEvent = !1, this._updateHistoryDelayer = new o.vp( 500), this._register((0, r.OF)((() => this._updateHistoryDelayer.cancel()))), this._register(this._state.onFindReplaceStateChange((e => this._onStateChanged( e)))), this._buildDomNode(), this._updateButtons(), this._tryUpdateWidgetWidth(), this._findInput.inputBox.layout(), this._register(this._codeEditor.onDidChangeConfiguration( (e => { if (e.hasChanged(80) && (this._codeEditor.getOption(80) && this._state .change({ isReplaceRevealed: !1 }, !1), this._updateButtons()), e.hasChanged(130) && this._tryUpdateWidgetWidth(), e.hasChanged(2) && this.updateAccessibilitySupport(), e.hasChanged( 34)) { const e = this._codeEditor.getOption(34).addExtraSpaceOnTop; e && !this._viewZone && (this._viewZone = new St(0), this._showViewZone()), ! e && this._viewZone && this._removeViewZone() } }))), this.updateAccessibilitySupport(), this._register(this._codeEditor .onDidChangeCursorSelection((() => { this._isVisible && this._updateToggleSelectionFindButton() }))), this._register(this._codeEditor.onDidFocusEditorWidget((() => { return e = this, t = void 0, n = function*() { if (this._isVisible) { let e = yield this._controller.getGlobalBufferTerm(); e && e !== this._state.searchString && (this._state.change({ searchString: e }, !1), this._findInput.select()) } }, new((i = void 0) || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })); var e, t, i, n }))), this._findInputFocused = T.bindTo(a), this._findFocusTracker = this._register(Y.go(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 = M.bindTo(a), this._replaceFocusTracker = this._register(Y.go(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( 34).addExtraSpaceOnTop && (this._viewZone = new St(0)), this._applyTheme( l.getColorTheme()), this._register(l.onDidColorThemeChange(this._applyTheme .bind(this))), this._register(this._codeEditor.onDidChangeModel((() => { this._isVisible && (this._viewZoneId = void 0) }))), this._register(this._codeEditor.onDidScrollChange((e => { e.scrollTopChanged ? this._layoutViewZone() : setTimeout((() => { this._layoutViewZone() }), 0) }))) } getId() { return Lt.ID } getDomNode() { return this._domNode } getPosition() { return this._isVisible ? { preference: 0 } : null } _onStateChanged(e) { if (e.searchString) { try { this._ignoreChangeEvent = !0, this._findInput.setValue(this._state.searchString) } finally { this._ignoreChangeEvent = !1 } this._updateButtons() } if (e.replaceString && (this._replaceInput.inputBox.value = this._state .replaceString), e.isRevealed && (this._state.isRevealed ? this._reveal() : this._hide(!0)), e.isReplaceRevealed && (this._state.isReplaceRevealed ? this._codeEditor.getOption(80) || this._isReplaceVisible || (this._isReplaceVisible = ! 0, this._replaceInput.width = Y.w(this._findInput.domNode), this._updateButtons(), this._replaceInput.inputBox.layout()) : this._isReplaceVisible && (this._isReplaceVisible = !1, this._updateButtons())), (e.isRevealed || e.isReplaceRevealed) && (this._state.isRevealed || this._state.isReplaceRevealed) && this._tryUpdateHeight() && this._showViewZone(), e.isRegex && this._findInput .setRegex(this._state.isRegex), e.wholeWord && this._findInput.setWholeWords( this._state.wholeWord), e.matchCase && this._findInput.setCaseSensitive( this._state.matchCase), e.preserveCase && this._replaceInput.setPreserveCase( this._state.preserveCase), e.searchScope && (this._state.searchScope ? this._toggleSelectionFind.checked = !0 : this._toggleSelectionFind.checked = ! 1, this._updateToggleSelectionFindButton()), e.searchString || e.matchesCount || e.matchesPosition) { let e = this._state.searchString.length > 0 && 0 === this._state.matchesCount; this._domNode.classList.toggle("no-results", e), this._updateMatchesCount(), this._updateButtons() }(e.searchString || e.currentMatch) && this._layoutViewZone(), e.updateHistory && this._delayedUpdateHistory(), e.loop && this._updateButtons() } _delayedUpdateHistory() { this._updateHistoryDelayer.trigger(this._updateHistory.bind(this)).then( void 0, Ie.dL) } _updateHistory() { this._state.searchString && this._findInput.inputBox.addToHistory(), this._state.replaceString && this._replaceInput.inputBox.addToHistory() } _updateMatchesCount() { let e; if (this._matchesCount.style.minWidth = wt + "px", this._state.matchesCount >= Z ? this._matchesCount.title = ft : this._matchesCount.title = "", this._matchesCount.firstChild && this._matchesCount.removeChild(this ._matchesCount.firstChild), this._state.matchesCount > 0) { let t = String(this._state.matchesCount); this._state.matchesCount >= Z && (t += "+"); let i = String(this._state.matchesPosition); "0" === i && (i = "?"), e = s.WU(_t, i, t) } else e = bt; this._matchesCount.appendChild(document.createTextNode(e)), (0, De.Z9) (this._getAriaLabel(e, this._state.currentMatch, this._state.searchString)), wt = Math.max(wt, this._matchesCount.clientWidth) } _getAriaLabel(e, t, i) { if (e === bt) return "" === i ? n.N("ariaSearchNoResultEmpty", "{0} found", e) : n.N("ariaSearchNoResult", "{0} found for '{1}'", e, i); if (t) { const o = n.N("ariaSearchNoResultWithLineNum", "{0} found for '{1}', at {2}", e, i, t.startLineNumber + ":" + t.startColumn ), r = this._codeEditor.getModel(); return r && t.startLineNumber <= r.getLineCount() && t.startLineNumber >= 1 ? `${r.getLineContent(t.startLineNumber)}, ${o}` : o } return n.N("ariaSearchNoResultWithLineNumNoCurrentMatch", "{0} found for '{1}'", e, i) } _updateToggleSelectionFindButton() { let e = this._codeEditor.getSelection(), t = !!e && (e.startLineNumber !== e.endLineNumber || e.startColumn !== e.endColumn), i = this._toggleSelectionFind.checked; this._isVisible && (i || t) ? 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); let e = this._state.searchString.length > 0, t = !!this._state.matchesCount; this._prevBtn.setEnabled(this._isVisible && e && t && this._state.canNavigateBack()), this._nextBtn.setEnabled(this._isVisible && e && t && this._state.canNavigateForward()), this._replaceBtn.setEnabled(this._isVisible && this._isReplaceVisible && e), this._replaceAllBtn.setEnabled(this._isVisible && this._isReplaceVisible && e), this._domNode.classList.toggle("replaceToggled", this._isReplaceVisible), this._toggleReplaceBtn.setExpanded(this._isReplaceVisible); let i = !this._codeEditor.getOption(80); this._toggleReplaceBtn.setEnabled(this._isVisible && i) } _reveal() { if (this._revealTimeouts.forEach((e => { clearTimeout(e) })), this._revealTimeouts = [], !this._isVisible) { this._isVisible = !0; const e = this._codeEditor.getSelection(); switch (this._codeEditor.getOption(34).autoFindInSelection) { case "always": this._toggleSelectionFind.checked = !0; break; case "never": this._toggleSelectionFind.checked = !1; break; case "multiline": const t = !!e && e.startLineNumber !== e.endLineNumber; this._toggleSelectionFind.checked = t } 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 t = !0; if (this._codeEditor.getOption(34).seedSearchStringFromSelection && e) { const i = this._codeEditor.getDomNode(); if (i) { const n = Y.i(i), o = this._codeEditor.getScrolledVisiblePosition(e.getStartPosition()), r = n.left + (o ? o.left : 0), s = o ? o.top : 0; if (this._viewZone && s < this._viewZone.heightInPx) { e.endLineNumber > e.startLineNumber && (t = !1); const i = Y.xQ(this._domNode).left; r > i && (t = !1); const o = this._codeEditor.getScrolledVisiblePosition(e.getEndPosition()); n.left + (o ? o.left : 0) > i && (t = !1) } } } this._showViewZone(t) } } _hide(e) { this._revealTimeouts.forEach((e => { clearTimeout(e) })), this._revealTimeouts = [], this._isVisible && (this._isVisible = ! 1, this._updateButtons(), this._domNode.classList.remove("visible"), this._domNode.setAttribute("aria-hidden", "true"), this._findInput.clearMessage(), e && this._codeEditor.focus(), this._codeEditor.layoutOverlayWidget( this), this._removeViewZone()) } _layoutViewZone(e) { if (!this._codeEditor.getOption(34).addExtraSpaceOnTop) return void this ._removeViewZone(); if (!this._isVisible) return; const t = this._viewZone; void 0 === this._viewZoneId && t && this._codeEditor.changeViewZones( (i => { t.heightInPx = this._getHeight(), this._viewZoneId = i.addZone(t), this._codeEditor.setScrollTop(e || this._codeEditor.getScrollTop() + t.heightInPx) })) } _showViewZone(e = !0) { if (!this._isVisible) return; if (!this._codeEditor.getOption(34).addExtraSpaceOnTop) return; void 0 === this._viewZone && (this._viewZone = new St(0)); const t = this._viewZone; this._codeEditor.changeViewZones((i => { if (void 0 !== this._viewZoneId) { const n = this._getHeight(); if (n === t.heightInPx) return; let o = n - t.heightInPx; return t.heightInPx = n, i.layoutZone(this._viewZoneId), void(e && this._codeEditor.setScrollTop(this._codeEditor.getScrollTop() + o)) } { let n = this._getHeight(); if (n -= this._codeEditor.getOption(74).top, n <= 0) return; t.heightInPx = n, this._viewZoneId = i.addZone(t), e && this._codeEditor .setScrollTop(this._codeEditor.getScrollTop() + n) } })) } _removeViewZone() { this._codeEditor.changeViewZones((e => { void 0 !== this._viewZoneId && (e.removeZone(this._viewZoneId), this._viewZoneId = void 0, this._viewZone && (this._codeEditor.setScrollTop( this._codeEditor.getScrollTop() - this._viewZone.heightInPx), this._viewZone = void 0)) })) } _applyTheme(e) { let t = { inputActiveOptionBorder: e.getColor(f.PR), inputActiveOptionBackground: e.getColor(f.XE), inputActiveOptionForeground: e.getColor(f.Pv), inputBackground: e.getColor(f.sE), inputForeground: e.getColor(f.zJ), inputBorder: e.getColor(f.dt), inputValidationInfoBackground: e.getColor(f._l), inputValidationInfoForeground: e.getColor(f.YI), inputValidationInfoBorder: e.getColor(f.EP), inputValidationWarningBackground: e.getColor(f.RV), inputValidationWarningForeground: e.getColor(f.SU), inputValidationWarningBorder: e.getColor(f.C3), inputValidationErrorBackground: e.getColor(f.p), inputValidationErrorForeground: e.getColor(f._t), inputValidationErrorBorder: e.getColor(f.OZ) }; this._findInput.style(t), this._replaceInput.style(t), this._toggleSelectionFind .style(t) } _tryUpdateWidgetWidth() { if (!this._isVisible) return; if (!Y.Uw(this._domNode)) return; const e = this._codeEditor.getLayoutInfo(); if (e.contentWidth <= 0) return void this._domNode.classList.add( "hiddenEditor"); this._domNode.classList.contains("hiddenEditor") && this._domNode.classList .remove("hiddenEditor"); const t = e.width, i = e.minimap.minimapWidth; let n = !1, o = !1, r = !1; if (this._resized && Y.w(this._domNode) > vt) return this._domNode.style .maxWidth = t - 28 - i - 15 + "px", void(this._replaceInput.width = Y.w(this._findInput.domNode)); if (447 + i >= t && (o = !0), 447 + i - wt >= t && (r = !0), 447 + i - wt >= t + 50 && (n = !0), this._domNode.classList.toggle( "collapsed-find-widget", n), this._domNode.classList.toggle( "narrow-find-widget", r), this._domNode.classList.toggle( "reduced-find-widget", o), r || n || (this._domNode.style.maxWidth = t - 28 - i - 15 + "px"), this._resized) { this._findInput.inputBox.layout(); let e = this._findInput.inputBox.element.clientWidth; e > 0 && (this._replaceInput.width = e) } else this._isReplaceVisible && (this._replaceInput.width = Y.w(this ._findInput.domNode)) } _getHeight() { let e = 0; return e += 4, e += this._findInput.inputBox.height + 2, this._isReplaceVisible && (e += 4, e += this._replaceInput.inputBox.height + 2), e += 4, e } _tryUpdateHeight() { const e = this._getHeight(); return (null === this._cachedHeight || this._cachedHeight !== e) && ( this._cachedHeight = e, this._domNode.style.height = `${e}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) { let e = this._codeEditor.getSelections(); e.map((e => { 1 === e.endColumn && e.endLineNumber > e.startLineNumber && (e = e.setEndPosition(e.endLineNumber - 1, this._codeEditor.getModel() .getLineMaxColumn(e.endLineNumber - 1))); const t = this._state.currentMatch; return e.startLineNumber === e.endLineNumber || h.e.equalsRange( e, t) ? null : e })).filter((e => !!e)), e.length && this._state.change({ searchScope: e }, !0) } } _onFindInputMouseDown(e) { e.middleButton && e.stopPropagation() } _onFindInputKeyDown(e) { return e.equals(3 | yt) ? (this._findInput.inputBox.insertAtCursor( "\n"), void e.preventDefault()) : e.equals(2) ? (this._isReplaceVisible ? this._replaceInput.focus() : this._findInput.focusOnCaseSensitive(), void e.preventDefault()) : e.equals(2066) ? (this._codeEditor.focus(), void e.preventDefault()) : e.equals(16) ? xt(e, this._findInput.getValue(), this._findInput.domNode.querySelector("textarea")) : e.equals(18) ? kt(e, this._findInput.getValue(), this._findInput.domNode.querySelector( "textarea")) : void 0 } _onReplaceInputKeyDown(e) { return e.equals(3 | yt) ? (Te.ED && Te.tY && !this._ctrlEnterReplaceAllWarningPrompted && (this._notificationService.info(n.N("ctrlEnter.keybindingChanged", "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(Ct, !0, 0, 0)), this._replaceInput.inputBox.insertAtCursor( "\n"), void e.preventDefault()) : e.equals(2) ? (this._findInput.focusOnCaseSensitive(), void e.preventDefault()) : e.equals(1026) ? (this._findInput.focus(), void e.preventDefault()) : e.equals(2066) ? (this._codeEditor.focus(), void e.preventDefault()) : e.equals(16) ? xt(e, this._replaceInput.inputBox .value, this._replaceInput.inputBox.element.querySelector( "textarea")) : e.equals(18) ? kt(e, this._replaceInput.inputBox.value, this._replaceInput.inputBox.element.querySelector("textarea")) : void 0 } getVerticalSashLeft(e) { return 0 } _keybindingLabelFor(e) { let t = this._keybindingService.lookupKeybinding(e); return t ? ` (${t.getLabel()})` : "" } _buildDomNode() { this._findInput = this._register(new Ge(null, this._contextViewProvider, { width: 221, label: rt, placeholder: st, appendCaseSensitiveLabel: this._keybindingLabelFor(V), appendWholeWordsLabel: this._keybindingLabelFor(H), appendRegexLabel: this._keybindingLabelFor(U), validation: e => { if (0 === e.length || !this._findInput.getRegex()) return null; try { return new RegExp(e, "gu"), null } catch (e) { return { content: e.message } } }, flexibleHeight: !0, flexibleWidth: !0, flexibleMaxHeight: 118 }, this._contextKeyService, !0)), this._findInput.setRegex(!!this._state .isRegex), this._findInput.setCaseSensitive(!!this._state.matchCase), this._findInput.setWholeWords(!!this._state.wholeWord), this._register( this._findInput.onKeyDown((e => this._onFindInputKeyDown(e)))), 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((e => { e.equals(1026) && this._isReplaceVisible && (this._replaceInput.focus(), e.preventDefault()) }))), this._register(this._findInput.onRegexKeyDown((e => { e.equals(2) && this._isReplaceVisible && (this._replaceInput.focusOnPreserve(), e.preventDefault()) }))), this._register(this._findInput.inputBox.onDidHeightChange((e => { this._tryUpdateHeight() && this._showViewZone() }))), Te.IJ && this._register(this._findInput.onMouseDown((e => this ._onFindInputMouseDown(e)))), this._matchesCount = document.createElement( "div"), this._matchesCount.className = "matchesCount", this._updateMatchesCount(), this._prevBtn = this._register(new Nt({ label: at + this._keybindingLabelFor(W), icon: nt, onTrigger: () => { this._codeEditor.getAction(W).run().then(void 0, Ie.dL) } })), this._nextBtn = this._register(new Nt({ label: lt + this._keybindingLabelFor(B), icon: ot, onTrigger: () => { this._codeEditor.getAction(B).run().then(void 0, Ie.dL) } })); let e = document.createElement("div"); e.className = "find-part", e.appendChild(this._findInput.domNode); const t = document.createElement("div"); t.className = "find-actions", e.appendChild(t), t.appendChild(this._matchesCount), t.appendChild(this._prevBtn.domNode), t.appendChild(this._nextBtn.domNode), this._toggleSelectionFind = this._register(new fe({ icon: Xe, title: dt + this._keybindingLabelFor(j), isChecked: !1 })), this._register(this._toggleSelectionFind.onChange((() => { if (this._toggleSelectionFind.checked) { if (this._codeEditor.hasModel()) { let e = this._codeEditor.getSelections(); e.map((e => (1 === e.endColumn && e.endLineNumber > e.startLineNumber && (e = e.setEndPosition(e.endLineNumber - 1, this._codeEditor .getModel().getLineMaxColumn(e.endLineNumber - 1))), e.isEmpty() ? null : e))).filter((e => !!e)), e.length && this._state.change({ searchScope: e }, !0) } } else this._state.change({ searchScope: null }, !0) }))), t.appendChild(this._toggleSelectionFind.domNode), this._closeBtn = this._register(new Nt({ label: ct + this._keybindingLabelFor(z), icon: Qe.s_, onTrigger: () => { this._state.change({ isRevealed: !1, searchScope: null }, !1) }, onKeyDown: e => { e.equals(2) && this._isReplaceVisible && (this._replaceBtn.isEnabled() ? this._replaceBtn.focus() : this._codeEditor.focus(), e.preventDefault() ) } })), t.appendChild(this._closeBtn.domNode), this._replaceInput = this._register(new Ye(null, void 0, { label: ht, placeholder: ut, appendPreserveCaseLabel: this._keybindingLabelFor(K), history: [], flexibleHeight: !0, flexibleWidth: !0, flexibleMaxHeight: 118 }, this._contextKeyService, !0)), this._replaceInput.setPreserveCase(! !this._state.preserveCase), this._register(this._replaceInput.onKeyDown( (e => this._onReplaceInputKeyDown(e)))), this._register(this._replaceInput .inputBox.onDidChange((() => { this._state.change({ replaceString: this._replaceInput.inputBox.value }, !1) }))), this._register(this._replaceInput.inputBox.onDidHeightChange( (e => { this._isReplaceVisible && this._tryUpdateHeight() && this._showViewZone() }))), this._register(this._replaceInput.onDidOptionChange((() => { this._state.change({ preserveCase: this._replaceInput.getPreserveCase() }, !0) }))), this._register(this._replaceInput.onPreserveCaseKeyDown((e => { e.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(), e.preventDefault()) }))), this._replaceBtn = this._register(new Nt({ label: gt + this._keybindingLabelFor($), icon: tt, onTrigger: () => { this._controller.replace() }, onKeyDown: e => { e.equals(1026) && (this._closeBtn.focus(), e.preventDefault()) } })), this._replaceAllBtn = this._register(new Nt({ label: pt + this._keybindingLabelFor(q), icon: it, onTrigger: () => { this._controller.replaceAll() } })); let i = document.createElement("div"); i.className = "replace-part", i.appendChild(this._replaceInput.domNode); const n = document.createElement("div"); n.className = "replace-actions", i.appendChild(n), n.appendChild(this ._replaceBtn.domNode), n.appendChild(this._replaceAllBtn.domNode), this._toggleReplaceBtn = this._register(new Nt({ label: mt, className: "codicon toggle left", onTrigger: () => { this._state.change({ isReplaceRevealed: !this._isReplaceVisible }, !1), this._isReplaceVisible && (this._replaceInput.width = Y.w(this._findInput.domNode), this._replaceInput.inputBox.layout() ), this._showViewZone() } })), 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.style.width = "419px", this._domNode .appendChild(this._toggleReplaceBtn.domNode), this._domNode.appendChild( e), this._domNode.appendChild(i), this._resizeSash = new Ee.g(this._domNode, this, { orientation: 0, size: 2 }), this._resized = !1; let o = vt; this._register(this._resizeSash.onDidStart((() => { o = Y.w(this._domNode) }))), this._register(this._resizeSash.onDidChange((e => { this._resized = !0; let t = o + e.startX - e.currentX; t < vt || t > (parseFloat(Y.Dx(this._domNode).maxWidth) || 0) || (this._domNode.style.width = `${t}px`, this._isReplaceVisible && (this._replaceInput.width = Y.w(this._findInput.domNode)), this._findInput.inputBox.layout(), this._tryUpdateHeight()) }))), this._register(this._resizeSash.onDidReset((() => { const e = Y.w(this._domNode); if (e < vt) return; let t = vt; if (!this._resized || e === vt) { const e = this._codeEditor.getLayoutInfo(); t = e.width - 28 - e.minimap.minimapWidth - 15, this._resized = ! 0 } this._domNode.style.width = `${t}px`, this._isReplaceVisible && (this._replaceInput.width = Y.w(this._findInput.domNode)), this ._findInput.inputBox.layout() }))) } updateAccessibilitySupport() { const e = this._codeEditor.getOption(2); this._findInput.setFocusInputOnOptionClick(2 !== e) } } Lt.ID = "editor.contrib.findWidget"; class Nt extends Q.$ { constructor(e) { super(), this._opts = e; let t = "button"; this._opts.className && (t = t + " " + this._opts.className), this._opts .icon && (t = t + " " + _.kS.asClassName(this._opts.icon)), this._domNode = document.createElement("div"), this._domNode.title = this._opts.label, this._domNode.tabIndex = 0, this._domNode.className = t, this._domNode .setAttribute("role", "button"), this._domNode.setAttribute( "aria-label", this._opts.label), this.onclick(this._domNode, (e => { this._opts.onTrigger(), e.preventDefault() })), this.onkeydown(this._domNode, (e => { if (e.equals(10) || e.equals(3)) return this._opts.onTrigger(), void e.preventDefault(); this._opts.onKeyDown && this._opts.onKeyDown(e) })) } get domNode() { return this._domNode } isEnabled() { return this._domNode.tabIndex >= 0 } focus() { this._domNode.focus() } setEnabled(e) { this._domNode.classList.toggle("disabled", !e), this._domNode.setAttribute( "aria-disabled", String(!e)), this._domNode.tabIndex = e ? 0 : -1 } setExpanded(e) { this._domNode.setAttribute("aria-expanded", String(!!e)), e ? (this._domNode .classList.remove(..._.kS.asClassNameArray(Je)), this._domNode.classList .add(..._.kS.asClassNameArray(et))) : (this._domNode.classList.remove( ..._.kS.asClassNameArray(et)), this._domNode.classList.add(..._.kS .asClassNameArray(Je))) } }(0, _.Ic)(((e, t) => { const i = (e, i) => { i && t.addRule(`.monaco-editor ${e} { background-color: ${i}; }`) }; i(".findMatch", e.getColor(f.MU)), i(".currentFindMatch", e.getColor( f.ny)), i(".findScope", e.getColor(f.jU)), i(".find-widget", e.getColor( f.D0)); const n = e.getColor(f.rh); n && t.addRule( `.monaco-editor .find-widget { box-shadow: 0 0 8px 2px ${n}; }`); const o = e.getColor(f.Ei); o && t.addRule( `.monaco-editor .findMatch { border: 1px ${"hc"===e.type?"dotted":"solid"} ${o}; box-sizing: border-box; }` ); const r = e.getColor(f.pn); r && t.addRule( `.monaco-editor .currentFindMatch { border: 2px solid ${r}; padding: 1px; box-sizing: border-box; }` ); const s = e.getColor(f.gk); s && t.addRule( `.monaco-editor .findScope { border: 1px ${"hc"===e.type?"dashed":"solid"} ${s}; }` ); const a = e.getColor(f.lR); a && t.addRule( `.monaco-editor .find-widget { border: 1px solid ${a}; }`); const l = e.getColor(f.Hf); l && t.addRule(`.monaco-editor .find-widget { color: ${l}; }`); const d = e.getColor(f.Id); d && t.addRule( `.monaco-editor .find-widget.no-results .matchesCount { color: ${d}; }` ); const c = e.getColor(f.Ng); if (c) t.addRule( `.monaco-editor .find-widget .monaco-sash { background-color: ${c}; }` ); else { const i = e.getColor(f.D1); i && t.addRule( `.monaco-editor .find-widget .monaco-sash { background-color: ${i}; }` ) } const h = e.getColor(f.lU); h && t.addRule( `\n\t\t.monaco-editor .find-widget .button:not(.disabled):hover,\n\t\t.monaco-editor .find-widget .codicon-find-selection:hover {\n\t\t\tbackground-color: ${h} !important;\n\t\t}\n\t` ); const u = e.getColor(f.R8); u && t.addRule( `.monaco-editor .find-widget .monaco-inputbox.synthetic-focus { outline-color: ${u}; }` ) })); var Dt = i(4144), Et = i(4972), It = i(5606), Tt = i(1847), Mt = i(6904), At = i(9422), Rt = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }, Ot = function(e, t) { return function(i, n) { t(i, n, e) } }, Pt = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; function Ft(e, t = "single", i = !1) { if (!e.hasModel()) return null; const n = e.getSelection(); if ("single" === t && n.startLineNumber === n.endLineNumber || "multiple" === t) if (n.isEmpty()) { const t = e.getConfiguredWordAtPosition(n.getStartPosition()); if (t && !1 === i) return t.word } else if (e.getModel().getValueLengthInRange(n) < 524288) return e.getModel() .getValueInRange(n); return null } let Bt = class e extends r.JT { constructor(e, t, i, n) { super(), this._editor = e, this._findWidgetVisible = I.bindTo(t), this._contextKeyService = t, this._storageService = i, this._clipboardService = n, this._updateHistoryDelayer = new o.vp(500), this._state = this._register( new ke), this.loadQueryState(), this._register(this._state.onFindReplaceStateChange( (e => this._onStateChanged(e)))), this._model = null, this._register( this._editor.onDidChangeModel((() => { let e = 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), e && this._start({ forceRevealReplace: !1, seedSearchStringFromSelection: "none", seedSearchStringFromNonEmptySelection: !1, seedSearchStringFromGlobalClipboard: !1, shouldFocus: 0, shouldAnimate: !1, updateSearchScope: !1, loop: this._editor.getOption(34).loop }) }))) } get editor() { return this._editor } static get(t) { return t.getContribution(e.ID) } dispose() { this.disposeModel(), super.dispose() } disposeModel() { this._model && (this._model.dispose(), this._model = null) } _onStateChanged(e) { this.saveQueryState(e), e.isRevealed && (this._state.isRevealed ? this._findWidgetVisible.set(!0) : (this._findWidgetVisible.reset(), this.disposeModel())), e.searchString && this.setGlobalBufferTerm( this._state.searchString) } saveQueryState(e) { e.isRegex && this._storageService.store("editor.isRegex", this._state .actualIsRegex, 1, 0), e.wholeWord && this._storageService.store( "editor.wholeWord", this._state.actualWholeWord, 1, 0), e.matchCase && this._storageService.store("editor.matchCase", this._state.actualMatchCase, 1, 0), e.preserveCase && this._storageService.store( "editor.preserveCase", this._state.actualPreserveCase, 1, 0) } 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 !!T.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 e = this._editor.getSelections(); e.map((e => (1 === e.endColumn && e.endLineNumber > e.startLineNumber && (e = e.setEndPosition(e.endLineNumber - 1, this._editor.getModel() .getLineMaxColumn(e.endLineNumber - 1))), e.isEmpty() ? null : e))).filter((e => !!e)), e.length && this._state.change({ searchScope: e }, !0) } } setSearchString(e) { this._state.isRegex && (e = s.ec(e)), this._state.change({ searchString: e }, !1) } highlightFindOptions(e = !1) {} _start(e) { return Pt(this, void 0, void 0, (function*() { if (this.disposeModel(), !this._editor.hasModel()) return; let t = { isRevealed: !0 }; if ("single" === e.seedSearchStringFromSelection) { let i = Ft(this._editor, e.seedSearchStringFromSelection, e.seedSearchStringFromNonEmptySelection); i && (this._state.isRegex ? t.searchString = s.ec(i) : t.searchString = i) } else if ("multiple" === e.seedSearchStringFromSelection && !e.updateSearchScope) { let i = Ft(this._editor, e.seedSearchStringFromSelection); i && (t.searchString = i) } if (!t.searchString && e.seedSearchStringFromGlobalClipboard) { let e = yield this.getGlobalBufferTerm(); if (!this._editor.hasModel()) return; e && (t.searchString = e) } if (e.forceRevealReplace ? t.isReplaceRevealed = !0 : this._findWidgetVisible .get() || (t.isReplaceRevealed = !1), e.updateSearchScope) { let e = this._editor.getSelections(); e.some((e => !e.isEmpty())) && (t.searchScope = e) } t.loop = e.loop, this._state.change(t, !1), this._model || (this._model = new G(this._editor, this._state)) })) } start(e) { return this._start(e) } moveToNextMatch() { return !!this._model && (this._model.moveToNextMatch(), !0) } moveToPrevMatch() { return !!this._model && (this._model.moveToPrevMatch(), !0) } replace() { return !!this._model && (this._model.replace(), !0) } replaceAll() { return !!this._model && (this._model.replaceAll(), !0) } selectAllMatches() { return !!this._model && (this._model.selectAllMatches(), this._editor .focus(), !0) } getGlobalBufferTerm() { return Pt(this, void 0, void 0, (function*() { return this._editor.getOption(34).globalFindClipboard && this._editor .hasModel() && !this._editor.getModel().isTooLargeForSyncing() ? this._clipboardService.readFindText() : "" })) } setGlobalBufferTerm(e) { this._editor.getOption(34).globalFindClipboard && this._editor.hasModel() && !this._editor.getModel().isTooLargeForSyncing() && this._clipboardService .writeFindText(e) } }; Bt.ID = "editor.contrib.findController", Bt = Rt([Ot(1, D.i6), Ot(2, Mt.Uy), Ot(3, Et.p) ], Bt); let Wt = class extends Bt { constructor(e, t, i, n, o, r, s, a) { super(e, i, s, a), this._contextViewService = t, this._keybindingService = n, this._themeService = o, this._notificationService = r, this._widget = null, this._findOptionsWidget = null } _start(e) { const t = Object.create(null, { _start: { get: () => super._start } }); return Pt(this, void 0, void 0, (function*() { this._widget || this._createFindWidget(); const i = this._editor.getSelection(); let n = !1; switch (this._editor.getOption(34).autoFindInSelection) { case "always": n = !0; break; case "never": n = !1; break; case "multiline": n = !!i && i.startLineNumber !== i.endLineNumber } e.updateSearchScope = n, yield t._start.call(this, e), this._widget && (2 === e.shouldFocus ? this._widget.focusReplaceInput() : 1 === e.shouldFocus && this._widget.focusFindInput()) })) } highlightFindOptions(e = !1) { this._widget || this._createFindWidget(), this._state.isRevealed && ! e ? this._widget.highlightFindOptions() : this._findOptionsWidget.highlightFindOptions() } _createFindWidget() { this._widget = this._register(new Lt(this._editor, this, this._state, this._contextViewService, this._keybindingService, this._contextKeyService, this._themeService, this._storageService, this._notificationService )), this._findOptionsWidget = this._register(new Se(this._editor, this._state, this._keybindingService, this._themeService)) } }; Wt = Rt([Ot(1, It.u), Ot(2, D.i6), Ot(3, Tt.d), Ot(4, _.XE), Ot(5, At.lT), Ot(6, Mt.Uy), Ot(7, Et.p) ], Wt); const zt = (0, a.rn)(new a.jY({ id: "actions.find", label: n.N("startFindAction", "Find"), alias: "Find", precondition: D.Ao.or(l.u.focus, D.Ao.has("editorIsOpen")), kbOpts: { kbExpr: null, primary: 2084, weight: 100 }, menuOpts: { menuId: Dt.eH.MenubarEditMenu, group: "3_find", title: n.N({ key: "miFind", comment: ["&& denotes a mnemonic"] }, "&&Find"), order: 1 } })); zt.addImplementation(0, ((e, t, i) => { const n = Bt.get(t); return !!n && n.start({ forceRevealReplace: !1, seedSearchStringFromSelection: "never" !== t.getOption(34).seedSearchStringFromSelection ? "single" : "none", seedSearchStringFromNonEmptySelection: "selection" === t.getOption( 34).seedSearchStringFromSelection, seedSearchStringFromGlobalClipboard: t.getOption(34).globalFindClipboard, shouldFocus: 1, shouldAnimate: !0, updateSearchScope: !1, loop: t.getOption(34).loop }) })); class Vt extends a.R6 { constructor() { super({ id: "actions.findWithSelection", label: n.N("startFindWithSelectionAction", "Find With Selection"), alias: "Find With Selection", precondition: void 0, kbOpts: { kbExpr: null, primary: 0, mac: { primary: 2083 }, weight: 100 } }) } run(e, t) { return Pt(this, void 0, void 0, (function*() { let e = Bt.get(t); e && (yield e.start({ forceRevealReplace: !1, seedSearchStringFromSelection: "multiple", seedSearchStringFromNonEmptySelection: !1, seedSearchStringFromGlobalClipboard: !1, shouldFocus: 0, shouldAnimate: !0, updateSearchScope: !1, loop: t.getOption(34).loop }), e.setGlobalBufferTerm(e.getState().searchString)) })) } } class Ht extends a.R6 { run(e, t) { return Pt(this, void 0, void 0, (function*() { let e = Bt.get(t); e && !this._run(e) && (yield e.start({ forceRevealReplace: !1, seedSearchStringFromSelection: 0 === e.getState().searchString .length && "never" !== t.getOption(34).seedSearchStringFromSelection ? "single" : "none", seedSearchStringFromNonEmptySelection: "selection" === t.getOption( 34).seedSearchStringFromSelection, seedSearchStringFromGlobalClipboard: !0, shouldFocus: 0, shouldAnimate: !0, updateSearchScope: !1, loop: t.getOption(34).loop }), this._run(e)) })) } } class Ut extends Ht { constructor() { super({ id: B, label: n.N("findNextMatchAction", "Find Next"), alias: "Find Next", precondition: void 0, kbOpts: [{ kbExpr: l.u.focus, primary: 61, mac: { primary: 2085, secondary: [61] }, weight: 100 }, { kbExpr: D.Ao.and(l.u.focus, T), primary: 3, weight: 100 }] }) } _run(e) { return !!e.moveToNextMatch() && (e.editor.pushUndoStop(), !0) } } class jt extends Ht { constructor() { super({ id: W, label: n.N("findPreviousMatchAction", "Find Previous"), alias: "Find Previous", precondition: void 0, kbOpts: [{ kbExpr: l.u.focus, primary: 1085, mac: { primary: 3109, secondary: [1085] }, weight: 100 }, { kbExpr: D.Ao.and(l.u.focus, T), primary: 1027, weight: 100 }] }) } _run(e) { return e.moveToPrevMatch() } } class Kt extends a.R6 { run(e, t) { return Pt(this, void 0, void 0, (function*() { let e = Bt.get(t); if (!e) return; const i = "selection" === t.getOption(34).seedSearchStringFromSelection; let n = null; "never" !== t.getOption(34).seedSearchStringFromSelection && (n = Ft(t, "single", i)), n && e.setSearchString(n), this._run(e) || (yield e.start({ forceRevealReplace: !1, seedSearchStringFromSelection: "never" !== t.getOption(34).seedSearchStringFromSelection ? "single" : "none", seedSearchStringFromNonEmptySelection: i, seedSearchStringFromGlobalClipboard: !1, shouldFocus: 0, shouldAnimate: !0, updateSearchScope: !1, loop: t.getOption(34).loop }), this._run(e)) })) } } class $t extends Kt { constructor() { super({ id: "editor.action.nextSelectionMatchFindAction", label: n.N("nextSelectionMatchFindAction", "Find Next Selection"), alias: "Find Next Selection", precondition: void 0, kbOpts: { kbExpr: l.u.focus, primary: 2109, weight: 100 } }) } _run(e) { return e.moveToNextMatch() } } class qt extends Kt { constructor() { super({ id: "editor.action.previousSelectionMatchFindAction", label: n.N("previousSelectionMatchFindAction", "Find Previous Selection"), alias: "Find Previous Selection", precondition: void 0, kbOpts: { kbExpr: l.u.focus, primary: 3133, weight: 100 } }) } _run(e) { return e.moveToPrevMatch() } } const Zt = (0, a.rn)(new a.jY({ id: "editor.action.startFindReplaceAction", label: n.N("startReplace", "Replace"), alias: "Replace", precondition: D.Ao.or(l.u.focus, D.Ao.has("editorIsOpen")), kbOpts: { kbExpr: null, primary: 2086, mac: { primary: 2596 }, weight: 100 }, menuOpts: { menuId: Dt.eH.MenubarEditMenu, group: "3_find", title: n.N({ key: "miReplace", comment: ["&& denotes a mnemonic"] }, "&&Replace"), order: 2 } })); Zt.addImplementation(0, ((e, t, i) => { if (!t.hasModel() || t.getOption(80)) return !1; const n = Bt.get(t); if (!n) return !1; const o = t.getSelection(), r = n.isFindInputFocused(), s = !o.isEmpty() && o.startLineNumber === o.endLineNumber && "never" !== t.getOption(34).seedSearchStringFromSelection && !r, a = r || s ? 2 : 1; return n.start({ forceRevealReplace: !0, seedSearchStringFromSelection: s ? "single" : "none", seedSearchStringFromNonEmptySelection: "selection" === t.getOption( 34).seedSearchStringFromSelection, seedSearchStringFromGlobalClipboard: "never" !== t.getOption(34).seedSearchStringFromSelection, shouldFocus: a, shouldAnimate: !0, updateSearchScope: !1, loop: t.getOption(34).loop }) })), (0, a._K)(Bt.ID, Wt), (0, a.Qr)(Vt), (0, a.Qr)(Ut), (0, a.Qr)(jt), ( 0, a.Qr)($t), (0, a.Qr)(qt); const Gt = a._l.bindToContribution(Bt.get); (0, a.fK)(new Gt({ id: z, precondition: I, handler: e => e.closeFindWidget(), kbOpts: { weight: 105, kbExpr: D.Ao.and(l.u.focus, D.Ao.not("isComposing")), primary: 9, secondary: [1033] } })), (0, a.fK)(new Gt({ id: V, precondition: void 0, handler: e => e.toggleCaseSensitive(), kbOpts: { weight: 105, kbExpr: l.u.focus, primary: A.primary, mac: A.mac, win: A.win, linux: A.linux } })), (0, a.fK)(new Gt({ id: H, precondition: void 0, handler: e => e.toggleWholeWords(), kbOpts: { weight: 105, kbExpr: l.u.focus, primary: R.primary, mac: R.mac, win: R.win, linux: R.linux } })), (0, a.fK)(new Gt({ id: U, precondition: void 0, handler: e => e.toggleRegex(), kbOpts: { weight: 105, kbExpr: l.u.focus, primary: O.primary, mac: O.mac, win: O.win, linux: O.linux } })), (0, a.fK)(new Gt({ id: j, precondition: void 0, handler: e => e.toggleSearchScope(), kbOpts: { weight: 105, kbExpr: l.u.focus, primary: P.primary, mac: P.mac, win: P.win, linux: P.linux } })), (0, a.fK)(new Gt({ id: K, precondition: void 0, handler: e => e.togglePreserveCase(), kbOpts: { weight: 105, kbExpr: l.u.focus, primary: F.primary, mac: F.mac, win: F.win, linux: F.linux } })), (0, a.fK)(new Gt({ id: $, precondition: I, handler: e => e.replace(), kbOpts: { weight: 105, kbExpr: l.u.focus, primary: 3094 } })), (0, a.fK)(new Gt({ id: $, precondition: I, handler: e => e.replace(), kbOpts: { weight: 105, kbExpr: D.Ao.and(l.u.focus, M), primary: 3 } })), (0, a.fK)(new Gt({ id: q, precondition: I, handler: e => e.replaceAll(), kbOpts: { weight: 105, kbExpr: l.u.focus, primary: 2563 } })), (0, a.fK)(new Gt({ id: q, precondition: I, handler: e => e.replaceAll(), kbOpts: { weight: 105, kbExpr: D.Ao.and(l.u.focus, M), primary: void 0, mac: { primary: 2051 } } })), (0, a.fK)(new Gt({ id: "editor.action.selectAllMatches", precondition: I, handler: e => e.selectAllMatches(), kbOpts: { weight: 105, kbExpr: l.u.focus, primary: 515 } })) }, 3190: (e, t, i) => { "use strict"; i.r(t), i.d(t, { FoldingController: () => de, editorFoldForeground: () => fe, foldBackgroundBackground: () => me }); var n = i(3379), o = i.n(n), r = i(7795), s = i.n(r), a = i(569), l = i.n(a), d = i(3565), c = i.n(d), h = i(9216), u = i.n(h), g = i(4589), p = i.n(g), m = i(6977), f = {}; f.styleTagTransform = p(), f.setAttributes = c(), f.insert = l().bind( null, "head"), f.domAPI = s(), f.insertStyleElement = u(), o()(m.Z, f), m.Z && m.Z.locals && m.Z.locals; var _ = i(3580), b = i(8401), v = i(7295), w = i(5393), C = i(2258), y = i(5976), S = i(6830), x = i(4669); const k = 16777215, L = 4278190080; class N { constructor(e, t, i) { if (e.length !== t.length || e.length > 65535) throw new Error( "invalid startIndexes or endIndexes size"); this._startIndexes = e, this._endIndexes = t, this._collapseStates = new Uint32Array(Math.ceil(e.length / 32)), this._types = i, this._parentsComputed = ! 1 } ensureParentIndices() { if (!this._parentsComputed) { this._parentsComputed = !0; let e = [], t = (t, i) => { let n = e[e.length - 1]; return this.getStartLineNumber(n) <= t && this.getEndLineNumber(n) >= i }; for (let i = 0, n = this._startIndexes.length; i < n; i++) { let n = this._startIndexes[i], o = this._endIndexes[i]; if (n > k || o > k) throw new Error( "startLineNumber or endLineNumber must not exceed 16777215"); for (; e.length > 0 && !t(n, o);) e.pop(); let r = e.length > 0 ? e[e.length - 1] : -1; e.push(i), this._startIndexes[i] = n + ((255 & r) << 24), this._endIndexes[ i] = o + ((65280 & r) << 16) } } } get length() { return this._startIndexes.length } getStartLineNumber(e) { return this._startIndexes[e] & k } getEndLineNumber(e) { return this._endIndexes[e] & k } getType(e) { return this._types ? this._types[e] : void 0 } hasTypes() { return !!this._types } isCollapsed(e) { let t = e / 32 | 0, i = e % 32; return 0 != (this._collapseStates[t] & 1 << i) } setCollapsed(e, t) { let i = e / 32 | 0, n = e % 32, o = this._collapseStates[i]; this._collapseStates[i] = t ? o | 1 << n : o & ~(1 << n) } setCollapsedAllOfType(e, t) { let i = !1; if (this._types) for (let n = 0; n < this._types.length; n++) this._types[n] === e && (this.setCollapsed(n, t), i = !0); return i } toRegion(e) { return new D(this, e) } getParentIndex(e) { this.ensureParentIndices(); let t = ((this._startIndexes[e] & L) >>> 24) + ((this._endIndexes[e] & L) >>> 16); return 65535 === t ? -1 : t } contains(e, t) { return this.getStartLineNumber(e) <= t && this.getEndLineNumber(e) >= t } findIndex(e) { let t = 0, i = this._startIndexes.length; if (0 === i) return -1; for (; t < i;) { let n = Math.floor((t + i) / 2); e < this.getStartLineNumber(n) ? i = n : t = n + 1 } return t - 1 } findRange(e) { let t = this.findIndex(e); if (t >= 0) { if (this.getEndLineNumber(t) >= e) return t; for (t = this.getParentIndex(t); - 1 !== t;) { if (this.contains(t, e)) return t; t = this.getParentIndex(t) } } return -1 } toString() { let e = []; for (let t = 0; t < this.length; t++) e[t] = `[${this.isCollapsed(t)?"+":"-"}] ${this.getStartLineNumber(t)}/${this.getEndLineNumber(t)}`; return e.join(", ") } } class D { constructor(e, t) { this.ranges = e, this.index = t } 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(e) { return e.startLineNumber <= this.startLineNumber && e.endLineNumber >= this.endLineNumber } containsLine(e) { return this.startLineNumber <= e && e <= this.endLineNumber } } class E { constructor(e, t) { this._updateEventEmitter = new x.Q5, this.onDidChange = this._updateEventEmitter .event, this._textModel = e, this._decorationProvider = t, this._regions = new N(new Uint32Array(0), new Uint32Array(0)), this._editorDecorationIds = [], this._isInitialized = !1 } get regions() { return this._regions } get textModel() { return this._textModel } get isInitialized() { return this._isInitialized } toggleCollapseState(e) { if (!e.length) return; e = e.sort(((e, t) => e.regionIndex - t.regionIndex)); const t = {}; this._decorationProvider.changeDecorations((i => { let n = 0, o = -1, r = -1; const s = e => { for (; n < e;) { const e = this._regions.getEndLineNumber(n), t = this._regions.isCollapsed(n); e <= o && i.changeDecorationOptions(this._editorDecorationIds[n], this._decorationProvider.getDecorationOption(t, e <= r)), t && e > r && (r = e), n++ } }; for (let i of e) { let e = i.regionIndex, n = this._editorDecorationIds[e]; if (n && !t[n]) { t[n] = !0, s(e); let i = !this._regions.isCollapsed(e); this._regions.setCollapsed(e, i), o = Math.max(o, this._regions.getEndLineNumber( e)) } } s(this._regions.length) })), this._updateEventEmitter.fire({ model: this, collapseStateChanged: e }) } update(e, t = []) { let i = [], n = -1, o = (o, r) => { const s = e.getStartLineNumber(o), a = e.getEndLineNumber(o); r || (r = e.isCollapsed(o)), r && ((e, i) => { for (let n of t) if (e < n && n <= i) return !0; return !1 })(s, a) && (r = !1), e.setCollapsed(o, r); const l = this._textModel.getLineMaxColumn(s), d = { startLineNumber: s, startColumn: Math.max(l - 1, 1), endLineNumber: s, endColumn: l }; i.push({ range: d, options: this._decorationProvider.getDecorationOption(r, a <= n) }), r && a > n && (n = a) }, r = 0, s = () => { for (; r < this._regions.length;) { let e = this._regions.isCollapsed(r); if (r++, e) return r - 1 } return -1 }, a = 0, l = s(); for (; - 1 !== l && a < e.length;) { let t = this._textModel.getDecorationRange(this._editorDecorationIds[ l]); if (t) { let i = t.startLineNumber; if (t.startColumn === Math.max(t.endColumn - 1, 1) && this._textModel .getLineMaxColumn(i) === t.endColumn) for (; a < e.length;) { let t = e.getStartLineNumber(a); if (!(i >= t)) break; o(a, i === t), a++ } } l = s() } for (; a < e.length;) o(a, !1), a++; this._editorDecorationIds = this._decorationProvider.deltaDecorations( this._editorDecorationIds, i), this._regions = e, this._isInitialized = ! 0, this._updateEventEmitter.fire({ model: this }) } getMemento() { let e = []; for (let t = 0; t < this._regions.length; t++) if (this._regions.isCollapsed(t)) { let i = this._textModel.getDecorationRange(this._editorDecorationIds[ t]); if (i) { let n = i.startLineNumber, o = i.endLineNumber + this._regions.getEndLineNumber(t) - this._regions .getStartLineNumber(t); e.push({ startLineNumber: n, endLineNumber: o }) } } if (e.length > 0) return e } applyMemento(e) { if (!Array.isArray(e)) return; let t = []; for (let i of e) { let e = this.getRegionAtLine(i.startLineNumber); e && !e.isCollapsed && t.push(e) } this.toggleCollapseState(t) } dispose() { this._decorationProvider.deltaDecorations(this._editorDecorationIds, []) } getAllRegionsAtLine(e, t) { let i = []; if (this._regions) { let n = this._regions.findRange(e), o = 1; for (; n >= 0;) { let e = this._regions.toRegion(n); t && !t(e, o) || i.push(e), o++, n = e.parentIndex } } return i } getRegionAtLine(e) { if (this._regions) { let t = this._regions.findRange(e); if (t >= 0) return this._regions.toRegion(t) } return null } getRegionsInside(e, t) { let i = [], n = e ? e.regionIndex + 1 : 0, o = e ? e.endLineNumber : Number.MAX_VALUE; if (t && 2 === t.length) { const e = []; for (let r = n, s = this._regions.length; r < s; r++) { let n = this._regions.toRegion(r); if (!(this._regions.getStartLineNumber(r) < o)) break; for (; e.length > 0 && !n.containedBy(e[e.length - 1]);) e.pop(); e.push(n), t(n, e.length) && i.push(n) } } else for (let e = n, r = this._regions.length; e < r; e++) { let n = this._regions.toRegion(e); if (!(this._regions.getStartLineNumber(e) < o)) break; t && !t(n) || i.push(n) } return i } } function I(e, t, i = Number.MAX_VALUE, n) { let o = []; if (n && n.length > 0) for (let r of n) { let n = e.getRegionAtLine(r); if (n && (n.isCollapsed !== t && o.push(n), i > 1)) { let r = e.getRegionsInside(n, ((e, n) => e.isCollapsed !== t && n < i)); o.push(...r) } } else { let n = e.getRegionsInside(null, ((e, n) => e.isCollapsed !== t && n < i)); o.push(...n) } e.toggleCollapseState(o) } function T(e, t, i, n) { let o = []; for (let r of n) { let n = e.getAllRegionsAtLine(r, ((e, n) => e.isCollapsed !== t && n <= i)); o.push(...n) } e.toggleCollapseState(o) } function M(e, t, i) { let n = []; for (let t of i) n.push(e.getAllRegionsAtLine(t, void 0)[0]); let o = e.getRegionsInside(null, (e => n.every((t => !t.containedBy(e) && !e.containedBy(t))) && e.isCollapsed !== t)); e.toggleCollapseState(o) } function A(e, t, i) { let n = e.textModel, o = e.regions, r = []; for (let e = o.length - 1; e >= 0; e--) if (i !== o.isCollapsed(e)) { let i = o.getStartLineNumber(e); t.test(n.getLineContent(i)) && r.push(o.toRegion(e)) } e.toggleCollapseState(r) } function R(e, t, i) { let n = e.regions, o = []; for (let e = n.length - 1; e >= 0; e--) i !== n.isCollapsed(e) && t === n.getType(e) && o.push(n.toRegion(e)); e.toggleCollapseState(o) } var O = i(6281), P = i(3046), F = i(9554), B = i(7781); const W = (0, F.q5)("folding-expanded", P.lA.chevronDown, (0, _.N)( "foldingExpandedIcon", "Icon for expanded ranges in the editor glyph margin.")), z = (0, F.q5)("folding-collapsed", P.lA.chevronRight, (0, _.N)( "foldingCollapsedIcon", "Icon for collapsed ranges in the editor glyph margin.")); class V { constructor(e) { this.editor = e, this.autoHideFoldingControls = !0, this.showFoldingHighlights = ! 0 } getDecorationOption(e, t) { return t ? V.HIDDEN_RANGE_DECORATION : e ? this.showFoldingHighlights ? V.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION : V.COLLAPSED_VISUAL_DECORATION : this.autoHideFoldingControls ? V.EXPANDED_AUTO_HIDE_VISUAL_DECORATION : V.EXPANDED_VISUAL_DECORATION } deltaDecorations(e, t) { return this.editor.deltaDecorations(e, t) } changeDecorations(e) { return this.editor.changeDecorations(e) } } V.COLLAPSED_VISUAL_DECORATION = O.qx.register({ description: "folding-collapsed-visual-decoration", stickiness: 1, afterContentClassName: "inline-folded", isWholeLine: !0, firstLineDecorationClassName: B.kS.asClassName(z) }), V.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION = O.qx.register({ description: "folding-collapsed-highlighted-visual-decoration", stickiness: 1, afterContentClassName: "inline-folded", className: "folded-background", isWholeLine: !0, firstLineDecorationClassName: B.kS.asClassName(z) }), V.EXPANDED_AUTO_HIDE_VISUAL_DECORATION = O.qx.register({ description: "folding-expanded-auto-hide-visual-decoration", stickiness: 1, isWholeLine: !0, firstLineDecorationClassName: B.kS.asClassName(W) }), V.EXPANDED_VISUAL_DECORATION = O.qx.register({ description: "folding-expanded-visual-decoration", stickiness: 1, isWholeLine: !0, firstLineDecorationClassName: "alwaysShowFoldIcons " + B.kS.asClassName( W) }), V.HIDDEN_RANGE_DECORATION = O.qx.register({ description: "folding-hidden-range-decoration", stickiness: 1 }); var H = i(9102), U = i(4314), j = i(9488); class K { constructor(e) { this._updateEventEmitter = new x.Q5, this._foldingModel = e, this._foldingModelListener = e.onDidChange((e => this.updateHiddenRanges())), this._hiddenRanges = [], e.regions.length && this.updateHiddenRanges() } get onDidChange() { return this._updateEventEmitter.event } get hiddenRanges() { return this._hiddenRanges } updateHiddenRanges() { let e = !1, t = [], i = 0, n = 0, o = Number.MAX_VALUE, r = -1, s = this._foldingModel.regions; for (; i < s.length; i++) { if (!s.isCollapsed(i)) continue; let a = s.getStartLineNumber(i) + 1, l = s.getEndLineNumber(i); o <= a && l <= r || (!e && n < this._hiddenRanges.length && this._hiddenRanges[ n].startLineNumber === a && this._hiddenRanges[n].endLineNumber === l ? (t.push(this._hiddenRanges[n]), n++) : (e = !0, t.push(new U.e( a, 1, l, 1))), o = a, r = l) }(e || n < this._hiddenRanges.length) && this.applyHiddenRanges(t) } applyMemento(e) { if (!Array.isArray(e) || 0 === e.length) return !1; let t = []; for (let i of e) { if (!i.startLineNumber || !i.endLineNumber) return !1; t.push(new U.e(i.startLineNumber + 1, 1, i.endLineNumber, 1)) } return this.applyHiddenRanges(t), !0 } getMemento() { return this._hiddenRanges.map((e => ({ startLineNumber: e.startLineNumber - 1, endLineNumber: e.endLineNumber }))) } applyHiddenRanges(e) { this._hiddenRanges = e, this._updateEventEmitter.fire(e) } hasRanges() { return this._hiddenRanges.length > 0 } isHidden(e) { return null !== $(this._hiddenRanges, e) } adjustSelections(e) { let t = !1, i = this._foldingModel.textModel, n = null, o = e => (n && function(e, t) { return e >= t.startLineNumber && e <= t.endLineNumber }(e, n) || (n = $(this._hiddenRanges, e)), n ? n.startLineNumber - 1 : null); for (let n = 0, r = e.length; n < r; n++) { let r = e[n], s = o(r.startLineNumber); s && (r = r.setStartPosition(s, i.getLineMaxColumn(s)), t = !0); let a = o(r.endLineNumber); a && (r = r.setEndPosition(a, i.getLineMaxColumn(a)), t = !0), e[n] = r } return t } dispose() { this.hiddenRanges.length > 0 && (this._hiddenRanges = [], this._updateEventEmitter .fire(this._hiddenRanges)), this._foldingModelListener && (this._foldingModelListener .dispose(), this._foldingModelListener = null) } } function $(e, t) { let i = (0, j.lG)(e, (e => t < e.startLineNumber)) - 1; return i >= 0 && e[i].endLineNumber >= t ? e[i] : null } var q = i(3831); class Z { constructor(e) { this.editorModel = e, this.id = "indent" } dispose() {} compute(e) { let t = q.zu.getFoldingRules(this.editorModel.getLanguageIdentifier().id), i = t && !!t.offSide, n = t && t.markers; return Promise.resolve(function(e, t, i, n = 5e3) { const o = e.getOptions().tabSize; let r, s = new G(n); i && (r = new RegExp(`(${i.start.source})|(?:${i.end.source})`)); let a = [], l = e.getLineCount() + 1; a.push({ indent: -1, endAbove: l, line: l }); for (let i = e.getLineCount(); i > 0; i--) { let n, l = e.getLineContent(i), d = O.yO.computeIndentLevel(l, o), c = a[a.length - 1]; if (-1 !== d) { if (r && (n = l.match(r))) { if (!n[1]) { a.push({ indent: -2, endAbove: i, line: i }); continue } { let e = a.length - 1; for (; e > 0 && -2 !== a[e].indent;) e--; if (e > 0) { a.length = e + 1, c = a[e], s.insertFirst(i, c.line, d), c.line = i, c.indent = d, c.endAbove = i; continue } } } if (c.indent > d) { do { a.pop(), c = a[a.length - 1] } while (c.indent > d); let e = c.endAbove - 1; e - i >= 1 && s.insertFirst(i, e, d) } c.indent === d ? c.endAbove = i : a.push({ indent: d, endAbove: i, line: i }) } else t && (c.endAbove = i) } return s.toIndentRanges(e) }(this.editorModel, i, n)) } } class G { constructor(e) { this._startIndexes = [], this._endIndexes = [], this._indentOccurrences = [], this._length = 0, this._foldingRangesLimit = e } insertFirst(e, t, i) { if (e > k || t > k) return; let n = this._length; this._startIndexes[n] = e, this._endIndexes[n] = t, this._length++, i < 1e3 && (this._indentOccurrences[i] = (this._indentOccurrences[i] || 0) + 1) } toIndentRanges(e) { if (this._length <= this._foldingRangesLimit) { let e = new Uint32Array(this._length), t = new Uint32Array(this._length); for (let i = this._length - 1, n = 0; i >= 0; i--, n++) e[n] = this._startIndexes[ i], t[n] = this._endIndexes[i]; return new N(e, t) } { let t = 0, i = this._indentOccurrences.length; for (let e = 0; e < this._indentOccurrences.length; e++) { let n = this._indentOccurrences[e]; if (n) { if (n + t > this._foldingRangesLimit) { i = e; break } t += n } } const n = e.getOptions().tabSize; let o = new Uint32Array(this._foldingRangesLimit), r = new Uint32Array(this._foldingRangesLimit); for (let s = this._length - 1, a = 0; s >= 0; s--) { let l = this._startIndexes[s], d = e.getLineContent(l), c = O.yO.computeIndentLevel(d, n); (c < i || c === i && t++ < this._foldingRangesLimit) && (o[a] = l, r[ a] = this._endIndexes[s], a++) } return new N(o, r) } } } var Y = i(4101), Q = i(7301); const X = {}, J = "syntax"; class ee { constructor(e, t, i, n = 5e3) { this.editorModel = e, this.providers = t, this.limit = n, this.id = J; for (const e of t) "function" == typeof e.onDidChange && (this.disposables || (this.disposables = new y.SL), this.disposables.add(e.onDidChange(i)) ) } compute(e) { return function(e, t, i) { let n = null, o = e.map(((e, o) => Promise.resolve(e.provideFoldingRanges(t, X, i)) .then((e => { if (!i.isCancellationRequested && Array.isArray(e)) { Array.isArray(n) || (n = []); let i = t.getLineCount(); for (let t of e) t.start > 0 && t.end > t.start && t.end <= i && n.push({ start: t.start, end: t.end, rank: o, kind: t.kind }) } }), Q.Cp))); return Promise.all(o).then((e => n)) }(this.providers, this.editorModel, e).then((e => e ? ie(e, this.limit) : null)) } dispose() { var e; null === (e = this.disposables) || void 0 === e || e.dispose() } } class te { constructor(e) { this._startIndexes = [], this._endIndexes = [], this._nestingLevels = [], this._nestingLevelCounts = [], this._types = [], this._length = 0, this._foldingRangesLimit = e } add(e, t, i, n) { if (e > k || t > k) return; let o = this._length; this._startIndexes[o] = e, this._endIndexes[o] = t, this._nestingLevels[ o] = n, this._types[o] = i, this._length++, n < 30 && (this._nestingLevelCounts[ n] = (this._nestingLevelCounts[n] || 0) + 1) } toIndentRanges() { if (this._length <= this._foldingRangesLimit) { let e = new Uint32Array(this._length), t = new Uint32Array(this._length); for (let i = 0; i < this._length; i++) e[i] = this._startIndexes[i], t[i] = this._endIndexes[i]; return new N(e, t, this._types) } { let e = 0, t = this._nestingLevelCounts.length; for (let i = 0; i < this._nestingLevelCounts.length; i++) { let n = this._nestingLevelCounts[i]; if (n) { if (n + e > this._foldingRangesLimit) { t = i; break } e += n } } let i = new Uint32Array(this._foldingRangesLimit), n = new Uint32Array(this._foldingRangesLimit), o = []; for (let r = 0, s = 0; r < this._length; r++) { let a = this._nestingLevels[r]; (a < t || a === t && e++ < this._foldingRangesLimit) && (i[s] = this ._startIndexes[r], n[s] = this._endIndexes[r], o[s] = this._types[r], s++) } return new N(i, n, o) } } } function ie(e, t) { let i, n = e.sort(((e, t) => { let i = e.start - t.start; return 0 === i && (i = e.rank - t.rank), i })), o = new te(t), r = []; for (let e of n) if (i) { if (e.start > i.start) if (e.end <= i.end) r.push(i), i = e, o.add(e.start, e.end, e.kind && e.kind.value, r.length); else { if (e.start > i.end) { do { i = r.pop() } while (i && e.start > i.end); i && r.push(i), i = e } o.add(e.start, e.end, e.kind && e.kind.value, r.length) } } else i = e, o.add(e.start, e.end, e.kind && e.kind.value, r.length); return o.toIndentRanges() } const ne = "init"; class oe { constructor(e, t, i, n) { if (this.editorModel = e, this.id = ne, t.length) { let o = t => ({ range: { startLineNumber: t.startLineNumber, startColumn: 0, endLineNumber: t.endLineNumber, endColumn: e.getLineLength(t.endLineNumber) }, options: { description: "folding-initializing-range-provider", stickiness: 1 } }); this.decorationIds = e.deltaDecorations([], t.map(o)), this.timeout = setTimeout(i, n) } } dispose() { this.decorationIds && (this.editorModel.deltaDecorations(this.decorationIds, []), this.decorationIds = void 0), "number" == typeof this.timeout && ( clearTimeout(this.timeout), this.timeout = void 0) } compute(e) { let t = []; if (this.decorationIds) for (let e of this.decorationIds) { let i = this.editorModel.getDecorationRange(e); i && t.push({ start: i.startLineNumber, end: i.endLineNumber, rank: 1 }) } return Promise.resolve(ie(t, Number.MAX_VALUE)) } } var re = i(8819), se = i(3910), ae = i(9925); const le = new re.uy("foldingEnabled", !1); let de = class e extends y.JT { constructor(e, t) { super(), this.contextKeyService = t, this.localToDispose = this._register( new y.SL), this.editor = e; const i = this.editor.getOptions(); this._isEnabled = i.get(36), this._useFoldingProviders = "indentation" !== i.get(37), this._unfoldOnClickAfterEndOfLine = i.get( 40), this._restoringViewState = !1, this._currentModelHasFoldedImports = ! 1, this._foldingImportsByDefault = i.get(39), this.foldingModel = null, this.hiddenRangeModel = null, this.rangeProvider = null, this.foldingRegionPromise = null, this.foldingStateMemento = null, this.foldingModelPromise = null, this.updateScheduler = null, this.cursorChangedScheduler = null, this.mouseDownInfo = null, this.foldingDecorationProvider = new V(e), this.foldingDecorationProvider.autoHideFoldingControls = "mouseover" === i.get(99), this.foldingDecorationProvider.showFoldingHighlights = i.get(38), this.foldingEnabled = le.bindTo(this.contextKeyService), this.foldingEnabled.set(this._isEnabled), this._register(this.editor .onDidChangeModel((() => this.onModelChanged()))), this._register( this.editor.onDidChangeConfiguration((e => { if (e.hasChanged(36) && (this._isEnabled = this.editor.getOptions() .get(36), this.foldingEnabled.set(this._isEnabled), this.onModelChanged() ), e.hasChanged(99) || e.hasChanged(38)) { const e = this.editor.getOptions(); this.foldingDecorationProvider.autoHideFoldingControls = "mouseover" === e.get(99), this.foldingDecorationProvider.showFoldingHighlights = e.get(38), this.onModelContentChanged() } e.hasChanged(37) && (this._useFoldingProviders = "indentation" !== this.editor.getOptions().get(37), this.onFoldingStrategyChanged() ), e.hasChanged(40) && (this._unfoldOnClickAfterEndOfLine = this.editor.getOptions().get(40)), e.hasChanged(39) && (this._foldingImportsByDefault = this.editor.getOptions().get(39)) }))), this.onModelChanged() } static get(t) { return t.getContribution(e.ID) } saveViewState() { let e = this.editor.getModel(); if (!e || !this._isEnabled || e.isTooLargeForTokenization()) return {}; if (this.foldingModel) { let t = this.foldingModel.isInitialized ? this.foldingModel.getMemento() : this.hiddenRangeModel.getMemento(), i = this.rangeProvider ? this.rangeProvider.id : void 0; return { collapsedRegions: t, lineCount: e.getLineCount(), provider: i, foldedImports: this._currentModelHasFoldedImports } } } restoreViewState(e) { let t = this.editor.getModel(); if (!t || !this._isEnabled || t.isTooLargeForTokenization() || !this.hiddenRangeModel) return; if (!e || e.lineCount !== t.getLineCount()) return; if (this._currentModelHasFoldedImports = !!e.foldedImports, !e.collapsedRegions) return; e.provider !== J && e.provider !== ne || (this.foldingStateMemento = e); const i = e.collapsedRegions; if (this.hiddenRangeModel.applyMemento(i)) { const e = this.getFoldingModel(); e && e.then((e => { if (e) { this._restoringViewState = !0; try { e.applyMemento(i) } finally { this._restoringViewState = !1 } } })).then(void 0, Q.dL) } } onModelChanged() { this.localToDispose.clear(); let e = this.editor.getModel(); this._isEnabled && e && !e.isTooLargeForTokenization() && (this._currentModelHasFoldedImports = ! 1, this.foldingModel = new E(e, this.foldingDecorationProvider), this.localToDispose.add(this.foldingModel), this.hiddenRangeModel = new K(this.foldingModel), this.localToDispose.add(this.hiddenRangeModel), this.localToDispose.add(this.hiddenRangeModel.onDidChange((e => this.onHiddenRangesChanges(e)))), this.updateScheduler = new w.vp( 200), this.cursorChangedScheduler = new w.pY((() => this.revealCursor()), 200), this.localToDispose.add(this.cursorChangedScheduler), this.localToDispose .add(Y.aC.onDidChange((() => this.onFoldingStrategyChanged()))), this.localToDispose.add(this.editor.onDidChangeModelLanguageConfiguration( (() => this.onFoldingStrategyChanged()))), this.localToDispose.add( this.editor.onDidChangeModelContent((() => this.onModelContentChanged())) ), this.localToDispose.add(this.editor.onDidChangeCursorPosition((() => this.onCursorPositionChanged()))), this.localToDispose.add(this.editor .onMouseDown((e => this.onEditorMouseDown(e)))), this.localToDispose .add(this.editor.onMouseUp((e => this.onEditorMouseUp(e)))), this.localToDispose .add({ dispose: () => { this.foldingRegionPromise && (this.foldingRegionPromise.cancel(), this.foldingRegionPromise = null), this.updateScheduler && this.updateScheduler.cancel(), this.updateScheduler = null, this.foldingModel = null, this.foldingModelPromise = null, this.hiddenRangeModel = null, this.cursorChangedScheduler = null, this.foldingStateMemento = null, this.rangeProvider && this.rangeProvider.dispose(), this.rangeProvider = null } }), this.onModelContentChanged()) } onFoldingStrategyChanged() { this.rangeProvider && this.rangeProvider.dispose(), this.rangeProvider = null, this.onModelContentChanged() } getRangeProvider(e) { if (this.rangeProvider) return this.rangeProvider; if (this.rangeProvider = new Z(e), this._useFoldingProviders && this.foldingModel) { let t = Y.aC.ordered(this.foldingModel.textModel); if (0 === t.length && this.foldingStateMemento && this.foldingStateMemento .collapsedRegions) return this.rangeProvider = new oe(e, this.foldingStateMemento .collapsedRegions, (() => { this.foldingStateMemento = null, this.onFoldingStrategyChanged() }), 3e4); t.length > 0 && (this.rangeProvider = new ee(e, t, (() => this.onModelContentChanged()))) } return this.foldingStateMemento = null, this.rangeProvider } getFoldingModel() { return this.foldingModelPromise } onModelContentChanged() { this.updateScheduler && (this.foldingRegionPromise && (this.foldingRegionPromise .cancel(), this.foldingRegionPromise = null), this.foldingModelPromise = this.updateScheduler.trigger((() => { const e = this.foldingModel; if (!e) return null; const t = this.getRangeProvider(e.textModel); let i = this.foldingRegionPromise = (0, w.PG)((e => t.compute(e))); return i.then((t => { if (t && i === this.foldingRegionPromise) { let i; if (this._foldingImportsByDefault && !this._currentModelHasFoldedImports) { const e = t.setCollapsedAllOfType(Y.AD.Imports.value, !0); e && (i = ae.ZF.capture(this.editor), this._currentModelHasFoldedImports = e) } let n = this.editor.getSelections(), o = n ? n.map((e => e.startLineNumber)) : []; e.update(t, o), i && i.restore(this.editor) } return e })) })).then(void 0, (e => ((0, Q.dL)(e), null)))) } onHiddenRangesChanges(e) { if (this.hiddenRangeModel && e.length && !this._restoringViewState) { let e = this.editor.getSelections(); e && this.hiddenRangeModel.adjustSelections(e) && this.editor.setSelections( e) } this.editor.setHiddenAreas(e) } onCursorPositionChanged() { this.hiddenRangeModel && this.hiddenRangeModel.hasRanges() && this.cursorChangedScheduler .schedule() } revealCursor() { const e = this.getFoldingModel(); e && e.then((e => { if (e) { let t = this.editor.getSelections(); if (t && t.length > 0) { let i = []; for (let n of t) { let t = n.selectionStartLineNumber; this.hiddenRangeModel && this.hiddenRangeModel.isHidden(t) && i.push(...e.getAllRegionsAtLine(t, (e => e.isCollapsed && t > e.startLineNumber))) } i.length && (e.toggleCollapseState(i), this.reveal(t[0].getPosition())) } } })).then(void 0, Q.dL) } onEditorMouseDown(e) { if (this.mouseDownInfo = null, !this.hiddenRangeModel || !e.target || !e.target.range) return; if (!e.event.leftButton && !e.event.middleButton) return; const t = e.target.range; let i = !1; switch (e.target.type) { case 4: const n = e.target.detail, o = e.target.element.offsetLeft; if (n.offsetX - o < 5) return; i = !0; break; case 7: if (this._unfoldOnClickAfterEndOfLine && this.hiddenRangeModel.hasRanges() && !e.target.detail.isAfterLines) break; return; case 6: if (this.hiddenRangeModel.hasRanges()) { let e = this.editor.getModel(); if (e && t.startColumn === e.getLineMaxColumn(t.startLineNumber)) break } return; default: return } this.mouseDownInfo = { lineNumber: t.startLineNumber, iconClicked: i } } onEditorMouseUp(e) { const t = this.getFoldingModel(); if (!t || !this.mouseDownInfo || !e.target) return; let i = this.mouseDownInfo.lineNumber, n = this.mouseDownInfo.iconClicked, o = e.target.range; if (o && o.startLineNumber === i) { if (n) { if (4 !== e.target.type) return } else { let e = this.editor.getModel(); if (!e || o.startColumn !== e.getLineMaxColumn(i)) return } t.then((t => { if (t) { let o = t.getRegionAtLine(i); if (o && o.startLineNumber === i) { let r = o.isCollapsed; if (n || r) { let n = []; if (e.event.altKey) { let e = e => !e.containedBy(o) && !o.containedBy(e), i = t.getRegionsInside(null, e); for (const e of i) e.isCollapsed && n.push(e); 0 === n.length && (n = i) } else { let i = e.event.middleButton || e.event.shiftKey; if (i) for (const e of t.getRegionsInside(o)) e.isCollapsed === r && n.push(e); !r && i && 0 !== n.length || n.push(o) } t.toggleCollapseState(n), this.reveal({ lineNumber: i, column: 1 }) } } } })).then(void 0, Q.dL) } } reveal(e) { this.editor.revealPositionInCenterIfOutsideViewport(e, 0) } }; var ce, he; de.ID = "editor.contrib.folding", de = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([(ce = 1, he = re.i6, function(e, t) { he(e, t, ce) })], de); class ue extends S.R6 { runEditorCommand(e, t, i) { let n = de.get(t); if (!n) return; let o = n.getFoldingModel(); return o ? (this.reportTelemetry(e, t), o.then((e => { if (e) { this.invoke(n, e, t, i); const o = t.getSelection(); o && n.reveal(o.getStartPosition()) } }))) : void 0 } getSelectedLines(e) { let t = e.getSelections(); return t ? t.map((e => e.startLineNumber)) : [] } getLineNumbers(e, t) { return e && e.selectionLines ? e.selectionLines.map((e => e + 1)) : this.getSelectedLines(t) } run(e, t) {} } function ge(e) { if (!b.o8(e)) { if (!b.Kn(e)) return !1; const t = e; if (!b.o8(t.levels) && !b.hj(t.levels)) return !1; if (!b.o8(t.direction) && !b.HD(t.direction)) return !1; if (!(b.o8(t.selectionLines) || b.kJ(t.selectionLines) && t.selectionLines .every(b.hj))) return !1 } return !0 } class pe extends ue { getFoldingLevel() { return parseInt(this.id.substr(pe.ID_PREFIX.length)) } invoke(e, t, i) { ! function(e, t, i, n) { let o = e.getRegionsInside(null, ((e, i) => i === t && true !== e.isCollapsed && !n.some((t => e.containsLine(t))))); e.toggleCollapseState(o) }(t, this.getFoldingLevel(), 0, this.getSelectedLines(i)) } } pe.ID_PREFIX = "editor.foldLevel", pe.ID = e => pe.ID_PREFIX + e, (0, S._K) (de.ID, de), (0, S.Qr)(class extends ue { constructor() { super({ id: "editor.unfold", label: _.N("unfoldAction.label", "Unfold"), alias: "Unfold", precondition: le, kbOpts: { kbExpr: H.u.editorTextFocus, primary: 3161, mac: { primary: 2649 }, weight: 100 }, description: { description: "Unfold the content in the editor", args: [{ name: "Unfold editor argument", description: "Property-value pairs that can be passed through this argument:\n\t\t\t\t\t\t* 'levels': Number of levels to unfold. If not set, defaults to 1.\n\t\t\t\t\t\t* 'direction': If 'up', unfold given number of levels up otherwise unfolds down.\n\t\t\t\t\t\t* 'selectionLines': 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.\n\t\t\t\t\t\t", constraint: ge, schema: { type: "object", properties: { levels: { type: "number", default: 1 }, direction: { type: "string", enum: ["up", "down"], default: "down" }, selectionLines: { type: "array", items: { type: "number" } } } } }] } }) } invoke(e, t, i, n) { let o = n && n.levels || 1, r = this.getLineNumbers(n, i); n && "up" === n.direction ? T(t, !1, o, r) : I(t, !1, o, r) } }), (0, S.Qr)(class extends ue { constructor() { super({ id: "editor.unfoldRecursively", label: _.N("unFoldRecursivelyAction.label", "Unfold Recursively"), alias: "Unfold Recursively", precondition: le, kbOpts: { kbExpr: H.u.editorTextFocus, primary: (0, C.gx)(2089, 2137), weight: 100 } }) } invoke(e, t, i, n) { I(t, !1, Number.MAX_VALUE, this.getSelectedLines(i)) } }), (0, S.Qr)(class extends ue { constructor() { super({ id: "editor.fold", label: _.N("foldAction.label", "Fold"), alias: "Fold", precondition: le, kbOpts: { kbExpr: H.u.editorTextFocus, primary: 3159, mac: { primary: 2647 }, weight: 100 }, description: { description: "Fold the content in the editor", args: [{ name: "Fold editor argument", description: "Property-value pairs that can be passed through this argument:\n\t\t\t\t\t\t\t* 'levels': Number of levels to fold.\n\t\t\t\t\t\t\t* 'direction': If 'up', folds given number of levels up otherwise folds down.\n\t\t\t\t\t\t\t* 'selectionLines': 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.\n\t\t\t\t\t\t\tIf no levels or direction is set, folds the region at the locations or if already collapsed, the first uncollapsed parent instead.\n\t\t\t\t\t\t", constraint: ge, schema: { type: "object", properties: { levels: { type: "number" }, direction: { type: "string", enum: ["up", "down"] }, selectionLines: { type: "array", items: { type: "number" } } } } }] } }) } invoke(e, t, i, n) { let o = this.getLineNumbers(n, i); const r = n && n.levels, s = n && n.direction; "number" != typeof r && "string" != typeof s ? function(e, t, i) { let n = []; for (let t of i) { let i = e.getAllRegionsAtLine(t, (e => true !== e.isCollapsed)); i.length > 0 && n.push(i[0]) } e.toggleCollapseState(n) }(t, 0, o) : "up" === s ? T(t, !0, r || 1, o) : I(t, !0, r || 1, o) } }), (0, S.Qr)(class extends ue { constructor() { super({ id: "editor.foldRecursively", label: _.N("foldRecursivelyAction.label", "Fold Recursively"), alias: "Fold Recursively", precondition: le, kbOpts: { kbExpr: H.u.editorTextFocus, primary: (0, C.gx)(2089, 2135), weight: 100 } }) } invoke(e, t, i) { let n = this.getSelectedLines(i); I(t, !0, Number.MAX_VALUE, n) } }), (0, S.Qr)(class extends ue { constructor() { super({ id: "editor.foldAll", label: _.N("foldAllAction.label", "Fold All"), alias: "Fold All", precondition: le, kbOpts: { kbExpr: H.u.editorTextFocus, primary: (0, C.gx)(2089, 2069), weight: 100 } }) } invoke(e, t, i) { I(t, !0) } }), (0, S.Qr)(class extends ue { constructor() { super({ id: "editor.unfoldAll", label: _.N("unfoldAllAction.label", "Unfold All"), alias: "Unfold All", precondition: le, kbOpts: { kbExpr: H.u.editorTextFocus, primary: (0, C.gx)(2089, 2088), weight: 100 } }) } invoke(e, t, i) { I(t, !1) } }), (0, S.Qr)(class extends ue { constructor() { super({ id: "editor.foldAllBlockComments", label: _.N("foldAllBlockComments.label", "Fold All Block Comments"), alias: "Fold All Block Comments", precondition: le, kbOpts: { kbExpr: H.u.editorTextFocus, primary: (0, C.gx)(2089, 2133), weight: 100 } }) } invoke(e, t, i) { if (t.regions.hasTypes()) R(t, Y.AD.Comment.value, !0); else { const e = i.getModel(); if (!e) return; let n = q.zu.getComments(e.getLanguageIdentifier().id); n && n.blockCommentStartToken && A(t, new RegExp("^\\s*" + (0, v.ec) (n.blockCommentStartToken)), !0) } } }), (0, S.Qr)(class extends ue { constructor() { super({ id: "editor.foldAllMarkerRegions", label: _.N("foldAllMarkerRegions.label", "Fold All Regions"), alias: "Fold All Regions", precondition: le, kbOpts: { kbExpr: H.u.editorTextFocus, primary: (0, C.gx)(2089, 2077), weight: 100 } }) } invoke(e, t, i) { if (t.regions.hasTypes()) R(t, Y.AD.Region.value, !0); else { const e = i.getModel(); if (!e) return; let n = q.zu.getFoldingRules(e.getLanguageIdentifier().id); n && n.markers && n.markers.start && A(t, new RegExp(n.markers.start), ! 0) } } }), (0, S.Qr)(class extends ue { constructor() { super({ id: "editor.unfoldAllMarkerRegions", label: _.N("unfoldAllMarkerRegions.label", "Unfold All Regions"), alias: "Unfold All Regions", precondition: le, kbOpts: { kbExpr: H.u.editorTextFocus, primary: (0, C.gx)(2089, 2078), weight: 100 } }) } invoke(e, t, i) { if (t.regions.hasTypes()) R(t, Y.AD.Region.value, !1); else { const e = i.getModel(); if (!e) return; let n = q.zu.getFoldingRules(e.getLanguageIdentifier().id); n && n.markers && n.markers.start && A(t, new RegExp(n.markers.start), ! 1) } } }), (0, S.Qr)(class extends ue { constructor() { super({ id: "editor.foldAllExcept", label: _.N("foldAllExcept.label", "Fold All Regions Except Selected"), alias: "Fold All Regions Except Selected", precondition: le, kbOpts: { kbExpr: H.u.editorTextFocus, primary: (0, C.gx)(2089, 2131), weight: 100 } }) } invoke(e, t, i) { M(t, !0, this.getSelectedLines(i)) } }), (0, S.Qr)(class extends ue { constructor() { super({ id: "editor.unfoldAllExcept", label: _.N("unfoldAllExcept.label", "Unfold All Regions Except Selected"), alias: "Unfold All Regions Except Selected", precondition: le, kbOpts: { kbExpr: H.u.editorTextFocus, primary: (0, C.gx)(2089, 2129), weight: 100 } }) } invoke(e, t, i) { M(t, !1, this.getSelectedLines(i)) } }), (0, S.Qr)(class extends ue { constructor() { super({ id: "editor.toggleFold", label: _.N("toggleFoldAction.label", "Toggle Fold"), alias: "Toggle Fold", precondition: le, kbOpts: { kbExpr: H.u.editorTextFocus, primary: (0, C.gx)(2089, 2090), weight: 100 } }) } invoke(e, t, i) { ! function(e, t, i) { let n = []; for (let t of i) { let i = e.getRegionAtLine(t); if (i) { i.isCollapsed; n.push(i), 0 } } e.toggleCollapseState(n) }(t, 0, this.getSelectedLines(i)) } }), (0, S.Qr)(class extends ue { constructor() { super({ id: "editor.gotoParentFold", label: _.N("gotoParentFold.label", "Go to Parent Fold"), alias: "Go to Parent Fold", precondition: le, kbOpts: { kbExpr: H.u.editorTextFocus, weight: 100 } }) } invoke(e, t, i) { let n = this.getSelectedLines(i); if (n.length > 0) { let e = function(e, t) { let i = null, n = t.getRegionAtLine(e); if (null !== n && (i = n.startLineNumber, e === i)) { let e = n.parentIndex; i = -1 !== e ? t.regions.getStartLineNumber(e) : null } return i }(n[0], t); null !== e && i.setSelection({ startLineNumber: e, startColumn: 1, endLineNumber: e, endColumn: 1 }) } } }), (0, S.Qr)(class extends ue { constructor() { super({ id: "editor.gotoPreviousFold", label: _.N("gotoPreviousFold.label", "Go to Previous Fold"), alias: "Go to Previous Fold", precondition: le, kbOpts: { kbExpr: H.u.editorTextFocus, weight: 100 } }) } invoke(e, t, i) { let n = this.getSelectedLines(i); if (n.length > 0) { let e = function(e, t) { let i = t.getRegionAtLine(e); if (null !== i) { if (e !== i.startLineNumber) return i.startLineNumber; { let e = i.parentIndex, n = 0; for (-1 !== e && (n = t.regions.getStartLineNumber(i.parentIndex)); null !== i;) { if (!(i.regionIndex > 0)) return null; if (i = t.regions.toRegion(i.regionIndex - 1), i.startLineNumber <= n) return null; if (i.parentIndex === e) return i.startLineNumber } } } else if (t.regions.length > 0) for (i = t.regions.toRegion(t.regions.length - 1); null !== i;) { if (-1 === i.parentIndex && i.startLineNumber < e) return i.startLineNumber; i = i.regionIndex > 0 ? t.regions.toRegion(i.regionIndex - 1) : null } return null }(n[0], t); null !== e && i.setSelection({ startLineNumber: e, startColumn: 1, endLineNumber: e, endColumn: 1 }) } } }), (0, S.Qr)(class extends ue { constructor() { super({ id: "editor.gotoNextFold", label: _.N("gotoNextFold.label", "Go to Next Fold"), alias: "Go to Next Fold", precondition: le, kbOpts: { kbExpr: H.u.editorTextFocus, weight: 100 } }) } invoke(e, t, i) { let n = this.getSelectedLines(i); if (n.length > 0) { let e = function(e, t) { let i = t.getRegionAtLine(e); if (null !== i) { let e = i.parentIndex, n = 0; if (-1 !== e) n = t.regions.getEndLineNumber(i.parentIndex); else { if (0 === t.regions.length) return null; n = t.regions.getEndLineNumber(t.regions.length - 1) } for (; null !== i;) { if (!(i.regionIndex < t.regions.length)) return null; if (i = t.regions.toRegion(i.regionIndex + 1), i.startLineNumber >= n) return null; if (i.parentIndex === e) return i.startLineNumber } } else if (t.regions.length > 0) for (i = t.regions.toRegion(0); null !== i;) { if (-1 === i.parentIndex && i.startLineNumber > e) return i.startLineNumber; i = i.regionIndex < t.regions.length ? t.regions.toRegion(i.regionIndex + 1) : null } return null }(n[0], t); null !== e && i.setSelection({ startLineNumber: e, startColumn: 1, endLineNumber: e, endColumn: 1 }) } } }); for (let e = 1; e <= 7; e++)(0, S.QG)(new pe({ id: pe.ID(e), label: _.N("foldLevelAction.label", "Fold Level {0}", e), alias: `Fold Level ${e}`, precondition: le, kbOpts: { kbExpr: H.u.editorTextFocus, primary: (0, C.gx)(2089, 2048 | 21 + e), weight: 100 } })); const me = (0, se.P6)("editor.foldBackground", { light: (0, se.Zn)(se.hE, .3), dark: (0, se.Zn)(se.hE, .3), hc: null }, _.N("foldBackgroundBackground", "Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations." ), !0), fe = (0, se.P6)("editorGutter.foldingControlForeground", { dark: se.XZ, light: se.XZ, hc: se.XZ }, _.N("editorGutter.foldingControlForeground", "Color of the folding control in the editor gutter.")); (0, B.Ic)(((e, t) => { const i = e.getColor(me); i && t.addRule( `.monaco-editor .folded-background { background-color: ${i}; }`); const n = e.getColor(fe); n && t.addRule( `\n\t\t.monaco-editor .cldr${B.kS.asCSSSelector(W)},\n\t\t.monaco-editor .cldr${B.kS.asCSSSelector(z)} {\n\t\t\tcolor: ${n} !important;\n\t\t}\n\t\t` ) })) }, 3111: (e, t, i) => { "use strict"; i.r(t); var n = i(3580), o = i(6830), r = i(2334); class s extends o.R6 { constructor() { super({ id: "editor.action.fontZoomIn", label: n.N("EditorFontZoomIn.label", "Editor Font Zoom In"), alias: "Editor Font Zoom In", precondition: void 0 }) } run(e, t) { r.C.setZoomLevel(r.C.getZoomLevel() + 1) } } class a extends o.R6 { constructor() { super({ id: "editor.action.fontZoomOut", label: n.N("EditorFontZoomOut.label", "Editor Font Zoom Out"), alias: "Editor Font Zoom Out", precondition: void 0 }) } run(e, t) { r.C.setZoomLevel(r.C.getZoomLevel() - 1) } } class l extends o.R6 { constructor() { super({ id: "editor.action.fontZoomReset", label: n.N("EditorFontZoomReset.label", "Editor Font Zoom Reset"), alias: "Editor Font Zoom Reset", precondition: void 0 }) } run(e, t) { r.C.setZoomLevel(0) } }(0, o.Qr)(s), (0, o.Qr)(a), (0, o.Qr)(l) }, 3606: (e, t, i) => { "use strict"; i.d(t, { xC: () => N, Zg: () => k, x$: () => D, Qq: () => I, Qs: () => M }); var n = i(6346), o = i(9488), r = i(1050), s = i(7301), a = i(666), l = i(9925), d = i(5520), c = i(187), h = i(4314), u = i(3860), g = i(4101), p = i(469), m = i(1200), f = i(9939), _ = i(3580); class b { constructor(e) { this.value = e, this._lower = e.toLowerCase() } static toKey(e) { return "string" == typeof e ? e.toLowerCase() : e._lower } } var v = i(2065), w = i(1741), C = i(4565), y = i(8401), S = i(3725), x = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; function k(e) { if (!(e = e.filter((e => e.range))).length) return; let { range: t } = e[0]; for (let i = 1; i < e.length; i++) t = h.e.plusRange(t, e[i].range); const { startLineNumber: i, endLineNumber: o } = t; i === o ? 1 === e.length ? (0, n.Z9)(_.N("hint11", "Made 1 formatting edit on line {0}", i)) : (0, n.Z9)(_.N("hintn1", "Made {0} formatting edits on line {1}", e.length, i)) : 1 === e.length ? (0, n.Z9)(_.N("hint1n", "Made 1 formatting edit between lines {0} and {1}", i, o)) : (0, n.Z9) (_.N("hintnn", "Made {0} formatting edits between lines {1} and {2}", e .length, i, o)) } function L(e) { const t = [], i = new Set, n = g.Az.ordered(e); for (const e of n) t.push(e), e.extensionId && i.add(b.toKey(e.extensionId)); const o = g.vN.ordered(e); for (const e of o) { if (e.extensionId) { if (i.has(b.toKey(e.extensionId))) continue; i.add(b.toKey(e.extensionId)) } t.push({ displayName: e.displayName, extensionId: e.extensionId, provideDocumentFormattingEdits: (t, i, n) => e.provideDocumentRangeFormattingEdits( t, t.getFullModelRange(), i, n) }) } return t } class N { static setFormatterSelector(e) { return { dispose: N._selectors.unshift(e) } } static select(e, t, i) { return x(this, void 0, void 0, (function*() { if (0 === e.length) return; const n = S.$.first(N._selectors); return n ? yield n(e, t, i) : void 0 })) } } function D(e, t, i, n, o, r) { return x(this, void 0, void 0, (function*() { const s = e.get(v.TG), a = (0, d.CL)(t) ? t.getModel() : t, l = g.vN.ordered(a), c = yield N.select(l, a, n); c && (o.report(c), yield s.invokeFunction(E, c, t, i, r)) })) } function E(e, t, i, n, r) { return x(this, void 0, void 0, (function*() { const s = e.get(p.p); let a, c; (0, d.CL)(i) ? (a = i.getModel(), c = new l.Dl(i, 5, void 0, r)) : ( a = i, c = new l.YQ(i, r)); let g = [], m = 0; for (let e of(0, o._2)(n).sort(h.e.compareRangesUsingStarts)) m > 0 && h.e.areIntersectingOrTouching(g[m - 1], e) ? g[m - 1] = h.e.fromPositions( g[m - 1].getStartPosition(), e.getEndPosition()) : m = g.push(e); const _ = e => x(this, void 0, void 0, (function*() { return (yield t.provideDocumentRangeFormattingEdits(a, e, a.getFormattingOptions(), c.token)) || [] })), b = (e, t) => { if (!e.length || !t.length) return !1; const i = e.reduce(((e, t) => h.e.plusRange(e, t.range)), e[0].range); if (!t.some((e => h.e.intersectRanges(i, e.range)))) return !1; for (let i of e) for (let e of t) if (h.e.intersectRanges(i.range, e.range)) return !0; return !1 }, v = [], w = []; try { for (let e of g) { if (c.token.isCancellationRequested) return !0; w.push(yield _(e)) } for (let e = 0; e < g.length; ++e) for (let t = e + 1; t < g.length; ++t) { if (c.token.isCancellationRequested) return !0; if (b(w[e], w[t])) { const i = h.e.plusRange(g[e], g[t]), n = yield _(i); g.splice(t, 1), g.splice(e, 1), g.push(i), w.splice(t, 1), w.splice( e, 1), w.push(n), e = 0, t = 0 } } for (let e of w) { if (c.token.isCancellationRequested) return !0; const t = yield s.computeMoreMinimalEdits(a.uri, e); t && v.push(...t) } } finally { c.dispose() } if (0 === v.length) return !1; if ((0, d.CL)(i)) f.V.execute(i, v, !0), k(v), i.revealPositionInCenterIfOutsideViewport( i.getPosition(), 1); else { const [{ range: e }] = v, t = new u.Y(e.startLineNumber, e.startColumn, e.endLineNumber, e.endColumn); a.pushEditOperations([t], v.map((e => ({ text: e.text, range: h.e.lift(e.range), forceMoveMarkers: !0 }))), (e => { for (const { range: i } of e) if (h.e.areIntersectingOrTouching(i, t)) return [new u.Y(i.startLineNumber, i.startColumn, i.endLineNumber, i.endColumn)]; return null })) } return !0 })) } function I(e, t, i, n, o) { return x(this, void 0, void 0, (function*() { const r = e.get(v.TG), s = (0, d.CL)(t) ? t.getModel() : t, a = L(s), l = yield N.select(a, s, i); l && (n.report(l), yield r.invokeFunction(T, l, t, i, o)) })) } function T(e, t, i, n, o) { return x(this, void 0, void 0, (function*() { const r = e.get(p.p); let s, a, c; (0, d.CL)(i) ? (s = i.getModel(), a = new l.Dl(i, 5, void 0, o)) : ( s = i, a = new l.YQ(i, o)); try { const e = yield t.provideDocumentFormattingEdits(s, s.getFormattingOptions(), a.token); if (c = yield r.computeMoreMinimalEdits(s.uri, e), a.token.isCancellationRequested) return !0 } finally { a.dispose() } if (!c || 0 === c.length) return !1; if ((0, d.CL)(i)) f.V.execute(i, c, 2 !== n), 2 !== n && (k(c), i.revealPositionInCenterIfOutsideViewport( i.getPosition(), 1)); else { const [{ range: e }] = c, t = new u.Y(e.startLineNumber, e.startColumn, e.endLineNumber, e.endColumn); s.pushEditOperations([t], c.map((e => ({ text: e.text, range: h.e.lift(e.range), forceMoveMarkers: !0 }))), (e => { for (const { range: i } of e) if (h.e.areIntersectingOrTouching(i, t)) return [new u.Y(i.startLineNumber, i.startColumn, i.endLineNumber, i.endColumn)]; return null })) } return !0 })) } function M(e, t, i, n, o) { const a = g.ln.ordered(t); return 0 === a.length || a[0].autoFormatTriggerCharacters.indexOf(n) < 0 ? Promise.resolve(void 0) : Promise.resolve(a[0].provideOnTypeFormattingEdits( t, i, n, o, r.T.None)).catch(s.Cp).then((i => e.computeMoreMinimalEdits( t.uri, i))) } N._selectors = new w.S, C.P.registerCommand("_executeFormatRangeProvider", ( function(e, ...t) { const [i, n, l] = t; (0, y.p_)(a.o.isUri(i)), (0, y.p_)(h.e.isIRange(n)); const d = e.get(m.q).getModel(i); if (!d) throw (0, s.b1)("resource"); return function(e, t, i, n, r) { return x(this, void 0, void 0, (function*() { const a = g.vN.ordered(t); for (const l of a) { let a = yield Promise.resolve(l.provideDocumentRangeFormattingEdits( t, i, n, r)).catch(s.Cp); if ((0, o.Of)(a)) return yield e.computeMoreMinimalEdits(t.uri, a) } })) }(e.get(p.p), d, h.e.lift(n), l, r.T.None) })), C.P.registerCommand("_executeFormatDocumentProvider", (function(e, ...t) { const [i, n] = t; (0, y.p_)(a.o.isUri(i)); const l = e.get(m.q).getModel(i); if (!l) throw (0, s.b1)("resource"); return function(e, t, i, n) { return x(this, void 0, void 0, (function*() { const r = L(t); for (const a of r) { let r = yield Promise.resolve(a.provideDocumentFormattingEdits( t, i, n)).catch(s.Cp); if ((0, o.Of)(r)) return yield e.computeMoreMinimalEdits(t.uri, r) } })) }(e.get(p.p), l, n, r.T.None) })), C.P.registerCommand("_executeFormatOnTypeProvider", (function(e, .. .t) { const [i, n, o, r] = t; (0, y.p_)(a.o.isUri(i)), (0, y.p_)(c.L.isIPosition(n)), (0, y.p_)( "string" == typeof o); const l = e.get(m.q).getModel(i); if (!l) throw (0, s.b1)("resource"); return M(e.get(p.p), l, c.L.lift(n), o, r) })) }, 4818: (e, t, i) => { "use strict"; i.r(t); var n = i(9488), o = i(1050), r = i(2258), s = i(5976), a = i(6830), l = i(1640), d = i(4906), c = i(4314), h = i(9102), u = i(4101), g = i(469), p = i(3606), m = i(9939), f = i(3580), _ = i(4565), b = i(8819), v = i(2065), w = i(7301), C = i(535), y = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }, S = function(e, t) { return function(i, n) { t(i, n, e) } }, x = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; let k = class { constructor(e, t) { this._workerService = t, this._callOnDispose = new s.SL, this._callOnModel = new s.SL, this._editor = e, this._callOnDispose.add(e.onDidChangeConfiguration( (() => this._update()))), this._callOnDispose.add(e.onDidChangeModel( (() => this._update()))), this._callOnDispose.add(e.onDidChangeModelLanguage( (() => this._update()))), this._callOnDispose.add(u.ln.onDidChange( this._update, this)) } dispose() { this._callOnDispose.dispose(), this._callOnModel.dispose() } _update() { if (this._callOnModel.clear(), !this._editor.getOption(47)) return; if (!this._editor.hasModel()) return; const e = this._editor.getModel(), [t] = u.ln.ordered(e); if (!t || !t.autoFormatTriggerCharacters) return; let i = new d.q; for (let e of t.autoFormatTriggerCharacters) i.add(e.charCodeAt(0)); this._callOnModel.add(this._editor.onDidType((e => { let t = e.charCodeAt(e.length - 1); i.has(t) && this._trigger(String.fromCharCode(t)) }))) } _trigger(e) { if (!this._editor.hasModel()) return; if (this._editor.getSelections().length > 1) return; const t = this._editor.getModel(), i = this._editor.getPosition(); let o = !1; const r = this._editor.onDidChangeModelContent((e => { if (e.isFlush) return o = !0, void r.dispose(); for (let t = 0, n = e.changes.length; t < n; t++) if (e.changes[t].range.endLineNumber <= i.lineNumber) return o = ! 0, void r.dispose() })); (0, p.Qs)(this._workerService, t, i, e, t.getFormattingOptions()).then ((e => { r.dispose(), o || (0, n.Of)(e) && (m.V.execute(this._editor, e, ! 0), (0, p.Zg)(e)) }), (e => { throw r.dispose(), e })) } }; k.ID = "editor.contrib.autoFormat", k = y([S(1, g.p)], k); let L = class { constructor(e, t) { this.editor = e, this._instantiationService = t, this._callOnDispose = new s.SL, this._callOnModel = new s.SL, this._callOnDispose.add(e.onDidChangeConfiguration( (() => this._update()))), this._callOnDispose.add(e.onDidChangeModel( (() => this._update()))), this._callOnDispose.add(e.onDidChangeModelLanguage( (() => this._update()))), this._callOnDispose.add(u.vN.onDidChange( this._update, this)) } dispose() { this._callOnDispose.dispose(), this._callOnModel.dispose() } _update() { this._callOnModel.clear(), this.editor.getOption(46) && this.editor.hasModel() && u.vN.has(this.editor.getModel()) && this._callOnModel.add(this.editor .onDidPaste((({ range: e }) => this._trigger(e)))) } _trigger(e) { this.editor.hasModel() && (this.editor.getSelections().length > 1 || this._instantiationService.invokeFunction(p.x$, this.editor, e, 2, C.E.None, o.T.None).catch(w.dL)) } }; L.ID = "editor.contrib.formatOnPaste", L = y([S(1, v.TG)], L); class N extends a.R6 { constructor() { super({ id: "editor.action.formatDocument", label: f.N("formatDocument.label", "Format Document"), alias: "Format Document", precondition: b.Ao.and(h.u.notInCompositeEditor, h.u.writable, h.u .hasDocumentFormattingProvider), kbOpts: { kbExpr: h.u.editorTextFocus, primary: 1572, linux: { primary: 3111 }, weight: 100 }, contextMenuOpts: { group: "1_modification", order: 1.3 } }) } run(e, t) { return x(this, void 0, void 0, (function*() { if (t.hasModel()) { const i = e.get(v.TG), n = e.get(C.e); yield n.showWhile(i.invokeFunction(p.Qq, t, 1, C.E.None, o.T.None), 250) } })) } } class D extends a.R6 { constructor() { super({ id: "editor.action.formatSelection", label: f.N("formatSelection.label", "Format Selection"), alias: "Format Selection", precondition: b.Ao.and(h.u.writable, h.u.hasDocumentSelectionFormattingProvider), kbOpts: { kbExpr: h.u.editorTextFocus, primary: (0, r.gx)(2089, 2084), weight: 100 }, contextMenuOpts: { when: h.u.hasNonEmptySelection, group: "1_modification", order: 1.31 } }) } run(e, t) { return x(this, void 0, void 0, (function*() { if (!t.hasModel()) return; const i = e.get(v.TG), n = t.getModel(), r = t.getSelections().map((e => e.isEmpty() ? new c.e(e.startLineNumber, 1, e.startLineNumber, n.getLineMaxColumn(e.startLineNumber)) : e)), s = e.get(C.e); yield s.showWhile(i.invokeFunction(p.x$, t, r, 1, C.E.None, o.T.None), 250) })) } }(0, a._K)(k.ID, k), (0, a._K)(L.ID, L), (0, a.Qr)(N), (0, a.Qr)(D), _.P .registerCommand("editor.action.format", (e => x(void 0, void 0, void 0, ( function*() { const t = e.get(l.$).getFocusedCodeEditor(); if (!t || !t.hasModel()) return; const i = e.get(_.H); t.getSelection().isEmpty() ? yield i.executeCommand( "editor.action.formatDocument") : yield i.executeCommand( "editor.action.formatSelection") })))) }, 9939: (e, t, i) => { "use strict"; i.d(t, { V: () => r }); var n = i(9386), o = i(4314); class r { static _handleEolEdits(e, t) { let i, n = []; for (let e of t) "number" == typeof e.eol && (i = e.eol), e.range && "string" == typeof e.text && n.push(e); return "number" == typeof i && e.hasModel() && e.getModel().pushEOL(i), n } static _isFullModelReplaceEdit(e, t) { if (!e.hasModel()) return !1; const i = e.getModel(), n = i.validateRange(t.range); return i.getFullModelRange().equalsRange(n) } static execute(e, t, i) { i && e.pushUndoStop(); const s = r._handleEolEdits(e, t); 1 === s.length && r._isFullModelReplaceEdit(e, s[0]) ? e.executeEdits( "formatEditsCommand", s.map((e => n.h.replace(o.e.lift(e.range), e.text))) ) : e.executeEdits("formatEditsCommand", s.map((e => n.h.replaceMove( o.e.lift(e.range), e.text)))), i && e.pushUndoStop() } } }, 5091: (e, t, i) => { "use strict"; i.r(t), i.d(t, { MarkerController: () => fe, NextMarkerAction: () => be }); var n = i(3580), o = i(5976), r = i(8819), s = i(187), a = i(4314), l = i(6830), d = i(9102), c = i(3379), h = i.n(c), u = i(7795), g = i.n(u), p = i(569), m = i.n(p), f = i(3565), _ = i.n(f), b = i(9216), v = i.n(b), w = i(4589), C = i.n(w), y = i(8994), S = {}; S.styleTagTransform = C(), S.setAttributes = _(), S.insert = m().bind( null, "head"), S.domAPI = g(), S.insertStyleElement = v(), h()(y.Z, S), y.Z && y.Z.locals && y.Z.locals; var x, k = i(5321), L = i(8674), N = i(3910), D = i(7781), E = i(1264), I = i(6781), T = i(8843), M = i(9488), A = i(4669), R = i(1884), O = i(5935), P = i(3046), F = i(4603); ! function(e) { e.className = function(e) { switch (e) { case F.Z.Ignore: return "severity-ignore " + P.lA.info.classNames; case F.Z.Info: return P.lA.info.classNames; case F.Z.Warning: return P.lA.warning.classNames; case F.Z.Error: return P.lA.error.classNames; default: return "" } } }(x || (x = {})), (0, D.Ic)(((e, t) => { const i = e.getColor(N.Jp); if (i) { const e = P.lA.error.cssSelector; t.addRule( `\n\t\t\t.monaco-editor .zone-widget ${e},\n\t\t\t.markers-panel .marker-icon${e},\n\t\t\t.text-search-provider-messages .providerMessage ${e},\n\t\t\t.extensions-viewlet > .extensions ${e} {\n\t\t\t\tcolor: ${i};\n\t\t\t}\n\t\t` ) } const n = e.getColor(N.BO); if (n) { const e = P.lA.warning.cssSelector; t.addRule( `\n\t\t\t.monaco-editor .zone-widget ${e},\n\t\t\t.markers-panel .marker-icon${e},\n\t\t\t.extensions-viewlet > .extensions ${e},\n\t\t\t.extension-editor ${e},\n\t\t\t.text-search-provider-messages .providerMessage ${e},\n\t\t\t.preferences-editor ${e} {\n\t\t\t\tcolor: ${n};\n\t\t\t}\n\t\t` ) } const o = e.getColor(N.OL); if (o) { const e = P.lA.info.cssSelector; t.addRule( `\n\t\t\t.monaco-editor .zone-widget ${e},\n\t\t\t.markers-panel .marker-icon${e},\n\t\t\t.extensions-viewlet > .extensions ${e},\n\t\t\t.text-search-provider-messages .providerMessage ${e},\n\t\t\t.extension-editor ${e} {\n\t\t\t\tcolor: ${o};\n\t\t\t}\n\t\t` ) } })); var B = i(988), W = i(4144), z = i(1133), V = i(2065), H = i(7295), U = i(4349), j = function(e, t) { return function(i, n) { t(i, n, e) } }; class K { constructor(e, t, i, n, r) { this._openerService = n, this._labelService = r, this._lines = 0, this ._longestLineLength = 0, this._relatedDiagnostics = new WeakMap, this ._disposables = new o.SL, this._editor = t; const s = document.createElement("div"); s.className = "descriptioncontainer", this._messageBlock = document.createElement( "div"), this._messageBlock.classList.add("message"), this._messageBlock .setAttribute("aria-live", "assertive"), this._messageBlock.setAttribute( "role", "alert"), s.appendChild(this._messageBlock), this._relatedBlock = document.createElement("div"), s.appendChild(this._relatedBlock), this._disposables.add(k.mu(this._relatedBlock, "click", (e => { e.preventDefault(); const t = this._relatedDiagnostics.get(e.target); t && i(t) }))), this._scrollable = new I.NB(s, { horizontal: 1, vertical: 1, useShadows: !1, horizontalScrollbarSize: 3, verticalScrollbarSize: 3 }), e.appendChild(this._scrollable.getDomNode()), this._disposables.add( this._scrollable.onScroll((e => { s.style.left = `-${e.scrollLeft}px`, s.style.top = `-${e.scrollTop}px` }))), this._disposables.add(this._scrollable) } dispose() { (0, o.B9)(this._disposables) } update(e) { const { source: t, message: i, relatedInformation: n, code: o } = e; let r = ((null == t ? void 0 : t.length) || 0) + "()".length; o && (r += "string" == typeof o ? o.length : o.value.length); const s = (0, H.uq)(i); this._lines = s.length, this._longestLineLength = 0; for (const e of s) this._longestLineLength = Math.max(e.length + r, this._longestLineLength); k.PO(this._messageBlock), this._messageBlock.setAttribute("aria-label", this.getAriaLabel(e)), this._editor.applyFontInfo(this._messageBlock); let a = this._messageBlock; for (const e of s) a = document.createElement("div"), a.innerText = e, "" === e && (a.style.height = this._messageBlock.style.lineHeight), this._messageBlock.appendChild(a); if (t || o) { const e = document.createElement("span"); if (e.classList.add("details"), a.appendChild(e), t) { const i = document.createElement("span"); i.innerText = t, i.classList.add("source"), e.appendChild(i) } if (o) if ("string" == typeof o) { const t = document.createElement("span"); t.innerText = `(${o})`, t.classList.add("code"), e.appendChild(t) } else this._codeLink = k.$("a.code-link"), this._codeLink.setAttribute( "href", `${o.target.toString()}`), this._codeLink.onclick = e => { this._openerService.open(o.target, { allowCommands: !0 }), e.preventDefault(), e.stopPropagation() }, k.R3(this._codeLink, k.$("span")).innerText = o.value, e.appendChild( this._codeLink) } if (k.PO(this._relatedBlock), this._editor.applyFontInfo(this._relatedBlock), ( 0, M.Of)(n)) { const e = this._relatedBlock.appendChild(document.createElement("div")); e.style.paddingTop = `${Math.floor(.66*this._editor.getOption(58))}px`, this._lines += 1; for (const t of n) { let i = document.createElement("div"), n = document.createElement("a"); n.classList.add("filename"), n.innerText = `${(0,T.p)(t.resource)}(${t.startLineNumber}, ${t.startColumn}): `, n.title = this._labelService.getUriLabel(t.resource), this._relatedDiagnostics .set(n, t); let o = document.createElement("span"); o.innerText = t.message, i.appendChild(n), i.appendChild(o), this._lines += 1, e.appendChild(i) } } const l = this._editor.getOption(42), d = Math.ceil(l.typicalFullwidthCharacterWidth * this._longestLineLength * .75), c = l.lineHeight * this._lines; this._scrollable.setScrollDimensions({ scrollWidth: d, scrollHeight: c }) } layout(e, t) { this._scrollable.getDomNode().style.height = `${e}px`, this._scrollable .getDomNode().style.width = `${t}px`, this._scrollable.setScrollDimensions({ width: t, height: e }) } getHeightInLines() { return Math.min(17, this._lines) } getAriaLabel(e) { let t = ""; switch (e.severity) { case L.ZL.Error: t = n.N("Error", "Error"); break; case L.ZL.Warning: t = n.N("Warning", "Warning"); break; case L.ZL.Info: t = n.N("Info", "Info"); break; case L.ZL.Hint: t = n.N("Hint", "Hint") } let i = n.N("marker aria", "{0} at {1}. ", t, e.startLineNumber + ":" + e.startColumn); const o = this._editor.getModel(); return o && e.startLineNumber <= o.getLineCount() && e.startLineNumber >= 1 && (i = `${o.getLineContent(e.startLineNumber)}, ${i}`), i } } let $ = class e extends R.vk { constructor(e, t, i, n, r, s, a) { super(e, { showArrow: !0, showFrame: !0, isAccessible: !0, frameWidth: 1 }, r), this._themeService = t, this._openerService = i, this._menuService = n, this._contextKeyService = s, this._labelService = a, this._callOnDispose = new o.SL, this._onDidSelectRelatedInformation = new A.Q5, this.onDidSelectRelatedInformation = this._onDidSelectRelatedInformation.event, this._severity = L.ZL.Warning, this._backgroundColor = E.Il.white, this._applyTheme(t.getColorTheme()), this._callOnDispose.add(t.onDidColorThemeChange(this._applyTheme.bind( this))), this.create() } _applyTheme(e) { this._backgroundColor = e.getColor(ie); let t = Y, i = Q; this._severity === L.ZL.Warning ? (t = X, i = J) : this._severity === L.ZL.Info && (t = ee, i = te); const n = e.getColor(t), o = e.getColor(i); this.style({ arrowColor: n, frameColor: n, headerBackgroundColor: o, primaryHeadingColor: e.getColor(R.IH), secondaryHeadingColor: e.getColor(R.R7) }) } _applyStyles() { this._parentContainer && (this._parentContainer.style.backgroundColor = this._backgroundColor ? this._backgroundColor.toString() : ""), super._applyStyles() } dispose() { this._callOnDispose.dispose(), super.dispose() } _fillHead(t) { super._fillHead(t), this._disposables.add(this._actionbarWidget.actionRunner .onBeforeRun((e => this.editor.focus()))); const i = [], n = this._menuService.createMenu(e.TitleMenu, this._contextKeyService); (0, z.vr)(n, void 0, i), this._actionbarWidget.push(i, { label: !1, icon: !0, index: 0 }), n.dispose() } _fillTitleIcon(e) { this._icon = k.R3(e, k.$("")) } _fillBody(e) { this._parentContainer = e, e.classList.add("marker-widget"), this._parentContainer .tabIndex = 0, this._parentContainer.setAttribute("role", "tooltip"), this._container = document.createElement("div"), e.appendChild(this._container), this._message = new K(this._container, this.editor, (e => this._onDidSelectRelatedInformation .fire(e)), this._openerService, this._labelService), this._disposables .add(this._message) } show() { throw new Error("call showAtMarker") } showAtMarker(e, t, i) { this._container.classList.remove("stale"), this._message.update(e), this._severity = e.severity, this._applyTheme(this._themeService.getColorTheme()); let o = a.e.lift(e); const r = this.editor.getPosition(); let s = r && o.containsPosition(r) ? r : o.getStartPosition(); super.show(s, this.computeRequiredHeight()); const l = this.editor.getModel(); if (l) { const e = i > 1 ? n.N("problems", "{0} of {1} problems", t, i) : n.N( "change", "{0} of {1} problem", t, i); this.setTitle((0, O.EZ)(l.uri), e) } this._icon.className = `codicon ${x.className(L.ZL.toSeverity(this._severity))}`, this.editor .revealPositionNearTop(s, 0), this.editor.focus() } updateMarker(e) { this._container.classList.remove("stale"), this._message.update(e) } showStale() { this._container.classList.add("stale"), this._relayout() } _doLayoutBody(e, t) { super._doLayoutBody(e, t), this._heightInPixel = e, this._message.layout( e, t), this._container.style.height = `${e}px` } _onWidth(e) { this._message.layout(this._heightInPixel, e) } _relayout() { super._relayout(this.computeRequiredHeight()) } computeRequiredHeight() { return 3 + this._message.getHeightInLines() } }; $.TitleMenu = new W.eH("gotoErrorTitleMenu"), $ = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([j(1, D.XE), j(2, B.v4), j(3, W.co), j(4, V.TG), j(5, r.i6), j(6, U.e)], $); let q = (0, N.kw)(N.lX, N.b6), Z = (0, N.kw)(N.uo, N.pW), G = (0, N.kw)(N.c6, N.T8); const Y = (0, N.P6)("editorMarkerNavigationError.background", { dark: q, light: q, hc: N.lR }, n.N("editorMarkerNavigationError", "Editor marker navigation widget error color.")), Q = (0, N.P6)("editorMarkerNavigationError.headerBackground", { dark: (0, N.Zn)(Y, .1), light: (0, N.Zn)(Y, .1), hc: null }, n.N("editorMarkerNavigationErrorHeaderBackground", "Editor marker navigation widget error heading background.")), X = (0, N.P6)("editorMarkerNavigationWarning.background", { dark: Z, light: Z, hc: N.lR }, n.N("editorMarkerNavigationWarning", "Editor marker navigation widget warning color.")), J = (0, N.P6)("editorMarkerNavigationWarning.headerBackground", { dark: (0, N.Zn)(X, .1), light: (0, N.Zn)(X, .1), hc: "#0C141F" }, n.N("editorMarkerNavigationWarningBackground", "Editor marker navigation widget warning heading background.")), ee = (0, N.P6)("editorMarkerNavigationInfo.background", { dark: G, light: G, hc: N.lR }, n.N("editorMarkerNavigationInfo", "Editor marker navigation widget info color.")), te = (0, N.P6)("editorMarkerNavigationInfo.headerBackground", { dark: (0, N.Zn)(ee, .1), light: (0, N.Zn)(ee, .1), hc: null }, n.N("editorMarkerNavigationInfoHeaderBackground", "Editor marker navigation widget info heading background.")), ie = (0, N.P6)("editorMarkerNavigation.background", { dark: N.cv, light: N.cv, hc: N.cv }, n.N("editorMarkerNavigationBackground", "Editor marker navigation widget background.")); (0, D.Ic)(((e, t) => { const i = e.getColor(N.ur); i && t.addRule( `.monaco-editor .marker-widget a.code-link span { color: ${i}; }`); const n = e.getColor(N.sg); n && t.addRule( `.monaco-editor .marker-widget a.code-link span:hover { color: ${n}; }` ) })); var ne = i(1640), oe = i(666), re = i(5026), se = i(1741), ae = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }, le = function(e, t) { return function(i, n) { t(i, n, e) } }; class de { constructor(e, t, i) { this.marker = e, this.index = t, this.total = i } } let ce = class e { constructor(t, i) { this._markerService = i, this._onDidChange = new A.Q5, this.onDidChange = this._onDidChange.event, this._dispoables = new o.SL, this._markers = [], this._nextIdx = -1, oe.o.isUri(t) ? this._resourceFilter = e => e.toString() === t.toString() : t && (this._resourceFilter = t); const n = () => { this._markers = this._markerService.read({ resource: oe.o.isUri(t) ? t : void 0, severities: L.ZL.Error | L.ZL.Warning | L.ZL.Info }), "function" == typeof t && (this._markers = this._markers.filter( (e => this._resourceFilter(e.resource)))), this._markers.sort(e._compareMarker) }; n(), this._dispoables.add(i.onMarkerChanged((e => { this._resourceFilter && !e.some((e => this._resourceFilter(e))) || (n(), this._nextIdx = -1, this._onDidChange.fire()) }))) } dispose() { this._dispoables.dispose(), this._onDidChange.dispose() } matches(e) { return !this._resourceFilter && !e || !(!this._resourceFilter || !e) && this._resourceFilter(e) } get selected() { const e = this._markers[this._nextIdx]; return e && new de(e, this._nextIdx + 1, this._markers.length) } _initIdx(e, t, i) { let n = !1, o = this._markers.findIndex((t => t.resource.toString() === e.uri.toString())); o < 0 && (o = (0, M.ry)(this._markers, { resource: e.uri }, ((e, t) => (0, H.qu)(e.resource.toString(), t.resource.toString()))), o < 0 && (o = ~o)); for (let i = o; i < this._markers.length; i++) { let o = a.e.lift(this._markers[i]); if (o.isEmpty()) { const t = e.getWordAtPosition(o.getStartPosition()); t && (o = new a.e(o.startLineNumber, t.startColumn, o.startLineNumber, t.endColumn)) } if (t && (o.containsPosition(t) || t.isBeforeOrEqual(o.getStartPosition()))) { this._nextIdx = i, n = !0; break } if (this._markers[i].resource.toString() !== e.uri.toString()) break } n || (this._nextIdx = i ? 0 : this._markers.length - 1), this._nextIdx < 0 && (this._nextIdx = this._markers.length - 1) } resetIndex() { this._nextIdx = -1 } move(e, t, i) { if (0 === this._markers.length) return !1; let n = this._nextIdx; return -1 === this._nextIdx ? this._initIdx(t, i, e) : e ? this._nextIdx = (this._nextIdx + 1) % this._markers.length : e || (this._nextIdx = ( this._nextIdx - 1 + this._markers.length) % this._markers.length), n !== this._nextIdx } find(e, t) { let i = this._markers.findIndex((t => t.resource.toString() === e.toString())); if (!(i < 0)) for (; i < this._markers.length; i++) if (a.e.containsPosition(this._markers[i], t)) return new de(this._markers[ i], i + 1, this._markers.length) } static _compareMarker(e, t) { let i = (0, H.qu)(e.resource.toString(), t.resource.toString()); return 0 === i && (i = L.ZL.compare(e.severity, t.severity)), 0 === i && (i = a.e.compareRangesUsingStarts(e, t)), i } }; ce = ae([le(1, L.lT)], ce); const he = (0, V.yh)("IMarkerNavigationService"); let ue = class { constructor(e) { this._markerService = e, this._provider = new se.S } getMarkerList(e) { for (let t of this._provider) { const i = t.getMarkerList(e); if (i) return i } return new ce(e, this._markerService) } }; ue = ae([le(0, L.lT)], ue), (0, re.z)(he, ue, !0); var ge = i(9554), pe = function(e, t) { return function(i, n) { t(i, n, e) } }, me = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; let fe = class e { constructor(e, t, i, n, r) { this._markerNavigationService = t, this._contextKeyService = i, this._editorService = n, this._instantiationService = r, this._sessionDispoables = new o.SL, this._editor = e, this._widgetVisible = we.bindTo(this._contextKeyService) } static get(t) { return t.getContribution(e.ID) } dispose() { this._cleanUp(), this._sessionDispoables.dispose() } _cleanUp() { this._widgetVisible.reset(), this._sessionDispoables.clear(), this._widget = void 0, this._model = void 0 } _getOrCreateModel(e) { if (this._model && this._model.matches(e)) return this._model; let t = !1; return this._model && (t = !0, this._cleanUp()), this._model = this._markerNavigationService .getMarkerList(e), t && this._model.move(!0, this._editor.getModel(), this._editor.getPosition()), this._widget = this._instantiationService .createInstance($, 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( (e => { var t, i, n; (null === (t = this._model) || void 0 === t ? void 0 : t.selected) && a.e.containsPosition(null === (i = this._model) || void 0 === i ? void 0 : i.selected.marker, e.position) || null === (n = this._model) || void 0 === n || n.resetIndex() }))), this._sessionDispoables.add(this._model.onDidChange((() => { if (!this._widget || !this._widget.position || !this._model) return; const e = this._model.find(this._editor.getModel().uri, this._widget .position); e ? this._widget.updateMarker(e.marker) : this._widget.showStale() }))), this._sessionDispoables.add(this._widget.onDidSelectRelatedInformation( (e => { this._editorService.openCodeEditor({ resource: e.resource, options: { pinned: !0, revealIfOpened: !0, selection: a.e.lift(e).collapseToStart() } }, this._editor), this.close(!1) }))), this._sessionDispoables.add(this._editor.onDidChangeModel((() => this._cleanUp()))), this._model } close(e = !0) { this._cleanUp(), e && this._editor.focus() } showAtMarker(e) { if (this._editor.hasModel()) { const t = this._getOrCreateModel(this._editor.getModel().uri); t.resetIndex(), t.move(!0, this._editor.getModel(), new s.L(e.startLineNumber, e.startColumn)), t.selected && this._widget.showAtMarker(t.selected .marker, t.selected.index, t.selected.total) } } nagivate(t, i) { return me(this, void 0, void 0, (function*() { if (this._editor.hasModel()) { const n = this._getOrCreateModel(i ? void 0 : this._editor.getModel() .uri); if (n.move(t, this._editor.getModel(), this._editor.getPosition()), ! n.selected) return; if (n.selected.marker.resource.toString() !== this._editor.getModel() .uri.toString()) { this._cleanUp(); const o = yield this._editorService.openCodeEditor({ resource: n.selected.marker.resource, options: { pinned: !1, revealIfOpened: !0, selectionRevealType: 2, selection: n.selected.marker } }, this._editor); o && (e.get(o).close(), e.get(o).nagivate(t, i)) } else this._widget.showAtMarker(n.selected.marker, n.selected.index, n.selected.total) } })) } }; fe.ID = "editor.contrib.markerController", fe = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([pe(1, he), pe(2, r.i6), pe(3, ne.$), pe(4, V.TG)], fe); class _e extends l.R6 { constructor(e, t, i) { super(i), this._next = e, this._multiFile = t } run(e, t) { return me(this, void 0, void 0, (function*() { t.hasModel() && fe.get(t).nagivate(this._next, this._multiFile) })) } } class be extends _e { constructor() { super(!0, !1, { id: be.ID, label: be.LABEL, alias: "Go to Next Problem (Error, Warning, Info)", precondition: void 0, kbOpts: { kbExpr: d.u.focus, primary: 578, weight: 100 }, menuOpts: { menuId: $.TitleMenu, title: be.LABEL, icon: (0, ge.q5)("marker-navigation-next", P.lA.arrowDown, n.N( "nextMarkerIcon", "Icon for goto next marker.")), group: "navigation", order: 1 } }) } } be.ID = "editor.action.marker.next", be.LABEL = n.N( "markerAction.next.label", "Go to Next Problem (Error, Warning, Info)"); class ve extends _e { constructor() { super(!1, !1, { id: ve.ID, label: ve.LABEL, alias: "Go to Previous Problem (Error, Warning, Info)", precondition: void 0, kbOpts: { kbExpr: d.u.focus, primary: 1602, weight: 100 }, menuOpts: { menuId: $.TitleMenu, title: be.LABEL, icon: (0, ge.q5)("marker-navigation-previous", P.lA.arrowUp, n.N( "previousMarkerIcon", "Icon for goto previous marker.")), group: "navigation", order: 2 } }) } } ve.ID = "editor.action.marker.prev", ve.LABEL = n.N( "markerAction.previous.label", "Go to Previous Problem (Error, Warning, Info)"), (0, l._K)(fe.ID, fe), ( 0, l.Qr)(be), (0, l.Qr)(ve), (0, l.Qr)(class extends _e { constructor() { super(!0, !0, { id: "editor.action.marker.nextInFiles", label: n.N("markerAction.nextInFiles.label", "Go to Next Problem in Files (Error, Warning, Info)"), alias: "Go to Next Problem in Files (Error, Warning, Info)", precondition: void 0, kbOpts: { kbExpr: d.u.focus, primary: 66, weight: 100 }, menuOpts: { menuId: W.eH.MenubarGoMenu, title: n.N({ key: "miGotoNextProblem", comment: ["&& denotes a mnemonic"] }, "Next &&Problem"), group: "6_problem_nav", order: 1 } }) } }), (0, l.Qr)(class extends _e { constructor() { super(!1, !0, { id: "editor.action.marker.prevInFiles", label: n.N("markerAction.previousInFiles.label", "Go to Previous Problem in Files (Error, Warning, Info)"), alias: "Go to Previous Problem in Files (Error, Warning, Info)", precondition: void 0, kbOpts: { kbExpr: d.u.focus, primary: 1090, weight: 100 }, menuOpts: { menuId: W.eH.MenubarGoMenu, title: n.N({ key: "miGotoPreviousProblem", comment: ["&& denotes a mnemonic"] }, "Previous &&Problem"), group: "6_problem_nav", order: 2 } }) } }); const we = new r.uy("markersNavigationVisible", !1), Ce = l._l.bindToContribution(fe.get); (0, l.fK)(new Ce({ id: "closeMarkersNavigation", precondition: we, handler: e => e.close(), kbOpts: { weight: 150, kbExpr: d.u.focus, primary: 9, secondary: [1033] } })) }, 2729: (e, t, i) => { "use strict"; i.r(t), i.d(t, { DefinitionAction: () => te }); var n = i(6346), o = i(5393), r = i(2258), s = i(1432), a = i(5520), l = i(6830), d = i(1640), c = i(187), h = i(4314), u = i(9102), g = i(4101), p = i(845), m = i(1884), f = i(2406), _ = i(1455), b = i(3580), v = i(4144), w = i(8819), C = i(9422), y = i(535), S = i(1691), x = i(4565), k = i(9925), L = i(2065), N = i(5026), D = i(9989), E = i(5976), I = i(4669), T = i(1847), M = i(5935), A = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }, R = function(e, t) { return function(i, n) { t(i, n, e) } }; const O = new w.uy("hasSymbols", !1, (0, b.N)("hasSymbols", "Whether there are symbol locations that can be navigated via keyboard-only." )), P = (0, L.yh)("ISymbolNavigationService"); let F = class { constructor(e, t, i, n) { this._editorService = t, this._notificationService = i, this._keybindingService = n, this._currentModel = void 0, this._currentIdx = -1, this._ignoreEditorChange = ! 1, this._ctxHasSymbols = O.bindTo(e) } reset() { var e, t; this._ctxHasSymbols.reset(), null === (e = this._currentState) || void 0 === e || e.dispose(), null === (t = this._currentMessage) || void 0 === t || t.dispose(), this._currentModel = void 0, this._currentIdx = - 1 } put(e) { const t = e.parent.parent; if (t.references.length <= 1) return void this.reset(); this._currentModel = t, this._currentIdx = t.references.indexOf(e), this._ctxHasSymbols.set(!0), this._showMessage(); const i = new B(this._editorService), n = i.onDidChange((e => { if (this._ignoreEditorChange) return; const i = this._editorService.getActiveCodeEditor(); if (!i) return; const n = i.getModel(), o = i.getPosition(); if (!n || !o) return; let r = !1, s = !1; for (const e of t.references) if ((0, M.Xy)(e.uri, n.uri)) r = !0, s = s || h.e.containsPosition( e.range, o); else if (r) break; r && s || this.reset() })); this._currentState = (0, E.F8)(i, n) } revealNext(e) { if (!this._currentModel) return Promise.resolve(); this._currentIdx += 1, this._currentIdx %= this._currentModel.references .length; const t = this._currentModel.references[this._currentIdx]; return this._showMessage(), this._ignoreEditorChange = !0, this._editorService .openCodeEditor({ resource: t.uri, options: { selection: h.e.collapseToStart(t.range), selectionRevealType: 3 } }, e).finally((() => { this._ignoreEditorChange = !1 })) } _showMessage() { var e; null === (e = this._currentMessage) || void 0 === e || e.dispose(); const t = this._keybindingService.lookupKeybinding( "editor.gotoNextSymbolFromResult"), i = t ? (0, b.N)("location.kb", "Symbol {0} of {1}, {2} for next", this._currentIdx + 1, this._currentModel.references.length, t.getLabel() ) : (0, b.N)("location", "Symbol {0} of {1}", this._currentIdx + 1, this._currentModel.references.length); this._currentMessage = this._notificationService.status(i) } }; F = A([R(0, w.i6), R(1, d.$), R(2, C.lT), R(3, T.d)], F), (0, N.z)(P, F, ! 0), (0, l.fK)(new class extends l._l { constructor() { super({ id: "editor.gotoNextSymbolFromResult", precondition: O, kbOpts: { weight: 100, primary: 70 } }) } runEditorCommand(e, t) { return e.get(P).revealNext(t) } }), D.W.registerCommandAndKeybindingRule({ id: "editor.gotoNextSymbolFromResult.cancel", weight: 100, when: O, primary: 9, handler(e) { e.get(P).reset() } }); let B = class { constructor(e) { this._listener = new Map, this._disposables = new E.SL, this._onDidChange = new I.Q5, this.onDidChange = this._onDidChange.event, this._disposables .add(e.onCodeEditorRemove(this._onDidRemoveEditor, this)), this._disposables .add(e.onCodeEditorAdd(this._onDidAddEditor, this)), e.listCodeEditors() .forEach(this._onDidAddEditor, this) } dispose() { this._disposables.dispose(), this._onDidChange.dispose(), (0, E.B9)( this._listener.values()) } _onDidAddEditor(e) { this._listener.set(e, (0, E.F8)(e.onDidChangeCursorPosition((t => this._onDidChange.fire({ editor: e }))), e.onDidChangeModelContent((t => this._onDidChange.fire({ editor: e }))))) } _onDidRemoveEditor(e) { var t; null === (t = this._listener.get(e)) || void 0 === t || t.dispose(), this._listener.delete(e) } }; B = A([R(0, d.$)], B); var W, z, V, H, U, j, K, $, q = i(6268), Z = i(666), G = i(8401), Y = i(4527), Q = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; v.BH.appendMenuItem(v.eH.EditorContext, { submenu: v.eH.EditorContextPeek, title: b.N("peek.submenu", "Peek"), group: "navigation", order: 100 }); const X = new Set; function J(e) { const t = new e; return (0, l.QG)(t), X.add(t.id), t } class ee extends l.R6 { constructor(e, t) { super(t), this._configuration = e } run(e, t) { if (!t.hasModel()) return Promise.resolve(void 0); const i = e.get(C.lT), r = e.get(d.$), s = e.get(y.e), a = e.get(P), l = t.getModel(), c = t.getPosition(), h = new k.Dl(t, 5), u = (0, o.eP)(this._getLocationModel(l, c, h.token), h.token).then(( e => Q(this, void 0, void 0, (function*() { if (!e || h.token.isCancellationRequested) return; let i; if ((0, n.Z9)(e.ariaMessage), e.referenceAt(l.uri, c)) { const e = this._getAlternativeCommand(t); e !== this.id && X.has(e) && (i = t.getAction(e)) } const o = e.references.length; if (0 === o) { if (!this._configuration.muteMessage) { const e = l.getWordAtPosition(c); p.O.get(t).showMessage(this._getNoResultFoundMessage(e), c) } } else { if (1 !== o || !i) return this._onResult(r, a, t, e); i.run() } }))), (e => { i.error(e) })).finally((() => { h.dispose() })); return s.showWhile(u, 250), u } _onResult(e, t, i, n) { return Q(this, void 0, void 0, (function*() { const o = this._getGoToPreference(i); if (i instanceof Y.H || !(this._configuration.openInPeek || "peek" === o && n.references.length > 1)) { const r = n.firstReference(), s = n.references.length > 1 && "gotoAndPeek" === o, a = yield this._openReference(i, e, r, this._configuration.openToSide, ! s); s && a ? this._openInPeek(a, n) : n.dispose(), "goto" === o && t .put(r) } else this._openInPeek(i, n) })) } _openReference(e, t, i, n, o) { return Q(this, void 0, void 0, (function*() { let r; if ((0, g.vx)(i) && (r = i.targetSelectionRange), r || (r = i.range), ! r) return; const s = yield t.openCodeEditor({ resource: i.uri, options: { selection: h.e.collapseToStart(r), selectionRevealType: 3 } }, e, n); if (s) { if (o) { const e = s.getModel(), t = s.deltaDecorations([], [{ range: r, options: { description: "symbol-navigate-action-highlight", className: "symbolHighlight" } }]); setTimeout((() => { s.getModel() === e && s.deltaDecorations(t, []) }), 350) } return s } })) } _openInPeek(e, t) { let i = f.J.get(e); i && e.hasModel() ? i.toggleWidget(e.getSelection(), (0, o.PG)((e => Promise.resolve(t))), this._configuration.openInPeek) : t.dispose() } } class te extends ee { _getLocationModel(e, t, i) { return Q(this, void 0, void 0, (function*() { return new _.oQ(yield(0, S.nD)(e, t, i), b.N("def.title", "Definitions")) })) } _getNoResultFoundMessage(e) { return e && e.word ? b.N("noResultWord", "No definition found for '{0}'", e.word) : b.N("generic.noResults", "No definition found") } _getAlternativeCommand(e) { return e.getOption(49).alternativeDefinitionCommand } _getGoToPreference(e) { return e.getOption(49).multipleDefinitions } } const ie = s.$L && !q.$W ? 2118 : 70; J(((W = class e extends te { constructor() { super({ openToSide: !1, openInPeek: !1, muteMessage: !1 }, { id: e.id, label: b.N("actions.goToDecl.label", "Go to Definition"), alias: "Go to Definition", precondition: w.Ao.and(u.u.hasDefinitionProvider, u.u.isInWalkThroughSnippet .toNegated()), kbOpts: { kbExpr: u.u.editorTextFocus, primary: ie, weight: 100 }, contextMenuOpts: { group: "navigation", order: 1.1 } }), x.P.registerCommandAlias("editor.action.goToDeclaration", e.id) } }).id = "editor.action.revealDefinition", W)), J(((z = class e extends te { constructor() { super({ openToSide: !0, openInPeek: !1, muteMessage: !1 }, { id: e.id, label: b.N("actions.goToDeclToSide.label", "Open Definition to the Side"), alias: "Open Definition to the Side", precondition: w.Ao.and(u.u.hasDefinitionProvider, u.u.isInWalkThroughSnippet .toNegated()), kbOpts: { kbExpr: u.u.editorTextFocus, primary: (0, r.gx)(2089, ie), weight: 100 } }), x.P.registerCommandAlias( "editor.action.openDeclarationToTheSide", e.id) } }).id = "editor.action.revealDefinitionAside", z)), J(((V = class e extends te { constructor() { super({ openToSide: !1, openInPeek: !0, muteMessage: !1 }, { id: e.id, label: b.N("actions.previewDecl.label", "Peek Definition"), alias: "Peek Definition", precondition: w.Ao.and(u.u.hasDefinitionProvider, m.Jy.notInPeekEditor, u.u.isInWalkThroughSnippet.toNegated()), kbOpts: { kbExpr: u.u.editorTextFocus, primary: 582, linux: { primary: 3140 }, weight: 100 }, contextMenuOpts: { menuId: v.eH.EditorContextPeek, group: "peek", order: 2 } }), x.P.registerCommandAlias("editor.action.previewDeclaration", e.id) } }).id = "editor.action.peekDefinition", V)); class ne extends ee { _getLocationModel(e, t, i) { return Q(this, void 0, void 0, (function*() { return new _.oQ(yield(0, S.zq)(e, t, i), b.N("decl.title", "Declarations")) })) } _getNoResultFoundMessage(e) { return e && e.word ? b.N("decl.noResultWord", "No declaration found for '{0}'", e.word) : b.N( "decl.generic.noResults", "No declaration found") } _getAlternativeCommand(e) { return e.getOption(49).alternativeDeclarationCommand } _getGoToPreference(e) { return e.getOption(49).multipleDeclarations } } J(((H = class e extends ne { constructor() { super({ openToSide: !1, openInPeek: !1, muteMessage: !1 }, { id: e.id, label: b.N("actions.goToDeclaration.label", "Go to Declaration"), alias: "Go to Declaration", precondition: w.Ao.and(u.u.hasDeclarationProvider, u.u.isInWalkThroughSnippet .toNegated()), contextMenuOpts: { group: "navigation", order: 1.3 } }) } _getNoResultFoundMessage(e) { return e && e.word ? b.N("decl.noResultWord", "No declaration found for '{0}'", e.word) : b.N( "decl.generic.noResults", "No declaration found") } }).id = "editor.action.revealDeclaration", H)), J(class extends ne { constructor() { super({ openToSide: !1, openInPeek: !0, muteMessage: !1 }, { id: "editor.action.peekDeclaration", label: b.N("actions.peekDecl.label", "Peek Declaration"), alias: "Peek Declaration", precondition: w.Ao.and(u.u.hasDeclarationProvider, m.Jy.notInPeekEditor, u.u.isInWalkThroughSnippet.toNegated()), contextMenuOpts: { menuId: v.eH.EditorContextPeek, group: "peek", order: 3 } }) } }); class oe extends ee { _getLocationModel(e, t, i) { return Q(this, void 0, void 0, (function*() { return new _.oQ(yield(0, S.L3)(e, t, i), b.N("typedef.title", "Type Definitions")) })) } _getNoResultFoundMessage(e) { return e && e.word ? b.N("goToTypeDefinition.noResultWord", "No type definition found for '{0}'", e.word) : b.N( "goToTypeDefinition.generic.noResults", "No type definition found") } _getAlternativeCommand(e) { return e.getOption(49).alternativeTypeDefinitionCommand } _getGoToPreference(e) { return e.getOption(49).multipleTypeDefinitions } } J(((U = class e extends oe { constructor() { super({ openToSide: !1, openInPeek: !1, muteMessage: !1 }, { id: e.ID, label: b.N("actions.goToTypeDefinition.label", "Go to Type Definition"), alias: "Go to Type Definition", precondition: w.Ao.and(u.u.hasTypeDefinitionProvider, u.u.isInWalkThroughSnippet .toNegated()), kbOpts: { kbExpr: u.u.editorTextFocus, primary: 0, weight: 100 }, contextMenuOpts: { group: "navigation", order: 1.4 } }) } }).ID = "editor.action.goToTypeDefinition", U)), J(((j = class e extends oe { constructor() { super({ openToSide: !1, openInPeek: !0, muteMessage: !1 }, { id: e.ID, label: b.N("actions.peekTypeDefinition.label", "Peek Type Definition"), alias: "Peek Type Definition", precondition: w.Ao.and(u.u.hasTypeDefinitionProvider, m.Jy.notInPeekEditor, u.u.isInWalkThroughSnippet.toNegated()), contextMenuOpts: { menuId: v.eH.EditorContextPeek, group: "peek", order: 4 } }) } }).ID = "editor.action.peekTypeDefinition", j)); class re extends ee { _getLocationModel(e, t, i) { return Q(this, void 0, void 0, (function*() { return new _.oQ(yield(0, S.f4)(e, t, i), b.N("impl.title", "Implementations")) })) } _getNoResultFoundMessage(e) { return e && e.word ? b.N("goToImplementation.noResultWord", "No implementation found for '{0}'", e.word) : b.N( "goToImplementation.generic.noResults", "No implementation found") } _getAlternativeCommand(e) { return e.getOption(49).alternativeImplementationCommand } _getGoToPreference(e) { return e.getOption(49).multipleImplementations } } J(((K = class e extends re { constructor() { super({ openToSide: !1, openInPeek: !1, muteMessage: !1 }, { id: e.ID, label: b.N("actions.goToImplementation.label", "Go to Implementations"), alias: "Go to Implementations", precondition: w.Ao.and(u.u.hasImplementationProvider, u.u.isInWalkThroughSnippet .toNegated()), kbOpts: { kbExpr: u.u.editorTextFocus, primary: 2118, weight: 100 }, contextMenuOpts: { group: "navigation", order: 1.45 } }) } }).ID = "editor.action.goToImplementation", K)), J((($ = class e extends re { constructor() { super({ openToSide: !1, openInPeek: !0, muteMessage: !1 }, { id: e.ID, label: b.N("actions.peekImplementation.label", "Peek Implementations"), alias: "Peek Implementations", precondition: w.Ao.and(u.u.hasImplementationProvider, m.Jy.notInPeekEditor, u.u.isInWalkThroughSnippet.toNegated()), kbOpts: { kbExpr: u.u.editorTextFocus, primary: 3142, weight: 100 }, contextMenuOpts: { menuId: v.eH.EditorContextPeek, group: "peek", order: 5 } }) } }).ID = "editor.action.peekImplementation", $)); class se extends ee { _getNoResultFoundMessage(e) { return e ? b.N("references.no", "No references found for '{0}'", e.word) : b.N("references.noGeneric", "No references found") } _getAlternativeCommand(e) { return e.getOption(49).alternativeReferenceCommand } _getGoToPreference(e) { return e.getOption(49).multipleReferences } } J(class extends se { constructor() { super({ openToSide: !1, openInPeek: !1, muteMessage: !1 }, { id: "editor.action.goToReferences", label: b.N("goToReferences.label", "Go to References"), alias: "Go to References", precondition: w.Ao.and(u.u.hasReferenceProvider, m.Jy.notInPeekEditor, u.u.isInWalkThroughSnippet.toNegated()), kbOpts: { kbExpr: u.u.editorTextFocus, primary: 1094, weight: 100 }, contextMenuOpts: { group: "navigation", order: 1.45 } }) } _getLocationModel(e, t, i) { return Q(this, void 0, void 0, (function*() { return new _.oQ(yield(0, S.aA)(e, t, !0, i), b.N("ref.title", "References")) })) } }), J(class extends se { constructor() { super({ openToSide: !1, openInPeek: !0, muteMessage: !1 }, { id: "editor.action.referenceSearch.trigger", label: b.N("references.action.label", "Peek References"), alias: "Peek References", precondition: w.Ao.and(u.u.hasReferenceProvider, m.Jy.notInPeekEditor, u.u.isInWalkThroughSnippet.toNegated()), contextMenuOpts: { menuId: v.eH.EditorContextPeek, group: "peek", order: 6 } }) } _getLocationModel(e, t, i) { return Q(this, void 0, void 0, (function*() { return new _.oQ(yield(0, S.aA)(e, t, !1, i), b.N("ref.title", "References")) })) } }); class ae extends ee { constructor(e, t, i) { super(e, { id: "editor.action.goToLocation", label: b.N("label.generic", "Go To Any Symbol"), alias: "Go To Any Symbol", precondition: w.Ao.and(m.Jy.notInPeekEditor, u.u.isInWalkThroughSnippet .toNegated()) }), this._references = t, this._gotoMultipleBehaviour = i } _getLocationModel(e, t, i) { return Q(this, void 0, void 0, (function*() { return new _.oQ(this._references, b.N("generic.title", "Locations")) })) } _getNoResultFoundMessage(e) { return e && b.N("generic.noResult", "No results for '{0}'", e.word) || "" } _getGoToPreference(e) { var t; return null !== (t = this._gotoMultipleBehaviour) && void 0 !== t ? t : e.getOption(49).multipleReferences } _getAlternativeCommand() { return "" } } x.P.registerCommand({ id: "editor.action.goToLocations", description: { description: "Go to locations from a position in a file", args: [{ name: "uri", description: "The text document in which to start", constraint: Z.o }, { name: "position", description: "The position at which to start", constraint: c.L.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: (e, t, i, n, o, r, s) => Q(void 0, void 0, void 0, (function* () { (0, G.p_)(Z.o.isUri(t)), (0, G.p_)(c.L.isIPosition(i)), (0, G.p_)( Array.isArray(n)), (0, G.p_)(void 0 === o || "string" == typeof o), ( 0, G.p_)(void 0 === s || "boolean" == typeof s); const l = e.get(d.$), h = yield l.openCodeEditor({ resource: t }, l.getFocusedCodeEditor()); if ((0, a.CL)(h)) return h.setPosition(i), h.revealPositionInCenterIfOutsideViewport( i, 0), h.invokeWithinContext((e => { const t = new class extends ae { _getNoResultFoundMessage(e) { return r || super._getNoResultFoundMessage(e) } }({ muteMessage: !Boolean(r), openInPeek: Boolean(s), openToSide: !1 }, n, o); e.get(L.TG).invokeFunction(t.run.bind(t), h) })) })) }), x.P.registerCommand({ id: "editor.action.peekLocations", description: { description: "Peek locations from a position in a file", args: [{ name: "uri", description: "The text document in which to start", constraint: Z.o }, { name: "position", description: "The position at which to start", constraint: c.L.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: (e, t, i, n, o) => Q(void 0, void 0, void 0, (function*() { e.get(x.H).executeCommand("editor.action.goToLocations", t, i, n, o, void 0, !0) })) }), x.P.registerCommand({ id: "editor.action.findReferences", handler: (e, t, i) => { (0, G.p_)(Z.o.isUri(t)), (0, G.p_)(c.L.isIPosition(i)); const n = e.get(d.$); return n.openCodeEditor({ resource: t }, n.getFocusedCodeEditor()).then((e => { if (!(0, a.CL)(e) || !e.hasModel()) return; const t = f.J.get(e); if (!t) return; const n = (0, o.PG)((t => (0, S.aA)(e.getModel(), c.L.lift(i), ! 1, t).then((e => new _.oQ(e, b.N("ref.title", "References")))))), r = new h.e(i.lineNumber, i.column, i.lineNumber, i.column); return Promise.resolve(t.toggleWidget(r, n, !1)) })) } }), x.P.registerCommandAlias("editor.action.showReferences", "editor.action.peekLocations"), v.BH.appendMenuItems([{ id: v.eH.MenubarGoMenu, item: { command: { id: "editor.action.revealDefinition", title: b.N({ key: "miGotoDefinition", comment: ["&& denotes a mnemonic"] }, "Go to &&Definition") }, group: "4_symbol_nav", order: 2 } }, { id: v.eH.MenubarGoMenu, item: { command: { id: "editor.action.revealDeclaration", title: b.N({ key: "miGotoDeclaration", comment: ["&& denotes a mnemonic"] }, "Go to &&Declaration") }, group: "4_symbol_nav", order: 3 } }, { id: v.eH.MenubarGoMenu, item: { command: { id: "editor.action.goToTypeDefinition", title: b.N({ key: "miGotoTypeDefinition", comment: ["&& denotes a mnemonic"] }, "Go to &&Type Definition") }, group: "4_symbol_nav", order: 3 } }, { id: v.eH.MenubarGoMenu, item: { command: { id: "editor.action.goToImplementation", title: b.N({ key: "miGotoImplementation", comment: ["&& denotes a mnemonic"] }, "Go to &&Implementations") }, group: "4_symbol_nav", order: 4 } }, { id: v.eH.MenubarGoMenu, item: { command: { id: "editor.action.goToReferences", title: b.N({ key: "miGotoReference", comment: ["&& denotes a mnemonic"] }, "Go to &&References") }, group: "4_symbol_nav", order: 5 } }]) }, 1691: (e, t, i) => { "use strict"; i.d(t, { nD: () => c, zq: () => h, f4: () => u, L3: () => g, aA: () => p }); var n = i(1050), o = i(7301), r = i(6830), s = i(4101), a = i(1455), l = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; function d(e, t, i, n) { const r = i.ordered(e).map((i => Promise.resolve(n(i, e, t)).then(void 0, ( e => { (0, o.Cp)(e) })))); return Promise.all(r).then((e => { const t = []; for (let i of e) Array.isArray(i) ? t.push(...i) : i && t.push(i); return t })) } function c(e, t, i) { return d(e, t, s.Ct, ((e, t, n) => e.provideDefinition(t, n, i))) } function h(e, t, i) { return d(e, t, s.RN, ((e, t, n) => e.provideDeclaration(t, n, i))) } function u(e, t, i) { return d(e, t, s.vI, ((e, t, n) => e.provideImplementation(t, n, i))) } function g(e, t, i) { return d(e, t, s.tA, ((e, t, n) => e.provideTypeDefinition(t, n, i))) } function p(e, t, i, n) { return d(e, t, s.FL, ((e, t, o) => l(this, void 0, void 0, (function*() { const r = yield e.provideReferences(t, o, { includeDeclaration: !0 }, n); if (!i || !r || 2 !== r.length) return r; const s = yield e.provideReferences(t, o, { includeDeclaration: !1 }, n); return s && 1 === s.length ? s : r })))) } function m(e) { return l(this, void 0, void 0, (function*() { const t = yield e(), i = new a.oQ(t, ""), n = i.references.map((e => e.link)); return i.dispose(), n })) }(0, r.sb)("_executeDefinitionProvider", ((e, t) => m((() => c(e, t, n.T.None))))), ( 0, r.sb)("_executeDeclarationProvider", ((e, t) => m((() => h(e, t, n.T.None))))), ( 0, r.sb)("_executeImplementationProvider", ((e, t) => m((() => u(e, t, n .T.None))))), (0, r.sb)("_executeTypeDefinitionProvider", ((e, t) => m(( () => g(e, t, n.T.None))))), (0, r.sb)("_executeReferenceProvider", ((e, t) => m((() => p(e, t, !1, n.T.None))))) }, 9241: (e, t, i) => { "use strict"; i.d(t, { yN: () => h }); var n = i(5976), o = i(4669), r = i(1432); function s(e, t) { return !!e[t] } class a { constructor(e, t) { this.target = e.target, this.hasTriggerModifier = s(e.event, t.triggerModifier), this.hasSideBySideModifier = s(e.event, t.triggerSideBySideModifier), this.isNoneOrSingleMouseDown = e.event.detail <= 1 } } class l { constructor(e, t) { this.keyCodeIsTriggerKey = e.keyCode === t.triggerKey, this.keyCodeIsSideBySideKey = e.keyCode === t.triggerSideBySideKey, this.hasTriggerModifier = s(e, t.triggerModifier) } } class d { constructor(e, t, i, n) { this.triggerKey = e, this.triggerModifier = t, this.triggerSideBySideKey = i, this.triggerSideBySideModifier = n } equals(e) { return this.triggerKey === e.triggerKey && this.triggerModifier === e.triggerModifier && this.triggerSideBySideKey === e.triggerSideBySideKey && this.triggerSideBySideModifier === e.triggerSideBySideModifier } } function c(e) { return "altKey" === e ? r.dz ? new d(57, "metaKey", 6, "altKey") : new d( 5, "ctrlKey", 6, "altKey") : r.dz ? new d(6, "altKey", 57, "metaKey") : new d(6, "altKey", 5, "ctrlKey") } class h extends n.JT { constructor(e) { super(), this._onMouseMoveOrRelevantKeyDown = this._register(new o.Q5), this.onMouseMoveOrRelevantKeyDown = this._onMouseMoveOrRelevantKeyDown .event, this._onExecute = this._register(new o.Q5), this.onExecute = this._onExecute.event, this._onCancel = this._register(new o.Q5), this.onCancel = this._onCancel.event, this._editor = e, this._opts = c(this._editor.getOption(69)), this._lastMouseMoveEvent = null, this ._hasTriggerKeyOnMouseDown = !1, this._lineNumberOnMouseDown = 0, this._register(this._editor.onDidChangeConfiguration((e => { if (e.hasChanged(69)) { const e = c(this._editor.getOption(69)); if (this._opts.equals(e)) return; this._opts = e, this._lastMouseMoveEvent = null, this._hasTriggerKeyOnMouseDown = ! 1, this._lineNumberOnMouseDown = 0, this._onCancel.fire() } }))), this._register(this._editor.onMouseMove((e => this._onEditorMouseMove( new a(e, this._opts))))), this._register(this._editor.onMouseDown(( e => this._onEditorMouseDown(new a(e, this._opts))))), this._register( this._editor.onMouseUp((e => this._onEditorMouseUp(new a(e, this._opts)))) ), this._register(this._editor.onKeyDown((e => this._onEditorKeyDown( new l(e, this._opts))))), this._register(this._editor.onKeyUp((e => this._onEditorKeyUp(new l(e, this._opts))))), this._register(this._editor .onMouseDrag((() => this._resetHandler()))), this._register(this._editor .onDidChangeCursorSelection((e => this._onDidChangeCursorSelection( e)))), this._register(this._editor.onDidChangeModel((e => this._resetHandler()))), this._register(this._editor.onDidChangeModelContent((() => this._resetHandler()))), this._register(this._editor.onDidScrollChange((e => { (e.scrollTopChanged || e.scrollLeftChanged) && this._resetHandler() }))) } _onDidChangeCursorSelection(e) { e.selection && e.selection.startColumn !== e.selection.endColumn && this._resetHandler() } _onEditorMouseMove(e) { this._lastMouseMoveEvent = e, this._onMouseMoveOrRelevantKeyDown.fire( [e, null]) } _onEditorMouseDown(e) { this._hasTriggerKeyOnMouseDown = e.hasTriggerModifier, this._lineNumberOnMouseDown = e.target.position ? e.target.position.lineNumber : 0 } _onEditorMouseUp(e) { const t = e.target.position ? e.target.position.lineNumber : 0; this._hasTriggerKeyOnMouseDown && this._lineNumberOnMouseDown && this ._lineNumberOnMouseDown === t && this._onExecute.fire(e) } _onEditorKeyDown(e) { this._lastMouseMoveEvent && (e.keyCodeIsTriggerKey || e.keyCodeIsSideBySideKey && e.hasTriggerModifier) ? this._onMouseMoveOrRelevantKeyDown.fire([ this._lastMouseMoveEvent, e ]) : e.hasTriggerModifier && this._onCancel.fire() } _onEditorKeyUp(e) { e.keyCodeIsTriggerKey && this._onCancel.fire() } _resetHandler() { this._lastMouseMoveEvent = null, this._hasTriggerKeyOnMouseDown = !1, this._onCancel.fire() } } }, 5389: (e, t, i) => { "use strict"; i.r(t), i.d(t, { GotoDefinitionAtPositionEditorContribution: () => B }); var n = i(3379), o = i.n(n), r = i(7795), s = i.n(r), a = i(569), l = i.n(a), d = i(3565), c = i.n(d), h = i(9216), u = i.n(h), g = i(4589), p = i.n(g), m = i(2760), f = {}; f.styleTagTransform = p(), f.setAttributes = c(), f.insert = l().bind( null, "head"), f.domAPI = s(), f.insertStyleElement = u(), o()(m.Z, f), m.Z && m.Z.locals && m.Z.locals; var _ = i(3580), b = i(5393), v = i(7301), w = i(9365), C = i(1531), y = i(4314), S = i(4101), x = i(6830), k = i(1691), L = i(5976), N = i(8216), D = i(7781), E = i(3910), I = i(9925), T = i(2729), M = i(9241), A = i(187), R = i(8401), O = i(1884), P = i(8819), F = function(e, t) { return function(i, n) { t(i, n, e) } }; let B = class e { constructor(e, t, i) { this.textModelResolverService = t, this.modeService = i, this.toUnhook = new L.SL, this.toUnhookForKeyboard = new L.SL, this.linkDecorations = [], this.currentWordAtPosition = null, this.previousPromise = null, this .editor = e; let n = new M.yN(e); this.toUnhook.add(n), this.toUnhook.add(n.onMouseMoveOrRelevantKeyDown( (([e, t]) => { this.startFindDefinitionFromMouse(e, (0, R.f6)(t)) }))), this.toUnhook.add(n.onExecute((e => { this.isEnabled(e) && this.gotoDefinition(e.target.position, e.hasSideBySideModifier) .then((() => { this.removeLinkDecorations() }), (e => { this.removeLinkDecorations(), (0, v.dL)(e) })) }))), this.toUnhook.add(n.onCancel((() => { this.removeLinkDecorations(), this.currentWordAtPosition = null }))) } static get(t) { return t.getContribution(e.ID) } startFindDefinitionFromCursor(e) { return this.startFindDefinition(e).then((() => { this.toUnhookForKeyboard.add(this.editor.onDidChangeCursorPosition( (() => { this.currentWordAtPosition = null, this.removeLinkDecorations(), this.toUnhookForKeyboard.clear() }))), this.toUnhookForKeyboard.add(this.editor.onKeyDown((e => { e && (this.currentWordAtPosition = null, this.removeLinkDecorations(), this.toUnhookForKeyboard.clear()) }))) })) } startFindDefinitionFromMouse(e, t) { if (9 === e.target.type && this.linkDecorations.length > 0) return; if (!this.editor.hasModel() || !this.isEnabled(e, t)) return this.currentWordAtPosition = null, void this.removeLinkDecorations(); const i = e.target.position; this.startFindDefinition(i) } startFindDefinition(e) { var t; this.toUnhookForKeyboard.clear(); const i = e ? null === (t = this.editor.getModel()) || void 0 === t ? void 0 : t.getWordAtPosition(e) : null; if (!i) return this.currentWordAtPosition = null, this.removeLinkDecorations(), Promise.resolve(0); if (this.currentWordAtPosition && this.currentWordAtPosition.startColumn === i.startColumn && this.currentWordAtPosition.endColumn === i.endColumn && this.currentWordAtPosition.word === i.word) return Promise.resolve(0); this.currentWordAtPosition = i; let n = new I.yy(this.editor, 15); return this.previousPromise && (this.previousPromise.cancel(), this.previousPromise = null), this.previousPromise = (0, b.PG)((t => this.findDefinition(e, t))), this.previousPromise.then((t => { if (t && t.length && n.validate(this.editor)) if (t.length > 1) this.addDecoration(new y.e(e.lineNumber, i.startColumn, e.lineNumber, i.endColumn), (new w.W5).appendText(_.N( "multipleResults", "Click to show {0} definitions.", t.length ))); else { let n = t[0]; if (!n.uri) return; this.textModelResolverService.createModelReference(n.uri).then( (t => { if (!t.object || !t.object.textEditorModel) return void t.dispose(); const { object: { textEditorModel: o } } = t, { startLineNumber: r } = n.range; if (r < 1 || r > o.getLineCount()) return void t.dispose(); const s = this.getPreviewValue(o, r, n); let a; a = n.originSelectionRange ? y.e.lift(n.originSelectionRange) : new y.e(e.lineNumber, i.startColumn, e.lineNumber, i.endColumn); const l = this.modeService.getModeIdByFilepathOrFirstLine(o .uri); this.addDecoration(a, (new w.W5).appendCodeblock(l || "", s)), t.dispose() })) } else this.removeLinkDecorations() })).then(void 0, v.dL) } getPreviewValue(t, i, n) { let o = n.targetSelectionRange ? n.range : this.getPreviewRangeBasedOnBrackets( t, i); return o.endLineNumber - o.startLineNumber >= e.MAX_SOURCE_PREVIEW_LINES && (o = this.getPreviewRangeBasedOnIndentation(t, i)), this.stripIndentationFromPreviewRange( t, i, o) } stripIndentationFromPreviewRange(e, t, i) { let n = e.getLineFirstNonWhitespaceColumn(t); for (let o = t + 1; o < i.endLineNumber; o++) { const t = e.getLineFirstNonWhitespaceColumn(o); n = Math.min(n, t) } return e.getValueInRange(i).replace(new RegExp(`^\\s{${n-1}}`, "gm"), "").trim() } getPreviewRangeBasedOnIndentation(t, i) { const n = t.getLineFirstNonWhitespaceColumn(i), o = Math.min(t.getLineCount(), i + e.MAX_SOURCE_PREVIEW_LINES); let r = i + 1; for (; r < o && n !== t.getLineFirstNonWhitespaceColumn(r); r++); return new y.e(i, 1, r + 1, 1) } getPreviewRangeBasedOnBrackets(t, i) { const n = Math.min(t.getLineCount(), i + e.MAX_SOURCE_PREVIEW_LINES), o = []; let r = !0, s = t.findNextBracket(new A.L(i, 1)); for (; null !== s;) { if (0 === o.length) o.push(s); else { const e = o[o.length - 1]; if (e.open[0] === s.open[0] && e.isOpen && !s.isOpen ? o.pop() : o.push( s), 0 === o.length) { if (!r) return new y.e(i, 1, s.range.endLineNumber + 1, 1); r = !1 } } const e = t.getLineMaxColumn(i); let a = s.range.endLineNumber, l = s.range.endColumn; if (e === s.range.endColumn && (a++, l = 1), a > n) return new y.e(i, 1, n + 1, 1); s = t.findNextBracket(new A.L(a, l)) } return new y.e(i, 1, n + 1, 1) } addDecoration(e, t) { const i = { range: e, options: { description: "goto-definition-link", inlineClassName: "goto-definition-link", hoverMessage: t } }; this.linkDecorations = this.editor.deltaDecorations(this.linkDecorations, [ i ]) } removeLinkDecorations() { this.linkDecorations.length > 0 && (this.linkDecorations = this.editor .deltaDecorations(this.linkDecorations, [])) } isEnabled(e, t) { return this.editor.hasModel() && e.isNoneOrSingleMouseDown && 6 === e .target.type && (e.hasTriggerModifier || !!t && t.keyCodeIsTriggerKey) && S.Ct.has(this.editor.getModel()) } findDefinition(e, t) { const i = this.editor.getModel(); return i ? (0, k.nD)(i, e, t) : Promise.resolve(null) } gotoDefinition(e, t) { return this.editor.setPosition(e), this.editor.invokeWithinContext((e => { const i = !t && this.editor.getOption(77) && !this.isInPeekEditor( e); return new T.DefinitionAction({ openToSide: t, openInPeek: i, muteMessage: !0 }, { alias: "", label: "", id: "", precondition: void 0 }).run(e, this.editor) })) } isInPeekEditor(e) { const t = e.get(P.i6); return O.Jy.inPeekEditor.getValue(t) } dispose() { this.toUnhook.dispose() } }; B.ID = "editor.contrib.gotodefinitionatposition", B.MAX_SOURCE_PREVIEW_LINES = 8, B = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([F(1, N.S), F(2, C.h)], B), (0, x._K)(B.ID, B), (0, D.Ic)(((e, t) => { const i = e.getColor(E._Y); i && t.addRule( `.monaco-editor .goto-definition-link { color: ${i} !important; }`) })) }, 2406: (e, t, i) => { "use strict"; i.d(t, { J: () => we }); var n = i(3580), o = i(7301), r = i(5976), s = i(1640), a = i(2065), l = i(8819), d = i(3108), c = i(6904), h = i(1455), u = i(3379), g = i.n(u), p = i(7795), m = i.n(p), f = i(569), _ = i.n(f), b = i(3565), v = i.n(b), w = i(9216), C = i.n(w), y = i(4589), S = i.n(y), x = i(9669), k = {}; k.styleTagTransform = S(), k.setAttributes = v(), k.insert = _().bind( null, "head"), k.domAPI = m(), k.insertStyleElement = C(), g()(x.Z, k), x.Z && x.Z.locals && x.Z.locals; var L = i(5321), N = i(1264), D = i(4669), E = i(6663), I = i(5935), T = i(4527), M = i(4314), A = i(6281), R = i(8216), O = i(3326), P = i(9162), F = i(4349), B = i(7781), W = i(8810), z = i(8843), V = i(1847), H = i(5392), U = i(4650), j = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }, K = function(e, t) { return function(i, n) { t(i, n, e) } }; let $ = class { constructor(e) { this._resolverService = e } hasChildren(e) { return e instanceof h.oQ || e instanceof h.F2 } getChildren(e) { if (e instanceof h.oQ) return e.groups; if (e instanceof h.F2) return e.resolve(this._resolverService).then(( e => e.children)); throw new Error("bad tree") } }; $ = j([K(0, R.S)], $); class q { getHeight() { return 23 } getTemplateId(e) { return e instanceof h.F2 ? Q.id : J.id } } let Z = class { constructor(e) { this._keybindingService = e } getKeyboardNavigationLabel(e) { var t; if (e instanceof h.WX) { const i = null === (t = e.parent.getPreview(e)) || void 0 === t ? void 0 : t.preview(e.range); if (i) return i.value } return (0, I.EZ)(e.uri) } }; Z = j([K(0, V.d)], Z); class G { getId(e) { return e instanceof h.WX ? e.id : e.uri } } let Y = class extends r.JT { constructor(e, t, i) { super(), this._uriLabel = t; const n = document.createElement("div"); n.classList.add("reference-file"), this.file = this._register(new O.g( n, { supportHighlights: !0 })), this.badge = new P.Z(L.R3(n, L.$(".count"))), this._register(( 0, W.WZ)(this.badge, i)), e.appendChild(n) } set(e, t) { let i = (0, I.XX)(e.uri); this.file.setLabel((0, z.p)(e.uri), this._uriLabel.getUriLabel(i, { relative: !0 }), { title: this._uriLabel.getUriLabel(e.uri), matches: t }); const o = e.children.length; this.badge.setCount(o), o > 1 ? this.badge.setTitleFormat((0, n.N)( "referencesCount", "{0} references", o)) : this.badge.setTitleFormat( (0, n.N)("referenceCount", "{0} reference", o)) } }; Y = j([K(1, F.e), K(2, B.XE)], Y); let Q = class e { constructor(t) { this._instantiationService = t, this.templateId = e.id } renderTemplate(e) { return this._instantiationService.createInstance(Y, e) } renderElement(e, t, i) { i.set(e.element, (0, H.mB)(e.filterData)) } disposeTemplate(e) { e.dispose() } }; Q.id = "FileReferencesRenderer", Q = j([K(0, a.TG)], Q); class X { constructor(e) { this.label = new U.q(e, !1) } set(e, t) { var i; const n = null === (i = e.parent.getPreview(e)) || void 0 === i ? void 0 : i.preview(e.range); if (n && n.value) { const { value: e, highlight: i } = n; t && !H.CL.isDefault(t) ? (this.label.element.classList.toggle( "referenceMatch", !1), this.label.set(e, (0, H.mB)(t))) : (this.label .element.classList.toggle("referenceMatch", !0), this.label.set(e, [ i ])) } else this.label.set( `${(0,I.EZ)(e.uri)}:${e.range.startLineNumber+1}:${e.range.startColumn+1}` ) } } class J { constructor() { this.templateId = J.id } renderTemplate(e) { return new X(e) } renderElement(e, t, i) { i.set(e.element, e.filterData) } disposeTemplate() {} } J.id = "OneReferenceRenderer"; class ee { getWidgetAriaLabel() { return (0, n.N)("treeAriaLabel", "References") } getAriaLabel(e) { return e.ariaMessage } } var te = i(3738), ie = i(3910), ne = i(1884), oe = i(9782), re = i(4862), se = function(e, t) { return function(i, n) { t(i, n, e) } }, ae = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; class le { constructor(e, t) { this._editor = e, this._model = t, this._decorations = new Map, this._decorationIgnoreSet = new Set, this._callOnDispose = new r.SL, this._callOnModelChange = new r.SL, this._callOnDispose.add(this._editor.onDidChangeModel((() => this._onModelChanged()))), this._onModelChanged() } dispose() { this._callOnModelChange.dispose(), this._callOnDispose.dispose(), this .removeDecorations() } _onModelChanged() { this._callOnModelChange.clear(); const e = this._editor.getModel(); if (e) for (let t of this._model.references) if (t.uri.toString() === e.uri.toString()) return void this._addDecorations( t.parent) } _addDecorations(e) { if (!this._editor.hasModel()) return; this._callOnModelChange.add(this._editor.getModel().onDidChangeDecorations( (() => this._onDecorationChanged()))); const t = [], i = []; for (let n = 0, o = e.children.length; n < o; n++) { let o = e.children[n]; this._decorationIgnoreSet.has(o.id) || o.uri.toString() === this._editor .getModel().uri.toString() && (t.push({ range: o.range, options: le.DecorationOptions }), i.push(n)) } const n = this._editor.deltaDecorations([], t); for (let t = 0; t < n.length; t++) this._decorations.set(n[t], e.children[ i[t]]) } _onDecorationChanged() { const e = [], t = this._editor.getModel(); if (t) { for (let [i, n] of this._decorations) { const o = t.getDecorationRange(i); if (!o) continue; let r = !1; M.e.equalsRange(o, n.range) || ((M.e.spansMultipleLines(o) || n.range .endColumn - n.range.startColumn != o.endColumn - o.startColumn) && (r = !0), r ? (this._decorationIgnoreSet.add(n.id), e.push(i)) : n .range = o) } for (let t = 0, i = e.length; t < i; t++) this._decorations.delete(e[ t]); this._editor.deltaDecorations(e, []) } } removeDecorations() { this._editor.deltaDecorations([...this._decorations.keys()], []), this ._decorations.clear() } } le.DecorationOptions = A.qx.register({ description: "reference-decoration", stickiness: 1, className: "reference-decoration" }); class de extends te.ls {} let ce = class extends ne.vk { constructor(e, t, i, n, o, s, a, l, d, c) { super(e, { showFrame: !1, showArrow: !0, isResizeable: !0, isAccessible: !0, supportOnTitleClick: !0 }, s), this._defaultTreeKeyboardSupport = t, this.layoutData = i, this._textModelResolverService = o, this._instantiationService = s, this._peekViewService = a, this._uriLabel = l, this._undoRedoService = d, this._keybindingService = c, this._disposeOnNewModel = new r.SL, this._callOnDispose = new r.SL, this._onDidSelectReference = new D.Q5, this.onDidSelectReference = this._onDidSelectReference.event, this._dim = new L.Ro(0, 0), this._applyTheme(n.getColorTheme()), this._callOnDispose .add(n.onDidColorThemeChange(this._applyTheme.bind(this))), this._peekViewService .addExclusiveWidget(e, this), this.create() } dispose() { this.setModel(void 0), this._callOnDispose.dispose(), this._disposeOnNewModel .dispose(), (0, r.B9)(this._preview), (0, r.B9)(this._previewNotAvailableMessage), ( 0, r.B9)(this._tree), (0, r.B9)(this._previewModelReference), this._splitView .dispose(), super.dispose() } _applyTheme(e) { const t = e.getColor(ne.SC) || N.Il.transparent; this.style({ arrowColor: t, frameColor: t, headerBackgroundColor: e.getColor(ne.KY) || N.Il.transparent, primaryHeadingColor: e.getColor(ne.IH), secondaryHeadingColor: e.getColor(ne.R7) }) } show(e) { this.editor.revealRangeInCenterIfOutsideViewport(e, 0), super.show(e, this.layoutData.heightInLines || 18) } focusOnReferenceTree() { this._tree.domFocus() } focusOnPreviewEditor() { this._preview.focus() } isPreviewEditorFocused() { return this._preview.hasTextFocus() } _onTitleClick(e) { this._preview && this._preview.getModel() && this._onDidSelectReference .fire({ element: this._getFocusedReference(), kind: e.ctrlKey || e.metaKey || e.altKey ? "side" : "open", source: "title" }) } _fillBody(e) { this.setCssClass("reference-zone-widget"), this._messageContainer = L .R3(e, L.$("div.messages")), L.Cp(this._messageContainer), this._splitView = new oe.z(e, { orientation: 1 }), this._previewContainer = L.R3(e, L.$("div.preview.inline")), this._preview = this._instantiationService.createInstance(T.H, this._previewContainer, { scrollBeyondLastLine: !1, scrollbar: { verticalScrollbarSize: 14, horizontal: "auto", useShadows: !0, verticalHasArrows: !1, horizontalHasArrows: !1, alwaysConsumeMouseWheel: !1 }, overviewRulerLanes: 2, fixedOverflowWidgets: !0, minimap: { enabled: !1 } }, this.editor), L.Cp(this._previewContainer), this._previewNotAvailableMessage = new A.yO(n.N("missingPreviewMessage", "no preview available"), A.yO.DEFAULT_CREATION_OPTIONS, null, null, this._undoRedoService), this._treeContainer = L.R3(e, L .$("div.ref-tree.inline")); const t = { keyboardSupport: this._defaultTreeKeyboardSupport, accessibilityProvider: new ee, keyboardNavigationLabelProvider: this._instantiationService.createInstance( Z), identityProvider: new G, openOnSingleClick: !0, selectionNavigation: !0, overrideStyles: { listBackground: ne.M8 } }; this._defaultTreeKeyboardSupport && this._callOnDispose.add(L.mu(this ._treeContainer, "keydown", (e => { e.equals(9) && (this._keybindingService.dispatchEvent(e, e.target), e.stopPropagation()) }), !0)), this._tree = this._instantiationService.createInstance(de, "ReferencesWidget", this._treeContainer, new q, [this._instantiationService .createInstance(Q), this._instantiationService.createInstance(J) ], this._instantiationService.createInstance($), t), this._splitView .addView({ onDidChange: D.ju.None, element: this._previewContainer, minimumSize: 200, maximumSize: Number.MAX_VALUE, layout: e => { this._preview.layout({ height: this._dim.height, width: e }) } }, oe.M.Distribute), this._splitView.addView({ onDidChange: D.ju.None, element: this._treeContainer, minimumSize: 100, maximumSize: Number.MAX_VALUE, layout: e => { this._treeContainer.style.height = `${this._dim.height}px`, this ._treeContainer.style.width = `${e}px`, this._tree.layout(this._dim .height, e) } }, oe.M.Distribute), this._disposables.add(this._splitView.onDidSashChange( (() => { this._dim.width && (this.layoutData.ratio = this._splitView.getViewSize( 0) / this._dim.width) }), void 0)); let i = (e, t) => { e instanceof h.WX && ("show" === t && this._revealReference(e, !1), this._onDidSelectReference.fire({ element: e, kind: t, source: "tree" })) }; this._tree.onDidOpen((e => { e.sideBySide ? i(e.element, "side") : e.editorOptions.pinned ? i( e.element, "goto") : i(e.element, "show") })), L.Cp(this._treeContainer) } _onWidth(e) { this._dim && this._doLayoutBody(this._dim.height, e) } _doLayoutBody(e, t) { super._doLayoutBody(e, t), this._dim = new L.Ro(t, e), this.layoutData .heightInLines = this._viewZone ? this._viewZone.heightInLines : this.layoutData.heightInLines, this._splitView.layout(t), this._splitView .resizeView(0, t * this.layoutData.ratio) } setSelection(e) { return this._revealReference(e, !0).then((() => { this._model && (this._tree.setSelection([e]), this._tree.setFocus( [e])) })) } setModel(e) { return this._disposeOnNewModel.clear(), this._model = e, this._model ? this._onNewModel() : Promise.resolve() } _onNewModel() { return this._model ? this._model.isEmpty ? (this.setTitle(""), this._messageContainer .innerText = n.N("noResults", "No results"), L.$Z(this._messageContainer), Promise.resolve(void 0)) : (L.Cp(this._messageContainer), this._decorationsManager = new le(this._preview, this._model), this._disposeOnNewModel.add( this._decorationsManager), this._disposeOnNewModel.add(this._model .onDidChangeReferenceRange((e => this._tree.rerender(e)))), this._disposeOnNewModel .add(this._preview.onMouseDown((e => { const { event: t, target: i } = e; if (2 !== t.detail) return; const n = this._getFocusedReference(); n && this._onDidSelectReference.fire({ element: { uri: n.uri, range: i.range }, kind: t.ctrlKey || t.metaKey || t.altKey ? "side" : "open", source: "editor" }) }))), this.container.classList.add("results-loaded"), L.$Z(this._treeContainer), L.$Z(this._previewContainer), this._splitView.layout(this._dim.width), this.focusOnReferenceTree(), this._tree.setInput(1 === this._model.groups .length ? this._model.groups[0] : this._model)) : Promise.resolve( void 0) } _getFocusedReference() { const [e] = this._tree.getFocus(); return e instanceof h.WX ? e : e instanceof h.F2 && e.children.length > 0 ? e.children[0] : void 0 } revealReference(e) { return ae(this, void 0, void 0, (function*() { yield this._revealReference(e, !1), this._onDidSelectReference.fire({ element: e, kind: "goto", source: "tree" }) })) } _revealReference(e, t) { return ae(this, void 0, void 0, (function*() { if (this._revealedReference === e) return; this._revealedReference = e, e.uri.scheme !== E.lg.inMemory ? this.setTitle((0, I.Hx)(e.uri), this._uriLabel.getUriLabel((0, I .XX)(e.uri))) : this.setTitle(n.N("peekView.alternateTitle", "References")); const i = this._textModelResolverService.createModelReference(e.uri); this._tree.getInput() === e.parent || (t && this._tree.reveal(e.parent), yield this._tree.expand(e.parent)), this._tree.reveal(e); const o = yield i; if (!this._model) return void o.dispose(); (0, r.B9)(this._previewModelReference); const s = o.object; if (s) { const t = this._preview.getModel() === s.textEditorModel ? 0 : 1, i = M.e.lift(e.range).collapseToStart(); this._previewModelReference = o, this._preview.setModel(s.textEditorModel), this._preview.setSelection(i), this._preview.revealRangeInCenter( i, t) } else this._preview.setModel(this._previewNotAvailableMessage), o.dispose() })) } }; ce = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([se(3, B.XE), se(4, R.S), se(5, a.TG), se(6, ne.Fw), se(7, F.e), se(8, re.tJ), se(9, V.d)], ce), (0, B.Ic)(((e, t) => { const i = e.getColor(ne.F8); i && t.addRule( `.monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight { background-color: ${i}; }` ); const n = e.getColor(ne.WL); n && t.addRule( `.monaco-editor .reference-zone-widget .preview .reference-decoration { background-color: ${n}; }` ); const o = e.getColor(ne.xH); o && t.addRule( `.monaco-editor .reference-zone-widget .preview .reference-decoration { border: 2px solid ${o}; box-sizing: border-box; }` ); const r = e.getColor(ie.xL); r && t.addRule( `.monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight { border: 1px dotted ${r}; box-sizing: border-box; }` ); const s = e.getColor(ne.M8); s && t.addRule( `.monaco-editor .reference-zone-widget .ref-tree { background-color: ${s}; }` ); const a = e.getColor(ne.xk); a && t.addRule( `.monaco-editor .reference-zone-widget .ref-tree { color: ${a}; }`); const l = e.getColor(ne.a7); l && t.addRule( `.monaco-editor .reference-zone-widget .ref-tree .reference-file { color: ${l}; }` ); const d = e.getColor(ne.Zj); d && t.addRule( `.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows > .monaco-list-row.selected:not(.highlighted) { background-color: ${d}; }` ); const c = e.getColor(ne.IY); c && t.addRule( `.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows > .monaco-list-row.selected:not(.highlighted) { color: ${c} !important; }` ); const h = e.getColor(ne.RX); h && t.addRule( `.monaco-editor .reference-zone-widget .preview .monaco-editor .monaco-editor-background,.monaco-editor .reference-zone-widget .preview .monaco-editor .inputarea.ime-input {\tbackground-color: ${h};}` ); const u = e.getColor(ne.sH); u && t.addRule( `.monaco-editor .reference-zone-widget .preview .monaco-editor .margin {\tbackground-color: ${u};}` ) })); var he = i(187), ue = i(9422), ge = i(5393), pe = i(9989), me = i(2258), fe = i(4565), _e = function(e, t) { return function(i, n) { t(i, n, e) } }, be = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; const ve = new l.uy("referenceSearchVisible", !1, n.N( "referenceSearchVisible", "Whether reference peek is visible, like 'Peek References' or 'Peek Definition'" )); let we = class e { constructor(e, t, i, n, o, s, a, l) { this._defaultTreeKeyboardSupport = e, this._editor = t, this._editorService = n, this._notificationService = o, this._instantiationService = s, this._storageService = a, this._configurationService = l, this._disposables = new r.SL, this._requestIdPool = 0, this._ignoreModelChangeEvent = !1, this._referenceSearchVisible = ve.bindTo(i) } static get(t) { return t.getContribution(e.ID) } dispose() { var e, t; this._referenceSearchVisible.reset(), this._disposables.dispose(), null === (e = this._widget) || void 0 === e || e.dispose(), null === (t = this._model) || void 0 === t || t.dispose(), this._widget = void 0, this._model = void 0 } toggleWidget(e, t, i) { let o; if (this._widget && (o = this._widget.position), this.closeWidget(), o && e.containsPosition(o)) return; this._peekMode = i, this._referenceSearchVisible.set(!0), this._disposables .add(this._editor.onDidChangeModelLanguage((() => { this.closeWidget() }))), this._disposables.add(this._editor.onDidChangeModel((() => { this._ignoreModelChangeEvent || this.closeWidget() }))); const r = "peekViewLayout", s = class { constructor() { this.ratio = .7, this.heightInLines = 18 } static fromJSON(e) { let t, i; try { const n = JSON.parse(e); t = n.ratio, i = n.heightInLines } catch (e) {} return { ratio: t || .7, heightInLines: i || 18 } } }.fromJSON(this._storageService.get(r, 0, "{}")); this._widget = this._instantiationService.createInstance(ce, this._editor, this._defaultTreeKeyboardSupport, s), this._widget.setTitle(n.N( "labelLoading", "Loading...")), this._widget.show(e), this._disposables .add(this._widget.onDidClose((() => { t.cancel(), this._widget && (this._storageService.store(r, JSON.stringify( this._widget.layoutData), 0, 1), this._widget = void 0), this.closeWidget() }))), this._disposables.add(this._widget.onDidSelectReference((e => { let { element: t, kind: n } = e; if (t) switch (n) { case "open": "editor" === e.source && this._configurationService.getValue( "editor.stablePeek") || this.openReference(t, !1, !1); break; case "side": this.openReference(t, !0, !1); break; case "goto": i ? this._gotoReference(t) : this.openReference(t, !1, !0) } }))); const a = ++this._requestIdPool; t.then((t => { var i; if (a === this._requestIdPool && this._widget) return null === (i = this._model) || void 0 === i || i.dispose(), this._model = t, this._widget.setModel(this._model).then((() => { if (this._widget && this._model && this._editor.hasModel()) { this._model.isEmpty ? this._widget.setMetaTitle("") : this._widget .setMetaTitle(n.N("metaTitle.N", "{0} ({1})", this._model.title, this._model.references.length)); let t = this._editor.getModel().uri, i = new he.L(e.startLineNumber, e.startColumn), o = this._model.nearestReference(t, i); if (o) return this._widget.setSelection(o).then((() => { this._widget && "editor" === this._editor.getOption(76) && this._widget.focusOnPreviewEditor() })) } })); t.dispose() }), (e => { this._notificationService.error(e) })) } changeFocusBetweenPreviewAndReferences() { this._widget && (this._widget.isPreviewEditorFocused() ? this._widget .focusOnReferenceTree() : this._widget.focusOnPreviewEditor()) } goToNextOrPreviousReference(e) { return be(this, void 0, void 0, (function*() { if (!this._editor.hasModel() || !this._model || !this._widget) return; const t = this._widget.position; if (!t) return; const i = this._model.nearestReference(this._editor.getModel().uri, t); if (!i) return; const n = this._model.nextOrPreviousReference(i, e), o = this._editor.hasTextFocus(), r = this._widget.isPreviewEditorFocused(); yield this._widget.setSelection(n), yield this._gotoReference(n), o ? this._editor.focus() : this._widget && r && this._widget.focusOnPreviewEditor() })) } revealReference(e) { return be(this, void 0, void 0, (function*() { this._editor.hasModel() && this._model && this._widget && (yield this ._widget.revealReference(e)) })) } closeWidget(e = !0) { var t, i; null === (t = this._widget) || void 0 === t || t.dispose(), null === (i = this._model) || void 0 === i || i.dispose(), this._referenceSearchVisible .reset(), this._disposables.clear(), this._widget = void 0, this._model = void 0, e && this._editor.focus(), this._requestIdPool += 1 } _gotoReference(t) { this._widget && this._widget.hide(), this._ignoreModelChangeEvent = ! 0; const i = M.e.lift(t.range).collapseToStart(); return this._editorService.openCodeEditor({ resource: t.uri, options: { selection: i } }, this._editor).then((t => { var n; if (this._ignoreModelChangeEvent = !1, t && this._widget) if (this._editor === t) this._widget.show(i), this._widget.focusOnReferenceTree(); else { const o = e.get(t), r = this._model.clone(); this.closeWidget(), t.focus(), o.toggleWidget(i, (0, ge.PG)((e => Promise.resolve(r))), null !== (n = this._peekMode) && void 0 !== n && n) } else this.closeWidget() }), (e => { this._ignoreModelChangeEvent = !1, (0, o.dL)(e) })) } openReference(e, t, i) { t || this.closeWidget(); const { uri: n, range: o } = e; this._editorService.openCodeEditor({ resource: n, options: { selection: o, pinned: i } }, this._editor, t) } }; function Ce(e, t) { const i = (0, ne.rc)(e); if (!i) return; let n = we.get(i); n && t(n) } we.ID = "editor.contrib.referencesController", we = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([_e(2, l.i6), _e(3, s.$), _e(4, ue.lT), _e(5, a.TG), _e(6, c.Uy), _e(7, d.Ui)], we), pe.W.registerCommandAndKeybindingRule({ id: "togglePeekWidgetFocus", weight: 100, primary: (0, me.gx)(2089, 60), when: l.Ao.or(ve, ne.Jy.inPeekEditor), handler(e) { Ce(e, (e => { e.changeFocusBetweenPreviewAndReferences() })) } }), pe.W.registerCommandAndKeybindingRule({ id: "goToNextReference", weight: 90, primary: 62, secondary: [70], when: l.Ao.or(ve, ne.Jy.inPeekEditor), handler(e) { Ce(e, (e => { e.goToNextOrPreviousReference(!0) })) } }), pe.W.registerCommandAndKeybindingRule({ id: "goToPreviousReference", weight: 90, primary: 1086, secondary: [1094], when: l.Ao.or(ve, ne.Jy.inPeekEditor), handler(e) { Ce(e, (e => { e.goToNextOrPreviousReference(!1) })) } }), fe.P.registerCommandAlias("goToNextReferenceFromEmbeddedEditor", "goToNextReference"), fe.P.registerCommandAlias( "goToPreviousReferenceFromEmbeddedEditor", "goToPreviousReference"), fe .P.registerCommandAlias("closeReferenceSearchEditor", "closeReferenceSearch"), fe.P.registerCommand("closeReferenceSearch", ( e => Ce(e, (e => e.closeWidget())))), pe.W.registerKeybindingRule({ id: "closeReferenceSearch", weight: -1, primary: 9, secondary: [1033], when: l.Ao.and(ne.Jy.inPeekEditor, l.Ao.not("config.editor.stablePeek")) }), pe.W.registerKeybindingRule({ id: "closeReferenceSearch", weight: 250, primary: 9, secondary: [1033], when: l.Ao.and(ve, l.Ao.not("config.editor.stablePeek")) }), pe.W.registerCommandAndKeybindingRule({ id: "revealReference", weight: 200, primary: 3, mac: { primary: 3, secondary: [2066] }, when: l.Ao.and(ve, te.CQ), handler(e) { var t; const i = null === (t = e.get(te.Lw).lastFocusedList) || void 0 === t ? void 0 : t.getFocus(); Array.isArray(i) && i[0] instanceof h.WX && Ce(e, (e => e.revealReference( i[0]))) } }), pe.W.registerCommandAndKeybindingRule({ id: "openReferenceToSide", weight: 100, primary: 2051, mac: { primary: 259 }, when: l.Ao.and(ve, te.CQ), handler(e) { var t; const i = null === (t = e.get(te.Lw).lastFocusedList) || void 0 === t ? void 0 : t.getFocus(); Array.isArray(i) && i[0] instanceof h.WX && Ce(e, (e => e.openReference( i[0], !0, !0))) } }), fe.P.registerCommand("openReference", (e => { var t; const i = null === (t = e.get(te.Lw).lastFocusedList) || void 0 === t ? void 0 : t.getFocus(); Array.isArray(i) && i[0] instanceof h.WX && Ce(e, (e => e.openReference( i[0], !1, !0))) })) }, 1455: (e, t, i) => { "use strict"; i.d(t, { WX: () => u, F2: () => p, oQ: () => m }); var n = i(3580), o = i(4669), r = i(5935), s = i(5976), a = i(7295), l = i(4742), d = i(4314), c = i(3702), h = i(7301); class u { constructor(e, t, i, n) { this.isProviderFirst = e, this.parent = t, this.link = i, this._rangeCallback = n, this.id = l.a.nextId() } get uri() { return this.link.uri } get range() { var e, t; return null !== (t = null !== (e = this._range) && void 0 !== e ? e : this.link.targetSelectionRange) && void 0 !== t ? t : this.link.range } set range(e) { this._range = e, this._rangeCallback(this) } get ariaMessage() { var e; const t = null === (e = this.parent.getPreview(this)) || void 0 === e ? void 0 : e.preview(this.range); return t ? (0, n.N)({ key: "aria.oneReference.preview", comment: [ "Placeholders are: 0: filename, 1:line number, 2: column number, 3: preview snippet of source code" ] }, "symbol in {0} on line {1} at column {2}, {3}", (0, r.EZ)(this.uri), this.range.startLineNumber, this.range.startColumn, t.value) : (0, n .N)("aria.oneReference", "symbol in {0} on line {1} at column {2}", ( 0, r.EZ)(this.uri), this.range.startLineNumber, this.range.startColumn) } } class g { constructor(e) { this._modelReference = e } dispose() { this._modelReference.dispose() } preview(e, t = 8) { const i = this._modelReference.object.textEditorModel; if (!i) return; const { startLineNumber: n, startColumn: o, endLineNumber: r, endColumn: s } = e, a = i.getWordUntilPosition({ lineNumber: n, column: o - t }), l = new d.e(n, a.startColumn, n, o), c = new d.e(r, s, r, 1073741824), h = i.getValueInRange(l).replace(/^\s+/, ""), u = i.getValueInRange( e); return { value: h + u + i.getValueInRange(c).replace(/\s+$/, ""), highlight: { start: h.length, end: h.length + u.length } } } } class p { constructor(e, t) { this.parent = e, this.uri = t, this.children = [], this._previews = new c.Y9 } dispose() { (0, s.B9)(this._previews.values()), this._previews.clear() } getPreview(e) { return this._previews.get(e.uri) } get ariaMessage() { const e = this.children.length; return 1 === e ? (0, n.N)("aria.fileReferences.1", "1 symbol in {0}, full path {1}", (0, r.EZ)(this.uri), this.uri.fsPath ) : (0, n.N)("aria.fileReferences.N", "{0} symbols in {1}, full path {2}", e, (0, r.EZ)(this.uri), this.uri .fsPath) } resolve(e) { return t = this, i = void 0, o = function*() { if (0 !== this._previews.size) return this; for (let t of this.children) if (!this._previews.has(t.uri)) try { const i = yield e.createModelReference(t.uri); this._previews.set(t.uri, new g(i)) } catch (e) { (0, h.dL)(e) } return this }, new((n = void 0) || (n = Promise))((function(e, r) { function s(e) { try { l(o.next(e)) } catch (e) { r(e) } } function a(e) { try { l(o.throw(e)) } catch (e) { r(e) } } function l(t) { var i; t.done ? e(t.value) : (i = t.value, i instanceof n ? i : new n(( function(e) { e(i) }))).then(s, a) } l((o = o.apply(t, i || [])).next()) })); var t, i, n, o } } class m { constructor(e, t) { this.groups = [], this.references = [], this._onDidChangeReferenceRange = new o.Q5, this.onDidChangeReferenceRange = this._onDidChangeReferenceRange .event, this._links = e, this._title = t; const [i] = e; let n; e.sort(m._compareReferences); for (let t of e) if (n && r.SF.isEqual(n.uri, t.uri, !0) || (n = new p(this, t.uri), this.groups.push(n)), 0 === n.children.length || 0 !== m._compareReferences( t, n.children[n.children.length - 1])) { const e = new u(i === t, n, t, (e => this._onDidChangeReferenceRange .fire(e))); this.references.push(e), n.children.push(e) } } dispose() { (0, s.B9)(this.groups), this._onDidChangeReferenceRange.dispose(), this.groups.length = 0 } clone() { return new m(this._links, this._title) } get title() { return this._title } get isEmpty() { return 0 === this.groups.length } get ariaMessage() { return this.isEmpty ? (0, n.N)("aria.result.0", "No results found") : 1 === this.references.length ? (0, n.N)("aria.result.1", "Found 1 symbol in {0}", this.references[0].uri.fsPath) : 1 === this .groups.length ? (0, n.N)("aria.result.n1", "Found {0} symbols in {1}", this.references.length, this.groups[0].uri .fsPath) : (0, n.N)("aria.result.nm", "Found {0} symbols in {1} files", this.references.length, this.groups .length) } nextOrPreviousReference(e, t) { let { parent: i } = e, n = i.children.indexOf(e), o = i.children.length, r = i.parent.groups .length; return 1 === r || t && n + 1 < o || !t && n > 0 ? (n = t ? (n + 1) % o : (n + o - 1) % o, i.children[n]) : (n = i.parent.groups.indexOf(i), t ? (n = (n + 1) % r, i.parent.groups[n].children[0]) : (n = (n + r - 1) % r, i.parent.groups[n].children[i.parent.groups[n].children.length - 1])) } nearestReference(e, t) { const i = this.references.map(((i, n) => ({ idx: n, prefixLen: a.Mh(i.uri.toString(), e.toString()), offsetDist: 100 * Math.abs(i.range.startLineNumber - t.lineNumber) + Math.abs(i.range.startColumn - t.column) }))).sort(((e, t) => e.prefixLen > t.prefixLen ? -1 : e.prefixLen < t .prefixLen ? 1 : e.offsetDist < t.offsetDist ? -1 : e.offsetDist > t.offsetDist ? 1 : 0))[0]; if (i) return this.references[i.idx] } referenceAt(e, t) { for (const i of this.references) if (i.uri.toString() === e.toString() && d.e.containsPosition(i.range, t)) return i } firstReference() { for (const e of this.references) if (e.isProviderFirst) return e; return this.references[0] } static _compareReferences(e, t) { return r.SF.compare(e.uri, t.uri) || d.e.compareRangesUsingStarts(e.range, t.range) } } }, 3285: (e, t, i) => { "use strict"; i.r(t), i.d(t, { ModesHoverController: () => et }); var n = i(3580), o = i(2258), r = i(5976), s = i(6830), a = i(4314), l = i(9102), d = i(1531), c = i(5321), h = i(187), u = i(6281), g = i(4101), p = i(5393), m = i(7301); class f { constructor(e, t, i, n, o) { this._computer = e, this._state = 0, this._hoverTime = o, this._firstWaitScheduler = new p.pY((() => this._triggerAsyncComputation()), 0), this._secondWaitScheduler = new p.pY((() => this._triggerSyncComputation()), 0), this._loadingMessageScheduler = new p.pY((() => this._showLoadingMessage()), 0), this._asyncComputationPromise = null, this._asyncComputationPromiseDone = !1, this._completeCallback = t, this._errorCallback = i, this._progressCallback = n } setHoverTime(e) { this._hoverTime = e } _firstWaitTime() { return this._hoverTime / 2 } _secondWaitTime() { return this._hoverTime / 2 } _loadingMessageTime() { return 3 * this._hoverTime } _triggerAsyncComputation() { this._state = 2, this._secondWaitScheduler.schedule(this._secondWaitTime()), this._computer.computeAsync ? (this._asyncComputationPromiseDone = !1, this._asyncComputationPromise = (0, p.PG)((e => this._computer.computeAsync( e))), this._asyncComputationPromise.then((e => { this._asyncComputationPromiseDone = !0, this._withAsyncResult(e) }), (e => this._onError(e)))) : this._asyncComputationPromiseDone = ! 0 } _triggerSyncComputation() { this._computer.computeSync && this._computer.onResult(this._computer.computeSync(), ! 0), this._asyncComputationPromiseDone ? (this._state = 0, this._onComplete( this._computer.getResult())) : (this._state = 3, this._onProgress( this._computer.getResult())) } _showLoadingMessage() { 3 === this._state && this._onProgress(this._computer.getResultWithLoadingMessage()) } _withAsyncResult(e) { e && this._computer.onResult(e, !1), 3 === this._state && (this._state = 0, this._onComplete(this._computer.getResult())) } _onComplete(e) { this._completeCallback(e) } _onError(e) { this._errorCallback ? this._errorCallback(e) : (0, m.dL)(e) } _onProgress(e) { this._progressCallback(e) } start(e) { if (0 === e) 0 === this._state && (this._state = 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() } } cancel() { this._loadingMessageScheduler.cancel(), 1 === this._state && this._firstWaitScheduler .cancel(), 2 === this._state && (this._secondWaitScheduler.cancel(), this._asyncComputationPromise && (this._asyncComputationPromise.cancel(), this._asyncComputationPromise = null)), 3 === this._state && this._asyncComputationPromise && (this._asyncComputationPromise.cancel(), this._asyncComputationPromise = null), this._state = 0 } } var _ = i(9488), b = i(3794), v = i(6781), w = i(3379), C = i.n(w), y = i(7795), S = i.n(y), x = i(569), k = i.n(x), L = i(3565), N = i.n(L), D = i(9216), E = i.n(D), I = i(4589), T = i.n(I), M = i(3039), A = {}; A.styleTagTransform = T(), A.setAttributes = N(), A.insert = k().bind( null, "head"), A.domAPI = S(), A.insertStyleElement = E(), C()(M.Z, A), M.Z && M.Z.locals && M.Z.locals; const R = c.$; class O extends r.JT { 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 v.s$( this.contentsDomNode, { consumeMouseWheelIfScrollbarIsNeeded: !0 })), this.containerDomNode.appendChild(this._scrollbar.getDomNode()) } onContentsChanged() { this._scrollbar.scanDomNode() } } class P extends r.JT { constructor(e, t, i) { super(), this.actionContainer = c.R3(e, R("div.action-container")), this.action = c.R3(this.actionContainer, R("a.action")), this.action .setAttribute("href", "#"), this.action.setAttribute("role", "button"), t.iconClass && c.R3(this.action, R( `span.icon.${t.iconClass}`)), c.R3(this.action, R("span")).textContent = i ? `${t.label} (${i})` : t.label, this._register(c.nm(this.actionContainer, c.tw.CLICK, (e => { e.stopPropagation(), e.preventDefault(), t.run(this.actionContainer) }))), this.setEnabled(!0) } static render(e, t, i) { return new P(e, t, i) } setEnabled(e) { e ? (this.actionContainer.classList.remove("disabled"), this.actionContainer .removeAttribute("aria-disabled")) : (this.actionContainer.classList .add("disabled"), this.actionContainer.setAttribute("aria-disabled", "true")) } } var F = i(8674), B = i(5935), W = i(6479), z = i(988), V = i(5091), H = i(1907), U = i(787), j = i(9532), K = i(535), $ = i(7781), q = i(3910), Z = function(e, t) { return function(i, n) { t(i, n, e) } }; const G = c.$; class Y { constructor(e, t, i) { this.owner = e, this.range = t, this.marker = i } isValidForHoverAnchor(e) { return 1 === e.type && this.range.startColumn <= e.range.startColumn && this.range.endColumn >= e.range.endColumn } } const Q = { type: 1, filter: { include: j.yN.QuickFix } }; let X = class { constructor(e, t, i, n) { this._editor = e, this._hover = t, this._markerDecorationsService = i, this._openerService = n, this.recentMarkerCodeActionsInfo = void 0 } computeSync(e, t) { if (!this._editor.hasModel() || 1 !== e.type) return []; const i = this._editor.getModel(), n = e.range.startLineNumber, o = i.getLineMaxColumn(n), r = []; for (const s of t) { const t = s.range.startLineNumber === n ? s.range.startColumn : 1, l = s.range.endLineNumber === n ? s.range.endColumn : o, d = this._markerDecorationsService.getMarker(i.uri, s); if (!d) continue; const c = new a.e(e.range.startLineNumber, t, e.range.startLineNumber, l); r.push(new Y(this, c, d)) } return r } renderHoverParts(e, t, i) { if (!e.length) return r.JT.None; const n = new r.SL; e.forEach((e => t.appendChild(this.renderMarkerHover(e, n)))); const o = 1 === e.length ? e[0] : e.sort(((e, t) => F.ZL.compare(e.marker .severity, t.marker.severity)))[0]; return this.renderMarkerStatusbar(o, i, n), n } renderMarkerHover(e, t) { const i = G("div.hover-row"), n = c.R3(i, G("div.marker.hover-contents")), { source: o, message: r, code: s, relatedInformation: a } = e.marker; this._editor.applyFontInfo(n); const l = c.R3(n, G("span")); if (l.style.whiteSpace = "pre-wrap", l.innerText = r, o || s) if (s && "string" != typeof s) { const e = G("span"); o && (c.R3(e, G("span")).innerText = o); const i = c.R3(e, G("a.code-link")); i.setAttribute("href", s.target.toString()), t.add(c.nm(i, "click", ( e => { this._openerService.open(s.target, { allowCommands: !0 }), e.preventDefault(), e.stopPropagation() }))), c.R3(i, G("span")).innerText = s.value; const r = c.R3(n, e); r.style.opacity = "0.6", r.style.paddingLeft = "6px" } else { const e = c.R3(n, G("span")); e.style.opacity = "0.6", e.style.paddingLeft = "6px", e.innerText = o && s ? `${o}(${s})` : o || `(${s})` } if ((0, _.Of)(a)) for (const { message: e, resource: i, startLineNumber: o, startColumn: r } of a) { const s = c.R3(n, G("div")); s.style.marginTop = "8px"; const a = c.R3(s, G("a")); a.innerText = `${(0,B.EZ)(i)}(${o}, ${r}): `, a.style.cursor = "pointer", t.add(c.nm(a, "click", (e => { e.stopPropagation(), e.preventDefault(), this._openerService && this._openerService.open(i, { fromUserGesture: !0, editorOptions: { selection: { startLineNumber: o, startColumn: r } } }).catch(m.dL) }))); const l = c.R3(s, G("span")); l.innerText = e, this._editor.applyFontInfo(l) } return i } renderMarkerStatusbar(e, t, i) { if (e.marker.severity !== F.ZL.Error && e.marker.severity !== F.ZL.Warning && e.marker.severity !== F.ZL.Info || t.addAction({ label: n.N("view problem", "View Problem"), commandId: V.NextMarkerAction.ID, run: () => { this._hover.hide(), V.MarkerController.get(this._editor).showAtMarker( e.marker), this._editor.focus() } }), !this._editor.getOption(80)) { const o = t.append(G("div")); this.recentMarkerCodeActionsInfo && (F.H0.makeKey(this.recentMarkerCodeActionsInfo .marker) === F.H0.makeKey(e.marker) ? this.recentMarkerCodeActionsInfo .hasCodeActions || (o.textContent = n.N("noQuickFixes", "No quick fixes available")) : this.recentMarkerCodeActionsInfo = void 0); const s = this.recentMarkerCodeActionsInfo && !this.recentMarkerCodeActionsInfo .hasCodeActions ? r.JT.None : i.add((0, p.Vg)((() => o.textContent = n.N("checkingForQuickFixes", "Checking for quick fixes...")), 200)); o.textContent || (o.textContent = String.fromCharCode(160)); const a = this.getCodeActions(e.marker); i.add((0, r.OF)((() => a.cancel()))), a.then((a => { if (s.dispose(), this.recentMarkerCodeActionsInfo = { marker: e.marker, hasCodeActions: a.validActions.length > 0 }, !this.recentMarkerCodeActionsInfo.hasCodeActions) return a.dispose(), void(o.textContent = n.N("noQuickFixes", "No quick fixes available")); o.style.display = "none"; let l = !1; i.add((0, r.OF)((() => { l || a.dispose() }))), t.addAction({ label: n.N("quick fixes", "Quick Fix..."), commandId: U.E7.Id, run: e => { l = !0; const t = U.pY.get(this._editor), i = c.i(e); this._hover.hide(), t.showCodeActions(Q, a, { x: i.left + 6, y: i.top + i.height + 6 }) } }) }), m.dL) } } getCodeActions(e) { return (0, p.PG)((t => (0, H.aI)(this._editor.getModel(), new a.e(e.startLineNumber, e.startColumn, e.endLineNumber, e.endColumn), Q, K.E.None, t))) } }; X = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([Z(2, W.i), Z(3, z.v4)], X), (0, $.Ic)(((e, t) => { const i = e.getColor(q.ur); i && t.addRule( `.monaco-hover .hover-contents a.code-link span { color: ${i}; }`); const n = e.getColor(q.sg); n && t.addRule( `.monaco-hover .hover-contents a.code-link span:hover { color: ${n}; }` ) })); var J = i(2065), ee = i(9365), te = i(3947), ie = i(1050); function ne(e, t, i) { const n = g.xp.ordered(e).map((n => Promise.resolve(n.provideHover(e, t, i)).then((e => e && function(e) { const t = void 0 !== e.range, i = void 0 !== e.contents && e.contents && e.contents.length > 0; return t && i }(e) ? e : void 0), (e => { (0, m.Cp)(e) })))); return Promise.all(n).then(_.kX) }(0, s.sb)("_executeHoverProvider", ((e, t) => ne(e, t, ie.T.None))); var oe = i(3108), re = function(e, t) { return function(i, n) { t(i, n, e) } }; const se = c.$; class ae { constructor(e, t, i) { this.owner = e, this.range = t, this.contents = i } isValidForHoverAnchor(e) { return 1 === e.type && this.range.startColumn <= e.range.startColumn && this.range.endColumn >= e.range.endColumn } } let le = class { constructor(e, t, i, n, o) { this._editor = e, this._hover = t, this._modeService = i, this._openerService = n, this._configurationService = o } createLoadingMessage(e) { return new ae(this, e.range, [(new ee.W5).appendText(n.N( "modesContentHover.loading", "Loading..."))]) } computeSync(e, t) { if (!this._editor.hasModel() || 1 !== e.type) return []; const i = this._editor.getModel(), o = e.range.startLineNumber, r = i.getLineMaxColumn(o), s = []; for (const i of t) { const t = i.range.startLineNumber === o ? i.range.startColumn : 1, n = i.range.endLineNumber === o ? i.range.endColumn : r, l = i.options.hoverMessage; if (!l || (0, ee.CP)(l)) continue; const d = new a.e(e.range.startLineNumber, t, e.range.startLineNumber, n); s.push(new ae(this, d, (0, _._2)(l))) } const l = this._editor.getModel().getLineLength(o), d = this._configurationService.getValue( "editor.maxTokenizationLineLength"); return "number" == typeof d && l >= d && s.push(new ae(this, new a.e( o, 1, o, l + 1), [{ value: n.N("too many characters", "Tokenization is skipped for long lines for performance reasons. This can be configured via `editor.maxTokenizationLineLength`." ) }])), s } computeAsync(e, t, i) { return n = this, o = void 0, s = function*() { if (!this._editor.hasModel() || 1 !== e.type) return Promise.resolve( []); const t = this._editor.getModel(); if (!g.xp.has(t)) return Promise.resolve([]); const n = yield ne(t, new h.L(e.range.startLineNumber, e.range.startColumn), i), o = []; for (const t of n) { if ((0, ee.CP)(t.contents)) continue; const i = t.range ? a.e.lift(t.range) : e.range; o.push(new ae(this, i, t.contents)) } return o }, new((r = void 0) || (r = Promise))((function(e, t) { function i(e) { try { l(s.next(e)) } catch (e) { t(e) } } function a(e) { try { l(s.throw(e)) } catch (e) { t(e) } } function l(t) { var n; t.done ? e(t.value) : (n = t.value, n instanceof r ? n : new r(( function(e) { e(n) }))).then(i, a) } l((s = s.apply(n, o || [])).next()) })); var n, o, r, s } renderHoverParts(e, t, i) { const n = new r.SL; for (const i of e) for (const e of i.contents) { if ((0, ee.CP)(e)) continue; const i = se("div.hover-row.markdown-hover"), o = c.R3(i, se("div.hover-contents")), r = n.add(new te.$({ editor: this._editor }, this._modeService, this._openerService)); n.add(r.onDidRenderAsync((() => { o.className = "hover-contents code-hover-contents", this._hover .onContentsChanged() }))); const s = n.add(r.render(e)); o.appendChild(s.element), t.appendChild(i) } return n } }; le = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([re(2, d.h), re(3, z.v4), re(4, oe.Ui)], le); class de { constructor(e, t) { this.priority = e, this.range = t, this.type = 1 } equals(e) { return 1 === e.type && this.range.equalsRange(e.range) } canAdoptVisibleHover(e, t) { return 1 === e.type && t.lineNumber === this.range.startLineNumber } } class ce { constructor(e, t, i) { this.priority = e, this.owner = t, this.range = i, this.type = 2 } equals(e) { return 2 === e.type && this.owner === e.owner } canAdoptVisibleHover(e, t) { return 2 === e.type && this.owner === e.owner } } var he = i(3167), ue = i(4565), ge = i(4144), pe = i(8819), me = i(1106), fe = function(e, t) { return function(i, n) { t(i, n, e) } }; class _e { constructor(e, t, i) { this.owner = e, this.range = t, this.controller = i } isValidForHoverAnchor(e) { return 1 === e.type && this.range.startColumn <= e.range.startColumn && this.range.endColumn >= e.range.endColumn } hasMultipleSuggestions() { return this.controller.hasMultipleInlineCompletions() } } let be = class { constructor(e, t, i, n, o, r, s, a) { this._editor = e, this._hover = t, this._commandService = i, this._menuService = n, this._contextKeyService = o, this._modeService = r, this._openerService = s, this.accessibilityService = a } suggestHoverAnchor(e) { const t = he.GhostTextController.get(this._editor); if (!t) return null; if (8 === e.target.type) { const i = e.target.detail; if (t.shouldShowHoverAtViewZone(i.viewZoneId)) return new ce(1e3, this, a.e.fromPositions(i.positionBefore || i.position, i.positionBefore || i.position)) } return 7 === e.target.type && e.target.range && t.shouldShowHoverAt(e .target.range) || 6 === e.target.type && e.target.range && e.target .detail && e.target.detail.mightBeForeignElement && t.shouldShowHoverAt( e.target.range) ? new ce(1e3, this, e.target.range) : null } computeSync(e, t) { const i = he.GhostTextController.get(this._editor); return i && i.shouldShowHoverAt(e.range) ? [new _e(this, e.range, i)] : [] } renderHoverParts(e, t, i) { const o = new r.SL, s = e[0]; this.accessibilityService.isScreenReaderOptimized() && this.renderScreenReaderText( s, t, o); const a = o.add(this._menuService.createMenu(ge.eH.InlineCompletionsActions, this._contextKeyService)), l = i.addAction({ label: n.N("showNextInlineSuggestion", "Next"), commandId: he.ShowNextInlineSuggestionAction.ID, run: () => this._commandService.executeCommand(he.ShowNextInlineSuggestionAction .ID) }), d = i.addAction({ label: n.N("showPreviousInlineSuggestion", "Previous"), commandId: he.ShowPreviousInlineSuggestionAction.ID, run: () => this._commandService.executeCommand(he.ShowPreviousInlineSuggestionAction .ID) }); i.addAction({ label: n.N("acceptInlineSuggestion", "Accept"), commandId: he.commitInlineSuggestionAction.id, run: () => this._commandService.executeCommand(he.commitInlineSuggestionAction .id) }); const c = [l, d]; for (const e of c) e.setEnabled(!1); s.hasMultipleSuggestions().then((e => { for (const t of c) t.setEnabled(e) })); for (const [e, t] of a.getActions()) for (const e of t) e instanceof ge.U8 && i.addAction({ label: e.label, commandId: e.item.id, run: () => this._commandService.executeCommand(e.item.id) }); return o } renderScreenReaderText(e, t, i) { var o, r; const s = c.$, a = s("div.hover-row.markdown-hover"), l = c.R3(a, s("div.hover-contents")), d = i.add(new te.$({ editor: this._editor }, this._modeService, this._openerService)), h = e => { i.add(d.onDidRenderAsync((() => { l.className = "hover-contents code-hover-contents", this._hover .onContentsChanged() }))); const t = n.N("inlineSuggestionFollows", "Suggestion:"), o = i.add(d.render((new ee.W5).appendText(t).appendCodeblock( "text", e))); l.replaceChildren(o.element) }, u = null === (r = null === (o = e.controller.activeModel) || void 0 === o ? void 0 : o.inlineCompletionsModel) || void 0 === r ? void 0 : r .ghostText; if (u) { const e = this._editor.getModel().getLineContent(u.lineNumber); h(u.renderForScreenReader(e)) } t.appendChild(a) } }; be = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([fe(2, ue.H), fe(3, ge.co), fe(4, pe.i6), fe(5, d.h), fe(6, z.v4), fe( 7, me.F)], be); var ve = i(3308), we = i(4494), Ce = i(1264), ye = i(4669); class Se { constructor(e, t, i) { this.presentationIndex = i, this._onColorFlushed = new ye.Q5, this.onColorFlushed = this._onColorFlushed.event, this._onDidChangeColor = new ye.Q5, this.onDidChangeColor = this._onDidChangeColor.event, this._onDidChangePresentation = new ye.Q5, this.onDidChangePresentation = this._onDidChangePresentation.event, this.originalColor = e, this._color = e, this._colorPresentations = t } 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) } selectNextColorPresentation() { this.presentationIndex = (this.presentationIndex + 1) % this.colorPresentations .length, this.flushColor(), this._onDidChangePresentation.fire(this.presentation) } guessColorPresentation(e, t) { for (let e = 0; e < this.colorPresentations.length; e++) if (t.toLowerCase() === this.colorPresentations[e].label) { this.presentationIndex = e, this._onDidChangePresentation.fire(this.presentation); break } } flushColor() { this._onColorFlushed.fire(this._color) } } var xe = i(6562), ke = {}; ke.styleTagTransform = T(), ke.setAttributes = N(), ke.insert = k().bind( null, "head"), ke.domAPI = S(), ke.insertStyleElement = E(), C()(xe.Z, ke), xe.Z && xe.Z.locals && xe.Z.locals; var Le = i(6268), Ne = i(7974); const De = c.$; class Ee extends r.JT { constructor(e, t, i) { super(), this.model = t, this.domNode = De(".colorpicker-header"), c.R3( e, this.domNode), this.pickedColorNode = c.R3(this.domNode, De( ".picked-color")); const n = c.R3(this.domNode, De(".original-color")); n.style.backgroundColor = Ce.Il.Format.CSS.format(this.model.originalColor) || "", this.backgroundColor = i.getColorTheme().getColor(q.yJ) || Ce.Il .white, this._register((0, $.Ic)(((e, t) => { this.backgroundColor = e.getColor(q.yJ) || Ce.Il.white }))), this._register(c.nm(this.pickedColorNode, c.tw.CLICK, (() => this.model.selectNextColorPresentation()))), this._register(c.nm(n, c.tw.CLICK, (() => { this.model.color = this.model.originalColor, this.model.flushColor() }))), this._register(t.onDidChangeColor(this.onDidChangeColor, this)), this._register(t.onDidChangePresentation(this.onDidChangePresentation, this)), this.pickedColorNode.style.backgroundColor = Ce.Il.Format.CSS .format(t.color) || "", this.pickedColorNode.classList.toggle( "light", t.color.rgba.a < .5 ? this.backgroundColor.isLighter() : t .color.isLighter()) } onDidChangeColor(e) { this.pickedColorNode.style.backgroundColor = Ce.Il.Format.CSS.format( e) || "", this.pickedColorNode.classList.toggle("light", e.rgba.a < .5 ? this.backgroundColor.isLighter() : e.isLighter()), this.onDidChangePresentation() } onDidChangePresentation() { this.pickedColorNode.textContent = this.model.presentation ? this.model .presentation.label : "" } } class Ie extends r.JT { constructor(e, t, i) { super(), this.model = t, this.pixelRatio = i, this.domNode = De( ".colorpicker-body"), c.R3(e, this.domNode), this.saturationBox = new Te(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 Ae( this.domNode, this.model), this._register(this.opacityStrip), this._register( this.opacityStrip.onDidChange(this.onDidOpacityChange, this)), this ._register(this.opacityStrip.onColorFlushed(this.flushColor, this)), this.hueStrip = new Re(this.domNode, this.model), this._register( this.hueStrip), this._register(this.hueStrip.onDidChange(this.onDidHueChange, this)), this._register(this.hueStrip.onColorFlushed(this.flushColor, this)) } flushColor() { this.model.flushColor() } onDidSaturationValueChange({ s: e, v: t }) { const i = this.model.color.hsva; this.model.color = new Ce.Il(new Ce.tx(i.h, e, t, i.a)) } onDidOpacityChange(e) { const t = this.model.color.hsva; this.model.color = new Ce.Il(new Ce.tx(t.h, t.s, t.v, e)) } onDidHueChange(e) { const t = this.model.color.hsva, i = 360 * (1 - e); this.model.color = new Ce.Il(new Ce.tx(360 === i ? 0 : i, t.s, t.v, t .a)) } layout() { this.saturationBox.layout(), this.opacityStrip.layout(), this.hueStrip .layout() } } class Te extends r.JT { constructor(e, t, i) { super(), this.model = t, this.pixelRatio = i, this._onDidChange = new ye .Q5, this.onDidChange = this._onDidChange.event, this._onColorFlushed = new ye.Q5, this.onColorFlushed = this._onColorFlushed.event, this.domNode = De(".saturation-wrap"), c.R3(e, this.domNode), this.canvas = document.createElement("canvas"), this.canvas.className = "saturation-box", c.R3(this.domNode, this.canvas), this.selection = De(".saturation-selection"), c.R3(this.domNode, this.selection), this.layout(), this._register(c.Lo(this.domNode, (e => this.onMouseDown( e)))), this._register(this.model.onDidChangeColor(this.onDidChangeColor, this)), this.monitor = null } onMouseDown(e) { this.monitor = this._register(new Ne.Z); const t = c.i(this.domNode); e.target !== this.selection && this.onDidChangePosition(e.offsetX, e.offsetY), this.monitor.startMonitoring(e.target, e.buttons, Ne.e, (e => this.onDidChangePosition( e.posx - t.left, e.posy - t.top)), (() => null)); const i = c.qV(document, (() => { this._onColorFlushed.fire(), i.dispose(), this.monitor && (this.monitor .stopMonitoring(!0), this.monitor = null) }), !0) } onDidChangePosition(e, t) { const i = Math.max(0, Math.min(1, e / this.width)), n = Math.max(0, Math.min(1, 1 - t / this.height)); this.paintSelection(i, n), this._onDidChange.fire({ s: i, v: n }) } 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 e = this.model.color.hsva; this.paintSelection(e.s, e.v) } paint() { const e = this.model.color.hsva, t = new Ce.Il(new Ce.tx(e.h, 1, 1, 1)), i = this.canvas.getContext("2d"), n = i.createLinearGradient(0, 0, this.canvas.width, 0); n.addColorStop(0, "rgba(255, 255, 255, 1)"), n.addColorStop(.5, "rgba(255, 255, 255, 0.5)"), n.addColorStop(1, "rgba(255, 255, 255, 0)"); const o = i.createLinearGradient(0, 0, 0, this.canvas.height); o.addColorStop(0, "rgba(0, 0, 0, 0)"), o.addColorStop(1, "rgba(0, 0, 0, 1)"), i.rect(0, 0, this.canvas.width, this.canvas.height), i.fillStyle = Ce.Il.Format.CSS.format(t), i.fill(), i.fillStyle = n, i.fill(), i.fillStyle = o, i.fill() } paintSelection(e, t) { this.selection.style.left = e * this.width + "px", this.selection.style .top = this.height - t * this.height + "px" } onDidChangeColor() { this.monitor && this.monitor.isMonitoring() || this.paint() } } class Me extends r.JT { constructor(e, t) { super(), this.model = t, this._onDidChange = new ye.Q5, this.onDidChange = this._onDidChange.event, this._onColorFlushed = new ye.Q5, this.onColorFlushed = this._onColorFlushed.event, this.domNode = c.R3(e, De(".strip")), this.overlay = c.R3(this.domNode, De(".overlay")), this.slider = c.R3( this.domNode, De(".slider")), this.slider.style.top = "0px", this._register( c.Lo(this.domNode, (e => this.onMouseDown(e)))), this.layout() } layout() { this.height = this.domNode.offsetHeight - this.slider.offsetHeight; const e = this.getValue(this.model.color); this.updateSliderPosition(e) } onMouseDown(e) { const t = this._register(new Ne.Z), i = c.i(this.domNode); this.domNode.classList.add("grabbing"), e.target !== this.slider && this.onDidChangeTop(e.offsetY), t.startMonitoring(e.target, e.buttons, Ne.e, (e => this.onDidChangeTop(e.posy - i.top)), (() => null)); const n = c.qV(document, (() => { this._onColorFlushed.fire(), n.dispose(), t.stopMonitoring(!0), this.domNode.classList.remove("grabbing") }), !0) } onDidChangeTop(e) { const t = Math.max(0, Math.min(1, 1 - e / this.height)); this.updateSliderPosition(t), this._onDidChange.fire(t) } updateSliderPosition(e) { this.slider.style.top = (1 - e) * this.height + "px" } } class Ae extends Me { constructor(e, t) { super(e, t), this.domNode.classList.add("opacity-strip"), this._register( t.onDidChangeColor(this.onDidChangeColor, this)), this.onDidChangeColor( this.model.color) } onDidChangeColor(e) { const { r: t, g: i, b: n } = e.rgba, o = new Ce.Il(new Ce.VS(t, i, n, 1)), r = new Ce.Il(new Ce .VS(t, i, n, 0)); this.overlay.style.background = `linear-gradient(to bottom, ${o} 0%, ${r} 100%)` } getValue(e) { return e.hsva.a } } class Re extends Me { constructor(e, t) { super(e, t), this.domNode.classList.add("hue-strip") } getValue(e) { return 1 - e.hsva.h / 360 } } class Oe extends b.$ { constructor(e, t, i, n) { super(), this.model = t, this.pixelRatio = i, this._register((0, Le.fX) ((() => this.layout()))); const o = De(".colorpicker-widget"); e.appendChild(o); const r = new Ee(o, this.model, n); this.body = new Ie(o, this.model, this.pixelRatio), this._register(r), this._register(this.body) } layout() { this.body.layout() } } var Pe = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; class Fe { constructor(e, t, i, n) { this.owner = e, this.range = t, this.model = i, this.provider = n, this.forceShowAtRange = !0 } isValidForHoverAnchor(e) { return 1 === e.type && this.range.startColumn <= e.range.startColumn && this.range.endColumn >= e.range.endColumn } } let Be = class { constructor(e, t, i) { this._editor = e, this._hover = t, this._themeService = i } computeSync(e, t) { return [] } computeAsync(e, t, i) { return Pe(this, void 0, void 0, (function*() { if (!this._editor.hasModel()) return []; const e = we.i.get(this._editor); for (const i of t) { const t = e.getColorData(i.range.getStartPosition()); if (t) return [yield this._createColorHover(this._editor.getModel(), t.colorInfo, t.provider)] } return [] })) } _createColorHover(e, t, i) { return Pe(this, void 0, void 0, (function*() { const n = e.getValueInRange(t.range), { red: o, green: r, blue: s, alpha: l } = t.color, d = new Ce.VS(Math.round(255 * o), Math.round(255 * r), Math.round( 255 * s), l), c = new Ce.Il(d), h = yield(0, ve.R)(e, t, i, ie.T.None), u = new Se(c, [], 0); return u.colorPresentations = h || [], u.guessColorPresentation(c, n), new Fe(this, a.e.lift(t.range), u, i) })) } renderHoverParts(e, t, i) { if (0 === e.length || !this._editor.hasModel()) return r.JT.None; const n = new r.SL, o = e[0], s = this._editor.getModel(), l = o.model, d = n.add(new Oe(t, l, this._editor.getOption(128), this._themeService)); let c = new a.e(o.range.startLineNumber, o.range.startColumn, o.range .endLineNumber, o.range.endColumn); const h = () => { let e, t; if (l.presentation.textEdit) { e = [l.presentation.textEdit], t = new a.e(l.presentation.textEdit .range.startLineNumber, l.presentation.textEdit.range.startColumn, l.presentation.textEdit.range.endLineNumber, l.presentation.textEdit .range.endColumn); const i = this._editor.getModel()._setTrackedRange(null, t, 3); this._editor.pushUndoStop(), this._editor.executeEdits( "colorpicker", e), t = this._editor.getModel()._getTrackedRange( i) || t } else e = [{ identifier: null, range: c, text: l.presentation.label, forceMoveMarkers: !1 }], t = c.setEndPosition(c.endLineNumber, c.startColumn + l.presentation .label.length), this._editor.pushUndoStop(), this._editor.executeEdits( "colorpicker", e); l.presentation.additionalTextEdits && (e = [...l.presentation.additionalTextEdits], this._editor.executeEdits("colorpicker", e), this._hover.hide()), this._editor.pushUndoStop(), c = t }, u = e => (0, ve.R)(s, { range: c, color: { red: e.rgba.r / 255, green: e.rgba.g / 255, blue: e.rgba.b / 255, alpha: e.rgba.a } }, o.provider, ie.T.None).then((e => { l.colorPresentations = e || [] })); return n.add(l.onColorFlushed((e => { u(e).then(h) }))), n.add(l.onDidChangeColor(u)), this._hover.setColorPicker(d), n } }; var We, ze; Be = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([(We = 2, ze = $.XE, function(e, t) { ze(e, t, We) })], Be); var Ve = i(1847), He = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }, Ue = function(e, t) { return function(i, n) { t(i, n, e) } }, je = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; const Ke = c.$; let $e = class extends r.JT { constructor(e) { super(), this._keybindingService = e, this._hasContent = !1, this.hoverElement = Ke("div.hover-row.status-bar"), this.actionsElement = c.R3(this.hoverElement, Ke("div.actions")) } get hasContent() { return this._hasContent } addAction(e) { const t = this._keybindingService.lookupKeybinding(e.commandId), i = t ? t.getLabel() : null; return this._hasContent = !0, this._register(P.render(this.actionsElement, e, i)) } append(e) { const t = c.R3(this.actionsElement, e); return this._hasContent = !0, t } }; $e = He([Ue(0, Ve.d)], $e); class qe { constructor(e, t) { this._participants = t, this._editor = e, this._result = [], this._anchor = null } setAnchor(e) { this._anchor = e, this._result = [] } clearResult() { this._result = [] } static _getLineDecorations(e, t) { if (1 !== t.type) return []; const i = e.getModel(), n = t.range.startLineNumber, o = i.getLineMaxColumn(n); return e.getLineDecorations(n).filter((e => { if (e.options.isWholeLine) return !0; const i = e.range.startLineNumber === n ? e.range.startColumn : 1, r = e.range.endLineNumber === n ? e.range.endColumn : o; return !(i > t.range.startColumn || t.range.endColumn > r) })) } computeAsync(e) { return je(this, void 0, void 0, (function*() { const t = this._anchor; if (!this._editor.hasModel() || !t) return Promise.resolve([]); const i = qe._getLineDecorations(this._editor, t), n = yield Promise.all(this._participants.map((n => this._computeAsync( n, i, t, e)))); return (0, _.xH)(n) })) } _computeAsync(e, t, i, n) { return je(this, void 0, void 0, (function*() { return e.computeAsync ? e.computeAsync(i, t, n) : [] })) } computeSync() { if (!this._editor.hasModel() || !this._anchor) return []; const e = qe._getLineDecorations(this._editor, this._anchor); let t = []; for (const i of this._participants) t = t.concat(i.computeSync(this._anchor, e)); return (0, _.kX)(t) } onResult(e, t) { this._result = t ? e.concat(this._result) : this._result.concat(e) } getResult() { return this._result.slice(0) } getResultWithLoadingMessage() { if (this._anchor) for (const e of this._participants) if (e.createLoadingMessage) { const t = e.createLoadingMessage(this._anchor); if (t) return this._result.slice(0).concat([t]) } return this._result.slice(0) } } let Ze = class e extends b.$ { constructor(t, i, n, o) { super(), this._hoverVisibleKey = i, this._keybindingService = o, this .allowEditorOverflow = !0, this._participants = [n.createInstance(Be, t, this), n.createInstance(le, t, this), n.createInstance(be, t, this), n.createInstance(X, t, this)], this._hover = this._register( new O), this._id = e.ID, this._editor = t, this._isVisible = !1, this._stoleFocus = !1, this._renderDisposable = null, this.onkeydown( this._hover.containerDomNode, (e => { e.equals(9) && this.hide() })), this._register(this._editor.onDidChangeConfiguration((e => { e.hasChanged(42) && this._updateFont() }))), this._editor.onDidLayoutChange((() => this.layout())), this.layout(), this._editor.addContentWidget(this), this._showAtPosition = null, this._showAtRange = null, this._stoleFocus = !1, this._messages = [], this._lastAnchor = null, this._computer = new qe(this._editor, this._participants), this._highlightDecorations = [], this._isChangingDecorations = !1, this._shouldFocus = !1, this._colorPicker = null, this._hoverOperation = new f(this._computer, (e => this._withResult(e, !0)), null, (e => this._withResult(e, !1)), this._editor.getOption(52).delay), this._register( c.mu(this.getDomNode(), c.tw.FOCUS, (() => { this._colorPicker && this.getDomNode().classList.add( "colorpicker-hover") }))), this._register(c.mu(this.getDomNode(), c.tw.BLUR, (() => { this.getDomNode().classList.remove("colorpicker-hover") }))), this._register(t.onDidChangeConfiguration((() => { this._hoverOperation.setHoverTime(this._editor.getOption(52).delay) }))), this._register(g.RW.onDidChange((() => { this._isVisible && this._lastAnchor && this._messages.length > 0 && (this._hover.contentsDomNode.textContent = "", this._renderMessages( this._lastAnchor, this._messages)) }))) } dispose() { this._hoverOperation.cancel(), this._editor.removeContentWidget(this), super.dispose() } getId() { return this._id } getDomNode() { return this._hover.containerDomNode } _shouldShowAt(e) { const t = e.target.type; if (6 === t) return !0; if (7 === t) { const t = this._editor.getOption(42).typicalHalfwidthCharacterWidth / 2, i = e.target.detail; if (i && !i.isAfterLines && "number" == typeof i.horizontalDistanceToText && i.horizontalDistanceToText < t) return !0 } return !1 } maybeShowAt(e) { var t; const i = []; for (const t of this._participants) if ("function" == typeof t.suggestHoverAnchor) { const n = t.suggestHoverAnchor(e); n && i.push(n) } if (this._shouldShowAt(e) && e.target.range) { const n = [...(null === (t = e.target.element) || void 0 === t ? void 0 : t.classList.values()) || []].find((e => e.startsWith( "ced-colorBox"))) && e.target.range.endColumn - e.target.range.startColumn == 1 ? new a.e(e.target.range.startLineNumber, e.target.range.startColumn + 1, e.target.range.endLineNumber, e.target.range.endColumn + 1) : e .target.range; i.push(new de(0, n)) } return 0 !== i.length && (i.sort(((e, t) => t.priority - e.priority)), this._startShowingAt(i[0], 0, !1), !0) } _showAt(e, t, i) { this._showAtPosition = e, this._showAtRange = t, this._hoverVisibleKey .set(!0), this._isVisible = !0, this._hover.containerDomNode.classList .toggle("hidden", !this._isVisible), this._editor.layoutContentWidget( this), this._editor.render(), this._stoleFocus = i, i && this._hover .containerDomNode.focus() } getPosition() { return this._isVisible ? { position: this._showAtPosition, range: this._showAtRange, preference: [1, 2] } : null } _updateFont() { Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName( "code")).forEach((e => this._editor.applyFontInfo(e))) } _updateContents(e) { this._hover.contentsDomNode.textContent = "", this._hover.contentsDomNode .appendChild(e), this._updateFont(), this._editor.layoutContentWidget( this), this._hover.onContentsChanged() } layout() { const e = Math.max(this._editor.getLayoutInfo().height / 4, 250), { fontSize: t, lineHeight: i } = this._editor.getOption(42); this._hover.contentsDomNode.style.fontSize = `${t}px`, this._hover.contentsDomNode .style.lineHeight = `${i}px`, this._hover.contentsDomNode.style.maxHeight = `${e}px`, this._hover.contentsDomNode.style.maxWidth = `${Math.max(.66*this._editor.getLayoutInfo().width,500)}px` } onModelDecorationsChanged() { this._isChangingDecorations || this._isVisible && (this._hoverOperation .cancel(), this._computer.clearResult(), this._colorPicker || this._hoverOperation .start(0)) } startShowingAtRange(e, t, i) { this._startShowingAt(new de(0, e), t, i) } _startShowingAt(e, t, i) { if (!this._lastAnchor || !this._lastAnchor.equals(e)) { if (this._hoverOperation.cancel(), this._isVisible) if (this._showAtPosition && this._lastAnchor && e.canAdoptVisibleHover( this._lastAnchor, this._showAtPosition)) { const t = this._messages.filter((t => t.isValidForHoverAnchor(e))); if (0 === t.length) this.hide(); else { if (t.length === this._messages.length) return; this._renderMessages(e, t) } } else this.hide(); this._lastAnchor = e, this._computer.setAnchor(e), this._shouldFocus = i, this._hoverOperation.start(t) } } hide() { this._lastAnchor = null, this._hoverOperation.cancel(), this._isVisible && (setTimeout((() => { this._isVisible || this._hoverVisibleKey.set(!1) }), 0), this._isVisible = !1, this._hover.containerDomNode.classList .toggle("hidden", !this._isVisible), this._editor.layoutContentWidget( this), this._stoleFocus && this._editor.focus()), this._isChangingDecorations = ! 0, this._highlightDecorations = this._editor.deltaDecorations(this._highlightDecorations, []), this._isChangingDecorations = !1, this._renderDisposable && (this._renderDisposable .dispose(), this._renderDisposable = null), this._colorPicker = null } isColorPickerVisible() { return !!this._colorPicker } setColorPicker(e) { this._colorPicker = e } onContentsChanged() { this._hover.onContentsChanged() } _withResult(e, t) { this._messages = e, this._lastAnchor && this._messages.length > 0 ? this._renderMessages(this._lastAnchor, this._messages) : t && this.hide() } _renderMessages(t, i) { this._renderDisposable && (this._renderDisposable.dispose(), this._renderDisposable = null), this._colorPicker = null; let n = 1073741824, o = i[0].range, s = null, l = document.createDocumentFragment(); const d = new r.SL, c = new Map; for (const e of i) n = Math.min(n, e.range.startColumn), o = a.e.plusRange( o, e.range), e.forceShowAtRange && (s = e.range), c.has(e.owner) || c.set(e.owner, []), c.get(e.owner).push(e); const u = d.add(new $e(this._keybindingService)); for (const [e, t] of c) d.add(e.renderHoverParts(t, l, u)); u.hasContent && l.appendChild(u.hoverElement), this._renderDisposable = d, l.hasChildNodes() && (s ? this._showAt(s.getStartPosition(), s, this._shouldFocus) : this._showAt(new h.L(t.range.startLineNumber, n), o, this._shouldFocus), this._updateContents(l)), this._colorPicker && this._colorPicker.layout(), this._isChangingDecorations = !0, this._highlightDecorations = this._editor.deltaDecorations(this._highlightDecorations, o ? [{ range: o, options: e._DECORATION_OPTIONS }] : []), this._isChangingDecorations = !1 } }; Ze.ID = "editor.contrib.modesContentHoverWidget", Ze._DECORATION_OPTIONS = u.qx.register({ description: "content-hover-highlight", className: "hoverHighlight" }), Ze = He([Ue(2, J.TG), Ue(3, Ve.d)], Ze); class Ge extends b.$ { constructor(e, t) { super(), this._id = e, this._editor = t, this._isVisible = !1, this._domNode = document.createElement("div"), this._domNode.className = "monaco-hover hidden", this._domNode.setAttribute("aria-hidden", "true"), this._domNode.setAttribute("role", "tooltip"), this._showAtLineNumber = - 1, this._register(this._editor.onDidChangeConfiguration((e => { e.hasChanged(42) && this.updateFont() }))), this._editor.addOverlayWidget(this) } get isVisible() { return this._isVisible } set isVisible(e) { this._isVisible = e, this._domNode.classList.toggle("hidden", !this._isVisible) } getId() { return this._id } getDomNode() { return this._domNode } showAt(e) { this._showAtLineNumber = e, this.isVisible || (this.isVisible = !0); const t = this._editor.getLayoutInfo(), i = this._editor.getTopForLineNumber(this._showAtLineNumber), n = this._editor.getScrollTop(), o = this._editor.getOption(58), r = i - n - (this._domNode.clientHeight - o) / 2; this._domNode.style.left = `${t.glyphMarginLeft+t.glyphMarginWidth}px`, this._domNode.style.top = `${Math.max(Math.round(r),0)}px` } hide() { this.isVisible && (this.isVisible = !1) } getPosition() { return null } dispose() { this._editor.removeOverlayWidget(this), super.dispose() } updateFont() { [...Array.prototype.slice.call(this._domNode.getElementsByTagName( "code")), ...Array.prototype.slice.call(this._domNode.getElementsByClassName( "code"))].forEach((e => this._editor.applyFontInfo(e))) } updateContents(e) { this._domNode.textContent = "", this._domNode.appendChild(e), this.updateFont() } } class Ye { constructor(e) { this._editor = e, this._lineNumber = -1, this._result = [] } setLineNumber(e) { this._lineNumber = e, this._result = [] } clearResult() { this._result = [] } computeSync() { const e = e => ({ value: e }), t = this._editor.getLineDecorations(this._lineNumber), i = []; if (!t) return i; for (const n of t) { if (!n.options.glyphMarginClassName) continue; const t = n.options.glyphMarginHoverMessage; t && !(0, ee.CP)(t) && i.push(...(0, _._2)(t).map(e)) } return i } onResult(e, t) { this._result = this._result.concat(e) } getResult() { return this._result } getResultWithLoadingMessage() { return this.getResult() } } class Qe extends Ge { constructor(e, t, i = z.SW) { super(Qe.ID, e), this._renderDisposeables = this._register(new r.SL), this._messages = [], this._lastLineNumber = -1, this._markdownRenderer = this._register(new te.$({ editor: this._editor }, t, i)), this._computer = new Ye(this._editor), this._hoverOperation = new f(this._computer, (e => this._withResult(e)), void 0, (e => this._withResult( e)), 300) } dispose() { this._hoverOperation.cancel(), super.dispose() } onModelDecorationsChanged() { this.isVisible && (this._hoverOperation.cancel(), this._computer.clearResult(), this._hoverOperation.start(0)) } startShowingAt(e) { this._lastLineNumber !== e && (this._hoverOperation.cancel(), this.hide(), this._lastLineNumber = e, this._computer.setLineNumber(e), this._hoverOperation .start(0)) } hide() { this._lastLineNumber = -1, this._hoverOperation.cancel(), super.hide() } _withResult(e) { this._messages = e, this._messages.length > 0 ? this._renderMessages( this._lastLineNumber, this._messages) : this.hide() } _renderMessages(e, t) { this._renderDisposeables.clear(); const i = document.createDocumentFragment(); for (const e of t) { const t = this._markdownRenderer.render(e.value); this._renderDisposeables.add(t), i.appendChild((0, c.$)( "div.hover-row", void 0, t.element)) } this.updateContents(i), this.showAt(e) } } Qe.ID = "editor.contrib.modesGlyphHoverWidget"; var Xe = i(5389), Je = function(e, t) { return function(i, n) { t(i, n, e) } }; let et = class e { constructor(e, t, i, n, o) { this._editor = e, this._instantiationService = t, this._openerService = i, this._modeService = n, this._toUnhook = new r.SL, this._isMouseDown = ! 1, this._hoverClicked = !1, this._contentWidget = null, this._glyphWidget = null, this._hookEvents(), this._didChangeConfigurationHandler = this ._editor.onDidChangeConfiguration((e => { e.hasChanged(52) && (this._unhookEvents(), this._hookEvents()) })), this._hoverVisibleKey = l.u.hoverVisible.bindTo(o) } static get(t) { return t.getContribution(e.ID) } _hookEvents() { const e = () => this._hideWidgets(), t = this._editor.getOption(52); this._isHoverEnabled = t.enabled, this._isHoverSticky = t.sticky, this._isHoverEnabled ? (this._toUnhook.add(this._editor.onMouseDown( (e => this._onEditorMouseDown(e)))), this._toUnhook.add(this._editor .onMouseUp((e => this._onEditorMouseUp(e)))), this._toUnhook.add( this._editor.onMouseMove((e => this._onEditorMouseMove(e)))), this ._toUnhook.add(this._editor.onKeyDown((e => this._onKeyDown(e)))), this._toUnhook.add(this._editor.onDidChangeModelDecorations((() => this._onModelDecorationsChanged())))) : (this._toUnhook.add(this._editor .onMouseMove((e => this._onEditorMouseMove(e)))), this._toUnhook.add( this._editor.onKeyDown((e => this._onKeyDown(e))))), this._toUnhook .add(this._editor.onMouseLeave(e)), this._toUnhook.add(this._editor.onDidChangeModel( e)), this._toUnhook.add(this._editor.onDidScrollChange((e => this._onEditorScrollChanged( e)))) } _unhookEvents() { this._toUnhook.clear() } _onModelDecorationsChanged() { var e, t; null === (e = this._contentWidget) || void 0 === e || e.onModelDecorationsChanged(), null === (t = this._glyphWidget) || void 0 === t || t.onModelDecorationsChanged() } _onEditorScrollChanged(e) { (e.scrollTopChanged || e.scrollLeftChanged) && this._hideWidgets() } _onEditorMouseDown(e) { this._isMouseDown = !0; const t = e.target.type; 9 !== t || e.target.detail !== Ze.ID ? 12 === t && e.target.detail === Qe.ID || (12 !== t && e.target.detail !== Qe.ID && (this._hoverClicked = ! 1), this._hideWidgets()) : this._hoverClicked = !0 } _onEditorMouseUp(e) { this._isMouseDown = !1 } _onEditorMouseMove(e) { var t, i, n, o, r; let s = e.target.type; if ((!this._isMouseDown || !this._hoverClicked) && (!this._isHoverSticky || 9 !== s || e.target.detail !== Ze.ID) && (!this._isHoverSticky || ( null === (i = null === (t = e.event.browserEvent.view) || void 0 === t ? void 0 : t.getSelection()) || void 0 === i ? void 0 : i.isCollapsed )) && (this._isHoverSticky || 9 !== s || e.target.detail !== Ze.ID || !(null === (n = this._contentWidget) || void 0 === n ? void 0 : n.isColorPickerVisible()) ) && (!this._isHoverSticky || 12 !== s || e.target.detail !== Qe.ID)) { if (this._isHoverEnabled) return this._getOrCreateContentWidget().maybeShowAt( e) ? void(null === (o = this._glyphWidget) || void 0 === o || o.hide()) : 2 === s && e.target.position ? (null === (r = this._contentWidget) || void 0 === r || r.hide(), this._glyphWidget || (this._glyphWidget = new Qe(this._editor, this._modeService, this._openerService)), void this._glyphWidget.startShowingAt(e.target.position.lineNumber) ) : void this._hideWidgets(); this._hideWidgets() } } _onKeyDown(e) { 5 !== e.keyCode && 6 !== e.keyCode && 57 !== e.keyCode && 4 !== e.keyCode && this._hideWidgets() } _hideWidgets() { var e, t, i; this._isMouseDown && this._hoverClicked && (null === (e = this._contentWidget) || void 0 === e ? void 0 : e.isColorPickerVisible()) || (this._hoverClicked = ! 1, null === (t = this._glyphWidget) || void 0 === t || t.hide(), null === (i = this._contentWidget) || void 0 === i || i.hide()) } _getOrCreateContentWidget() { return this._contentWidget || (this._contentWidget = this._instantiationService .createInstance(Ze, this._editor, this._hoverVisibleKey)), this._contentWidget } isColorPickerVisible() { var e; return (null === (e = this._contentWidget) || void 0 === e ? void 0 : e.isColorPickerVisible()) || !1 } showContentHover(e, t, i) { this._getOrCreateContentWidget().startShowingAtRange(e, t, i) } dispose() { var e, t; this._unhookEvents(), this._toUnhook.dispose(), this._didChangeConfigurationHandler .dispose(), null === (e = this._glyphWidget) || void 0 === e || e.dispose(), null === (t = this._contentWidget) || void 0 === t || t.dispose() } }; et.ID = "editor.contrib.hover", et = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([Je(1, J.TG), Je(2, z.v4), Je(3, d.h), Je(4, pe.i6)], et); class tt extends s.R6 { constructor() { super({ id: "editor.action.showHover", label: n.N({ key: "showHover", comment: [ "Label for action that will trigger the showing of a hover in the editor.", "This allows for users to show the hover without using the mouse." ] }, "Show Hover"), alias: "Show Hover", precondition: void 0, kbOpts: { kbExpr: l.u.editorTextFocus, primary: (0, o.gx)(2089, 2087), weight: 100 } }) } run(e, t) { if (!t.hasModel()) return; let i = et.get(t); if (!i) return; const n = t.getPosition(), o = new a.e(n.lineNumber, n.column, n.lineNumber, n.column), r = 2 === t.getOption(2); i.showContentHover(o, 1, r) } } class it extends s.R6 { constructor() { super({ id: "editor.action.showDefinitionPreviewHover", label: n.N({ key: "showDefinitionPreviewHover", comment: [ "Label for action that will trigger the showing of definition preview hover in the editor.", "This allows for users to show the definition preview hover without using the mouse." ] }, "Show Definition Preview Hover"), alias: "Show Definition Preview Hover", precondition: void 0 }) } run(e, t) { let i = et.get(t); if (!i) return; const n = t.getPosition(); if (!n) return; const o = new a.e(n.lineNumber, n.column, n.lineNumber, n.column); Xe.GotoDefinitionAtPositionEditorContribution.get(t).startFindDefinitionFromCursor( n).then((() => { i.showContentHover(o, 1, !0) })) } }(0, s._K)(et.ID, et), (0, s.Qr)(tt), (0, s.Qr)(it), (0, $.Ic)(((e, t) => { const i = e.getColor(q.pt); i && t.addRule( `.monaco-editor .hoverHighlight { background-color: ${i}; }`); const n = e.getColor(q.yJ); n && t.addRule( `.monaco-editor .monaco-hover { background-color: ${n}; }`); const o = e.getColor(q.CN); o && (t.addRule( `.monaco-editor .monaco-hover { border: 1px solid ${o}; }`), t.addRule( `.monaco-editor .monaco-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${o.transparent(.5)}; }` ), t.addRule( `.monaco-editor .monaco-hover hr { border-top: 1px solid ${o.transparent(.5)}; }` ), t.addRule( `.monaco-editor .monaco-hover hr { border-bottom: 0px solid ${o.transparent(.5)}; }` )); const r = e.getColor(q.ur); r && t.addRule(`.monaco-editor .monaco-hover a { color: ${r}; }`); const s = e.getColor(q.sg); s && t.addRule( `.monaco-editor .monaco-hover a:hover { color: ${s}; }`); const a = e.getColor(q.Sb); a && t.addRule(`.monaco-editor .monaco-hover { color: ${a}; }`); const l = e.getColor(q.Lo); l && t.addRule( `.monaco-editor .monaco-hover .hover-row .actions { background-color: ${l}; }` ); const d = e.getColor(q.Sw); d && t.addRule( `.monaco-editor .monaco-hover code { background-color: ${d}; }`) })) }, 3554: (e, t, i) => { "use strict"; i.r(t); var n = i(3580), o = i(4314), r = i(3860), s = i(9102), a = i(6830), l = i(469); class d { constructor(e, t, i) { this._editRange = e, this._originalSelection = t, this._text = i } getEditOperations(e, t) { t.addTrackedEditOperation(this._editRange, this._text) } computeCursorState(e, t) { const i = t.getInverseEditOperations()[0].range; return this._originalSelection.isEmpty() ? new r.Y(i.endLineNumber, Math.min(this._originalSelection.positionColumn, i.endColumn), i.endLineNumber, Math.min(this._originalSelection.positionColumn, i.endColumn)) : new r .Y(i.endLineNumber, i.endColumn - this._text.length, i.endLineNumber, i.endColumn) } } var c = i(9925), h = i(7781), u = i(7869), g = i(6281), p = i(5393), m = i(7301); let f = class e { constructor(e, t) { this.decorationIds = [], this.editor = e, this.editorWorkerService = t } static get(t) { return t.getContribution(e.ID) } dispose() {} run(t, i) { this.currentRequest && this.currentRequest.cancel(); const n = this.editor.getSelection(), s = this.editor.getModel(); if (!s || !n) return; let a = n; if (a.startLineNumber !== a.endLineNumber) return; const l = new c.yy(this.editor, 5), h = s.uri; return this.editorWorkerService.canNavigateValueSet(h) ? (this.currentRequest = (0, p.PG)((e => this.editorWorkerService.navigateValueSet(h, a, i))), this.currentRequest.then((i => { if (!i || !i.range || !i.value) return; if (!l.validate(this.editor)) return; let n = o.e.lift(i.range), s = i.range, c = i.value.length - (a.endColumn - a.startColumn); s = { startLineNumber: s.startLineNumber, startColumn: s.startColumn, endLineNumber: s.endLineNumber, endColumn: s.startColumn + i.value.length }, c > 1 && (a = new r.Y(a.startLineNumber, a.startColumn, a.endLineNumber, a.endColumn + c - 1)); const h = new d(n, a, i.value); this.editor.pushUndoStop(), this.editor.executeCommand(t, h), this.editor.pushUndoStop(), this.decorationIds = this.editor.deltaDecorations( this.decorationIds, [{ range: s, options: e.DECORATION }]), this.decorationRemover && this.decorationRemover.cancel(), this.decorationRemover = (0, p.Vs)(350), this.decorationRemover .then((() => this.decorationIds = this.editor.deltaDecorations( this.decorationIds, []))).catch(m.dL) })).catch(m.dL)) : Promise.resolve(void 0) } }; var _, b; f.ID = "editor.contrib.inPlaceReplaceController", f.DECORATION = g.qx.register({ description: "in-place-replace", className: "valueSetReplacement" }), f = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([(_ = 1, b = l.p, function(e, t) { b(e, t, _) })], f); class v extends a.R6 { constructor() { super({ id: "editor.action.inPlaceReplace.up", label: n.N("InPlaceReplaceAction.previous.label", "Replace with Previous Value"), alias: "Replace with Previous Value", precondition: s.u.writable, kbOpts: { kbExpr: s.u.editorTextFocus, primary: 3154, weight: 100 } }) } run(e, t) { const i = f.get(t); return i ? i.run(this.id, !0) : Promise.resolve(void 0) } } class w extends a.R6 { constructor() { super({ id: "editor.action.inPlaceReplace.down", label: n.N("InPlaceReplaceAction.next.label", "Replace with Next Value"), alias: "Replace with Next Value", precondition: s.u.writable, kbOpts: { kbExpr: s.u.editorTextFocus, primary: 3156, weight: 100 } }) } run(e, t) { const i = f.get(t); return i ? i.run(this.id, !1) : Promise.resolve(void 0) } }(0, a._K)(f.ID, f), (0, a.Qr)(v), (0, a.Qr)(w), (0, h.Ic)(((e, t) => { const i = e.getColor(u.Dl); i && t.addRule( `.monaco-editor.vs .valueSetReplacement { outline: solid 2px ${i}; }` ) })) }, 1491: (e, t, i) => { "use strict"; function n(e, t) { let i = 0; for (let n = 0; n < e.length; n++) "\t" === e.charAt(n) ? i += t : i++; return i } function o(e, t, i) { e = e < 0 ? 0 : e; let n = ""; if (!i) { let i = Math.floor(e / t); e %= t; for (let e = 0; e < i; e++) n += "\t" } for (let t = 0; t < e; t++) n += " "; return n } i.d(t, { Y: () => n, J: () => o }) }, 638: (e, t, i) => { "use strict"; i.r(t), i.d(t, { getReindentEditOperations: () => _, IndentationToSpacesAction: () => b, IndentationToTabsAction: () => v, ChangeIndentationSizeAction: () => w, IndentUsingTabs: () => C, IndentUsingSpaces: () => y, DetectIndentation: () => S, ReindentLinesAction: () => x, ReindentSelectedLinesAction: () => k, AutoIndentOnPasteCommand: () => L, AutoIndentOnPaste: () => N, IndentationToSpacesCommand: () => E, IndentationToTabsCommand: () => I }); var n = i(3580), o = i(5976), r = i(7295), s = i(6830), a = i(291), l = i(9386), d = i(4314), c = i(3860), h = i(9102), u = i(6281), g = i(3831), p = i(1200), m = i(1491), f = i(1157); function _(e, t, i, n) { if (1 === e.getLineCount() && 1 === e.getLineMaxColumn(1)) return []; let o = g.zu.getIndentationRules(e.getLanguageIdentifier().id); if (!o) return []; for (i = Math.min(i, e.getLineCount()); t <= i && o.unIndentedLinePattern;) { let i = e.getLineContent(t); if (!o.unIndentedLinePattern.test(i)) break; t++ } if (t > i - 1) return []; const { tabSize: s, indentSize: d, insertSpaces: h } = e.getOptions(), p = (e, t) => (t = t || 1, a.U.shiftIndent(e, e.length + t, s, d, h)), m = (e, t) => (t = t || 1, a.U.unshiftIndent(e, e.length + t, s, d, h)); let f, _ = [], b = e.getLineContent(t), v = b; if (null != n) { f = n; let e = r.V8(b); v = f + b.substring(e.length), o.decreaseIndentPattern && o.decreaseIndentPattern .test(v) && (f = m(f), v = f + b.substring(e.length)), b !== v && _.push( l.h.replaceMove(new c.Y(t, 1, t, e.length + 1), u.yO.normalizeIndentation( f, d, h))) } else f = r.V8(b); let w = f; o.increaseIndentPattern && o.increaseIndentPattern.test(v) ? (w = p(w), f = p(f)) : o.indentNextLinePattern && o.indentNextLinePattern.test(v) && (w = p(w)); for (let n = ++t; n <= i; n++) { let t = e.getLineContent(n), i = r.V8(t), s = w + t.substring(i.length); o.decreaseIndentPattern && o.decreaseIndentPattern.test(s) && (w = m(w), f = m(f)), i !== w && _.push(l.h.replaceMove(new c.Y(n, 1, n, i.length + 1), u.yO.normalizeIndentation(w, d, h))), o.unIndentedLinePattern && o.unIndentedLinePattern.test(t) || (o.increaseIndentPattern && o.increaseIndentPattern .test(s) ? (f = p(f), w = f) : w = o.indentNextLinePattern && o.indentNextLinePattern .test(s) ? p(w) : f) } return _ } class b extends s.R6 { constructor() { super({ id: b.ID, label: n.N("indentationToSpaces", "Convert Indentation to Spaces"), alias: "Convert Indentation to Spaces", precondition: h.u.writable }) } run(e, t) { let i = t.getModel(); if (!i) return; let n = i.getOptions(), o = t.getSelection(); if (!o) return; const r = new E(o, n.tabSize); t.pushUndoStop(), t.executeCommands(this.id, [r]), t.pushUndoStop(), i.updateOptions({ insertSpaces: !0 }) } } b.ID = "editor.action.indentationToSpaces"; class v extends s.R6 { constructor() { super({ id: v.ID, label: n.N("indentationToTabs", "Convert Indentation to Tabs"), alias: "Convert Indentation to Tabs", precondition: h.u.writable }) } run(e, t) { let i = t.getModel(); if (!i) return; let n = i.getOptions(), o = t.getSelection(); if (!o) return; const r = new I(o, n.tabSize); t.pushUndoStop(), t.executeCommands(this.id, [r]), t.pushUndoStop(), i.updateOptions({ insertSpaces: !1 }) } } v.ID = "editor.action.indentationToTabs"; class w extends s.R6 { constructor(e, t) { super(t), this.insertSpaces = e } run(e, t) { const i = e.get(f.eJ), o = e.get(p.q); let r = t.getModel(); if (!r) return; let s = o.getCreationOptions(r.getLanguageIdentifier().language, r.uri, r.isForSimpleWidget); const a = [1, 2, 3, 4, 5, 6, 7, 8].map((e => ({ id: e.toString(), label: e.toString(), description: e === s.tabSize ? n.N("configuredTabSize", "Configured Tab Size") : void 0 }))), l = Math.min(r.getOptions().tabSize - 1, 7); setTimeout((() => { i.pick(a, { placeHolder: n.N({ key: "selectTabWidth", comment: ["Tab corresponds to the tab key"] }, "Select Tab Size for Current File"), activeItem: a[l] }).then((e => { e && r && !r.isDisposed() && r.updateOptions({ tabSize: parseInt(e.label, 10), insertSpaces: this.insertSpaces }) })) }), 50) } } class C extends w { constructor() { super(!1, { id: C.ID, label: n.N("indentUsingTabs", "Indent Using Tabs"), alias: "Indent Using Tabs", precondition: void 0 }) } } C.ID = "editor.action.indentUsingTabs"; class y extends w { constructor() { super(!0, { id: y.ID, label: n.N("indentUsingSpaces", "Indent Using Spaces"), alias: "Indent Using Spaces", precondition: void 0 }) } } y.ID = "editor.action.indentUsingSpaces"; class S extends s.R6 { constructor() { super({ id: S.ID, label: n.N("detectIndentation", "Detect Indentation from Content"), alias: "Detect Indentation from Content", precondition: void 0 }) } run(e, t) { const i = e.get(p.q); let n = t.getModel(); if (!n) return; let o = i.getCreationOptions(n.getLanguageIdentifier().language, n.uri, n.isForSimpleWidget); n.detectIndentation(o.insertSpaces, o.tabSize) } } S.ID = "editor.action.detectIndentation"; class x extends s.R6 { constructor() { super({ id: "editor.action.reindentlines", label: n.N("editor.reindentlines", "Reindent Lines"), alias: "Reindent Lines", precondition: h.u.writable }) } run(e, t) { let i = t.getModel(); if (!i) return; let n = _(i, 1, i.getLineCount()); n.length > 0 && (t.pushUndoStop(), t.executeEdits(this.id, n), t.pushUndoStop()) } } class k extends s.R6 { constructor() { super({ id: "editor.action.reindentselectedlines", label: n.N("editor.reindentselectedlines", "Reindent Selected Lines"), alias: "Reindent Selected Lines", precondition: h.u.writable }) } run(e, t) { let i = t.getModel(); if (!i) return; let n = t.getSelections(); if (null === n) return; let o = []; for (let e of n) { let t = e.startLineNumber, n = e.endLineNumber; if (t !== n && 1 === e.endColumn && n--, 1 === t) { if (t === n) continue } else t--; let r = _(i, t, n); o.push(...r) } o.length > 0 && (t.pushUndoStop(), t.executeEdits(this.id, o), t.pushUndoStop()) } } class L { constructor(e, t) { this._initialSelection = t, this._edits = [], this._selectionId = null; for (let t of e) t.range && "string" == typeof t.text && this._edits.push( t) } getEditOperations(e, t) { for (let e of this._edits) t.addEditOperation(d.e.lift(e.range), e.text); let i = !1; Array.isArray(this._edits) && 1 === this._edits.length && this._initialSelection .isEmpty() && (this._edits[0].range.startColumn === this._initialSelection .endColumn && this._edits[0].range.startLineNumber === this._initialSelection .endLineNumber ? (i = !0, this._selectionId = t.trackSelection(this._initialSelection, ! 0)) : this._edits[0].range.endColumn === this._initialSelection.startColumn && this._edits[0].range.endLineNumber === this._initialSelection.startLineNumber && (i = !0, this._selectionId = t.trackSelection(this._initialSelection, ! 1))), i || (this._selectionId = t.trackSelection(this._initialSelection)) } computeCursorState(e, t) { return t.getTrackedSelection(this._selectionId) } } class N { constructor(e) { this.callOnDispose = new o.SL, this.callOnModel = new o.SL, this.editor = e, this.callOnDispose.add(e.onDidChangeConfiguration((() => this.update()))), this.callOnDispose.add(e.onDidChangeModel((() => this.update()))), this.callOnDispose.add(e.onDidChangeModelLanguage((() => this.update()))) } update() { this.callOnModel.clear(), this.editor.getOption(9) < 4 || this.editor.getOption( 46) || this.editor.hasModel() && this.callOnModel.add(this.editor.onDidPaste( (({ range: e }) => { this.trigger(e) }))) } trigger(e) { let t = this.editor.getSelections(); if (null === t || t.length > 1) return; const i = this.editor.getModel(); if (!i) return; if (!i.isCheapToTokenize(e.getStartPosition().lineNumber)) return; const n = this.editor.getOption(9), { tabSize: o, indentSize: s, insertSpaces: l } = i.getOptions(); let c = [], h = { shiftIndent: e => a.U.shiftIndent(e, e.length + 1, o, s, l), unshiftIndent: e => a.U.unshiftIndent(e, e.length + 1, o, s, l) }, u = e.startLineNumber; for (; u <= e.endLineNumber && this.shouldIgnoreLine(i, u);) u++; if (u > e.endLineNumber) return; let p = i.getLineContent(u); if (!/\S/.test(p.substring(0, e.startColumn - 1))) { let e = g.zu.getGoodIndentForLine(n, i, i.getLanguageIdentifier().id, u, h); if (null !== e) { let t = r.V8(p), n = m.Y(e, o); if (n !== m.Y(t, o)) { let e = m.J(n, o, l); c.push({ range: new d.e(u, 1, u, t.length + 1), text: e }), p = e + p.substr(t.length) } else { let e = g.zu.getIndentMetadata(i, u); if (0 === e || 8 === e) return } } } const f = u; for (; u < e.endLineNumber && !/\S/.test(i.getLineContent(u + 1));) u++; if (u !== e.endLineNumber) { let t = { getLineTokens: e => i.getLineTokens(e), getLanguageIdentifier: () => i.getLanguageIdentifier(), getLanguageIdAtPosition: (e, t) => i.getLanguageIdAtPosition(e, t), getLineContent: e => e === f ? p : i.getLineContent(e) }, s = g.zu.getGoodIndentForLine(n, t, i.getLanguageIdentifier().id, u + 1, h); if (null !== s) { let t = m.Y(s, o), n = m.Y(r.V8(i.getLineContent(u + 1)), o); if (t !== n) { let s = t - n; for (let t = u + 1; t <= e.endLineNumber; t++) { let e = i.getLineContent(t), n = r.V8(e), a = m.Y(n, o) + s, h = m.J(a, o, l); h !== n && c.push({ range: new d.e(t, 1, t, n.length + 1), text: h }) } } } } if (c.length > 0) { this.editor.pushUndoStop(); let e = new L(c, this.editor.getSelection()); this.editor.executeCommand("autoIndentOnPaste", e), this.editor.pushUndoStop() } } shouldIgnoreLine(e, t) { e.forceTokenization(t); let i = e.getLineFirstNonWhitespaceColumn(t); if (0 === i) return !0; let n = e.getLineTokens(t); if (n.getCount() > 0) { let e = n.findTokenIndexAtOffset(i); if (e >= 0 && 1 === n.getStandardTokenType(e)) return !0 } return !1 } dispose() { this.callOnDispose.dispose(), this.callOnModel.dispose() } } function D(e, t, i, n) { if (1 === e.getLineCount() && 1 === e.getLineMaxColumn(1)) return; let o = ""; for (let e = 0; e < i; e++) o += " "; let r = new RegExp(o, "gi"); for (let i = 1, s = e.getLineCount(); i <= s; i++) { let s = e.getLineFirstNonWhitespaceColumn(i); if (0 === s && (s = e.getLineMaxColumn(i)), 1 === s) continue; const a = new d.e(i, 1, i, s), l = e.getValueInRange(a), c = n ? l.replace(/\t/gi, o) : l.replace(r, "\t"); t.addEditOperation(a, c) } } N.ID = "editor.contrib.autoIndentOnPaste"; class E { constructor(e, t) { this.selection = e, this.tabSize = t, this.selectionId = null } getEditOperations(e, t) { this.selectionId = t.trackSelection(this.selection), D(e, t, this.tabSize, ! 0) } computeCursorState(e, t) { return t.getTrackedSelection(this.selectionId) } } class I { constructor(e, t) { this.selection = e, this.tabSize = t, this.selectionId = null } getEditOperations(e, t) { this.selectionId = t.trackSelection(this.selection), D(e, t, this.tabSize, ! 1) } computeCursorState(e, t) { return t.getTrackedSelection(this.selectionId) } }(0, s._K)(N.ID, N), (0, s.Qr)(b), (0, s.Qr)(v), (0, s.Qr)(C), (0, s.Qr)( y), (0, s.Qr)(S), (0, s.Qr)(x), (0, s.Qr)(k) }, 7586: (e, t, i) => { "use strict"; i.r(t), i.d(t, { getInlayHints: () => x, InlayHintsController: () => k }); var n = i(5393), o = i(7301), r = i(9954), s = i(5976), a = i(6830), l = i(1640), d = i(4101), c = i(9488), h = i(3910), u = i(1050), g = i(7781), p = i(4314), m = i(1036), f = i(4565), _ = i(666), b = i(8401), v = i(8216), w = i(187), C = i(3108), y = function(e, t) { return function(i, n) { t(i, n, e) } }, S = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; function x(e, t, i) { return S(this, void 0, void 0, (function*() { const n = [], r = d.mX.ordered(e).reverse(), s = (0, c.xH)(r.map((r => t.map((t => Promise.resolve(r.provideInlayHints( e, t, i)).then((e => { const i = null == e ? void 0 : e.filter((e => t.containsPosition( e.position))); (null == i ? void 0 : i.length) && n.push({ list: i, provider: r }) }), (e => { (0, o.Cp)(e) }))))))); return yield Promise.all(s), n })) } let k = class { constructor(e, t, i, n) { this._editor = e, this._codeEditorService = t, this._themeService = i, this._configurationService = n, this._disposables = new s.SL, this._sessionDisposables = new s.SL, this._getInlayHintsDelays = new m.Y(d.mX, 25, 2500), this._decorationsTypeIds = [], this._decorationIds = [], this._disposables.add(d.mX.onDidChange((() => this._update()))), this._disposables.add(i.onDidColorThemeChange((() => this._update()))), this._disposables.add(e.onDidChangeModel((() => this._update()))), this._disposables.add(e.onDidChangeModelLanguage( (() => this._update()))), this._disposables.add(e.onDidChangeConfiguration( (e => { e.hasChanged(126) && this._update() }))), this._update() } dispose() { this._sessionDisposables.dispose(), this._removeAllDecorations(), this._disposables.dispose() } _update() { if (this._sessionDisposables.clear(), !this._editor.getOption(126).enabled) return void this._removeAllDecorations(); const e = this._editor.getModel(); if (!e || !d.mX.has(e)) return void this._removeAllDecorations(); const t = new n.pY((() => S(this, void 0, void 0, (function*() { const i = Date.now(), n = new u.A; this._sessionDisposables.add((0, s.OF)((() => n.dispose(!0)))); const o = this._editor.getVisibleRangesPlusViewportAboveBelow(), r = yield x(e, o, n.token), a = this._getInlayHintsDelays.update(e, Date.now() - i); t.delay = a, this._updateHintsDecorators(r) }))), this._getInlayHintsDelays.get(e)); this._sessionDisposables.add(t), this._sessionDisposables.add(this._editor .onDidChangeModelContent((() => t.schedule()))), this._disposables.add( this._editor.onDidScrollChange((() => t.schedule()))), t.schedule(); const i = new s.SL; this._sessionDisposables.add(i); for (const n of d.mX.all(e)) "function" == typeof n.onDidChangeInlayHints && i.add(n.onDidChangeInlayHints((() => t.schedule()))) } _updateHintsDecorators(e) { const { fontSize: t, fontFamily: i } = this._getLayoutInfo(), n = this._themeService.getColorTheme().getColor( h.Pp), o = this._themeService.getColorTheme().getColor(h.VV), s = [], a = [], l = "--inlayHintsFontFamily"; this._editor.getContainerDomNode().style.setProperty(l, i); const d = this._configurationService.getValue( "editor.useInjectedText"), c = void 0 === d || !!d; for (const { list: i } of e) for (let e = 0; e < i.length && a.length < 500; e++) { const { text: d, position: h, whitespaceBefore: g, whitespaceAfter: m } = i[e], f = g ? t / 3 | 0 : 0, _ = m ? t / 3 | 0 : 0, b = { contentText: (u = d, u.replace(/[ \t]/g, " ")), backgroundColor: `${n}`, color: `${o}`, margin: `0px ${_}px 0px ${f}px`, fontSize: `${t}px`, fontFamily: `var(${l})`, padding: `0px ${t/4|0}px`, borderRadius: (t / 4 | 0) + "px", verticalAlign: "middle" }, v = "inlayHints-" + (0, r.vp)(b).toString(16); this._codeEditorService.registerDecorationType( "inlay-hints-controller", v, c ? { beforeInjectedText: Object.assign(Object.assign({}, b), { affectsLetterSpacing: !0 }) } : { before: b }, void 0, this._editor), s.push(v); const w = this._codeEditorService.resolveDecorationOptions(v, !0); a.push({ range: p.e.fromPositions(h), options: w }) } var u; this._decorationsTypeIds.forEach(this._codeEditorService.removeDecorationType, this._codeEditorService), this._decorationsTypeIds = s, this._decorationIds = this._editor.deltaDecorations(this._decorationIds, a) } _getLayoutInfo() { const e = this._editor.getOption(126), t = this._editor.getOption(44); let i = e.fontSize; return (!i || i < 5 || i > t) && (i = .9 * t | 0), { fontSize: i, fontFamily: e.fontFamily || this._editor.getOption(41) } } _removeAllDecorations() { this._decorationIds = this._editor.deltaDecorations(this._decorationIds, []), this._decorationsTypeIds.forEach(this._codeEditorService.removeDecorationType, this._codeEditorService), this._decorationsTypeIds = [] } }; k.ID = "editor.contrib.InlayHints", k = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([y(1, l.$), y(2, g.XE), y(3, C.Ui)], k), (0, a._K)(k.ID, k), f.P.registerCommand( "_executeInlayHintProvider", ((e, ...t) => S(void 0, void 0, void 0, ( function*() { const [i, n] = t; (0, b.p_)(_.o.isUri(i)), (0, b.p_)(p.e.isIRange(n)); const o = yield e.get(v.S).createModelReference(i); try { const e = yield x(o.object.textEditorModel, [p.e.lift(n)], u.T.None); return (0, c.xH)(e.map((e => e.list))).sort(((e, t) => w.L.compare( e.position, t.position))) } finally { o.dispose() } })))) }, 3167: (e, t, i) => { "use strict"; i.r(t), i.d(t, { ActiveGhostTextController: () => Oe, GhostTextController: () => Ae, ShowNextInlineSuggestionAction: () => Be, ShowPreviousInlineSuggestionAction: () => We, TriggerInlineSuggestionAction: () => ze, commitInlineSuggestionAction: () => Fe }); var n = i(5976), o = i(6830), r = i(9102), s = i(3379), a = i.n(s), l = i(7795), d = i.n(l), c = i(569), h = i.n(c), u = i(3565), g = i.n(u), p = i(9216), m = i.n(p), f = i(4589), _ = i.n(f), b = i(3975), v = {}; v.styleTagTransform = _(), v.setAttributes = g(), v.insert = h().bind( null, "head"), v.domAPI = d(), v.insertStyleElement = m(), a()(b.Z, v), b.Z && b.Z.locals && b.Z.locals; var w, C = i(5321), y = i(4314), S = i(1640), x = i(7295), k = i(7736), L = i(4141), N = i(72), D = i(9052), E = i(8411), I = i(187), T = i(7781), M = i(7869), A = i(1264), R = i(3181), O = i(2550), P = i(8819), F = i(2065), B = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }, W = function(e, t) { return function(i, n) { t(i, n, e) } }; const z = null === (w = window.trustedTypes) || void 0 === w ? void 0 : w .createPolicy("editorGhostText", { createHTML: e => e }); let V = class extends n.JT { constructor(e, t, i) { super(), this.editor = e, this.model = t, this.instantiationService = i, this.disposed = !1, this.partsWidget = this._register(this.instantiationService .createInstance(H, this.editor)), this.additionalLinesWidget = this ._register(new j(this.editor)), this.viewMoreContentWidget = void 0, this._register(this.editor.onDidChangeConfiguration((e => { (e.hasChanged(28) || e.hasChanged(105) || e.hasChanged(88) || e.hasChanged( 82) || e.hasChanged(43) || e.hasChanged(42) || e.hasChanged(58)) && this.update() }))), this._register((0, n.OF)((() => { var e; this.disposed = !0, this.update(), null === (e = this.viewMoreContentWidget) || void 0 === e || e.dispose(), this.viewMoreContentWidget = void 0 }))), this._register(t.onDidChange((() => { this.update() }))), this.update() } shouldShowHoverAtViewZone(e) { return this.additionalLinesWidget.viewZoneId === e } update() { var e; const t = this.model.ghostText; if (!this.editor.hasModel() || !t || this.disposed) return this.partsWidget .clear(), void this.additionalLinesWidget.clear(); const i = new Array, n = new Array; function o(e, t) { if (n.length > 0) { const i = n[n.length - 1]; t && i.decorations.push(new O.Kp(i.content.length + 1, i.content.length + 1 + e[0].length, t, 0)), i.content += e[0], e = e.slice(1) } for (const i of e) n.push({ content: i, decorations: t ? [new O.Kp(1, i.length + 1, t, 0)] : [] }) } const r = this.editor.getModel().getLineContent(t.lineNumber); let s; this.editor.getModel().getLineTokens(t.lineNumber); let a = 0; for (const e of t.parts) { let t = e.lines; void 0 === s ? (i.push({ column: e.column, text: t[0], preview: e.preview }), t = t.slice(1)) : o([r.substring(a, e.column - 1)], void 0), t.length > 0 && (o(t, "ghost-text"), void 0 === s && e.column <= r.length && ( s = e.column)), a = e.column - 1 } void 0 !== s && o([r.substring(a)], void 0), this.partsWidget.setParts( t.lineNumber, i, void 0 !== s ? { column: s, length: r.length + 1 - s } : void 0), this.additionalLinesWidget.updateLines(t.lineNumber, n, t.additionalReservedLineCount), t.parts.some((e => e.lines.length < 0)) ? this.viewMoreContentWidget = this.renderViewMoreLines(new I.L( t.lineNumber, this.editor.getModel().getLineMaxColumn(t.lineNumber) ), "", 0) : (null === (e = this.viewMoreContentWidget) || void 0 === e || e.dispose(), this.viewMoreContentWidget = void 0) } renderViewMoreLines(e, t, i) { const o = this.editor.getOption(42), r = document.createElement("div"); r.className = "suggest-preview-additional-widget", D.V.applyFontInfoSlow( r, o); const s = document.createElement("span"); s.className = "content-spacer", s.append(t), r.append(s); const a = document.createElement("span"); a.className = "content-newline suggest-preview-text", a.append("⏎ "), r.append(a); const l = new n.SL, d = document.createElement("div"); return d.className = "button suggest-preview-text", d.append( `+${i} lines…`), l.add(C.mu(d, "mousedown", (e => { var t; null === (t = this.model) || void 0 === t || t.setExpanded(!0), e.preventDefault(), this.editor.focus() }))), r.append(d), new $(this.editor, e, r, l) } }; V = B([W(2, F.TG)], V); let H = class { constructor(e, t, i, o) { this.editor = e, this.codeEditorService = t, this.themeService = i, this.contextKeyService = o, this.decorationIds = [], this.disposableStore = new n.SL } dispose() { this.clear(), this.disposableStore.dispose() } clear() { this.editor.deltaDecorations(this.decorationIds, []), this.disposableStore .clear() } setParts(e, t, i) { this.disposableStore.clear(); const n = this.themeService.getColorTheme(), o = n.getColor(M.N5); let r, s; o && (r = String(o.rgba.a), s = A.Il.Format.CSS.format(U(o))); const a = n.getColor(M.x3); let l; a && (l = `2px dashed ${a}`); const d = this.editor.getModel(); if (!d) return; const { tabSize: c } = d.getOptions(), h = d.getLineContent(e) || ""; let u = 0, g = ""; const p = new Array; i && p.push({ range: y.e.fromPositions(new I.L(e, i.column), new I.L(e, i.column + i.length)), options: { inlineClassName: "ghost-text-hidden", description: "ghost-text-hidden" } }); const m = this.contextKeyService.getContextKeyValue( "config.editor.useInjectedText"), f = void 0 === m || !!m; this.decorationIds = this.editor.deltaDecorations(this.decorationIds, t.map((t => { g += h.substring(u, t.column - 1), u = t.column - 1; const i = f ? t.text : this.renderSingleLineText(t.text, g, c, ! 1), n = this.disposableStore.add(function(e, t, i, n) { const o = "0-ghost-text-" + K++; return e.registerDecorationType("ghost-text", o, n), { dispose() { e.removeDecorationType(o) }, resolve: () => e.resolveDecorationOptions(o, !0) } }(this.codeEditorService, 0, 0, { after: { contentText: i, opacity: r, color: s, border: l, fontWeight: t.preview ? "bold" : "normal" } })); return { range: y.e.fromPositions(new I.L(e, t.column)), options: f ? { description: "ghost-text", after: { content: i, inlineClassName: t.preview ? "ghost-text-decoration-preview" : "ghost-text-decoration" } } : Object.assign({}, n.resolve()) } })).concat(p)) } renderSingleLineText(e, t, i, n) { const o = t + e, r = R.io.visibleColumnsByColumns(o, i); let s = "", a = t.length + 1; for (const t of e) { if ("\t" === t) { const e = r[a + 1] - r[a]; if (n) { s += "→"; for (let t = 1; t < e; t++) s += " " } else for (let t = 0; t < e; t++) s += " " } else s += " " === t ? n ? "·" : " " : t; a += 1 } return s } }; function U(e) { const { r: t, b: i, g: n } = e.rgba; return new A.Il(new A.VS(t, n, i, 255)) } H = B([W(1, S.$), W(2, T.XE), W(3, P.i6)], H); class j { constructor(e) { this.editor = e, this._viewZoneId = void 0 } get viewZoneId() { return this._viewZoneId } dispose() { this.clear() } clear() { this.editor.changeViewZones((e => { this._viewZoneId && (e.removeZone(this._viewZoneId), this._viewZoneId = void 0) })) } updateLines(e, t, i) { const n = this.editor.getModel(); if (!n) return; const { tabSize: o } = n.getOptions(); this.editor.changeViewZones((n => { this._viewZoneId && (n.removeZone(this._viewZoneId), this._viewZoneId = void 0); const r = Math.max(t.length, i); if (r > 0) { const i = document.createElement("div"); ! function(e, t, i, n) { const o = n.get(28), r = n.get(105), s = n.get(82), a = n.get(43), l = n.get(42), d = n.get(58), c = (0, N.l$)(1e4); c.appendASCIIString('
    '); for (let e = 0, n = i.length; e < n; e++) { const n = i[e], h = n.content; c.appendASCIIString('
    '); const u = x.$i(h), g = x.Ut(h), p = E.A.createEmpty(h); (0, k.d1)(new k.IJ(l.isMonospace && !o, l.canUseHalfwidthRightwardsArrow, h, !1, u, g, 0, p, n.decorations, t, 0, l.spaceWidth, l.middotWidth, l.wsmiddotWidth, r, "none", s, a !== L.n0.OFF, null), c), c.appendASCIIString( "
    ") } c.appendASCIIString("
    "), D.V.applyFontInfoSlow(e, l); const h = c.build(), u = z ? z.createHTML(h) : h; e.innerHTML = u }(i, o, t, this.editor.getOptions()), this._viewZoneId = n.addZone({ afterLineNumber: e, heightInLines: r, domNode: i }) } })) } } let K = 0; class $ extends n.JT { constructor(e, t, i, o) { super(), this.editor = e, this.position = t, this.domNode = i, this.allowEditorOverflow = ! 1, this.suppressMouseDown = !1, this._register(o), this._register((0, n.OF)((() => { this.editor.removeContentWidget(this) }))), this.editor.addContentWidget(this) } getId() { return "editor.widget.viewMoreLinesWidget" } getDomNode() { return this.domNode } getPosition() { return { position: this.position, preference: [0] } } }(0, T.Ic)(((e, t) => { const i = e.getColor(M.N5); if (i) { const e = String(i.rgba.a), n = A.Il.Format.CSS.format(U(i)); t.addRule( `.monaco-editor .ghost-text-decoration { opacity: ${e}; color: ${n}; }` ), t.addRule( `.monaco-editor .ghost-text-decoration-preview { color: ${i.toString()}; }` ), t.addRule( `.monaco-editor .suggest-preview-text .ghost-text { opacity: ${e}; color: ${n}; }` ) } const n = e.getColor(M.x3); n && t.addRule( `.monaco-editor .suggest-preview-text .ghost-text { border: 2px dashed ${n}; }` ) })); var q = i(3580), Z = i(5393), G = i(1050), Y = i(7301), Q = i(4669), X = i(4101), J = i(9386), ee = i(4565), te = i(8728); class ie { constructor(e, t, i = 0) { this.lineNumber = e, this.parts = t, this.additionalReservedLineCount = i } renderForScreenReader(e) { if (0 === this.parts.length) return ""; const t = this.parts[this.parts.length - 1]; return function(e, t) { const i = new ne(e), n = t.map((e => { const t = y.e.lift(e.range); return { startOffset: i.getOffset(t.getStartPosition()), endOffset: i.getOffset(t.getEndPosition()), text: e.text } })); n.sort(((e, t) => t.startOffset - e.startOffset)); for (const t of n) e = e.substring(0, t.startOffset) + t.text + e.substring( t.endOffset); return e }(e.substr(0, t.column - 1), this.parts.map((e => ({ range: { startLineNumber: 1, endLineNumber: 1, startColumn: e.column, endColumn: e.column }, text: e.lines.join("\n") })))).substring(this.parts[0].column - 1) } } class ne { constructor(e) { this.lineStartOffsetByLineIdx = [], this.lineStartOffsetByLineIdx.push( 0); for (let t = 0; t < e.length; t++) "\n" === e.charAt(t) && this.lineStartOffsetByLineIdx .push(t + 1) } getOffset(e) { return this.lineStartOffsetByLineIdx[e.lineNumber - 1] + e.column - 1 } } class oe { constructor(e, t, i) { this.column = e, this.lines = t, this.preview = i } } class re extends n.JT { constructor(e) { super(), this.editor = e, this._expanded = void 0, this.onDidChangeEmitter = new Q.Q5, this.onDidChange = this.onDidChangeEmitter.event, this._register( e.onDidChangeConfiguration((e => { e.hasChanged(106) && void 0 === this._expanded && this.onDidChangeEmitter .fire() }))) } setExpanded(e) { this._expanded = !0, this.onDidChangeEmitter.fire() } } var se = i(2484); function ae(e, t, i, n, o = 0) { if (e.range.startLineNumber !== e.range.endLineNumber) return; const r = e.text.length - o, s = t.getValueInRange(e.range), a = function(e, t) { if ((null == le ? void 0 : le.originalValue) === e && (null == le ? void 0 : le.newValue) === t) return null == le ? void 0 : le.changes; { const i = function(e, t) { function i(e) { let t = 0; for (let i = 0, n = e.length; i < n; i++) { const n = e.charCodeAt(i); n > t && (t = n) } return t } const n = Math.max(i(e), i(t)); function o(e) { if (e < 0) throw new Error("unexpected"); return n + e + 1 } function r(e) { let t = 0, i = 0; const n = new Int32Array(e.length); for (let r = 0, s = e.length; r < s; r++) { const s = 100 * i + t; "(" === e[r] ? (n[r] = o(2 * s), t++) : ")" === e[r] ? (n[r] = o( 2 * s + 1), 1 === t && i++, t = Math.max(t - 1, 0)) : n[r] = e.charCodeAt( r) } return n } const s = r(e), a = r(t); return new se.Hs({ getElements: () => s }, { getElements: () => a }).ComputeDiff(!1).changes }(e, t); return le = { originalValue: e, newValue: t, changes: i }, i } }(s, e.text), l = e.range.startLineNumber, d = new Array; if ("prefix" === i) { const e = a.filter((e => 0 === e.originalLength)); if (e.length > 1 || 1 === e.length && e[0].originalStart !== s.length) return } for (const o of a) { const a = e.range.startColumn + o.originalStart + o.originalLength; if ("subwordSmart" === i && n && n.lineNumber === e.range.startLineNumber && a < n.column) return; if (o.originalLength > 0) { const e = s.substr(o.originalStart, o.originalLength), i = t.getLineFirstNonWhitespaceColumn(l); if (!/^(\t| )*$/.test(e) || !(0 === i || a <= i)) return } if (0 === o.modifiedLength) continue; const c = o.modifiedStart + o.modifiedLength, h = Math.max(o.modifiedStart, Math.min(c, r)), u = e.text.substring(o.modifiedStart, h), g = e.text.substring(h, Math.max(o.modifiedStart, c)); if (u.length > 0) { const e = x.uq(u); d.push(new oe(a, e, !1)) } if (g.length > 0) { const e = x.uq(g); d.push(new oe(a, e, !0)) } } return new ie(l, d, 0) } let le; const de = "editor.action.inlineSuggest.commit"; var ce = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; let he = class extends n.JT { constructor(e, t, i) { super(), this.editor = e, this.cache = t, this.commandService = i, this.onDidChangeEmitter = new Q.Q5, this.onDidChange = this.onDidChangeEmitter .event, this.completionSession = this._register(new n.XK), this.active = ! 1, this.disposed = !1, this._register(i.onDidExecuteCommand((t => { new Set([o.n_.id, o.kz.id, te.CoreEditingCommands.Tab.id, te.CoreEditingCommands .DeleteLeft.id, te.CoreEditingCommands.DeleteRight.id, de, "acceptSelectedSuggestion" ]).has(t.commandId) && e.hasTextFocus() && this.handleUserInput() }))), this._register(this.editor.onDidType((e => { this.handleUserInput() }))), this._register(this.editor.onDidChangeCursorPosition((e => { this.session && !this.session.isValid && this.hide() }))), this._register((0, n.OF)((() => { this.disposed = !0 }))) } handleUserInput() { this.session && !this.session.isValid && this.hide(), setTimeout((() => { this.disposed || this.startSessionIfTriggered() }), 0) } get session() { return this.completionSession.value } get ghostText() { var e; return null === (e = this.session) || void 0 === e ? void 0 : e.ghostText } get minReservedLineCount() { return this.session ? this.session.minReservedLineCount : 0 } setExpanded(e) { var t; null === (t = this.session) || void 0 === t || t.setExpanded(e) } setActive(e) { var t; this.active = e, e && (null === (t = this.session) || void 0 === t || t.scheduleAutomaticUpdate()) } startSessionIfTriggered() { this.editor.getOption(54).enabled && (this.session && this.session.isValid || this.trigger(X.bw.Automatic)) } trigger(e) { this.completionSession.value ? e === X.bw.Explicit && this.completionSession .value.ensureUpdateWithExplicitContext() : (this.completionSession.value = new pe(this.editor, this.editor.getPosition(), (() => this.active), this.commandService, this.cache, e), this.completionSession.value.takeOwnership( this.completionSession.value.onDidChange((() => { this.onDidChangeEmitter.fire() })))) } hide() { this.completionSession.clear(), this.onDidChangeEmitter.fire() } commitCurrentSuggestion() { var e; null === (e = this.session) || void 0 === e || e.commitCurrentCompletion() } showNext() { var e; null === (e = this.session) || void 0 === e || e.showNextInlineCompletion() } showPrevious() { var e; null === (e = this.session) || void 0 === e || e.showPreviousInlineCompletion() } hasMultipleInlineCompletions() { var e; return ce(this, void 0, void 0, (function*() { const t = yield null === (e = this.session) || void 0 === e ? void 0 : e.hasMultipleInlineCompletions(); return void 0 !== t && t })) } }; var ue, ge; he = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([(ue = 2, ge = ee.H, function(e, t) { ge(e, t, ue) })], he); class pe extends re { constructor(e, t, i, o, r, s) { let a; super(e), this.triggerPosition = t, this.shouldUpdate = i, this.commandService = o, this.cache = r, this.initialTriggerKind = s, this.minReservedLineCount = 0, this.updateOperation = this._register(new n.XK), this.updateSoon = this._register(new Z.pY((() => { let e = this.initialTriggerKind; return this.initialTriggerKind = X.bw.Automatic, this.update(e) }), 50)), this.currentlySelectedCompletionId = void 0, this._register( this.onDidChange((() => { const e = this.currentCompletion; if (e && e.sourceInlineCompletion !== a) { a = e.sourceInlineCompletion; const t = e.sourceProvider; t.handleItemDidShow && t.handleItemDidShow(e.sourceInlineCompletions, a) } }))), this._register((0, n.OF)((() => { this.cache.clear() }))), this._register(this.editor.onDidChangeCursorPosition((e => { this.cache.value && this.onDidChangeEmitter.fire() }))), this._register(this.editor.onDidChangeModelContent((e => { this.scheduleAutomaticUpdate() }))), this._register(X.zu.onDidChange((() => { this.updateSoon.schedule() }))), this.scheduleAutomaticUpdate() } fixAndGetIndexOfCurrentSelection() { if (!this.currentlySelectedCompletionId || !this.cache.value) return 0; if (0 === this.cache.value.completions.length) return 0; const e = this.cache.value.completions.findIndex((e => e.semanticId === this.currentlySelectedCompletionId)); return -1 === e ? (this.currentlySelectedCompletionId = void 0, 0) : e } get currentCachedCompletion() { if (this.cache.value) return this.cache.value.completions[this.fixAndGetIndexOfCurrentSelection()] } showNextInlineCompletion() { var e; return ce(this, void 0, void 0, (function*() { yield this.ensureUpdateWithExplicitContext(); const t = (null === (e = this.cache.value) || void 0 === e ? void 0 : e.completions) || []; if (t.length > 0) { const e = (this.fixAndGetIndexOfCurrentSelection() + 1) % t.length; this.currentlySelectedCompletionId = t[e].semanticId } else this.currentlySelectedCompletionId = void 0; this.onDidChangeEmitter.fire() })) } showPreviousInlineCompletion() { var e; return ce(this, void 0, void 0, (function*() { yield this.ensureUpdateWithExplicitContext(); const t = (null === (e = this.cache.value) || void 0 === e ? void 0 : e.completions) || []; if (t.length > 0) { const e = (this.fixAndGetIndexOfCurrentSelection() + t.length - 1) % t.length; this.currentlySelectedCompletionId = t[e].semanticId } else this.currentlySelectedCompletionId = void 0; this.onDidChangeEmitter.fire() })) } ensureUpdateWithExplicitContext() { var e; return ce(this, void 0, void 0, (function*() { this.updateOperation.value ? this.updateOperation.value.triggerKind === X.bw.Explicit ? yield this.updateOperation.value.promise : yield this .update(X.bw.Explicit) : (null === (e = this.cache.value) || void 0 === e ? void 0 : e.triggerKind) !== X.bw.Explicit && (yield this.update( X.bw.Explicit)) })) } hasMultipleInlineCompletions() { var e; return ce(this, void 0, void 0, (function*() { return yield this.ensureUpdateWithExplicitContext(), ((null === (e = this.cache.value) || void 0 === e ? void 0 : e.completions.length) || 0) > 1 })) } get ghostText() { const e = this.currentCompletion, t = this.editor.getOptions().get(54).mode; return e ? ae(e, this.editor.getModel(), t, this.editor.getPosition()) : void 0 } get currentCompletion() { const e = this.currentCachedCompletion; if (e) return e.toLiveInlineCompletion() } get isValid() { return this.editor.getPosition().lineNumber === this.triggerPosition.lineNumber } scheduleAutomaticUpdate() { this.updateOperation.clear(), this.updateSoon.schedule() } update(e) { return ce(this, void 0, void 0, (function*() { if (!this.shouldUpdate()) return; const t = this.editor.getPosition(), i = (0, Z.PG)((i => ce(this, void 0, void 0, (function*() { let n; try { n = yield be(t, this.editor.getModel(), { triggerKind: e, selectedSuggestionInfo: void 0 }, i) } catch (e) { return void(0, Y.dL)(e) } i.isCancellationRequested || (this.cache.setValue(this.editor, n, e), this.onDidChangeEmitter.fire()) })))), n = new me(i, e); this.updateOperation.value = n, yield i, this.updateOperation.value === n && this.updateOperation.clear() })) } takeOwnership(e) { this._register(e) } commitCurrentCompletion() { if (!this.ghostText) return; const e = this.currentCompletion; e && this.commit(e) } commit(e) { const t = this.cache.clearAndLeak(); this.editor.executeEdits("inlineSuggestion.accept", [J.h.replaceMove(e .range, e.text)]), e.command ? this.commandService.executeCommand(e.command .id, ...e.command.arguments || []).finally((() => { null == t || t.dispose() })).then(void 0, Y.Cp) : null == t || t.dispose(), this.onDidChangeEmitter .fire() } } class me { constructor(e, t) { this.promise = e, this.triggerKind = t } dispose() { this.promise.cancel() } } class fe extends n.JT { constructor(e, t, i, o) { super(), this.triggerKind = o; const r = e.deltaDecorations([], t.items.map((e => ({ range: e.range, options: { description: "inline-completion-tracking-range" } })))); this._register((0, n.OF)((() => { e.deltaDecorations(r, []) }))), this.completions = t.items.map(((e, t) => new _e(e, r[t]))), this._register(e.onDidChangeModelContent((() => { let t = !1; const n = e.getModel(); for (const e of this.completions) { const i = n.getDecorationRange(e.decorationId); i ? e.synchronizedRange.equalsRange(i) || (t = !0, e.synchronizedRange = i) : (0, Y.dL)(new Error("Decoration has no range")) } t && i() }))), this._register(t) } } class _e { constructor(e, t) { this.inlineCompletion = e, this.decorationId = t, this.semanticId = JSON.stringify({ text: this.inlineCompletion.text, startLine: this.inlineCompletion.range.startLineNumber, startColumn: this.inlineCompletion.range.startColumn, command: this.inlineCompletion.command }), this.synchronizedRange = e.range } toLiveInlineCompletion() { return { text: this.inlineCompletion.text, range: this.synchronizedRange, command: this.inlineCompletion.command, sourceProvider: this.inlineCompletion.sourceProvider, sourceInlineCompletions: this.inlineCompletion.sourceInlineCompletions, sourceInlineCompletion: this.inlineCompletion.sourceInlineCompletion } } } function be(e, t, i, n = G.T.None) { return ce(this, void 0, void 0, (function*() { const o = function(e, t) { const i = t.getWordAtPosition(e), n = t.getLineMaxColumn(e.lineNumber); return i ? new y.e(e.lineNumber, i.startColumn, e.lineNumber, n) : y.e.fromPositions(e, e.with(void 0, n)) }(e, t), r = X.zu.all(t), s = yield Promise.all(r.map((o => ce(this, void 0, void 0, ( function*() { const r = yield o.provideInlineCompletions(t, e, i, n); return { completions: r, provider: o, dispose: () => { r && o.freeInlineCompletions(r) } } }))))), a = new Map; for (const e of s) { const t = e.completions; if (t) for (const i of t.items.map((i => ({ text: i.text, range: i.range ? y.e.lift(i.range) : o, command: i.command, sourceProvider: e.provider, sourceInlineCompletions: t, sourceInlineCompletion: i })))) i.range.startLineNumber === i.range.endLineNumber && a.set( JSON.stringify({ text: i.text, range: i.range }), i) } return { items: [...a.values()], dispose: () => { for (const e of s) e.dispose() } } })) } var ve = i(3472), we = i(781), Ce = i(9830); class ye extends n.JT { constructor(e) { super(), this.editor = e, this.isSuggestWidgetVisible = !1, this.isShiftKeyPressed = ! 1, this._isActive = !1, this._currentInlineCompletion = void 0, this .onDidChangeEmitter = new Q.Q5, this.onDidChange = this.onDidChangeEmitter .event, this.setInactiveDelayed = this._register(new Z.pY((() => { this.isSuggestWidgetVisible || this._isActive && (this._isActive = ! 1, this.onDidChangeEmitter.fire()) }), 100)), this._register(e.onKeyDown((e => { e.shiftKey && !this.isShiftKeyPressed && (this.isShiftKeyPressed = ! 0, this.update(this._isActive)) }))), this._register(e.onKeyUp((e => { e.shiftKey && this.isShiftKeyPressed && (this.isShiftKeyPressed = ! 1, this.update(this._isActive)) }))); const t = Ce.SuggestController.get(this.editor); if (t) { let e = !1; const i = () => { e || (e = !0, this._register(t.widget.value.onDidShow((() => { this.isSuggestWidgetVisible = !0, this.update(!0) }))), this._register(t.widget.value.onDidHide((() => { this.isSuggestWidgetVisible = !1, this.setInactiveDelayed.schedule(), this.update(this._isActive) }))), this._register(t.widget.value.onDidFocus((() => { this.isSuggestWidgetVisible = !0, this.update(!0) })))) }; this._register(Q.ju.once(t.model.onDidTrigger)((e => { i() }))) } this.update(this._isActive) } get state() { if (this._isActive) return { selectedItemAsInlineCompletion: this._currentInlineCompletion } } update(e) { const t = this.getInlineCompletion(); let i = !1; this._currentInlineCompletion !== t && (this._currentInlineCompletion = t, i = !0), this._isActive !== e && (this._isActive = e, i = !0), i && this.onDidChangeEmitter.fire() } getInlineCompletion() { const e = Ce.SuggestController.get(this.editor); if (!e) return; if (!this.isSuggestWidgetVisible) return; const t = e.widget.value.getFocusedItem(); return t ? function(e, t, i, n) { const o = i.item; if (Array.isArray(o.completion.additionalTextEdits) && o.completion .additionalTextEdits.length > 0) return { text: "", range: y.e.fromPositions(t, t) }; let { insertText: r } = o.completion; if (4 & o.completion.insertTextRules) { const i = (new ve.Yj).parse(r), n = e.editor.getModel(); we.l.adjustWhitespace(n, t, i, !0, !0), r = i.toString() } const s = e.getOverwriteInfo(o, n); return { text: r, range: y.e.fromPositions(t.delta(0, -s.overwriteBefore), t.delta(0, Math.max(s.overwriteAfter, 0))) } }(e, this.editor.getPosition(), t, this.isShiftKeyPressed) : void 0 } stopForceRenderingAbove() { const e = Ce.SuggestController.get(this.editor); e && e.stopForceRenderingAbove() } forceRenderingAbove() { const e = Ce.SuggestController.get(this.editor); e && e.forceRenderingAbove() } } var Se = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; class xe extends re { constructor(e, t) { super(e), this.cache = t, this.suggestionInlineCompletionSource = this ._register(new ye(this.editor)), this.updateOperation = this._register( new n.XK), this.updateCacheSoon = this._register(new Z.pY((() => this.updateCache()), 50)), this.minReservedLineCount = 0, this._register( this.suggestionInlineCompletionSource.onDidChange((() => { this.updateCacheSoon.schedule(), this.suggestionInlineCompletionSource .state || (this.minReservedLineCount = 0); const e = this.ghostText; e && (this.minReservedLineCount = Math.max(this.minReservedLineCount, e.parts.map((e => e.lines.length - 1)).reduce(((e, t) => e + t), 0))), this.minReservedLineCount >= 1 && this.isSuggestionPreviewEnabled() ? this.suggestionInlineCompletionSource.forceRenderingAbove() : this.suggestionInlineCompletionSource.stopForceRenderingAbove(), this.onDidChangeEmitter.fire() }))), this._register(this.cache.onDidChange((() => { this.onDidChangeEmitter.fire() }))), this._register(this.editor.onDidChangeCursorPosition((e => { this.isSuggestionPreviewEnabled() && (this.minReservedLineCount = 0, this.updateCacheSoon.schedule(), this.onDidChangeEmitter.fire() ) }))), this._register((0, n.OF)((() => this.suggestionInlineCompletionSource .stopForceRenderingAbove()))) } get isActive() { return void 0 !== this.suggestionInlineCompletionSource.state } isSuggestionPreviewEnabled() { return this.editor.getOption(106).preview } updateCache() { return Se(this, void 0, void 0, (function*() { const e = this.suggestionInlineCompletionSource.state; if (!e || !e.selectedItemAsInlineCompletion) return; const t = { text: e.selectedItemAsInlineCompletion.text, range: e.selectedItemAsInlineCompletion.range }, i = this.editor.getPosition(), n = (0, Z.PG)((e => Se(this, void 0, void 0, (function*() { let n; try { n = yield be(i, this.editor.getModel(), { triggerKind: X.bw.Automatic, selectedSuggestionInfo: t }, e) } catch (e) { return void(0, Y.dL)(e) } e.isCancellationRequested || (this.cache.setValue(this.editor, n, X.bw.Automatic), this.onDidChangeEmitter.fire()) })))), o = new me(n, X.bw.Automatic); this.updateOperation.value = o, yield n, this.updateOperation.value === o && this.updateOperation.clear() })) } get ghostText() { var e, t; const i = this.suggestionInlineCompletionSource.state, n = ke(this.editor.getModel(), null == i ? void 0 : i.selectedItemAsInlineCompletion), o = ke(this.editor.getModel(), null === (t = null === (e = this.cache .value) || void 0 === e ? void 0 : e.completions[0]) || void 0 === t ? void 0 : t.toLiveInlineCompletion()), r = o && n && o.text.startsWith(n.text) && o.range.equalsRange(n.range) ? o : n || o, s = n ? ((null == r ? void 0 : r.text.length) || 0) - n.text.length : 0, a = (e => { const t = this.editor.getOptions().get(106).previewMode; return e ? ae(e, this.editor.getModel(), t, this.editor.getPosition(), s) || new ie(e.range.endLineNumber, [], this.minReservedLineCount) : void 0 })(r); return this.isSuggestionPreviewEnabled() ? a : void 0 } } function ke(e, t) { if (!t) return t; const i = e.getValueInRange(t.range), n = function(e, t) { let i = 0; for (; i < e.length && i < t.length && e[i] === t[i];) i++; return i }(i, t.text), o = e.getOffsetAt(t.range.getStartPosition()) + n, r = e.getPositionAt(o), s = function(e, t) { let i = 0; for (; i < e.length && i < t.length && e[e.length - i - 1] === t[t.length - i - 1];) i++; return i }(i.substr(n), t.text), a = e.getPositionAt(Math.max(o, e.getOffsetAt(t.range.getEndPosition()) - s)); return { range: y.e.fromPositions(r, a), text: t.text.substr(n, t.text.length - n - s) } } class Le extends n.JT { constructor() { super(...arguments), this.onDidChangeEmitter = new Q.Q5, this.onDidChange = this.onDidChangeEmitter.event, this.hasCachedGhostText = !1, this.currentModelRef = this._register(new n.XK) } get targetModel() { var e; return null === (e = this.currentModelRef.value) || void 0 === e ? void 0 : e.object } setTargetModel(e) { var t, i, n; (null === (t = this.currentModelRef.value) || void 0 === t ? void 0 : t.object) !== e && (this.currentModelRef.clear(), this.currentModelRef .value = e ? (i = e, n = e.onDidChange((() => { this.hasCachedGhostText = !1, this.onDidChangeEmitter.fire() })), { object: i, dispose: () => null == n ? void 0 : n.dispose() }) : void 0, this.hasCachedGhostText = !1, this.onDidChangeEmitter.fire() ) } get ghostText() { var e, t; return this.hasCachedGhostText || (this.cachedGhostText = null === (t = null === (e = this.currentModelRef.value) || void 0 === e ? void 0 : e.object) || void 0 === t ? void 0 : t.ghostText, this.hasCachedGhostText = ! 0), this.cachedGhostText } setExpanded(e) { var t; null === (t = this.targetModel) || void 0 === t || t.setExpanded(e) } get minReservedLineCount() { return this.targetModel ? this.targetModel.minReservedLineCount : 0 } } let Ne = class extends Le { constructor(e, t) { super(), this.editor = e, this.commandService = t, this.sharedCache = this._register(new De), this.suggestWidgetAdapterModel = this._register( new xe(this.editor, this.sharedCache)), this.inlineCompletionsModel = this._register(new he(this.editor, this.sharedCache, this.commandService)), this._register(this.suggestWidgetAdapterModel.onDidChange((() => { this.updateModel() }))), this.updateModel() } get activeInlineCompletionsModel() { if (this.targetModel === this.inlineCompletionsModel) return this.inlineCompletionsModel } updateModel() { this.setTargetModel(this.suggestWidgetAdapterModel.isActive ? this.suggestWidgetAdapterModel : this.inlineCompletionsModel), this.inlineCompletionsModel.setActive( this.targetModel === this.inlineCompletionsModel) } shouldShowHoverAt(e) { var t; const i = null === (t = this.activeInlineCompletionsModel) || void 0 === t ? void 0 : t.ghostText; return !!i && i.parts.some((t => e.containsPosition(new I.L(i.lineNumber, t.column)))) } triggerInlineCompletion() { var e; null === (e = this.activeInlineCompletionsModel) || void 0 === e || e .trigger(X.bw.Explicit) } commitInlineCompletion() { var e; null === (e = this.activeInlineCompletionsModel) || void 0 === e || e .commitCurrentSuggestion() } hideInlineCompletion() { var e; null === (e = this.activeInlineCompletionsModel) || void 0 === e || e .hide() } showNextInlineCompletion() { var e; null === (e = this.activeInlineCompletionsModel) || void 0 === e || e .showNext() } showPreviousInlineCompletion() { var e; null === (e = this.activeInlineCompletionsModel) || void 0 === e || e .showPrevious() } hasMultipleInlineCompletions() { var e, t, i, n, o; return t = this, i = void 0, o = function*() { const t = yield null === (e = this.activeInlineCompletionsModel) || void 0 === e ? void 0 : e.hasMultipleInlineCompletions(); return void 0 !== t && t }, new((n = void 0) || (n = Promise))((function(e, r) { function s(e) { try { l(o.next(e)) } catch (e) { r(e) } } function a(e) { try { l(o.throw(e)) } catch (e) { r(e) } } function l(t) { var i; t.done ? e(t.value) : (i = t.value, i instanceof n ? i : new n(( function(e) { e(i) }))).then(s, a) } l((o = o.apply(t, i || [])).next()) })) } }; Ne = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([function(e, t) { return function(i, n) { t(i, n, e) } }(1, ee.H)], Ne); class De extends n.JT { constructor() { super(...arguments), this.onDidChangeEmitter = new Q.Q5, this.onDidChange = this.onDidChangeEmitter.event, this.cache = this._register(new n.XK) } get value() { return this.cache.value } setValue(e, t, i) { this.cache.value = new fe(e, t, (() => this.onDidChangeEmitter.fire()), i) } clearAndLeak() { return this.cache.clearAndLeak() } clear() { this.cache.clear() } } var Ee = i(9989), Ie = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }, Te = function(e, t) { return function(i, n) { t(i, n, e) } }, Me = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; let Ae = class e extends n.JT { constructor(e, t) { super(), this.editor = e, this.instantiationService = t, this.triggeredExplicitly = ! 1, this.activeController = this._register(new n.XK), this._register( this.editor.onDidChangeModel((() => { this.updateModelController() }))), this._register(this.editor.onDidChangeConfiguration((e => { e.hasChanged(106) && this.updateModelController(), e.hasChanged( 54) && this.updateModelController() }))), this.updateModelController() } static get(t) { return t.getContribution(e.ID) } get activeModel() { var e; return null === (e = this.activeController.value) || void 0 === e ? void 0 : e.model } updateModelController() { const e = this.editor.getOption(106), t = this.editor.getOption(54); this.activeController.value = void 0, this.activeController.value = this.editor.hasModel() && (e.preview || t.enabled || this.triggeredExplicitly) ? this.instantiationService.createInstance(Oe, this.editor) : void 0 } shouldShowHoverAt(e) { var t; return (null === (t = this.activeModel) || void 0 === t ? void 0 : t.shouldShowHoverAt( e)) || !1 } shouldShowHoverAtViewZone(e) { var t, i; return (null === (i = null === (t = this.activeController.value) || void 0 === t ? void 0 : t.widget) || void 0 === i ? void 0 : i.shouldShowHoverAtViewZone( e)) || !1 } trigger() { var e; this.triggeredExplicitly = !0, this.activeController.value || this.updateModelController(), null === (e = this.activeModel) || void 0 === e || e.triggerInlineCompletion() } commit() { var e; null === (e = this.activeModel) || void 0 === e || e.commitInlineCompletion() } hide() { var e; null === (e = this.activeModel) || void 0 === e || e.hideInlineCompletion() } showNextInlineCompletion() { var e; null === (e = this.activeModel) || void 0 === e || e.showNextInlineCompletion() } showPreviousInlineCompletion() { var e; null === (e = this.activeModel) || void 0 === e || e.showPreviousInlineCompletion() } hasMultipleInlineCompletions() { var e; return Me(this, void 0, void 0, (function*() { const t = yield null === (e = this.activeModel) || void 0 === e ? void 0 : e.hasMultipleInlineCompletions(); return void 0 !== t && t })) } }; Ae.inlineSuggestionVisible = new P.uy("inlineSuggestionVisible", !1, q.N( "inlineSuggestionVisible", "Whether an inline suggestion is visible")), Ae.inlineSuggestionHasIndentation = new P.uy( "inlineSuggestionHasIndentation", !1, q.N( "inlineSuggestionHasIndentation", "Whether the inline suggestion starts with whitespace")), Ae.ID = "editor.contrib.ghostTextController", Ae = Ie([Te(1, F.TG)], Ae); class Re { constructor(e) { this.contextKeyService = e, this.inlineCompletionVisible = Ae.inlineSuggestionVisible .bindTo(this.contextKeyService), this.inlineCompletionSuggestsIndentation = Ae.inlineSuggestionHasIndentation.bindTo(this.contextKeyService) } } let Oe = class extends n.JT { constructor(e, t, i) { super(), this.editor = e, this.instantiationService = t, this.contextKeyService = i, this.contextKeys = new Re(this.contextKeyService), this.model = this._register(this.instantiationService.createInstance(Ne, this.editor)), this.widget = this._register(this.instantiationService.createInstance( V, this.editor, this.model)), this._register((0, n.OF)((() => { this.contextKeys.inlineCompletionVisible.set(!1), this.contextKeys .inlineCompletionSuggestsIndentation.set(!1) }))), this._register(this.model.onDidChange((() => { this.updateContextKeys() }))), this.updateContextKeys() } updateContextKeys() { var e; this.contextKeys.inlineCompletionVisible.set(void 0 !== (null === (e = this.model.activeInlineCompletionsModel) || void 0 === e ? void 0 : e.ghostText)); const t = this.model.inlineCompletionsModel.ghostText; if (t && t.parts.length > 0) { const { column: e, lines: i } = t.parts[0], n = i[0].startsWith(" ") || i[0].startsWith("\t"), o = e <= this.editor.getModel().getLineIndentColumn(t.lineNumber); this.contextKeys.inlineCompletionSuggestsIndentation.set(!!this.model .activeInlineCompletionsModel && n && o) } else this.contextKeys.inlineCompletionSuggestsIndentation.set(!1) } }; Oe = Ie([Te(1, F.TG), Te(2, P.i6)], Oe); const Pe = o._l.bindToContribution(Ae.get), Fe = new Pe({ id: de, precondition: Ae.inlineSuggestionVisible, handler(e) { e.commit(), e.editor.focus() } }); (0, o.fK)(Fe), Ee.W.registerKeybindingRule({ primary: 2, weight: 200, id: Fe.id, when: P.Ao.and(Fe.precondition, r.u.tabMovesFocus.toNegated(), Ae.inlineSuggestionHasIndentation .toNegated()) }), (0, o.fK)(new Pe({ id: "editor.action.inlineSuggest.hide", precondition: Ae.inlineSuggestionVisible, kbOpts: { weight: 100, primary: 9 }, handler(e) { e.hide() } })); class Be extends o.R6 { constructor() { super({ id: Be.ID, label: q.N("action.inlineSuggest.showNext", "Show Next Inline Suggestion"), alias: "Show Next Inline Suggestion", precondition: P.Ao.and(r.u.writable, Ae.inlineSuggestionVisible), kbOpts: { weight: 100, primary: 601 } }) } run(e, t) { return Me(this, void 0, void 0, (function*() { const e = Ae.get(t); e && (e.showNextInlineCompletion(), t.focus()) })) } } Be.ID = "editor.action.inlineSuggest.showNext"; class We extends o.R6 { constructor() { super({ id: We.ID, label: q.N("action.inlineSuggest.showPrevious", "Show Previous Inline Suggestion"), alias: "Show Previous Inline Suggestion", precondition: P.Ao.and(r.u.writable, Ae.inlineSuggestionVisible), kbOpts: { weight: 100, primary: 599 } }) } run(e, t) { return Me(this, void 0, void 0, (function*() { const e = Ae.get(t); e && (e.showPreviousInlineCompletion(), t.focus()) })) } } We.ID = "editor.action.inlineSuggest.showPrevious"; class ze extends o.R6 { constructor() { super({ id: "editor.action.inlineSuggest.trigger", label: q.N("action.inlineSuggest.trigger", "Trigger Inline Suggestion"), alias: "Trigger Inline Suggestion", precondition: r.u.writable }) } run(e, t) { return Me(this, void 0, void 0, (function*() { const e = Ae.get(t); e && e.trigger() })) } }(0, o._K)(Ae.ID, Ae), (0, o.Qr)(ze), (0, o.Qr)(Be), (0, o.Qr)(We) }, 6307: (e, t, i) => { "use strict"; i.r(t), i.d(t, { AbstractCaseAction: () => H, AbstractDeleteAllToBoundaryAction: () => F, AbstractSortLinesAction: () => D, DeleteAllLeftAction: () => B, DeleteAllRightAction: () => W, DeleteLinesAction: () => M, DuplicateSelectionAction: () => L, IndentLinesAction: () => A, InsertLineAfterAction: () => P, InsertLineBeforeAction: () => O, JoinLinesAction: () => z, LowerCaseAction: () => j, SnakeCaseAction: () => q, SortLinesAscendingAction: () => E, SortLinesDescendingAction: () => I, TitleCaseAction: () => K, TransposeAction: () => V, TrimTrailingWhitespaceAction: () => T, UpperCaseAction: () => U }); var n = i(3580), o = i(2258), r = i(8728), s = i(6830), a = i(1329), l = i(7295), d = i(9386), c = i(4314); class h { constructor(e, t) { this._selection = e, this._cursors = t, this._selectionId = null } getEditOperations(e, t) { let i = function(e, t) { t.sort(((e, t) => e.lineNumber === t.lineNumber ? e.column - t.column : e.lineNumber - t.lineNumber)); for (let e = t.length - 2; e >= 0; e--) t[e].lineNumber === t[e + 1] .lineNumber && t.splice(e, 1); let i = [], n = 0, o = 0, r = t.length; for (let s = 1, a = e.getLineCount(); s <= a; s++) { let a = e.getLineContent(s), h = a.length + 1, u = 0; if (o < r && t[o].lineNumber === s && (u = t[o].column, o++, u === h)) continue; if (0 === a.length) continue; let g = l.ow(a), p = 0; if (-1 === g) p = 1; else { if (g === a.length - 1) continue; p = g + 2 } p = Math.max(u, p), i[n++] = d.h.delete(new c.e(s, p, s, h)) } return i }(e, this._cursors); for (let e = 0, n = i.length; e < n; e++) { let n = i[e]; t.addEditOperation(n.range, n.text) } this._selectionId = t.trackSelection(this._selection) } computeCursorState(e, t) { return t.getTrackedSelection(this._selectionId) } } var u = i(3582), g = i(187), p = i(3860), m = i(9102); class f { constructor(e, t, i) { this._selection = e, this._isCopyingDown = t, this._noop = i || !1, this._selectionDirection = 0, this._selectionId = null, this._startLineNumberDelta = 0, this._endLineNumberDelta = 0 } getEditOperations(e, t) { let i = this._selection; this._startLineNumberDelta = 0, this._endLineNumberDelta = 0, i.startLineNumber < i.endLineNumber && 1 === i.endColumn && (this._endLineNumberDelta = 1, i = i.setEndPosition(i.endLineNumber - 1, e.getLineMaxColumn(i.endLineNumber - 1))); let n = []; for (let t = i.startLineNumber; t <= i.endLineNumber; t++) n.push(e.getLineContent( t)); const o = n.join("\n"); "" === o && this._isCopyingDown && (this._startLineNumberDelta++, this ._endLineNumberDelta++), this._noop ? t.addEditOperation(new c.e(i.endLineNumber, e.getLineMaxColumn(i.endLineNumber), i.endLineNumber + 1, 1), i.endLineNumber === e.getLineCount() ? "" : "\n") : this._isCopyingDown ? t.addEditOperation( new c.e(i.startLineNumber, 1, i.startLineNumber, 1), o + "\n") : t.addEditOperation( new c.e(i.endLineNumber, e.getLineMaxColumn(i.endLineNumber), i.endLineNumber, e.getLineMaxColumn(i.endLineNumber)), "\n" + o), this._selectionId = t.trackSelection(i), this._selectionDirection = this._selection.getDirection() } computeCursorState(e, t) { let i = t.getTrackedSelection(this._selectionId); if (0 !== this._startLineNumberDelta || 0 !== this._endLineNumberDelta) { let e = i.startLineNumber, t = i.startColumn, n = i.endLineNumber, o = i.endColumn; 0 !== this._startLineNumberDelta && (e += this._startLineNumberDelta, t = 1), 0 !== this._endLineNumberDelta && (n += this._endLineNumberDelta, o = 1), i = p.Y.createWithDirection(e, t, n, o, this._selectionDirection) } return i } } var _ = i(291), b = i(7354), v = i(3831), w = i(1491); class C { constructor(e, t, i) { this._selection = e, this._isMovingDown = t, this._autoIndent = i, this._selectionId = null, this._moveEndLineSelectionShrink = !1 } getEditOperations(e, t) { let i = e.getLineCount(); if (this._isMovingDown && this._selection.endLineNumber === i) return void(this._selectionId = t.trackSelection(this._selection)); if (!this._isMovingDown && 1 === this._selection.startLineNumber) return void(this._selectionId = t.trackSelection(this._selection)); this._moveEndPositionDown = !1; let n = this._selection; n.startLineNumber < n.endLineNumber && 1 === n.endColumn && (this._moveEndPositionDown = ! 0, n = n.setEndPosition(n.endLineNumber - 1, e.getLineMaxColumn(n.endLineNumber - 1))); const { tabSize: o, indentSize: r, insertSpaces: s } = e.getOptions(); let a = this.buildIndentConverter(o, r, s), d = { getLineTokens: t => e.getLineTokens(t), getLanguageIdentifier: () => e.getLanguageIdentifier(), getLanguageIdAtPosition: (t, i) => e.getLanguageIdAtPosition(t, i), getLineContent: null }; if (n.startLineNumber === n.endLineNumber && 1 === e.getLineMaxColumn( n.startLineNumber)) { let i = n.startLineNumber, o = this._isMovingDown ? i + 1 : i - 1; 1 === e.getLineMaxColumn(o) ? t.addEditOperation(new c.e(1, 1, 1, 1), null) : (t.addEditOperation(new c.e(i, 1, i, 1), e.getLineContent(o)), t.addEditOperation(new c.e(o, 1, o, e.getLineMaxColumn(o)), null)), n = new p.Y(o, 1, o, 1) } else { let i, r; if (this._isMovingDown) { i = n.endLineNumber + 1, r = e.getLineContent(i), t.addEditOperation( new c.e(i - 1, e.getLineMaxColumn(i - 1), i, e.getLineMaxColumn(i)), null); let h = r; if (this.shouldAutoIndent(e, n)) { let u = this.matchEnterRule(e, a, o, i, n.startLineNumber - 1); if (null !== u) { let t = l.V8(e.getLineContent(i)), n = u + w.Y(t, o), a = w.J(n, o, s); h = a + this.trimLeft(r) } else { d.getLineContent = t => t === n.startLineNumber ? e.getLineContent( i) : e.getLineContent(t); let t = v.zu.getGoodIndentForLine(this._autoIndent, d, e.getLanguageIdAtPosition( i, 1), n.startLineNumber, a); if (null !== t) { let n = l.V8(e.getLineContent(i)), a = w.Y(t, o); if (a !== w.Y(n, o)) { let e = w.J(a, o, s); h = e + this.trimLeft(r) } } } t.addEditOperation(new c.e(n.startLineNumber, 1, n.startLineNumber, 1), h + "\n"); let g = this.matchEnterRuleMovingDown(e, a, o, n.startLineNumber, i, h); if (null !== g) 0 !== g && this.getIndentEditsOfMovingBlock(e, t, n, o, s, g); else { d.getLineContent = t => t === n.startLineNumber ? h : t >= n.startLineNumber + 1 && t <= n.endLineNumber + 1 ? e.getLineContent(t - 1) : e.getLineContent( t); let r = v.zu.getGoodIndentForLine(this._autoIndent, d, e.getLanguageIdAtPosition( i, 1), n.startLineNumber + 1, a); if (null !== r) { const i = l.V8(e.getLineContent(n.startLineNumber)), a = w.Y(r, o), d = w.Y(i, o); if (a !== d) { const i = a - d; this.getIndentEditsOfMovingBlock(e, t, n, o, s, i) } } } } else t.addEditOperation(new c.e(n.startLineNumber, 1, n.startLineNumber, 1), h + "\n") } else if (i = n.startLineNumber - 1, r = e.getLineContent(i), t.addEditOperation( new c.e(i, 1, i + 1, 1), null), t.addEditOperation(new c.e(n.endLineNumber, e.getLineMaxColumn(n.endLineNumber), n.endLineNumber, e.getLineMaxColumn( n.endLineNumber)), "\n" + r), this.shouldAutoIndent(e, n)) { d.getLineContent = t => t === i ? e.getLineContent(n.startLineNumber) : e.getLineContent(t); let r = this.matchEnterRule(e, a, o, n.startLineNumber, n.startLineNumber - 2); if (null !== r) 0 !== r && this.getIndentEditsOfMovingBlock(e, t, n, o, s, r); else { let r = v.zu.getGoodIndentForLine(this._autoIndent, d, e.getLanguageIdAtPosition( n.startLineNumber, 1), i, a); if (null !== r) { let i = l.V8(e.getLineContent(n.startLineNumber)), a = w.Y(r, o), d = w.Y(i, o); if (a !== d) { let i = a - d; this.getIndentEditsOfMovingBlock(e, t, n, o, s, i) } } } } } this._selectionId = t.trackSelection(n) } buildIndentConverter(e, t, i) { return { shiftIndent: n => _.U.shiftIndent(n, n.length + 1, e, t, i), unshiftIndent: n => _.U.unshiftIndent(n, n.length + 1, e, t, i) } } parseEnterResult(e, t, i, n, o) { if (o) { let r = o.indentation; o.indentAction === b.wU.None || o.indentAction === b.wU.Indent ? r = o.indentation + o.appendText : o.indentAction === b.wU.IndentOutdent ? r = o.indentation : o.indentAction === b.wU.Outdent && (r = t.unshiftIndent( o.indentation) + o.appendText); let s = e.getLineContent(n); if (this.trimLeft(s).indexOf(this.trimLeft(r)) >= 0) { let o = l.V8(e.getLineContent(n)), s = l.V8(r), a = v.zu.getIndentMetadata(e, n); return null !== a && 2 & a && (s = t.unshiftIndent(s)), w.Y(s, i) - w.Y(o, i) } } return null } matchEnterRuleMovingDown(e, t, i, n, o, r) { if (l.ow(r) >= 0) { let r = e.getLineMaxColumn(o), s = v.zu.getEnterAction(this._autoIndent, e, new c.e(o, r, o, r)); return this.parseEnterResult(e, t, i, n, s) } { let o = n - 1; for (; o >= 1;) { let t = e.getLineContent(o); if (l.ow(t) >= 0) break; o-- } if (o < 1 || n > e.getLineCount()) return null; let r = e.getLineMaxColumn(o), s = v.zu.getEnterAction(this._autoIndent, e, new c.e(o, r, o, r)); return this.parseEnterResult(e, t, i, n, s) } } matchEnterRule(e, t, i, n, o, r) { let s = o; for (; s >= 1;) { let t; if (t = s === o && void 0 !== r ? r : e.getLineContent(s), l.ow(t) >= 0) break; s-- } if (s < 1 || n > e.getLineCount()) return null; let a = e.getLineMaxColumn(s), d = v.zu.getEnterAction(this._autoIndent, e, new c.e(s, a, s, a)); return this.parseEnterResult(e, t, i, n, d) } trimLeft(e) { return e.replace(/^\s+/, "") } shouldAutoIndent(e, t) { if (this._autoIndent < 4) return !1; if (!e.isCheapToTokenize(t.startLineNumber)) return !1; let i = e.getLanguageIdAtPosition(t.startLineNumber, 1); return i === e.getLanguageIdAtPosition(t.endLineNumber, 1) && null !== v.zu.getIndentRulesSupport(i) } getIndentEditsOfMovingBlock(e, t, i, n, o, r) { for (let s = i.startLineNumber; s <= i.endLineNumber; s++) { let a = e.getLineContent(s), d = l.V8(a), h = w.Y(d, n) + r, u = w.J(h, n, o); u !== d && (t.addEditOperation(new c.e(s, 1, s, d.length + 1), u), s === i.endLineNumber && i.endColumn <= d.length + 1 && "" === u && (this ._moveEndLineSelectionShrink = !0)) } } computeCursorState(e, t) { let i = t.getTrackedSelection(this._selectionId); return this._moveEndPositionDown && (i = i.setEndPosition(i.endLineNumber + 1, 1)), this._moveEndLineSelectionShrink && i.startLineNumber < i.endLineNumber && (i = i.setEndPosition(i.endLineNumber, 2)), i } } class y { constructor(e, t) { this.selection = e, this.descending = t, this.selectionId = null } static getCollator() { return y._COLLATOR || (y._COLLATOR = new Intl.Collator), y._COLLATOR } getEditOperations(e, t) { let i = function(e, t, i) { let n = S(e, t, i); return n ? d.h.replace(new c.e(n.startLineNumber, 1, n.endLineNumber, e.getLineMaxColumn(n.endLineNumber)), n.after.join("\n")) : null }(e, this.selection, this.descending); i && t.addEditOperation(i.range, i.text), this.selectionId = t.trackSelection( this.selection) } computeCursorState(e, t) { return t.getTrackedSelection(this.selectionId) } static canRun(e, t, i) { if (null === e) return !1; let n = S(e, t, i); if (!n) return !1; for (let e = 0, t = n.before.length; e < t; e++) if (n.before[e] !== n.after[e]) return !0; return !1 } } function S(e, t, i) { let n = t.startLineNumber, o = t.endLineNumber; if (1 === t.endColumn && o--, n >= o) return null; let r = []; for (let t = n; t <= o; t++) r.push(e.getLineContent(t)); let s = r.slice(0); return s.sort(y.getCollator().compare), !0 === i && (s = s.reverse()), { startLineNumber: n, endLineNumber: o, before: r, after: s } } y._COLLATOR = null; var x = i(4144); class k extends s.R6 { constructor(e, t) { super(t), this.down = e } run(e, t) { if (!t.hasModel()) return; const i = t.getSelections().map(((e, t) => ({ selection: e, index: t, ignore: !1 }))); i.sort(((e, t) => c.e.compareRangesUsingStarts(e.selection, t.selection))); let n = i[0]; for (let e = 1; e < i.length; e++) { const t = i[e]; n.selection.endLineNumber === t.selection.startLineNumber && (n.index < t.index ? t.ignore = !0 : (n.ignore = !0, n = t)) } const o = []; for (const e of i) o.push(new f(e.selection, this.down, e.ignore)); t.pushUndoStop(), t.executeCommands(this.id, o), t.pushUndoStop() } } class L extends s.R6 { constructor() { super({ id: "editor.action.duplicateSelection", label: n.N("duplicateSelection", "Duplicate Selection"), alias: "Duplicate Selection", precondition: m.u.writable, menuOpts: { menuId: x.eH.MenubarSelectionMenu, group: "2_line", title: n.N({ key: "miDuplicateSelection", comment: ["&& denotes a mnemonic"] }, "&&Duplicate Selection"), order: 5 } }) } run(e, t, i) { if (!t.hasModel()) return; const n = [], o = t.getSelections(), r = t.getModel(); for (const e of o) if (e.isEmpty()) n.push(new f(e, !0)); else { const t = new p.Y(e.endLineNumber, e.endColumn, e.endLineNumber, e.endColumn); n.push(new a.OY(t, r.getValueInRange(e))) } t.pushUndoStop(), t.executeCommands(this.id, n), t.pushUndoStop() } } class N extends s.R6 { constructor(e, t) { super(t), this.down = e } run(e, t) { let i = [], n = t.getSelections() || []; const o = t.getOption(9); for (const e of n) i.push(new C(e, this.down, o)); t.pushUndoStop(), t.executeCommands(this.id, i), t.pushUndoStop() } } class D extends s.R6 { constructor(e, t) { super(t), this.descending = e } run(e, t) { const i = t.getSelections() || []; for (const e of i) if (!y.canRun(t.getModel(), e, this.descending)) return; let n = []; for (let e = 0, t = i.length; e < t; e++) n[e] = new y(i[e], this.descending); t.pushUndoStop(), t.executeCommands(this.id, n), t.pushUndoStop() } } class E extends D { constructor() { super(!1, { id: "editor.action.sortLinesAscending", label: n.N("lines.sortAscending", "Sort Lines Ascending"), alias: "Sort Lines Ascending", precondition: m.u.writable }) } } class I extends D { constructor() { super(!0, { id: "editor.action.sortLinesDescending", label: n.N("lines.sortDescending", "Sort Lines Descending"), alias: "Sort Lines Descending", precondition: m.u.writable }) } } class T extends s.R6 { constructor() { super({ id: T.ID, label: n.N("lines.trimTrailingWhitespace", "Trim Trailing Whitespace"), alias: "Trim Trailing Whitespace", precondition: m.u.writable, kbOpts: { kbExpr: m.u.editorTextFocus, primary: (0, o.gx)(2089, 2102), weight: 100 } }) } run(e, t, i) { let n = []; "auto-save" === i.reason && (n = (t.getSelections() || []).map((e => new g.L(e.positionLineNumber, e.positionColumn)))); let o = t.getSelection(); if (null === o) return; let r = new h(o, n); t.pushUndoStop(), t.executeCommands(this.id, [r]), t.pushUndoStop() } } T.ID = "editor.action.trimTrailingWhitespace"; class M extends s.R6 { constructor() { super({ id: "editor.action.deleteLines", label: n.N("lines.delete", "Delete Line"), alias: "Delete Line", precondition: m.u.writable, kbOpts: { kbExpr: m.u.textInputFocus, primary: 3113, weight: 100 } }) } run(e, t) { if (!t.hasModel()) return; let i = this._getLinesToRemove(t), n = t.getModel(); if (1 === n.getLineCount() && 1 === n.getLineMaxColumn(1)) return; let o = 0, r = [], s = []; for (let e = 0, t = i.length; e < t; e++) { const t = i[e]; let a = t.startLineNumber, l = t.endLineNumber, c = 1, h = n.getLineMaxColumn(l); l < n.getLineCount() ? (l += 1, h = 1) : a > 1 && (a -= 1, c = n.getLineMaxColumn( a)), r.push(d.h.replace(new p.Y(a, c, l, h), "")), s.push(new p.Y( a - o, t.positionColumn, a - o, t.positionColumn)), o += t.endLineNumber - t.startLineNumber + 1 } t.pushUndoStop(), t.executeEdits(this.id, r, s), t.pushUndoStop() } _getLinesToRemove(e) { let t = e.getSelections().map((e => { let t = e.endLineNumber; return e.startLineNumber < e.endLineNumber && 1 === e.endColumn && (t -= 1), { startLineNumber: e.startLineNumber, selectionStartColumn: e.selectionStartColumn, endLineNumber: t, positionColumn: e.positionColumn } })); t.sort(((e, t) => e.startLineNumber === t.startLineNumber ? e.endLineNumber - t.endLineNumber : e.startLineNumber - t.startLineNumber)); let i = [], n = t[0]; for (let e = 1; e < t.length; e++) n.endLineNumber + 1 >= t[e].startLineNumber ? n.endLineNumber = t[e].endLineNumber : (i.push(n), n = t[e]); return i.push(n), i } } class A extends s.R6 { constructor() { super({ id: "editor.action.indentLines", label: n.N("lines.indent", "Indent Line"), alias: "Indent Line", precondition: m.u.writable, kbOpts: { kbExpr: m.u.editorTextFocus, primary: 2137, weight: 100 } }) } run(e, t) { const i = t._getViewModel(); i && (t.pushUndoStop(), t.executeCommands(this.id, u.u.indent(i.cursorConfig, t.getModel(), t.getSelections())), t.pushUndoStop()) } } class R extends s.R6 { constructor() { super({ id: "editor.action.outdentLines", label: n.N("lines.outdent", "Outdent Line"), alias: "Outdent Line", precondition: m.u.writable, kbOpts: { kbExpr: m.u.editorTextFocus, primary: 2135, weight: 100 } }) } run(e, t) { r.CoreEditingCommands.Outdent.runEditorCommand(e, t, null) } } class O extends s.R6 { constructor() { super({ id: "editor.action.insertLineBefore", label: n.N("lines.insertBefore", "Insert Line Above"), alias: "Insert Line Above", precondition: m.u.writable, kbOpts: { kbExpr: m.u.editorTextFocus, primary: 3075, weight: 100 } }) } run(e, t) { const i = t._getViewModel(); i && (t.pushUndoStop(), t.executeCommands(this.id, u.u.lineInsertBefore( i.cursorConfig, t.getModel(), t.getSelections()))) } } class P extends s.R6 { constructor() { super({ id: "editor.action.insertLineAfter", label: n.N("lines.insertAfter", "Insert Line Below"), alias: "Insert Line Below", precondition: m.u.writable, kbOpts: { kbExpr: m.u.editorTextFocus, primary: 2051, weight: 100 } }) } run(e, t) { const i = t._getViewModel(); i && (t.pushUndoStop(), t.executeCommands(this.id, u.u.lineInsertAfter( i.cursorConfig, t.getModel(), t.getSelections()))) } } class F extends s.R6 { run(e, t) { if (!t.hasModel()) return; const i = t.getSelection(); let n = this._getRangesToDelete(t), o = []; for (let e = 0, t = n.length - 1; e < t; e++) { let t = n[e], i = n[e + 1]; null === c.e.intersectRanges(t, i) ? o.push(t) : n[e + 1] = c.e.plusRange( t, i) } o.push(n[n.length - 1]); let r = this._getEndCursorState(i, o), s = o.map((e => d.h.replace(e, ""))); t.pushUndoStop(), t.executeEdits(this.id, s, r), t.pushUndoStop() } } class B extends F { constructor() { super({ id: "deleteAllLeft", label: n.N("lines.deleteAllLeft", "Delete All Left"), alias: "Delete All Left", precondition: m.u.writable, kbOpts: { kbExpr: m.u.textInputFocus, primary: 0, mac: { primary: 2049 }, weight: 100 } }) } _getEndCursorState(e, t) { let i = null, n = [], o = 0; return t.forEach((t => { let r; if (1 === t.endColumn && o > 0) { let e = t.startLineNumber - o; r = new p.Y(e, t.startColumn, e, t.startColumn) } else r = new p.Y(t.startLineNumber, t.startColumn, t.startLineNumber, t.startColumn); o += t.endLineNumber - t.startLineNumber, t.intersectRanges(e) ? i = r : n.push(r) })), i && n.unshift(i), n } _getRangesToDelete(e) { let t = e.getSelections(); if (null === t) return []; let i = t, n = e.getModel(); return null === n ? [] : (i.sort(c.e.compareRangesUsingStarts), i = i.map( (e => { if (e.isEmpty()) { if (1 === e.startColumn) { let t = Math.max(1, e.startLineNumber - 1), i = 1 === e.startLineNumber ? 1 : n.getLineContent(t).length + 1; return new c.e(t, i, e.startLineNumber, 1) } return new c.e(e.startLineNumber, 1, e.startLineNumber, e.startColumn) } return new c.e(e.startLineNumber, 1, e.endLineNumber, e.endColumn) })), i) } } class W extends F { constructor() { super({ id: "deleteAllRight", label: n.N("lines.deleteAllRight", "Delete All Right"), alias: "Delete All Right", precondition: m.u.writable, kbOpts: { kbExpr: m.u.textInputFocus, primary: 0, mac: { primary: 297, secondary: [2068] }, weight: 100 } }) } _getEndCursorState(e, t) { let i = null, n = []; for (let o = 0, r = t.length, s = 0; o < r; o++) { let r = t[o], a = new p.Y(r.startLineNumber - s, r.startColumn, r.startLineNumber - s, r.startColumn); r.intersectRanges(e) ? i = a : n.push(a) } return i && n.unshift(i), n } _getRangesToDelete(e) { let t = e.getModel(); if (null === t) return []; let i = e.getSelections(); if (null === i) return []; let n = i.map((e => { if (e.isEmpty()) { const i = t.getLineMaxColumn(e.startLineNumber); return e.startColumn === i ? new c.e(e.startLineNumber, e.startColumn, e.startLineNumber + 1, 1) : new c.e(e.startLineNumber, e.startColumn, e.startLineNumber, i) } return e })); return n.sort(c.e.compareRangesUsingStarts), n } } class z extends s.R6 { constructor() { super({ id: "editor.action.joinLines", label: n.N("lines.joinLines", "Join Lines"), alias: "Join Lines", precondition: m.u.writable, kbOpts: { kbExpr: m.u.editorTextFocus, primary: 0, mac: { primary: 296 }, weight: 100 } }) } run(e, t) { let i = t.getSelections(); if (null === i) return; let n = t.getSelection(); if (null === n) return; i.sort(c.e.compareRangesUsingStarts); let o = [], r = i.reduce(((e, t) => e.isEmpty() ? e.endLineNumber === t.startLineNumber ? (n.equalsSelection(e) && (n = t), t) : t.startLineNumber > e.endLineNumber + 1 ? (o.push(e), t) : new p.Y(e.startLineNumber, e.startColumn, t.endLineNumber, t.endColumn) : t.startLineNumber > e.endLineNumber ? (o.push(e), t) : new p.Y(e.startLineNumber, e.startColumn, t.endLineNumber, t .endColumn))); o.push(r); let s = t.getModel(); if (null === s) return; let a = [], l = [], h = n, u = 0; for (let e = 0, t = o.length; e < t; e++) { let t, i, r = o[e], g = r.startLineNumber, m = 1, f = 0, _ = s.getLineContent(r.endLineNumber).length - r.endColumn; if (r.isEmpty() || r.startLineNumber === r.endLineNumber) { let e = r.getStartPosition(); e.lineNumber < s.getLineCount() ? (t = g + 1, i = s.getLineMaxColumn( t)) : (t = e.lineNumber, i = s.getLineMaxColumn(e.lineNumber)) } else t = r.endLineNumber, i = s.getLineMaxColumn(t); let b = s.getLineContent(g); for (let e = g + 1; e <= t; e++) { let t = s.getLineContent(e), i = s.getLineFirstNonWhitespaceColumn(e); if (i >= 1) { let e = !0; "" === b && (e = !1), !e || " " !== b.charAt(b.length - 1) && "\t" !== b.charAt(b.length - 1) || (e = !1, b = b.replace( /[\s\uFEFF\xA0]+$/g, " ")); let n = t.substr(i - 1); b += (e ? " " : "") + n, f = e ? n.length + 1 : n.length } else f = 0 } let v = new c.e(g, m, t, i); if (!v.isEmpty()) { let e; r.isEmpty() ? (a.push(d.h.replace(v, b)), e = new p.Y(v.startLineNumber - u, b.length - f + 1, g - u, b.length - f + 1)) : r.startLineNumber === r.endLineNumber ? (a.push(d.h.replace(v, b)), e = new p.Y(r.startLineNumber - u, r.startColumn, r.endLineNumber - u, r.endColumn)) : (a.push(d.h .replace(v, b)), e = new p.Y(r.startLineNumber - u, r.startColumn, r.startLineNumber - u, b.length - _)), null !== c.e.intersectRanges( v, n) ? h = e : l.push(e) } u += v.endLineNumber - v.startLineNumber } l.unshift(h), t.pushUndoStop(), t.executeEdits(this.id, a, l), t.pushUndoStop() } } class V extends s.R6 { constructor() { super({ id: "editor.action.transpose", label: n.N("editor.transpose", "Transpose characters around the cursor"), alias: "Transpose characters around the cursor", precondition: m.u.writable }) } run(e, t) { let i = t.getSelections(); if (null === i) return; let n = t.getModel(); if (null === n) return; let o = []; for (let e = 0, t = i.length; e < t; e++) { let t = i[e]; if (!t.isEmpty()) continue; let r = t.getStartPosition(), s = n.getLineMaxColumn(r.lineNumber); if (r.column >= s) { if (r.lineNumber === n.getLineCount()) continue; let e = new c.e(r.lineNumber, Math.max(1, r.column - 1), r.lineNumber + 1, 1), t = n.getValueInRange(e).split("").reverse().join(""); o.push(new a.T4(new p.Y(r.lineNumber, Math.max(1, r.column - 1), r.lineNumber + 1, 1), t)) } else { let e = new c.e(r.lineNumber, Math.max(1, r.column - 1), r.lineNumber, r.column + 1), t = n.getValueInRange(e).split("").reverse().join(""); o.push(new a.hP(e, t, new p.Y(r.lineNumber, r.column + 1, r.lineNumber, r.column + 1))) } } t.pushUndoStop(), t.executeCommands(this.id, o), t.pushUndoStop() } } class H extends s.R6 { run(e, t) { const i = t.getSelections(); if (null === i) return; const n = t.getModel(); if (null === n) return; const o = t.getOption(116), r = []; for (const e of i) if (e.isEmpty()) { const i = e.getStartPosition(), s = t.getConfiguredWordAtPosition(i); if (!s) continue; const a = new c.e(i.lineNumber, s.startColumn, i.lineNumber, s.endColumn), l = n.getValueInRange(a); r.push(d.h.replace(a, this._modifyText(l, o))) } else { const t = n.getValueInRange(e); r.push(d.h.replace(e, this._modifyText(t, o))) } t.pushUndoStop(), t.executeEdits(this.id, r), t.pushUndoStop() } } class U extends H { constructor() { super({ id: "editor.action.transformToUppercase", label: n.N("editor.transformToUppercase", "Transform to Uppercase"), alias: "Transform to Uppercase", precondition: m.u.writable }) } _modifyText(e, t) { return e.toLocaleUpperCase() } } class j extends H { constructor() { super({ id: "editor.action.transformToLowercase", label: n.N("editor.transformToLowercase", "Transform to Lowercase"), alias: "Transform to Lowercase", precondition: m.u.writable }) } _modifyText(e, t) { return e.toLocaleLowerCase() } } class K extends H { constructor() { super({ id: "editor.action.transformToTitlecase", label: n.N("editor.transformToTitlecase", "Transform to Title Case"), alias: "Transform to Title Case", precondition: m.u.writable }) } _modifyText(e, t) { const i = ("\r\n\t " + t).split(""); let n = "", o = !0; for (let t = 0; t < e.length; t++) { let r = e[t]; i.indexOf(r) >= 0 ? (o = !0, n += r) : o ? (o = !1, n += r.toLocaleUpperCase()) : n += r.toLocaleLowerCase() } return n } } class $ { constructor(e, t) { this._pattern = e, this._flags = t, this._actual = null, this._evaluated = ! 1 } get() { if (!this._evaluated) { this._evaluated = !0; try { this._actual = new RegExp(this._pattern, this._flags) } catch (e) {} } return this._actual } isSupported() { return null !== this.get() } } class q extends H { constructor() { super({ id: "editor.action.transformToSnakecase", label: n.N("editor.transformToSnakecase", "Transform to Snake Case"), alias: "Transform to Snake Case", precondition: m.u.writable }) } _modifyText(e, t) { const i = q.regExp1.get(), n = q.regExp2.get(); return i && n ? e.replace(i, "$1_$2").replace(n, "$1_$2$3").toLocaleLowerCase() : e } } q.regExp1 = new $("(\\p{Ll})(\\p{Lu})", "gmu"), q.regExp2 = new $( "(\\p{Lu}|\\p{N})(\\p{Lu})(\\p{Ll})", "gmu"), (0, s.Qr)(class extends k { constructor() { super(!1, { id: "editor.action.copyLinesUpAction", label: n.N("lines.copyUp", "Copy Line Up"), alias: "Copy Line Up", precondition: m.u.writable, kbOpts: { kbExpr: m.u.editorTextFocus, primary: 1552, linux: { primary: 3600 }, weight: 100 }, menuOpts: { menuId: x.eH.MenubarSelectionMenu, group: "2_line", title: n.N({ key: "miCopyLinesUp", comment: ["&& denotes a mnemonic"] }, "&&Copy Line Up"), order: 1 } }) } }), (0, s.Qr)(class extends k { constructor() { super(!0, { id: "editor.action.copyLinesDownAction", label: n.N("lines.copyDown", "Copy Line Down"), alias: "Copy Line Down", precondition: m.u.writable, kbOpts: { kbExpr: m.u.editorTextFocus, primary: 1554, linux: { primary: 3602 }, weight: 100 }, menuOpts: { menuId: x.eH.MenubarSelectionMenu, group: "2_line", title: n.N({ key: "miCopyLinesDown", comment: ["&& denotes a mnemonic"] }, "Co&&py Line Down"), order: 2 } }) } }), (0, s.Qr)(L), (0, s.Qr)(class extends N { constructor() { super(!1, { id: "editor.action.moveLinesUpAction", label: n.N("lines.moveUp", "Move Line Up"), alias: "Move Line Up", precondition: m.u.writable, kbOpts: { kbExpr: m.u.editorTextFocus, primary: 528, linux: { primary: 528 }, weight: 100 }, menuOpts: { menuId: x.eH.MenubarSelectionMenu, group: "2_line", title: n.N({ key: "miMoveLinesUp", comment: ["&& denotes a mnemonic"] }, "Mo&&ve Line Up"), order: 3 } }) } }), (0, s.Qr)(class extends N { constructor() { super(!0, { id: "editor.action.moveLinesDownAction", label: n.N("lines.moveDown", "Move Line Down"), alias: "Move Line Down", precondition: m.u.writable, kbOpts: { kbExpr: m.u.editorTextFocus, primary: 530, linux: { primary: 530 }, weight: 100 }, menuOpts: { menuId: x.eH.MenubarSelectionMenu, group: "2_line", title: n.N({ key: "miMoveLinesDown", comment: ["&& denotes a mnemonic"] }, "Move &&Line Down"), order: 4 } }) } }), (0, s.Qr)(E), (0, s.Qr)(I), (0, s.Qr)(T), (0, s.Qr)(M), (0, s.Qr)(A), ( 0, s.Qr)(R), (0, s.Qr)(O), (0, s.Qr)(P), (0, s.Qr)(B), (0, s.Qr)(W), (0, s.Qr)(z), (0, s.Qr)(V), (0, s.Qr)(U), (0, s.Qr)(j), (0, s.Qr)(K), q.regExp1 .isSupported() && q.regExp2.isSupported() && (0, s.Qr)(q) }, 674: (e, t, i) => { "use strict"; i.r(t), i.d(t, { CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE: () => x, LinkedEditingContribution: () => L, LinkedEditingAction: () => E, editorLinkedEditingBackground: () => M }); var n = i(3580), o = i(6830), r = i(9488), s = i(5976), a = i(187), l = i(1050), d = i(4314), c = i(4101), h = i(5393), u = i(6281), g = i(8819), p = i(9102), m = i(666), f = i(1640), _ = i(7301), b = i(7295), v = i(3910), w = i(7781), C = i(1264), y = i(3831), S = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; const x = new g.uy("LinkedEditingInputVisible", !1), k = "linked-editing-decoration"; let L = class e extends s.JT { constructor(e, t) { super(), this._debounceDuration = 200, this._localToDispose = this._register( new s.SL), this._editor = e, this._enabled = !1, this._visibleContextKey = x.bindTo(t), this._currentDecorations = [], this._languageWordPattern = null, this._currentWordPattern = null, this._ignoreChangeEvent = !1, this._localToDispose = this._register(new s.SL), this._rangeUpdateTriggerPromise = null, this._rangeSyncTriggerPromise = null, this._currentRequest = null, this._currentRequestPosition = null, this._currentRequestModelVersion = null, this._register(this._editor.onDidChangeModel((() => this.reinitialize(! 0)))), this._register(this._editor.onDidChangeConfiguration((e => { (e.hasChanged(61) || e.hasChanged(81)) && this.reinitialize(!1) }))), this._register(c.id.onDidChange((() => this.reinitialize(!1)))), this._register(this._editor.onDidChangeModelLanguage((() => this.reinitialize(! 0)))), this.reinitialize(!0) } static get(t) { return t.getContribution(e.ID) } reinitialize(e) { const t = this._editor.getModel(), i = null !== t && (this._editor.getOption(61) || this._editor.getOption( 81)) && c.id.has(t); if (i === this._enabled && !e) return; if (this._enabled = i, this.clearRanges(), this._localToDispose.clear(), ! i || null === t) return; this._languageWordPattern = y.zu.getWordDefinition(t.getLanguageIdentifier() .id), this._localToDispose.add(t.onDidChangeLanguageConfiguration(( () => { this._languageWordPattern = y.zu.getWordDefinition(t.getLanguageIdentifier() .id) }))); const n = new h.vp(this._debounceDuration), o = () => { this._rangeUpdateTriggerPromise = n.trigger((() => this.updateRanges()), this._debounceDuration) }, r = new h.vp(0), s = e => { this._rangeSyncTriggerPromise = r.trigger((() => this._syncRanges(e))) }; this._localToDispose.add(this._editor.onDidChangeCursorPosition((() => { o() }))), this._localToDispose.add(this._editor.onDidChangeModelContent( (e => { if (!this._ignoreChangeEvent && this._currentDecorations.length > 0) { const i = t.getDecorationRange(this._currentDecorations[0]); if (i && e.changes.every((e => i.intersectRanges(e.range)))) return void s(this._currentDecorations) } o() }))), this._localToDispose.add({ dispose: () => { n.cancel(), r.cancel() } }), this.updateRanges() } _syncRanges(e) { if (!this._editor.hasModel() || e !== this._currentDecorations || 0 === e.length) return; const t = this._editor.getModel(), i = t.getDecorationRange(e[0]); if (!i || i.startLineNumber !== i.endLineNumber) return this.clearRanges(); const n = t.getValueInRange(i); if (this._currentWordPattern) { const e = n.match(this._currentWordPattern); if ((e ? e[0].length : 0) !== n.length) return this.clearRanges() } let o = []; for (let i = 1, r = e.length; i < r; i++) { const r = t.getDecorationRange(e[i]); if (r) if (r.startLineNumber !== r.endLineNumber) o.push({ range: r, text: n }); else { let e = t.getValueInRange(r), i = n, s = r.startColumn, a = r.endColumn; const l = b.Mh(e, i); s += l, e = e.substr(l), i = i.substr(l); const c = b.P1(e, i); a -= c, e = e.substr(0, e.length - c), i = i.substr(0, i.length - c), s === a && 0 === i.length || o.push({ range: new d.e(r.startLineNumber, s, r.endLineNumber, a), text: i }) } } if (0 !== o.length) try { this._editor.popUndoStop(), this._ignoreChangeEvent = !0; const e = this._editor._getViewModel().getPrevEditOperationType(); this._editor.executeEdits("linkedEditing", o), this._editor._getViewModel() .setPrevEditOperationType(e) } finally { this._ignoreChangeEvent = !1 } } dispose() { this.clearRanges(), super.dispose() } clearRanges() { this._visibleContextKey.set(!1), this._currentDecorations = this._editor .deltaDecorations(this._currentDecorations, []), this._currentRequest && (this._currentRequest.cancel(), this._currentRequest = null, this._currentRequestPosition = null) } updateRanges(t = !1) { return S(this, void 0, void 0, (function*() { if (!this._editor.hasModel()) return void this.clearRanges(); const i = this._editor.getPosition(); if (!this._enabled && !t || this._editor.getSelections().length > 1) return void this.clearRanges(); const n = this._editor.getModel(), o = n.getVersionId(); if (this._currentRequestPosition && this._currentRequestModelVersion === o) { if (i.equals(this._currentRequestPosition)) return; if (this._currentDecorations && this._currentDecorations.length > 0) { const e = n.getDecorationRange(this._currentDecorations[0]); if (e && e.containsPosition(i)) return } } this._currentRequestPosition = i, this._currentRequestModelVersion = o; const r = (0, h.PG)((t => S(this, void 0, void 0, (function*() { try { const s = yield T(n, i, t); if (r !== this._currentRequest) return; if (this._currentRequest = null, o !== n.getVersionId()) return; let a = []; (null == s ? void 0 : s.ranges) && (a = s.ranges), this._currentWordPattern = (null == s ? void 0 : s.wordPattern) || this._languageWordPattern; let l = !1; for (let e = 0, t = a.length; e < t; e++) if (d.e.containsPosition(a[e], i)) { if (l = !0, 0 !== e) { const t = a[e]; a.splice(e, 1), a.unshift(t) } break } if (!l) return void this.clearRanges(); const c = a.map((t => ({ range: t, options: e.DECORATION }))); this._visibleContextKey.set(!0), this._currentDecorations = this._editor.deltaDecorations(this._currentDecorations, c) } catch (e) { (0, _.VV)(e) || (0, _.dL)(e), this._currentRequest !== r && this._currentRequest || this.clearRanges() } })))); return this._currentRequest = r, r })) } }; var N, D; L.ID = "editor.contrib.linkedEditing", L.DECORATION = u.qx.register({ description: "linked-editing", stickiness: 0, className: k }), L = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([(N = 1, D = g.i6, function(e, t) { D(e, t, N) })], L); class E extends o.R6 { constructor() { super({ id: "editor.action.linkedEditing", label: n.N("linkedEditing.label", "Start Linked Editing"), alias: "Start Linked Editing", precondition: g.Ao.and(p.u.writable, p.u.hasRenameProvider), kbOpts: { kbExpr: p.u.editorTextFocus, primary: 3132, weight: 100 } }) } runCommand(e, t) { const i = e.get(f.$), [n, o] = Array.isArray(t) && t || [void 0, void 0]; return m.o.isUri(n) && a.L.isIPosition(o) ? i.openCodeEditor({ resource: n }, i.getActiveCodeEditor()).then((e => { e && (e.setPosition(o), e.invokeWithinContext((t => (this.reportTelemetry( t, e), this.run(t, e))))) }), _.dL) : super.runCommand(e, t) } run(e, t) { const i = L.get(t); return i ? Promise.resolve(i.updateRanges(!0)) : Promise.resolve() } } const I = o._l.bindToContribution(L.get); function T(e, t, i) { const n = c.id.ordered(e); return (0, h.Ps)(n.map((n => () => S(this, void 0, void 0, (function*() { try { return yield n.provideLinkedEditingRanges(e, t, i) } catch (e) { return void(0, _.Cp)(e) } })))), (e => !!e && r.Of(null == e ? void 0 : e.ranges))) }(0, o.fK)(new I({ id: "cancelLinkedEditingInput", precondition: x, handler: e => e.clearRanges(), kbOpts: { kbExpr: p.u.editorTextFocus, weight: 199, primary: 9, secondary: [1033] } })); const M = (0, v.P6)("editor.linkedEditingBackground", { dark: C.Il.fromHex("#f00").transparent(.3), light: C.Il.fromHex("#f00").transparent(.3), hc: C.Il.fromHex("#f00").transparent(.3) }, n.N("editorLinkedEditingBackground", "Background color when the editor auto renames on type.")); (0, w.Ic)(((e, t) => { const i = e.getColor(M); i && t.addRule( `.monaco-editor .${k} { background: ${i}; border-left-color: ${i}; }` ) })), (0, o.sb)("_executeLinkedEditingProvider", ((e, t) => T(e, t, l.T.None))), ( 0, o._K)(L.ID, L), (0, o.Qr)(E) }, 370: (e, t, i) => { "use strict"; i.r(t), i.d(t, { LinkDetector: () => q }); var n = i(3379), o = i.n(n), r = i(7795), s = i.n(r), a = i(569), l = i.n(a), d = i(3565), c = i.n(d), h = i(9216), u = i.n(h), g = i(4589), p = i.n(g), m = i(7854), f = {}; f.styleTagTransform = p(), f.setAttributes = c(), f.insert = l().bind( null, "head"), f.domAPI = s(), f.insertStyleElement = u(), o()(m.Z, f), m.Z && m.Z.locals && m.Z.locals; var _ = i(3580), b = i(5393), v = i(1050), w = i(7301), C = i(9365), y = i(5976), S = i(1432), x = i(6830), k = i(6281), L = i(4101), N = i(9241), D = i(666), E = i(4314), I = i(1200), T = i(4565), M = i(9488), A = i(8401), R = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; class O { constructor(e, t) { this._link = e, this._provider = t } 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 } resolve(e) { return R(this, void 0, void 0, (function*() { return this._link.url ? this._link.url : "function" == typeof this ._provider.resolveLink ? Promise.resolve(this._provider.resolveLink( this._link, e)).then((t => (this._link = t || this._link, this._link .url ? this.resolve(e) : Promise.reject(new Error("missing"))))) : Promise.reject(new Error("missing")) })) } } class P { constructor(e) { this._disposables = new y.SL; let t = []; for (const [i, n] of e) { const e = i.links.map((e => new O(e, n))); t = P._union(t, e), (0, y.Wf)(i) && this._disposables.add(i) } this.links = t } dispose() { this._disposables.dispose(), this.links.length = 0 } static _union(e, t) { let i, n, o, r, s = []; for (i = 0, o = 0, n = e.length, r = t.length; i < n && o < r;) { const n = e[i], r = t[o]; E.e.areIntersectingOrTouching(n.range, r.range) ? i++ : E.e.compareRangesUsingStarts( n.range, r.range) < 0 ? (s.push(n), i++) : (s.push(r), o++) } for (; i < n; i++) s.push(e[i]); for (; o < r; o++) s.push(t[o]); return s } } function F(e, t) { const i = [], n = L.pM.ordered(e).reverse().map(((n, o) => Promise.resolve(n.provideLinks( e, t)).then((e => { e && (i[o] = [e, n]) }), w.Cp))); return Promise.all(n).then((() => { const e = new P((0, M.kX)(i)); return t.isCancellationRequested ? (e.dispose(), new P([])) : e })) } T.P.registerCommand("_executeLinkProvider", ((e, ...t) => R(void 0, void 0, void 0, (function*() { let [i, n] = t; (0, A.p_)(i instanceof D.o), "number" != typeof n && (n = 0); const o = e.get(I.q).getModel(i); if (!o) return []; const r = yield F(o, v.T.None); if (!r) return []; for (let e = 0; e < Math.min(n, r.links.length); e++) yield r.links[ e].resolve(v.T.None); const s = r.links.slice(0); return r.dispose(), s })))); var B = i(9422), W = i(988), z = i(3910), V = i(7781), H = i(6663), U = i(5935), j = function(e, t) { return function(i, n) { t(i, n, e) } }; const K = { general: k.qx.register({ description: "detected-link", stickiness: 1, collapseOnReplaceEdit: !0, inlineClassName: "detected-link" }), active: k.qx.register({ description: "detected-link-active", stickiness: 1, collapseOnReplaceEdit: !0, inlineClassName: "detected-link-active" }) }; class $ { constructor(e, t) { this.link = e, this.decorationId = t } static decoration(e, t) { return { range: e.range, options: $._getOptions(e, t, !1) } } static _getOptions(e, t, i) { const n = Object.assign({}, i ? K.active : K.general); return n.hoverMessage = function(e, t) { const i = e.url && /^command:/i.test(e.url.toString()), n = e.tooltip ? e.tooltip : i ? _.N("links.navigate.executeCmd", "Execute command") : _.N("links.navigate.follow", "Follow link"), o = t ? S.dz ? _.N("links.navigate.kb.meta.mac", "cmd + click") : _ .N("links.navigate.kb.meta", "ctrl + click") : S.dz ? _.N( "links.navigate.kb.alt.mac", "option + click") : _.N( "links.navigate.kb.alt", "alt + click"); if (e.url) { let t = ""; if (/^command:/i.test(e.url.toString())) { const i = e.url.toString().match(/^command:([^?#]+)/); if (i) { const e = i[1]; t = ` "${_.N("tooltip.explanation","Execute command {0}",e)}"` } } return new C.W5("", !0).appendMarkdown( `[${n}](${e.url.toString(!0)}${t}) (${o})`) } return (new C.W5).appendText(`${n} (${o})`) }(e, t), n } activate(e, t) { e.changeDecorationOptions(this.decorationId, $._getOptions(this.link, t, !0)) } deactivate(e, t) { e.changeDecorationOptions(this.decorationId, $._getOptions(this.link, t, !1)) } } let q = class e { constructor(e, t, i) { this.listenersToRemove = new y.SL, this.editor = e, this.openerService = t, this.notificationService = i; let n = new N.yN(e); this.listenersToRemove.add(n), this.listenersToRemove.add(n.onMouseMoveOrRelevantKeyDown( (([e, t]) => { this._onEditorMouseMove(e, t) }))), this.listenersToRemove.add(n.onExecute((e => { this.onEditorMouseUp(e) }))), this.listenersToRemove.add(n.onCancel((e => { this.cleanUpActiveLinkDecoration() }))), this.enabled = e.getOption(62), this.listenersToRemove.add(e.onDidChangeConfiguration( (t => { const i = e.getOption(62); this.enabled !== i && (this.enabled = i, this.updateDecorations( []), this.stop(), this.beginCompute()) }))), this.listenersToRemove.add(e.onDidChangeModelContent((e => this.onChange()))), this.listenersToRemove.add(e.onDidChangeModel(( e => this.onModelChanged()))), this.listenersToRemove.add(e.onDidChangeModelLanguage( (e => this.onModelModeChanged()))), this.listenersToRemove.add(L.pM .onDidChange((e => this.onModelModeChanged()))), this.timeout = new b ._F, this.computePromise = null, this.activeLinksList = null, this.currentOccurrences = {}, this.activeLinkDecorationId = null, this.beginCompute() } static get(t) { return t.getContribution(e.ID) } onModelChanged() { this.currentOccurrences = {}, this.activeLinkDecorationId = null, this.stop(), this.beginCompute() } onModelModeChanged() { this.stop(), this.beginCompute() } onChange() { this.timeout.setIfNotSet((() => this.beginCompute()), e.RECOMPUTE_TIME) } beginCompute() { return e = this, t = void 0, n = function*() { if (!this.editor.hasModel() || !this.enabled) return; const e = this.editor.getModel(); if (L.pM.has(e)) { this.activeLinksList && (this.activeLinksList.dispose(), this.activeLinksList = null), this.computePromise = b.PG((t => F(e, t))); try { this.activeLinksList = yield this.computePromise, this.updateDecorations( this.activeLinksList.links) } catch (e) { (0, w.dL)(e) } finally { this.computePromise = null } } }, new((i = void 0) || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })); var e, t, i, n } updateDecorations(e) { const t = "altKey" === this.editor.getOption(69); let i = [], n = Object.keys(this.currentOccurrences); for (let e = 0, t = n.length; e < t; e++) { let t = n[e], o = this.currentOccurrences[t]; i.push(o.decorationId) } let o = []; if (e) for (const i of e) o.push($.decoration(i, t)); let r = this.editor.deltaDecorations(i, o); this.currentOccurrences = {}, this.activeLinkDecorationId = null; for (let t = 0, i = r.length; t < i; t++) { let i = new $(e[t], r[t]); this.currentOccurrences[i.decorationId] = i } } _onEditorMouseMove(e, t) { const i = "altKey" === this.editor.getOption(69); if (this.isEnabled(e, t)) { this.cleanUpActiveLinkDecoration(); const t = this.getLinkOccurrence(e.target.position); t && this.editor.changeDecorations((e => { t.activate(e, i), this.activeLinkDecorationId = t.decorationId })) } else this.cleanUpActiveLinkDecoration() } cleanUpActiveLinkDecoration() { const e = "altKey" === this.editor.getOption(69); if (this.activeLinkDecorationId) { const t = this.currentOccurrences[this.activeLinkDecorationId]; t && this.editor.changeDecorations((i => { t.deactivate(i, e) })), this.activeLinkDecorationId = null } } onEditorMouseUp(e) { if (!this.isEnabled(e)) return; const t = this.getLinkOccurrence(e.target.position); t && this.openLinkOccurrence(t, e.hasSideBySideModifier, !0) } openLinkOccurrence(e, t, i = !1) { if (!this.openerService) return; const { link: n } = e; n.resolve(v.T.None).then((e => { if ("string" == typeof e && this.editor.hasModel()) { const t = this.editor.getModel().uri; if (t.scheme === H.lg.file && e.startsWith(`${H.lg.file}:`)) { const i = D.o.parse(e); if (i.scheme === H.lg.file) { const n = U.z_(i); let o = null; n.startsWith("/./") ? o = `.${n.substr(1)}` : n.startsWith( "//./") && (o = `.${n.substr(2)}`), o && (e = U.Vo(t, o)) } } } return this.openerService.open(e, { openToSide: t, fromUserGesture: i, allowContributedOpeners: !0, allowCommands: !0 }) }), (e => { const t = e instanceof Error ? e.message : e; "invalid" === t ? this.notificationService.warn(_.N("invalid.url", "Failed to open this link because it is not well-formed: {0}", n.url.toString())) : "missing" === t ? this.notificationService .warn(_.N("missing.url", "Failed to open this link because its target is missing.")) : ( 0, w.dL)(e) })) } getLinkOccurrence(e) { if (!this.editor.hasModel() || !e) return null; const t = this.editor.getModel().getDecorationsInRange({ startLineNumber: e.lineNumber, startColumn: e.column, endLineNumber: e.lineNumber, endColumn: e.column }, 0, !0); for (const e of t) { const t = this.currentOccurrences[e.id]; if (t) return t } return null } isEnabled(e, t) { return Boolean(6 === e.target.type && (e.hasTriggerModifier || t && t .keyCodeIsTriggerKey)) } stop() { var e; this.timeout.cancel(), this.activeLinksList && (null === (e = this.activeLinksList) || void 0 === e || e.dispose(), this.activeLinksList = null), this.computePromise && (this.computePromise.cancel(), this.computePromise = null) } dispose() { this.listenersToRemove.dispose(), this.stop(), this.timeout.dispose() } }; q.ID = "editor.linkDetector", q.RECOMPUTE_TIME = 1e3, q = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([j(1, W.v4), j(2, B.lT)], q); class Z extends x.R6 { constructor() { super({ id: "editor.action.openLink", label: _.N("label", "Open Link"), alias: "Open Link", precondition: void 0 }) } run(e, t) { let i = q.get(t); if (!i) return; if (!t.hasModel()) return; let n = t.getSelections(); for (let e of n) { let t = i.getLinkOccurrence(e.getEndPosition()); t && i.openLinkOccurrence(t, !1) } } }(0, x._K)(q.ID, q), (0, x.Qr)(Z), (0, V.Ic)(((e, t) => { const i = e.getColor(z._Y); i && t.addRule( `.monaco-editor .detected-link-active { color: ${i} !important; }`) })) }, 845: (e, t, i) => { "use strict"; i.d(t, { O: () => N }); var n = i(3379), o = i.n(n), r = i(7795), s = i.n(r), a = i(569), l = i.n(a), d = i(3565), c = i.n(d), h = i(9216), u = i.n(h), g = i(4589), p = i.n(g), m = i(1356), f = {}; f.styleTagTransform = p(), f.setAttributes = c(), f.insert = l().bind( null, "head"), f.domAPI = s(), f.insertStyleElement = u(), o()(m.Z, f), m.Z && m.Z.locals && m.Z.locals; var _ = i(3580), b = i(5393), v = i(5976), w = i(6346), C = i(4314), y = i(6830), S = i(8819), x = i(7781), k = i(3910), L = i(2321); let N = class e { constructor(t, i) { this._messageWidget = new v.XK, this._messageListeners = new v.SL, this._editor = t, this._visible = e.MESSAGE_VISIBLE.bindTo(i), this._editorListener = this._editor.onDidAttemptReadOnlyEdit((() => this._onDidAttemptReadOnlyEdit())) } static get(t) { return t.getContribution(e.ID) } dispose() { this._editorListener.dispose(), this._messageListeners.dispose(), this._messageWidget.dispose(), this._visible.reset() } showMessage(e, t) { let i; (0, w.Z9)(e), this._visible.set(!0), this._messageWidget.clear(), this._messageListeners.clear(), this._messageWidget.value = new T( this._editor, t, e), this._messageListeners.add(this._editor.onDidBlurEditorText( (() => 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(new b._F((() => this.closeMessage()), 3e3)), this._messageListeners.add(this._editor.onMouseMove((e => { e.target.position && (i ? i.containsPosition(e.target.position) || this.closeMessage() : i = new C.e(t.lineNumber - 3, 1, e.target .position.lineNumber + 3, 1)) }))) } closeMessage() { this._visible.reset(), this._messageListeners.clear(), this._messageWidget .value && this._messageListeners.add(T.fadeOut(this._messageWidget.value)) } _onDidAttemptReadOnlyEdit() { this._editor.hasModel() && this.showMessage(_.N("editor.readonly", "Cannot edit in read-only editor"), this._editor.getPosition()) } }; var D, E; N.ID = "editor.contrib.messageController", N.MESSAGE_VISIBLE = new S.uy( "messageVisible", !1, _.N("messageVisible", "Whether the editor is currently showing an inline message")), N = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([(D = 1, E = S.i6, function(e, t) { E(e, t, D) })], N); const I = y._l.bindToContribution(N.get); (0, y.fK)(new I({ id: "leaveEditorMessage", precondition: N.MESSAGE_VISIBLE, handler: e => e.closeMessage(), kbOpts: { weight: 130, primary: 9 } })); class T { constructor(e, { lineNumber: t, column: i }, n) { this.allowEditorOverflow = !0, this.suppressMouseDown = !1, this._editor = e, this._editor.revealLinesInCenterIfOutsideViewport(t, t, 0), this._position = { lineNumber: t, column: i - 1 }, this._domNode = document.createElement("div"), this._domNode.classList .add("monaco-editor-overlaymessage"); const o = document.createElement("div"); o.classList.add("anchor", "top"), this._domNode.appendChild(o); const r = document.createElement("div"); r.classList.add("message"), r.textContent = n, this._domNode.appendChild( r); const s = document.createElement("div"); s.classList.add("anchor", "below"), this._domNode.appendChild(s), this ._editor.addContentWidget(this), this._domNode.classList.add("fadeIn") } static fadeOut(e) { let t; const i = () => { e.dispose(), clearTimeout(t), e.getDomNode().removeEventListener( "animationend", i) }; return t = setTimeout(i, 110), e.getDomNode().addEventListener( "animationend", i), e.getDomNode().classList.add("fadeOut"), { dispose: i } } dispose() { this._editor.removeContentWidget(this) } getId() { return "messageoverlay" } getDomNode() { return this._domNode } getPosition() { return { position: this._position, preference: [1, 2] } } afterRender(e) { this._domNode.classList.toggle("below", 2 === e) } }(0, y._K)(N.ID, N), (0, x.Ic)(((e, t) => { const i = e.getColor(k.EP); if (i) { let n = e.type === L.e.HIGH_CONTRAST ? 2 : 1; t.addRule( `.monaco-editor .monaco-editor-overlaymessage .anchor.below { border-top-color: ${i}; }` ), t.addRule( `.monaco-editor .monaco-editor-overlaymessage .anchor.top { border-bottom-color: ${i}; }` ), t.addRule( `.monaco-editor .monaco-editor-overlaymessage .message { border: ${n}px solid ${i}; }` ) } const n = e.getColor(k._l); n && t.addRule( `.monaco-editor .monaco-editor-overlaymessage .message { background-color: ${n}; }` ); const o = e.getColor(k.YI); o && t.addRule( `.monaco-editor .monaco-editor-overlaymessage .message { color: ${o}; }` ) })) }, 8486: (e, t, i) => { "use strict"; i.r(t), i.d(t, { InsertCursorAbove: () => y, InsertCursorBelow: () => S, MultiCursorSessionResult: () => N, MultiCursorSession: () => D, MultiCursorSelectionController: () => E, MultiCursorSelectionControllerAction: () => I, AddSelectionToNextFindMatchAction: () => T, AddSelectionToPreviousFindMatchAction: () => M, MoveSelectionToNextFindMatchAction: () => A, MoveSelectionToPreviousFindMatchAction: () => R, SelectHighlightsAction: () => O, CompatChangeAll: () => P, SelectionHighlighter: () => B }); var n = i(3580), o = i(5393), r = i(2258), s = i(5976), a = i(6346), l = i(6830), d = i(3814), c = i(4314), h = i(3860), u = i(9102), g = i(4973), p = i(6281), m = i(4101), f = i(255), _ = i(4144), b = i(3910), v = i(7781), w = i(8819); function C(e, t) { const i = t.filter((t => !e.find((e => e.equals(t))))); if (i.length >= 1) { const e = i.map((e => `line ${e.viewState.position.lineNumber} column ${e.viewState.position.column}` )).join(", "), t = 1 === i.length ? n.N("cursorAdded", "Cursor added: {0}", e) : n.N( "cursorsAdded", "Cursors added: {0}", e); (0, a.i7)(t) } } class y extends l.R6 { constructor() { super({ id: "editor.action.insertCursorAbove", label: n.N("mutlicursor.insertAbove", "Add Cursor Above"), alias: "Add Cursor Above", precondition: void 0, kbOpts: { kbExpr: u.u.editorTextFocus, primary: 2576, linux: { primary: 1552, secondary: [3088] }, weight: 100 }, menuOpts: { menuId: _.eH.MenubarSelectionMenu, group: "3_multi", title: n.N({ key: "miInsertCursorAbove", comment: ["&& denotes a mnemonic"] }, "&&Add Cursor Above"), order: 2 } }) } run(e, t, i) { if (!t.hasModel()) return; const n = i && !0 === i.logicalLine, o = t._getViewModel(); if (o.cursorConfig.readOnly) return; o.pushStackElement(); const r = o.getCursorStates(); o.setCursorStates(i.source, 3, d.P.addCursorUp(o, r, n)), o.revealTopMostCursor( i.source), C(r, o.getCursorStates()) } } class S extends l.R6 { constructor() { super({ id: "editor.action.insertCursorBelow", label: n.N("mutlicursor.insertBelow", "Add Cursor Below"), alias: "Add Cursor Below", precondition: void 0, kbOpts: { kbExpr: u.u.editorTextFocus, primary: 2578, linux: { primary: 1554, secondary: [3090] }, weight: 100 }, menuOpts: { menuId: _.eH.MenubarSelectionMenu, group: "3_multi", title: n.N({ key: "miInsertCursorBelow", comment: ["&& denotes a mnemonic"] }, "A&&dd Cursor Below"), order: 3 } }) } run(e, t, i) { if (!t.hasModel()) return; const n = i && !0 === i.logicalLine, o = t._getViewModel(); if (o.cursorConfig.readOnly) return; o.pushStackElement(); const r = o.getCursorStates(); o.setCursorStates(i.source, 3, d.P.addCursorDown(o, r, n)), o.revealBottomMostCursor( i.source), C(r, o.getCursorStates()) } } class x extends l.R6 { constructor() { super({ id: "editor.action.insertCursorAtEndOfEachLineSelected", label: n.N("mutlicursor.insertAtEndOfEachLineSelected", "Add Cursors to Line Ends"), alias: "Add Cursors to Line Ends", precondition: void 0, kbOpts: { kbExpr: u.u.editorTextFocus, primary: 1575, weight: 100 }, menuOpts: { menuId: _.eH.MenubarSelectionMenu, group: "3_multi", title: n.N({ key: "miInsertCursorAtEndOfEachLineSelected", comment: ["&& denotes a mnemonic"] }, "Add C&&ursors to Line Ends"), order: 4 } }) } getCursorsForSelection(e, t, i) { if (!e.isEmpty()) { for (let n = e.startLineNumber; n < e.endLineNumber; n++) { let e = t.getLineMaxColumn(n); i.push(new h.Y(n, e, n, e)) } e.endColumn > 1 && i.push(new h.Y(e.endLineNumber, e.endColumn, e.endLineNumber, e.endColumn)) } } run(e, t) { if (!t.hasModel()) return; const i = t.getModel(), n = t.getSelections(), o = t._getViewModel(), r = o.getCursorStates(); let s = []; n.forEach((e => this.getCursorsForSelection(e, i, s))), s.length > 0 && t.setSelections(s), C(r, o.getCursorStates()) } } class k extends l.R6 { constructor() { super({ id: "editor.action.addCursorsToBottom", label: n.N("mutlicursor.addCursorsToBottom", "Add Cursors To Bottom"), alias: "Add Cursors To Bottom", precondition: void 0 }) } run(e, t) { if (!t.hasModel()) return; const i = t.getSelections(), n = t.getModel().getLineCount(); let o = []; for (let e = i[0].startLineNumber; e <= n; e++) o.push(new h.Y(e, i[0] .startColumn, e, i[0].endColumn)); const r = t._getViewModel(), s = r.getCursorStates(); o.length > 0 && t.setSelections(o), C(s, r.getCursorStates()) } } class L extends l.R6 { constructor() { super({ id: "editor.action.addCursorsToTop", label: n.N("mutlicursor.addCursorsToTop", "Add Cursors To Top"), alias: "Add Cursors To Top", precondition: void 0 }) } run(e, t) { if (!t.hasModel()) return; const i = t.getSelections(); let n = []; for (let e = i[0].startLineNumber; e >= 1; e--) n.push(new h.Y(e, i[0] .startColumn, e, i[0].endColumn)); const o = t._getViewModel(), r = o.getCursorStates(); n.length > 0 && t.setSelections(n), C(r, o.getCursorStates()) } } class N { constructor(e, t, i) { this.selections = e, this.revealRange = t, this.revealScrollType = i } } class D { constructor(e, t, i, n, o, r, s) { this._editor = e, this.findController = t, this.isDisconnectedFromFindController = i, this.searchText = n, this.wholeWord = o, this.matchCase = r, this.currentMatch = s } static create(e, t) { if (!e.hasModel()) return null; const i = t.getState(); if (!e.hasTextFocus() && i.isRevealed && i.searchString.length > 0) return new D(e, t, !1, i.searchString, i.wholeWord, i.matchCase, null); let n, o, r = !1; const s = e.getSelections(); 1 === s.length && s[0].isEmpty() ? (r = !0, n = !0, o = !0) : (n = i.wholeWord, o = i.matchCase); const a = e.getSelection(); let l, d = null; if (a.isEmpty()) { const t = e.getConfiguredWordAtPosition(a.getStartPosition()); if (!t) return null; l = t.word, d = new h.Y(a.startLineNumber, t.startColumn, a.startLineNumber, t.endColumn) } else l = e.getModel().getValueInRange(a).replace(/\r\n/g, "\n"); return new D(e, t, r, l, n, o, d) } addSelectionToNextFindMatch() { if (!this._editor.hasModel()) return null; const e = this._getNextMatch(); if (!e) return null; const t = this._editor.getSelections(); return new N(t.concat(e), e, 0) } moveSelectionToNextFindMatch() { if (!this._editor.hasModel()) return null; const e = this._getNextMatch(); if (!e) return null; const t = this._editor.getSelections(); return new N(t.slice(0, t.length - 1).concat(e), e, 0) } _getNextMatch() { if (!this._editor.hasModel()) return null; if (this.currentMatch) { const e = this.currentMatch; return this.currentMatch = null, e } this.findController.highlightFindOptions(); const e = this._editor.getSelections(), t = e[e.length - 1], i = this._editor.getModel().findNextMatch(this.searchText, t.getEndPosition(), ! 1, this.matchCase, this.wholeWord ? this._editor.getOption(116) : null, !1); return i ? new h.Y(i.range.startLineNumber, i.range.startColumn, i.range .endLineNumber, i.range.endColumn) : null } addSelectionToPreviousFindMatch() { if (!this._editor.hasModel()) return null; const e = this._getPreviousMatch(); if (!e) return null; const t = this._editor.getSelections(); return new N(t.concat(e), e, 0) } moveSelectionToPreviousFindMatch() { if (!this._editor.hasModel()) return null; const e = this._getPreviousMatch(); if (!e) return null; const t = this._editor.getSelections(); return new N(t.slice(0, t.length - 1).concat(e), e, 0) } _getPreviousMatch() { if (!this._editor.hasModel()) return null; if (this.currentMatch) { const e = this.currentMatch; return this.currentMatch = null, e } this.findController.highlightFindOptions(); const e = this._editor.getSelections(), t = e[e.length - 1], i = this._editor.getModel().findPreviousMatch(this.searchText, t.getStartPosition(), ! 1, this.matchCase, this.wholeWord ? this._editor.getOption(116) : null, !1); return i ? new h.Y(i.range.startLineNumber, i.range.startColumn, i.range .endLineNumber, i.range.endColumn) : null } selectAll() { return this._editor.hasModel() ? (this.findController.highlightFindOptions(), this._editor.getModel().findMatches(this.searchText, !0, !1, this.matchCase, this.wholeWord ? this._editor.getOption(116) : null, !1, 1073741824 )) : [] } } class E extends s.JT { constructor(e) { super(), this._sessionDispose = this._register(new s.SL), this._editor = e, this._ignoreSelectionChange = !1, this._session = null } static get(e) { return e.getContribution(E.ID) } dispose() { this._endSession(), super.dispose() } _beginSessionIfNeeded(e) { if (!this._session) { const t = D.create(this._editor, e); if (!t) return; this._session = t; const i = { searchString: this._session.searchText }; this._session.isDisconnectedFromFindController && (i.wholeWordOverride = 1, i.matchCaseOverride = 1, i.isRegexOverride = 2), e.getState().change( i, !1), this._sessionDispose.add(this._editor.onDidChangeCursorSelection( (e => { this._ignoreSelectionChange || this._endSession() }))), this._sessionDispose.add(this._editor.onDidBlurEditorText((() => { this._endSession() }))), this._sessionDispose.add(e.getState().onFindReplaceStateChange( (e => { (e.matchCase || e.wholeWord) && this._endSession() }))) } } _endSession() { if (this._sessionDispose.clear(), this._session && this._session.isDisconnectedFromFindController) { const e = { wholeWordOverride: 0, matchCaseOverride: 0, isRegexOverride: 0 }; this._session.findController.getState().change(e, !1) } this._session = null } _setSelections(e) { this._ignoreSelectionChange = !0, this._editor.setSelections(e), this ._ignoreSelectionChange = !1 } _expandEmptyToWord(e, t) { if (!t.isEmpty()) return t; const i = this._editor.getConfiguredWordAtPosition(t.getStartPosition()); return i ? new h.Y(t.startLineNumber, i.startColumn, t.startLineNumber, i.endColumn) : t } _applySessionResult(e) { e && (this._setSelections(e.selections), e.revealRange && this._editor .revealRangeInCenterIfOutsideViewport(e.revealRange, e.revealScrollType) ) } getSession(e) { return this._session } addSelectionToNextFindMatch(e) { if (this._editor.hasModel()) { if (!this._session) { const t = this._editor.getSelections(); if (t.length > 1) { const i = e.getState().matchCase; if (!W(this._editor.getModel(), t, i)) { const e = this._editor.getModel(); let i = []; for (let n = 0, o = t.length; n < o; n++) i[n] = this._expandEmptyToWord( e, t[n]); return void this._editor.setSelections(i) } } } this._beginSessionIfNeeded(e), this._session && this._applySessionResult( this._session.addSelectionToNextFindMatch()) } } addSelectionToPreviousFindMatch(e) { this._beginSessionIfNeeded(e), this._session && this._applySessionResult( this._session.addSelectionToPreviousFindMatch()) } moveSelectionToNextFindMatch(e) { this._beginSessionIfNeeded(e), this._session && this._applySessionResult( this._session.moveSelectionToNextFindMatch()) } moveSelectionToPreviousFindMatch(e) { this._beginSessionIfNeeded(e), this._session && this._applySessionResult( this._session.moveSelectionToPreviousFindMatch()) } selectAll(e) { if (!this._editor.hasModel()) return; let t = null; const i = e.getState(); if (i.isRevealed && i.searchString.length > 0 && i.isRegex) t = this._editor .getModel().findMatches(i.searchString, !0, i.isRegex, i.matchCase, i.wholeWord ? this._editor.getOption(116) : null, !1, 1073741824); else { if (this._beginSessionIfNeeded(e), !this._session) return; t = this._session.selectAll() } if (i.searchScope) { const e = i.searchScope; let n = []; t.forEach((t => { e.forEach((e => { t.range.endLineNumber <= e.endLineNumber && t.range.startLineNumber >= e.startLineNumber && n.push(t) })) })), t = n } if (t.length > 0) { const e = this._editor.getSelection(); for (let i = 0, n = t.length; i < n; i++) { const n = t[i]; if (n.range.intersectRanges(e)) { t[i] = t[0], t[0] = n; break } } this._setSelections(t.map((e => new h.Y(e.range.startLineNumber, e.range .startColumn, e.range.endLineNumber, e.range.endColumn)))) } } } E.ID = "editor.contrib.multiCursorController"; class I extends l.R6 { run(e, t) { const i = E.get(t); if (!i) return; const n = f.CommonFindController.get(t); if (!n) return; const o = t._getViewModel(); if (o) { const e = o.getCursorStates(); this._run(i, n), C(e, o.getCursorStates()) } } } class T extends I { constructor() { super({ id: "editor.action.addSelectionToNextFindMatch", label: n.N("addSelectionToNextFindMatch", "Add Selection To Next Find Match"), alias: "Add Selection To Next Find Match", precondition: void 0, kbOpts: { kbExpr: u.u.focus, primary: 2082, weight: 100 }, menuOpts: { menuId: _.eH.MenubarSelectionMenu, group: "3_multi", title: n.N({ key: "miAddSelectionToNextFindMatch", comment: ["&& denotes a mnemonic"] }, "Add &&Next Occurrence"), order: 5 } }) } _run(e, t) { e.addSelectionToNextFindMatch(t) } } class M extends I { constructor() { super({ id: "editor.action.addSelectionToPreviousFindMatch", label: n.N("addSelectionToPreviousFindMatch", "Add Selection To Previous Find Match"), alias: "Add Selection To Previous Find Match", precondition: void 0, menuOpts: { menuId: _.eH.MenubarSelectionMenu, group: "3_multi", title: n.N({ key: "miAddSelectionToPreviousFindMatch", comment: ["&& denotes a mnemonic"] }, "Add P&&revious Occurrence"), order: 6 } }) } _run(e, t) { e.addSelectionToPreviousFindMatch(t) } } class A extends I { constructor() { super({ id: "editor.action.moveSelectionToNextFindMatch", label: n.N("moveSelectionToNextFindMatch", "Move Last Selection To Next Find Match"), alias: "Move Last Selection To Next Find Match", precondition: void 0, kbOpts: { kbExpr: u.u.focus, primary: (0, r.gx)(2089, 2082), weight: 100 } }) } _run(e, t) { e.moveSelectionToNextFindMatch(t) } } class R extends I { constructor() { super({ id: "editor.action.moveSelectionToPreviousFindMatch", label: n.N("moveSelectionToPreviousFindMatch", "Move Last Selection To Previous Find Match"), alias: "Move Last Selection To Previous Find Match", precondition: void 0 }) } _run(e, t) { e.moveSelectionToPreviousFindMatch(t) } } class O extends I { constructor() { super({ id: "editor.action.selectHighlights", label: n.N("selectAllOccurrencesOfFindMatch", "Select All Occurrences of Find Match"), alias: "Select All Occurrences of Find Match", precondition: void 0, kbOpts: { kbExpr: u.u.focus, primary: 3114, weight: 100 }, menuOpts: { menuId: _.eH.MenubarSelectionMenu, group: "3_multi", title: n.N({ key: "miSelectHighlights", comment: ["&& denotes a mnemonic"] }, "Select All &&Occurrences"), order: 7 } }) } _run(e, t) { e.selectAll(t) } } class P extends I { constructor() { super({ id: "editor.action.changeAll", label: n.N("changeAll.label", "Change All Occurrences"), alias: "Change All Occurrences", precondition: w.Ao.and(u.u.writable, u.u.editorTextFocus), kbOpts: { kbExpr: u.u.editorTextFocus, primary: 2108, weight: 100 }, contextMenuOpts: { group: "1_modification", order: 1.2 } }) } _run(e, t) { e.selectAll(t) } } class F { constructor(e, t, i, n) { this.searchText = e, this.matchCase = t, this.wordSeparators = i, this .modelVersionId = n } static softEquals(e, t) { return !e && !t || !(!e || !t) && e.searchText === t.searchText && e.matchCase === t.matchCase && e.wordSeparators === t.wordSeparators && e.modelVersionId === t.modelVersionId } } class B extends s.JT { constructor(e) { super(), this.editor = e, this._isEnabled = e.getOption(97), this.decorations = [], this.updateSoon = this._register(new o.pY((() => this._update()), 300)), this.state = null, this._register(e.onDidChangeConfiguration( (t => { this._isEnabled = e.getOption(97) }))), this._register(e.onDidChangeCursorSelection((e => { this._isEnabled && (e.selection.isEmpty() ? 3 === e.reason ? ( this.state && this._setState(null), this.updateSoon.schedule() ) : this._setState(null) : this._update()) }))), this._register(e.onDidChangeModel((e => { this._setState(null) }))), this._register(e.onDidChangeModelContent((e => { this._isEnabled && this.updateSoon.schedule() }))), this._register(f.CommonFindController.get(e).getState().onFindReplaceStateChange( (e => { this._update() }))) } _update() { this._setState(B._createState(this._isEnabled, this.editor)) } static _createState(e, t) { if (!e) return null; if (!t.hasModel()) return null; const i = t.getSelection(); if (i.startLineNumber !== i.endLineNumber) return null; const n = E.get(t); if (!n) return null; const o = f.CommonFindController.get(t); if (!o) return null; let r = n.getSession(o); if (!r) { const e = t.getSelections(); if (e.length > 1) { const i = o.getState().matchCase; if (!W(t.getModel(), e, i)) return null } r = D.create(t, o) } if (!r) return null; if (r.currentMatch) return null; if (/^[ \t]+$/.test(r.searchText)) return null; if (r.searchText.length > 200) return null; const s = o.getState(), a = s.matchCase; if (s.isRevealed) { let e = s.searchString; a || (e = e.toLowerCase()); let t = r.searchText; if (a || (t = t.toLowerCase()), e === t && r.matchCase === s.matchCase && r.wholeWord === s.wholeWord && !s.isRegex) return null } return new F(r.searchText, r.matchCase, r.wholeWord ? t.getOption(116) : null, t.getModel().getVersionId()) } _setState(e) { if (F.softEquals(this.state, e)) return void(this.state = e); if (this.state = e, !this.state) return void(this.decorations = this.editor .deltaDecorations(this.decorations, [])); if (!this.editor.hasModel()) return; const t = this.editor.getModel(); if (t.isTooLargeForTokenization()) return; const i = m.vH.has(t) && this.editor.getOption(71); let n = t.findMatches(this.state.searchText, !0, !1, this.state.matchCase, this.state.wordSeparators, !1).map((e => e.range)); n.sort(c.e.compareRangesUsingStarts); let o = this.editor.getSelections(); o.sort(c.e.compareRangesUsingStarts); let r = []; for (let e = 0, t = 0, i = n.length, s = o.length; e < i;) { const i = n[e]; if (t >= s) r.push(i), e++; else { const n = c.e.compareRangesUsingStarts(i, o[t]); n < 0 ? (!o[t].isEmpty() && c.e.areIntersecting(i, o[t]) || r.push( i), e++) : (n > 0 || e++, t++) } } const s = r.map((e => ({ range: e, options: i ? B._SELECTION_HIGHLIGHT : B._SELECTION_HIGHLIGHT_OVERVIEW }))); this.decorations = this.editor.deltaDecorations(this.decorations, s) } dispose() { this._setState(null), super.dispose() } } function W(e, t, i) { const n = z(e, t[0], !i); for (let o = 1, r = t.length; o < r; o++) { const r = t[o]; if (r.isEmpty()) return !1; if (n !== z(e, r, !i)) return !1 } return !0 } function z(e, t, i) { const n = e.getValueInRange(t); return i ? n.toLowerCase() : n } B.ID = "editor.contrib.selectionHighlighter", B._SELECTION_HIGHLIGHT_OVERVIEW = p.qx.register({ description: "selection-highlight-overview", stickiness: 1, className: "selectionHighlight", overviewRuler: { color: (0, v.EN)(b.SP), position: g.sh.Center } }), B._SELECTION_HIGHLIGHT = p.qx.register({ description: "selection-highlight", stickiness: 1, className: "selectionHighlight" }), (0, l._K)(E.ID, E), (0, l._K)(B.ID, B), (0, l.Qr)(y), (0, l.Qr)(S), ( 0, l.Qr)(x), (0, l.Qr)(T), (0, l.Qr)(M), (0, l.Qr)(A), (0, l.Qr)(R), (0, l.Qr)(O), (0, l.Qr)(P), (0, l.Qr)(k), (0, l.Qr)(L) }, 4993: (e, t, i) => { "use strict"; i.r(t), i.d(t, { TriggerParameterHintsAction: () => se }); var n = i(3580), o = i(5976), r = i(2065), s = i(9102), a = i(8819), l = i(6830), d = i(5321), c = i(6346), h = i(6781), u = i(4669), g = i(3379), p = i.n(g), m = i(7795), f = i.n(m), _ = i(569), b = i.n(_), v = i(3565), w = i.n(v), C = i(9216), y = i.n(C), S = i(4589), x = i.n(S), k = i(2265), L = {}; L.styleTagTransform = x(), L.setAttributes = w(), L.insert = b().bind( null, "head"), L.domAPI = f(), L.insertStyleElement = y(), p()(k.Z, L), k.Z && k.Z.locals && k.Z.locals; var N = i(1531), D = i(3947), E = i(7301), I = i(187), T = i(4101), M = i(1050), A = i(4565), R = i(666), O = i(8401), P = i(8216), F = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; const B = { Visible: new a.uy("parameterHintsVisible", !1), MultipleSignatures: new a.uy("parameterHintsMultipleSignatures", !1) }; function W(e, t, i, n) { return F(this, void 0, void 0, (function*() { const o = T.nD.ordered(e); for (const r of o) try { const o = yield r.provideSignatureHelp(e, t, n, i); if (o) return o } catch (e) { (0, E.Cp)(e) } })) } A.P.registerCommand("_executeSignatureHelpProvider", ((e, ...t) => F(void 0, void 0, void 0, (function*() { const [i, n, o] = t; (0, O.p_)(R.o.isUri(i)), (0, O.p_)(I.L.isIPosition(n)), (0, O.p_)( "string" == typeof o || !o); const r = yield e.get(P.S).createModelReference(i); try { const e = yield W(r.object.textEditorModel, I.L.lift(n), { triggerKind: T.WW.Invoke, isRetrigger: !1, triggerCharacter: o }, M.T.None); if (!e) return; return setTimeout((() => e.dispose()), 0), e.value } finally { r.dispose() } })))); var z, V = i(988), H = i(3910), U = i(7781), j = i(5393), K = i(4906); ! function(e) { e.Default = { type: 0 }, e.Pending = class { constructor(e, t) { this.request = e, this.previouslyActiveHints = t, this.type = 2 } }, e.Active = class { constructor(e) { this.hints = e, this.type = 1 } } }(z || (z = {})); class $ extends o.JT { constructor(e, t = $.DEFAULT_DELAY) { super(), this._onChangedHints = this._register(new u.Q5), this.onChangedHints = this._onChangedHints.event, this.triggerOnType = !1, this._state = z .Default, this._pendingTriggers = [], this._lastSignatureHelpResult = this._register(new o.XK), this.triggerChars = new K.q, this.retriggerChars = new K.q, this.triggerId = 0, this.editor = e, this.throttledDelayer = new j.vp(t), this._register(this.editor.onDidBlurEditorWidget((() => this.cancel()))), this._register(this.editor.onDidChangeConfiguration( (() => this.onEditorConfigurationChange()))), this._register(this.editor .onDidChangeModel((e => this.onModelChanged()))), this._register( this.editor.onDidChangeModelLanguage((e => this.onModelChanged()))), this._register(this.editor.onDidChangeCursorSelection((e => this.onCursorChange( e)))), this._register(this.editor.onDidChangeModelContent((e => this.onModelContentChange()))), this._register(T.nD.onDidChange( this.onModelChanged, this)), this._register(this.editor.onDidType(( e => this.onDidType(e)))), this.onEditorConfigurationChange(), this .onModelChanged() } get state() { return this._state } set state(e) { 2 === this._state.type && this._state.request.cancel(), this._state = e } cancel(e = !1) { this.state = z.Default, this.throttledDelayer.cancel(), e || this._onChangedHints .fire(void 0) } trigger(e, t) { const i = this.editor.getModel(); if (!i || !T.nD.has(i)) return; const n = ++this.triggerId; this._pendingTriggers.push(e), this.throttledDelayer.trigger((() => this.doTrigger(n)), t).catch(E.dL) } next() { if (1 !== this.state.type) return; const e = this.state.hints.signatures.length, t = this.state.hints.activeSignature, i = t % e == e - 1, n = this.editor.getOption(75).cycle; !(e < 2 || i) || n ? this.updateActiveSignature(i && n ? 0 : t + 1) : this.cancel() } previous() { if (1 !== this.state.type) return; const e = this.state.hints.signatures.length, t = this.state.hints.activeSignature, i = 0 === t, n = this.editor.getOption(75).cycle; !(e < 2 || i) || n ? this.updateActiveSignature(i && n ? e - 1 : t - 1) : this.cancel() } updateActiveSignature(e) { 1 === this.state.type && (this.state = new z.Active(Object.assign( Object.assign({}, this.state.hints), { activeSignature: e })), this._onChangedHints.fire(this.state.hints)) } doTrigger(e) { return t = this, i = void 0, o = function*() { const t = 1 === this.state.type || 2 === this.state.type, i = this.getLastActiveHints(); if (this.cancel(!0), 0 === this._pendingTriggers.length) return !1; const n = this._pendingTriggers.reduce(q); this._pendingTriggers = []; const o = { triggerKind: n.triggerKind, triggerCharacter: n.triggerCharacter, isRetrigger: t, activeSignatureHelp: i }; if (!this.editor.hasModel()) return !1; const r = this.editor.getModel(), s = this.editor.getPosition(); this.state = new z.Pending((0, j.PG)((e => W(r, s, o, e))), i); try { const t = yield this.state.request; return e !== this.triggerId ? (null == t || t.dispose(), !1) : t && t.value.signatures && 0 !== t.value.signatures.length ? (this.state = new z.Active(t.value), this._lastSignatureHelpResult.value = t, this._onChangedHints.fire(this.state.hints), !0) : (null == t || t.dispose(), this._lastSignatureHelpResult.clear(), this.cancel(), ! 1) } catch (t) { return e === this.triggerId && (this.state = z.Default), (0, E.dL) (t), !1 } }, new((n = void 0) || (n = Promise))((function(e, r) { function s(e) { try { l(o.next(e)) } catch (e) { r(e) } } function a(e) { try { l(o.throw(e)) } catch (e) { r(e) } } function l(t) { var i; t.done ? e(t.value) : (i = t.value, i instanceof n ? i : new n(( function(e) { e(i) }))).then(s, a) } l((o = o.apply(t, i || [])).next()) })); var t, i, n, o } getLastActiveHints() { switch (this.state.type) { case 1: return this.state.hints; case 2: return this.state.previouslyActiveHints; default: return } } get isTriggered() { return 1 === this.state.type || 2 === this.state.type || this.throttledDelayer .isTriggered() } onModelChanged() { this.cancel(), this.triggerChars = new K.q, this.retriggerChars = new K .q; const e = this.editor.getModel(); if (e) for (const t of T.nD.ordered(e)) { for (const e of t.signatureHelpTriggerCharacters || []) this.triggerChars .add(e.charCodeAt(0)), this.retriggerChars.add(e.charCodeAt(0)); for (const e of t.signatureHelpRetriggerCharacters || []) this.retriggerChars .add(e.charCodeAt(0)) } } onDidType(e) { if (!this.triggerOnType) return; const t = e.length - 1, i = e.charCodeAt(t); (this.triggerChars.has(i) || this.isTriggered && this.retriggerChars.has( i)) && this.trigger({ triggerKind: T.WW.TriggerCharacter, triggerCharacter: e.charAt(t) }) } onCursorChange(e) { "mouse" === e.source ? this.cancel() : this.isTriggered && this.trigger({ triggerKind: T.WW.ContentChange }) } onModelContentChange() { this.isTriggered && this.trigger({ triggerKind: T.WW.ContentChange }) } onEditorConfigurationChange() { this.triggerOnType = this.editor.getOption(75).enabled, this.triggerOnType || this.cancel() } dispose() { this.cancel(!0), super.dispose() } } function q(e, t) { switch (t.triggerKind) { case T.WW.Invoke: return t; case T.WW.ContentChange: return e; case T.WW.TriggerCharacter: default: return t } } $.DEFAULT_DELAY = 120; var Z = i(7295), G = i(3046), Y = i(2321), Q = i(9554), X = function(e, t) { return function(i, n) { t(i, n, e) } }; const J = d.$, ee = (0, Q.q5)("parameter-hints-next", G.lA.chevronDown, n.N( "parameterHintsNextIcon", "Icon for show next parameter hint.")), te = (0, Q.q5)("parameter-hints-previous", G.lA.chevronUp, n.N( "parameterHintsPreviousIcon", "Icon for show previous parameter hint." )); let ie = class e extends o.JT { constructor(e, t, i, n) { super(), this.editor = e, this.renderDisposeables = this._register( new o.SL), this.visible = !1, this.announcedLabel = null, this.allowEditorOverflow = ! 0, this.markdownRenderer = this._register(new D.$({ editor: e }, n, i)), this.model = this._register(new $(e)), this.keyVisible = B.Visible.bindTo(t), this.keyMultipleSignatures = B.MultipleSignatures .bindTo(t), this._register(this.model.onChangedHints((e => { e ? (this.show(), this.render(e)) : this.hide() }))) } createParameterHintDOMNodes() { const e = J(".editor-widget.parameter-hints-widget"), t = d.R3(e, J(".phwrapper")); t.tabIndex = -1; const i = d.R3(t, J(".controls")), n = d.R3(i, J(".button" + U.kS.asCSSSelector(te))), o = d.R3(i, J(".overloads")), r = d.R3(i, J(".button" + U.kS.asCSSSelector(ee))); this._register(d.nm(n, "click", (e => { d.zB.stop(e), this.previous() }))), this._register(d.nm(r, "click", (e => { d.zB.stop(e), this.next() }))); const s = J(".body"), a = new h.s$(s, {}); this._register(a), t.appendChild(a.getDomNode()); const l = d.R3(s, J(".signature")), c = d.R3(s, J(".docs")); e.style.userSelect = "text", this.domNodes = { element: e, signature: l, overloads: o, docs: c, scrollbar: a }, this.editor.addContentWidget(this), this.hide(), this._register( this.editor.onDidChangeCursorSelection((e => { this.visible && this.editor.layoutContentWidget(this) }))); const g = () => { if (!this.domNodes) return; const e = this.editor.getOption(42); this.domNodes.element.style.fontSize = `${e.fontSize}px` }; g(), this._register(u.ju.chain(this.editor.onDidChangeConfiguration.bind( this.editor)).filter((e => e.hasChanged(42))).on(g, null)), this._register( this.editor.onDidLayoutChange((e => this.updateMaxHeight()))), this .updateMaxHeight() } show() { this.visible || (this.domNodes || this.createParameterHintDOMNodes(), this.keyVisible.set(!0), this.visible = !0, setTimeout((() => { this.domNodes && 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 && this.domNodes.element.classList.remove("visible"), this.editor.layoutContentWidget( this)) } getPosition() { return this.visible ? { position: this.editor.getPosition(), preference: [1, 2] } : null } render(e) { var t; if (this.renderDisposeables.clear(), !this.domNodes) return; const i = e.signatures.length > 1; this.domNodes.element.classList.toggle("multiple", i), this.keyMultipleSignatures .set(i), this.domNodes.signature.innerText = "", this.domNodes.docs.innerText = ""; const o = e.signatures[e.activeSignature]; if (!o) return; const r = d.R3(this.domNodes.signature, J(".code")), s = this.editor.getOption(42); r.style.fontSize = `${s.fontSize}px`, r.style.fontFamily = s.fontFamily; const a = o.parameters.length > 0, l = null !== (t = o.activeParameter) && void 0 !== t ? t : e.activeParameter; a ? this.renderParameters(r, o, l) : d.R3(r, J("span")).textContent = o.label; const h = o.parameters[l]; if (null == h ? void 0 : h.documentation) { const e = J("span.documentation"); if ("string" == typeof h.documentation) e.textContent = h.documentation; else { const t = this.renderMarkdownDocs(h.documentation); e.appendChild(t.element) } d.R3(this.domNodes.docs, J("p", {}, e)) } if (void 0 === o.documentation); else if ("string" == typeof o.documentation) d.R3(this.domNodes.docs, J("p", {}, o.documentation)); else { const e = this.renderMarkdownDocs(o.documentation); d.R3(this.domNodes.docs, e.element) } const u = this.hasDocs(o, h); if (this.domNodes.signature.classList.toggle("has-docs", u), this.domNodes .docs.classList.toggle("empty", !u), this.domNodes.overloads.textContent = String(e.activeSignature + 1).padStart(e.signatures.length.toString() .length, "0") + "/" + e.signatures.length, h) { let e = ""; const t = o.parameters[l]; e = Array.isArray(t.label) ? o.label.substring(t.label[0], t.label[1]) : t.label, t.documentation && (e += "string" == typeof t.documentation ? `, ${t.documentation}` : `, ${t.documentation.value}`), o.documentation && (e += "string" == typeof o.documentation ? `, ${o.documentation}` : `, ${o.documentation.value}`), this.announcedLabel !== e && (c.Z9( n.N("hint", "{0}, hint", e)), this.announcedLabel = e) } this.editor.layoutContentWidget(this), this.domNodes.scrollbar.scanDomNode() } renderMarkdownDocs(e) { const t = this.renderDisposeables.add(this.markdownRenderer.render(e, { asyncRenderCallback: () => { var e; null === (e = this.domNodes) || void 0 === e || e.scrollbar.scanDomNode() } })); return t.element.classList.add("markdown-docs"), t } hasDocs(e, t) { return !!(t && "string" == typeof t.documentation && (0, O.cW)(t.documentation) .length > 0 || t && "object" == typeof t.documentation && (0, O.cW) (t.documentation).value.length > 0 || e.documentation && "string" == typeof e.documentation && (0, O.cW)(e.documentation).length > 0 || e.documentation && "object" == typeof e.documentation && (0, O.cW)( e.documentation.value).length > 0) } renderParameters(e, t, i) { const [n, o] = this.getParameterLabelOffsets(t, i), r = document.createElement( "span"); r.textContent = t.label.substring(0, n); const s = document.createElement("span"); s.textContent = t.label.substring(n, o), s.className = "parameter active"; const a = document.createElement("span"); a.textContent = t.label.substring(o), d.R3(e, r, s, a) } getParameterLabelOffsets(e, t) { const i = e.parameters[t]; if (i) { if (Array.isArray(i.label)) return i.label; if (i.label.length) { const t = new RegExp(`(\\W|^)${(0,Z.ec)(i.label)}(?=\\W|$)`, "g"); t.test(e.label); const n = t.lastIndex - i.label.length; return n >= 0 ? [n, t.lastIndex] : [0, 0] } return [0, 0] } return [0, 0] } next() { this.editor.focus(), this.model.next() } previous() { this.editor.focus(), this.model.previous() } cancel() { this.model.cancel() } getDomNode() { return this.domNodes || this.createParameterHintDOMNodes(), this.domNodes .element } getId() { return e.ID } trigger(e) { this.model.trigger(e, 0) } updateMaxHeight() { if (!this.domNodes) return; const e = `${Math.max(this.editor.getLayoutInfo().height/4,250)}px`; this.domNodes.element.style.maxHeight = e; const t = this.domNodes.element.getElementsByClassName("phwrapper"); t.length && (t[0].style.maxHeight = e) } }; ie.ID = "editor.widget.parameterHintsWidget", ie = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([X(1, a.i6), X(2, V.v4), X(3, N.h)], ie), (0, U.Ic)(((e, t) => { const i = e.getColor(H.CN); if (i) { const n = e.type === Y.e.HIGH_CONTRAST ? 2 : 1; t.addRule( `.monaco-editor .parameter-hints-widget { border: ${n}px solid ${i}; }` ), t.addRule( `.monaco-editor .parameter-hints-widget.multiple .body { border-left: 1px solid ${i.transparent(.5)}; }` ), t.addRule( `.monaco-editor .parameter-hints-widget .signature.has-docs { border-bottom: 1px solid ${i.transparent(.5)}; }` ) } const n = e.getColor(H.yJ); n && t.addRule( `.monaco-editor .parameter-hints-widget { background-color: ${n}; }` ); const o = e.getColor(H.ur); o && t.addRule( `.monaco-editor .parameter-hints-widget a { color: ${o}; }`); const r = e.getColor(H.sg); r && t.addRule( `.monaco-editor .parameter-hints-widget a:hover { color: ${r}; }`); const s = e.getColor(H.Sb); s && t.addRule( `.monaco-editor .parameter-hints-widget { color: ${s}; }`); const a = e.getColor(H.Sw); a && t.addRule( `.monaco-editor .parameter-hints-widget code { background-color: ${a}; }` ) })); let ne = class e extends o.JT { constructor(e, t) { super(), this.editor = e, this.widget = this._register(t.createInstance( ie, this.editor)) } static get(t) { return t.getContribution(e.ID) } cancel() { this.widget.cancel() } previous() { this.widget.previous() } next() { this.widget.next() } trigger(e) { this.widget.trigger(e) } }; var oe, re; ne.ID = "editor.controller.parameterHints", ne = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([(oe = 1, re = r.TG, function(e, t) { re(e, t, oe) })], ne); class se extends l.R6 { constructor() { super({ id: "editor.action.triggerParameterHints", label: n.N("parameterHints.trigger.label", "Trigger Parameter Hints"), alias: "Trigger Parameter Hints", precondition: s.u.hasSignatureHelpProvider, kbOpts: { kbExpr: s.u.editorTextFocus, primary: 3082, weight: 100 } }) } run(e, t) { const i = ne.get(t); i && i.trigger({ triggerKind: T.WW.Invoke }) } }(0, l._K)(ne.ID, ne), (0, l.Qr)(se); const ae = l._l.bindToContribution(ne.get); (0, l.fK)(new ae({ id: "closeParameterHints", precondition: B.Visible, handler: e => e.cancel(), kbOpts: { weight: 175, kbExpr: s.u.focus, primary: 9, secondary: [1033] } })), (0, l.fK)(new ae({ id: "showPrevParameterHint", precondition: a.Ao.and(B.Visible, B.MultipleSignatures), handler: e => e.previous(), kbOpts: { weight: 175, kbExpr: s.u.focus, primary: 16, secondary: [528], mac: { primary: 16, secondary: [528, 302] } } })), (0, l.fK)(new ae({ id: "showNextParameterHint", precondition: a.Ao.and(B.Visible, B.MultipleSignatures), handler: e => e.next(), kbOpts: { weight: 175, kbExpr: s.u.focus, primary: 18, secondary: [530], mac: { primary: 18, secondary: [530, 300] } } })) }, 1884: (e, t, i) => { "use strict"; i.d(t, { Fw: () => q, Jy: () => Z, vk: () => X, rc: () => Y, SC: () => ie, RX: () => le, sH: () => de, WL: () => he, xH: () => ue, M8: () => ne, a7: () => re, xk: () => oe, F8: () => ce, Zj: () => se, IY: () => ae, KY: () => J, IH: () => ee, R7: () => te }); var n = i(3379), o = i.n(n), r = i(7795), s = i.n(r), a = i(569), l = i.n(a), d = i(3565), c = i.n(d), h = i(9216), u = i.n(h), g = i(4589), p = i.n(g), m = i(1283), f = {}; f.styleTagTransform = p(), f.setAttributes = c(), f.insert = l().bind( null, "head"), f.domAPI = s(), f.insertStyleElement = u(), o()(m.Z, f), m.Z && m.Z.locals && m.Z.locals; var _ = i(5321), b = i(317), v = i(4741), w = i(1264), C = i(4669), y = i(6248), S = i(1640), x = i(4527), k = i(6458), L = {}; L.styleTagTransform = p(), L.setAttributes = c(), L.insert = l().bind( null, "head"), L.domAPI = s(), L.insertStyleElement = u(), o()(k.Z, L), k.Z && k.Z.locals && k.Z.locals; var N = i(3841), D = i(4742), E = i(5976), I = i(4314), T = i(6281); const M = new w.Il(new w.VS(0, 122, 204)), A = { showArrow: !0, showFrame: !0, className: "", frameColor: M, arrowColor: M, keepEditorSelection: !1 }; class R { constructor(e, t, i, n, o, r) { this.id = "", this.domNode = e, this.afterLineNumber = t, this.afterColumn = i, this.heightInLines = n, this._onDomNodeTop = o, this._onComputedHeight = r } onDomNodeTop(e) { this._onDomNodeTop(e) } onComputedHeight(e) { this._onComputedHeight(e) } } class O { constructor(e, t) { this._id = e, this._domNode = t } getId() { return this._id } getDomNode() { return this._domNode } getPosition() { return null } } class P { constructor(e) { this._editor = e, this._ruleName = P._IdGenerator.nextId(), this._decorations = [], this._color = null, this._height = -1 } dispose() { this.hide(), _.uN(this._ruleName) } set color(e) { this._color !== e && (this._color = e, this._updateStyle()) } set height(e) { this._height !== e && (this._height = e, this._updateStyle()) } _updateStyle() { _.uN(this._ruleName), _.fk(`.monaco-editor ${this._ruleName}`, `border-style: solid; border-color: transparent; border-bottom-color: ${this._color}; border-width: ${this._height}px; bottom: -${this._height}px; margin-left: -${this._height}px; ` ) } show(e) { this._decorations = this._editor.deltaDecorations(this._decorations, [{ range: I.e.fromPositions(e), options: { description: "zone-widget-arrow", className: this._ruleName, stickiness: 1 } }]) } hide() { this._editor.deltaDecorations(this._decorations, []) } } P._IdGenerator = new D.R(".arrow-decoration-"); var F = i(3580), B = i(8819), W = i(2065), z = i(5026), V = i(6830), H = i(3910), U = i(3046), j = i(1133), K = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }, $ = function(e, t) { return function(i, n) { t(i, n, e) } }; const q = (0, W.yh)("IPeekViewService"); var Z; (0, z.z)(q, class { constructor() { this._widgets = new Map } addExclusiveWidget(e, t) { const i = this._widgets.get(e); i && (i.listener.dispose(), i.widget.dispose()), this._widgets.set(e, { widget: t, listener: t.onDidClose((() => { const i = this._widgets.get(e); i && i.widget === t && (i.listener.dispose(), this._widgets.delete( e)) })) }) } }), function(e) { e.inPeekEditor = new B.uy("inReferenceSearchEditor", !0, F.N( "inReferenceSearchEditor", "Whether the current code editor is embedded inside peek")), e.notInPeekEditor = e.inPeekEditor.toNegated() }(Z || (Z = {})); let G = class { constructor(e, t) { e instanceof x.H && Z.inPeekEditor.bindTo(t) } dispose() {} }; function Y(e) { let t = e.get(S.$).getFocusedCodeEditor(); return t instanceof x.H ? t.getParentEditor() : t } G.ID = "editor.contrib.referenceController", G = K([$(1, B.i6)], G), (0, V._K)(G.ID, G); const Q = { headerBackgroundColor: w.Il.white, primaryHeadingColor: w.Il.fromHex("#333333"), secondaryHeadingColor: w.Il.fromHex("#6c6c6cb3") }; let X = class extends class { constructor(e, t = {}) { this._arrow = null, this._overlayWidget = null, this._resizeSash = null, this._positionMarkerId = [], this._viewZone = null, this._disposables = new E.SL, this.container = null, this._isShowing = !1, this.editor = e, this.options = y.I8(t), y.jB(this.options, A, !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( (e => { const t = this._getWidth(e); this.domNode.style.width = t + "px", this.domNode.style.left = this._getLeft(e) + "px", this._onWidth(t) }))) } dispose() { this._overlayWidget && (this.editor.removeOverlayWidget(this._overlayWidget), this._overlayWidget = null), this._viewZone && this.editor.changeViewZones( (e => { this._viewZone && e.removeZone(this._viewZone.id), this._viewZone = null })), this.editor.deltaDecorations(this._positionMarkerId, []), this ._positionMarkerId = [], 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 P(this.editor), this._disposables .add(this._arrow)), this._fillContainer(this.container), this._initSash(), this._applyStyles() } style(e) { e.frameColor && (this.options.frameColor = e.frameColor), e.arrowColor && (this.options.arrowColor = e.arrowColor), this._applyStyles() } _applyStyles() { if (this.container && this.options.frameColor) { let e = this.options.frameColor.toString(); this.container.style.borderTopColor = e, this.container.style.borderBottomColor = e } if (this._arrow && this.options.arrowColor) { let e = this.options.arrowColor.toString(); this._arrow.color = e } } _getWidth(e) { return e.width - e.minimap.minimapWidth - e.verticalScrollbarWidth } _getLeft(e) { return e.minimap.minimapWidth > 0 && 0 === e.minimap.minimapLeft ? e.minimap .minimapWidth : 0 } _onViewZoneTop(e) { this.domNode.style.top = e + "px" } _onViewZoneHeight(e) { if (this.domNode.style.height = `${e}px`, this.container) { let t = e - this._decoratingElementsHeight(); this.container.style.height = `${t}px`; const i = this.editor.getLayoutInfo(); this._doLayout(t, this._getWidth(i)) } this._resizeSash && this._resizeSash.layout() } get position() { const [e] = this._positionMarkerId; if (!e) return; const t = this.editor.getModel(); if (!t) return; const i = t.getDecorationRange(e); return i ? i.getStartPosition() : void 0 } show(e, t) { const i = I.e.isIRange(e) ? I.e.lift(e) : I.e.fromPositions(e); this._isShowing = !0, this._showImpl(i, t), this._isShowing = !1, this._positionMarkerId = this.editor.deltaDecorations(this._positionMarkerId, [{ range: i, options: T.qx.EMPTY }]) } hide() { this._viewZone && (this.editor.changeViewZones((e => { this._viewZone && e.removeZone(this._viewZone.id) })), this._viewZone = null), this._overlayWidget && (this.editor.removeOverlayWidget( this._overlayWidget), this._overlayWidget = null), this._arrow && this._arrow.hide() } _decoratingElementsHeight() { let e = this.editor.getOption(58), t = 0; return this.options.showArrow && (t += 2 * Math.round(e / 3)), this.options .showFrame && (t += 2 * Math.round(e / 9)), t } _showImpl(e, t) { const i = e.getStartPosition(), n = this.editor.getLayoutInfo(), o = this._getWidth(n); this.domNode.style.width = `${o}px`, this.domNode.style.left = this._getLeft( n) + "px"; const r = document.createElement("div"); r.style.overflow = "hidden"; const s = this.editor.getOption(58), a = Math.max(12, this.editor.getLayoutInfo().height / s * .8); t = Math.min(t, a); let l = 0, d = 0; if (this._arrow && this.options.showArrow && (l = Math.round(s / 3), this._arrow.height = l, this._arrow.show(i)), this.options.showFrame && (d = Math.round(s / 9)), this.editor.changeViewZones((e => { this._viewZone && e.removeZone(this._viewZone.id), this._overlayWidget && (this.editor.removeOverlayWidget(this._overlayWidget), this._overlayWidget = null), this.domNode.style.top = "-1000px", this._viewZone = new R( r, i.lineNumber, i.column, t, (e => this._onViewZoneTop(e)), (e => this._onViewZoneHeight(e))), this._viewZone.id = e.addZone( this._viewZone), this._overlayWidget = new O( "vs.editor.contrib.zoneWidget" + this._viewZone.id, this.domNode ), this.editor.addOverlayWidget(this._overlayWidget) })), this.container && this.options.showFrame) { const e = this.options.frameWidth ? this.options.frameWidth : d; this.container.style.borderTopWidth = e + "px", this.container.style .borderBottomWidth = e + "px" } let c = t * s - this._decoratingElementsHeight(); this.container && (this.container.style.top = l + "px", this.container .style.height = c + "px", this.container.style.overflow = "hidden"), this._doLayout(c, o), this.options.keepEditorSelection || this.editor .setSelection(e); const h = this.editor.getModel(); if (h) { const t = e.endLineNumber + 1; t <= h.getLineCount() ? this.revealLine(t, !1) : this.revealLine(h.getLineCount(), ! 0) } } revealLine(e, t) { t ? this.editor.revealLineInCenter(e, 0) : this.editor.revealLine(e, 0) } setCssClass(e, t) { this.container && (t && this.container.classList.remove(t), this.container .classList.add(e)) } _onWidth(e) {} _doLayout(e, t) {} _relayout(e) { this._viewZone && this._viewZone.heightInLines !== e && this.editor.changeViewZones( (t => { this._viewZone && (this._viewZone.heightInLines = e, t.layoutZone( this._viewZone.id)) })) } _initSash() { if (this._resizeSash) return; let e; this._resizeSash = this._disposables.add(new N.g(this.domNode, this, { orientation: 1 })), this.options.isResizeable || (this._resizeSash.hide(), this._resizeSash .state = 0), this._disposables.add(this._resizeSash.onDidStart((t => { this._viewZone && (e = { startY: t.startY, heightInLines: this._viewZone.heightInLines }) }))), this._disposables.add(this._resizeSash.onDidEnd((() => { e = void 0 }))), this._disposables.add(this._resizeSash.onDidChange((t => { if (e) { let i = (t.currentY - e.startY) / this.editor.getOption(58), n = i < 0 ? Math.ceil(i) : Math.floor(i), o = e.heightInLines + n; o > 5 && o < 35 && this._relayout(o) } }))) } getHorizontalSashLeft() { return 0 } getHorizontalSashTop() { return (null === this.domNode.style.height ? 0 : parseInt(this.domNode .style.height)) - this._decoratingElementsHeight() / 2 } getHorizontalSashWidth() { const e = this.editor.getLayoutInfo(); return e.width - e.minimap.minimapWidth } } { constructor(e, t, i) { super(e, t), this.instantiationService = i, this._onDidClose = new C.Q5, this.onDidClose = this._onDidClose.event, y.jB(this.options, Q, !1) } dispose() { this.disposed || (this.disposed = !0, super.dispose(), this._onDidClose .fire(this)) } style(e) { let t = this.options; e.headerBackgroundColor && (t.headerBackgroundColor = e.headerBackgroundColor), e.primaryHeadingColor && (t.primaryHeadingColor = e.primaryHeadingColor), e.secondaryHeadingColor && (t.secondaryHeadingColor = e.secondaryHeadingColor), super.style(e) } _applyStyles() { super._applyStyles(); let e = this.options; this._headElement && e.headerBackgroundColor && (this._headElement.style .backgroundColor = e.headerBackgroundColor.toString()), this._primaryHeading && e.primaryHeadingColor && (this._primaryHeading.style.color = e.primaryHeadingColor .toString()), this._secondaryHeading && e.secondaryHeadingColor && (this._secondaryHeading.style.color = e.secondaryHeadingColor.toString()), this._bodyElement && e.frameColor && (this._bodyElement.style.borderColor = e.frameColor.toString()) } _fillContainer(e) { this.setCssClass("peekview-widget"), this._headElement = _.$(".head"), this._bodyElement = _.$(".body"), this._fillHead(this._headElement), this._fillBody(this._bodyElement), e.appendChild(this._headElement), e.appendChild(this._bodyElement) } _fillHead(e, t) { const i = _.$(".peekview-title"); this.options.supportOnTitleClick && (i.classList.add("clickable"), _.mu( i, "click", (e => this._onTitleClick(e)))), _.R3(this._headElement, i), this._fillTitleIcon(i), this._primaryHeading = _.$( "span.filename"), this._secondaryHeading = _.$("span.dirname"), this._metaHeading = _.$("span.meta"), _.R3(i, this._primaryHeading, this._secondaryHeading, this._metaHeading); const n = _.$(".peekview-actions"); _.R3(this._headElement, n); const o = this._getActionBarOptions(); this._actionbarWidget = new b.o(n, o), this._disposables.add(this._actionbarWidget), t || this._actionbarWidget.push(new v.aU("peekview.close", F.N( "label.close", "Close"), U.lA.close.classNames, !0, (() => (this.dispose(), Promise.resolve()))), { label: !1, icon: !0 }) } _fillTitleIcon(e) {} _getActionBarOptions() { return { actionViewItemProvider: j.Id.bind(void 0, this.instantiationService), orientation: 0 } } _onTitleClick(e) {} setTitle(e, t) { this._primaryHeading && this._secondaryHeading && (this._primaryHeading .innerText = e, this._primaryHeading.setAttribute("title", e), t ? this._secondaryHeading.innerText = t : _.PO(this._secondaryHeading) ) } setMetaTitle(e) { this._metaHeading && (e ? (this._metaHeading.innerText = e, _.$Z(this ._metaHeading)) : _.Cp(this._metaHeading)) } _doLayout(e, t) { if (!this._isShowing && e < 0) return void this.dispose(); const i = Math.ceil(1.2 * this.editor.getOption(58)), n = Math.round(e - (i + 2)); this._doLayoutHead(i, t), this._doLayoutBody(n, t) } _doLayoutHead(e, t) { this._headElement && (this._headElement.style.height = `${e}px`, this ._headElement.style.lineHeight = this._headElement.style.height) } _doLayoutBody(e, t) { this._bodyElement && (this._bodyElement.style.height = `${e}px`) } }; X = K([$(2, W.TG)], X); const J = (0, H.P6)("peekViewTitle.background", { dark: (0, H.Zn)(H.c6, .1), light: (0, H.Zn)(H.c6, .1), hc: null }, F.N("peekViewTitleBackground", "Background color of the peek view title area.")), ee = (0, H.P6)("peekViewTitleLabel.foreground", { dark: w.Il.white, light: w.Il.black, hc: w.Il.white }, F.N("peekViewTitleForeground", "Color of the peek view title.")), te = (0, H.P6)("peekViewTitleDescription.foreground", { dark: "#ccccccb3", light: "#616161e6", hc: "#FFFFFF99" }, F.N("peekViewTitleInfoForeground", "Color of the peek view title info.")), ie = (0, H.P6)("peekView.border", { dark: H.c6, light: H.c6, hc: H.lR }, F.N("peekViewBorder", "Color of the peek view borders and arrow.")), ne = (0, H.P6)("peekViewResult.background", { dark: "#252526", light: "#F3F3F3", hc: w.Il.black }, F.N("peekViewResultsBackground", "Background color of the peek view result list.")), oe = (0, H.P6)("peekViewResult.lineForeground", { dark: "#bbbbbb", light: "#646465", hc: w.Il.white }, F.N("peekViewResultsMatchForeground", "Foreground color for line nodes in the peek view result list.")), re = (0, H.P6)("peekViewResult.fileForeground", { dark: w.Il.white, light: "#1E1E1E", hc: w.Il.white }, F.N("peekViewResultsFileForeground", "Foreground color for file nodes in the peek view result list.")), se = (0, H.P6)("peekViewResult.selectionBackground", { dark: "#3399ff33", light: "#3399ff33", hc: null }, F.N("peekViewResultsSelectionBackground", "Background color of the selected entry in the peek view result list." )), ae = (0, H.P6)("peekViewResult.selectionForeground", { dark: w.Il.white, light: "#6C6C6C", hc: w.Il.white }, F.N("peekViewResultsSelectionForeground", "Foreground color of the selected entry in the peek view result list." )), le = (0, H.P6)("peekViewEditor.background", { dark: "#001F33", light: "#F2F8FC", hc: w.Il.black }, F.N("peekViewEditorBackground", "Background color of the peek view editor.")), de = (0, H.P6)("peekViewEditorGutter.background", { dark: le, light: le, hc: le }, F.N("peekViewEditorGutterBackground", "Background color of the gutter in the peek view editor.")), ce = (0, H.P6)("peekViewResult.matchHighlightBackground", { dark: "#ea5c004d", light: "#ea5c004d", hc: null }, F.N("peekViewResultsMatchHighlight", "Match highlight color in the peek view result list.")), he = (0, H.P6)("peekViewEditor.matchHighlightBackground", { dark: "#ff8f0099", light: "#f5d802de", hc: null }, F.N("peekViewEditorMatchHighlight", "Match highlight color in the peek view editor.")), ue = (0, H.P6)("peekViewEditor.matchHighlightBorder", { dark: null, light: null, hc: H.xL }, F.N("peekViewEditorMatchHighlightBorder", "Match highlight border in the peek view editor.")) }, 8275: (e, t, i) => { "use strict"; i.d(t, { X: () => c }); var n = i(4973), o = i(7781), r = i(7869), s = i(5976), a = i(5520), l = i(8401), d = i(8289); class c { constructor(e) { this.options = e, this.rangeHighlightDecorationId = void 0 } provide(e, t) { var i; const n = new s.SL; e.canAcceptInBackground = !!(null === (i = this.options) || void 0 === i ? void 0 : i.canAcceptInBackground), e.matchOnLabel = e.matchOnDescription = e.matchOnDetail = e.sortByLabel = !1; const o = n.add(new s.XK); return o.value = this.doProvide(e, t), n.add(this.onDidActiveTextEditorControlChange( (() => { o.value = void 0, o.value = this.doProvide(e, t) }))), n } doProvide(e, t) { const i = new s.SL, n = this.activeTextEditorControl; if (n && this.canProvideWithTextEditor(n)) { const o = { editor: n }, r = (0, a.Pi)(n); if (r) { let e = (0, l.f6)(n.saveViewState()); i.add(r.onDidChangeCursorPosition((() => { e = (0, l.f6)(n.saveViewState()) }))), o.restoreViewState = () => { e && n === this.activeTextEditorControl && n.restoreViewState(e) }, i.add((0, d.I)(t.onCancellationRequested)((() => { var e; return null === (e = o.restoreViewState) || void 0 === e ? void 0 : e.call(o) }))) } i.add((0, s.OF)((() => this.clearDecorations(n)))), i.add(this.provideWithTextEditor( o, e, t)) } else i.add(this.provideWithoutTextEditor(e, t)); return i } canProvideWithTextEditor(e) { return !0 } gotoLocation({ editor: e }, t) { e.setSelection(t.range), e.revealRangeInCenter(t.range, 0), t.preserveFocus || e.focus() } getModel(e) { var t; return (0, a.QI)(e) ? null === (t = e.getModel()) || void 0 === t ? void 0 : t.modified : e.getModel() } addDecorations(e, t) { e.changeDecorations((e => { const i = []; this.rangeHighlightDecorationId && (i.push(this.rangeHighlightDecorationId .overviewRulerDecorationId), i.push(this.rangeHighlightDecorationId .rangeHighlightId), this.rangeHighlightDecorationId = void 0); const s = [{ range: t, options: { description: "quick-access-range-highlight", className: "rangeHighlight", isWholeLine: !0 } }, { range: t, options: { description: "quick-access-range-highlight-overview", overviewRuler: { color: (0, o.EN)(r.m9), position: n.sh.Full } } }], [a, l] = e.deltaDecorations(i, s); this.rangeHighlightDecorationId = { rangeHighlightId: a, overviewRulerDecorationId: l } })) } clearDecorations(e) { const t = this.rangeHighlightDecorationId; t && (e.changeDecorations((e => { e.deltaDecorations([t.overviewRulerDecorationId, t.rangeHighlightId], []) })), this.rangeHighlightDecorationId = void 0) } } }, 7290: (e, t, i) => { "use strict"; i.r(t), i.d(t, { RenameAction: () => J, rename: () => Q }); var n = i(3580), o = i(7301), r = i(8819), s = i(535), a = i(6830), l = i(9102), d = i(3379), c = i.n(d), h = i(7795), u = i.n(h), g = i(569), p = i.n(g), m = i(3565), f = i.n(m), _ = i(9216), b = i.n(_), v = i(4589), w = i.n(v), C = i(7113), y = {}; y.styleTagTransform = w(), y.setAttributes = f(), y.insert = p().bind( null, "head"), y.domAPI = u(), y.insertStyleElement = b(), c()(C.Z, y), C.Z && C.Z.locals && C.Z.locals; var S = i(5976), x = i(187), k = i(3910), L = i(7781), N = i(1847), D = function(e, t) { return function(i, n) { t(i, n, e) } }; const E = new r.uy("renameInputVisible", !1, (0, n.N)( "renameInputVisible", "Whether the rename input widget is visible")); let I = class { constructor(e, t, i, n, o) { this._editor = e, this._acceptKeybindings = t, this._themeService = i, this._keybindingService = n, this._disposables = new S.SL, this.allowEditorOverflow = ! 0, this._visibleContextKey = E.bindTo(o), this._editor.addContentWidget( this), this._disposables.add(this._editor.onDidChangeConfiguration( (e => { e.hasChanged(42) && this._updateFont() }))), this._disposables.add(i.onDidColorThemeChange(this._updateStyles, this)) } dispose() { this._disposables.dispose(), this._editor.removeContentWidget(this) } getId() { return "__renameInputWidget" } getDomNode() { if (!this._domNode) { this._domNode = document.createElement("div"), this._domNode.className = "monaco-editor rename-box", this._input = document.createElement( "input"), this._input.className = "rename-input", this._input.type = "text", this._input.setAttribute("aria-label", (0, n.N)( "renameAriaLabel", "Rename input. Type new name and press Enter to commit.")), this._domNode .appendChild(this._input), this._label = document.createElement( "div"), this._label.className = "rename-label", this._domNode.appendChild( this._label); const e = () => { var e, t; const [i, o] = this._acceptKeybindings; this._keybindingService.lookupKeybinding(i), this._label.innerText = (0, n.N)({ key: "label", comment: [ 'placeholders are keybindings, e.g "F2 to Rename, Shift+F2 to Preview"' ] }, "{0} to Rename, {1} to Preview", null === (e = this._keybindingService .lookupKeybinding(i)) || void 0 === e ? void 0 : e.getLabel(), null === (t = this._keybindingService.lookupKeybinding(o)) || void 0 === t ? void 0 : t.getLabel()) }; e(), this._disposables.add(this._keybindingService.onDidUpdateKeybindings( e)), this._updateFont(), this._updateStyles(this._themeService.getColorTheme()) } return this._domNode } _updateStyles(e) { var t, i, n, o; if (!this._input || !this._domNode) return; const r = e.getColor(k.rh); this._domNode.style.backgroundColor = String(null !== (t = e.getColor( k.D0)) && void 0 !== t ? t : ""), this._domNode.style.boxShadow = r ? ` 0 0 8px 2px ${r}` : "", this._domNode.style.color = String(null !== (i = e.getColor(k.zJ)) && void 0 !== i ? i : ""), this._input.style .backgroundColor = String(null !== (n = e.getColor(k.sE)) && void 0 !== n ? n : ""); const s = e.getColor(k.dt); this._input.style.borderWidth = s ? "1px" : "0px", this._input.style.borderStyle = s ? "solid" : "none", this._input.style.borderColor = null !== (o = null == s ? void 0 : s.toString()) && void 0 !== o ? o : "none" } _updateFont() { if (!this._input || !this._label) return; const e = this._editor.getOption(42); this._input.style.fontFamily = e.fontFamily, this._input.style.fontWeight = e.fontWeight, this._input.style.fontSize = `${e.fontSize}px`, this._label .style.fontSize = .8 * e.fontSize + "px" } getPosition() { return this._visible ? { position: this._position, preference: [2, 1] } : null } afterRender(e) { e || this.cancelInput(!0) } acceptInput(e) { this._currentAcceptInput && this._currentAcceptInput(e) } cancelInput(e) { this._currentCancelInput && this._currentCancelInput(e) } getInput(e, t, i, n, o, r) { this._domNode.classList.toggle("preview", o), this._position = new x.L( e.startLineNumber, e.startColumn), this._input.value = t, this._input .setAttribute("selectionStart", i.toString()), this._input.setAttribute( "selectionEnd", n.toString()), this._input.size = Math.max(1.1 * (e .endColumn - e.startColumn), 20); const s = new S.SL; return new Promise((e => { this._currentCancelInput = t => (this._currentAcceptInput = void 0, this._currentCancelInput = void 0, e(t), !0), this._currentAcceptInput = i => { 0 !== this._input.value.trim().length && this._input.value !== t ? (this._currentAcceptInput = void 0, this._currentCancelInput = void 0, e({ newName: this._input.value, wantsPreview: o && i })) : this.cancelInput(!0) }, r.onCancellationRequested((() => this.cancelInput(!0))), s.add( this._editor.onDidBlurEditorWidget((() => this.cancelInput(!1))) ), this._show() })).finally((() => { s.dispose(), this._hide() })) } _show() { this._editor.revealLineInCenterIfOutsideViewport(this._position.lineNumber, 0), this._visible = !0, this._visibleContextKey.set(!0), this._editor .layoutContentWidget(this), setTimeout((() => { this._input.focus(), this._input.setSelectionRange(parseInt(this._input .getAttribute("selectionStart")), parseInt(this._input.getAttribute( "selectionEnd"))) }), 100) } _hide() { this._visible = !1, this._visibleContextKey.reset(), this._editor.layoutContentWidget( this) } }; I = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([D(2, L.XE), D(3, N.d), D(4, r.i6)], I); var T = i(4101), M = i(6346), A = i(4314), R = i(845), O = i(9925), P = i(9422), F = i(6007), B = i(666), W = i(1640), z = i(1050), V = i(5393), H = i(3557), U = i(2065), j = i(9872), K = i(3193), $ = i(3187), q = i(8401), Z = function(e, t) { return function(i, n) { t(i, n, e) } }, G = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; class Y { constructor(e, t) { this.model = e, this.position = t, this._providerRenameIdx = 0, this._providers = T.G0.ordered(e) } hasProvider() { return this._providers.length > 0 } resolveRenameLocation(e) { return G(this, void 0, void 0, (function*() { const t = []; for (this._providerRenameIdx = 0; this._providerRenameIdx < this._providers .length; this._providerRenameIdx++) { const i = this._providers[this._providerRenameIdx]; if (!i.resolveRenameLocation) break; let n = yield i.resolveRenameLocation(this.model, this.position, e); if (n) { if (!n.rejectReason) return n; t.push(n.rejectReason) } } const i = this.model.getWordAtPosition(this.position); return i ? { range: new A.e(this.position.lineNumber, i.startColumn, this.position .lineNumber, i.endColumn), text: i.word, rejectReason: t.length > 0 ? t.join("\n") : void 0 } : { range: A.e.fromPositions(this.position), text: "", rejectReason: t.length > 0 ? t.join("\n") : void 0 } })) } provideRenameEdits(e, t) { return G(this, void 0, void 0, (function*() { return this._provideRenameEdits(e, this._providerRenameIdx, [], t) })) } _provideRenameEdits(e, t, i, o) { return G(this, void 0, void 0, (function*() { const r = this._providers[t]; if (!r) return { edits: [], rejectReason: i.join("\n") }; const s = yield r.provideRenameEdits(this.model, this.position, e, o); return s ? s.rejectReason ? this._provideRenameEdits(e, t + 1, i.concat( s.rejectReason), o) : s : this._provideRenameEdits(e, t + 1, i.concat( n.N("no result", "No result.")), o) })) } } function Q(e, t, i) { return G(this, void 0, void 0, (function*() { const n = new Y(e, t), o = yield n.resolveRenameLocation(z.T.None); return (null == o ? void 0 : o.rejectReason) ? { edits: [], rejectReason: o.rejectReason } : n.provideRenameEdits(i, z.T.None) })) } let X = class e { constructor(e, t, i, n, o, r, s) { this.editor = e, this._instaService = t, this._notificationService = i, this._bulkEditService = n, this._progressService = o, this._logService = r, this._configService = s, this._dispoableStore = new S.SL, this._cts = new z.A, this._renameInputField = this._dispoableStore.add(new V.Ue( (() => this._dispoableStore.add(this._instaService.createInstance( I, this.editor, ["acceptRenameInput", "acceptRenameInputWithPreview" ]))))) } static get(t) { return t.getContribution(e.ID) } dispose() { this._dispoableStore.dispose(), this._cts.dispose(!0) } run() { return G(this, void 0, void 0, (function*() { if (this._cts.dispose(!0), !this.editor.hasModel()) return; const e = this.editor.getPosition(), t = new Y(this.editor.getModel(), e); if (!t.hasProvider()) return; let i; this._cts = new O.Dl(this.editor, 5); try { const e = t.resolveRenameLocation(this._cts.token); this._progressService.showWhile(e, 250), i = yield e } catch (t) { return void R.O.get(this.editor).showMessage(t || n.N( "resolveRenameLocationFailed", "An unknown error occurred while resolving rename location"), e) } if (!i) return; if (i.rejectReason) return void R.O.get(this.editor).showMessage( i.rejectReason, e); if (this._cts.token.isCancellationRequested) return; this._cts.dispose(), this._cts = new O.Dl(this.editor, 5, i.range); let o = this.editor.getSelection(), r = 0, s = i.text.length; A.e.isEmpty(o) || A.e.spansMultipleLines(o) || !A.e.containsRange( i.range, o) || (r = Math.max(0, o.startColumn - i.range.startColumn), s = Math.min(i.range.endColumn, o.endColumn) - i.range.startColumn ); const a = this._bulkEditService.hasPreviewHandler() && this._configService .getValue(this.editor.getModel().uri, "editor.rename.enablePreview"), l = yield this._renameInputField.value.getInput(i.range, i.text, r, s, a, this._cts.token); if ("boolean" == typeof l) return void(l && this.editor.focus()); this.editor.focus(); const d = (0, V.eP)(t.provideRenameEdits(l.newName, this._cts.token), this._cts.token).then((e => G(this, void 0, void 0, (function*() { e && this.editor.hasModel() && (e.rejectReason ? this._notificationService .info(e.rejectReason) : this._bulkEditService.apply(F.fo.convert( e), { editor: this.editor, showPreview: l.wantsPreview, label: n.N("label", "Renaming '{0}'", null == i ? void 0 : i.text), quotableLabel: n.N("quotableLabel", "Renaming {0}", null == i ? void 0 : i.text) }).then((e => { e.ariaSummary && (0, M.Z9)(n.N("aria", "Successfully renamed '{0}' to '{1}'. Summary: {2}", i.text, l.newName, e.ariaSummary)) })).catch((e => { this._notificationService.error(n.N( "rename.failedApply", "Rename failed to apply edits")), this._logService.error( e) }))) }))), (e => { this._notificationService.error(n.N("rename.failed", "Rename failed to compute edits")), this._logService.error( e) })); return this._progressService.showWhile(d, 250), d })) } acceptRenameInput(e) { this._renameInputField.value.acceptInput(e) } cancelRenameInput() { this._renameInputField.value.cancelInput(!0) } }; X.ID = "editor.contrib.renameController", X = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([Z(1, U.TG), Z(2, P.lT), Z(3, F.vu), Z(4, s.e), Z(5, H.VZ), Z(6, $.V)], X); class J extends a.R6 { constructor() { super({ id: "editor.action.rename", label: n.N("rename.label", "Rename Symbol"), alias: "Rename Symbol", precondition: r.Ao.and(l.u.writable, l.u.hasRenameProvider), kbOpts: { kbExpr: l.u.editorTextFocus, primary: 60, weight: 100 }, contextMenuOpts: { group: "1_modification", order: 1.1 } }) } runCommand(e, t) { const i = e.get(W.$), [n, r] = Array.isArray(t) && t || [void 0, void 0]; return B.o.isUri(n) && x.L.isIPosition(r) ? i.openCodeEditor({ resource: n }, i.getActiveCodeEditor()).then((e => { e && (e.setPosition(r), e.invokeWithinContext((t => (this.reportTelemetry( t, e), this.run(t, e))))) }), o.dL) : super.runCommand(e, t) } run(e, t) { const i = X.get(t); return i ? i.run() : Promise.resolve() } }(0, a._K)(X.ID, X), (0, a.Qr)(J); const ee = a._l.bindToContribution(X.get); (0, a.fK)(new ee({ id: "acceptRenameInput", precondition: E, handler: e => e.acceptRenameInput(!1), kbOpts: { weight: 199, kbExpr: l.u.focus, primary: 3 } })), (0, a.fK)(new ee({ id: "acceptRenameInputWithPreview", precondition: r.Ao.and(E, r.Ao.has( "config.editor.rename.enablePreview")), handler: e => e.acceptRenameInput(!0), kbOpts: { weight: 199, kbExpr: l.u.focus, primary: 1027 } })), (0, a.fK)(new ee({ id: "cancelRenameInput", precondition: E, handler: e => e.cancelRenameInput(), kbOpts: { weight: 199, kbExpr: l.u.focus, primary: 9, secondary: [1033] } })), (0, a.sb)("_executeDocumentRenameProvider", (function(e, t, ...i) { const [n] = i; return (0, q.p_)("string" == typeof n), Q(e, t, n) })), j.B.as(K.IP.Configuration).registerConfiguration({ id: "editor", properties: { "editor.rename.enablePreview": { scope: 5, description: n.N("enablePreview", "Enable/disable the ability to preview changes before renaming"), default: !0, type: "boolean" } } }) }, 689: (e, t, i) => { "use strict"; i.d(t, { x: () => s }); var n = i(187), o = i(4314), r = i(1741); class s { provideSelectionRanges(e, t) { return i = this, n = void 0, r = function*() { const i = []; for (const n of t) { const t = []; i.push(t); const o = new Map; yield new Promise((t => s._bracketsRightYield(t, 0, e, n, o))), yield new Promise((i => s._bracketsLeftYield(i, 0, e, n, o, t))) } return i }, new((o = void 0) || (o = Promise))((function(e, t) { function s(e) { try { l(r.next(e)) } catch (e) { t(e) } } function a(e) { try { l(r.throw(e)) } catch (e) { t(e) } } function l(t) { var i; t.done ? e(t.value) : (i = t.value, i instanceof o ? i : new o(( function(e) { e(i) }))).then(s, a) } l((r = r.apply(i, n || [])).next()) })); var i, n, o, r } static _bracketsRightYield(e, t, i, n, o) { const a = new Map, l = Date.now(); for (;;) { if (t >= s._maxRounds) { e(); break } if (!n) { e(); break } let d = i.findNextBracket(n); if (!d) { e(); break } if (Date.now() - l > s._maxDuration) { setTimeout((() => s._bracketsRightYield(e, t + 1, i, n, o))); break } const c = d.close[0]; if (d.isOpen) { let e = a.has(c) ? a.get(c) : 0; a.set(c, e + 1) } else { let e = a.has(c) ? a.get(c) : 0; if (e -= 1, a.set(c, Math.max(0, e)), e < 0) { let e = o.get(c); e || (e = new r.S, o.set(c, e)), e.push(d.range) } } n = d.range.getEndPosition() } } static _bracketsLeftYield(e, t, i, n, r, a) { const l = new Map, d = Date.now(); for (;;) { if (t >= s._maxRounds && 0 === r.size) { e(); break } if (!n) { e(); break } let c = i.findPrevBracket(n); if (!c) { e(); break } if (Date.now() - d > s._maxDuration) { setTimeout((() => s._bracketsLeftYield(e, t + 1, i, n, r, a))); break } const h = c.close[0]; if (c.isOpen) { let e = l.has(h) ? l.get(h) : 0; if (e -= 1, l.set(h, Math.max(0, e)), e < 0) { let e = r.get(h); if (e) { let t = e.shift(); 0 === e.size && r.delete(h); const n = o.e.fromPositions(c.range.getEndPosition(), t.getStartPosition()), l = o.e.fromPositions(c.range.getStartPosition(), t.getEndPosition()); a.push({ range: n }), a.push({ range: l }), s._addBracketLeading(i, l, a) } } } else { let e = l.has(h) ? l.get(h) : 0; l.set(h, e + 1) } n = c.range.getStartPosition() } } static _addBracketLeading(e, t, i) { if (t.startLineNumber === t.endLineNumber) return; const r = t.startLineNumber, s = e.getLineFirstNonWhitespaceColumn(r); 0 !== s && s !== t.startColumn && (i.push({ range: o.e.fromPositions(new n.L(r, s), t.getEndPosition()) }), i.push({ range: o.e.fromPositions(new n.L(r, 1), t.getEndPosition()) })); const a = r - 1; if (a > 0) { const r = e.getLineFirstNonWhitespaceColumn(a); r === t.startColumn && r !== e.getLineLastNonWhitespaceColumn(a) && ( i.push({ range: o.e.fromPositions(new n.L(a, r), t.getEndPosition()) }), i.push({ range: o.e.fromPositions(new n.L(a, 1), t.getEndPosition()) })) } } } s._maxDuration = 30, s._maxRounds = 2 }, 1955: (e, t, i) => { "use strict"; i.r(t), i.d(t, { provideSelectionRanges: () => C }); var n = i(9488), o = i(1050), r = i(6830), s = i(187), a = i(4314), l = i(3860), d = i(9102), c = i(4101), h = i(3580), u = i(4144), g = i(7295), p = i(689), m = i(4565), f = i(7301), _ = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; class b { constructor(e, t) { this.index = e, this.ranges = t } mov(e) { let t = this.index + (e ? 1 : -1); if (t < 0 || t >= this.ranges.length) return this; const i = new b(t, this.ranges); return i.ranges[t].equalsRange(this.ranges[this.index]) ? i.mov(e) : i } } class v { constructor(e) { this._editor = e, this._ignoreSelection = !1 } static get(e) { return e.getContribution(v.ID) } dispose() { var e; null === (e = this._selectionListener) || void 0 === e || e.dispose() } run(e) { return _(this, void 0, void 0, (function*() { if (!this._editor.hasModel()) return; const t = this._editor.getSelections(), i = this._editor.getModel(); if (!c.AC.has(i)) return; if (this._state || (yield C(i, t.map((e => e.getPosition())), this ._editor.getOption(102), o.T.None).then((e => { var i; if (n.Of(e) && e.length === t.length && this._editor.hasModel() && n.fS(this._editor.getSelections(), t, ((e, t) => e.equalsSelection( t)))) { for (let i = 0; i < e.length; i++) e[i] = e[i].filter((e => e.containsPosition(t[i].getStartPosition()) && e.containsPosition( t[i].getEndPosition()))), e[i].unshift(t[i]); this._state = e.map((e => new b(0, e))), null === (i = this._selectionListener) || void 0 === i || i.dispose(), this._selectionListener = this ._editor.onDidChangeCursorPosition((() => { var e; this._ignoreSelection || (null === (e = this._selectionListener) || void 0 === e || e.dispose(), this._state = void 0) })) } }))), !this._state) return; this._state = this._state.map((t => t.mov(e))); const r = this._state.map((e => l.Y.fromPositions(e.ranges[e.index] .getStartPosition(), e.ranges[e.index].getEndPosition()))); this._ignoreSelection = !0; try { this._editor.setSelections(r) } finally { this._ignoreSelection = !1 } })) } } v.ID = "editor.contrib.smartSelectController"; class w extends r.R6 { constructor(e, t) { super(t), this._forward = e } run(e, t) { return _(this, void 0, void 0, (function*() { let e = v.get(t); e && (yield e.run(this._forward)) })) } } function C(e, t, i, o) { return _(this, void 0, void 0, (function*() { const r = c.AC.all(e); 1 === r.length && r.unshift(new p.x); let l = [], d = []; for (const i of r) l.push(Promise.resolve(i.provideSelectionRanges(e, t, o)).then((e => { if (n.Of(e) && e.length === t.length) for (let i = 0; i < t.length; i++) { d[i] || (d[i] = []); for (const n of e[i]) a.e.isIRange(n.range) && a.e.containsPosition( n.range, t[i]) && d[i].push(a.e.lift(n.range)) } }), f.Cp)); return yield Promise.all(l), d.map((t => { if (0 === t.length) return []; t.sort(((e, t) => s.L.isBefore(e.getStartPosition(), t.getStartPosition()) ? 1 : s.L.isBefore(t.getStartPosition(), e.getStartPosition()) || s.L.isBefore(e.getEndPosition(), t.getEndPosition()) ? -1 : s .L.isBefore(t.getEndPosition(), e.getEndPosition()) ? 1 : 0)); let n, o = []; for (const e of t)(!n || a.e.containsRange(e, n) && !a.e.equalsRange( e, n)) && (o.push(e), n = e); if (!i.selectLeadingAndTrailingWhitespace) return o; let r = [o[0]]; for (let t = 1; t < o.length; t++) { const i = o[t - 1], n = o[t]; if (n.startLineNumber !== i.startLineNumber || n.endLineNumber !== i.endLineNumber) { const t = new a.e(i.startLineNumber, e.getLineFirstNonWhitespaceColumn( i.startLineNumber), i.endLineNumber, e.getLineLastNonWhitespaceColumn( i.endLineNumber)); t.containsRange(i) && !t.equalsRange(i) && n.containsRange(t) && !n.equalsRange(t) && r.push(t); const o = new a.e(i.startLineNumber, 1, i.endLineNumber, e.getLineMaxColumn( i.endLineNumber)); o.containsRange(i) && !o.equalsRange(t) && n.containsRange(o) && !n.equalsRange(o) && r.push(o) } r.push(n) } return r })) })) } m.P.registerCommandAlias("editor.action.smartSelect.grow", "editor.action.smartSelect.expand"), (0, r._K)(v.ID, v), (0, r.Qr)( class extends w { constructor() { super(!0, { id: "editor.action.smartSelect.expand", label: h.N("smartSelect.expand", "Expand Selection"), alias: "Expand Selection", precondition: void 0, kbOpts: { kbExpr: d.u.editorTextFocus, primary: 1553, mac: { primary: 3345, secondary: [1297] }, weight: 100 }, menuOpts: { menuId: u.eH.MenubarSelectionMenu, group: "1_basic", title: h.N({ key: "miSmartSelectGrow", comment: ["&& denotes a mnemonic"] }, "&&Expand Selection"), order: 2 } }) } }), (0, r.Qr)(class extends w { constructor() { super(!1, { id: "editor.action.smartSelect.shrink", label: h.N("smartSelect.shrink", "Shrink Selection"), alias: "Shrink Selection", precondition: void 0, kbOpts: { kbExpr: d.u.editorTextFocus, primary: 1551, mac: { primary: 3343, secondary: [1295] }, weight: 100 }, menuOpts: { menuId: u.eH.MenubarSelectionMenu, group: "1_basic", title: h.N({ key: "miSmartSelectShrink", comment: ["&& denotes a mnemonic"] }, "&&Shrink Selection"), order: 3 } }) } }), c.AC.register("*", new class { provideSelectionRanges(e, t) { const i = []; for (const n of t) { const t = []; i.push(t), this._addInWordRanges(t, e, n), this._addWordRanges(t, e, n), this._addWhitespaceLine(t, e, n), t.push({ range: e.getFullModelRange() }) } return i } _addInWordRanges(e, t, i) { const n = t.getWordAtPosition(i); if (!n) return; let { word: o, startColumn: r } = n, s = i.column - r, l = s, d = s, c = 0; for (; l >= 0; l--) { let e = o.charCodeAt(l); if (l !== s && (95 === e || 45 === e)) break; if ((0, g.mK)(e) && (0, g.df)(c)) break; c = e } for (l += 1; d < o.length; d++) { let e = o.charCodeAt(d); if ((0, g.df)(e) && (0, g.mK)(c)) break; if (95 === e || 45 === e) break; c = e } l < d && e.push({ range: new a.e(i.lineNumber, r + l, i.lineNumber, r + d) }) } _addWordRanges(e, t, i) { const n = t.getWordAtPosition(i); n && e.push({ range: new a.e(i.lineNumber, n.startColumn, i.lineNumber, n.endColumn) }) } _addWhitespaceLine(e, t, i) { t.getLineLength(i.lineNumber) > 0 && 0 === t.getLineFirstNonWhitespaceColumn( i.lineNumber) && 0 === t.getLineLastNonWhitespaceColumn(i.lineNumber) && e.push({ range: new a.e(i.lineNumber, 1, i.lineNumber, t.getLineMaxColumn( i.lineNumber)) }) } }), (0, r.f)("_executeSelectionRangeProvider", (function(e, ...t) { const [i] = t; return C(e, i, { selectLeadingAndTrailingWhitespace: !0 }, o.T.None) })) }, 2860: (e, t, i) => { "use strict"; i.r(t), i.d(t, { SnippetController2: () => m }); var n = i(5976), o = i(6830), r = i(4314), s = i(3860), a = i(9102), l = i(9599), d = i(8819), c = i(3557), h = i(781), u = i(3580), g = function(e, t) { return function(i, n) { t(i, n, e) } }; const p = { overwriteBefore: 0, overwriteAfter: 0, undoStopBefore: !0, undoStopAfter: !0, adjustWhitespace: !0, clipboardText: void 0, overtypingCapturer: void 0 }; let m = class e { constructor(t, i, o) { this._editor = t, this._logService = i, this._snippetListener = new n .SL, this._modelVersionId = -1, this._inSnippet = e.InSnippetMode.bindTo( o), this._hasNextTabstop = e.HasNextTabstop.bindTo(o), this._hasPrevTabstop = e.HasPrevTabstop.bindTo(o) } static get(t) { return t.getContribution(e.ID) } dispose() { var e; this._inSnippet.reset(), this._hasPrevTabstop.reset(), this._hasNextTabstop .reset(), null === (e = this._session) || void 0 === e || e.dispose(), this._snippetListener.dispose() } insert(e, t) { try { this._doInsert(e, void 0 === t ? p : Object.assign(Object.assign({}, p), t)) } catch (t) { this.cancel(), this._logService.error(t), this._logService.error( "snippet_error"), this._logService.error("insert_template=", e), this._logService.error("existing_template=", this._session ? this._session ._logInfo() : "") } } _doInsert(e, t) { this._editor.hasModel() && (this._snippetListener.clear(), t.undoStopBefore && this._editor.getModel().pushStackElement(), this._session ? this._session .merge(e, t) : (this._modelVersionId = this._editor.getModel().getAlternativeVersionId(), this._session = new h.l(this._editor, e, t), this._session.insert() ), t.undoStopAfter && this._editor.getModel().pushStackElement(), this._updateState(), this._snippetListener.add(this._editor.onDidChangeModelContent( (e => e.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.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()) return void(this._currentChoice = void 0); const { choice: e } = this._session; if (e) { if (this._currentChoice !== e) { this._currentChoice = e, this._editor.setSelections(this._editor.getSelections() .map((e => s.Y.fromPositions(e.getStartPosition())))); const [t] = e.options; (0, l.i5)(this._editor, e.options.map(((e, i) => ({ kind: 13, label: e.value, insertText: e.value, sortText: "a".repeat(i + 1), range: r.e.fromPositions(this._editor.getPosition(), this._editor .getPosition().delta(0, t.value.length)) })))) } } else this._currentChoice = void 0 } finish() { for (; this._inSnippet.get();) this.next() } cancel(e = !1) { var t; this._inSnippet.reset(), this._hasPrevTabstop.reset(), this._hasNextTabstop .reset(), this._snippetListener.clear(), null === (t = this._session) || void 0 === t || t.dispose(), this._session = void 0, this._modelVersionId = - 1, e && this._editor.setSelections([this._editor.getSelection()]) } prev() { this._session && this._session.prev(), this._updateState() } next() { this._session && this._session.next(), this._updateState() } isInSnippet() { return Boolean(this._inSnippet.get()) } }; m.ID = "snippetController2", m.InSnippetMode = new d.uy("inSnippetMode", ! 1, (0, u.N)("inSnippetMode", "Whether the editor in current in snippet mode")), m.HasNextTabstop = new d.uy("hasNextTabstop", !1, (0, u.N)("hasNextTabstop", "Whether there is a next tab stop when in snippet mode")), m.HasPrevTabstop = new d.uy("hasPrevTabstop", !1, (0, u.N)("hasPrevTabstop", "Whether there is a previous tab stop when in snippet mode")), m = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([g(1, c.VZ), g(2, d.i6)], m), (0, o._K)(m.ID, m); const f = o._l.bindToContribution(m.get); (0, o.fK)(new f({ id: "jumpToNextSnippetPlaceholder", precondition: d.Ao.and(m.InSnippetMode, m.HasNextTabstop), handler: e => e.next(), kbOpts: { weight: 130, kbExpr: a.u.editorTextFocus, primary: 2 } })), (0, o.fK)(new f({ id: "jumpToPrevSnippetPlaceholder", precondition: d.Ao.and(m.InSnippetMode, m.HasPrevTabstop), handler: e => e.prev(), kbOpts: { weight: 130, kbExpr: a.u.editorTextFocus, primary: 1026 } })), (0, o.fK)(new f({ id: "leaveSnippet", precondition: m.InSnippetMode, handler: e => e.cancel(!0), kbOpts: { weight: 130, kbExpr: a.u.editorTextFocus, primary: 9, secondary: [1033] } })), (0, o.fK)(new f({ id: "acceptSnippet", precondition: m.InSnippetMode, handler: e => e.finish() })) }, 3472: (e, t, i) => { "use strict"; i.d(t, { xv: () => r, Vm: () => a, Lv: () => l, Yj: () => p }); class n { constructor() { this.value = "", this.pos = 0 } static isDigitCharacter(e) { return e >= 48 && e <= 57 } static isVariableCharacter(e) { return 95 === e || e >= 97 && e <= 122 || e >= 65 && e <= 90 } text(e) { this.value = e, this.pos = 0 } tokenText(e) { return this.value.substr(e.pos, e.len) } next() { if (this.pos >= this.value.length) return { type: 14, pos: this.pos, len: 0 }; let e, t = this.pos, i = 0, o = this.value.charCodeAt(t); if (e = n._table[o], "number" == typeof e) return this.pos += 1, { type: e, pos: t, len: 1 }; if (n.isDigitCharacter(o)) { e = 8; do { i += 1, o = this.value.charCodeAt(t + i) } while (n.isDigitCharacter(o)); return this.pos += i, { type: e, pos: t, len: i } } if (n.isVariableCharacter(o)) { e = 9; do { o = this.value.charCodeAt(t + ++i) } while (n.isVariableCharacter(o) || n.isDigitCharacter(o)); return this.pos += i, { type: e, pos: t, len: i } } e = 10; do { i += 1, o = this.value.charCodeAt(t + i) } while (!isNaN(o) && void 0 === n._table[o] && !n.isDigitCharacter(o) && !n.isVariableCharacter(o)); return this.pos += i, { type: e, pos: t, len: i } } } n._table = { 36: 0, 58: 1, 44: 2, 123: 3, 125: 4, 92: 5, 47: 6, 124: 7, 43: 11, 45: 12, 63: 13 }; class o { constructor() { this._children = [] } appendChild(e) { return e instanceof r && this._children[this._children.length - 1] instanceof r ? this._children[this._children.length - 1].value += e.value : (e.parent = this, this._children.push(e)), this } replace(e, t) { const { parent: i } = e, n = i.children.indexOf(e), o = i.children.slice(0); o.splice(n, 1, ...t), i._children = o, function e(t, i) { for (const n of t) n.parent = i, e(n.children, n) }(t, i) } get children() { return this._children } get snippet() { let e = this; for (;;) { if (!e) return; if (e instanceof g) return e; e = e.parent } } toString() { return this.children.reduce(((e, t) => e + t.toString()), "") } len() { return 0 } } class r extends o { constructor(e) { super(), this.value = e } toString() { return this.value } len() { return this.value.length } clone() { return new r(this.value) } } class s extends o {} class a extends s { constructor(e) { super(), this.index = e } static compareByIndex(e, t) { return e.index === t.index ? 0 : e.isFinalTabstop ? 1 : t.isFinalTabstop || e.index < t.index ? -1 : e.index > t.index ? 1 : 0 } get isFinalTabstop() { return 0 === this.index } get choice() { return 1 === this._children.length && this._children[0] instanceof l ? this._children[0] : void 0 } clone() { let e = new a(this.index); return this.transform && (e.transform = this.transform.clone()), e._children = this.children.map((e => e.clone())), e } } class l extends o { constructor() { super(...arguments), this.options = [] } appendChild(e) { return e instanceof r && (e.parent = this, this.options.push(e)), this } toString() { return this.options[0].value } len() { return this.options[0].len() } clone() { let e = new l; return this.options.forEach(e.appendChild, e), e } } class d extends o { constructor() { super(...arguments), this.regexp = new RegExp("") } resolve(e) { const t = this; let i = !1, n = e.replace(this.regexp, (function() { return i = !0, t._replace(Array.prototype.slice.call(arguments, 0, - 2)) })); return !i && this._children.some((e => e instanceof c && Boolean(e.elseValue))) && (n = this._replace([])), n } _replace(e) { let t = ""; for (const i of this._children) if (i instanceof c) { let n = e[i.index] || ""; n = i.resolve(n), t += n } else t += i.toString(); return t } toString() { return "" } clone() { let e = new d; return e.regexp = new RegExp(this.regexp.source, (this.regexp.ignoreCase ? "i" : "") + (this.regexp.global ? "g" : "")), e._children = this.children .map((e => e.clone())), e } } class c extends o { constructor(e, t, i, n) { super(), this.index = e, this.shorthandName = t, this.ifValue = i, this.elseValue = n } resolve(e) { return "upcase" === this.shorthandName ? e ? e.toLocaleUpperCase() : "" : "downcase" === this.shorthandName ? e ? e.toLocaleLowerCase() : "" : "capitalize" === this.shorthandName ? e ? e[0].toLocaleUpperCase() + e.substr(1) : "" : "pascalcase" === this.shorthandName ? e ? this._toPascalCase( e) : "" : "camelcase" === this.shorthandName ? e ? this._toCamelCase( e) : "" : Boolean(e) && "string" == typeof this.ifValue ? this.ifValue : Boolean(e) || "string" != typeof this.elseValue ? e || "" : this.elseValue } _toPascalCase(e) { const t = e.match(/[a-z0-9]+/gi); return t ? t.map((e => e.charAt(0).toUpperCase() + e.substr(1).toLowerCase())) .join("") : e } _toCamelCase(e) { const t = e.match(/[a-z0-9]+/gi); return t ? t.map(((e, t) => 0 === t ? e.toLowerCase() : e.charAt(0).toUpperCase() + e.substr(1).toLowerCase())).join("") : e } clone() { return new c(this.index, this.shorthandName, this.ifValue, this.elseValue) } } class h extends s { constructor(e) { super(), this.name = e } resolve(e) { let t = e.resolve(this); return this.transform && (t = this.transform.resolve(t || "")), void 0 !== t && (this._children = [new r(t)], !0) } clone() { const e = new h(this.name); return this.transform && (e.transform = this.transform.clone()), e._children = this.children.map((e => e.clone())), e } } function u(e, t) { const i = [...e]; for (; i.length > 0;) { const e = i.shift(); if (!t(e)) break; i.unshift(...e.children) } } class g extends o {get placeholderInfo() { if (!this._placeholders) { let e, t = []; this.walk((function(i) { return i instanceof a && (t.push(i), e = !e || e.index < i.index ? i : e), !0 })), this._placeholders = { all: t, last: e } } return this._placeholders } get placeholders() { const { all: e } = this.placeholderInfo; return e } offset(e) { let t = 0, i = !1; return this.walk((n => n === e ? (i = !0, !1) : (t += n.len(), !0))), i ? t : -1 } fullLen(e) { let t = 0; return u([e], (e => (t += e.len(), !0))), t } enclosingPlaceholders(e) { let t = [], { parent: i } = e; for (; i;) i instanceof a && t.push(i), i = i.parent; return t } resolveVariables(e) { return this.walk((t => (t instanceof h && t.resolve(e) && (this._placeholders = void 0), !0))), this } appendChild(e) { return this._placeholders = void 0, super.appendChild(e) } replace(e, t) { return this._placeholders = void 0, super.replace(e, t) } clone() { let e = new g; return this._children = this.children.map((e => e.clone())), e } walk(e) { u(this.children, e) } } class p { constructor() { this._scanner = new n, this._token = { type: 14, pos: 0, len: 0 } } static escape(e) { return e.replace(/\$|}|\\/g, "\\$&") } static guessNeedsClipboard(e) { return /\${?CLIPBOARD/.test(e) } parse(e, t, i) { this._scanner.text(e), this._token = this._scanner.next(); const n = new g; for (; this._parse(n);); const o = new Map, r = []; let s = 0; n.walk((e => (e instanceof a && (s += 1, e.isFinalTabstop ? o.set(0, void 0) : !o.has(e.index) && e.children.length > 0 ? o.set(e.index, e.children) : r.push(e)), !0))); for (const e of r) { const t = o.get(e.index); if (t) { const i = new a(e.index); i.transform = e.transform; for (const e of t) i.appendChild(e.clone()); n.replace(e, [i]) } } return i || (i = s > 0 && t), !o.has(0) && i && n.appendChild(new a(0)), n } _accept(e, t) { if (void 0 === e || this._token.type === e) { let e = !t || this._scanner.tokenText(this._token); return this._token = this._scanner.next(), e } return !1 } _backTo(e) { return this._scanner.pos = e.pos + e.len, this._token = e, !1 } _until(e) { const t = this._token; for (; this._token.type !== e;) { if (14 === this._token.type) return !1; if (5 === this._token.type) { const e = this._scanner.next(); if (0 !== e.type && 4 !== e.type && 5 !== e.type) return !1 } this._token = this._scanner.next() } const i = this._scanner.value.substring(t.pos, this._token.pos).replace( /\\(\$|}|\\)/g, "$1"); return this._token = this._scanner.next(), i } _parse(e) { return this._parseEscaped(e) || this._parseTabstopOrVariableName(e) || this._parseComplexPlaceholder(e) || this._parseComplexVariable(e) || this._parseAnything(e) } _parseEscaped(e) { let t; return !!(t = this._accept(5, !0)) && (t = this._accept(0, !0) || this ._accept(4, !0) || this._accept(5, !0) || t, e.appendChild(new r(t)), ! 0) } _parseTabstopOrVariableName(e) { let t; const i = this._token; return this._accept(0) && (t = this._accept(9, !0) || this._accept(8, ! 0)) ? (e.appendChild(/^\d+$/.test(t) ? new a(Number(t)) : new h(t)), ! 0) : this._backTo(i) } _parseComplexPlaceholder(e) { let t; const i = this._token; if (!(this._accept(0) && this._accept(3) && (t = this._accept(8, !0)))) return this._backTo(i); const n = new a(Number(t)); if (this._accept(1)) for (;;) { if (this._accept(4)) return e.appendChild(n), !0; if (!this._parse(n)) return e.appendChild(new r("${" + t + ":")), n.children .forEach(e.appendChild, e), !0 } else { if (!(n.index > 0 && this._accept(7))) return this._accept(6) ? this ._parseTransform(n) ? (e.appendChild(n), !0) : (this._backTo(i), ! 1) : this._accept(4) ? (e.appendChild(n), !0) : this._backTo(i); { const t = new l; for (;;) { if (this._parseChoiceElement(t)) { if (this._accept(2)) continue; if (this._accept(7) && (n.appendChild(t), this._accept(4))) return e.appendChild(n), !0 } return this._backTo(i), !1 } } } } _parseChoiceElement(e) { const t = this._token, i = []; for (; 2 !== this._token.type && 7 !== this._token.type;) { let e; if (e = (e = this._accept(5, !0)) ? this._accept(2, !0) || this._accept( 7, !0) || this._accept(5, !0) || e : this._accept(void 0, !0), !e) return this._backTo(t), !1; i.push(e) } return 0 === i.length ? (this._backTo(t), !1) : (e.appendChild(new r(i .join(""))), !0) } _parseComplexVariable(e) { let t; const i = this._token; if (!(this._accept(0) && this._accept(3) && (t = this._accept(9, !0)))) return this._backTo(i); const n = new h(t); if (!this._accept(1)) return this._accept(6) ? this._parseTransform(n) ? (e.appendChild(n), !0) : (this._backTo(i), !1) : this._accept(4) ? ( e.appendChild(n), !0) : this._backTo(i); for (;;) { if (this._accept(4)) return e.appendChild(n), !0; if (!this._parse(n)) return e.appendChild(new r("${" + t + ":")), n.children .forEach(e.appendChild, e), !0 } } _parseTransform(e) { let t = new d, i = "", n = ""; for (; !this._accept(6);) { let e; if (e = this._accept(5, !0)) e = this._accept(6, !0) || e, i += e; else { if (14 === this._token.type) return !1; i += this._accept(void 0, !0) } } for (; !this._accept(6);) { let e; if (e = this._accept(5, !0)) e = this._accept(5, !0) || this._accept( 6, !0) || e, t.appendChild(new r(e)); else if (!this._parseFormatString(t) && !this._parseAnything(t)) return !1 } for (; !this._accept(4);) { if (14 === this._token.type) return !1; n += this._accept(void 0, !0) } try { t.regexp = new RegExp(i, n) } catch (e) { return !1 } return e.transform = t, !0 } _parseFormatString(e) { const t = this._token; if (!this._accept(0)) return !1; let i = !1; this._accept(3) && (i = !0); let n = this._accept(8, !0); if (!n) return this._backTo(t), !1; if (!i) return e.appendChild(new c(Number(n))), !0; if (this._accept(4)) return e.appendChild(new c(Number(n))), !0; if (!this._accept(1)) return this._backTo(t), !1; if (this._accept(6)) { let i = this._accept(9, !0); return i && this._accept(4) ? (e.appendChild(new c(Number(n), i)), !0) : (this._backTo(t), !1) } if (this._accept(11)) { let t = this._until(4); if (t) return e.appendChild(new c(Number(n), void 0, t, void 0)), !0 } else if (this._accept(12)) { let t = this._until(4); if (t) return e.appendChild(new c(Number(n), void 0, void 0, t)), !0 } else if (this._accept(13)) { let t = this._until(1); if (t) { let i = this._until(4); if (i) return e.appendChild(new c(Number(n), void 0, t, i)), !0 } } else { let t = this._until(4); if (t) return e.appendChild(new c(Number(n), void 0, void 0, t)), !0 } return this._backTo(t), !1 } _parseAnything(e) { return 14 !== this._token.type && (e.appendChild(new r(this._scanner.tokenText( this._token))), this._accept(void 0), !0) } } }, 781: (e, t, i) => { "use strict"; i.d(t, { l: () => Q }); var n = i(9488), o = i(5976), r = i(7295), s = i(3379), a = i.n(s), l = i(7795), d = i.n(l), c = i(569), h = i.n(c), u = i(3565), g = i.n(u), p = i(9216), m = i.n(p), f = i(4589), _ = i.n(f), b = i(8894), v = {}; v.styleTagTransform = _(), v.setAttributes = g(), v.insert = h().bind( null, "head"), v.domAPI = d(), v.insertStyleElement = m(), a()(b.Z, v), b.Z && b.Z.locals && b.Z.locals; var w = i(9386), C = i(4314), y = i(3860), S = i(6281), x = i(382), k = i(2065), L = i(3472), N = i(3580), D = i(8721), E = i(5935), I = i(3831), T = i(666); const M = "code-workspace"; function A(e) { const t = e; return "string" == typeof(null == t ? void 0 : t.id) && T.o.isUri(t.uri) } var R = i(8843); const O = new Uint8Array(16), P = []; for (let e = 0; e < 256; e++) P.push(e.toString(16).padStart(2, "0")); let F; F = "object" == typeof crypto && "function" == typeof crypto.getRandomValues ? crypto.getRandomValues.bind(crypto) : function(e) { for (let t = 0; t < e.length; t++) e[t] = Math.floor(256 * Math.random()); return e }; class B { constructor(e) { this._delegates = e } resolve(e) { for (const t of this._delegates) { let i = t.resolve(e); if (void 0 !== i) return i } } } class W { constructor(e, t, i, n) { this._model = e, this._selection = t, this._selectionIdx = i, this._overtypingCapturer = n } resolve(e) { const { name: t } = e; if ("SELECTION" === t || "TM_SELECTED_TEXT" === t) { let t = this._model.getValueInRange(this._selection) || void 0, i = this._selection.startLineNumber !== this._selection.endLineNumber; if (!t && this._overtypingCapturer) { const e = this._overtypingCapturer.getLastOvertypedInfo(this._selectionIdx); e && (t = e.value, i = e.multiline) } if (t && i && e.snippet) { const i = this._model.getLineContent(this._selection.startLineNumber), n = (0, r.V8)(i, 0, this._selection.startColumn - 1); let o = n; e.snippet.walk((t => t !== e && (t instanceof L.xv && (o = (0, r.V8) ((0, r.uq)(t.value).pop())), !0))); const s = (0, r.Mh)(o, n); t = t.replace(/(\r\n|\r|\n)(.*)/g, ((e, t, i) => `${t}${o.substr(s)}${i}`)) } return t } if ("TM_CURRENT_LINE" === t) return this._model.getLineContent(this._selection .positionLineNumber); if ("TM_CURRENT_WORD" === t) { const e = this._model.getWordAtPosition({ lineNumber: this._selection.positionLineNumber, column: this._selection.positionColumn }); return e && e.word || void 0 } return "TM_LINE_INDEX" === t ? String(this._selection.positionLineNumber - 1) : "TM_LINE_NUMBER" === t ? String(this._selection.positionLineNumber) : void 0 } } class z { constructor(e, t) { this._labelService = e, this._model = t } resolve(e) { const { name: t } = e; if ("TM_FILENAME" === t) return D.EZ(this._model.uri.fsPath); if ("TM_FILENAME_BASE" === t) { const e = D.EZ(this._model.uri.fsPath), t = e.lastIndexOf("."); return t <= 0 ? e : e.slice(0, t) } return "TM_DIRECTORY" === t && this._labelService ? "." === D.XX(this._model .uri.fsPath) ? "" : this._labelService.getUriLabel((0, E.XX)(this._model .uri)) : "TM_FILEPATH" === t && this._labelService ? this._labelService .getUriLabel(this._model.uri) : "RELATIVE_FILEPATH" === t && this._labelService ? this._labelService.getUriLabel(this._model.uri, { relative: !0, noPrefix: !0 }) : void 0 } } class V { constructor(e, t, i, n) { this._readClipboardText = e, this._selectionIdx = t, this._selectionCount = i, this._spread = n } resolve(e) { if ("CLIPBOARD" !== e.name) return; const t = this._readClipboardText(); if (t) { if (this._spread) { const e = t.split(/\r\n|\n|\r/).filter((e => !(0, r.m5)(e))); if (e.length === this._selectionCount) return e[this._selectionIdx] } return t } } } class H { constructor(e, t) { this._model = e, this._selection = t } resolve(e) { const { name: t } = e, i = this._model.getLanguageIdAtPosition(this._selection.selectionStartLineNumber, this._selection.selectionStartColumn), n = I.zu.getComments(i); if (n) return "LINE_COMMENT" === t ? n.lineCommentToken || void 0 : "BLOCK_COMMENT_START" === t ? n.blockCommentStartToken || void 0 : "BLOCK_COMMENT_END" === t && n.blockCommentEndToken || void 0 } } class U { constructor() { this._date = new Date } resolve(e) { const { name: t } = e; return "CURRENT_YEAR" === t ? String(this._date.getFullYear()) : "CURRENT_YEAR_SHORT" === t ? String(this._date.getFullYear()).slice(- 2) : "CURRENT_MONTH" === t ? String(this._date.getMonth().valueOf() + 1).padStart(2, "0") : "CURRENT_DATE" === t ? String(this._date.getDate() .valueOf()).padStart(2, "0") : "CURRENT_HOUR" === t ? String(this._date .getHours().valueOf()).padStart(2, "0") : "CURRENT_MINUTE" === t ? String(this._date.getMinutes().valueOf()).padStart(2, "0") : "CURRENT_SECOND" === t ? String(this._date.getSeconds().valueOf()).padStart( 2, "0") : "CURRENT_DAY_NAME" === t ? U.dayNames[this._date.getDay()] : "CURRENT_DAY_NAME_SHORT" === t ? U.dayNamesShort[this._date.getDay()] : "CURRENT_MONTH_NAME" === t ? U.monthNames[this._date.getMonth()] : "CURRENT_MONTH_NAME_SHORT" === t ? U.monthNamesShort[this._date.getMonth()] : "CURRENT_SECONDS_UNIX" === t ? String(Math.floor(this._date.getTime() / 1e3)) : void 0 } } U.dayNames = [N.N("Sunday", "Sunday"), N.N("Monday", "Monday"), N.N( "Tuesday", "Tuesday"), N.N("Wednesday", "Wednesday"), N.N("Thursday", "Thursday"), N.N("Friday", "Friday"), N.N("Saturday", "Saturday")], U.dayNamesShort = [ N.N("SundayShort", "Sun"), N.N("MondayShort", "Mon"), N.N( "TuesdayShort", "Tue"), N.N("WednesdayShort", "Wed"), N.N( "ThursdayShort", "Thu"), N.N("FridayShort", "Fri"), N.N( "SaturdayShort", "Sat") ], U.monthNames = [N.N("January", "January"), N.N("February", "February"), N.N("March", "March"), N.N("April", "April"), N.N("May", "May"), N.N( "June", "June"), N.N("July", "July"), N.N("August", "August"), N.N( "September", "September"), N.N("October", "October"), N.N("November", "November"), N.N("December", "December") ], U.monthNamesShort = [N.N("JanuaryShort", "Jan"), N.N("FebruaryShort", "Feb"), N.N("MarchShort", "Mar"), N.N("AprilShort", "Apr"), N.N( "MayShort", "May"), N.N("JuneShort", "Jun"), N.N("JulyShort", "Jul"), N.N("AugustShort", "Aug"), N.N("SeptemberShort", "Sep"), N.N( "OctoberShort", "Oct"), N.N("NovemberShort", "Nov"), N.N( "DecemberShort", "Dec") ]; class j { constructor(e) { this._workspaceService = e } resolve(e) { if (!this._workspaceService) return; const t = function(e) { return e.configuration ? { id: e.id, configPath: e.configuration } : 1 === e.folders.length ? { id: e.id, uri: e.folders[0].uri } : void 0 }(this._workspaceService.getWorkspace()); return t ? "WORKSPACE_NAME" === e.name ? this._resolveWorkspaceName(t) : "WORKSPACE_FOLDER" === e.name ? this._resoveWorkspacePath(t) : void 0 : void 0 } _resolveWorkspaceName(e) { if (A(e)) return D.EZ(e.uri.path); let t = D.EZ(e.configPath.path); return t.endsWith(M) && (t = t.substr(0, t.length - M.length - 1)), t } _resoveWorkspacePath(e) { if (A(e)) return (0, R.D)(e.uri.fsPath); let t = D.EZ(e.configPath.path), i = e.configPath.fsPath; return i.endsWith(t) && (i = i.substr(0, i.length - t.length - 1)), i ? (0, R.D)(i) : "/" } } class K { resolve(e) { const { name: t } = e; return "RANDOM" === t ? Math.random().toString().slice(-6) : "RANDOM_HEX" === t ? Math.random().toString(16).slice(-6) : "UUID" === t ? function() { F(O), O[6] = 15 & O[6] | 64, O[8] = 63 & O[8] | 128; let e = 0, t = ""; return t += P[O[e++]], t += P[O[e++]], t += P[O[e++]], t += P[O[e++]], t += "-", t += P[O[e++]], t += P[O[e++]], t += "-", t += P[O[e++]], t += P[O[e++]], t += "-", t += P[O[e++]], t += P[O[e++]], t += "-", t += P[O[e++]], t += P[O[e++]], t += P[O[e++]], t += P[O[e++]], t += P[O[e++]], t += P[O[e++]], t }() : void 0 } } var $ = i(7781), q = i(3910), Z = i(4349); (0, $.Ic)(((e, t) => { function i(t) { const i = e.getColor(t); return i ? i.toString() : "transparent" } t.addRule( `.monaco-editor .snippet-placeholder { background-color: ${i(q.u2)}; outline-color: ${i(q.Pk)}; }` ), t.addRule( `.monaco-editor .finish-snippet-placeholder { background-color: ${i(q.I1)}; outline-color: ${i(q.U6)}; }` ) })); class G { constructor(e, t, i, o) { this._editor = e, this._snippet = t, this._offset = i, this._snippetLineLeadingWhitespace = o, this._nestingLevel = 1, this._placeholderGroups = (0, n.vM)(t.placeholders, L.Vm.compareByIndex), this._placeholderGroupsIdx = -1 } dispose() { this._placeholderDecorations && this._editor.deltaDecorations([...this ._placeholderDecorations.values() ], []), this._placeholderGroups.length = 0 } _initDecorations() { if (this._placeholderDecorations) return; this._placeholderDecorations = new Map; const e = this._editor.getModel(); this._editor.changeDecorations((t => { for (const i of this._snippet.placeholders) { const n = this._snippet.offset(i), o = this._snippet.fullLen(i), r = C.e.fromPositions(e.getPositionAt(this._offset + n), e.getPositionAt( this._offset + n + o)), s = i.isFinalTabstop ? G._decor.inactiveFinal : G._decor.inactive, a = t.addDecoration(r, s); this._placeholderDecorations.set(i, a) } })) } move(e) { if (!this._editor.hasModel()) return []; if (this._initDecorations(), this._placeholderGroupsIdx >= 0) { let e = []; for (const t of this._placeholderGroups[this._placeholderGroupsIdx]) if (t.transform) { const i = this._placeholderDecorations.get(t), n = this._editor.getModel().getDecorationRange(i), o = this._editor.getModel().getValueInRange(n), r = t.transform.resolve(o).split(/\r\n|\r|\n/); for (let e = 1; e < r.length; e++) r[e] = this._editor.getModel().normalizeIndentation( this._snippetLineLeadingWhitespace + r[e]); e.push(w.h.replace(n, r.join(this._editor.getModel().getEOL()))) } e.length > 0 && this._editor.executeEdits( "snippet.placeholderTransform", e) } let t = !1; !0 === e && this._placeholderGroupsIdx < this._placeholderGroups.length - 1 ? (this._placeholderGroupsIdx += 1, t = !0) : !1 === e && this._placeholderGroupsIdx > 0 && (this._placeholderGroupsIdx -= 1, t = !0); const i = this._editor.getModel().changeDecorations((e => { const i = new Set, n = []; for (const o of this._placeholderGroups[this._placeholderGroupsIdx]) { const r = this._placeholderDecorations.get(o), s = this._editor.getModel().getDecorationRange(r); n.push(new y.Y(s.startLineNumber, s.startColumn, s.endLineNumber, s.endColumn)), t = t && this._hasPlaceholderBeenCollapsed(o), e .changeDecorationOptions(r, o.isFinalTabstop ? G._decor.activeFinal : G._decor.active), i.add(o); for (const t of this._snippet.enclosingPlaceholders(o)) { const n = this._placeholderDecorations.get(t); e.changeDecorationOptions(n, t.isFinalTabstop ? G._decor.activeFinal : G._decor.active), i.add(t) } } for (const [t, n] of this._placeholderDecorations) i.has(t) || e.changeDecorationOptions( n, t.isFinalTabstop ? G._decor.inactiveFinal : G._decor.inactive ); return n })); return t ? this.move(e) : null != i ? i : [] } _hasPlaceholderBeenCollapsed(e) { let t = e; for (; t;) { if (t instanceof L.Vm) { const e = this._placeholderDecorations.get(t); if (this._editor.getModel().getDecorationRange(e).isEmpty() && t.toString() .length > 0) return !0 } t = t.parent } return !1 } get isAtFirstPlaceholder() { return this._placeholderGroupsIdx <= 0 || 0 === this._placeholderGroups .length } get isAtLastPlaceholder() { return this._placeholderGroupsIdx === this._placeholderGroups.length - 1 } get hasPlaceholder() { return this._snippet.placeholders.length > 0 } computePossibleSelections() { const e = new Map; for (const t of this._placeholderGroups) { let i; for (const n of t) { if (n.isFinalTabstop) break; i || (i = [], e.set(n.index, i)); const t = this._placeholderDecorations.get(n), o = this._editor.getModel().getDecorationRange(t); if (!o) { e.delete(n.index); break } i.push(o) } } return e } get choice() { return this._placeholderGroups[this._placeholderGroupsIdx][0].choice } merge(e) { const t = this._editor.getModel(); this._nestingLevel *= 10, this._editor.changeDecorations((i => { for (const n of this._placeholderGroups[this._placeholderGroupsIdx]) { const o = e.shift(); console.assert(!o._placeholderDecorations); const r = o._snippet.placeholderInfo.last.index; for (const e of o._snippet.placeholderInfo.all) e.isFinalTabstop ? e.index = n.index + (r + 1) / this._nestingLevel : e.index = n.index + e.index / this._nestingLevel; this._snippet.replace(n, o._snippet.children); const s = this._placeholderDecorations.get(n); i.removeDecoration(s), this._placeholderDecorations.delete(n); for (const e of o._snippet.placeholders) { const n = o._snippet.offset(e), r = o._snippet.fullLen(e), s = C.e.fromPositions(t.getPositionAt(o._offset + n), t.getPositionAt( o._offset + n + r)), a = i.addDecoration(s, G._decor.inactive); this._placeholderDecorations.set(e, a) } } this._placeholderGroups = (0, n.vM)(this._snippet.placeholders, L.Vm .compareByIndex) })) } } G._decor = { active: S.qx.register({ description: "snippet-placeholder-1", stickiness: 0, className: "snippet-placeholder" }), inactive: S.qx.register({ description: "snippet-placeholder-2", stickiness: 1, className: "snippet-placeholder" }), activeFinal: S.qx.register({ description: "snippet-placeholder-3", stickiness: 1, className: "finish-snippet-placeholder" }), inactiveFinal: S.qx.register({ description: "snippet-placeholder-4", stickiness: 1, className: "finish-snippet-placeholder" }) }; const Y = { overwriteBefore: 0, overwriteAfter: 0, adjustWhitespace: !0, clipboardText: void 0, overtypingCapturer: void 0 }; class Q { constructor(e, t, i = Y) { this._templateMerges = [], this._snippets = [], this._editor = e, this ._template = t, this._options = i } static adjustWhitespace(e, t, i, n, o) { const s = e.getLineContent(t.lineNumber), a = (0, r.V8)(s, 0, t.column - 1); let l; return i.walk((t => { if (!(t instanceof L.xv) || t.parent instanceof L.Lv) return !0; const o = t.value.split(/\r\n|\r|\n/); if (n) { const n = i.offset(t); if (0 === n) o[0] = e.normalizeIndentation(o[0]); else { l = null != l ? l : i.toString(); let t = l.charCodeAt(n - 1); 10 !== t && 13 !== t || (o[0] = e.normalizeIndentation(a + o[0])) } for (let t = 1; t < o.length; t++) o[t] = e.normalizeIndentation( a + o[t]) } const r = o.join(e.getEOL()); return r !== t.value && (t.parent.replace(t, [new L.xv(r)]), l = void 0), !0 })), a } static adjustSelection(e, t, i, n) { if (0 !== i || 0 !== n) { const { positionLineNumber: o, positionColumn: r } = t, s = r - i, a = r + n, l = e.validateRange({ startLineNumber: o, startColumn: s, endLineNumber: o, endColumn: a }); t = y.Y.createWithDirection(l.startLineNumber, l.startColumn, l.endLineNumber, l.endColumn, t.getDirection()) } return t } static createEditsAndSnippets(e, t, i, n, o, r, s, a) { const l = [], d = []; if (!e.hasModel()) return { edits: l, snippets: d }; const c = e.getModel(), h = e.invokeWithinContext((e => e.get(x.ec, k.jt))), u = e.invokeWithinContext((e => new z(e.get(Z.e, k.jt), c))), g = () => s; let p = 0, m = c.getValueInRange(Q.adjustSelection(c, e.getSelection(), i, 0)), f = c.getValueInRange(Q.adjustSelection(c, e.getSelection(), 0, n)), _ = c.getLineFirstNonWhitespaceColumn(e.getSelection().positionLineNumber); const b = e.getSelections().map(((e, t) => ({ selection: e, idx: t }))).sort(((e, t) => C.e.compareRangesUsingStarts(e.selection, t.selection))); for (const { selection: s, idx: v } of b) { let C = Q.adjustSelection(c, s, i, 0), y = Q.adjustSelection(c, s, 0, n); m !== c.getValueInRange(C) && (C = s), f !== c.getValueInRange(y) && (y = s); const S = s.setStartPosition(C.startLineNumber, C.startColumn).setEndPosition( y.endLineNumber, y.endColumn), x = (new L.Yj).parse(t, !0, o), k = S.getStartPosition(), N = Q.adjustWhitespace(c, k, x, r || v > 0 && _ !== c.getLineFirstNonWhitespaceColumn( s.positionLineNumber), !0); x.resolveVariables(new B([u, new V(g, v, b.length, "spread" === e.getOption( 70)), new W(c, s, v, a), new H(c, s), new U, new j(h), new K])); const D = c.getOffsetAt(k) + p; p += x.toString().length - c.getValueLengthInRange(S), l[v] = w.h.replace( S, x.toString()), l[v].identifier = { major: v, minor: 0 }, d[v] = new G(e, x, D, N) } return { edits: l, snippets: d } } dispose() { (0, o.B9)(this._snippets) } _logInfo() { return `template="${this._template}", merged_templates="${this._templateMerges.join(" -> ")}"` } insert() { if (!this._editor.hasModel()) return; const { edits: e, snippets: t } = Q.createEditsAndSnippets(this._editor, this._template, this._options .overwriteBefore, this._options.overwriteAfter, !1, this._options.adjustWhitespace, this._options.clipboardText, this._options.overtypingCapturer); this._snippets = t, this._editor.executeEdits("snippet", e, (e => this ._snippets[0].hasPlaceholder ? this._move(!0) : e.filter((e => !!e.identifier)) .map((e => y.Y.fromPositions(e.range.getEndPosition()))))), this._editor .revealRange(this._editor.getSelections()[0]) } merge(e, t = Y) { if (!this._editor.hasModel()) return; this._templateMerges.push([this._snippets[0]._nestingLevel, this._snippets[ 0]._placeholderGroupsIdx, e]); const { edits: i, snippets: n } = Q.createEditsAndSnippets(this._editor, e, t.overwriteBefore, t.overwriteAfter, ! 0, t.adjustWhitespace, t.clipboardText, t.overtypingCapturer); this._editor.executeEdits("snippet", i, (e => { for (const e of this._snippets) e.merge(n); return console.assert(0 === n.length), this._snippets[0].hasPlaceholder ? this._move(void 0) : e.filter((e => !!e.identifier)).map((e => y.Y .fromPositions(e.range.getEndPosition()))) })) } next() { const e = this._move(!0); this._editor.setSelections(e), this._editor.revealPositionInCenterIfOutsideViewport( e[0].getPosition()) } prev() { const e = this._move(!1); this._editor.setSelections(e), this._editor.revealPositionInCenterIfOutsideViewport( e[0].getPosition()) } _move(e) { const t = []; for (const i of this._snippets) { const n = i.move(e); t.push(...n) } return t } get isAtFirstPlaceholder() { return this._snippets[0].isAtFirstPlaceholder } get isAtLastPlaceholder() { return this._snippets[0].isAtLastPlaceholder } get hasPlaceholder() { return this._snippets[0].hasPlaceholder } get choice() { return this._snippets[0].choice } isSelectionWithinPlaceholders() { if (!this.hasPlaceholder) return !1; const e = this._editor.getSelections(); if (e.length < this._snippets.length) return !1; let t = new Map; for (const i of this._snippets) { const n = i.computePossibleSelections(); if (0 === t.size) for (const [i, o] of n) { o.sort(C.e.compareRangesUsingStarts); for (const n of e) if (o[0].containsRange(n)) { t.set(i, []); break } } if (0 === t.size) return !1; t.forEach(((e, t) => { e.push(...n.get(t)) })) } e.sort(C.e.compareRangesUsingStarts); for (let [i, n] of t) if (n.length === e.length) { n.sort(C.e.compareRangesUsingStarts); for (let o = 0; o < n.length; o++) n[o].containsRange(e[o]) || t.delete( i) } else t.delete(i); return t.size > 0 } } }, 9599: (e, t, i) => { "use strict"; i.d(t, { _y: () => w, GI: () => C, A9: () => S, ZJ: () => x, kL: () => L, wg: () => E, i5: () => T }); var n = i(7301), o = i(4101), r = i(187), s = i(8819), a = i(1050), l = i(4314), d = i(5392), c = i(5976), h = i(4144), u = i(3472), g = i(4013), p = i(4565), m = i(8401), f = i(666), _ = i(8216), b = i(3580), v = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; const w = { Visible: new s.uy("suggestWidgetVisible", !1, (0, b.N)( "suggestWidgetVisible", "Whether suggestion are visible")), DetailsVisible: new s.uy("suggestWidgetDetailsVisible", !1, (0, b.N)( "suggestWidgetDetailsVisible", "Whether suggestion details are visible")), MultipleSuggestions: new s.uy("suggestWidgetMultipleSuggestions", !1, ( 0, b.N)("suggestWidgetMultipleSuggestions", "Whether there are multiple suggestions to pick from")), MakesTextEdit: new s.uy("suggestionMakesTextEdit", !0, (0, b.N)( "suggestionMakesTextEdit", "Whether inserting the current suggestion yields in a change or has everything already been typed" )), AcceptSuggestionsOnEnter: new s.uy("acceptSuggestionOnEnter", !0, (0, b .N)("acceptSuggestionOnEnter", "Whether suggestions are inserted when pressing Enter")), HasInsertAndReplaceRange: new s.uy("suggestionHasInsertAndReplaceRange", ! 1, (0, b.N)("suggestionHasInsertAndReplaceRange", "Whether the current suggestion has insert and replace behaviour")), InsertMode: new s.uy("suggestionInsertMode", void 0, { type: "string", description: (0, b.N)("suggestionInsertMode", "Whether the default behaviour is to insert or replace") }), CanResolve: new s.uy("suggestionCanResolve", !1, (0, b.N)( "suggestionCanResolve", "Whether the current suggestion supports to resolve further details" )) }, C = new h.eH("suggestWidgetStatusBar"); class y { constructor(e, t, i, n) { this.position = e, this.completion = t, this.container = i, this.provider = n, this.isInvalid = !1, this.score = d.CL.Default, this.distance = 0, this.textLabel = "string" == typeof t.label ? t.label : t.label.label, this.labelLow = this.textLabel.toLowerCase(), this.isInvalid = !this.textLabel, this.sortTextLow = t.sortText && t.sortText.toLowerCase(), this.filterTextLow = t.filterText && t.filterText.toLowerCase(), l.e.isIRange(t.range) ? ( this.editStart = new r.L(t.range.startLineNumber, t.range.startColumn), this.editInsertEnd = new r.L(t.range.endLineNumber, t.range.endColumn), this.editReplaceEnd = new r.L(t.range.endLineNumber, t.range.endColumn), this.isInvalid = this.isInvalid || l.e.spansMultipleLines(t.range) || t.range.startLineNumber !== e.lineNumber) : (this.editStart = new r.L( t.range.insert.startLineNumber, t.range.insert.startColumn), this.editInsertEnd = new r.L(t.range.insert.endLineNumber, t.range.insert.endColumn), this.editReplaceEnd = new r.L(t.range.replace.endLineNumber, t.range .replace.endColumn), this.isInvalid = this.isInvalid || l.e.spansMultipleLines( t.range.insert) || l.e.spansMultipleLines(t.range.replace) || t.range .insert.startLineNumber !== e.lineNumber || t.range.replace.startLineNumber !== e.lineNumber || t.range.insert.startColumn !== t.range.replace.startColumn ), "function" != typeof n.resolveCompletionItem && (this._resolveCache = Promise.resolve(), this._isResolved = !0) } get isResolved() { return !!this._isResolved } resolve(e) { return v(this, void 0, void 0, (function*() { if (!this._resolveCache) { const t = e.onCancellationRequested((() => { this._resolveCache = void 0, this._isResolved = !1 })); this._resolveCache = Promise.resolve(this.provider.resolveCompletionItem( this.completion, e)).then((e => { Object.assign(this.completion, e), this._isResolved = !0, t.dispose() }), (e => { (0, n.VV)(e) && (this._resolveCache = void 0, this._isResolved = ! 1) })) } return this._resolveCache })) } } class S { constructor(e = 2, t = new Set, i = new Set, n = !0) { this.snippetSortOrder = e, this.kindFilter = t, this.providerFilter = i, this.showDeprecated = n } } function x() {} S.default = new S; class k { constructor(e, t, i, n) { this.items = e, this.needsClipboard = t, this.durations = i, this.disposable = n } } function L(e, t, i = S.default, r = { triggerKind: 0 }, s = a.T.None) { return v(this, void 0, void 0, (function*() { const a = new g.G(!0); t = t.clone(); const d = e.getWordAtPosition(t), h = d ? new l.e(t.lineNumber, d.startColumn, t.lineNumber, d.endColumn) : l.e.fromPositions(t), p = { replace: h, insert: h.setEndPosition(t.lineNumber, t.column) }, m = [], f = new c.SL, _ = []; let b = !1; const w = (e, n, o) => { var r, s, a; if (n) { for (let o of n.suggestions) if (!i.kindFilter.has(o.kind)) { if (!i.showDeprecated && (null === (r = null == o ? void 0 : o.tags) || void 0 === r ? void 0 : r.includes(1))) continue; o.range || (o.range = p), o.sortText || (o.sortText = "string" == typeof o.label ? o.label : o.label.label), !b && o.insertTextRules && 4 & o.insertTextRules && (b = u.Yj.guessNeedsClipboard(o.insertText)), m.push(new y(t, o, n, e)) }(0, c.Wf)(n) && f.add(n), _.push({ providerName: null !== (s = e._debugDisplayName) && void 0 !== s ? s : "unkown_provider", elapsedProvider: null !== (a = n.duration) && void 0 !== a ? a : -1, elapsedOverall: o.elapsed() }) } }, C = (() => v(this, void 0, void 0, (function*() {})))(); for (let a of o.KZ.orderedGroups(e)) { let o = m.length; if (yield Promise.all(a.map((o => v(this, void 0, void 0, (function* () { if (!(i.providerFilter.size > 0) || i.providerFilter.has(o)) try { const i = new g.G(!0), n = yield o.provideCompletionItems(e, t, r, s); w(o, n, i) } catch (e) { (0, n.Cp)(e) } }))))), o !== m.length || s.isCancellationRequested) break } return yield C, s.isCancellationRequested ? (f.dispose(), Promise.reject( (0, n.F0)())) : new k(m.sort(E(i.snippetSortOrder)), b, { entries: _, elapsed: a.elapsed() }, f) })) } function N(e, t) { if (e.sortTextLow && t.sortTextLow) { if (e.sortTextLow < t.sortTextLow) return -1; if (e.sortTextLow > t.sortTextLow) return 1 } return e.completion.label < t.completion.label ? -1 : e.completion.label > t.completion.label ? 1 : e.completion.kind - t.completion.kind } const D = new Map; function E(e) { return D.get(e) } D.set(0, (function(e, t) { if (e.completion.kind !== t.completion.kind) { if (27 === e.completion.kind) return -1; if (27 === t.completion.kind) return 1 } return N(e, t) })), D.set(2, (function(e, t) { if (e.completion.kind !== t.completion.kind) { if (27 === e.completion.kind) return 1; if (27 === t.completion.kind) return -1 } return N(e, t) })), D.set(1, N), p.P.registerCommand("_executeCompletionItemProvider", ( (e, ...t) => v(void 0, void 0, void 0, (function*() { const [i, n, o, s] = t; (0, m.p_)(f.o.isUri(i)), (0, m.p_)(r.L.isIPosition(n)), (0, m.p_)( "string" == typeof o || !o), (0, m.p_)("number" == typeof s || !s); const l = yield e.get(_.S).createModelReference(i); try { const e = { incomplete: !1, suggestions: [] }, t = [], i = yield L(l.object.textEditorModel, r.L.lift(n), void 0, { triggerCharacter: o, triggerKind: o ? 1 : 0 }); for (const n of i.items) t.length < (null != s ? s : 0) && t.push( n.resolve(a.T.None)), e.incomplete = e.incomplete || n.container .incomplete, e.suggestions.push(n.completion); try { return yield Promise.all(t), e } finally { setTimeout((() => i.disposable.dispose()), 100) } } finally { l.dispose() } })))); const I = new class { constructor() { this.onlyOnceSuggestions = [] } provideCompletionItems() { let e = { suggestions: this.onlyOnceSuggestions.slice(0) }; return this.onlyOnceSuggestions.length = 0, e } }; function T(e, t) { setTimeout((() => { I.onlyOnceSuggestions.push(...t), e.getContribution( "editor.contrib.suggestController").triggerSuggest((new Set).add(I)) }), 0) } o.KZ.register("*", I) }, 9830: (e, t, i) => { "use strict"; i.r(t), i.d(t, { SuggestController: () => _t, TriggerSuggestAction: () => bt }); var n = i(6346), o = i(9488), r = i(7301), s = i(2258), a = i(5976), l = i(9925), d = i(6830), c = i(9386), h = i(4314), u = i(9102), g = i(2860), p = i(3472), m = i(3702), f = i(6904), _ = i(4101), b = i(5393), v = i(2065), w = i(3108), C = i(5026), y = i(1531), S = function(e, t) { return function(i, n) { t(i, n, e) } }; class x { constructor(e) { this.name = e } select(e, t, i) { if (0 === i.length) return 0; let n = i[0].score[0]; for (let e = 0; e < i.length; e++) { const { score: t, completion: o } = i[e]; if (t[0] !== n) break; if (o.preselect) return e } return 0 } } class k extends x { constructor() { super("first") } memorize(e, t, i) {} toJSON() {} fromJSON() {} } let L = class e { constructor(e, t, i) { this._storageService = e, this._modeService = t, this._configService = i, this._disposables = new a.SL, this._persistSoon = new b.pY((() => this._saveState()), 500), this._disposables.add(e.onWillSaveState(( e => { e.reason === f.fk.SHUTDOWN && this._saveState() }))) } dispose() { this._disposables.dispose(), this._persistSoon.dispose() } memorize(e, t, i) { this._withStrategy(e, t).memorize(e, t, i), this._persistSoon.schedule() } select(e, t, i) { return this._withStrategy(e, t).select(e, t, i) } _withStrategy(t, i) { var n, o; const r = this._configService.getValue("editor.suggestSelection", { overrideIdentifier: null === (n = this._modeService.getLanguageIdentifier( t.getLanguageIdAtPosition(i.lineNumber, i.column))) || void 0 === n ? void 0 : n.language, resource: t.uri }); if ((null === (o = this._strategy) || void 0 === o ? void 0 : o.name) !== r) { this._saveState(); const t = e._strategyCtors.get(r) || k; this._strategy = new t; try { const t = this._configService.getValue( "editor.suggest.shareSuggestSelections") ? 0 : 1, i = this._storageService.get(`${e._storagePrefix}/${r}`, t); i && this._strategy.fromJSON(JSON.parse(i)) } catch (e) {} } return this._strategy } _saveState() { if (this._strategy) { const t = this._configService.getValue( "editor.suggest.shareSuggestSelections") ? 0 : 1, i = JSON.stringify(this._strategy); this._storageService.store( `${e._storagePrefix}/${this._strategy.name}`, i, t, 1) } } }; L._strategyCtors = new Map([ ["recentlyUsedByPrefix", class extends x { constructor() { super("recentlyUsedByPrefix"), this._trie = m.Id.forStrings(), this._seq = 0 } memorize(e, t, i) { const { word: n } = e.getWordUntilPosition(t), o = `${e.getLanguageIdentifier().language}/${n}`; this._trie.set(o, { type: i.completion.kind, insertText: i.completion.insertText, touch: this._seq++ }) } select(e, t, i) { let { word: n } = e.getWordUntilPosition(t); if (!n) return super.select(e, t, i); let o = `${e.getLanguageIdentifier().language}/${n}`, r = this._trie.get(o); if (r || (r = this._trie.findSubstr(o)), r) for (let e = 0; e < i.length; e++) { let { kind: t, insertText: n } = i[e].completion; if (t === r.type && n === r.insertText) return e } return super.select(e, t, i) } toJSON() { let e = []; return this._trie.forEach(((t, i) => e.push([i, t]))), e.sort(((e, t) => -(e[1].touch - t[1].touch))).forEach(((e, t) => e[1].touch = t)), e.slice(0, 200) } fromJSON(e) { if (this._trie.clear(), e.length > 0) { this._seq = e[0][1].touch + 1; for (const [t, i] of e) i.type = "number" == typeof i.type ? i.type : (0, _.jr)(i.type), this._trie.set(t, i) } } }], ["recentlyUsed", class extends x { constructor() { super("recentlyUsed"), this._cache = new m.z6(300, .66), this._seq = 0 } memorize(e, t, i) { const n = `${e.getLanguageIdentifier().language}/${i.textLabel}`; this._cache.set(n, { touch: this._seq++, type: i.completion.kind, insertText: i.completion.insertText }) } select(e, t, i) { if (0 === i.length) return 0; const n = e.getLineContent(t.lineNumber).substr(t.column - 10, t.column - 1); if (/\s$/.test(n)) return super.select(e, t, i); let o = i[0].score[0], r = -1, s = -1; for (let t = 0; t < i.length && i[t].score[0] === o; t++) { const n = `${e.getLanguageIdentifier().language}/${i[t].textLabel}`, o = this._cache.peek(n); if (o && o.touch > s && o.type === i[t].completion.kind && o.insertText === i[t].completion.insertText && (s = o.touch, r = t), i[t].completion .preselect) return t } return -1 !== r ? r : 0 } toJSON() { return this._cache.toJSON() } fromJSON(e) { this._cache.clear(); for (const [t, i] of e) i.touch = 0, i.type = "number" == typeof i .type ? i.type : (0, _.jr)(i.type), this._cache.set(t, i); this._seq = this._cache.size } }], ["first", k] ]), L._storagePrefix = "suggest/memories", L = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([S(0, f.Uy), S(1, y.h), S(2, w.Ui)], L); const N = (0, v.yh)("ISuggestMemories"); (0, C.z)(N, L, !0); var D = i(3580), E = i(4565), I = i(8819), T = i(9989), M = i(9599); let A = class e { constructor(t, i) { this._editor = t, this._index = 0, this._ckOtherSuggestions = e.OtherSuggestions .bindTo(i) } dispose() { this.reset() } reset() { var e; this._ckOtherSuggestions.reset(), null === (e = this._listener) || void 0 === e || e.dispose(), this._model = void 0, this._acceptNext = void 0, this._ignore = !1 } set({ model: t, index: i }, n) { 0 !== t.items.length && e._moveIndex(!0, t, i) !== i ? (this._acceptNext = n, this._model = t, this._index = i, this._listener = this._editor.onDidChangeCursorPosition( (() => { this._ignore || this.reset() })), this._ckOtherSuggestions.set(!0)) : this.reset() } static _moveIndex(e, t, i) { let n = i; for (; n = (n + t.items.length + (e ? 1 : -1)) % t.items.length, n !== i && t.items[n].completion.additionalTextEdits;); return n } next() { this._move(!0) } prev() { this._move(!1) } _move(t) { if (this._model) try { this._ignore = !0, this._index = e._moveIndex(t, this._model, this._index), this._acceptNext({ index: this._index, item: this._model.items[this._index], model: this._model }) } finally { this._ignore = !1 } } }; var R, O; A.OtherSuggestions = new I.uy("hasOtherSuggestions", !1), A = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([(R = 1, O = I.i6, function(e, t) { O(e, t, R) })], A); var P = i(4669), F = i(3860), B = i(5392), W = i(7295); class z { constructor(e, t, i, n, o, r, s) { this.clipboardText = s, this._snippetCompareFn = z._compareCompletionItems, this._items = e, this._column = t, this._wordDistance = n, this._options = o, this._refilterKind = 1, this._lineContext = i, "top" === r ? this._snippetCompareFn = z._compareCompletionItemsSnippetsUp : "bottom" === r && (this._snippetCompareFn = z._compareCompletionItemsSnippetsDown) } get lineContext() { return this._lineContext } set lineContext(e) { this._lineContext.leadingLineContent === e.leadingLineContent && this._lineContext .characterCountDelta === e.characterCountDelta || (this._refilterKind = this._lineContext.characterCountDelta < e.characterCountDelta && this._filteredItems ? 2 : 1, this._lineContext = e) } get items() { return this._ensureCachedState(), this._filteredItems } get allProvider() { return this._ensureCachedState(), this._providerInfo.keys() } get incomplete() { this._ensureCachedState(); const e = new Set; for (let [t, i] of this._providerInfo) i && e.add(t); return e } adopt(e) { let t = []; for (let i = 0; i < this._items.length;) e.has(this._items[i].provider) ? i++ : (t.push(this._items[i]), this._items[i] = this._items[this._items .length - 1], this._items.pop()); return this._refilterKind = 1, t } get stats() { return this._ensureCachedState(), this._stats } _ensureCachedState() { 0 !== this._refilterKind && this._createCachedState() } _createCachedState() { this._providerInfo = new Map; const e = [], { leadingLineContent: t, characterCountDelta: i } = this._lineContext; let n = "", r = ""; const s = 1 === this._refilterKind ? this._items : this._filteredItems, a = [], l = !this._options.filterGraceful || s.length > 2e3 ? B.EW : B.l7; for (let o = 0; o < s.length; o++) { const d = s[o]; if (d.isInvalid) continue; this._providerInfo.set(d.provider, Boolean(d.container.incomplete)); const c = d.position.column - d.editStart.column, h = c + i - (d.position.column - this._column); if (n.length !== h && (n = 0 === h ? "" : t.slice(-h), r = n.toLowerCase()), d.word = n, 0 === h) d.score = B.CL.Default; else { let e = 0; for (; e < c;) { const t = n.charCodeAt(e); if (32 !== t && 9 !== t) break; e += 1 } if (e >= h) d.score = B.CL.Default; else if ("string" == typeof d.completion.filterText) { let t = l(n, r, e, d.completion.filterText, d.filterTextLow, 0, !1); if (!t) continue; 0 === (0, W.zY)(d.completion.filterText, d.textLabel) ? d.score = t : (d.score = (0, B.jB)(n, r, e, d.textLabel, d.labelLow, 0), d.score[ 0] = t[0]) } else { let t = l(n, r, e, d.textLabel, d.labelLow, 0, !1); if (!t) continue; d.score = t } } d.idx = o, d.distance = this._wordDistance.distance(d.position, d.completion), a.push(d), e.push(d.textLabel.length) } this._filteredItems = a.sort(this._snippetCompareFn), this._refilterKind = 0, this._stats = { pLabelLen: e.length ? (0, o.HW)(e.length - .85, e, ((e, t) => e - t)) : 0 } } static _compareCompletionItems(e, t) { return e.score[0] > t.score[0] ? -1 : e.score[0] < t.score[0] ? 1 : e.distance < t.distance ? -1 : e.distance > t.distance ? 1 : e.idx < t.idx ? -1 : e.idx > t.idx ? 1 : 0 } static _compareCompletionItemsSnippetsDown(e, t) { if (e.completion.kind !== t.completion.kind) { if (27 === e.completion.kind) return 1; if (27 === t.completion.kind) return -1 } return z._compareCompletionItems(e, t) } static _compareCompletionItemsSnippetsUp(e, t) { if (e.completion.kind !== t.completion.kind) { if (27 === e.completion.kind) return -1; if (27 === t.completion.kind) return 1 } return z._compareCompletionItems(e, t) } } var V = i(1050), H = i(469), U = i(689); class j { static create(e, t) { return i = this, n = void 0, s = function*() { if (!t.getOption(106).localityBonus) return j.None; if (!t.hasModel()) return j.None; const i = t.getModel(), n = t.getPosition(); if (!e.canComputeWordRanges(i.uri)) return j.None; const [r] = yield(new U.x).provideSelectionRanges(i, [n]); if (0 === r.length) return j.None; const s = yield e.computeWordRanges(i.uri, r[0].range); if (!s) return j.None; const a = i.getWordUntilPosition(n); return delete s[a.word], new class extends j { distance(e, i) { if (!n.equals(t.getPosition())) return 0; if (17 === i.kind) return 2 << 20; let a = "string" == typeof i.label ? i.label : i.label.label, l = s[a]; if ((0, o.XY)(l)) return 2 << 20; let d = (0, o.ry)(l, h.e.fromPositions(e), h.e.compareRangesUsingStarts), c = d >= 0 ? l[d] : l[Math.max(0, ~d - 1)], u = r.length; for (const e of r) { if (!h.e.containsRange(e.range, c)) break; u -= 1 } return u } } }, new((r = void 0) || (r = Promise))((function(e, t) { function o(e) { try { l(s.next(e)) } catch (e) { t(e) } } function a(e) { try { l(s.throw(e)) } catch (e) { t(e) } } function l(t) { var i; t.done ? e(t.value) : (i = t.value, i instanceof r ? i : new r(( function(e) { e(i) }))).then(o, a) } l((s = s.apply(i, n || [])).next()) })); var i, n, r, s } } j.None = new class extends j { distance() { return 0 } }; var K = i(4972), $ = i(829), q = i(3557), Z = function(e, t) { return function(i, n) { t(i, n, e) } }; class G { constructor(e, t, i, n) { this.leadingLineContent = e.getLineContent(t.lineNumber).substr(0, t.column - 1), this.leadingWord = e.getWordUntilPosition(t), this.lineNumber = t.lineNumber, this.column = t.column, this.auto = i, this.shy = n } static shouldAutoTrigger(e) { if (!e.hasModel()) return !1; const t = e.getModel(), i = e.getPosition(); t.tokenizeIfCheap(i.lineNumber); const n = t.getWordAtPosition(i); return !!n && n.endColumn === i.column && !!isNaN(Number(n.word)) } } let Y = class e { constructor(e, t, i, n, o, r, s) { this._editor = e, this._editorWorkerService = t, this._clipboardService = i, this._telemetryService = n, this._logService = o, this._contextKeyService = r, this._configurationService = s, this._toDispose = new a.SL, this._quickSuggestDelay = 10, this._triggerCharacterListener = new a.SL, this._triggerQuickSuggest = new b._F, this._state = 0, this._completionDisposables = new a.SL, this._onDidCancel = new P.Q5, this._onDidTrigger = new P.Q5, this._onDidSuggest = new P.Q5, this.onDidCancel = this._onDidCancel.event, this.onDidTrigger = this._onDidTrigger.event, this.onDidSuggest = this._onDidSuggest.event, this._telemetryGate = 0, this._currentSelection = this._editor.getSelection() || new F.Y(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._updateQuickSuggest() }))), this._toDispose.add(_.KZ.onDidChange((() => { this._updateTriggerCharacters(), this._updateActiveSuggestSession() }))), this._toDispose.add(this._editor.onDidChangeCursorSelection((e => { this._onCursorChange(e) }))); let l = !1; this._toDispose.add(this._editor.onDidCompositionStart((() => { l = !0 }))), this._toDispose.add(this._editor.onDidCompositionEnd((() => { l = !1, this._refilterCompletionItems() }))), this._toDispose.add(this._editor.onDidChangeModelContent((() => { l || this._refilterCompletionItems() }))), this._updateTriggerCharacters(), this._updateQuickSuggest() } dispose() { (0, a.B9)(this._triggerCharacterListener), (0, a.B9)([this._onDidCancel, this._onDidSuggest, this._onDidTrigger, this._triggerQuickSuggest ]), this._toDispose.dispose(), this._completionDisposables.dispose(), this.cancel() } _updateQuickSuggest() { this._quickSuggestDelay = this._editor.getOption(79), (isNaN(this._quickSuggestDelay) || !this._quickSuggestDelay && 0 !== this._quickSuggestDelay || this._quickSuggestDelay < 0) && (this._quickSuggestDelay = 10) } _updateTriggerCharacters() { if (this._triggerCharacterListener.clear(), this._editor.getOption(80) || !this._editor.hasModel() || !this._editor.getOption(109)) return; const e = new Map; for (const t of _.KZ.all(this._editor.getModel())) for (const i of t.triggerCharacters || []) { let n = e.get(i); n || (n = new Set, n.add((0, M.ZJ)()), e.set(i, n)), n.add(t) } const t = t => { if (i = this._contextKeyService, n = this._configurationService, Boolean(i.getContextKeyValue("inlineSuggestionVisible")) && ! Boolean(n.getValue( "editor.inlineSuggest.allowSuggestOnTriggerCharacters"))) return; var i, n; if (G.shouldAutoTrigger(this._editor)) return; if (!t) { const e = this._editor.getPosition(); t = this._editor.getModel().getLineContent(e.lineNumber).substr(0, e.column - 1) } let o = ""; (0, W.YK)(t.charCodeAt(t.length - 1)) ? (0, W.ZG)(t.charCodeAt(t.length - 2)) && (o = t.substr(t.length - 2)) : o = t.charAt(t.length - 1); const r = e.get(o); if (r) { const e = this._completionModel ? { items: this._completionModel.adopt(r), clipboardText: this._completionModel.clipboardText } : void 0; this.trigger({ auto: !0, shy: !1, triggerCharacter: o }, Boolean(this._completionModel), r, e) } }; this._triggerCharacterListener.add(this._editor.onDidType(t)), this._triggerCharacterListener .add(this._editor.onDidCompositionEnd(t)) } get state() { return this._state } cancel(e = !1) { var t; 0 !== this._state && (this._triggerQuickSuggest.cancel(), null === (t = this._requestToken) || void 0 === t || t.cancel(), this._requestToken = void 0, this._state = 0, this._completionModel = void 0, this._context = void 0, this._onDidCancel.fire({ retrigger: e })) } clear() { this._completionDisposables.clear() } _updateActiveSuggestSession() { 0 !== this._state && (this._editor.hasModel() && _.KZ.has(this._editor .getModel()) ? this.trigger({ auto: 2 === this._state, shy: !1 }, !0) : this.cancel()) } _onCursorChange(e) { if (!this._editor.hasModel()) return; const t = this._editor.getModel(), i = this._currentSelection; if (this._currentSelection = this._editor.getSelection(), !e.selection .isEmpty() || 0 !== e.reason && 3 !== e.reason || "keyboard" !== e.source && "deleteLeft" !== e.source) this.cancel(); else if (_.KZ.has(t)) if (0 === this._state && 0 === e.reason) { if (!1 === this._editor.getOption(78)) return; if (!i.containsRange(this._currentSelection) && !i.getEndPosition() .isBeforeOrEqual(this._currentSelection.getPosition())) return; if (this._editor.getOption(106).snippetsPreventQuickSuggestions && g.SnippetController2.get(this._editor).isInSnippet()) return; this.cancel(), this._triggerQuickSuggest.cancelAndSet((() => { if (0 !== this._state) return; if (!G.shouldAutoTrigger(this._editor)) return; if (!this._editor.hasModel()) return; const e = this._editor.getModel(), t = this._editor.getPosition(), i = this._editor.getOption(78); if (!1 !== i) { if (!0 === i); else { e.tokenizeIfCheap(t.lineNumber); const n = e.getLineTokens(t.lineNumber), o = n.getStandardTokenType(n.findTokenIndexAtOffset(Math.max( t.column - 1 - 1, 0))); if (!(i.other && 0 === o || i.comments && 1 === o || i.strings && 2 === o)) return } var n, o; n = this._contextKeyService, o = this._configurationService, (! Boolean(n.getContextKeyValue("inlineSuggestionVisible")) || Boolean(o.getValue( "editor.inlineSuggest.allowQuickSuggestions"))) && this.trigger({ auto: !0, shy: !1 }) } }), this._quickSuggestDelay) } else 0 !== this._state && 3 === e.reason && this._refilterCompletionItems() } _refilterCompletionItems() { Promise.resolve().then((() => { if (0 === this._state) return; if (!this._editor.hasModel()) return; const e = this._editor.getModel(), t = this._editor.getPosition(), i = new G(e, t, 2 === this._state, !1); this._onNewContext(i) })) } trigger(t, i = !1, n, o) { var s; if (!this._editor.hasModel()) return; const a = this._editor.getModel(), l = t.auto, d = new G(a, this._editor.getPosition(), l, t.shy); this.cancel(i), this._state = l ? 2 : 1, this._onDidTrigger.fire({ auto: l, shy: t.shy, position: this._editor.getPosition() }), this._context = d; let c = { triggerKind: null !== (s = t.triggerKind) && void 0 !== s ? s : 0 }; t.triggerCharacter && (c = { triggerKind: 1, triggerCharacter: t.triggerCharacter }), this._requestToken = new V.A; const h = this._editor.getOption(101); let u = 1; switch (h) { case "top": u = 0; break; case "bottom": u = 2 } const { itemKind: g, showDeprecated: p } = e._createSuggestFilter(this._editor), m = j.create(this._editorWorkerService, this._editor), f = (0, M.kL)(a, this._editor.getPosition(), new M.A9( u, g, n, p), c, this._requestToken.token); Promise.all([f, m]).then((([e, i]) => { return n = this, r = void 0, a = function*() { var n; if (null === (n = this._requestToken) || void 0 === n || n.dispose(), ! this._editor.hasModel()) return; let r = null == o ? void 0 : o.clipboardText; if (!r && e.needsClipboard && (r = yield this._clipboardService .readText()), 0 === this._state) return; const s = this._editor.getModel(); let a = e.items; if (o) { const e = (0, M.wg)(u); a = a.concat(o.items).sort(e) } const d = new G(s, this._editor.getPosition(), l, t.shy); this._completionModel = new z(a, this._context.column, { leadingLineContent: d.leadingLineContent, characterCountDelta: d.column - this._context.column }, i, this._editor.getOption(106), this._editor.getOption(101), r), this._completionDisposables.add(e.disposable), this._onNewContext( d), this._reportDurationsTelemetry(e.durations) }, new((s = void 0) || (s = Promise))((function(e, t) { function i(e) { try { l(a.next(e)) } catch (e) { t(e) } } function o(e) { try { l(a.throw(e)) } catch (e) { t(e) } } function l(t) { var n; t.done ? e(t.value) : (n = t.value, n instanceof s ? n : new s( (function(e) { e(n) }))).then(i, o) } l((a = a.apply(n, r || [])).next()) })); var n, r, s, a })).catch(r.dL) } _reportDurationsTelemetry(e) { this._telemetryGate++ % 230 == 0 && setTimeout((() => { this._telemetryService.publicLog2("suggest.durations.json", { data: JSON.stringify(e) }), this._logService.debug("suggest.durations.json", e) })) } static _createSuggestFilter(e) { const t = new Set; "none" === e.getOption(101) && t.add(27); const i = e.getOption(106); return i.showMethods || t.add(0), i.showFunctions || t.add(1), i.showConstructors || t.add(2), i.showFields || t.add(3), i.showVariables || t.add(4), i.showClasses || t.add(5), i.showStructs || t.add(6), i.showInterfaces || t.add(7), i .showModules || t.add(8), i.showProperties || t.add(9), i.showEvents || t.add(10), i.showOperators || t.add(11), i.showUnits || t.add(12), i .showValues || t.add(13), i.showConstants || t.add(14), i.showEnums || t.add(15), i.showEnumMembers || t.add(16), i.showKeywords || t.add( 17), i.showWords || t.add(18), i.showColors || t.add(19), i.showFiles || t.add(20), i.showReferences || t.add(21), i.showColors || t.add(22), i.showFolders || t.add(23), i.showTypeParameters || t.add(24), i.showSnippets || t.add(27), i.showUsers || t.add(25), i.showIssues || t.add(26), { itemKind: t, showDeprecated: i.showDeprecated } } _onNewContext(e) { if (this._context) if (e.lineNumber === this._context.lineNumber) if ((0, W.V8)(e.leadingLineContent) === (0, W.V8)(this._context.leadingLineContent)) { if (e.column < this._context.column) e.leadingWord.word ? this.trigger({ auto: this._context.auto, shy: !1 }, !0) : this.cancel(); else if (this._completionModel) if (0 !== e.leadingWord.word.length && e.leadingWord.startColumn > this._context.leadingWord.startColumn) { const e = new Set(_.KZ.all(this._editor.getModel())); for (let t of this._completionModel.allProvider) e.delete(t); const t = this._completionModel.adopt(new Set); this.trigger({ auto: this._context.auto, shy: !1 }, !0, e, { items: t, clipboardText: this._completionModel.clipboardText }) } else if (e.column > this._context.column && this._completionModel .incomplete.size > 0 && 0 !== e.leadingWord.word.length) { const { incomplete: e } = this._completionModel, t = this._completionModel.adopt(e); this.trigger({ auto: 2 === this._state, shy: !1, triggerKind: 2 }, !0, e, { items: t, clipboardText: this._completionModel.clipboardText }) } else { let t = this._completionModel.lineContext, i = !1; if (this._completionModel.lineContext = { leadingLineContent: e.leadingLineContent, characterCountDelta: e.column - this._context.column }, 0 === this._completionModel.items.length) { if (G.shouldAutoTrigger(this._editor) && this._context.leadingWord .endColumn < e.leadingWord.startColumn) return void this.trigger({ auto: this._context.auto, shy: !1 }, !0); if (this._context.auto) return void this.cancel(); if (this._completionModel.lineContext = t, i = this._completionModel .items.length > 0, i && 0 === e.leadingWord.word.length) return void this.cancel() } this._onDidSuggest.fire({ completionModel: this._completionModel, auto: this._context.auto, shy: this._context.shy, isFrozen: i }) } } else this.cancel(); else this.cancel() } }; Y = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([Z(1, H.p), Z(2, K.p), Z(3, $.b), Z(4, q.VZ), Z(5, I.i6), Z(6, w.Ui)], Y); var Q = i(3379), X = i.n(Q), J = i(7795), ee = i.n(J), te = i(569), ie = i.n(te), ne = i(3565), oe = i.n(ne), re = i(9216), se = i.n(re), ae = i(4589), le = i.n(ae), de = i(36), ce = {}; ce.styleTagTransform = le(), ce.setAttributes = oe(), ce.insert = ie().bind( null, "head"), ce.domAPI = ee(), ce.insertStyleElement = se(), X()(de.Z, ce), de.Z && de.Z.locals && de.Z.locals, i(9899), i(4954); var he = i(5321), ue = i(3799), ge = i(8810), pe = i(7781), me = i(3910), fe = i(6781), _e = i(3947), be = i(9365), ve = i(3046), we = i(3841); class Ce { constructor() { let e; this._onDidWillResize = new P.Q5, this.onDidWillResize = this._onDidWillResize .event, this._onDidResize = new P.Q5, this.onDidResize = this._onDidResize .event, this._sashListener = new a.SL, this._size = new he.Ro(0, 0), this._minSize = new he.Ro(0, 0), this._maxSize = new he.Ro(Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER), this.domNode = document.createElement( "div"), this._eastSash = new we.g(this.domNode, { getVerticalSashLeft: () => this._size.width }, { orientation: 0 }), this._westSash = new we.g(this.domNode, { getVerticalSashLeft: () => 0 }, { orientation: 0 }), this._northSash = new we.g(this.domNode, { getHorizontalSashTop: () => 0 }, { orientation: 1, orthogonalEdge: we.l.North }), this._southSash = new we.g(this.domNode, { getHorizontalSashTop: () => this._size.height }, { orientation: 1, orthogonalEdge: we.l.South }), this._northSash.orthogonalStartSash = this._westSash, this._northSash .orthogonalEndSash = this._eastSash, this._southSash.orthogonalStartSash = this._westSash, this._southSash.orthogonalEndSash = this._eastSash; let t = 0, i = 0; this._sashListener.add(P.ju.any(this._northSash.onDidStart, this._eastSash .onDidStart, this._southSash.onDidStart, this._westSash.onDidStart) ((() => { void 0 === e && (this._onDidWillResize.fire(), e = this._size, t = 0, i = 0) }))), this._sashListener.add(P.ju.any(this._northSash.onDidEnd, this ._eastSash.onDidEnd, this._southSash.onDidEnd, this._westSash.onDidEnd )((() => { void 0 !== e && (e = void 0, t = 0, i = 0, this._onDidResize.fire({ dimension: this._size, done: !0 })) }))), this._sashListener.add(this._eastSash.onDidChange((n => { e && (i = n.currentX - n.startX, this.layout(e.height + t, e.width + i), this._onDidResize.fire({ dimension: this._size, done: !1, east: !0 })) }))), this._sashListener.add(this._westSash.onDidChange((n => { e && (i = -(n.currentX - n.startX), this.layout(e.height + t, e.width + i), this._onDidResize.fire({ dimension: this._size, done: !1, west: !0 })) }))), this._sashListener.add(this._northSash.onDidChange((n => { e && (t = -(n.currentY - n.startY), this.layout(e.height + t, e.width + i), this._onDidResize.fire({ dimension: this._size, done: !1, north: !0 })) }))), this._sashListener.add(this._southSash.onDidChange((n => { e && (t = n.currentY - n.startY, this.layout(e.height + t, e.width + i), this._onDidResize.fire({ dimension: this._size, done: !1, south: !0 })) }))), this._sashListener.add(P.ju.any(this._eastSash.onDidReset, this ._westSash.onDidReset)((e => { this._preferredSize && (this.layout(this._size.height, this._preferredSize .width), this._onDidResize.fire({ dimension: this._size, done: !0 })) }))), this._sashListener.add(P.ju.any(this._northSash.onDidReset, this._southSash.onDidReset)((e => { 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(e, t, i, n) { this._northSash.state = e ? 3 : 0, this._eastSash.state = t ? 3 : 0, this._southSash.state = i ? 3 : 0, this._westSash.state = n ? 3 : 0 } layout(e = this.size.height, t = this.size.width) { const { height: i, width: n } = this._minSize, { height: o, width: r } = this._maxSize; e = Math.max(i, Math.min(o, e)), t = Math.max(n, Math.min(r, t)); const s = new he.Ro(t, e); he.Ro.equals(s, this._size) || (this.domNode.style.height = e + "px", this.domNode.style.width = t + "px", this._size = s, 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(e) { this._maxSize = e } get maxSize() { return this._maxSize } set minSize(e) { this._minSize = e } get minSize() { return this._minSize } set preferredSize(e) { this._preferredSize = e } get preferredSize() { return this._preferredSize } } function ye(e) { return !!e && Boolean(e.completion.documentation || e.completion.detail && e.completion.detail !== e.completion.label) } let Se = class { constructor(e, t) { this._editor = e, this._onDidClose = new P.Q5, this.onDidClose = this ._onDidClose.event, this._onDidChangeContents = new P.Q5, this.onDidChangeContents = this._onDidChangeContents.event, this._disposables = new a.SL, this._renderDisposeable = new a.SL, this._borderWidth = 1, this._size = new he.Ro(330, 0), this.domNode = he.$(".suggest-details"), this.domNode.classList.add( "no-docs"), this._markdownRenderer = t.createInstance(_e.$, { editor: e }), this._body = he.$(".body"), this._scrollbar = new fe.s$(this._body, {}), he.R3(this.domNode, this._scrollbar.getDomNode()), this._disposables .add(this._scrollbar), this._header = he.R3(this._body, he.$( ".header")), this._close = he.R3(this._header, he.$("span" + ve.lA.close .cssSelector)), this._close.title = D.N("details.close", "Close"), this._type = he.R3(this._header, he.$("p.type")), this._docs = he.R3( this._body, he.$("p.docs")), this._configureFont(), this._disposables .add(this._editor.onDidChangeConfiguration((e => { e.hasChanged(42) && this._configureFont() }))) } dispose() { this._disposables.dispose(), this._renderDisposeable.dispose() } _configureFont() { const e = this._editor.getOptions(), t = e.get(42), i = t.fontFamily, n = e.get(107) || t.fontSize, o = e.get(108) || t.lineHeight, r = t.fontWeight, s = `${n}px`, a = `${o}px`; this.domNode.style.fontSize = s, this.domNode.style.lineHeight = a, this.domNode.style.fontWeight = r, this.domNode.style.fontFeatureSettings = t.fontFeatureSettings, this._type.style.fontFamily = i, this._close.style .height = a, this._close.style.width = a } getLayoutInfo() { const e = this._editor.getOption(108) || this._editor.getOption(42).lineHeight, t = this._borderWidth; return { lineHeight: e, borderWidth: t, borderHeight: 2 * t, verticalPadding: 22, horizontalPadding: 14 } } renderLoading() { this._type.textContent = D.N("loading", "Loading..."), this._docs.textContent = "", this.domNode.classList.remove("no-docs", "no-type"), this.layout( this.size.width, 2 * this.getLayoutInfo().lineHeight), this._onDidChangeContents .fire(this) } renderItem(e, t) { var i, n; this._renderDisposeable.clear(); let { detail: o, documentation: r } = e.completion; if (t) { let t = ""; t += `score: ${e.score[0]}\n`, t += `prefix: ${null!==(i=e.word)&&void 0!==i?i:"(no prefix)"}\n`, t += `word: ${e.completion.filterText?e.completion.filterText+" (filterText)":e.textLabel}\n`, t += `distance: ${e.distance} (localityBonus-setting)\n`, t += `index: ${e.idx}, based on ${e.completion.sortText&&` sortText: "${e.completion.sortText}" `||"label"}\n`, t += `commit_chars: ${null===(n=e.completion.commitCharacters)||void 0===n?void 0:n.join("")}\n`, r = (new be.W5).appendCodeblock("empty", t), o = `Provider: ${e.provider._debugDisplayName}` } if (t || ye(e)) { if (this.domNode.classList.remove("no-docs", "no-type"), o) { const e = o.length > 1e5 ? `${o.substr(0,1e5)}…` : o; this._type.textContent = e, this._type.title = e, he.$Z(this._type), this._type.classList.toggle("auto-wrap", !/\r?\n^\s+/gim.test(e)) } else he.PO(this._type), this._type.title = "", he.Cp(this._type), this.domNode.classList.add("no-type"); if (he.PO(this._docs), "string" == typeof r) this._docs.classList.remove( "markdown-docs"), this._docs.textContent = r; else if (r) { this._docs.classList.add("markdown-docs"), he.PO(this._docs); const e = this._markdownRenderer.render(r); this._docs.appendChild(e.element), this._renderDisposeable.add(e), 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 = e => { e.preventDefault(), e.stopPropagation() }, this._close.onclick = e => { e.preventDefault(), e.stopPropagation(), this._onDidClose.fire() }, this._body.scrollTop = 0, this.layout(this._size.width, this._type .clientHeight + this._docs.clientHeight), this._onDidChangeContents .fire(this) } else this.clearContents() } clearContents() { this.domNode.classList.add("no-docs"), this._type.textContent = "", this._docs.textContent = "" } get size() { return this._size } layout(e, t) { const i = new he.Ro(e, t); he.Ro.equals(i, this._size) || (this._size = i, he.dp(this.domNode, e, t)), this._scrollbar.scanDomNode() } scrollDown(e = 8) { this._body.scrollTop += e } scrollUp(e = 8) { this._body.scrollTop -= e } scrollTop() { this._body.scrollTop = 0 } scrollBottom() { this._body.scrollTop = this._body.scrollHeight } pageDown() { this.scrollDown(80) } pageUp() { this.scrollUp(80) } set borderWidth(e) { this._borderWidth = e } get borderWidth() { return this._borderWidth } }; Se = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([function(e, t) { return function(i, n) { t(i, n, e) } }(1, v.TG)], Se); class xe { constructor(e, t) { let i, n; this.widget = e, this._editor = t, this._disposables = new a.SL, this._added = ! 1, this._resizable = new Ce, this._resizable.domNode.classList.add( "suggest-details-container"), this._resizable.domNode.appendChild(e.domNode), this._resizable.enableSashes(!1, !0, !0, !1); let o = 0, r = 0; this._disposables.add(this._resizable.onDidWillResize((() => { i = this._topLeft, n = this._resizable.size }))), this._disposables.add(this._resizable.onDidResize((e => { if (i && n) { this.widget.layout(e.dimension.width, e.dimension.height); let t = !1; e.west && (r = n.width - e.dimension.width, t = !0), e.north && (o = n.height - e.dimension.height, t = !0), t && this._applyTopLeft({ top: i.top + o, left: i.left + r }) } e.done && (i = void 0, n = void 0, o = 0, r = 0, this._userSize = e.dimension) }))), this._disposables.add(this.widget.onDidChangeContents((() => { var e; this._anchorBox && this._placeAtAnchor(this._anchorBox, null !== (e = this._userSize) && void 0 !== e ? e : this.widget.size) }))) } dispose() { this._resizable.dispose(), this._disposables.dispose(), this.hide() } getId() { return "suggest.details" } getDomNode() { return this._resizable.domNode } getPosition() { return null } show() { this._added || (this._editor.addOverlayWidget(this), this.getDomNode() .style.position = "fixed", this._added = !0) } hide(e = !1) { this._resizable.clearSashHoverState(), this._added && (this._editor.removeOverlayWidget( this), this._added = !1, this._anchorBox = void 0, this._topLeft = void 0), e && (this._userSize = void 0, this.widget.clearContents()) } placeAtAnchor(e) { var t; const i = he.i(e); this._anchorBox = i, this._placeAtAnchor(this._anchorBox, null !== (t = this._userSize) && void 0 !== t ? t : this.widget.size) } _placeAtAnchor(e, t) { const i = he.D6(document.body), n = this.widget.getLayoutInfo(); let o, r, s, a, l = new he.Ro(220, 2 * n.lineHeight), d = 0, c = e.top, h = e.top + e.height - n.borderHeight, u = i.width - (e.left + e.width + n.borderWidth + n.horizontalPadding); d = -n.borderWidth + e.left + e.width, a = !0, o = new he.Ro(u, i.height - e.top - n.borderHeight - n.verticalPadding), r = o.with(void 0, e.top + e.height - n.borderHeight - n.verticalPadding), t.width > u && (e.left > u && (u = e.left - n.borderWidth - n.horizontalPadding, a = !1, d = Math.max(n.horizontalPadding, e.left - t.width - n.borderWidth), o = o.with(u), r = o.with(void 0, r.height)), e.width > 1.3 * u && i.height - (e.top + e.height) > e.height && (u = e.width, d = e.left, c = -n.borderWidth + e.top + e.height, o = new he.Ro(e.width - n.borderHeight, i.height - e.top - e.height - n.verticalPadding), r = o.with(void 0, e.top - n.verticalPadding), l = l.with(o.width))); let g, p = t.height, m = Math.max(o.height, r.height); p > m && (p = m), p <= o.height ? (s = !0, g = o) : (s = !1, g = r), this._applyTopLeft({ left: d, top: s ? c : h - p }), this.getDomNode().style.position = "fixed", this._resizable.enableSashes(! s, a, s, !a), this._resizable.minSize = l, this._resizable.maxSize = g, this._resizable.layout(p, Math.min(g.width, t.width)), this.widget .layout(this._resizable.size.width, this._resizable.size.height) } _applyTopLeft(e) { this._topLeft = e, this.getDomNode().style.left = `${this._topLeft.left}px`, this.getDomNode().style.top = `${this._topLeft.top}px` } } var ke = i(317), Le = i(1133), Ne = i(4144), De = function(e, t) { return function(i, n) { t(i, n, e) } }; class Ee extends Le.Mm { updateLabel() { const e = this._keybindingService.lookupKeybinding(this._action.id, this._contextKeyService); if (!e) return super.updateLabel(); this.label && (this.label.textContent = (0, D.N)("ddd", "{0} ({1})", this._action.label, Ee.symbolPrintEnter(e))) } static symbolPrintEnter(e) { var t; return null === (t = e.getLabel()) || void 0 === t ? void 0 : t.replace( /\benter\b/gi, "⏎") } } let Ie = class { constructor(e, t, i, n) { this._menuService = i, this._contextKeyService = n, this._menuDisposables = new a.SL, this.element = he.R3(e, he.$(".suggest-status-bar")); const o = e => e instanceof Ne.U8 ? t.createInstance(Ee, e, void 0) : void 0; this._leftActions = new ke.o(this.element, { actionViewItemProvider: o }), this._rightActions = new ke.o(this.element, { actionViewItemProvider: o }), this._leftActions.domNode.classList.add("left"), this._rightActions .domNode.classList.add("right") } dispose() { this._menuDisposables.dispose(), this.element.remove() } show() { const e = this._menuService.createMenu(M.GI, this._contextKeyService), t = () => { const t = [], i = []; for (let [n, o] of e.getActions()) "left" === n ? t.push(...o) : i.push( ...o); this._leftActions.clear(), this._leftActions.push(t), this._rightActions .clear(), this._rightActions.push(i) }; this._menuDisposables.add(e.onDidChange((() => t()))), this._menuDisposables .add(e) } hide() { this._menuDisposables.clear() } }; Ie = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([De(1, v.TG), De(2, Ne.co), De(3, I.i6)], Ie); var Te, Me = i(3326), Ae = i(6663), Re = i(5935), Oe = i(1144); function Pe(e, t, i, n) { const o = n === Te.ROOT_FOLDER ? ["rootfolder-icon"] : n === Te.FOLDER ? [ "folder-icon" ] : ["file-icon"]; if (i) { let r; if (r = i.scheme === Ae.lg.data ? Re.Vb.parseMetaData(i).get(Re.Vb.META_DATA_LABEL) : Fe((0, Re.Hx)(i).toLowerCase()), n === Te.FOLDER) o.push( `${r}-name-folder-icon`); else { if (r) { if (o.push(`${r}-name-file-icon`), r.length <= 255) { const e = r.split("."); for (let t = 1; t < e.length; t++) o.push( `${e.slice(t).join(".")}-ext-file-icon`) } o.push("ext-file-icon") } const n = function(e, t, i) { if (!i) return null; let n = null; if (i.scheme === Ae.lg.data) { const e = Re.Vb.parseMetaData(i).get(Re.Vb.META_DATA_MIME); e && (n = t.getModeId(e)) } else { const t = e.getModel(i); t && (n = t.getModeId()) } return n && n !== Oe.XT ? n : t.getModeIdByFilepathOrFirstLine(i) }(e, t, i); n && o.push(`${Fe(n)}-lang-file-icon`) } } return o } function Fe(e) { return e.replace(/[\11\12\14\15\40]/g, "/") }! function(e) { e[e.FILE = 0] = "FILE", e[e.FOLDER = 1] = "FOLDER", e[e.ROOT_FOLDER = 2] = "ROOT_FOLDER" }(Te || (Te = {})); var Be, We = i(1200), ze = i(666), Ve = function(e, t) { return function(i, n) { t(i, n, e) } }; function He(e) { return `suggest-aria-id:${e}` } const Ue = (0, i(9554).q5)("suggest-more-info", ve.lA.chevronRight, D.N( "suggestMoreInfoIcon", "Icon for more information in the suggest widget.")), je = new((Be = class e { extract(t, i) { if (t.textLabel.match(e._regexStrict)) return i[0] = t.textLabel, ! 0; if (t.completion.detail && t.completion.detail.match(e._regexStrict)) return i[0] = t.completion.detail, !0; if ("string" == typeof t.completion.documentation) { const n = e._regexRelaxed.exec(t.completion.documentation); if (n && (0 === n.index || n.index + n[0].length === t.completion.documentation .length)) return i[0] = n[0], !0 } return !1 } })._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*\))/, Be._regexStrict = new RegExp(`^${Be._regexRelaxed.source}$`, "i"), Be); let Ke = class { constructor(e, t, i, n) { this._editor = e, this._modelService = t, this._modeService = i, this ._themeService = n, this._onDidToggleDetails = new P.Q5, this.onDidToggleDetails = this._onDidToggleDetails.event, this.templateId = "suggestion" } dispose() { this._onDidToggleDetails.dispose() } renderTemplate(e) { const t = Object.create(null); t.disposables = new a.SL, t.root = e, t.root.classList.add( "show-file-icons"), t.icon = (0, he.R3)(e, (0, he.$)(".icon")), t.colorspan = (0, he.R3)(t.icon, (0, he.$)("span.colorspan")); const i = (0, he.R3)(e, (0, he.$)(".contents")), n = (0, he.R3)(i, (0, he.$)(".main")); t.iconContainer = (0, he.R3)(n, (0, he.$)(".icon-label.codicon")), t.left = (0, he.R3)(n, (0, he.$)("span.left")), t.right = (0, he.R3)(n, (0, he.$)("span.right")), t.iconLabel = new Me.g(t.left, { supportHighlights: !0, supportIcons: !0 }), t.disposables.add(t.iconLabel), t.parametersLabel = (0, he.R3)(t .left, (0, he.$)("span.signature-label")), t.qualifierLabel = (0, he.R3)(t.left, (0, he.$)("span.qualifier-label")), t.detailsLabel = (0, he.R3)(t.right, (0, he.$)("span.details-label")), t.readMore = ( 0, he.R3)(t.right, (0, he.$)("span.readMore" + pe.kS.asCSSSelector( Ue))), t.readMore.title = D.N("readMore", "Read More"); const o = () => { const e = this._editor.getOptions(), i = e.get(42), o = i.fontFamily, r = i.fontFeatureSettings, s = e.get(107) || i.fontSize, a = e.get(108) || i.lineHeight, l = i.fontWeight, d = `${s}px`, c = `${a}px`; t.root.style.fontSize = d, t.root.style.fontWeight = l, n.style.fontFamily = o, n.style.fontFeatureSettings = r, n.style.lineHeight = c, t.icon .style.height = c, t.icon.style.width = c, t.readMore.style.height = c, t.readMore.style.width = c }; return o(), t.disposables.add(this._editor.onDidChangeConfiguration(( e => { (e.hasChanged(42) || e.hasChanged(107) || e.hasChanged(108)) && o() }))), t } renderElement(e, t, i) { const { completion: n } = e; i.root.id = He(t), i.colorspan.style.backgroundColor = ""; const r = { labelEscapeNewLines: !0, matches: (0, B.mB)(e.score) }; let s = []; if (19 === n.kind && je.extract(e, s)) i.icon.className = "icon customcolor", i.iconContainer.className = "icon hide", i.colorspan .style.backgroundColor = s[0]; else if (20 === n.kind && this._themeService.getFileIconTheme().hasFileIcons) { i.icon.className = "icon hide", i.iconContainer.className = "icon hide"; const t = Pe(this._modelService, this._modeService, ze.o.from({ scheme: "fake", path: e.textLabel }), Te.FILE), o = Pe(this._modelService, this._modeService, ze.o.from({ scheme: "fake", path: n.detail }), Te.FILE); r.extraClasses = t.length > o.length ? t : o } else 23 === n.kind && this._themeService.getFileIconTheme().hasFolderIcons ? (i.icon.className = "icon hide", i.iconContainer.className = "icon hide", r.extraClasses = (0, o.xH)([Pe(this._modelService, this._modeService, ze.o.from({ scheme: "fake", path: e.textLabel }), Te.FOLDER), Pe(this._modelService, this._modeService, ze.o.from({ scheme: "fake", path: n.detail }), Te.FOLDER)])) : (i.icon.className = "icon hide", i.iconContainer .className = "", i.iconContainer.classList.add("suggest-icon", ...( 0, _.Sy)(n.kind).split(" "))); n.tags && n.tags.indexOf(1) >= 0 && (r.extraClasses = (r.extraClasses || []) .concat(["deprecated"]), r.matches = []), i.iconLabel.setLabel(e.textLabel, void 0, r), "string" == typeof n.label ? (i.parametersLabel.textContent = "", i.detailsLabel.textContent = $e(n.detail || ""), i.root.classList .add("string-label")) : (i.parametersLabel.textContent = $e(n.label .detail || ""), i.detailsLabel.textContent = $e(n.label.description || ""), i.root.classList.remove("string-label")), this._editor.getOption( 106).showInlineDetails ? (0, he.$Z)(i.detailsLabel) : (0, he.Cp)(i.detailsLabel), ye(e) ? (i.right.classList.add("can-expand-details"), (0, he.$Z)(i.readMore), i.readMore.onmousedown = e => { e.stopPropagation(), e.preventDefault() }, i.readMore.onclick = e => { e.stopPropagation(), e.preventDefault(), this._onDidToggleDetails.fire() }) : (i.right.classList.remove("can-expand-details"), (0, he.Cp)(i.readMore), i.readMore.onmousedown = null, i.readMore.onclick = null) } disposeTemplate(e) { e.disposables.dispose() } }; function $e(e) { return e.replace(/\r\n|\r|\n/g, "") } Ke = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([Ve(1, We.q), Ve(2, y.h), Ve(3, pe.XE)], Ke); var qe = i(4527), Ze = i(9870), Ge = function(e, t) { return function(i, n) { t(i, n, e) } }; const Ye = (0, me.P6)("editorSuggestWidget.background", { dark: me.D0, light: me.D0, hc: me.D0 }, D.N("editorSuggestWidgetBackground", "Background color of the suggest widget.")), Qe = (0, me.P6)("editorSuggestWidget.border", { dark: me.D1, light: me.D1, hc: me.D1 }, D.N("editorSuggestWidgetBorder", "Border color of the suggest widget.")), Xe = (0, me.P6)("editorSuggestWidget.foreground", { dark: me.NO, light: me.NO, hc: me.NO }, D.N("editorSuggestWidgetForeground", "Foreground color of the suggest widget.")), Je = (0, me.P6)("editorSuggestWidget.selectedForeground", { dark: me.NP, light: me.NP, hc: me.NP }, D.N("editorSuggestWidgetSelectedForeground", "Foreground color of the selected entry in the suggest widget.")), et = (0, me.P6)("editorSuggestWidget.selectedIconForeground", { dark: me.cb, light: me.cb, hc: me.cb }, D.N("editorSuggestWidgetSelectedIconForeground", "Icon foreground color of the selected entry in the suggest widget.")), tt = (0, me.P6)("editorSuggestWidget.selectedBackground", { dark: me.Vq, light: me.Vq, hc: me.Vq }, D.N("editorSuggestWidgetSelectedBackground", "Background color of the selected entry in the suggest widget.")), it = (0, me.P6)("editorSuggestWidget.highlightForeground", { dark: me.Gw, light: me.Gw, hc: me.Gw }, D.N("editorSuggestWidgetHighlightForeground", "Color of the match highlights in the suggest widget.")), nt = (0, me.P6)("editorSuggestWidget.focusHighlightForeground", { dark: me.PX, light: me.PX, hc: me.PX }, D.N("editorSuggestWidgetFocusHighlightForeground", "Color of the match highlights in the suggest widget when an item is focused." )); class ot { constructor(e, t) { this._service = e, this._key = `suggestWidget.size/${t.getEditorType()}/${t instanceof qe.H}` } restore() { var e; const t = null !== (e = this._service.get(this._key, 0)) && void 0 !== e ? e : ""; try { const e = JSON.parse(t); if (he.Ro.is(e)) return he.Ro.lift(e) } catch (e) {} } store(e) { this._service.store(this._key, JSON.stringify(e), 0, 1) } reset() { this._service.remove(this._key, 0) } } let rt = class e { constructor(e, t, i, n, o) { this.editor = e, this._storageService = t, this._state = 0, this._isAuto = ! 1, this._ignoreFocusEvents = !1, this._forceRenderingAbove = !1, this._explainMode = !1, this._showTimeout = new b._F, this._disposables = new a.SL, this._onDidSelect = new P.Q5, this._onDidFocus = new P.Q5, this._onDidHide = new P.Q5, this._onDidShow = new P.Q5, this.onDidSelect = this._onDidSelect.event, this.onDidFocus = this._onDidFocus.event, this.onDidHide = this._onDidHide.event, this.onDidShow = this._onDidShow .event, this._onDetailsKeydown = new P.Q5, this.onDetailsKeyDown = this._onDetailsKeydown.event, this.element = new Ce, this.element.domNode .classList.add("editor-widget", "suggest-widget"), this._contentWidget = new st(this, e), this._persistedSize = new ot(t, e); class r { constructor(e, t, i = !1, n = !1) { this.persistedSize = e, this.currentSize = t, this.persistHeight = i, this.persistWidth = n } } let s; this._disposables.add(this.element.onDidWillResize((() => { this._contentWidget.lockPreference(), s = new r(this._persistedSize .restore(), this.element.size) }))), this._disposables.add(this.element.onDidResize((e => { var t, i, n, o; if (this._resize(e.dimension.width, e.dimension.height), s && (s .persistHeight = s.persistHeight || !!e.north || !!e.south, s.persistWidth = s.persistWidth || !!e.east || !!e.west), e.done) { if (s) { const { itemHeight: e, defaultSize: r } = this.getLayoutInfo(), a = Math.round(e / 2); let { width: l, height: d } = this.element.size; (!s.persistHeight || Math.abs(s.currentSize.height - d) <= a) && (d = null !== (i = null === (t = s.persistedSize) || void 0 === t ? void 0 : t.height) && void 0 !== i ? i : r.height), (!s.persistWidth || Math.abs(s.currentSize.width - l) <= a) && (l = null !== (o = null === (n = s.persistedSize) || void 0 === n ? void 0 : n.width ) && void 0 !== o ? o : r.width), this._persistedSize.store( new he.Ro(l, d)) } this._contentWidget.unlockPreference(), s = void 0 } }))), this._messageElement = he.R3(this.element.domNode, he.$( ".message")), this._listElement = he.R3(this.element.domNode, he.$( ".tree")); const l = o.createInstance(Se, this.editor); l.onDidClose(this.toggleDetails, this, this._disposables), this._details = new xe(l, this.editor); const d = () => this.element.domNode.classList.toggle("no-icons", ! this.editor.getOption(106).showIcons); d(); const c = o.createInstance(Ke, this.editor); this._disposables.add(c), this._disposables.add(c.onDidToggleDetails( (() => this.toggleDetails()))), this._list = new ue.aV( "SuggestWidget", this._listElement, { getHeight: e => this.getLayoutInfo().itemHeight, getTemplateId: e => "suggestion" }, [c], { alwaysConsumeMouseWheel: !0, useShadows: !1, mouseSupport: !1, accessibilityProvider: { getRole: () => "option", getAriaLabel: e => { if (e.isResolved && this._isDetailsVisible()) { const { documentation: t, detail: i } = e.completion, n = W.WU("{0}{1}", i || "", t ? "string" == typeof t ? t : t.value : ""); return D.N("ariaCurrenttSuggestionReadDetails", "{0}, docs: {1}", e.textLabel, n) } return e.textLabel }, getWidgetAriaLabel: () => D.N("suggest", "Suggest"), getWidgetRole: () => "listbox" } }), this._status = o.createInstance(Ie, this.element.domNode); const h = () => this.element.domNode.classList.toggle( "with-status-bar", this.editor.getOption(106).showStatusBar); h(), this._disposables.add((0, ge.Jl)(this._list, n, { listInactiveFocusBackground: tt, listInactiveFocusOutline: me.xL })), this._disposables.add(n.onDidColorThemeChange((e => this._onThemeChange( e)))), this._onThemeChange(n.getColorTheme()), this._disposables.add( this._list.onMouseDown((e => this._onListMouseDownOrTap(e)))), this ._disposables.add(this._list.onTap((e => this._onListMouseDownOrTap( e)))), this._disposables.add(this._list.onDidChangeSelection((e => this._onListSelection(e)))), this._disposables.add(this._list.onDidChangeFocus( (e => this._onListFocus(e)))), this._disposables.add(this.editor.onDidChangeCursorSelection( (() => this._onCursorSelectionChanged()))), this._disposables.add( this.editor.onDidChangeConfiguration((e => { e.hasChanged(106) && (h(), d()) }))), this._ctxSuggestWidgetVisible = M._y.Visible.bindTo(i), this._ctxSuggestWidgetDetailsVisible = M._y.DetailsVisible.bindTo(i), this._ctxSuggestWidgetMultipleSuggestions = M._y.MultipleSuggestions.bindTo(i), this._disposables.add(he.mu(this ._details.widget.domNode, "keydown", (e => { this._onDetailsKeydown.fire(e) }))), this._disposables.add(this.editor.onMouseDown((e => this._onEditorMouseDown( e)))) } dispose() { var e; this._details.widget.dispose(), this._details.dispose(), this._list.dispose(), this._status.dispose(), this._disposables.dispose(), null === (e = this._loadingTimeout) || void 0 === e || e.dispose(), this._showTimeout .dispose(), this._contentWidget.dispose(), this.element.dispose() } _onEditorMouseDown(e) { this._details.widget.domNode.contains(e.target.element) ? this._details .widget.domNode.focus() : this.element.domNode.contains(e.target.element) && this.editor.focus() } _onCursorSelectionChanged() { 0 !== this._state && this._contentWidget.layout() } _onListMouseDownOrTap(e) { void 0 !== e.element && void 0 !== e.index && (e.browserEvent.preventDefault(), e.browserEvent.stopPropagation(), this._select(e.element, e.index)) } _onListSelection(e) { e.elements.length && this._select(e.elements[0], e.indexes[0]) } _select(e, t) { const i = this._completionModel; i && (this._onDidSelect.fire({ item: e, index: t, model: i }), this.editor.focus()) } _onThemeChange(e) { const t = e.getColor(Ye); t && (this.element.domNode.style.backgroundColor = t.toString(), this ._messageElement.style.backgroundColor = t.toString(), this._details .widget.domNode.style.backgroundColor = t.toString()); const i = e.getColor(Qe); i && (this.element.domNode.style.borderColor = i.toString(), this._messageElement .style.borderColor = i.toString(), this._status.element.style.borderTopColor = i.toString(), this._details.widget.domNode.style.borderColor = i.toString(), this._detailsBorderColor = i.toString()); const n = e.getColor(me.R8); n && (this._detailsFocusBorderColor = n.toString()), this._details.widget .borderWidth = "hc" === e.type ? 2 : 1 } _onListFocus(e) { var t; if (this._ignoreFocusEvents) return; if (!e.elements.length) return this._currentSuggestionDetails && ( this._currentSuggestionDetails.cancel(), this._currentSuggestionDetails = void 0, this._focusedItem = void 0), void this.editor.setAriaOptions({ activeDescendant: void 0 }); if (!this._completionModel) return; const i = e.elements[0], n = e.indexes[0]; i !== this._focusedItem && (null === (t = this._currentSuggestionDetails) || void 0 === t || t.cancel(), this._currentSuggestionDetails = void 0, this._focusedItem = i, this._list.reveal(n), this._currentSuggestionDetails = (0, b.PG)((e => { return t = this, n = void 0, r = function*() { const t = (0, b.Vg)((() => { this._isDetailsVisible() && this.showDetails(!0) }), 250); e.onCancellationRequested((() => t.dispose())); const n = yield i.resolve(e); return t.dispose(), n }, new((o = void 0) || (o = Promise))((function(e, i) { function s(e) { try { l(r.next(e)) } catch (e) { i(e) } } function a(e) { try { l(r.throw(e)) } catch (e) { i(e) } } function l(t) { var i; t.done ? e(t.value) : (i = t.value, i instanceof o ? i : new o((function(e) { e(i) }))).then(s, a) } l((r = r.apply(t, n || [])).next()) })); var t, n, o, r })), this._currentSuggestionDetails.then((() => { n >= this._list.length || i !== this._list.element(n) || (this._ignoreFocusEvents = ! 0, this._list.splice(n, 1, [i]), this._list.setFocus([n]), this._ignoreFocusEvents = !1, this._isDetailsVisible() ? this.showDetails(! 1) : this.element.domNode.classList.remove("docs-side"), this .editor.setAriaOptions({ activeDescendant: He(n) })) })).catch(r.dL)), this._onDidFocus.fire({ item: i, index: n, model: this._completionModel }) } _setState(t) { if (this._state !== t) switch (this._state = t, this.element.domNode.classList .toggle("frozen", 4 === t), this.element.domNode.classList.remove( "message"), t) { case 0: he.Cp(this._messageElement, this._listElement, this._status.element), this._details.hide(!0), this._status.hide(), this._contentWidget.hide(), this._ctxSuggestWidgetVisible.reset(), this._ctxSuggestWidgetMultipleSuggestions .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 = e.LOADING_MESSAGE, he.Cp(this._listElement, this._status .element), he.$Z(this._messageElement), this._details.hide(), this._show(), this._focusedItem = void 0; break; case 2: this.element.domNode.classList.add("message"), this._messageElement .textContent = e.NO_SUGGESTIONS_MESSAGE, he.Cp(this._listElement, this._status.element), he.$Z(this._messageElement), this._details .hide(), this._show(), this._focusedItem = void 0; break; case 3: case 4: he.Cp(this._messageElement), he.$Z(this._listElement, this._status .element), this._show(); break; case 5: he.Cp(this._messageElement), he.$Z(this._listElement, this._status .element), this._details.show(), this._show() } } _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(e, t) { 0 === this._state && (this._contentWidget.setPosition(this.editor.getPosition()), this._isAuto = !!e, this._isAuto || (this._loadingTimeout = (0, b.Vg) ((() => this._setState(1)), t))) } showSuggestions(e, t, i, n) { var o, r; if (this._contentWidget.setPosition(this.editor.getPosition()), null === (o = this._loadingTimeout) || void 0 === o || o.dispose(), null === (r = this._currentSuggestionDetails) || void 0 === r || r.cancel(), this._currentSuggestionDetails = void 0, this._completionModel !== e && (this._completionModel = e), i && 2 !== this._state && 0 !== this._state ) return void this._setState(4); const s = this._completionModel.items.length, a = 0 === s; if (this._ctxSuggestWidgetMultipleSuggestions.set(s > 1), a) return this._setState(n ? 0 : 2), void(this._completionModel = void 0); this._focusedItem = void 0, this._list.splice(0, this._list.length, this._completionModel.items), this._setState(i ? 4 : 3), this._list .reveal(t, 0), this._list.setFocus([t]), this._layout(this.element.size), this._detailsBorderColor && (this._details.widget.domNode.style.borderColor = this._detailsBorderColor) } 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 (0 !== this._state && 2 !== this._state && 1 !== this._state && this._completionModel) return { item: this._list.getFocusedElements()[0], index: this._list.getFocus()[0], model: this._completionModel } } toggleDetailsFocus() { 5 === this._state ? (this._setState(3), this._detailsBorderColor && ( this._details.widget.domNode.style.borderColor = this._detailsBorderColor )) : 3 === this._state && this._isDetailsVisible() && (this._setState( 5), this._detailsFocusBorderColor && (this._details.widget.domNode .style.borderColor = this._detailsFocusBorderColor)) } toggleDetails() { this._isDetailsVisible() ? (this._ctxSuggestWidgetDetailsVisible.set(! 1), this._setDetailsVisible(!1), this._details.hide(), this.element .domNode.classList.remove("shows-details")) : !ye(this._list.getFocusedElements()[ 0]) && !this._explainMode || 3 !== this._state && 5 !== this._state && 4 !== this._state || (this._ctxSuggestWidgetDetailsVisible.set(!0), this._setDetailsVisible(!0), this.showDetails(!1)) } showDetails(e) { this._details.show(), e ? this._details.widget.renderLoading() : this ._details.widget.renderItem(this._list.getFocusedElements()[0], this ._explainMode), this._positionDetails(), this.editor.focus(), this.element .domNode.classList.add("shows-details") } toggleExplainMode() { this._list.getFocusedElements()[0] && (this._explainMode = !this._explainMode, this._isDetailsVisible() ? this.showDetails(!1) : this.toggleDetails() ) } resetPersistedSize() { this._persistedSize.reset() } hideWidget() { var e; null === (e = this._loadingTimeout) || void 0 === e || e.dispose(), this._setState(0), this._onDidHide.fire(this), this.element.clearSashHoverState(); const t = this._persistedSize.restore(), i = Math.ceil(4.3 * this.getLayoutInfo().itemHeight); t && t.height < i && this._persistedSize.store(t.with(void 0, i)) } isFrozen() { return 4 === this._state } _afterRender(e) { null !== e ? 2 !== this._state && 1 !== this._state && (this._isDetailsVisible() && this._details.show(), this._positionDetails()) : this._isDetailsVisible() && this._details.hide() } _layout(e) { var t, i, n; if (!this.editor.hasModel()) return; if (!this.editor.getDomNode()) return; const o = he.D6(document.body), r = this.getLayoutInfo(); e || (e = r.defaultSize); let s = e.height, a = e.width; if (this._status.element.style.lineHeight = `${r.itemHeight}px`, 2 === this._state || 1 === this._state) s = r.itemHeight + r.borderHeight, a = r.defaultSize.width / 2, this.element.enableSashes(!1, !1, !1, ! 1), this.element.minSize = this.element.maxSize = new he.Ro(a, s), this._contentWidget.setPreference(2); else { const l = o.width - r.borderHeight - 2 * r.horizontalPadding; a > l && (a = l); const d = this._completionModel ? this._completionModel.stats.pLabelLen * r.typicalHalfwidthCharacterWidth : a, c = r.statusBarHeight + this._list.contentHeight + r.borderHeight, h = r.itemHeight + r.statusBarHeight, u = he.i(this.editor.getDomNode()), g = this.editor.getScrolledVisiblePosition(this.editor.getPosition()), p = u.top + g.top + g.height, m = Math.min(o.height - p - r.verticalPadding, c), f = u.top + g.top - r.verticalPadding, _ = Math.min(f, c); let b = Math.min(Math.max(_, m) + r.borderHeight, c); s === (null === (t = this._cappedHeight) || void 0 === t ? void 0 : t.capped) && (s = this._cappedHeight.wanted), s < h && (s = h), s > b && (s = b); const v = 150; s > m || this._forceRenderingAbove && f > v ? (this._contentWidget.setPreference( 1), this.element.enableSashes(!0, !0, !1, !1), b = _) : (this._contentWidget .setPreference(2), this.element.enableSashes(!1, !0, !0, !1), b = m), this.element.preferredSize = new he.Ro(d, r.defaultSize.height), this.element.maxSize = new he.Ro(l, b), this.element.minSize = new he .Ro(220, h), this._cappedHeight = s === c ? { wanted: null !== (n = null === (i = this._cappedHeight) || void 0 === i ? void 0 : i.wanted) && void 0 !== n ? n : e.height, capped: s } : void 0 } this._resize(a, s) } _resize(e, t) { const { width: i, height: n } = this.element.maxSize; e = Math.min(i, e), t = Math.min(n, t); const { statusBarHeight: o } = this.getLayoutInfo(); this._list.layout(t - o, e), this._listElement.style.height = t - o + "px", this.element.layout(t, e), this._contentWidget.layout(), this._positionDetails() } _positionDetails() { this._isDetailsVisible() && this._details.placeAtAnchor(this.element.domNode) } getLayoutInfo() { const e = this.editor.getOption(42), t = (0, Ze.u)(this.editor.getOption(108) || e.lineHeight, 8, 1e3), i = this.editor.getOption(106).showStatusBar && 2 !== this._state && 1 !== this._state ? t : 0, n = this._details.widget.borderWidth, o = 2 * n; return { itemHeight: t, statusBarHeight: i, borderWidth: n, borderHeight: o, typicalHalfwidthCharacterWidth: e.typicalHalfwidthCharacterWidth, verticalPadding: 22, horizontalPadding: 14, defaultSize: new he.Ro(430, i + 12 * t + o) } } _isDetailsVisible() { return this._storageService.getBoolean("expandSuggestionDocs", 0, !1) } _setDetailsVisible(e) { this._storageService.store("expandSuggestionDocs", e, 0, 0) } forceRenderingAbove() { this._forceRenderingAbove || (this._forceRenderingAbove = !0, this._layout( this._persistedSize.restore())) } stopForceRenderingAbove() { this._forceRenderingAbove = !1 } }; rt.LOADING_MESSAGE = D.N("suggestWidget.loading", "Loading..."), rt.NO_SUGGESTIONS_MESSAGE = D.N("suggestWidget.noSuggestions", "No suggestions."), rt = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([Ge(1, f.Uy), Ge(2, I.i6), Ge(3, pe.XE), Ge(4, v.TG)], rt); class st { constructor(e, t) { this._widget = e, this._editor = t, 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 ? { position: this._position, preference: [this._preference] } : null } beforeRender() { const { height: e, width: t } = this._widget.element.size, { borderWidth: i, horizontalPadding: n } = this._widget.getLayoutInfo(); return new he.Ro(t + 2 * i + n, e + 2 * i) } afterRender(e) { this._widget._afterRender(e) } setPreference(e) { this._preferenceLocked || (this._preference = e) } lockPreference() { this._preferenceLocked = !0 } unlockPreference() { this._preferenceLocked = !1 } setPosition(e) { this._position = e } }(0, pe.Ic)(((e, t) => { const i = e.getColor(it); i && t.addRule( `.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-highlighted-label .highlight { color: ${i}; }` ); const n = e.getColor(nt); i && t.addRule( `.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused .monaco-highlighted-label .highlight { color: ${n}; }` ); const o = e.getColor(Xe); o && t.addRule( `.monaco-editor .suggest-widget, .monaco-editor .suggest-details { color: ${o}; }` ); const r = e.getColor(Je); r && t.addRule( `.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused { color: ${r}; }` ); const s = e.getColor(et); s && t.addRule( `.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused .codicon { color: ${s}; }` ); const a = e.getColor(me.ur); a && t.addRule(`.monaco-editor .suggest-details a { color: ${a}; }`); const l = e.getColor(me.sg); l && t.addRule( `.monaco-editor .suggest-details a:hover { color: ${l}; }`); const d = e.getColor(me.Sw); d && t.addRule( `.monaco-editor .suggest-details code { background-color: ${d}; }`) })); let at = class e { constructor(t, i) { this._editor = t, this._enabled = !1, this._ckAtEnd = e.AtEnd.bindTo( i), this._configListener = this._editor.onDidChangeConfiguration((e => e.hasChanged(111) && this._update())), this._update() } dispose() { var e; this._configListener.dispose(), null === (e = this._selectionListener) || void 0 === e || e.dispose(), this._ckAtEnd.reset() } _update() { const e = "on" === this._editor.getOption(111); if (this._enabled !== e) if (this._enabled = e, this._enabled) { const e = () => { if (!this._editor.hasModel()) return void this._ckAtEnd.set(!1); const e = this._editor.getModel(), t = this._editor.getSelection(), i = e.getWordAtPosition(t.getStartPosition()); i ? this._ckAtEnd.set(i.endColumn === t.getStartPosition().column) : this._ckAtEnd.set(!1) }; this._selectionListener = this._editor.onDidChangeCursorSelection(e), e() } else this._selectionListener && (this._ckAtEnd.reset(), this._selectionListener .dispose(), this._selectionListener = void 0) } }; at.AtEnd = new I.uy("atEndOfWord", !1), at = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([function(e, t) { return function(i, n) { t(i, n, e) } }(1, I.i6)], at); var lt = i(8401), dt = i(4906); class ct { constructor(e, t, i) { this._disposables = new a.SL, this._disposables.add(t.onDidShow((() => this._onItem(t.getFocusedItem())))), this._disposables.add(t.onDidFocus( this._onItem, this)), this._disposables.add(t.onDidHide(this.reset, this)), this._disposables.add(e.onWillType((n => { if (this._active && !t.isFrozen()) { const t = n.charCodeAt(n.length - 1); this._active.acceptCharacters.has(t) && e.getOption(0) && i(this ._active.item) } }))) } _onItem(e) { if (!e || !(0, o.Of)(e.item.completion.commitCharacters)) return void this .reset(); if (this._active && this._active.item.item === e.item) return; const t = new dt.q; for (const i of e.item.completion.commitCharacters) i.length > 0 && t.add( i.charCodeAt(0)); this._active = { acceptCharacters: t, item: e } } reset() { this._active = void 0 } dispose() { this._disposables.dispose() } } class ht { constructor(e, t) { this._disposables = new a.SL, this._lastOvertyped = [], this._empty = ! 0, this._disposables.add(e.onWillType((() => { if (!this._empty) return; if (!e.hasModel()) return; const t = e.getSelections(), i = t.length; let n = !1; for (let e = 0; e < i; e++) if (!t[e].isEmpty()) { n = !0; break } if (!n) return; this._lastOvertyped = []; const o = e.getModel(); for (let e = 0; e < i; e++) { const i = t[e]; if (o.getValueLengthInRange(i) > ht._maxSelectionLength) return; this._lastOvertyped[e] = { value: o.getValueInRange(i), multiline: i.startLineNumber !== i.endLineNumber } } this._empty = !1 }))), this._disposables.add(t.onDidCancel((e => { this._empty || e.retrigger || (this._empty = !0) }))) } getLastOvertypedInfo(e) { if (!this._empty && e >= 0 && e < this._lastOvertyped.length) return this._lastOvertyped[e] } dispose() { this._disposables.dispose() } } ht._maxSelectionLength = 51200; var ut = i(187), gt = i(1432), pt = i(4013), mt = function(e, t) { return function(i, n) { t(i, n, e) } }; class ft { constructor(e, t) { if (this._model = e, this._position = t, e.getLineMaxColumn(t.lineNumber) !== t.column) { const i = e.getOffsetAt(t), n = e.getPositionAt(i + 1); this._marker = e.deltaDecorations([], [{ range: h.e.fromPositions(t, n), options: { description: "suggest-line-suffix", stickiness: 1 } }]) } } dispose() { this._marker && !this._model.isDisposed() && this._model.deltaDecorations( this._marker, []) } delta(e) { if (this._model.isDisposed() || this._position.lineNumber !== e.lineNumber) return 0; if (this._marker) { const t = this._model.getDecorationRange(this._marker[0]); return this._model.getOffsetAt(t.getStartPosition()) - this._model.getOffsetAt( e) } return this._model.getLineMaxColumn(e.lineNumber) - e.column } } let _t = class e { constructor(e, t, i, n, o, r) { this._memoryService = t, this._commandService = i, this._contextKeyService = n, this._instantiationService = o, this._logService = r, this._lineSuffix = new a.XK, this._toDispose = new a.SL, this.editor = e, this.model = o.createInstance(Y, this.editor); const l = M._y.InsertMode.bindTo(n); l.set(e.getOption(106).insertMode), this.model.onDidTrigger((() => l.set( e.getOption(106).insertMode))), this.widget = this._toDispose.add( new b.Ue((() => { const e = this._instantiationService.createInstance(rt, this.editor); this._toDispose.add(e), this._toDispose.add(e.onDidSelect((e => this._insertSuggestion(e, 0)), this)); const t = new ct(this.editor, e, (e => this._insertSuggestion(e, 2))); this._toDispose.add(t), this._toDispose.add(this.model.onDidSuggest( (e => { 0 === e.completionModel.items.length && t.reset() }))); const i = M._y.MakesTextEdit.bindTo(this._contextKeyService), n = M._y.HasInsertAndReplaceRange.bindTo(this._contextKeyService), o = M._y.CanResolve.bindTo(this._contextKeyService); return this._toDispose.add((0, a.OF)((() => { i.reset(), n.reset(), o.reset() }))), this._toDispose.add(e.onDidFocus((({ item: e }) => { const t = this.editor.getPosition(), r = e.editStart.column, s = t.column; let a = !0; "smart" !== this.editor.getOption(1) || 2 !== this.model.state || e.completion.command || e.completion.additionalTextEdits || 4 & e.completion.insertTextRules || s - r !== e.completion .insertText.length || (a = this.editor.getModel().getValueInRange({ startLineNumber: t.lineNumber, startColumn: r, endLineNumber: t.lineNumber, endColumn: s }) !== e.completion.insertText), i.set(a), n.set(!ut.L.equals( e.editInsertEnd, e.editReplaceEnd)), o.set(Boolean(e.provider .resolveCompletionItem) || Boolean(e.completion.documentation) || e.completion.detail !== e.completion.label) }))), this._toDispose.add(e.onDetailsKeyDown((e => { e.toKeybinding().equals(new s.QC(!0, !1, !1, !1, 33)) || gt .dz && e.toKeybinding().equals(new s.QC(!1, !1, !1, !0, 33)) ? e.stopPropagation() : e.toKeybinding().isModifierKey() || this.editor.focus() }))), e }))), this._overtypingCapturer = this._toDispose.add(new b.Ue((() => this._toDispose.add(new ht(this.editor, this.model))))), this._alternatives = this._toDispose.add(new b.Ue((() => this._toDispose.add(new A(this.editor, this._contextKeyService))))), this._toDispose.add(o.createInstance( at, e)), this._toDispose.add(this.model.onDidTrigger((e => { this.widget.value.showTriggered(e.auto, e.shy ? 250 : 50), this._lineSuffix .value = new ft(this.editor.getModel(), e.position) }))), this._toDispose.add(this.model.onDidSuggest((e => { if (!e.shy) { let t = this._memoryService.select(this.editor.getModel(), this .editor.getPosition(), e.completionModel.items); this.widget.value.showSuggestions(e.completionModel, t, e.isFrozen, e.auto) } }))), this._toDispose.add(this.model.onDidCancel((e => { e.retrigger || this.widget.value.hideWidget() }))), this._toDispose.add(this.editor.onDidBlurEditorWidget((() => { this.model.cancel(), this.model.clear() }))); let d = M._y.AcceptSuggestionsOnEnter.bindTo(n), c = () => { const e = this.editor.getOption(1); d.set("on" === e || "smart" === e) }; this._toDispose.add(this.editor.onDidChangeConfiguration((() => c()))), c() } static get(t) { return t.getContribution(e.ID) } dispose() { this._alternatives.dispose(), this._toDispose.dispose(), this.widget.dispose(), this.model.dispose(), this._lineSuffix.dispose() } _insertSuggestion(e, t) { if (!e || !e.item) return this._alternatives.value.reset(), this.model .cancel(), void this.model.clear(); if (!this.editor.hasModel()) return; const i = this.editor.getModel(), n = i.getAlternativeVersionId(), { item: o } = e, s = [], a = new V.A; 1 & t || this.editor.pushUndoStop(); const d = this.getOverwriteInfo(o, Boolean(8 & t)); if (this._memoryService.memorize(i, this.editor.getPosition(), o), Array.isArray(o.completion.additionalTextEdits)) { const e = l.ZF.capture(this.editor); this.editor.executeEdits( "suggestController.additionalTextEdits.sync", o.completion.additionalTextEdits .map((e => c.h.replace(h.e.lift(e.range), e.text)))), e.restoreRelativeVerticalPositionOfCursor( this.editor) } else if (!o.isResolved) { const e = new pt.G(!0); let n; const r = i.onDidChangeContent((e => { if (e.isFlush) return a.cancel(), void r.dispose(); for (let t of e.changes) { const e = h.e.getEndPosition(t.range); n && !ut.L.isBefore(e, n) || (n = e) } })); let d = t; t |= 2; let u = !1, g = this.editor.onWillType((() => { g.dispose(), u = !0, 2 & d || this.editor.pushUndoStop() })); s.push(o.resolve(a.token).then((() => { if (!o.completion.additionalTextEdits || a.token.isCancellationRequested) return !1; if (n && o.completion.additionalTextEdits.some((e => ut.L.isBefore( n, h.e.getStartPosition(e.range))))) return !1; u && this.editor.pushUndoStop(); const e = l.ZF.capture(this.editor); return this.editor.executeEdits( "suggestController.additionalTextEdits.async", o.completion.additionalTextEdits .map((e => c.h.replace(h.e.lift(e.range), e.text)))), e.restoreRelativeVerticalPositionOfCursor( this.editor), !u && 2 & d || this.editor.pushUndoStop(), !0 })).then((t => { this._logService.trace( "[suggest] async resolving of edits DONE (ms, applied?)", e.elapsed(), t), r.dispose(), g.dispose() }))) } let { insertText: u } = o.completion; 4 & o.completion.insertTextRules || (u = p.Yj.escape(u)), g.SnippetController2 .get(this.editor).insert(u, { overwriteBefore: d.overwriteBefore, overwriteAfter: d.overwriteAfter, undoStopBefore: !1, undoStopAfter: !1, adjustWhitespace: !(1 & o.completion.insertTextRules), clipboardText: e.model.clipboardText, overtypingCapturer: this._overtypingCapturer.value }), 2 & t || this.editor.pushUndoStop(), o.completion.command ? o.completion .command.id === bt.id ? this.model.trigger({ auto: !0, shy: !1 }, !0) : (s.push(this._commandService.executeCommand(o.completion.command .id, ...o.completion.command.arguments ? [...o.completion.command .arguments ] : []).catch(r.dL)), this.model.cancel()) : this.model.cancel(), 4 & t && this._alternatives.value.set(e, (e => { for (a.cancel(); i.canUndo();) { n !== i.getAlternativeVersionId() && i.undo(), this._insertSuggestion( e, 3 | (8 & t ? 8 : 0)); break } })), this._alertCompletionItem(o), Promise.all(s).finally((() => { this.model.clear(), a.dispose() })) } getOverwriteInfo(e, t) { (0, lt.p_)(this.editor.hasModel()); let i = "replace" === this.editor.getOption(106).insertMode; t && (i = !i); const n = e.position.column - e.editStart.column, o = (i ? e.editReplaceEnd.column : e.editInsertEnd.column) - e.position .column; return { overwriteBefore: n + (this.editor.getPosition().column - e.position.column), overwriteAfter: o + (this._lineSuffix.value ? this._lineSuffix.value .delta(this.editor.getPosition()) : 0) } } _alertCompletionItem(e) { if ((0, o.Of)(e.completion.additionalTextEdits)) { let t = D.N("aria.alert.snippet", "Accepting '{0}' made {1} additional edits", e.textLabel, e.completion .additionalTextEdits.length); (0, n.Z9)(t) } } triggerSuggest(e) { this.editor.hasModel() && (this.model.trigger({ auto: !1, shy: !1 }, !1, e), this.editor.revealLine(this.editor.getPosition().lineNumber, 0), this.editor.focus()) } triggerSuggestAndAcceptBest(e) { if (!this.editor.hasModel()) return; const t = this.editor.getPosition(), i = () => { t.equals(this.editor.getPosition()) && this._commandService.executeCommand( e.fallback) }, n = e => { if (4 & e.completion.insertTextRules || e.completion.additionalTextEdits) return !0; const t = this.editor.getPosition(), i = e.editStart.column, n = t.column; return n - i !== e.completion.insertText.length || this.editor.getModel() .getValueInRange({ startLineNumber: t.lineNumber, startColumn: i, endLineNumber: t.lineNumber, endColumn: n }) !== e.completion.insertText }; P.ju.once(this.model.onDidTrigger)((e => { let t = []; P.ju.any(this.model.onDidTrigger, this.model.onDidCancel)((() => { (0, a.B9)(t), i() }), void 0, t), this.model.onDidSuggest((({ completionModel: e }) => { if ((0, a.B9)(t), 0 === e.items.length) return void i(); const o = this._memoryService.select(this.editor.getModel(), this.editor.getPosition(), e.items), r = e.items[o]; n(r) ? (this.editor.pushUndoStop(), this._insertSuggestion({ index: o, item: r, model: e }, 7)) : i() }), void 0, t) })), this.model.trigger({ auto: !1, shy: !0 }), this.editor.revealLine(t.lineNumber, 0), this.editor.focus() } acceptSelectedSuggestion(e, t) { const i = this.widget.value.getFocusedItem(); let n = 0; e && (n |= 4), t && (n |= 8), this._insertSuggestion(i, n) } acceptNextSuggestion() { this._alternatives.value.next() } acceptPrevSuggestion() { this._alternatives.value.prev() } cancelSuggestWidget() { this.model.cancel(), this.model.clear(), this.widget.value.hideWidget() } 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() } }; _t.ID = "editor.contrib.suggestController", _t = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([mt(1, N), mt(2, E.H), mt(3, I.i6), mt(4, v.TG), mt(5, q.VZ)], _t); class bt extends d.R6 { constructor() { super({ id: bt.id, label: D.N("suggest.trigger.label", "Trigger Suggest"), alias: "Trigger Suggest", precondition: I.Ao.and(u.u.writable, u.u.hasCompletionItemProvider), kbOpts: { kbExpr: u.u.textInputFocus, primary: 2058, secondary: [2087], mac: { primary: 266, secondary: [521, 2087] }, weight: 100 } }) } run(e, t) { const i = _t.get(t); i && i.triggerSuggest() } } bt.id = "editor.action.triggerSuggest", (0, d._K)(_t.ID, _t), (0, d.Qr)( bt); const vt = 190, wt = d._l.bindToContribution(_t.get); (0, d.fK)(new wt({ id: "acceptSelectedSuggestion", precondition: M._y.Visible, handler(e) { e.acceptSelectedSuggestion(!0, !1) } })), T.W.registerKeybindingRule({ id: "acceptSelectedSuggestion", when: I.Ao.and(M._y.Visible, u.u.textInputFocus), primary: 2, weight: vt }), T.W.registerKeybindingRule({ id: "acceptSelectedSuggestion", when: I.Ao.and(M._y.Visible, u.u.textInputFocus, M._y.AcceptSuggestionsOnEnter, M._y.MakesTextEdit), primary: 3, weight: vt }), Ne.BH.appendMenuItem(M.GI, { command: { id: "acceptSelectedSuggestion", title: D.N("accept.insert", "Insert") }, group: "left", order: 1, when: M._y.HasInsertAndReplaceRange.toNegated() }), Ne.BH.appendMenuItem(M.GI, { command: { id: "acceptSelectedSuggestion", title: D.N("accept.insert", "Insert") }, group: "left", order: 1, when: I.Ao.and(M._y.HasInsertAndReplaceRange, M._y.InsertMode.isEqualTo( "insert")) }), Ne.BH.appendMenuItem(M.GI, { command: { id: "acceptSelectedSuggestion", title: D.N("accept.replace", "Replace") }, group: "left", order: 1, when: I.Ao.and(M._y.HasInsertAndReplaceRange, M._y.InsertMode.isEqualTo( "replace")) }), (0, d.fK)(new wt({ id: "acceptAlternativeSelectedSuggestion", precondition: I.Ao.and(M._y.Visible, u.u.textInputFocus), kbOpts: { weight: vt, kbExpr: u.u.textInputFocus, primary: 1027, secondary: [1026] }, handler(e) { e.acceptSelectedSuggestion(!1, !0) }, menuOpts: [{ menuId: M.GI, group: "left", order: 2, when: I.Ao.and(M._y.HasInsertAndReplaceRange, M._y.InsertMode.isEqualTo( "insert")), title: D.N("accept.replace", "Replace") }, { menuId: M.GI, group: "left", order: 2, when: I.Ao.and(M._y.HasInsertAndReplaceRange, M._y.InsertMode.isEqualTo( "replace")), title: D.N("accept.insert", "Insert") }] })), E.P.registerCommandAlias("acceptSelectedSuggestionOnEnter", "acceptSelectedSuggestion"), (0, d.fK)(new wt({ id: "hideSuggestWidget", precondition: M._y.Visible, handler: e => e.cancelSuggestWidget(), kbOpts: { weight: vt, kbExpr: u.u.textInputFocus, primary: 9, secondary: [1033] } })), (0, d.fK)(new wt({ id: "selectNextSuggestion", precondition: I.Ao.and(M._y.Visible, M._y.MultipleSuggestions), handler: e => e.selectNextSuggestion(), kbOpts: { weight: vt, kbExpr: u.u.textInputFocus, primary: 18, secondary: [2066], mac: { primary: 18, secondary: [2066, 300] } } })), (0, d.fK)(new wt({ id: "selectNextPageSuggestion", precondition: I.Ao.and(M._y.Visible, M._y.MultipleSuggestions), handler: e => e.selectNextPageSuggestion(), kbOpts: { weight: vt, kbExpr: u.u.textInputFocus, primary: 12, secondary: [2060] } })), (0, d.fK)(new wt({ id: "selectLastSuggestion", precondition: I.Ao.and(M._y.Visible, M._y.MultipleSuggestions), handler: e => e.selectLastSuggestion() })), (0, d.fK)(new wt({ id: "selectPrevSuggestion", precondition: I.Ao.and(M._y.Visible, M._y.MultipleSuggestions), handler: e => e.selectPrevSuggestion(), kbOpts: { weight: vt, kbExpr: u.u.textInputFocus, primary: 16, secondary: [2064], mac: { primary: 16, secondary: [2064, 302] } } })), (0, d.fK)(new wt({ id: "selectPrevPageSuggestion", precondition: I.Ao.and(M._y.Visible, M._y.MultipleSuggestions), handler: e => e.selectPrevPageSuggestion(), kbOpts: { weight: vt, kbExpr: u.u.textInputFocus, primary: 11, secondary: [2059] } })), (0, d.fK)(new wt({ id: "selectFirstSuggestion", precondition: I.Ao.and(M._y.Visible, M._y.MultipleSuggestions), handler: e => e.selectFirstSuggestion() })), (0, d.fK)(new wt({ id: "toggleSuggestionDetails", precondition: M._y.Visible, handler: e => e.toggleSuggestionDetails(), kbOpts: { weight: vt, kbExpr: u.u.textInputFocus, primary: 2058, mac: { primary: 266 } }, menuOpts: [{ menuId: M.GI, group: "right", order: 1, when: I.Ao.and(M._y.DetailsVisible, M._y.CanResolve), title: D.N("detail.more", "show less") }, { menuId: M.GI, group: "right", order: 1, when: I.Ao.and(M._y.DetailsVisible.toNegated(), M._y.CanResolve), title: D.N("detail.less", "show more") }] })), (0, d.fK)(new wt({ id: "toggleExplainMode", precondition: M._y.Visible, handler: e => e.toggleExplainMode(), kbOpts: { weight: 100, primary: 2133 } })), (0, d.fK)(new wt({ id: "toggleSuggestionFocus", precondition: M._y.Visible, handler: e => e.toggleSuggestionFocus(), kbOpts: { weight: vt, kbExpr: u.u.textInputFocus, primary: 2570, mac: { primary: 778 } } })), (0, d.fK)(new wt({ id: "insertBestCompletion", precondition: I.Ao.and(u.u.textInputFocus, I.Ao.equals( "config.editor.tabCompletion", "on"), at.AtEnd, M._y.Visible.toNegated(), A.OtherSuggestions.toNegated(), g.SnippetController2.InSnippetMode.toNegated() ), handler: (e, t) => { e.triggerSuggestAndAcceptBest((0, lt.Kn)(t) ? Object.assign({ fallback: "tab" }, t) : { fallback: "tab" }) }, kbOpts: { weight: vt, primary: 2 } })), (0, d.fK)(new wt({ id: "insertNextSuggestion", precondition: I.Ao.and(u.u.textInputFocus, I.Ao.equals( "config.editor.tabCompletion", "on"), A.OtherSuggestions, M._y.Visible .toNegated(), g.SnippetController2.InSnippetMode.toNegated()), handler: e => e.acceptNextSuggestion(), kbOpts: { weight: vt, kbExpr: u.u.textInputFocus, primary: 2 } })), (0, d.fK)(new wt({ id: "insertPrevSuggestion", precondition: I.Ao.and(u.u.textInputFocus, I.Ao.equals( "config.editor.tabCompletion", "on"), A.OtherSuggestions, M._y.Visible .toNegated(), g.SnippetController2.InSnippetMode.toNegated()), handler: e => e.acceptPrevSuggestion(), kbOpts: { weight: vt, kbExpr: u.u.textInputFocus, primary: 1026 } })), (0, d.Qr)(class extends d.R6 { constructor() { super({ id: "editor.action.resetSuggestSize", label: D.N("suggest.reset.label", "Reset Suggest Widget Size"), alias: "Reset Suggest Widget Size", precondition: void 0 }) } run(e, t) { _t.get(t).resetWidgetSize() } }) }, 4954: (e, t, i) => { "use strict"; var n = i(3580), o = i(7781), r = i(3910), s = i(3046); const a = (0, r.P6)("symbolIcon.arrayForeground", { dark: r.dR, light: r.dR, hc: r.dR }, (0, n.N)("symbolIcon.arrayForeground", "The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget." )), l = (0, r.P6)("symbolIcon.booleanForeground", { dark: r.dR, light: r.dR, hc: r.dR }, (0, n.N)("symbolIcon.booleanForeground", "The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget." )), d = (0, r.P6)("symbolIcon.classForeground", { dark: "#EE9D28", light: "#D67E00", hc: "#EE9D28" }, (0, n.N)("symbolIcon.classForeground", "The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget." )), c = (0, r.P6)("symbolIcon.colorForeground", { dark: r.dR, light: r.dR, hc: r.dR }, (0, n.N)("symbolIcon.colorForeground", "The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget." )), h = (0, r.P6)("symbolIcon.constantForeground", { dark: r.dR, light: r.dR, hc: r.dR }, (0, n.N)("symbolIcon.constantForeground", "The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget." )), u = (0, r.P6)("symbolIcon.constructorForeground", { dark: "#B180D7", light: "#652D90", hc: "#B180D7" }, (0, n.N)("symbolIcon.constructorForeground", "The foreground color for constructor symbols. These symbols appear in the outline, breadcrumb, and suggest widget." )), g = (0, r.P6)("symbolIcon.enumeratorForeground", { dark: "#EE9D28", light: "#D67E00", hc: "#EE9D28" }, (0, n.N)("symbolIcon.enumeratorForeground", "The foreground color for enumerator symbols. These symbols appear in the outline, breadcrumb, and suggest widget." )), p = (0, r.P6)("symbolIcon.enumeratorMemberForeground", { dark: "#75BEFF", light: "#007ACC", hc: "#75BEFF" }, (0, n.N)("symbolIcon.enumeratorMemberForeground", "The foreground color for enumerator member symbols. These symbols appear in the outline, breadcrumb, and suggest widget." )), m = (0, r.P6)("symbolIcon.eventForeground", { dark: "#EE9D28", light: "#D67E00", hc: "#EE9D28" }, (0, n.N)("symbolIcon.eventForeground", "The foreground color for event symbols. These symbols appear in the outline, breadcrumb, and suggest widget." )), f = (0, r.P6)("symbolIcon.fieldForeground", { dark: "#75BEFF", light: "#007ACC", hc: "#75BEFF" }, (0, n.N)("symbolIcon.fieldForeground", "The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget." )), _ = (0, r.P6)("symbolIcon.fileForeground", { dark: r.dR, light: r.dR, hc: r.dR }, (0, n.N)("symbolIcon.fileForeground", "The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget." )), b = (0, r.P6)("symbolIcon.folderForeground", { dark: r.dR, light: r.dR, hc: r.dR }, (0, n.N)("symbolIcon.folderForeground", "The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget." )), v = (0, r.P6)("symbolIcon.functionForeground", { dark: "#B180D7", light: "#652D90", hc: "#B180D7" }, (0, n.N)("symbolIcon.functionForeground", "The foreground color for function symbols. These symbols appear in the outline, breadcrumb, and suggest widget." )), w = (0, r.P6)("symbolIcon.interfaceForeground", { dark: "#75BEFF", light: "#007ACC", hc: "#75BEFF" }, (0, n.N)("symbolIcon.interfaceForeground", "The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget." )), C = (0, r.P6)("symbolIcon.keyForeground", { dark: r.dR, light: r.dR, hc: r.dR }, (0, n.N)("symbolIcon.keyForeground", "The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget." )), y = (0, r.P6)("symbolIcon.keywordForeground", { dark: r.dR, light: r.dR, hc: r.dR }, (0, n.N)("symbolIcon.keywordForeground", "The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget." )), S = (0, r.P6)("symbolIcon.methodForeground", { dark: "#B180D7", light: "#652D90", hc: "#B180D7" }, (0, n.N)("symbolIcon.methodForeground", "The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget." )), x = (0, r.P6)("symbolIcon.moduleForeground", { dark: r.dR, light: r.dR, hc: r.dR }, (0, n.N)("symbolIcon.moduleForeground", "The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget." )), k = (0, r.P6)("symbolIcon.namespaceForeground", { dark: r.dR, light: r.dR, hc: r.dR }, (0, n.N)("symbolIcon.namespaceForeground", "The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget." )), L = (0, r.P6)("symbolIcon.nullForeground", { dark: r.dR, light: r.dR, hc: r.dR }, (0, n.N)("symbolIcon.nullForeground", "The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget." )), N = (0, r.P6)("symbolIcon.numberForeground", { dark: r.dR, light: r.dR, hc: r.dR }, (0, n.N)("symbolIcon.numberForeground", "The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget." )), D = (0, r.P6)("symbolIcon.objectForeground", { dark: r.dR, light: r.dR, hc: r.dR }, (0, n.N)("symbolIcon.objectForeground", "The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget." )), E = (0, r.P6)("symbolIcon.operatorForeground", { dark: r.dR, light: r.dR, hc: r.dR }, (0, n.N)("symbolIcon.operatorForeground", "The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget." )), I = (0, r.P6)("symbolIcon.packageForeground", { dark: r.dR, light: r.dR, hc: r.dR }, (0, n.N)("symbolIcon.packageForeground", "The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget." )), T = (0, r.P6)("symbolIcon.propertyForeground", { dark: r.dR, light: r.dR, hc: r.dR }, (0, n.N)("symbolIcon.propertyForeground", "The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget." )), M = (0, r.P6)("symbolIcon.referenceForeground", { dark: r.dR, light: r.dR, hc: r.dR }, (0, n.N)("symbolIcon.referenceForeground", "The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget." )), A = (0, r.P6)("symbolIcon.snippetForeground", { dark: r.dR, light: r.dR, hc: r.dR }, (0, n.N)("symbolIcon.snippetForeground", "The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget." )), R = (0, r.P6)("symbolIcon.stringForeground", { dark: r.dR, light: r.dR, hc: r.dR }, (0, n.N)("symbolIcon.stringForeground", "The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget." )), O = (0, r.P6)("symbolIcon.structForeground", { dark: r.dR, light: r.dR, hc: r.dR }, (0, n.N)("symbolIcon.structForeground", "The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget." )), P = (0, r.P6)("symbolIcon.textForeground", { dark: r.dR, light: r.dR, hc: r.dR }, (0, n.N)("symbolIcon.textForeground", "The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget." )), F = (0, r.P6)("symbolIcon.typeParameterForeground", { dark: r.dR, light: r.dR, hc: r.dR }, (0, n.N)("symbolIcon.typeParameterForeground", "The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget." )), B = (0, r.P6)("symbolIcon.unitForeground", { dark: r.dR, light: r.dR, hc: r.dR }, (0, n.N)("symbolIcon.unitForeground", "The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget." )), W = (0, r.P6)("symbolIcon.variableForeground", { dark: "#75BEFF", light: "#007ACC", hc: "#75BEFF" }, (0, n.N)("symbolIcon.variableForeground", "The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget." )); (0, o.Ic)(((e, t) => { const i = e.getColor(a); i && t.addRule(`${s.lA.symbolArray.cssSelector} { color: ${i}; }`); const n = e.getColor(l); n && t.addRule(`${s.lA.symbolBoolean.cssSelector} { color: ${n}; }`); const o = e.getColor(d); o && t.addRule(`${s.lA.symbolClass.cssSelector} { color: ${o}; }`); const r = e.getColor(S); r && t.addRule(`${s.lA.symbolMethod.cssSelector} { color: ${r}; }`); const z = e.getColor(c); z && t.addRule(`${s.lA.symbolColor.cssSelector} { color: ${z}; }`); const V = e.getColor(h); V && t.addRule(`${s.lA.symbolConstant.cssSelector} { color: ${V}; }`); const H = e.getColor(u); H && t.addRule( `${s.lA.symbolConstructor.cssSelector} { color: ${H}; }`); const U = e.getColor(g); U && t.addRule( `\n\t\t\t${s.lA.symbolValue.cssSelector},${s.lA.symbolEnum.cssSelector} { color: ${U}; }` ); const j = e.getColor(p); j && t.addRule(`${s.lA.symbolEnumMember.cssSelector} { color: ${j}; }`); const K = e.getColor(m); K && t.addRule(`${s.lA.symbolEvent.cssSelector} { color: ${K}; }`); const $ = e.getColor(f); $ && t.addRule(`${s.lA.symbolField.cssSelector} { color: ${$}; }`); const q = e.getColor(_); q && t.addRule(`${s.lA.symbolFile.cssSelector} { color: ${q}; }`); const Z = e.getColor(b); Z && t.addRule(`${s.lA.symbolFolder.cssSelector} { color: ${Z}; }`); const G = e.getColor(v); G && t.addRule(`${s.lA.symbolFunction.cssSelector} { color: ${G}; }`); const Y = e.getColor(w); Y && t.addRule(`${s.lA.symbolInterface.cssSelector} { color: ${Y}; }`); const Q = e.getColor(C); Q && t.addRule(`${s.lA.symbolKey.cssSelector} { color: ${Q}; }`); const X = e.getColor(y); X && t.addRule(`${s.lA.symbolKeyword.cssSelector} { color: ${X}; }`); const J = e.getColor(x); J && t.addRule(`${s.lA.symbolModule.cssSelector} { color: ${J}; }`); const ee = e.getColor(k); ee && t.addRule( `${s.lA.symbolNamespace.cssSelector} { color: ${ee}; }`); const te = e.getColor(L); te && t.addRule(`${s.lA.symbolNull.cssSelector} { color: ${te}; }`); const ie = e.getColor(N); ie && t.addRule(`${s.lA.symbolNumber.cssSelector} { color: ${ie}; }`); const ne = e.getColor(D); ne && t.addRule(`${s.lA.symbolObject.cssSelector} { color: ${ne}; }`); const oe = e.getColor(E); oe && t.addRule(`${s.lA.symbolOperator.cssSelector} { color: ${oe}; }`); const re = e.getColor(I); re && t.addRule(`${s.lA.symbolPackage.cssSelector} { color: ${re}; }`); const se = e.getColor(T); se && t.addRule(`${s.lA.symbolProperty.cssSelector} { color: ${se}; }`); const ae = e.getColor(M); ae && t.addRule( `${s.lA.symbolReference.cssSelector} { color: ${ae}; }`); const le = e.getColor(A); le && t.addRule(`${s.lA.symbolSnippet.cssSelector} { color: ${le}; }`); const de = e.getColor(R); de && t.addRule(`${s.lA.symbolString.cssSelector} { color: ${de}; }`); const ce = e.getColor(O); ce && t.addRule(`${s.lA.symbolStruct.cssSelector} { color: ${ce}; }`); const he = e.getColor(P); he && t.addRule(`${s.lA.symbolText.cssSelector} { color: ${he}; }`); const ue = e.getColor(F); ue && t.addRule( `${s.lA.symbolTypeParameter.cssSelector} { color: ${ue}; }`); const ge = e.getColor(B); ge && t.addRule(`${s.lA.symbolUnit.cssSelector} { color: ${ge}; }`); const pe = e.getColor(W); pe && t.addRule(`${s.lA.symbolVariable.cssSelector} { color: ${pe}; }`) })) }, 9720: (e, t, i) => { "use strict"; i.r(t), i.d(t, { ToggleTabFocusModeAction: () => a }); var n = i(3580), o = i(6346), r = i(6830), s = i(6345); class a extends r.R6 { constructor() { super({ id: a.ID, label: n.N({ key: "toggle.tabMovesFocus", comment: [ "Turn on/off use of tab key for moving focus around VS Code" ] }, "Toggle Tab Key Moves Focus"), alias: "Toggle Tab Key Moves Focus", precondition: void 0, kbOpts: { kbExpr: null, primary: 2091, mac: { primary: 1323 }, weight: 100 } }) } run(e, t) { const i = !s.nG.getTabFocusMode(); s.nG.setTabFocusMode(i), i ? (0, o.Z9)(n.N("toggle.tabMovesFocus.on", "Pressing Tab will now move focus to the next focusable element")) : (0, o.Z9)(n.N("toggle.tabMovesFocus.off", "Pressing Tab will now insert the tab character")) } } a.ID = "editor.action.toggleTabFocusMode", (0, r.Qr)(a) }, 1725: (e, t, i) => { "use strict"; i.r(t), i.d(t, { UnusualLineTerminatorsDetector: () => h }); var n = i(3580), o = i(5976), r = i(6830), s = i(1640), a = i(8820), l = i(5935), d = function(e, t) { return function(i, n) { t(i, n, e) } }; const c = "ignoreUnusualLineTerminators"; let h = class extends o.JT { constructor(e, t, i) { super(), this._editor = e, this._dialogService = t, this._codeEditorService = i, this._config = this._editor.getOption(113), this._register(this._editor .onDidChangeConfiguration((e => { e.hasChanged(113) && (this._config = this._editor.getOption(113), this._checkForUnusualLineTerminators()) }))), this._register(this._editor.onDidChangeModel((() => { this._checkForUnusualLineTerminators() }))), this._register(this._editor.onDidChangeModelContent((e => { e.isUndoing || this._checkForUnusualLineTerminators() }))) } _checkForUnusualLineTerminators() { return e = this, t = void 0, o = function*() { if ("off" === this._config) return; if (!this._editor.hasModel()) return; const e = this._editor.getModel(); if (!e.mightContainUnusualLineTerminators()) return; const t = function(e, t) { return e.getModelProperty(t.uri, c) }(this._codeEditorService, e); !0 !== t && (this._editor.getOption(80) || ("auto" !== this._config ? (yield this._dialogService.confirm({ title: n.N("unusualLineTerminators.title", "Unusual Line Terminators"), message: n.N("unusualLineTerminators.message", "Detected unusual line terminators"), detail: n.N("unusualLineTerminators.detail", "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, l.EZ)(e.uri)), primaryButton: n.N("unusualLineTerminators.fix", "Remove Unusual Line Terminators"), secondaryButton: n.N("unusualLineTerminators.ignore", "Ignore") })).confirmed ? e.removeUnusualLineTerminators(this._editor.getSelections()) : function(e, t, i) { e.setModelProperty(t.uri, c, !0) }(this._codeEditorService, e) : e.removeUnusualLineTerminators( this._editor.getSelections()))) }, new((i = void 0) || (i = Promise))((function(n, r) { function s(e) { try { l(o.next(e)) } catch (e) { r(e) } } function a(e) { try { l(o.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? n(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((o = o.apply(e, t || [])).next()) })); var e, t, i, o } }; h.ID = "editor.contrib.unusualLineTerminatorsDetector", h = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([d(1, a.S), d(2, s.$)], h), (0, r._K)(h.ID, h) }, 185: (e, t, i) => { "use strict"; i.r(t); var n = i(5393), o = i(5976), r = i(6830), s = i(4101), a = i(1200), l = i(5072), d = i(7781), c = i(3108), h = i(7390), u = i(9510), g = function(e, t) { return function(i, n) { t(i, n, e) } }; let p = class extends o.JT { constructor(e, t, i, o) { super(), this._modelService = t, this._themeService = i, this._configurationService = o, this._editor = e, this._tokenizeViewport = new n.pY((() => this._tokenizeViewportNow()), 100), this._outstandingRequests = [], this._register(this._editor.onDidScrollChange( (() => { this._tokenizeViewport.schedule() }))), this._register(this._editor.onDidChangeModel((() => { this._cancelAll(), this._tokenizeViewport.schedule() }))), this._register(this._editor.onDidChangeModelContent((e => { this._cancelAll(), this._tokenizeViewport.schedule() }))), this._register(s.K7.onDidChange((() => { this._cancelAll(), this._tokenizeViewport.schedule() }))), this._register(this._configurationService.onDidChangeConfiguration( (e => { e.affectsConfiguration(h.e3) && (this._cancelAll(), this._tokenizeViewport .schedule()) }))), this._register(this._themeService.onDidColorThemeChange((() => { this._cancelAll(), this._tokenizeViewport.schedule() }))) } _cancelAll() { for (const e of this._outstandingRequests) e.cancel(); this._outstandingRequests = [] } _removeOutstandingRequest(e) { for (let t = 0, i = this._outstandingRequests.length; t < i; t++) if (this._outstandingRequests[t] === e) return void this._outstandingRequests .splice(t, 1) } _tokenizeViewportNow() { if (!this._editor.hasModel()) return; const e = this._editor.getModel(); if (e.hasCompleteSemanticTokens()) return; if (!(0, h.tw)(e, this._themeService, this._configurationService)) return void(e.hasSomeSemanticTokens() && e.setSemanticTokens(null, ! 1)); const t = (0, u.St)(e); if (!t) return void(e.hasSomeSemanticTokens() && e.setSemanticTokens( null, !1)); const i = this._modelService.getSemanticTokensProviderStyling(t), n = this._editor.getVisibleRangesPlusViewportAboveBelow(); this._outstandingRequests = this._outstandingRequests.concat(n.map((n => this._requestRange(e, n, t, i)))) } _requestRange(e, t, i, o) { const r = e.getVersionId(), s = (0, n.PG)((n => Promise.resolve(i.provideDocumentRangeSemanticTokens( e, t, n)))); return s.then((i => { i && !e.isDisposed() && e.getVersionId() === r && e.setPartialSemanticTokens( t, (0, l.h)(i, o, e.getLanguageIdentifier())) })).then((() => this._removeOutstandingRequest(s)), (() => this._removeOutstandingRequest( s))), s } }; p.ID = "editor.contrib.viewportSemanticTokens", p = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([g(1, a.q), g(2, d.XE), g(3, c.Ui)], p), (0, r._K)(p.ID, p) }, 3497: (e, t, i) => { "use strict"; i.r(t), i.d(t, { getOccurrencesAtPosition: () => L }); var n = i(3580), o = i(9488), r = i(5393), s = i(1050), a = i(7301), l = i(5976), d = i(6830), c = i(4314), h = i(9102), u = i(4973), g = i(6281), p = i(4101), m = i(8819), f = i(3910), _ = i(7781), b = i(6346); const v = (0, f.P6)("editor.wordHighlightBackground", { dark: "#575757B8", light: "#57575740", hc: null }, n.N("wordHighlight", "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), w = (0, f.P6)("editor.wordHighlightStrongBackground", { dark: "#004972B8", light: "#0e639c40", hc: null }, n.N("wordHighlightStrong", "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), C = (0, f.P6)("editor.wordHighlightBorder", { light: null, dark: null, hc: f.xL }, n.N("wordHighlightBorder", "Border color of a symbol during read-access, like reading a variable." )), y = (0, f.P6)("editor.wordHighlightStrongBorder", { light: null, dark: null, hc: f.xL }, n.N("wordHighlightStrongBorder", "Border color of a symbol during write-access, like writing to a variable." )), S = (0, f.P6)("editorOverviewRuler.wordHighlightForeground", { dark: "#A0A0A0CC", light: "#A0A0A0CC", hc: "#A0A0A0CC" }, n.N("overviewRulerWordHighlightForeground", "Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations." ), !0), x = (0, f.P6)("editorOverviewRuler.wordHighlightStrongForeground", { dark: "#C0A0C0CC", light: "#C0A0C0CC", hc: "#C0A0C0CC" }, n.N("overviewRulerWordHighlightStrongForeground", "Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations." ), !0), k = new m.uy("hasWordHighlights", !1); function L(e, t, i) { const n = p.vH.ordered(e); return (0, r.Ps)(n.map((n => () => Promise.resolve(n.provideDocumentHighlights( e, t, i)).then(void 0, a.Cp))), o.Of) } class N { constructor(e, t, i) { this._wordRange = this._getCurrentWordRange(e, t), this.result = (0, r .PG)((n => this._compute(e, t, i, n))) } _getCurrentWordRange(e, t) { const i = e.getWordAtPosition(t.getPosition()); return i ? new c.e(t.startLineNumber, i.startColumn, t.startLineNumber, i.endColumn) : null } isValid(e, t, i) { const n = t.startLineNumber, o = t.startColumn, r = t.endColumn, s = this._getCurrentWordRange(e, t); let a = Boolean(this._wordRange && this._wordRange.equalsRange(s)); for (let t = 0, s = i.length; !a && t < s; t++) { let s = e.getDecorationRange(i[t]); s && s.startLineNumber === n && s.startColumn <= o && s.endColumn >= r && (a = !0) } return a } cancel() { this.result.cancel() } } class D extends N { _compute(e, t, i, n) { return L(e, t.getPosition(), n).then((e => e || [])) } } class E extends N { constructor(e, t, i) { super(e, t, i), this._selectionIsEmpty = t.isEmpty() } _compute(e, t, i, n) { return (0, r.Vs)(250, n).then((() => { if (!t.isEmpty()) return []; const n = e.getWordAtPosition(t.getPosition()); return !n || n.word.length > 1e3 ? [] : e.findMatches(n.word, !0, ! 1, !0, i, !1).map((e => ({ range: e.range, kind: p.MY.Text }))) })) } isValid(e, t, i) { const n = t.isEmpty(); return this._selectionIsEmpty === n && super.isValid(e, t, i) } }(0, d.sb)("_executeDocumentHighlights", ((e, t) => L(e, t, s.T.None))); class I { constructor(e, t) { this.toUnhook = new l.SL, this.workerRequestTokenId = 0, this.workerRequestCompleted = ! 1, this.workerRequestValue = [], this.lastCursorPositionChangeTime = 0, this.renderDecorationsTimer = -1, this.editor = e, this._hasWordHighlights = k.bindTo(t), this._ignorePositionChangeEvent = !1, this.occurrencesHighlight = this.editor.getOption(71), this.model = this.editor.getModel(), this.toUnhook .add(e.onDidChangeCursorPosition((e => { this._ignorePositionChangeEvent || this.occurrencesHighlight && this._onPositionChanged(e) }))), this.toUnhook.add(e.onDidChangeModelContent((e => { this._stopAll() }))), this.toUnhook.add(e.onDidChangeConfiguration((e => { let t = this.editor.getOption(71); this.occurrencesHighlight !== t && (this.occurrencesHighlight = t, this._stopAll()) }))), this._decorationIds = [], this.workerRequestTokenId = 0, this.workerRequest = null, this.workerRequestCompleted = !1, this.lastCursorPositionChangeTime = 0, this.renderDecorationsTimer = -1 } hasDecorations() { return this._decorationIds.length > 0 } restore() { this.occurrencesHighlight && this._run() } _getSortedHighlights() { return o.kX(this._decorationIds.map((e => this.model.getDecorationRange( e))).sort(c.e.compareRangesUsingStarts)) } moveNext() { let e = this._getSortedHighlights(), t = (e.findIndex((e => e.containsPosition(this.editor.getPosition()))) + 1) % e.length, i = e[t]; try { this._ignorePositionChangeEvent = !0, this.editor.setPosition(i.getStartPosition()), this.editor.revealRangeInCenterIfOutsideViewport(i); const n = this._getWord(); if (n) { const o = this.editor.getModel().getLineContent(i.startLineNumber); (0, b.Z9)(`${o}, ${t+1} of ${e.length} for '${n.word}'`) } } finally { this._ignorePositionChangeEvent = !1 } } moveBack() { let e = this._getSortedHighlights(), t = (e.findIndex((e => e.containsPosition(this.editor.getPosition()))) - 1 + e.length) % e.length, i = e[t]; try { this._ignorePositionChangeEvent = !0, this.editor.setPosition(i.getStartPosition()), this.editor.revealRangeInCenterIfOutsideViewport(i); const n = this._getWord(); if (n) { const o = this.editor.getModel().getLineContent(i.startLineNumber); (0, b.Z9)(`${o}, ${t+1} of ${e.length} for '${n.word}'`) } } finally { this._ignorePositionChangeEvent = !1 } } _removeDecorations() { this._decorationIds.length > 0 && (this._decorationIds = this.editor.deltaDecorations( this._decorationIds, []), this._hasWordHighlights.set(!1)) } _stopAll() { this._removeDecorations(), -1 !== this.renderDecorationsTimer && ( clearTimeout(this.renderDecorationsTimer), this.renderDecorationsTimer = - 1), null !== this.workerRequest && (this.workerRequest.cancel(), this.workerRequest = null), this.workerRequestCompleted || (this.workerRequestTokenId++, this.workerRequestCompleted = !0) } _onPositionChanged(e) { this.occurrencesHighlight && 3 === e.reason ? this._run() : this._stopAll() } _getWord() { let e = this.editor.getSelection(), t = e.startLineNumber, i = e.startColumn; return this.model.getWordAtPosition({ lineNumber: t, column: i }) } _run() { let e = this.editor.getSelection(); if (e.startLineNumber !== e.endLineNumber) return void this._stopAll(); let t = e.startColumn, i = e.endColumn; const n = this._getWord(); if (!n || n.startColumn > t || n.endColumn < i) return void this._stopAll(); const o = this.workerRequest && this.workerRequest.isValid(this.model, e, this._decorationIds); if (this.lastCursorPositionChangeTime = (new Date).getTime(), o) this.workerRequestCompleted && -1 !== this.renderDecorationsTimer && (clearTimeout(this.renderDecorationsTimer), this.renderDecorationsTimer = -1, this._beginRenderDecorations()); else { this._stopAll(); let e = ++this.workerRequestTokenId; this.workerRequestCompleted = !1, this.workerRequest = (r = this.model, s = this.editor.getSelection(), l = this.editor.getOption(116), p.vH .has(r) ? new D(r, s, l) : new E(r, s, l)), this.workerRequest.result .then((t => { e === this.workerRequestTokenId && (this.workerRequestCompleted = ! 0, this.workerRequestValue = t || [], this._beginRenderDecorations() ) }), a.dL) } var r, s, l } _beginRenderDecorations() { let e = (new Date).getTime(), t = this.lastCursorPositionChangeTime + 250; e >= t ? (this.renderDecorationsTimer = -1, this.renderDecorations()) : this.renderDecorationsTimer = setTimeout((() => { this.renderDecorations() }), t - e) } renderDecorations() { this.renderDecorationsTimer = -1; let e = []; for (const t of this.workerRequestValue) t.range && e.push({ range: t.range, options: I._getDecorationOptions(t.kind) }); this._decorationIds = this.editor.deltaDecorations(this._decorationIds, e), this._hasWordHighlights.set(this.hasDecorations()) } static _getDecorationOptions(e) { return e === p.MY.Write ? this._WRITE_OPTIONS : e === p.MY.Text ? this ._TEXT_OPTIONS : this._REGULAR_OPTIONS } dispose() { this._stopAll(), this.toUnhook.dispose() } } I._WRITE_OPTIONS = g.qx.register({ description: "word-highlight-strong", stickiness: 1, className: "wordHighlightStrong", overviewRuler: { color: (0, _.EN)(x), position: u.sh.Center } }), I._TEXT_OPTIONS = g.qx.register({ description: "selection-highlight", stickiness: 1, className: "selectionHighlight", overviewRuler: { color: (0, _.EN)(f.SP), position: u.sh.Center } }), I._REGULAR_OPTIONS = g.qx.register({ description: "word-highlight", stickiness: 1, className: "wordHighlight", overviewRuler: { color: (0, _.EN)(S), position: u.sh.Center } }); let T = class e extends l.JT { constructor(e, t) { super(), this.wordHighlighter = null; const i = () => { e.hasModel() && (this.wordHighlighter = new I(e, t)) }; this._register(e.onDidChangeModel((e => { this.wordHighlighter && (this.wordHighlighter.dispose(), this.wordHighlighter = null), i() }))), i() } static get(t) { return t.getContribution(e.ID) } saveViewState() { return !(!this.wordHighlighter || !this.wordHighlighter.hasDecorations()) } moveNext() { this.wordHighlighter && this.wordHighlighter.moveNext() } moveBack() { this.wordHighlighter && this.wordHighlighter.moveBack() } restoreViewState(e) { this.wordHighlighter && e && this.wordHighlighter.restore() } dispose() { this.wordHighlighter && (this.wordHighlighter.dispose(), this.wordHighlighter = null), super.dispose() } }; var M, A; T.ID = "editor.contrib.wordHighlighter", T = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([(M = 1, A = m.i6, function(e, t) { A(e, t, M) })], T); class R extends d.R6 { constructor(e, t) { super(t), this._isNext = e } run(e, t) { const i = T.get(t); i && (this._isNext ? i.moveNext() : i.moveBack()) } } class O extends d.R6 { constructor() { super({ id: "editor.action.wordHighlight.trigger", label: n.N("wordHighlight.trigger.label", "Trigger Symbol Highlight"), alias: "Trigger Symbol Highlight", precondition: k.toNegated(), kbOpts: { kbExpr: h.u.editorTextFocus, primary: 0, weight: 100 } }) } run(e, t, i) { const n = T.get(t); n && n.restoreViewState(!0) } }(0, d._K)(T.ID, T), (0, d.Qr)(class extends R { constructor() { super(!0, { id: "editor.action.wordHighlight.next", label: n.N("wordHighlight.next.label", "Go to Next Symbol Highlight"), alias: "Go to Next Symbol Highlight", precondition: k, kbOpts: { kbExpr: h.u.editorTextFocus, primary: 65, weight: 100 } }) } }), (0, d.Qr)(class extends R { constructor() { super(!1, { id: "editor.action.wordHighlight.prev", label: n.N("wordHighlight.previous.label", "Go to Previous Symbol Highlight"), alias: "Go to Previous Symbol Highlight", precondition: k, kbOpts: { kbExpr: h.u.editorTextFocus, primary: 1089, weight: 100 } }) } }), (0, d.Qr)(O), (0, _.Ic)(((e, t) => { const i = e.getColor(f.Rz); i && (t.addRule( `.monaco-editor .focused .selectionHighlight { background-color: ${i}; }` ), t.addRule( `.monaco-editor .selectionHighlight { background-color: ${i.transparent(.5)}; }` )); const n = e.getColor(v); n && t.addRule( `.monaco-editor .wordHighlight { background-color: ${n}; }`); const o = e.getColor(w); o && t.addRule( `.monaco-editor .wordHighlightStrong { background-color: ${o}; }`); const r = e.getColor(f.g_); r && t.addRule( `.monaco-editor .selectionHighlight { border: 1px ${"hc"===e.type?"dotted":"solid"} ${r}; box-sizing: border-box; }` ); const s = e.getColor(C); s && t.addRule( `.monaco-editor .wordHighlight { border: 1px ${"hc"===e.type?"dashed":"solid"} ${s}; box-sizing: border-box; }` ); const a = e.getColor(y); a && t.addRule( `.monaco-editor .wordHighlightStrong { border: 1px ${"hc"===e.type?"dashed":"solid"} ${a}; box-sizing: border-box; }` ) })) }, 9453: (e, t, i) => { "use strict"; i.r(t), i.d(t, { MoveWordCommand: () => b, WordLeftCommand: () => v, WordRightCommand: () => w, CursorWordStartLeft: () => C, CursorWordEndLeft: () => y, CursorWordLeft: () => S, CursorWordStartLeftSelect: () => x, CursorWordEndLeftSelect: () => k, CursorWordLeftSelect: () => L, CursorWordAccessibilityLeft: () => N, CursorWordAccessibilityLeftSelect: () => D, CursorWordStartRight: () => E, CursorWordEndRight: () => I, CursorWordRight: () => T, CursorWordStartRightSelect: () => M, CursorWordEndRightSelect: () => A, CursorWordRightSelect: () => R, CursorWordAccessibilityRight: () => O, CursorWordAccessibilityRightSelect: () => P, DeleteWordCommand: () => F, DeleteWordLeftCommand: () => B, DeleteWordRightCommand: () => W, DeleteWordStartLeft: () => z, DeleteWordEndLeft: () => V, DeleteWordLeft: () => H, DeleteWordStartRight: () => U, DeleteWordEndRight: () => j, DeleteWordRight: () => K, DeleteInsideWord: () => $ }); var n = i(3580), o = i(6830), r = i(1329), s = i(3181), a = i(5795), l = i(9410), d = i(187), c = i(4314), h = i(3860), u = i(9102), g = i(1106), p = i(8819), m = i(4141), f = i(3831), _ = i(9282); class b extends o._l { constructor(e) { super(e), this._inSelectionMode = e.inSelectionMode, this._wordNavigationType = e.wordNavigationType } runEditorCommand(e, t, i) { if (!t.hasModel()) return; const n = (0, l.u)(t.getOption(116)), o = t.getModel(), r = t.getSelections().map((e => { const t = new d.L(e.positionLineNumber, e.positionColumn), i = this._move(n, o, t, this._wordNavigationType); return this._moveTo(e, i, this._inSelectionMode) })); if (o.pushStackElement(), t._getViewModel().setCursorStates( "moveWordCommand", 3, r.map((e => s.Vi.fromModelSelection(e)))), 1 === r.length) { const e = new d.L(r[0].positionLineNumber, r[0].positionColumn); t.revealPosition(e, 0) } } _moveTo(e, t, i) { return i ? new h.Y(e.selectionStartLineNumber, e.selectionStartColumn, t.lineNumber, t.column) : new h.Y(t.lineNumber, t.column, t.lineNumber, t.column) } } class v extends b { _move(e, t, i, n) { return a.w.moveWordLeft(e, t, i, n) } } class w extends b { _move(e, t, i, n) { return a.w.moveWordRight(e, t, i, n) } } class C extends v { constructor() { super({ inSelectionMode: !1, wordNavigationType: 0, id: "cursorWordStartLeft", precondition: void 0 }) } } class y extends v { constructor() { super({ inSelectionMode: !1, wordNavigationType: 2, id: "cursorWordEndLeft", precondition: void 0 }) } } class S extends v { constructor() { var e; super({ inSelectionMode: !1, wordNavigationType: 1, id: "cursorWordLeft", precondition: void 0, kbOpts: { kbExpr: p.Ao.and(u.u.textInputFocus, null === (e = p.Ao.and(g.U, _ .c)) || void 0 === e ? void 0 : e.negate()), primary: 2063, mac: { primary: 527 }, weight: 100 } }) } } class x extends v { constructor() { super({ inSelectionMode: !0, wordNavigationType: 0, id: "cursorWordStartLeftSelect", precondition: void 0 }) } } class k extends v { constructor() { super({ inSelectionMode: !0, wordNavigationType: 2, id: "cursorWordEndLeftSelect", precondition: void 0 }) } } class L extends v { constructor() { var e; super({ inSelectionMode: !0, wordNavigationType: 1, id: "cursorWordLeftSelect", precondition: void 0, kbOpts: { kbExpr: p.Ao.and(u.u.textInputFocus, null === (e = p.Ao.and(g.U, _ .c)) || void 0 === e ? void 0 : e.negate()), primary: 3087, mac: { primary: 1551 }, weight: 100 } }) } } class N extends v { constructor() { super({ inSelectionMode: !1, wordNavigationType: 3, id: "cursorWordAccessibilityLeft", precondition: void 0 }) } _move(e, t, i, n) { return super._move((0, l.u)(m.BH.wordSeparators.defaultValue), t, i, n) } } class D extends v { constructor() { super({ inSelectionMode: !0, wordNavigationType: 3, id: "cursorWordAccessibilityLeftSelect", precondition: void 0 }) } _move(e, t, i, n) { return super._move((0, l.u)(m.BH.wordSeparators.defaultValue), t, i, n) } } class E extends w { constructor() { super({ inSelectionMode: !1, wordNavigationType: 0, id: "cursorWordStartRight", precondition: void 0 }) } } class I extends w { constructor() { var e; super({ inSelectionMode: !1, wordNavigationType: 2, id: "cursorWordEndRight", precondition: void 0, kbOpts: { kbExpr: p.Ao.and(u.u.textInputFocus, null === (e = p.Ao.and(g.U, _ .c)) || void 0 === e ? void 0 : e.negate()), primary: 2065, mac: { primary: 529 }, weight: 100 } }) } } class T extends w { constructor() { super({ inSelectionMode: !1, wordNavigationType: 2, id: "cursorWordRight", precondition: void 0 }) } } class M extends w { constructor() { super({ inSelectionMode: !0, wordNavigationType: 0, id: "cursorWordStartRightSelect", precondition: void 0 }) } } class A extends w { constructor() { var e; super({ inSelectionMode: !0, wordNavigationType: 2, id: "cursorWordEndRightSelect", precondition: void 0, kbOpts: { kbExpr: p.Ao.and(u.u.textInputFocus, null === (e = p.Ao.and(g.U, _ .c)) || void 0 === e ? void 0 : e.negate()), primary: 3089, mac: { primary: 1553 }, weight: 100 } }) } } class R extends w { constructor() { super({ inSelectionMode: !0, wordNavigationType: 2, id: "cursorWordRightSelect", precondition: void 0 }) } } class O extends w { constructor() { super({ inSelectionMode: !1, wordNavigationType: 3, id: "cursorWordAccessibilityRight", precondition: void 0 }) } _move(e, t, i, n) { return super._move((0, l.u)(m.BH.wordSeparators.defaultValue), t, i, n) } } class P extends w { constructor() { super({ inSelectionMode: !0, wordNavigationType: 3, id: "cursorWordAccessibilityRightSelect", precondition: void 0 }) } _move(e, t, i, n) { return super._move((0, l.u)(m.BH.wordSeparators.defaultValue), t, i, n) } } class F extends o._l { constructor(e) { super(e), this._whitespaceHeuristics = e.whitespaceHeuristics, this._wordNavigationType = e.wordNavigationType } runEditorCommand(e, t, i) { if (!t.hasModel()) return; const n = (0, l.u)(t.getOption(116)), o = t.getModel(), s = t.getSelections(), a = t.getOption(5), d = t.getOption(8), c = f.zu.getAutoClosingPairs(o.getLanguageIdentifier().id), h = t._getViewModel(), u = s.map((e => { const i = this._delete({ wordSeparators: n, model: o, selection: e, whitespaceHeuristics: this._whitespaceHeuristics, autoClosingDelete: t.getOption(6), autoClosingBrackets: a, autoClosingQuotes: d, autoClosingPairs: c, autoClosedCharacters: h.getCursorAutoClosedCharacters() }, this._wordNavigationType); return new r.T4(i, "") })); t.pushUndoStop(), t.executeCommands(this.id, u), t.pushUndoStop() } } class B extends F { _delete(e, t) { return a.w.deleteWordLeft(e, t) || new c.e(1, 1, 1, 1) } } class W extends F { _delete(e, t) { let i = a.w.deleteWordRight(e, t); if (i) return i; const n = e.model.getLineCount(), o = e.model.getLineMaxColumn(n); return new c.e(n, o, n, o) } } class z extends B { constructor() { super({ whitespaceHeuristics: !1, wordNavigationType: 0, id: "deleteWordStartLeft", precondition: u.u.writable }) } } class V extends B { constructor() { super({ whitespaceHeuristics: !1, wordNavigationType: 2, id: "deleteWordEndLeft", precondition: u.u.writable }) } } class H extends B { constructor() { super({ whitespaceHeuristics: !0, wordNavigationType: 0, id: "deleteWordLeft", precondition: u.u.writable, kbOpts: { kbExpr: u.u.textInputFocus, primary: 2049, mac: { primary: 513 }, weight: 100 } }) } } class U extends W { constructor() { super({ whitespaceHeuristics: !1, wordNavigationType: 0, id: "deleteWordStartRight", precondition: u.u.writable }) } } class j extends W { constructor() { super({ whitespaceHeuristics: !1, wordNavigationType: 2, id: "deleteWordEndRight", precondition: u.u.writable }) } } class K extends W { constructor() { super({ whitespaceHeuristics: !0, wordNavigationType: 2, id: "deleteWordRight", precondition: u.u.writable, kbOpts: { kbExpr: u.u.textInputFocus, primary: 2068, mac: { primary: 532 }, weight: 100 } }) } } class $ extends o.R6 { constructor() { super({ id: "deleteInsideWord", precondition: u.u.writable, label: n.N("deleteInsideWord", "Delete Word"), alias: "Delete Word" }) } run(e, t, i) { if (!t.hasModel()) return; const n = (0, l.u)(t.getOption(116)), o = t.getModel(), s = t.getSelections().map((e => { const t = a.w.deleteInsideWord(n, o, e); return new r.T4(t, "") })); t.pushUndoStop(), t.executeCommands(this.id, s), t.pushUndoStop() } }(0, o.fK)(new C), (0, o.fK)(new y), (0, o.fK)(new S), (0, o.fK)(new x), ( 0, o.fK)(new k), (0, o.fK)(new L), (0, o.fK)(new E), (0, o.fK)(new I), ( 0, o.fK)(new T), (0, o.fK)(new M), (0, o.fK)(new A), (0, o.fK)(new R), ( 0, o.fK)(new N), (0, o.fK)(new D), (0, o.fK)(new O), (0, o.fK)(new P), ( 0, o.fK)(new z), (0, o.fK)(new V), (0, o.fK)(new H), (0, o.fK)(new U), ( 0, o.fK)(new j), (0, o.fK)(new K), (0, o.Qr)($) }, 661: (e, t, i) => { "use strict"; i.r(t), i.d(t, { DeleteWordPartLeft: () => d, DeleteWordPartRight: () => c, WordPartLeftCommand: () => h, CursorWordPartLeft: () => u, CursorWordPartLeftSelect: () => g, WordPartRightCommand: () => p, CursorWordPartRight: () => m, CursorWordPartRightSelect: () => f }); var n = i(6830), o = i(5795), r = i(4314), s = i(9102), a = i(9453), l = i(4565); class d extends a.DeleteWordCommand { constructor() { super({ whitespaceHeuristics: !0, wordNavigationType: 0, id: "deleteWordPartLeft", precondition: s.u.writable, kbOpts: { kbExpr: s.u.textInputFocus, primary: 0, mac: { primary: 769 }, weight: 100 } }) } _delete(e, t) { return o.L.deleteWordPartLeft(e) || new r.e(1, 1, 1, 1) } } class c extends a.DeleteWordCommand { constructor() { super({ whitespaceHeuristics: !0, wordNavigationType: 2, id: "deleteWordPartRight", precondition: s.u.writable, kbOpts: { kbExpr: s.u.textInputFocus, primary: 0, mac: { primary: 788 }, weight: 100 } }) } _delete(e, t) { let i = o.L.deleteWordPartRight(e); if (i) return i; const n = e.model.getLineCount(), s = e.model.getLineMaxColumn(n); return new r.e(n, s, n, s) } } class h extends a.MoveWordCommand { _move(e, t, i, n) { return o.L.moveWordPartLeft(e, t, i) } } class u extends h { constructor() { super({ inSelectionMode: !1, wordNavigationType: 0, id: "cursorWordPartLeft", precondition: void 0, kbOpts: { kbExpr: s.u.textInputFocus, primary: 0, mac: { primary: 783 }, weight: 100 } }) } } l.P.registerCommandAlias("cursorWordPartStartLeft", "cursorWordPartLeft"); class g extends h { constructor() { super({ inSelectionMode: !0, wordNavigationType: 0, id: "cursorWordPartLeftSelect", precondition: void 0, kbOpts: { kbExpr: s.u.textInputFocus, primary: 0, mac: { primary: 1807 }, weight: 100 } }) } } l.P.registerCommandAlias("cursorWordPartStartLeftSelect", "cursorWordPartLeftSelect"); class p extends a.MoveWordCommand { _move(e, t, i, n) { return o.L.moveWordPartRight(e, t, i) } } class m extends p { constructor() { super({ inSelectionMode: !1, wordNavigationType: 2, id: "cursorWordPartRight", precondition: void 0, kbOpts: { kbExpr: s.u.textInputFocus, primary: 0, mac: { primary: 785 }, weight: 100 } }) } } class f extends p { constructor() { super({ inSelectionMode: !0, wordNavigationType: 2, id: "cursorWordPartRightSelect", precondition: void 0, kbOpts: { kbExpr: s.u.textInputFocus, primary: 0, mac: { primary: 1809 }, weight: 100 } }) } }(0, n.fK)(new d), (0, n.fK)(new c), (0, n.fK)(new u), (0, n.fK)(new g), ( 0, n.fK)(new m), (0, n.fK)(new f) }, 110: (e, t, i) => { "use strict"; i.d(t, { Emitter: () => _l, MarkerSeverity: () => vl, MarkerTag: () => wl, Range: () => bl, Uri: () => Cl, editor: () => yl, languages: () => Sl }); var n, o, r, s, a, l, d, c, h, u, g, p, m, f, _, b, v, w, C, y, S, x, k, L, N, D, E, I, T, M, A, R, O, P, F, B = i(4141), W = i(1050), z = i(4669), V = i(2258), H = i(666), U = i(187), j = i(4314), K = i(3860), $ = i(5600); ! function(e) { e[e.Unknown = 0] = "Unknown", e[e.Disabled = 1] = "Disabled", e[e.Enabled = 2] = "Enabled" }(n || (n = {})), function(e) { e[e.KeepWhitespace = 1] = "KeepWhitespace", e[e.InsertAsSnippet = 4] = "InsertAsSnippet" }(o || (o = {})), function(e) { e[e.Method = 0] = "Method", e[e.Function = 1] = "Function", e[e.Constructor = 2] = "Constructor", e[e.Field = 3] = "Field", e[e.Variable = 4] = "Variable", e[e.Class = 5] = "Class", e[e.Struct = 6] = "Struct", e[e.Interface = 7] = "Interface", e[e.Module = 8] = "Module", e[e.Property = 9] = "Property", e[e.Event = 10] = "Event", e[e.Operator = 11] = "Operator", e[e.Unit = 12] = "Unit", e[e.Value = 13] = "Value", e[e.Constant = 14] = "Constant", e[e.Enum = 15] = "Enum", e[e.EnumMember = 16] = "EnumMember", e[e.Keyword = 17] = "Keyword", e[e.Text = 18] = "Text", e[ e.Color = 19] = "Color", e[e.File = 20] = "File", e[e.Reference = 21] = "Reference", e[e.Customcolor = 22] = "Customcolor", e[e.Folder = 23] = "Folder", e[e.TypeParameter = 24] = "TypeParameter", e[e.User = 25] = "User", e[e.Issue = 26] = "Issue", e[e.Snippet = 27] = "Snippet" }(r || (r = {})), function(e) { e[e.Deprecated = 1] = "Deprecated" }(s || (s = {})), function(e) { e[e.Invoke = 0] = "Invoke", e[e.TriggerCharacter = 1] = "TriggerCharacter", e[e.TriggerForIncompleteCompletions = 2] = "TriggerForIncompleteCompletions" }(a || (a = {})), function(e) { e[e.EXACT = 0] = "EXACT", e[e.ABOVE = 1] = "ABOVE", e[e.BELOW = 2] = "BELOW" }(l || (l = {})), function(e) { e[e.NotSet = 0] = "NotSet", e[e.ContentFlush = 1] = "ContentFlush", e[e.RecoverFromMarkers = 2] = "RecoverFromMarkers", e[e.Explicit = 3] = "Explicit", e[e.Paste = 4] = "Paste", e[e.Undo = 5] = "Undo", e[e.Redo = 6] = "Redo" }(d || (d = {})), function(e) { e[e.LF = 1] = "LF", e[e.CRLF = 2] = "CRLF" }(c || (c = {})), function(e) { e[e.Text = 0] = "Text", e[e.Read = 1] = "Read", e[e.Write = 2] = "Write" }(h || (h = {})), function(e) { e[e.None = 0] = "None", e[e.Keep = 1] = "Keep", e[e.Brackets = 2] = "Brackets", e[e.Advanced = 3] = "Advanced", e[e.Full = 4] = "Full" }(u || (u = {})), function(e) { e[e.acceptSuggestionOnCommitCharacter = 0] = "acceptSuggestionOnCommitCharacter", e[e.acceptSuggestionOnEnter = 1] = "acceptSuggestionOnEnter", e[e.accessibilitySupport = 2] = "accessibilitySupport", e[e.accessibilityPageSize = 3] = "accessibilityPageSize", e[e.ariaLabel = 4] = "ariaLabel", e[e.autoClosingBrackets = 5] = "autoClosingBrackets", e[e.autoClosingDelete = 6] = "autoClosingDelete", e[e.autoClosingOvertype = 7] = "autoClosingOvertype", e[e.autoClosingQuotes = 8] = "autoClosingQuotes", e[e.autoIndent = 9] = "autoIndent", e[e.automaticLayout = 10] = "automaticLayout", e[e.autoSurround = 11] = "autoSurround", e[e.bracketPairColorization = 12] = "bracketPairColorization", e[e.codeLens = 13] = "codeLens", e[e.codeLensFontFamily = 14] = "codeLensFontFamily", e[e.codeLensFontSize = 15] = "codeLensFontSize", e[e.colorDecorators = 16] = "colorDecorators", e[e.columnSelection = 17] = "columnSelection", e[e.comments = 18] = "comments", e[e.contextmenu = 19] = "contextmenu", e[e.copyWithSyntaxHighlighting = 20] = "copyWithSyntaxHighlighting", e[e.cursorBlinking = 21] = "cursorBlinking", e[e.cursorSmoothCaretAnimation = 22] = "cursorSmoothCaretAnimation", e[e.cursorStyle = 23] = "cursorStyle", e[ e.cursorSurroundingLines = 24] = "cursorSurroundingLines", e[e.cursorSurroundingLinesStyle = 25] = "cursorSurroundingLinesStyle", e[e.cursorWidth = 26] = "cursorWidth", e[e.disableLayerHinting = 27] = "disableLayerHinting", e[ e.disableMonospaceOptimizations = 28] = "disableMonospaceOptimizations", e[e.domReadOnly = 29] = "domReadOnly", e[e.dragAndDrop = 30] = "dragAndDrop", e[e.emptySelectionClipboard = 31] = "emptySelectionClipboard", e[e.extraEditorClassName = 32] = "extraEditorClassName", e[e.fastScrollSensitivity = 33] = "fastScrollSensitivity", e[e.find = 34] = "find", e[e.fixedOverflowWidgets = 35] = "fixedOverflowWidgets", e[e.folding = 36] = "folding", e[e.foldingStrategy = 37] = "foldingStrategy", e[e.foldingHighlight = 38] = "foldingHighlight", e[e.foldingImportsByDefault = 39] = "foldingImportsByDefault", e[e.unfoldOnClickAfterEndOfLine = 40] = "unfoldOnClickAfterEndOfLine", e[e.fontFamily = 41] = "fontFamily", e[e .fontInfo = 42] = "fontInfo", e[e.fontLigatures = 43] = "fontLigatures", e[e.fontSize = 44] = "fontSize", e[e.fontWeight = 45] = "fontWeight", e[e.formatOnPaste = 46] = "formatOnPaste", e[e.formatOnType = 47] = "formatOnType", e[e.glyphMargin = 48] = "glyphMargin", e[e.gotoLocation = 49] = "gotoLocation", e[e.hideCursorInOverviewRuler = 50] = "hideCursorInOverviewRuler", e[e.highlightActiveIndentGuide = 51] = "highlightActiveIndentGuide", e[e.hover = 52] = "hover", e[e.inDiffEditor = 53] = "inDiffEditor", e[e.inlineSuggest = 54] = "inlineSuggest", e[e.letterSpacing = 55] = "letterSpacing", e[e.lightbulb = 56] = "lightbulb", e[e.lineDecorationsWidth = 57] = "lineDecorationsWidth", e[e.lineHeight = 58] = "lineHeight", e[e .lineNumbers = 59] = "lineNumbers", e[e.lineNumbersMinChars = 60] = "lineNumbersMinChars", e[e.linkedEditing = 61] = "linkedEditing", e[e.links = 62] = "links", e[e.matchBrackets = 63] = "matchBrackets", e[e.minimap = 64] = "minimap", e[e.mouseStyle = 65] = "mouseStyle", e[e.mouseWheelScrollSensitivity = 66] = "mouseWheelScrollSensitivity", e[e.mouseWheelZoom = 67] = "mouseWheelZoom", e[e.multiCursorMergeOverlapping = 68] = "multiCursorMergeOverlapping", e[e.multiCursorModifier = 69] = "multiCursorModifier", e[e.multiCursorPaste = 70] = "multiCursorPaste", e[e.occurrencesHighlight = 71] = "occurrencesHighlight", e[e.overviewRulerBorder = 72] = "overviewRulerBorder", e[e.overviewRulerLanes = 73] = "overviewRulerLanes", e[e.padding = 74] = "padding", e[e.parameterHints = 75] = "parameterHints", e[e.peekWidgetDefaultFocus = 76] = "peekWidgetDefaultFocus", e[e.definitionLinkOpensInPeek = 77] = "definitionLinkOpensInPeek", e[e.quickSuggestions = 78] = "quickSuggestions", e[e.quickSuggestionsDelay = 79] = "quickSuggestionsDelay", e[e.readOnly = 80] = "readOnly", e[e.renameOnType = 81] = "renameOnType", e[e.renderControlCharacters = 82] = "renderControlCharacters", e[e.renderIndentGuides = 83] = "renderIndentGuides", e[e.renderFinalNewline = 84] = "renderFinalNewline", e[e.renderLineHighlight = 85] = "renderLineHighlight", e[e.renderLineHighlightOnlyWhenFocus = 86] = "renderLineHighlightOnlyWhenFocus", e[e.renderValidationDecorations = 87] = "renderValidationDecorations", e[e.renderWhitespace = 88] = "renderWhitespace", e[e.revealHorizontalRightPadding = 89] = "revealHorizontalRightPadding", e[e.roundedSelection = 90] = "roundedSelection", e[e.rulers = 91] = "rulers", e[e.scrollbar = 92] = "scrollbar", e[e.scrollBeyondLastColumn = 93] = "scrollBeyondLastColumn", e[e.scrollBeyondLastLine = 94] = "scrollBeyondLastLine", e[e.scrollPredominantAxis = 95] = "scrollPredominantAxis", e[e.selectionClipboard = 96] = "selectionClipboard", e[e.selectionHighlight = 97] = "selectionHighlight", e[e.selectOnLineNumbers = 98] = "selectOnLineNumbers", e[e.showFoldingControls = 99] = "showFoldingControls", e[e.showUnused = 100] = "showUnused", e[e.snippetSuggestions = 101] = "snippetSuggestions", e[e.smartSelect = 102] = "smartSelect", e[ e.smoothScrolling = 103] = "smoothScrolling", e[e.stickyTabStops = 104] = "stickyTabStops", e[e.stopRenderingLineAfter = 105] = "stopRenderingLineAfter", e[e.suggest = 106] = "suggest", e[e.suggestFontSize = 107] = "suggestFontSize", e[e.suggestLineHeight = 108] = "suggestLineHeight", e[e.suggestOnTriggerCharacters = 109] = "suggestOnTriggerCharacters", e[e.suggestSelection = 110] = "suggestSelection", e[e.tabCompletion = 111] = "tabCompletion", e[e.tabIndex = 112] = "tabIndex", e[e.unusualLineTerminators = 113] = "unusualLineTerminators", e[e.useShadowDOM = 114] = "useShadowDOM", e[e .useTabStops = 115] = "useTabStops", e[e.wordSeparators = 116] = "wordSeparators", e[e.wordWrap = 117] = "wordWrap", e[e.wordWrapBreakAfterCharacters = 118] = "wordWrapBreakAfterCharacters", e[e.wordWrapBreakBeforeCharacters = 119] = "wordWrapBreakBeforeCharacters", e[e.wordWrapColumn = 120] = "wordWrapColumn", e[e.wordWrapOverride1 = 121] = "wordWrapOverride1", e[ e.wordWrapOverride2 = 122] = "wordWrapOverride2", e[e.wrappingIndent = 123] = "wrappingIndent", e[e.wrappingStrategy = 124] = "wrappingStrategy", e[e.showDeprecated = 125] = "showDeprecated", e[e.inlayHints = 126] = "inlayHints", e[e.editorClassName = 127] = "editorClassName", e[ e.pixelRatio = 128] = "pixelRatio", e[e.tabFocusMode = 129] = "tabFocusMode", e[e.layoutInfo = 130] = "layoutInfo", e[e.wrappingInfo = 131] = "wrappingInfo" }(g || (g = {})), function(e) { e[e.TextDefined = 0] = "TextDefined", e[e.LF = 1] = "LF", e[e.CRLF = 2] = "CRLF" }(p || (p = {})), function(e) { e[e.LF = 0] = "LF", e[e.CRLF = 1] = "CRLF" }(m || (m = {})), function(e) { e[e.None = 0] = "None", e[e.Indent = 1] = "Indent", e[e.IndentOutdent = 2] = "IndentOutdent", e[e.Outdent = 3] = "Outdent" }(f || (f = {})), function(e) { e[e.Other = 0] = "Other", e[e.Type = 1] = "Type", e[e.Parameter = 2] = "Parameter" }(_ || (_ = {})), function(e) { e[e.Automatic = 0] = "Automatic", e[e.Explicit = 1] = "Explicit" }(b || (b = {})), function(e) { e[e.DependsOnKbLayout = -1] = "DependsOnKbLayout", e[e.Unknown = 0] = "Unknown", e[e.Backspace = 1] = "Backspace", e[e.Tab = 2] = "Tab", e[e.Enter = 3] = "Enter", e[e.Shift = 4] = "Shift", e[e.Ctrl = 5] = "Ctrl", e[e.Alt = 6] = "Alt", e[e.PauseBreak = 7] = "PauseBreak", e[e.CapsLock = 8] = "CapsLock", e[e.Escape = 9] = "Escape", e[e.Space = 10] = "Space", e[e.PageUp = 11] = "PageUp", e[e.PageDown = 12] = "PageDown", e[e.End = 13] = "End", e[e.Home = 14] = "Home", e[e.LeftArrow = 15] = "LeftArrow", e[e.UpArrow = 16] = "UpArrow", e[e.RightArrow = 17] = "RightArrow", e[e.DownArrow = 18] = "DownArrow", e[e.Insert = 19] = "Insert", e[e.Delete = 20] = "Delete", e[e.KEY_0 = 21] = "KEY_0", e[e.KEY_1 = 22] = "KEY_1", e[e.KEY_2 = 23] = "KEY_2", e[e.KEY_3 = 24] = "KEY_3", e[e.KEY_4 = 25] = "KEY_4", e[ e.KEY_5 = 26] = "KEY_5", e[e.KEY_6 = 27] = "KEY_6", e[e.KEY_7 = 28] = "KEY_7", e[e.KEY_8 = 29] = "KEY_8", e[e.KEY_9 = 30] = "KEY_9", e[e.KEY_A = 31] = "KEY_A", e[e.KEY_B = 32] = "KEY_B", e[e.KEY_C = 33] = "KEY_C", e[ e.KEY_D = 34] = "KEY_D", e[e.KEY_E = 35] = "KEY_E", e[e.KEY_F = 36] = "KEY_F", e[e.KEY_G = 37] = "KEY_G", e[e.KEY_H = 38] = "KEY_H", e[e.KEY_I = 39] = "KEY_I", e[e.KEY_J = 40] = "KEY_J", e[e.KEY_K = 41] = "KEY_K", e[ e.KEY_L = 42] = "KEY_L", e[e.KEY_M = 43] = "KEY_M", e[e.KEY_N = 44] = "KEY_N", e[e.KEY_O = 45] = "KEY_O", e[e.KEY_P = 46] = "KEY_P", e[e.KEY_Q = 47] = "KEY_Q", e[e.KEY_R = 48] = "KEY_R", e[e.KEY_S = 49] = "KEY_S", e[ e.KEY_T = 50] = "KEY_T", e[e.KEY_U = 51] = "KEY_U", e[e.KEY_V = 52] = "KEY_V", e[e.KEY_W = 53] = "KEY_W", e[e.KEY_X = 54] = "KEY_X", e[e.KEY_Y = 55] = "KEY_Y", e[e.KEY_Z = 56] = "KEY_Z", e[e.Meta = 57] = "Meta", e[e .ContextMenu = 58] = "ContextMenu", e[e.F1 = 59] = "F1", e[e.F2 = 60] = "F2", e[e.F3 = 61] = "F3", e[e.F4 = 62] = "F4", e[e.F5 = 63] = "F5", e[ e.F6 = 64] = "F6", e[e.F7 = 65] = "F7", e[e.F8 = 66] = "F8", e[e.F9 = 67] = "F9", e[e.F10 = 68] = "F10", e[e.F11 = 69] = "F11", e[e.F12 = 70] = "F12", e[e.F13 = 71] = "F13", e[e.F14 = 72] = "F14", e[e.F15 = 73] = "F15", e[e.F16 = 74] = "F16", e[e.F17 = 75] = "F17", e[e.F18 = 76] = "F18", e[e.F19 = 77] = "F19", e[e.NumLock = 78] = "NumLock", e[e.ScrollLock = 79] = "ScrollLock", e[e.US_SEMICOLON = 80] = "US_SEMICOLON", e[e.US_EQUAL = 81] = "US_EQUAL", e[e.US_COMMA = 82] = "US_COMMA", e[e.US_MINUS = 83] = "US_MINUS", e[e.US_DOT = 84] = "US_DOT", e[e.US_SLASH = 85] = "US_SLASH", e[e.US_BACKTICK = 86] = "US_BACKTICK", e[e.US_OPEN_SQUARE_BRACKET = 87] = "US_OPEN_SQUARE_BRACKET", e[e.US_BACKSLASH = 88] = "US_BACKSLASH", e[e.US_CLOSE_SQUARE_BRACKET = 89] = "US_CLOSE_SQUARE_BRACKET", e[e.US_QUOTE = 90] = "US_QUOTE", e[e.OEM_8 = 91] = "OEM_8", e[e.OEM_102 = 92] = "OEM_102", e[e.NUMPAD_0 = 93] = "NUMPAD_0", e[e.NUMPAD_1 = 94] = "NUMPAD_1", e[e.NUMPAD_2 = 95] = "NUMPAD_2", e[e.NUMPAD_3 = 96] = "NUMPAD_3", e[e.NUMPAD_4 = 97] = "NUMPAD_4", e[e.NUMPAD_5 = 98] = "NUMPAD_5", e[e.NUMPAD_6 = 99] = "NUMPAD_6", e[e.NUMPAD_7 = 100] = "NUMPAD_7", e[e.NUMPAD_8 = 101] = "NUMPAD_8", e[e.NUMPAD_9 = 102] = "NUMPAD_9", e[e.NUMPAD_MULTIPLY = 103] = "NUMPAD_MULTIPLY", e[e.NUMPAD_ADD = 104] = "NUMPAD_ADD", e[e.NUMPAD_SEPARATOR = 105] = "NUMPAD_SEPARATOR", e[e.NUMPAD_SUBTRACT = 106] = "NUMPAD_SUBTRACT", e[e.NUMPAD_DECIMAL = 107] = "NUMPAD_DECIMAL", e[e.NUMPAD_DIVIDE = 108] = "NUMPAD_DIVIDE", e[e.KEY_IN_COMPOSITION = 109] = "KEY_IN_COMPOSITION", e[e.ABNT_C1 = 110] = "ABNT_C1", e[e.ABNT_C2 = 111] = "ABNT_C2", e[e.MAX_VALUE = 112] = "MAX_VALUE" }(v || (v = {})), function(e) { e[e.Hint = 1] = "Hint", e[e.Info = 2] = "Info", e[e.Warning = 4] = "Warning", e[e.Error = 8] = "Error" }(w || (w = {})), function(e) { e[e.Unnecessary = 1] = "Unnecessary", e[e.Deprecated = 2] = "Deprecated" }(C || (C = {})), function(e) { e[e.Inline = 1] = "Inline", e[e.Gutter = 2] = "Gutter" }(y || (y = {})), function(e) { e[e.UNKNOWN = 0] = "UNKNOWN", e[e.TEXTAREA = 1] = "TEXTAREA", e[e.GUTTER_GLYPH_MARGIN = 2] = "GUTTER_GLYPH_MARGIN", e[e.GUTTER_LINE_NUMBERS = 3] = "GUTTER_LINE_NUMBERS", e[e.GUTTER_LINE_DECORATIONS = 4] = "GUTTER_LINE_DECORATIONS", e[e.GUTTER_VIEW_ZONE = 5] = "GUTTER_VIEW_ZONE", e[e.CONTENT_TEXT = 6] = "CONTENT_TEXT", e[e.CONTENT_EMPTY = 7] = "CONTENT_EMPTY", e[e.CONTENT_VIEW_ZONE = 8] = "CONTENT_VIEW_ZONE", e[e.CONTENT_WIDGET = 9] = "CONTENT_WIDGET", e[e.OVERVIEW_RULER = 10] = "OVERVIEW_RULER", e[e.SCROLLBAR = 11] = "SCROLLBAR", e[e.OVERLAY_WIDGET = 12] = "OVERLAY_WIDGET", e[e.OUTSIDE_EDITOR = 13] = "OUTSIDE_EDITOR" }(S || (S = {})), function(e) { e[e.TOP_RIGHT_CORNER = 0] = "TOP_RIGHT_CORNER", e[e.BOTTOM_RIGHT_CORNER = 1] = "BOTTOM_RIGHT_CORNER", e[e.TOP_CENTER = 2] = "TOP_CENTER" }(x || (x = {})), function(e) { e[e.Left = 1] = "Left", e[e.Center = 2] = "Center", e[e.Right = 4] = "Right", e[e.Full = 7] = "Full" }(k || (k = {})), function(e) { e[e.Off = 0] = "Off", e[e.On = 1] = "On", e[e.Relative = 2] = "Relative", e[e.Interval = 3] = "Interval", e[e.Custom = 4] = "Custom" }(L || (L = {})), function(e) { e[e.None = 0] = "None", e[e.Text = 1] = "Text", e[e.Blocks = 2] = "Blocks" }(N || (N = {})), function(e) { e[e.Smooth = 0] = "Smooth", e[e.Immediate = 1] = "Immediate" }(D || (D = {})), function(e) { e[e.Auto = 1] = "Auto", e[e.Hidden = 2] = "Hidden", e[e.Visible = 3] = "Visible" }(E || (E = {})), function(e) { e[e.LTR = 0] = "LTR", e[e.RTL = 1] = "RTL" }(I || (I = {})), function(e) { e[e.Invoke = 1] = "Invoke", e[e.TriggerCharacter = 2] = "TriggerCharacter", e[e.ContentChange = 3] = "ContentChange" }(T || (T = {})), function(e) { e[e.File = 0] = "File", e[e.Module = 1] = "Module", e[e.Namespace = 2] = "Namespace", e[e.Package = 3] = "Package", e[e.Class = 4] = "Class", e[ e.Method = 5] = "Method", e[e.Property = 6] = "Property", e[e.Field = 7] = "Field", e[e.Constructor = 8] = "Constructor", e[e.Enum = 9] = "Enum", e[e.Interface = 10] = "Interface", e[e.Function = 11] = "Function", e[e.Variable = 12] = "Variable", e[e.Constant = 13] = "Constant", e[e.String = 14] = "String", e[e.Number = 15] = "Number", e[ e.Boolean = 16] = "Boolean", e[e.Array = 17] = "Array", e[e.Object = 18] = "Object", e[e.Key = 19] = "Key", e[e.Null = 20] = "Null", e[e.EnumMember = 21] = "EnumMember", e[e.Struct = 22] = "Struct", e[e.Event = 23] = "Event", e[e.Operator = 24] = "Operator", e[e.TypeParameter = 25] = "TypeParameter" }(M || (M = {})), function(e) { e[e.Deprecated = 1] = "Deprecated" }(A || (A = {})), function(e) { e[e.Hidden = 0] = "Hidden", e[e.Blink = 1] = "Blink", e[e.Smooth = 2] = "Smooth", e[e.Phase = 3] = "Phase", e[e.Expand = 4] = "Expand", e[e.Solid = 5] = "Solid" }(R || (R = {})), function(e) { e[e.Line = 1] = "Line", e[e.Block = 2] = "Block", e[e.Underline = 3] = "Underline", e[e.LineThin = 4] = "LineThin", e[e.BlockOutline = 5] = "BlockOutline", e[e.UnderlineThin = 6] = "UnderlineThin" }(O || (O = {})), function(e) { e[e.AlwaysGrowsWhenTypingAtEdges = 0] = "AlwaysGrowsWhenTypingAtEdges", e[e.NeverGrowsWhenTypingAtEdges = 1] = "NeverGrowsWhenTypingAtEdges", e[ e.GrowsOnlyWhenTypingBefore = 2] = "GrowsOnlyWhenTypingBefore", e[e.GrowsOnlyWhenTypingAfter = 3] = "GrowsOnlyWhenTypingAfter" }(P || (P = {})), function(e) { e[e.None = 0] = "None", e[e.Same = 1] = "Same", e[e.Indent = 2] = "Indent", e[e.DeepIndent = 3] = "DeepIndent" }(F || (F = {})); class q { static chord(e, t) { return (0, V.gx)(e, t) } } function Z() { return { editor: void 0, languages: void 0, CancellationTokenSource: W.A, Emitter: z.Q5, KeyCode: v, KeyMod: q, Position: U.L, Range: j.e, Selection: K.Y, SelectionDirection: I, MarkerSeverity: w, MarkerTag: C, Uri: H.o, Token: $.WU } } q.CtrlCmd = 2048, q.Shift = 1024, q.Alt = 512, q.WinCtrl = 256; var G = i(3379), Y = i.n(G), Q = i(7795), X = i.n(Q), J = i(569), ee = i.n(J), te = i(3565), ie = i.n(te), ne = i(9216), oe = i.n(ne), re = i(4589), se = i.n(re), ae = i(643), le = {}; le.styleTagTransform = se(), le.setAttributes = ie(), le.insert = ee().bind( null, "head"), le.domAPI = X(), le.insertStyleElement = oe(), Y()(ae.Z, le), ae.Z && ae.Z.locals && ae.Z.locals; var de, ce = i(1640), he = i(5321), ue = i(1741), ge = i(3702), pe = i(3897), me = i(6663), fe = i(5935), _e = i(4565); ! function(e) { e[e.API = 0] = "API", e[e.USER = 1] = "USER" }(de || (de = {})); var be = i(988), ve = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }, we = function(e, t) { return function(i, n) { t(i, n, e) } }, Ce = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; let ye = class { constructor(e) { this._commandService = e } open(e, t) { return Ce(this, void 0, void 0, (function*() { if (!(0, be.xn)(e, me.lg.command)) return !1; if (!(null == t ? void 0 : t.allowCommands)) return !0; "string" == typeof e && (e = H.o.parse(e)); let i = []; try { i = (0, pe.Q)(decodeURIComponent(e.query)) } catch (t) { try { i = (0, pe.Q)(e.query) } catch (e) {} } return Array.isArray(i) || (i = [i]), yield this._commandService.executeCommand( e.path, ...i), !0 })) } }; ye = ve([we(0, _e.H)], ye); let Se = class { constructor(e) { this._editorService = e } open(e, t) { return Ce(this, void 0, void 0, (function*() { let i; "string" == typeof e && (e = H.o.parse(e)); const n = /^L?(\d+)(?:,(\d+))?/.exec(e.fragment); return n && (i = { startLineNumber: parseInt(n[1]), startColumn: n[2] ? parseInt(n[2]) : 1 }, e = e.with({ fragment: "" })), e.scheme === me.lg.file && (e = (0, fe.AH)(e)), yield this._editorService .openCodeEditor({ resource: e, options: Object.assign({ selection: i, context: (null == t ? void 0 : t.fromUserGesture) ? de.USER : de .API }, null == t ? void 0 : t.editorOptions) }, this._editorService.getFocusedCodeEditor(), null == t ? void 0 : t.openToSide), !0 })) } }; Se = ve([we(0, ce.$)], Se); let xe = class { constructor(e, t) { this._openers = new ue.S, this._validators = new ue.S, this._resolvers = new ue.S, this._resolvedUriTargets = new ge.Y9((e => e.with({ path: null, fragment: null, query: null }).toString())), this._externalOpeners = new ue.S, this._defaultExternalOpener = { openExternal: e => Ce(this, void 0, void 0, (function*() { return (0, be.xn)(e, me.lg.http) || (0, be.xn)(e, me.lg.https) ? he.V3(e) : window.location.href = e, !0 })) }, this._openers.push({ open: (e, t) => Ce(this, void 0, void 0, (function*() { return !!((null == t ? void 0 : t.openExternal) || (0, be.xn)( e, me.lg.mailto) || (0, be.xn)(e, me.lg.http) || (0, be.xn) (e, me.lg.https)) && (yield this._doOpenExternal(e, t), !0) })) }), this._openers.push(new ye(t)), this._openers.push(new Se(e)) } registerOpener(e) { return { dispose: this._openers.unshift(e) } } registerValidator(e) { return { dispose: this._validators.push(e) } } registerExternalUriResolver(e) { return { dispose: this._resolvers.push(e) } } setDefaultExternalOpener(e) { this._defaultExternalOpener = e } registerExternalOpener(e) { return { dispose: this._externalOpeners.push(e) } } open(e, t) { var i; return Ce(this, void 0, void 0, (function*() { const n = "string" == typeof e ? H.o.parse(e) : e, o = null !== (i = this._resolvedUriTargets.get(n)) && void 0 !== i ? i : e; for (const e of this._validators) if (!(yield e.shouldOpen(o))) return !1; for (const i of this._openers) if (yield i.open(e, t)) return !0; return !1 })) } resolveExternalUri(e, t) { return Ce(this, void 0, void 0, (function*() { for (const i of this._resolvers) try { const n = yield i.resolveExternalUri(e, t); if (n) return this._resolvedUriTargets.has(n.resolved) || this._resolvedUriTargets .set(n.resolved, e), n } catch (e) {} throw new Error("Could not resolve external URI: " + e.toString()) })) } _doOpenExternal(e, t) { return Ce(this, void 0, void 0, (function*() { const i = "string" == typeof e ? H.o.parse(e) : e; let n, o; try { n = (yield this.resolveExternalUri(i, t)).resolved } catch (e) { n = i } if (o = "string" == typeof e && i.toString() === n.toString() ? e : encodeURI(n.toString(!0)), null == t ? void 0 : t.allowContributedOpeners ) { const e = "string" == typeof(null == t ? void 0 : t.allowContributedOpeners) ? null == t ? void 0 : t.allowContributedOpeners : void 0; for (const t of this._externalOpeners) if (yield t.openExternal(o, { sourceUri: i, preferredOpenerId: e }, W.T.None)) return !0 } return this._defaultExternalOpener.openExternal(o, { sourceUri: i }, W.T.None) })) } dispose() { this._validators.clear() } }; xe = ve([we(0, ce.$), we(1, _e.H)], xe); var ke = i(5146), Le = i(5976), Ne = i(6248); const De = { followsCaret: !0, ignoreCharChanges: !0, alwaysRevealFirst: !0 }; class Ee extends Le.JT { constructor(e, t = {}) { super(), this._onDidUpdate = this._register(new z.Q5), this._editor = e, this._options = Ne.jB(t, De, !1), this.disposed = !1, this.nextIdx = - 1, this.ranges = [], this.ignoreSelectionChange = !1, this.revealFirst = Boolean(this._options.alwaysRevealFirst), this._register(this._editor .onDidDispose((() => this.dispose()))), this._register(this._editor .onDidUpdateDiff((() => this._onDiffUpdated()))), this._options.followsCaret && this._register(this._editor.getModifiedEditor().onDidChangeCursorPosition( (e => { this.ignoreSelectionChange || (this.nextIdx = -1) }))), this._options.alwaysRevealFirst && this._register(this._editor .getModifiedEditor().onDidChangeModel((e => { this.revealFirst = !0 }))), this._init() } _init() { this._editor.getLineChanges() } _onDiffUpdated() { this._init(), this._compute(this._editor.getLineChanges()), this.revealFirst && null !== this._editor.getLineChanges() && (this.revealFirst = !1, this.nextIdx = -1, this.next(1)) } _compute(e) { this.ranges = [], e && e.forEach((e => { !this._options.ignoreCharChanges && e.charChanges ? e.charChanges .forEach((e => { this.ranges.push({ rhs: !0, range: new j.e(e.modifiedStartLineNumber, e.modifiedStartColumn, e.modifiedEndLineNumber, e.modifiedEndColumn) }) })) : this.ranges.push({ rhs: !0, range: new j.e(e.modifiedStartLineNumber, 1, e.modifiedStartLineNumber, 1) }) })), this.ranges.sort(((e, t) => e.range.getStartPosition().isBeforeOrEqual( t.range.getStartPosition()) ? -1 : t.range.getStartPosition().isBeforeOrEqual( e.range.getStartPosition()) ? 1 : 0)), this._onDidUpdate.fire(this) } _initIdx(e) { let t = !1, i = this._editor.getPosition(); if (i) { for (let n = 0, o = this.ranges.length; n < o && !t; n++) { let o = this.ranges[n].range; i.isBeforeOrEqual(o.getStartPosition()) && (this.nextIdx = n + (e ? 0 : -1), t = !0) } t || (this.nextIdx = e ? 0 : this.ranges.length - 1), this.nextIdx < 0 && (this.nextIdx = this.ranges.length - 1) } else this.nextIdx = 0 } _move(e, t) { if (ke.ok(!this.disposed, "Illegal State - diff navigator has been disposed"), !this.canNavigate()) return; - 1 === this.nextIdx ? this._initIdx(e) : e ? (this.nextIdx += 1, this.nextIdx >= this.ranges.length && (this.nextIdx = 0)) : ( this.nextIdx -= 1, this.nextIdx < 0 && (this.nextIdx = this.ranges.length - 1)); let i = this.ranges[this.nextIdx]; this.ignoreSelectionChange = !0; try { let e = i.range.getStartPosition(); this._editor.setPosition(e), this._editor.revealPositionInCenter(e, t) } finally { this.ignoreSelectionChange = !1 } } canNavigate() { return this.ranges && this.ranges.length > 0 } next(e = 0) { this._move(!0, e) } previous(e = 0) { this._move(!1, e) } dispose() { super.dispose(), this.ranges = [], this.disposed = !0 } } var Ie = i(7374), Te = i(6518), Me = i(4973), Ae = i(4101), Re = i(8111), Oe = i(469), Pe = i(1531), Fe = i(8216), Be = i(5393), We = i(7301), ze = i(1432), Ve = i(8401); let He = !1; function Ue(e) { ze.$L && (He || (He = !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(e.message)) } class je { constructor(e) { this._workerId = -1, this._handler = e, this._lastSentReq = 0, this._pendingReplies = Object.create(null) } setWorkerId(e) { this._workerId = e } sendMessage(e, t) { let i = String(++this._lastSentReq); return new Promise(((n, o) => { this._pendingReplies[i] = { resolve: n, reject: o }, this._send({ vsWorker: this._workerId, req: i, method: e, args: t }) })) } handleMessage(e) { e && e.vsWorker && (-1 !== this._workerId && e.vsWorker !== this._workerId || this._handleMessage(e)) } _handleMessage(e) { if (e.seq) { let t = e; if (!this._pendingReplies[t.seq]) return void console.warn( "Got reply to unknown seq"); let i = this._pendingReplies[t.seq]; if (delete this._pendingReplies[t.seq], t.err) { let e = t.err; return t.err.$isError && (e = new Error, e.name = t.err.name, e.message = t.err.message, e.stack = t.err.stack), void i.reject(e) } return void i.resolve(t.res) } let t = e, i = t.req; this._handler.handleMessage(t.method, t.args).then((e => { this._send({ vsWorker: this._workerId, seq: i, res: e, err: void 0 }) }), (e => { e.detail instanceof Error && (e.detail = (0, We.ri)(e.detail)), this._send({ vsWorker: this._workerId, seq: i, res: void 0, err: (0, We.ri)(e) }) })) } _send(e) { let t = []; if (e.req) { const i = e; for (let e = 0; e < i.args.length; e++) i.args[e] instanceof ArrayBuffer && t.push(i.args[e]) } else { const i = e; i.res instanceof ArrayBuffer && t.push(i.res) } this._handler.sendMessage(e, t) } } class Ke extends Le.JT { constructor(e, t, i) { super(); let n = null; this._worker = this._register(e.create( "vs/base/common/worker/simpleWorker", (e => { this._protocol.handleMessage(e) }), (e => { n && n(e) }))), this._protocol = new je({ sendMessage: (e, t) => { this._worker.postMessage(e, t) }, handleMessage: (e, t) => { if ("function" != typeof i[e]) return Promise.reject(new Error( "Missing method " + e + " on main thread host.")); try { return Promise.resolve(i[e].apply(i, t)) } catch (e) { return Promise.reject(e) } } }), this._protocol.setWorkerId(this._worker.getId()); let o = null; void 0 !== self.require && "function" == typeof self.require.getConfig ? o = self.require.getConfig() : void 0 !== self.requirejs && (o = self.requirejs.s.contexts._.config); const r = Ve.$E(i); this._onModuleLoaded = this._protocol.sendMessage("$initialize", [ this._worker.getId(), JSON.parse(JSON.stringify(o)), t, r ]); const s = (e, t) => this._request(e, t); this._lazyProxy = new Promise(((e, i) => { n = i, this._onModuleLoaded.then((t => { e(Ve.IU(t, s)) }), (e => { i(e), this._onError("Worker failed to load " + t, e) })) })) } getProxyObject() { return this._lazyProxy } _request(e, t) { return new Promise(((i, n) => { this._onModuleLoaded.then((() => { this._protocol.sendMessage(e, t).then(i, n) }), n) })) } _onError(e, t) { console.error(e), console.info(t) } } var $e; const qe = null === ($e = window.trustedTypes) || void 0 === $e ? void 0 : $e.createPolicy("defaultWorkerFactory", { createScriptURL: e => e }); class Ze { constructor(e, t, i, n, o) { this.id = t; const r = function(e, t) { if (ze.li.MonacoEnvironment) { if ("function" == typeof ze.li.MonacoEnvironment.getWorker) return ze.li.MonacoEnvironment.getWorker(e, t); if ("function" == typeof ze.li.MonacoEnvironment.getWorkerUrl) { const i = ze.li.MonacoEnvironment.getWorkerUrl(e, t); return new Worker(qe ? qe.createScriptURL(i) : i, { name: t }) } } throw new Error( "You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker" ) }("workerMain.js", i); "function" == typeof r.then ? this.worker = r : this.worker = Promise.resolve( r), this.postMessage(e, []), this.worker.then((e => { e.onmessage = function(e) { n(e.data) }, e.onmessageerror = o, "function" == typeof e.addEventListener && e.addEventListener("error", o) })) } getId() { return this.id } postMessage(e, t) { this.worker && this.worker.then((i => i.postMessage(e, t))) } dispose() { this.worker && this.worker.then((e => e.terminate())), this.worker = null } } class Ge { constructor(e) { this._label = e, this._webWorkerFailedBeforeError = !1 } create(e, t, i) { let n = ++Ge.LAST_WORKER_ID; if (this._webWorkerFailedBeforeError) throw this._webWorkerFailedBeforeError; return new Ze(e, n, this._label || "anonymous" + n, t, (e => { Ue(e), this._webWorkerFailedBeforeError = e, i(e) })) } } Ge.LAST_WORKER_ID = 0; var Ye = i(3831), Qe = i(2484), Xe = i(7295); function Je(e, t, i, n) { return new Qe.Hs(e, t, i).ComputeDiff(n) } class et { constructor(e) { const t = [], i = []; for (let n = 0, o = e.length; n < o; n++) t[n] = rt(e[n], 1), i[n] = st(e[n], 1); this.lines = e, this._startColumns = t, this._endColumns = i } getElements() { const e = []; for (let t = 0, i = this.lines.length; t < i; t++) e[t] = this.lines[t] .substring(this._startColumns[t] - 1, this._endColumns[t] - 1); return e } getStrictElement(e) { return this.lines[e] } getStartLineNumber(e) { return e + 1 } getEndLineNumber(e) { return e + 1 } createCharSequence(e, t, i) { const n = [], o = [], r = []; let s = 0; for (let a = t; a <= i; a++) { const t = this.lines[a], i = e ? this._startColumns[a] : 1, l = e ? this._endColumns[a] : t.length + 1; for (let e = i; e < l; e++) n[s] = t.charCodeAt(e - 1), o[s] = a + 1, r[s] = e, s++ } return new tt(n, o, r) } } class tt { constructor(e, t, i) { this._charCodes = e, this._lineNumbers = t, this._columns = i } getElements() { return this._charCodes } getStartLineNumber(e) { return this._lineNumbers[e] } getStartColumn(e) { return this._columns[e] } getEndLineNumber(e) { return this._lineNumbers[e] } getEndColumn(e) { return this._columns[e] + 1 } } class it { constructor(e, t, i, n, o, r, s, a) { this.originalStartLineNumber = e, this.originalStartColumn = t, this.originalEndLineNumber = i, this.originalEndColumn = n, this.modifiedStartLineNumber = o, this .modifiedStartColumn = r, this.modifiedEndLineNumber = s, this.modifiedEndColumn = a } static createFromDiffChange(e, t, i) { let n, o, r, s, a, l, d, c; return 0 === e.originalLength ? (n = 0, o = 0, r = 0, s = 0) : (n = t.getStartLineNumber( e.originalStart), o = t.getStartColumn(e.originalStart), r = t.getEndLineNumber( e.originalStart + e.originalLength - 1), s = t.getEndColumn(e.originalStart + e.originalLength - 1)), 0 === e.modifiedLength ? (a = 0, l = 0, d = 0, c = 0) : (a = i.getStartLineNumber(e.modifiedStart), l = i.getStartColumn( e.modifiedStart), d = i.getEndLineNumber(e.modifiedStart + e.modifiedLength - 1), c = i.getEndColumn(e.modifiedStart + e.modifiedLength - 1)), new it( n, o, r, s, a, l, d, c) } } class nt { constructor(e, t, i, n, o) { this.originalStartLineNumber = e, this.originalEndLineNumber = t, this .modifiedStartLineNumber = i, this.modifiedEndLineNumber = n, this.charChanges = o } static createFromDiffResult(e, t, i, n, o, r, s) { let a, l, d, c, h; if (0 === t.originalLength ? (a = i.getStartLineNumber(t.originalStart) - 1, l = 0) : (a = i.getStartLineNumber(t.originalStart), l = i.getEndLineNumber( t.originalStart + t.originalLength - 1)), 0 === t.modifiedLength ? ( d = n.getStartLineNumber(t.modifiedStart) - 1, c = 0) : (d = n.getStartLineNumber( t.modifiedStart), c = n.getEndLineNumber(t.modifiedStart + t.modifiedLength - 1)), r && t.originalLength > 0 && t.originalLength < 20 && t.modifiedLength > 0 && t.modifiedLength < 20 && o()) { const r = i.createCharSequence(e, t.originalStart, t.originalStart + t.originalLength - 1), a = n.createCharSequence(e, t.modifiedStart, t.modifiedStart + t.modifiedLength - 1); let l = Je(r, a, o, !0).changes; s && (l = function(e) { if (e.length <= 1) return e; const t = [e[0]]; let i = t[0]; for (let n = 1, o = e.length; n < o; n++) { const o = e[n], r = o.originalStart - (i.originalStart + i.originalLength), s = o.modifiedStart - (i.modifiedStart + i.modifiedLength); Math.min(r, s) < 3 ? (i.originalLength = o.originalStart + o.originalLength - i.originalStart, i.modifiedLength = o.modifiedStart + o.modifiedLength - i.modifiedStart) : (t.push(o), i = o) } return t }(l)), h = []; for (let e = 0, t = l.length; e < t; e++) h.push(it.createFromDiffChange( l[e], r, a)) } return new nt(a, l, d, c, h) } } class ot { constructor(e, t, i) { this.shouldComputeCharChanges = i.shouldComputeCharChanges, this.shouldPostProcessCharChanges = i.shouldPostProcessCharChanges, this.shouldIgnoreTrimWhitespace = i.shouldIgnoreTrimWhitespace, this.shouldMakePrettyDiff = i.shouldMakePrettyDiff, this.originalLines = e, this.modifiedLines = t, this.original = new et(e), this.modified = new et(t), this.continueLineDiff = at(i.maxComputationTime), this.continueCharDiff = at(0 === i.maxComputationTime ? 0 : Math.min(i.maxComputationTime, 5e3)) } computeDiff() { if (1 === this.original.lines.length && 0 === this.original.lines[0].length) return 1 === this.modified.lines.length && 0 === this.modified.lines[ 0].length ? { quitEarly: !1, changes: [] } : { quitEarly: !1, changes: [{ originalStartLineNumber: 1, originalEndLineNumber: 1, modifiedStartLineNumber: 1, modifiedEndLineNumber: this.modified.lines.length, charChanges: [{ modifiedEndColumn: 0, modifiedEndLineNumber: 0, modifiedStartColumn: 0, modifiedStartLineNumber: 0, originalEndColumn: 0, originalEndLineNumber: 0, originalStartColumn: 0, originalStartLineNumber: 0 }] }] }; if (1 === this.modified.lines.length && 0 === this.modified.lines[0].length) return { quitEarly: !1, changes: [{ originalStartLineNumber: 1, originalEndLineNumber: this.original.lines.length, modifiedStartLineNumber: 1, modifiedEndLineNumber: 1, charChanges: [{ modifiedEndColumn: 0, modifiedEndLineNumber: 0, modifiedStartColumn: 0, modifiedStartLineNumber: 0, originalEndColumn: 0, originalEndLineNumber: 0, originalStartColumn: 0, originalStartLineNumber: 0 }] }] }; const e = Je(this.original, this.modified, this.continueLineDiff, this .shouldMakePrettyDiff), t = e.changes, i = e.quitEarly; if (this.shouldIgnoreTrimWhitespace) { const e = []; for (let i = 0, n = t.length; i < n; i++) e.push(nt.createFromDiffResult( this.shouldIgnoreTrimWhitespace, t[i], this.original, this.modified, this.continueCharDiff, this.shouldComputeCharChanges, this.shouldPostProcessCharChanges )); return { quitEarly: i, changes: e } } const n = []; let o = 0, r = 0; for (let e = -1, i = t.length; e < i; e++) { const s = e + 1 < i ? t[e + 1] : null, a = s ? s.originalStart : this.originalLines.length, l = s ? s.modifiedStart : this.modifiedLines.length; for (; o < a && r < l;) { const e = this.originalLines[o], t = this.modifiedLines[r]; if (e !== t) { { let i = rt(e, 1), s = rt(t, 1); for (; i > 1 && s > 1 && e.charCodeAt(i - 2) === t.charCodeAt(s - 2);) i--, s--; (i > 1 || s > 1) && this._pushTrimWhitespaceCharChange(n, o + 1, 1, i, r + 1, 1, s) } { let i = st(e, 1), s = st(t, 1); const a = e.length + 1, l = t.length + 1; for (; i < a && s < l && e.charCodeAt(i - 1) === e.charCodeAt(s - 1);) i++, s++; (i < a || s < l) && this._pushTrimWhitespaceCharChange(n, o + 1, i, a, r + 1, s, l) } } o++, r++ } s && (n.push(nt.createFromDiffResult(this.shouldIgnoreTrimWhitespace, s, this.original, this.modified, this.continueCharDiff, this.shouldComputeCharChanges, this.shouldPostProcessCharChanges)), o += s.originalLength, r += s .modifiedLength) } return { quitEarly: i, changes: n } } _pushTrimWhitespaceCharChange(e, t, i, n, o, r, s) { if (this._mergeTrimWhitespaceCharChange(e, t, i, n, o, r, s)) return; let a; this.shouldComputeCharChanges && (a = [new it(t, i, t, n, o, r, o, s)]), e.push(new nt(t, t, o, o, a)) } _mergeTrimWhitespaceCharChange(e, t, i, n, o, r, s) { const a = e.length; if (0 === a) return !1; const l = e[a - 1]; return 0 !== l.originalEndLineNumber && 0 !== l.modifiedEndLineNumber && l.originalEndLineNumber + 1 === t && l.modifiedEndLineNumber + 1 === o && (l.originalEndLineNumber = t, l.modifiedEndLineNumber = o, this.shouldComputeCharChanges && l.charChanges && l.charChanges.push(new it(t, i, t, n, o, r, o, s)), ! 0) } } function rt(e, t) { const i = Xe.LC(e); return -1 === i ? t : i + 1 } function st(e, t) { const i = Xe.ow(e); return -1 === i ? t : i + 2 } function at(e) { if (0 === e) return () => !0; const t = Date.now(); return () => Date.now() - t < e } var lt = i(3544), dt = i(7461), ct = i(4906); class ht { constructor(e, t, i) { const n = new Uint8Array(e * t); for (let o = 0, r = e * t; o < r; o++) n[o] = i; this._data = n, this.rows = e, this.cols = t } get(e, t) { return this._data[e * this.cols + t] } set(e, t, i) { this._data[e * this.cols + t] = i } } class ut { constructor(e) { let t = 0, i = 0; for (let n = 0, o = e.length; n < o; n++) { let [o, r, s] = e[n]; r > t && (t = r), o > i && (i = o), s > i && (i = s) } t++, i++; let n = new ht(i, t, 0); for (let t = 0, i = e.length; t < i; t++) { let [i, o, r] = e[t]; n.set(i, o, r) } this._states = n, this._maxCharCode = t } nextState(e, t) { return t < 0 || t >= this._maxCharCode ? 0 : this._states.get(e, t) } } let gt = null, pt = null; class mt { static _createLink(e, t, i, n, o) { let r = o - 1; do { const i = t.charCodeAt(r); if (2 !== e.get(i)) break; r-- } while (r > n); if (n > 0) { const e = t.charCodeAt(n - 1), i = t.charCodeAt(r); (40 === e && 41 === i || 91 === e && 93 === i || 123 === e && 125 === i) && r-- } return { range: { startLineNumber: i, startColumn: n + 1, endLineNumber: i, endColumn: r + 2 }, url: t.substring(n, r + 1) } } static computeLinks(e, t = function() { return null === gt && (gt = new ut([ [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] ])), gt }()) { const i = function() { if (null === pt) { pt = new ct.N(0); const e = " \t<>'\"、。。、,.:;‘〈「『〔([{「」}])〕』」〉’`~…"; for (let t = 0; t < e.length; t++) pt.set(e.charCodeAt(t), 1); const t = ".,;"; for (let e = 0; e < t.length; e++) pt.set(t.charCodeAt(e), 2) } return pt }(); let n = []; for (let o = 1, r = e.getLineCount(); o <= r; o++) { const r = e.getLineContent(o), s = r.length; let a = 0, l = 0, d = 0, c = 1, h = !1, u = !1, g = !1, p = !1; for (; a < s;) { let e = !1; const s = r.charCodeAt(a); if (13 === c) { let t; switch (s) { case 40: h = !0, t = 0; break; case 41: t = h ? 0 : 1; break; case 91: g = !0, u = !0, t = 0; break; case 93: g = !1, t = u ? 0 : 1; break; case 123: p = !0, t = 0; break; case 125: t = p ? 0 : 1; break; case 39: t = 34 === d || 96 === d ? 0 : 1; break; case 34: t = 39 === d || 96 === d ? 0 : 1; break; case 96: t = 39 === d || 34 === d ? 0 : 1; break; case 42: t = 42 === d ? 1 : 0; break; case 124: t = 124 === d ? 1 : 0; break; case 32: t = g ? 0 : 1; break; default: t = i.get(s) } 1 === t && (n.push(mt._createLink(i, r, o, l, a)), e = !0) } else if (12 === c) { let t; 91 === s ? (u = !0, t = 0) : t = i.get(s), 1 === t ? e = !0 : c = 13 } else c = t.nextState(c, s), 0 === c && (e = !0); e && (c = 1, h = !1, u = !1, p = !1, l = a + 1, d = s), a++ } 13 === c && n.push(mt._createLink(i, r, o, l, s)) } return n } } class ft { constructor() { this._defaultValueSet = [ ["true", "false"], ["True", "False"], ["Private", "Public", "Friend", "ReadOnly", "Partial", "Protected", "WriteOnly" ], ["public", "protected", "private"] ] } navigateValueSet(e, t, i, n, o) { if (e && t) { let i = this.doNavigateValueSet(t, o); if (i) return { range: e, value: i } } if (i && n) { let e = this.doNavigateValueSet(n, o); if (e) return { range: i, value: e } } return null } doNavigateValueSet(e, t) { let i = this.numberReplace(e, t); return null !== i ? i : this.textReplace(e, t) } numberReplace(e, t) { let i = Math.pow(10, e.length - (e.lastIndexOf(".") + 1)), n = Number(e), o = parseFloat(e); return isNaN(n) || isNaN(o) || n !== o ? null : 0 !== n || t ? (n = Math.floor(n * i), n += t ? i : -i, String(n / i)) : null } textReplace(e, t) { return this.valueSetsReplace(this._defaultValueSet, e, t) } valueSetsReplace(e, t, i) { let n = null; for (let o = 0, r = e.length; null === n && o < r; o++) n = this.valueSetReplace( e[o], t, i); return n } valueSetReplace(e, t, i) { let n = e.indexOf(t); return n >= 0 ? (n += i ? 1 : -1, n < 0 ? n = e.length - 1 : n %= e.length, e[n]) : null } } ft.INSTANCE = new ft; var _t = i(4013), bt = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; class vt extends class { constructor(e, t, i, n) { this._uri = e, this._lines = t, this._eol = i, this._versionId = n, this._lineStarts = null, this._cachedTextValue = null } dispose() { this._lines.length = 0 } get version() { return this._versionId } getText() { return null === this._cachedTextValue && (this._cachedTextValue = this ._lines.join(this._eol)), this._cachedTextValue } onEvents(e) { e.eol && e.eol !== this._eol && (this._eol = e.eol, this._lineStarts = null); const t = e.changes; for (const e of t) this._acceptDeleteRange(e.range), this._acceptInsertText( new U.L(e.range.startLineNumber, e.range.startColumn), e.text); this._versionId = e.versionId, this._cachedTextValue = null } _ensureLineStarts() { if (!this._lineStarts) { const e = this._eol.length, t = this._lines.length, i = new Uint32Array(t); for (let n = 0; n < t; n++) i[n] = this._lines[n].length + e; this._lineStarts = new lt.o(i) } } _setLineText(e, t) { this._lines[e] = t, this._lineStarts && this._lineStarts.changeValue(e, this._lines[e].length + this._eol.length) } _acceptDeleteRange(e) { if (e.startLineNumber !== e.endLineNumber) this._setLineText(e.startLineNumber - 1, this._lines[e.startLineNumber - 1].substring(0, e.startColumn - 1) + this._lines[e.endLineNumber - 1].substring(e.endColumn - 1)), this._lines .splice(e.startLineNumber, e.endLineNumber - e.startLineNumber), this ._lineStarts && this._lineStarts.removeValues(e.startLineNumber, e.endLineNumber - e.startLineNumber); else { if (e.startColumn === e.endColumn) return; this._setLineText(e.startLineNumber - 1, this._lines[e.startLineNumber - 1].substring(0, e.startColumn - 1) + this._lines[e.startLineNumber - 1].substring(e.endColumn - 1)) } } _acceptInsertText(e, t) { if (0 === t.length) return; let i = (0, Xe.uq)(t); if (1 === i.length) return void this._setLineText(e.lineNumber - 1, this._lines[e.lineNumber - 1].substring(0, e.column - 1) + i[0] + this._lines[e.lineNumber - 1].substring(e.column - 1)); i[i.length - 1] += this._lines[e.lineNumber - 1].substring(e.column - 1), this._setLineText(e.lineNumber - 1, this._lines[e.lineNumber - 1] .substring(0, e.column - 1) + i[0]); let n = new Uint32Array(i.length - 1); for (let t = 1; t < i.length; t++) this._lines.splice(e.lineNumber + t - 1, 0, i[t]), n[t - 1] = i[t].length + this._eol.length; this._lineStarts && this._lineStarts.insertValues(e.lineNumber, n) } } { get uri() { return this._uri } get eol() { return this._eol } getValue() { return this.getText() } getLinesContent() { return this._lines.slice(0) } getLineCount() { return this._lines.length } getLineContent(e) { return this._lines[e - 1] } getWordAtPosition(e, t) { let i = (0, dt.t2)(e.column, (0, dt.eq)(t), this._lines[e.lineNumber - 1], 0); return i ? new j.e(e.lineNumber, i.startColumn, e.lineNumber, i.endColumn) : null } words(e) { const t = this._lines, i = this._wordenize.bind(this); let n = 0, o = "", r = 0, s = []; return { * [Symbol.iterator]() { for (;;) if (r < s.length) { const e = o.substring(s[r].start, s[r].end); r += 1, yield e } else { if (!(n < t.length)) break; o = t[n], s = i(o, e), r = 0, n += 1 } } } } getLineWords(e, t) { let i = this._lines[e - 1], n = this._wordenize(i, t), o = []; for (const e of n) o.push({ word: i.substring(e.start, e.end), startColumn: e.start + 1, endColumn: e.end + 1 }); return o } _wordenize(e, t) { const i = []; let n; for (t.lastIndex = 0; (n = t.exec(e)) && 0 !== n[0].length;) i.push({ start: n.index, end: n.index + n[0].length }); return i } getValueInRange(e) { if ((e = this._validateRange(e)).startLineNumber === e.endLineNumber) return this._lines[e.startLineNumber - 1].substring(e.startColumn - 1, e.endColumn - 1); let t = this._eol, i = e.startLineNumber - 1, n = e.endLineNumber - 1, o = []; o.push(this._lines[i].substring(e.startColumn - 1)); for (let e = i + 1; e < n; e++) o.push(this._lines[e]); return o.push(this._lines[n].substring(0, e.endColumn - 1)), o.join(t) } offsetAt(e) { return e = this._validatePosition(e), this._ensureLineStarts(), this._lineStarts .getPrefixSum(e.lineNumber - 2) + (e.column - 1) } positionAt(e) { e = Math.floor(e), e = Math.max(0, e), this._ensureLineStarts(); let t = this._lineStarts.getIndexOf(e), i = this._lines[t.index].length; return { lineNumber: 1 + t.index, column: 1 + Math.min(t.remainder, i) } } _validateRange(e) { const t = this._validatePosition({ lineNumber: e.startLineNumber, column: e.startColumn }), i = this._validatePosition({ lineNumber: e.endLineNumber, column: e.endColumn }); return t.lineNumber !== e.startLineNumber || t.column !== e.startColumn || i.lineNumber !== e.endLineNumber || i.column !== e.endColumn ? { startLineNumber: t.lineNumber, startColumn: t.column, endLineNumber: i.lineNumber, endColumn: i.column } : e } _validatePosition(e) { if (!U.L.isIPosition(e)) throw new Error("bad position"); let { lineNumber: t, column: i } = e, n = !1; if (t < 1) t = 1, i = 1, n = !0; else if (t > this._lines.length) t = this._lines.length, i = this._lines[ t - 1].length + 1, n = !0; else { let e = this._lines[t - 1].length + 1; i < 1 ? (i = 1, n = !0) : i > e && (i = e, n = !0) } return n ? { lineNumber: t, column: i } : e } } class wt { constructor(e, t) { this._host = e, this._models = Object.create(null), this._foreignModuleFactory = t, this._foreignModule = null } dispose() { this._models = Object.create(null) } _getModel(e) { return this._models[e] } _getModels() { let e = []; return Object.keys(this._models).forEach((t => e.push(this._models[t]))), e } acceptNewModel(e) { this._models[e.url] = new vt(H.o.parse(e.url), e.lines, e.EOL, e.versionId) } acceptModelChanged(e, t) { this._models[e] && this._models[e].onEvents(t) } acceptRemovedModel(e) { this._models[e] && delete this._models[e] } computeDiff(e, t, i, n) { return bt(this, void 0, void 0, (function*() { const o = this._getModel(e), r = this._getModel(t); if (!o || !r) return null; const s = o.getLinesContent(), a = r.getLinesContent(), l = new ot(s, a, { shouldComputeCharChanges: !0, shouldPostProcessCharChanges: !0, shouldIgnoreTrimWhitespace: i, shouldMakePrettyDiff: !0, maxComputationTime: n }).computeDiff(), d = !(l.changes.length > 0) && this._modelsAreIdentical(o, r); return { quitEarly: l.quitEarly, identical: d, changes: l.changes } })) } _modelsAreIdentical(e, t) { const i = e.getLineCount(); if (i !== t.getLineCount()) return !1; for (let n = 1; n <= i; n++) if (e.getLineContent(n) !== t.getLineContent(n)) return !1; return !0 } computeMoreMinimalEdits(e, t) { return bt(this, void 0, void 0, (function*() { const i = this._getModel(e); if (!i) return t; const n = []; let o; t = t.slice(0).sort(((e, t) => e.range && t.range ? j.e.compareRangesUsingStarts( e.range, t.range) : (e.range ? 0 : 1) - (t.range ? 0 : 1))); for (let { range: e, text: r, eol: s } of t) { if ("number" == typeof s && (o = s), j.e.isEmpty(e) && !r) continue; const t = i.getValueInRange(e); if (r = r.replace(/\r\n|\n|\r/g, i.eol), t === r) continue; if (Math.max(r.length, t.length) > wt._diffLimit) { n.push({ range: e, text: r }); continue } const a = (0, Qe.a$)(t, r, !1), l = i.offsetAt(j.e.lift(e).getStartPosition()); for (const e of a) { const t = i.positionAt(l + e.originalStart), o = i.positionAt(l + e.originalStart + e.originalLength), s = { text: r.substr(e.modifiedStart, e.modifiedLength), range: { startLineNumber: t.lineNumber, startColumn: t.column, endLineNumber: o.lineNumber, endColumn: o.column } }; i.getValueInRange(s.range) !== s.text && n.push(s) } } return "number" == typeof o && n.push({ eol: o, text: "", range: { startLineNumber: 0, startColumn: 0, endLineNumber: 0, endColumn: 0 } }), n })) } computeLinks(e) { return bt(this, void 0, void 0, (function*() { let t = this._getModel(e); return t ? function(e) { return e && "function" == typeof e.getLineCount && "function" == typeof e.getLineContent ? mt.computeLinks(e) : [] }(t) : null })) } textualSuggest(e, t, i, n) { return bt(this, void 0, void 0, (function*() { const o = new _t.G(!0), r = new RegExp(i, n), s = new Set; e: for (let i of e) { const e = this._getModel(i); if (e) for (let i of e.words(r)) if (i !== t && isNaN(Number(i)) && (s.add(i), s.size > wt._suggestionsLimit)) break e } return { words: Array.from(s), duration: o.elapsed() } })) } computeWordRanges(e, t, i, n) { return bt(this, void 0, void 0, (function*() { let o = this._getModel(e); if (!o) return Object.create(null); const r = new RegExp(i, n), s = Object.create(null); for (let e = t.startLineNumber; e < t.endLineNumber; e++) { let t = o.getLineWords(e, r); for (const i of t) { if (!isNaN(Number(i.word))) continue; let t = s[i.word]; t || (t = [], s[i.word] = t), t.push({ startLineNumber: e, startColumn: i.startColumn, endLineNumber: e, endColumn: i.endColumn }) } } return s })) } navigateValueSet(e, t, i, n, o) { return bt(this, void 0, void 0, (function*() { let r = this._getModel(e); if (!r) return null; let s = new RegExp(n, o); t.startColumn === t.endColumn && (t = { startLineNumber: t.startLineNumber, startColumn: t.startColumn, endLineNumber: t.endLineNumber, endColumn: t.endColumn + 1 }); let a = r.getValueInRange(t), l = r.getWordAtPosition({ lineNumber: t.startLineNumber, column: t.startColumn }, s); if (!l) return null; let d = r.getValueInRange(l); return ft.INSTANCE.navigateValueSet(t, a, l, d, i) })) } loadForeignModule(e, t, i) { let n = { host: Ve.IU(i, ((e, t) => this._host.fhr(e, t))), getMirrorModels: () => this._getModels() }; return this._foreignModuleFactory ? (this._foreignModule = this._foreignModuleFactory( n, t), Promise.resolve(Ve.$E(this._foreignModule))) : Promise.reject( new Error("Unexpected usage")) } fmr(e, t) { if (!this._foreignModule || "function" != typeof this._foreignModule[e]) return Promise.reject(new Error("Missing requestHandler or method: " + e)); try { return Promise.resolve(this._foreignModule[e].apply(this._foreignModule, t)) } catch (e) { return Promise.reject(e) } } } wt._diffLimit = 1e5, wt._suggestionsLimit = 1e4, "function" == typeof importScripts && (ze.li.monaco = Z()); var Ct = i(1200), yt = i(3187), St = i(9488), xt = i(3557), kt = function(e, t) { return function(i, n) { t(i, n, e) } }, Lt = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; function Nt(e, t) { let i = e.getModel(t); return !!i && !i.isTooLargeForSyncing() } let Dt = class extends Le.JT { constructor(e, t, i) { super(), this._modelService = e, this._workerManager = this._register( new It(this._modelService)), this._logService = i, this._register( Ae.pM.register("*", { provideLinks: (e, t) => Nt(this._modelService, e.uri) ? this._workerManager .withWorker().then((t => t.computeLinks(e.uri))).then((e => e && { links: e })) : Promise.resolve({ links: [] }) })), this._register(Ae.KZ.register("*", new Et(this._workerManager, t, this._modelService))) } dispose() { super.dispose() } canComputeDiff(e, t) { return Nt(this._modelService, e) && Nt(this._modelService, t) } computeDiff(e, t, i, n) { return this._workerManager.withWorker().then((o => o.computeDiff(e, t, i, n))) } computeMoreMinimalEdits(e, t) { if ((0, St.Of)(t)) { if (!Nt(this._modelService, e)) return Promise.resolve(t); const i = _t.G.create(!0), n = this._workerManager.withWorker().then((i => i.computeMoreMinimalEdits( e, t))); return n.finally((() => this._logService.trace( "FORMAT#computeMoreMinimalEdits", e.toString(!0), i.elapsed()))), Promise.race([n, (0, Be.Vs)(1e3).then((() => t))]) } return Promise.resolve(void 0) } canNavigateValueSet(e) { return Nt(this._modelService, e) } navigateValueSet(e, t, i) { return this._workerManager.withWorker().then((n => n.navigateValueSet( e, t, i))) } canComputeWordRanges(e) { return Nt(this._modelService, e) } computeWordRanges(e, t) { return this._workerManager.withWorker().then((i => i.computeWordRanges( e, t))) } }; Dt = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([kt(0, Ct.q), kt(1, yt.V), kt(2, xt.VZ)], Dt); class Et { constructor(e, t, i) { this._debugDisplayName = "wordbasedCompletions", this._workerManager = e, this._configurationService = t, this._modelService = i } provideCompletionItems(e, t) { return Lt(this, void 0, void 0, (function*() { const i = this._configurationService.getValue(e.uri, t, "editor"); if (!i.wordBasedSuggestions) return; const n = []; if ("currentDocument" === i.wordBasedSuggestionsMode) Nt(this._modelService, e.uri) && n.push(e.uri); else for (const t of this._modelService.getModels()) Nt(this._modelService, t.uri) && (t === e ? n.unshift(t.uri) : "allDocuments" !== i.wordBasedSuggestionsMode && t.getLanguageIdentifier().id !== e.getLanguageIdentifier().id || n.push(t.uri)); if (0 === n.length) return; const o = Ye.zu.getWordDefinition(e.getLanguageIdentifier().id), r = e.getWordAtPosition(t), s = r ? new j.e(t.lineNumber, r.startColumn, t.lineNumber, r.endColumn) : j.e.fromPositions(t), a = s.setEndPosition(t.lineNumber, t.column), l = yield this._workerManager.withWorker(), d = yield l.textualSuggest(n, null == r ? void 0 : r.word, o); return d ? { duration: d.duration, suggestions: d.words.map((e => ({ kind: 18, label: e, insertText: e, range: { insert: a, replace: s } }))) } : void 0 })) } } class It extends Le.JT { constructor(e) { super(), this._modelService = e, this._editorWorkerClient = null, this._lastWorkerUsedTime = (new Date).getTime(), this._register(new Be .zh).cancelAndSet((() => this._checkStopIdleWorker()), Math.round( 15e4)), this._register(this._modelService.onModelRemoved((e => this ._checkStopEmptyWorker()))) } dispose() { this._editorWorkerClient && (this._editorWorkerClient.dispose(), this ._editorWorkerClient = null), super.dispose() } _checkStopEmptyWorker() { this._editorWorkerClient && 0 === this._modelService.getModels().length && (this._editorWorkerClient.dispose(), this._editorWorkerClient = null) } _checkStopIdleWorker() { this._editorWorkerClient && (new Date).getTime() - this._lastWorkerUsedTime > 3e5 && (this._editorWorkerClient.dispose(), this._editorWorkerClient = null) } withWorker() { return this._lastWorkerUsedTime = (new Date).getTime(), this._editorWorkerClient || (this._editorWorkerClient = new Rt(this._modelService, !1, "editorWorkerService")), Promise.resolve(this._editorWorkerClient) } } class Tt extends Le.JT { constructor(e, t, i) { if (super(), this._syncedModels = Object.create(null), this._syncedModelsLastUsedTime = Object.create(null), this._proxy = e, this._modelService = t, !i) { let e = new Be.zh; e.cancelAndSet((() => this._checkStopModelSync()), Math.round(3e4)), this._register(e) } } dispose() { for (let e in this._syncedModels)(0, Le.B9)(this._syncedModels[e]); this._syncedModels = Object.create(null), this._syncedModelsLastUsedTime = Object.create(null), super.dispose() } ensureSyncedResources(e) { for (const t of e) { let e = t.toString(); this._syncedModels[e] || this._beginModelSync(t), this._syncedModels[ e] && (this._syncedModelsLastUsedTime[e] = (new Date).getTime()) } } _checkStopModelSync() { let e = (new Date).getTime(), t = []; for (let i in this._syncedModelsLastUsedTime) e - this._syncedModelsLastUsedTime[ i] > 6e4 && t.push(i); for (const e of t) this._stopModelSync(e) } _beginModelSync(e) { let t = this._modelService.getModel(e); if (!t) return; if (t.isTooLargeForSyncing()) return; let i = e.toString(); this._proxy.acceptNewModel({ url: t.uri.toString(), lines: t.getLinesContent(), EOL: t.getEOL(), versionId: t.getVersionId() }); const n = new Le.SL; n.add(t.onDidChangeContent((e => { this._proxy.acceptModelChanged(i.toString(), e) }))), n.add(t.onWillDispose((() => { this._stopModelSync(i) }))), n.add((0, Le.OF)((() => { this._proxy.acceptRemovedModel(i) }))), this._syncedModels[i] = n } _stopModelSync(e) { let t = this._syncedModels[e]; delete this._syncedModels[e], delete this._syncedModelsLastUsedTime[e], ( 0, Le.B9)(t) } } class Mt { constructor(e) { this._instance = e, this._proxyObj = Promise.resolve(this._instance) } dispose() { this._instance.dispose() } getProxyObject() { return this._proxyObj } } class At { constructor(e) { this._workerClient = e } fhr(e, t) { return this._workerClient.fhr(e, t) } } class Rt extends Le.JT { constructor(e, t, i) { super(), this._disposed = !1, this._modelService = e, this._keepIdleModels = t, this._workerFactory = new Ge(i), this._worker = null, this._modelManager = null } fhr(e, t) { throw new Error("Not implemented!") } _getOrCreateWorker() { if (!this._worker) try { this._worker = this._register(new Ke(this._workerFactory, "vs/editor/common/services/editorSimpleWorker", new At(this))) } catch (e) { Ue(e), this._worker = new Mt(new wt(new At(this), null)) } return this._worker } _getProxy() { return this._getOrCreateWorker().getProxyObject().then(void 0, (e => (Ue(e), this._worker = new Mt(new wt(new At(this), null)), this._getOrCreateWorker() .getProxyObject()))) } _getOrCreateModelManager(e) { return this._modelManager || (this._modelManager = this._register(new Tt( e, this._modelService, this._keepIdleModels))), this._modelManager } _withSyncedResources(e) { return this._disposed ? Promise.reject((0, We.F0)()) : this._getProxy() .then((t => (this._getOrCreateModelManager(t).ensureSyncedResources( e), t))) } computeDiff(e, t, i, n) { return this._withSyncedResources([e, t]).then((o => o.computeDiff(e.toString(), t.toString(), i, n))) } computeMoreMinimalEdits(e, t) { return this._withSyncedResources([e]).then((i => i.computeMoreMinimalEdits( e.toString(), t))) } computeLinks(e) { return this._withSyncedResources([e]).then((t => t.computeLinks(e.toString()))) } textualSuggest(e, t, i) { return Lt(this, void 0, void 0, (function*() { const n = yield this._withSyncedResources(e), o = i.source, r = (0, Xe.mr)(i); return n.textualSuggest(e.map((e => e.toString())), t, o, r) })) } computeWordRanges(e, t) { return this._withSyncedResources([e]).then((i => { let n = this._modelService.getModel(e); if (!n) return Promise.resolve(null); let o = Ye.zu.getWordDefinition(n.getLanguageIdentifier().id), r = o.source, s = (0, Xe.mr)(o); return i.computeWordRanges(e.toString(), t, r, s) })) } navigateValueSet(e, t, i) { return this._withSyncedResources([e]).then((n => { let o = this._modelService.getModel(e); if (!o) return null; let r = Ye.zu.getWordDefinition(o.getLanguageIdentifier().id), s = r.source, a = (0, Xe.mr)(r); return n.navigateValueSet(e.toString(), t, i, s, a) })) } dispose() { super.dispose(), this._disposed = !0 } } class Ot extends Rt { constructor(e, t) { super(e, t.keepIdleModels || !1, t.label), this._foreignModuleId = t.moduleId, this._foreignModuleCreateData = t.createData || null, this._foreignModuleHost = t.host || null, this._foreignProxy = null } fhr(e, t) { if (!this._foreignModuleHost || "function" != typeof this._foreignModuleHost[ e]) return Promise.reject(new Error("Missing method " + e + " or missing main thread foreign host.")); try { return Promise.resolve(this._foreignModuleHost[e].apply(this._foreignModuleHost, t)) } catch (e) { return Promise.reject(e) } } _getForeignProxy() { return this._foreignProxy || (this._foreignProxy = this._getProxy().then( (e => { const t = this._foreignModuleHost ? Ve.$E(this._foreignModuleHost) : []; return e.loadForeignModule(this._foreignModuleId, this._foreignModuleCreateData, t).then((t => { this._foreignModuleCreateData = null; const i = (t, i) => e.fmr(t, i), n = (e, t) => function() { const i = Array.prototype.slice.call(arguments, 0); return t(e, i) }; let o = {}; for (const e of t) o[e] = n(e, i); return o })) }))), this._foreignProxy } getProxy() { return this._getForeignProxy() } withSyncedResources(e) { return this._withSyncedResources(e).then((e => this.getProxy())) } } var Pt, Ft = i(8411), Bt = i(7736), Wt = i(3824); function zt(e) { return "string" == typeof e } function Vt(e) { return !zt(e) } function Ht(e) { return !e } function Ut(e, t) { return e.ignoreCase && t ? t.toLowerCase() : t } function jt(e) { return e.replace(/[&<>'"_]/g, "-") } function Kt(e, t) { return new Error(`${e.languageId}: ${t}`) } function $t(e, t, i, n, o) { let r = null; return t.replace(/\$((\$)|(#)|(\d\d?)|[sS](\d\d?)|@(\w+))/g, (function(t, s, a, l, d, c, h, u, g) { return Ht(a) ? Ht(l) ? !Ht(d) && d < n.length ? Ut(e, n[d]) : !Ht(h) && e && "string" == typeof e[h] ? e[h] : (null === r && (r = o.split( "."), r.unshift(o)), !Ht(c) && c < r.length ? Ut(e, r[c]) : "") : Ut(e, i) : "$" })) } function qt(e, t) { let i = t; for (; i && i.length > 0;) { const t = e.tokenizer[i]; if (t) return t; const n = i.lastIndexOf("."); i = n < 0 ? null : i.substr(0, n) } return null } class Zt { constructor(e) { this._maxCacheDepth = e, this._entries = Object.create(null) } static create(e, t) { return this._INSTANCE.create(e, t) } create(e, t) { if (null !== e && e.depth >= this._maxCacheDepth) return new Gt(e, t); let i = Gt.getStackElementId(e); i.length > 0 && (i += "|"), i += t; let n = this._entries[i]; return n || (n = new Gt(e, t), this._entries[i] = n, n) } } Zt._INSTANCE = new Zt(5); class Gt { constructor(e, t) { this.parent = e, this.state = t, this.depth = (this.parent ? this.parent .depth : 0) + 1 } static getStackElementId(e) { let t = ""; for (; null !== e;) t.length > 0 && (t += "|"), t += e.state, e = e.parent; return t } static _equals(e, t) { for (; null !== e && null !== t;) { if (e === t) return !0; if (e.state !== t.state) return !1; e = e.parent, t = t.parent } return null === e && null === t } equals(e) { return Gt._equals(this, e) } push(e) { return Zt.create(this, e) } pop() { return this.parent } popall() { let e = this; for (; e.parent;) e = e.parent; return e } switchTo(e) { return Zt.create(this.parent, e) } } class Yt { constructor(e, t) { this.modeId = e, this.state = t } equals(e) { return this.modeId === e.modeId && this.state.equals(e.state) } clone() { return this.state.clone() === this.state ? this : new Yt(this.modeId, this.state) } } class Qt { constructor(e) { this._maxCacheDepth = e, this._entries = Object.create(null) } static create(e, t) { return this._INSTANCE.create(e, t) } create(e, t) { if (null !== t) return new Xt(e, t); if (null !== e && e.depth >= this._maxCacheDepth) return new Xt(e, t); let i = Gt.getStackElementId(e), n = this._entries[i]; return n || (n = new Xt(e, null), this._entries[i] = n, n) } } Qt._INSTANCE = new Qt(5); class Xt { constructor(e, t) { this.stack = e, this.embeddedModeData = t } clone() { return (this.embeddedModeData ? this.embeddedModeData.clone() : null) === this.embeddedModeData ? this : Qt.create(this.stack, this.embeddedModeData) } equals(e) { return e instanceof Xt && !!this.stack.equals(e.stack) && (null === this.embeddedModeData && null === e.embeddedModeData || null !== this.embeddedModeData && null !== e.embeddedModeData && this.embeddedModeData .equals(e.embeddedModeData)) } } class Jt { constructor() { this._tokens = [], this._language = null, this._lastTokenType = null, this._lastTokenLanguage = null } enterMode(e, t) { this._language = t } emit(e, t) { this._lastTokenType === t && this._lastTokenLanguage === this._language || (this._lastTokenType = t, this._lastTokenLanguage = this._language, this._tokens.push(new $.WU(e, t, this._language))) } nestedModeTokenize(e, t, i, n) { const o = i.modeId, r = i.state, s = Ae.RW.get(o); if (!s) return this.enterMode(n, o), this.emit(n, ""), r; let a = s.tokenize(e, t, r, n); return this._tokens = this._tokens.concat(a.tokens), this._lastTokenType = null, this._lastTokenLanguage = null, this._language = null, a.endState } finalize(e) { return new $.hG(this._tokens, e) } } class ei { constructor(e, t) { this._modeService = e, this._theme = t, this._prependTokens = null, this._tokens = [], this._currentLanguageId = 0, this._lastTokenMetadata = 0 } enterMode(e, t) { this._currentLanguageId = this._modeService.getLanguageIdentifier(t).id } emit(e, t) { let i = this._theme.match(this._currentLanguageId, t); this._lastTokenMetadata !== i && (this._lastTokenMetadata = i, this._tokens .push(e), this._tokens.push(i)) } static _merge(e, t, i) { let n = null !== e ? e.length : 0, o = t.length, r = null !== i ? i.length : 0; if (0 === n && 0 === o && 0 === r) return new Uint32Array(0); if (0 === n && 0 === o) return i; if (0 === o && 0 === r) return e; let s = new Uint32Array(n + o + r); null !== e && s.set(e); for (let e = 0; e < o; e++) s[n + e] = t[e]; return null !== i && s.set(i, n + o), s } nestedModeTokenize(e, t, i, n) { const o = i.modeId, r = i.state, s = Ae.RW.get(o); if (!s) return this.enterMode(n, o), this.emit(n, ""), r; let a = s.tokenize2(e, t, r, n); return this._prependTokens = ei._merge(this._prependTokens, this._tokens, a.tokens), this._tokens = [], this._currentLanguageId = 0, this._lastTokenMetadata = 0, a.endState } finalize(e) { return new $.Hi(ei._merge(this._prependTokens, this._tokens, null), e) } } class ti { constructor(e, t, i, n) { this._modeService = e, this._standaloneThemeService = t, this._modeId = i, this._lexer = n, this._embeddedModes = Object.create(null), this.embeddedLoaded = Promise.resolve(void 0); let o = !1; this._tokenizationRegistryListener = Ae.RW.onDidChange((e => { if (o) return; let t = !1; for (let i = 0, n = e.changedLanguages.length; i < n; i++) { let n = e.changedLanguages[i]; if (this._embeddedModes[n]) { t = !0; break } } t && (o = !0, Ae.RW.fire([this._modeId]), o = !1) })) } dispose() { this._tokenizationRegistryListener.dispose() } getLoadStatus() { let e = []; for (let t in this._embeddedModes) { const i = Ae.RW.get(t); if (i) { if (i instanceof ti) { const t = i.getLoadStatus(); !1 === t.loaded && e.push(t.promise) } continue } const n = Ae.RW.getPromise(t); n && e.push(n) } return 0 === e.length ? { loaded: !0 } : { loaded: !1, promise: Promise.all(e).then((e => {})) } } getInitialState() { let e = Zt.create(null, this._lexer.start); return Qt.create(e, null) } tokenize(e, t, i, n) { let o = new Jt, r = this._tokenize(e, t, i, n, o); return o.finalize(r) } tokenize2(e, t, i, n) { let o = new ei(this._modeService, this._standaloneThemeService.getColorTheme() .tokenTheme), r = this._tokenize(e, t, i, n, o); return o.finalize(r) } _tokenize(e, t, i, n, o) { return i.embeddedModeData ? this._nestedTokenize(e, t, i, n, o) : this ._myTokenize(e, t, i, n, o) } _findLeavingNestedModeOffset(e, t) { let i = this._lexer.tokenizer[t.stack.state]; if (!i && (i = qt(this._lexer, t.stack.state), !i)) throw Kt(this._lexer, "tokenizer state is not defined: " + t.stack.state); let n = -1, o = !1; for (const t of i) { if (!Vt(t.action) || "@pop" !== t.action.nextEmbedded) continue; o = !0; let i = t.regex, r = t.regex.source; if ("^(?:" === r.substr(0, 4) && ")" === r.substr(r.length - 1, 1)) { let e = (i.ignoreCase ? "i" : "") + (i.unicode ? "u" : ""); i = new RegExp(r.substr(4, r.length - 5), e) } let s = e.search(i); - 1 === s || 0 !== s && t.matchOnlyAtLineStart || (-1 === n || s < n) && (n = s) } if (!o) throw Kt(this._lexer, 'no rule containing nextEmbedded: "@pop" in tokenizer embedded state: ' + t.stack.state); return n } _nestedTokenize(e, t, i, n, o) { let r = this._findLeavingNestedModeOffset(e, i); if (-1 === r) { let r = o.nestedModeTokenize(e, t, i.embeddedModeData, n); return Qt.create(i.stack, new Yt(i.embeddedModeData.modeId, r)) } let s = e.substring(0, r); s.length > 0 && o.nestedModeTokenize(s, !1, i.embeddedModeData, n); let a = e.substring(r); return this._myTokenize(a, t, i, n + r, o) } _safeRuleName(e) { return e ? e.name : "(unknown)" } _myTokenize(e, t, i, n, o) { o.enterMode(n, this._modeId); const r = e.length, s = t && this._lexer.includeLF ? e + "\n" : e, a = s.length; let l = i.embeddedModeData, d = i.stack, c = 0, h = null, u = !0; for (; u || c < a;) { const i = c, m = d.depth, f = h ? h.groups.length : 0, _ = d.state; let b = null, v = null, w = null, C = null, y = null; if (h) { b = h.matches; const e = h.groups.shift(); v = e.matched, w = e.action, C = h.rule, 0 === h.groups.length && (h = null) } else { if (!u && c >= a) break; u = !1; let e = this._lexer.tokenizer[_]; if (!e && (e = qt(this._lexer, _), !e)) throw Kt(this._lexer, "tokenizer state is not defined: " + _); let t = s.substr(c); for (const i of e) if ((0 === c || !i.matchOnlyAtLineStart) && (b = t.match(i.regex), b)) { v = b[0], w = i.action; break } } if (b || (b = [""], v = ""), w || (c < a && (b = [s.charAt(c)], v = b[ 0]), w = this._lexer.defaultToken), null === v) break; for (c += v.length; ! function(e) { return Array.isArray(e) }(w) && Vt(w) && w.test;) w = w.test(v, b, _, c === a); let S = null; if ("string" == typeof w || Array.isArray(w)) S = w; else if (w.group) S = w.group; else if (null !== w.token && void 0 !== w.token) { if (S = w.tokenSubst ? $t(this._lexer, w.token, v, b, _) : w.token, w.nextEmbedded) if ("@pop" === w.nextEmbedded) { if (!l) throw Kt(this._lexer, "cannot pop embedded mode if not inside one"); l = null } else { if (l) throw Kt(this._lexer, "cannot enter embedded mode from within an embedded mode"); y = $t(this._lexer, w.nextEmbedded, v, b, _) } if (w.goBack && (c = Math.max(0, c - w.goBack)), w.switchTo && "string" == typeof w.switchTo) { let e = $t(this._lexer, w.switchTo, v, b, _); if ("@" === e[0] && (e = e.substr(1)), !qt(this._lexer, e)) throw Kt( this._lexer, "trying to switch to a state '" + e + "' that is undefined in rule: " + this._safeRuleName(C)); d = d.switchTo(e) } else { if (w.transform && "function" == typeof w.transform) throw Kt(this._lexer, "action.transform not supported"); if (w.next) if ("@push" === w.next) { if (d.depth >= this._lexer.maxStack) throw Kt(this._lexer, "maximum tokenizer stack size reached: [" + d.state + "," + d.parent .state + ",...]"); d = d.push(_) } else if ("@pop" === w.next) { if (d.depth <= 1) throw Kt(this._lexer, "trying to pop an empty stack in rule: " + this._safeRuleName(C) ); d = d.pop() } else if ("@popall" === w.next) d = d.popall(); else { let e = $t(this._lexer, w.next, v, b, _); if ("@" === e[0] && (e = e.substr(1)), !qt(this._lexer, e)) throw Kt( this._lexer, "trying to set a next state '" + e + "' that is undefined in rule: " + this._safeRuleName(C)); d = d.push(e) } } w.log && "string" == typeof w.log && (g = this._lexer, p = this._lexer .languageId + ": " + $t(this._lexer, w.log, v, b, _), console.log( `${g.languageId}: ${p}`)) } if (null === S) throw Kt(this._lexer, "lexer rule has no well-defined action in rule: " + this._safeRuleName( C)); const x = i => { let r = this._modeService.getModeIdForLanguageName(i); r && (i = r); const s = this._getNestedEmbeddedModeData(i); if (c < a) { const i = e.substr(c); return this._nestedTokenize(i, t, Qt.create(d, s), n + c, o) } return Qt.create(d, s) }; if (Array.isArray(S)) { if (h && h.groups.length > 0) throw Kt(this._lexer, "groups cannot be nested: " + this._safeRuleName(C)); if (b.length !== S.length + 1) throw Kt(this._lexer, "matched number of groups does not match the number of actions in rule: " + this._safeRuleName(C)); let e = 0; for (let t = 1; t < b.length; t++) e += b[t].length; if (e !== v.length) throw Kt(this._lexer, "with groups, all characters should be matched in consecutive groups in rule: " + this._safeRuleName(C)); h = { rule: C, matches: b, groups: [] }; for (let e = 0; e < S.length; e++) h.groups[e] = { action: S[e], matched: b[e + 1] }; c -= v.length } else { { if ("@rematch" === S && (c -= v.length, v = "", b = null, S = "", null !== y)) return x(y); if (0 === v.length) { if (0 === a || m !== d.depth || _ !== d.state || (h ? h.groups.length : 0) !== f) continue; throw Kt(this._lexer, "no progress in tokenizer in rule: " + this._safeRuleName( C)) } let e = null; if (zt(S) && 0 === S.indexOf("@brackets")) { let t = S.substr("@brackets".length), i = ii(this._lexer, v); if (!i) throw Kt(this._lexer, "@brackets token returned but no bracket defined as: " + v); e = jt(i.token + t) } else e = jt("" === S ? "" : S + this._lexer.tokenPostfix); i < r && o.emit(i + n, e) } if (null !== y) return x(y) } } var g, p; return Qt.create(d, l) } _getNestedEmbeddedModeData(e) { let t = this._locateMode(e); if (t) { let e = Ae.RW.get(t); if (e) return new Yt(t, e.getInitialState()) } return new Yt(t || Re.TG, Re.nO) } _locateMode(e) { if (!e || !this._modeService.isRegisteredMode(e)) return null; if (e === this._modeId) return e; let t = this._modeService.getModeId(e); return t && (this._modeService.triggerMode(t), this._embeddedModes[t] = ! 0), t } } function ii(e, t) { if (!t) return null; t = Ut(e, t); let i = e.brackets; for (const e of i) { if (e.open === t) return { token: e.token, bracketType: 1 }; if (e.close === t) return { token: e.token, bracketType: -1 } } return null } const ni = null === (Pt = window.trustedTypes) || void 0 === Pt ? void 0 : Pt.createPolicy("standaloneColorizer", { createHTML: e => e }); class oi { static colorizeElement(e, t, i, n) { let o = (n = n || {}).theme || "vs", r = n.mimeType || i.getAttribute("lang") || i.getAttribute( "data-lang"); if (!r) return console.error("Mode not detected"), Promise.resolve(); e.setTheme(o); let s = i.firstChild ? i.firstChild.nodeValue : ""; return i.className += " " + o, this.colorize(t, s || "", r, n).then((e => { var t; const n = null !== (t = null == ni ? void 0 : ni.createHTML(e)) && void 0 !== t ? t : e; i.innerHTML = n }), (e => console.error(e))) } static colorize(e, t, i, n) { let o = 4; n && "number" == typeof n.tabSize && (o = n.tabSize), Xe.uS(t) && (t = t.substr(1)); let r = Xe.uq(t), s = e.getModeId(i); if (!s) return Promise.resolve(si(r, o)); e.triggerMode(s); const a = Ae.RW.get(s); if (a) return ri(r, o, a); const l = Ae.RW.getPromise(s); return new Promise(l ? (e, t) => { l.then((i => { ri(r, o, i).then(e, t) }), t) } : (e, t) => { let i = null, n = null; const a = () => { i && (i.dispose(), i = null), n && (n.dispose(), n = null); const a = Ae.RW.get(s); a ? ri(r, o, a).then(e, t) : e(si(r, o)) }; n = new Be._F, n.cancelAndSet(a, 500), i = Ae.RW.onDidChange((e => { e.changedLanguages.indexOf(s) >= 0 && a() })) }) } static colorizeLine(e, t, i, n, o = 4) { const r = Wt.wA.isBasicASCII(e, t), s = Wt.wA.containsRTL(e, r, i); return (0, Bt.tF)(new Bt.IJ(!1, !0, e, !1, r, s, 0, n, [], o, 0, 0, 0, 0, -1, "none", !1, !1, null)).html } static colorizeModelLine(e, t, i = 4) { let n = e.getLineContent(t); e.forceTokenization(t); let o = e.getLineTokens(t).inflate(); return this.colorizeLine(n, e.mightContainNonBasicASCII(), e.mightContainRTL(), o, i) } } function ri(e, t, i) { return new Promise(((n, o) => { const r = () => { const s = function(e, t, i) { let n = [], o = i.getInitialState(); for (let r = 0, s = e.length; r < s; r++) { let s = e[r], a = i.tokenize2(s, !0, o, 0); Ft.A.convertToEndOffset(a.tokens, s.length); let l = new Ft.A(a.tokens, s); const d = Wt.wA.isBasicASCII(s, !0), c = Wt.wA.containsRTL(s, d, !0); let h = (0, Bt.tF)(new Bt.IJ(!1, !0, s, !1, d, c, 0, l.inflate(), [], t, 0, 0, 0, 0, -1, "none", !1, !1, null)); n = n.concat(h.html), n.push("
    "), o = a.endState } return n.join("") }(e, t, i); if (i instanceof ti) { const e = i.getLoadStatus(); if (!1 === e.loaded) return void e.promise.then(r, o) } n(s) }; r() })) } function si(e, t) { let i = []; const n = new Uint32Array(2); n[0] = 0, n[1] = 16793600; for (let o = 0, r = e.length; o < r; o++) { let r = e[o]; n[0] = r.length; const s = new Ft.A(n, r), a = Wt.wA.isBasicASCII(r, !0), l = Wt.wA.containsRTL(r, a, !0); let d = (0, Bt.tF)(new Bt.IJ(!1, !0, r, !1, a, l, 0, s, [], t, 0, 0, 0, 0, -1, "none", !1, !1, null)); i = i.concat(d.html), i.push("
    ") } return i.join("") } var ai = i(9069), li = i(4603), di = i(5520), ci = i(6007), hi = i(6345), ui = i(9386), gi = i(3108), pi = i(3193); class mi { constructor(e = {}, t = [], i = []) { this._contents = e, this._keys = t, this._overrides = i, this.isFrozen = ! 1 } get contents() { return this.checkAndFreeze(this._contents) } get overrides() { return this.checkAndFreeze(this._overrides) } get keys() { return this.checkAndFreeze(this._keys) } isEmpty() { return 0 === this._keys.length && 0 === Object.keys(this._contents).length && 0 === this._overrides.length } getValue(e) { return e ? (0, gi.Mt)(this.contents, e) : this.contents } override(e) { const t = this.getContentsForOverrideIdentifer(e); if (!t || "object" != typeof t || !Object.keys(t).length) return this; let i = {}; for (const e of St.EB([...Object.keys(this.contents), ...Object.keys(t)])) { let n = this.contents[e], o = t[e]; o && ("object" == typeof n && "object" == typeof o ? (n = Ne.I8(n), this.mergeContents(n, o)) : n = o), i[e] = n } return new mi(i, this.keys, this.overrides) } merge(...e) { const t = Ne.I8(this.contents), i = Ne.I8(this.overrides), n = [...this.keys]; for (const o of e) { this.mergeContents(t, o.contents); for (const e of o.overrides) { const [t] = i.filter((t => St.fS(t.identifiers, e.identifiers))); t ? this.mergeContents(t.contents, e.contents) : i.push(Ne.I8(e)) } for (const e of o.keys) - 1 === n.indexOf(e) && n.push(e) } return new mi(t, n, i) } freeze() { return this.isFrozen = !0, this } mergeContents(e, t) { for (const i of Object.keys(t)) i in e && Ve.Kn(e[i]) && Ve.Kn(t[i]) ? this.mergeContents(e[i], t[i]) : e[i] = Ne.I8(t[i]) } checkAndFreeze(e) { return this.isFrozen && !Object.isFrozen(e) ? Ne._A(e) : e } getContentsForOverrideIdentifer(e) { for (const t of this.overrides) if (-1 !== t.identifiers.indexOf(e)) return t.contents; return null } toJSON() { return { contents: this.contents, overrides: this.overrides, keys: this.keys } } setValue(e, t) { this.addKey(e), (0, gi.KV)(this.contents, e, t, (e => { throw new Error(e) })) } removeValue(e) { this.removeKey(e) && (0, gi.xL)(this.contents, e) } addKey(e) { let t = this.keys.length; for (let i = 0; i < t; i++) 0 === e.indexOf(this.keys[i]) && (t = i); this.keys.splice(t, 1, e) } removeKey(e) { let t = this.keys.indexOf(e); return -1 !== t && (this.keys.splice(t, 1), !0) } } class fi extends mi { constructor() { const e = (0, gi.O4)(), t = (0, gi.MR)(), i = []; for (const t of Object.keys(e)) pi.G1.test(t) && i.push({ identifiers: [(0, pi.Uh)(t).trim()], keys: Object.keys(e[t]), contents: (0, gi.Od)(e[t], (e => console.error( `Conflict in default settings file: ${e}`))) }); super(e, t, i) } } class _i { constructor(e, t, i = new mi, n = new mi, o = new ge.Y9, r = new mi, s = new ge.Y9, a = !0) { this._defaultConfiguration = e, this._localUserConfiguration = t, this ._remoteUserConfiguration = i, this._workspaceConfiguration = n, this ._folderConfigurations = o, this._memoryConfiguration = r, this._memoryConfigurationByResource = s, this._freeze = a, this._workspaceConsolidatedConfiguration = null, this._foldersConsolidatedConfigurations = new ge.Y9, this._userConfiguration = null } getValue(e, t, i) { return this.getConsolidateConfigurationModel(t, i).getValue(e) } updateValue(e, t, i = {}) { let n; i.resource ? (n = this._memoryConfigurationByResource.get(i.resource), n || (n = new mi, this._memoryConfigurationByResource.set(i.resource, n))) : n = this._memoryConfiguration, void 0 === t ? n.removeValue( e) : n.setValue(e, t), i.resource || (this._workspaceConsolidatedConfiguration = null) } get userConfiguration() { return this._userConfiguration || (this._userConfiguration = this._remoteUserConfiguration .isEmpty() ? this._localUserConfiguration : this._localUserConfiguration .merge(this._remoteUserConfiguration), this._freeze && this._userConfiguration .freeze()), this._userConfiguration } getConsolidateConfigurationModel(e, t) { let i = this.getConsolidatedConfigurationModelForResource(e, t); return e.overrideIdentifier ? i.override(e.overrideIdentifier) : i } getConsolidatedConfigurationModelForResource({ resource: e }, t) { let i = this.getWorkspaceConsolidatedConfiguration(); if (t && e) { const n = t.getFolder(e); n && (i = this.getFolderConsolidatedConfiguration(n.uri) || i); const o = this._memoryConfigurationByResource.get(e); o && (i = i.merge(o)) } return i } getWorkspaceConsolidatedConfiguration() { return this._workspaceConsolidatedConfiguration || (this._workspaceConsolidatedConfiguration = this._defaultConfiguration.merge(this.userConfiguration, this._workspaceConfiguration, this._memoryConfiguration), this._freeze && (this._workspaceConfiguration = this._workspaceConfiguration.freeze())), this._workspaceConsolidatedConfiguration } getFolderConsolidatedConfiguration(e) { let t = this._foldersConsolidatedConfigurations.get(e); if (!t) { const i = this.getWorkspaceConsolidatedConfiguration(), n = this._folderConfigurations.get(e); n ? (t = i.merge(n), this._freeze && (t = t.freeze()), this._foldersConsolidatedConfigurations .set(e, t)) : t = i } return t } toData() { return { defaults: { contents: this._defaultConfiguration.contents, overrides: this._defaultConfiguration.overrides, keys: this._defaultConfiguration.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(((e, t) => { const { contents: i, overrides: n, keys: o } = this._folderConfigurations.get(t); return e.push([t, { contents: i, overrides: n, keys: o }]), e }), []) } } static parse(e) { const t = this.parseConfigurationModel(e.defaults), i = this.parseConfigurationModel(e.user), n = this.parseConfigurationModel(e.workspace), o = e.folders.reduce(((e, t) => (e.set(H.o.revive(t[0]), this.parseConfigurationModel( t[1])), e)), new ge.Y9); return new _i(t, i, new mi, n, o, new mi, new ge.Y9, !1) } static parseConfigurationModel(e) { return new mi(e.contents, e.keys, e.overrides).freeze() } } class bi { constructor(e, t, i, n) { this.change = e, this.previous = t, this.currentConfiguraiton = i, this.currentWorkspace = n, this._previousConfiguration = void 0; const o = new Set; e.keys.forEach((e => o.add(e))), e.overrides.forEach((([, e]) => e.forEach( (e => o.add(e))))), this.affectedKeys = [...o.values()]; const r = new mi; this.affectedKeys.forEach((e => r.setValue(e, {}))), this.affectedKeysTree = r.contents } get previousConfiguration() { return !this._previousConfiguration && this.previous && (this._previousConfiguration = _i.parse(this.previous.data)), this._previousConfiguration } affectsConfiguration(e, t) { var i; if (this.doesAffectedKeysTreeContains(this.affectedKeysTree, e)) { if (t) { const n = this.previousConfiguration ? this.previousConfiguration.getValue( e, t, null === (i = this.previous) || void 0 === i ? void 0 : i.workspace ) : void 0, o = this.currentConfiguraiton.getValue(e, t, this.currentWorkspace); return !Ne.fS(n, o) } return !0 } return !1 } doesAffectedKeysTreeContains(e, t) { let i, n = (0, gi.Od)({ [t]: !0 }, (() => {})); for (; "object" == typeof n && (i = Object.keys(n)[0]);) { if (!(e = e[i])) return !1; n = n[i] } return !0 } } var vi = i(3580); class wi extends Le.JT { constructor(e, t, i, n, o) { super(), this._contextKeyService = e, this._commandService = t, this._telemetryService = i, this._notificationService = n, this._logService = o, this._onDidUpdateKeybindings = this._register(new z.Q5), this._currentChord = null, this._currentChordChecker = new Be.zh, this._currentChordStatusMessage = null, this._currentSingleModifier = null, this._currentSingleModifierClearTimeout = new Be._F, this._logging = ! 1 } get onDidUpdateKeybindings() { return this._onDidUpdateKeybindings ? this._onDidUpdateKeybindings.event : z.ju.None } dispose() { super.dispose() } _log(e) { this._logging && this._logService.info(`[KeybindingService]: ${e}`) } getKeybindings() { return this._getResolver().getKeybindings() } lookupKeybinding(e, t) { const i = this._getResolver().lookupPrimaryKeybinding(e, t || this._contextKeyService); if (i) return i.resolvedKeybinding } dispatchEvent(e, t) { return this._dispatch(e, t) } softDispatch(e, t) { const i = this.resolveKeyboardEvent(e); if (i.isChord()) return console.warn( "Unexpected keyboard event mapped to a chord"), null; const [n] = i.getDispatchParts(); if (null === n) return null; const o = this._contextKeyService.getContext(t), r = this._currentChord ? this._currentChord.keypress : null; return this._getResolver().resolve(o, r, n) } _enterChordMode(e, t) { this._currentChord = { keypress: e, label: t }, this._currentChordStatusMessage = this._notificationService.status( vi.N("first.chord", "({0}) was pressed. Waiting for second key of chord...", t)); const i = Date.now(); this._currentChordChecker.cancelAndSet((() => { this._documentHasFocus() ? Date.now() - i > 5e3 && this._leaveChordMode() : this._leaveChordMode() }), 500) } _leaveChordMode() { this._currentChordStatusMessage && (this._currentChordStatusMessage.dispose(), this._currentChordStatusMessage = null), this._currentChordChecker.cancel(), this._currentChord = null } _dispatch(e, t) { return this._doDispatch(this.resolveKeyboardEvent(e), t, !1) } _singleModifierDispatch(e, t) { const i = this.resolveKeyboardEvent(e), [n] = i.getSingleModifierDispatchParts(); return null !== n && null === this._currentSingleModifier ? (this._log( `+ Storing single modifier for possible chord ${n}.`), this._currentSingleModifier = n, this._currentSingleModifierClearTimeout.cancelAndSet((() => { this._log("+ Clearing single modifier due to 300ms elapsed."), this._currentSingleModifier = null }), 300), !1) : null !== n && n === this._currentSingleModifier ? ( this._log(`/ Dispatching single modifier chord ${n} ${n}`), this._currentSingleModifierClearTimeout .cancel(), this._currentSingleModifier = null, this._doDispatch(i, t, !0)) : (this._currentSingleModifierClearTimeout.cancel(), this._currentSingleModifier = null, !1) } _doDispatch(e, t, i = !1) { let n = !1; if (e.isChord()) return console.warn( "Unexpected keyboard event mapped to a chord"), !1; let o = null, r = null; if (i) { const [t] = e.getSingleModifierDispatchParts(); o = t, r = t } else [o] = e.getDispatchParts(), r = this._currentChord ? this._currentChord .keypress : null; if (null === o) return this._log( "\\ Keyboard event cannot be dispatched in keydown phase."), n; const s = this._contextKeyService.getContext(t), a = e.getLabel(), l = this._getResolver().resolve(s, r, o); return this._logService.trace("KeybindingService#dispatch", a, null == l ? void 0 : l.commandId), l && l.enterChord ? (n = !0, this._enterChordMode( o, a), n) : (this._currentChord && (l && l.commandId || (this._notificationService .status(vi.N("missing.chord", "The key combination ({0}, {1}) is not a command.", this._currentChord .label, a), { hideAfter: 1e4 }), n = !0)), this._leaveChordMode(), l && l.commandId && (l.bubble || (n = !0), void 0 === l.commandArgs ? this._commandService.executeCommand( l.commandId).then(void 0, (e => this._notificationService.warn(e))) : this._commandService.executeCommand(l.commandId, l.commandArgs).then( void 0, (e => this._notificationService.warn(e))), this._telemetryService .publicLog2("workbenchActionExecuted", { id: l.commandId, from: "keybinding" })), n) } mightProducePrintableCharacter(e) { return !e.ctrlKey && !e.metaKey && (e.keyCode >= 31 && e.keyCode <= 56 || e.keyCode >= 21 && e.keyCode <= 30) } } var Ci = i(8819); class yi { constructor(e, t, i) { this._log = i, this._defaultKeybindings = e, this._defaultBoundCommands = new Map; for (let t = 0, i = e.length; t < i; t++) { const i = e[t].command; i && this._defaultBoundCommands.set(i, !0) } this._map = new Map, this._lookupMap = new Map, this._keybindings = yi .combine(e, t); for (let e = 0, t = this._keybindings.length; e < t; e++) { let t = this._keybindings[e]; 0 !== t.keypressParts.length && (t.when && 0 === t.when.type || this._addKeyPress( t.keypressParts[0], t)) } } static _isTargetedForRemoval(e, t, i, n, o) { if (e.command !== n) return !1; if (t && e.keypressParts[0] !== t) return !1; if (i && e.keypressParts[1] !== i) return !1; if (o) { if (!e.when) return !1; if (!o.equals(e.when)) return !1 } return !0 } static combine(e, t) { e = e.slice(0); let i = []; for (const n of t) { if (!n.command || 0 === n.command.length || "-" !== n.command.charAt( 0)) { i.push(n); continue } const t = n.command.substr(1), o = n.keypressParts[0], r = n.keypressParts[1], s = n.when; for (let i = e.length - 1; i >= 0; i--) this._isTargetedForRemoval(e[ i], o, r, t, s) && e.splice(i, 1) } return e.concat(i) } _addKeyPress(e, t) { const i = this._map.get(e); if (void 0 === i) return this._map.set(e, [t]), void this._addToLookupMap( t); for (let e = i.length - 1; e >= 0; e--) { let n = i[e]; if (n.command === t.command) continue; const o = n.keypressParts.length > 1, r = t.keypressParts.length > 1; o && r && n.keypressParts[1] !== t.keypressParts[1] || yi.whenIsEntirelyIncluded( n.when, t.when) && this._removeFromLookupMap(n) } i.push(t), this._addToLookupMap(t) } _addToLookupMap(e) { if (!e.command) return; let t = this._lookupMap.get(e.command); void 0 === t ? (t = [e], this._lookupMap.set(e.command, t)) : t.push(e) } _removeFromLookupMap(e) { if (!e.command) return; let t = this._lookupMap.get(e.command); if (void 0 !== t) for (let i = 0, n = t.length; i < n; i++) if (t[i] === e) return void t.splice(i, 1) } static whenIsEntirelyIncluded(e, t) { return !t || 1 === t.type || !(!e || 1 === e.type) && (0, Ci.K8)(e, t) } getKeybindings() { return this._keybindings } lookupPrimaryKeybinding(e, t) { const i = this._lookupMap.get(e); if (void 0 === i || 0 === i.length) return null; if (1 === i.length) return i[0]; for (let e = i.length - 1; e >= 0; e--) { const n = i[e]; if (t.contextMatchesRules(n.when)) return n } return i[i.length - 1] } resolve(e, t, i) { this._log(`| Resolving ${i}${t?` chorded from $ { t } `:""}`); let n = null; if (null !== t) { const e = this._map.get(t); if (void 0 === e) return this._log("\\ No keybinding entries."), null; n = []; for (let t = 0, o = e.length; t < o; t++) { let o = e[t]; o.keypressParts[1] === i && n.push(o) } } else { const e = this._map.get(i); if (void 0 === e) return this._log("\\ No keybinding entries."), null; n = e } let o = this._findCommand(e, n); return o ? null === t && o.keypressParts.length > 1 && null !== o.keypressParts[ 1] ? (this._log( `\\ From ${n.length} keybinding entries, matched chord, when: ${Si(o.when)}, source: ${xi(o)}.` ), { enterChord: !0, leaveChord: !1, commandId: null, commandArgs: null, bubble: !1 }) : (this._log( `\\ From ${n.length} keybinding entries, matched ${o.command}, when: ${Si(o.when)}, source: ${xi(o)}.` ), { enterChord: !1, leaveChord: o.keypressParts.length > 1, commandId: o.command, commandArgs: o.commandArgs, bubble: o.bubble }) : (this._log( `\\ From ${n.length} keybinding entries, no when clauses matched the context.` ), null) } _findCommand(e, t) { for (let i = t.length - 1; i >= 0; i--) { let n = t[i]; if (yi.contextMatchesRules(e, n.when)) return n } return null } static contextMatchesRules(e, t) { return !t || t.evaluate(e) } } function Si(e) { return e ? `${e.serialize()}` : "no when condition" } function xi(e) { return e.extensionId ? e.isBuiltinExtension ? `built-in extension ${e.extensionId}` : `user extension ${e.extensionId}` : e.isDefault ? "built-in" : "user" } var ki = i(9989); class Li { constructor(e, t, i, n, o, r, s) { this._resolvedKeybindingItemBrand = void 0, this.resolvedKeybinding = e, this.keypressParts = e ? Ni(e.getDispatchParts()) : [], e && 0 === this.keypressParts.length && (this.keypressParts = Ni(e.getSingleModifierDispatchParts())), this.bubble = !!t && 94 === t.charCodeAt(0), this.command = this.bubble ? t.substr(1) : t, this.commandArgs = i, this.when = n, this.isDefault = o, this.extensionId = r, this.isBuiltinExtension = s } } function Ni(e) { let t = []; for (let i = 0, n = e.length; i < n; i++) { const n = e[i]; if (!n) return t; t.push(n) } return t } var Di = i(8030); class Ei extends V.f1 { constructor(e, t) { if (super(), 0 === t.length) throw (0, We.b1)("parts"); this._os = e, this._parts = t } getLabel() { return Di.xo.toLabel(this._os, this._parts, (e => this._getLabel(e))) } getAriaLabel() { return Di.X4.toLabel(this._os, this._parts, (e => this._getAriaLabel( e))) } isChord() { return this._parts.length > 1 } getParts() { return this._parts.map((e => this._getPart(e))) } _getPart(e) { return new V.BQ(e.ctrlKey, e.shiftKey, e.altKey, e.metaKey, this._getLabel( e), this._getAriaLabel(e)) } getDispatchParts() { return this._parts.map((e => this._getDispatchPart(e))) } getSingleModifierDispatchParts() { return this._parts.map((e => this._getSingleModifierDispatchPart(e))) } } class Ii extends Ei { constructor(e, t) { super(t, e.parts) } _keyCodeToUILabel(e) { if (2 === this._os) switch (e) { case 15: return "←"; case 16: return "↑"; case 17: return "→"; case 18: return "↓" } return V.kL.toString(e) } _getLabel(e) { return e.isDuplicateModifierCase() ? "" : this._keyCodeToUILabel(e.keyCode) } _getAriaLabel(e) { return e.isDuplicateModifierCase() ? "" : V.kL.toString(e.keyCode) } _getDispatchPart(e) { return Ii.getDispatchStr(e) } static getDispatchStr(e) { if (e.isModifierKey()) return null; let t = ""; return e.ctrlKey && (t += "ctrl+"), e.shiftKey && (t += "shift+"), e.altKey && (t += "alt+"), e.metaKey && (t += "meta+"), t += V.kL.toString(e.keyCode), t } _getSingleModifierDispatchPart(e) { return 5 !== e.keyCode || e.shiftKey || e.altKey || e.metaKey ? 4 !== e.keyCode || e.ctrlKey || e.altKey || e.metaKey ? 6 !== e.keyCode || e.ctrlKey || e.shiftKey || e.metaKey ? 57 !== e.keyCode || e.ctrlKey || e.shiftKey || e.altKey ? null : "meta" : "alt" : "shift" : "ctrl" } } var Ti = i(9422), Mi = i(382), Ai = i(913), Ri = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }, Oi = function(e, t) { return function(i, n) { t(i, n, e) } }, Pi = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; class Fi { constructor(e) { this.disposed = !1, this.model = e, this._onWillDispose = new z.Q5 } get textEditorModel() { return this.model } dispose() { this.disposed = !0, this._onWillDispose.fire() } } let Bi = class { constructor(e) { this.modelService = e } setEditor(e) { this.editor = e } createModelReference(e) { let t = null; var i, n, o; return this.editor && (i = this.editor, n = t => this.findModel(t, e), o = t => this.findModel(t.getOriginalEditor(), e) || this.findModel( t.getModifiedEditor(), e), t = (0, di.CL)(i) ? n(i) : o(i)), t ? Promise.resolve(new Le.Jz(new Fi(t))) : Promise.reject(new Error( "Model not found")) } findModel(e, t) { let i = this.modelService.getModel(t); return i && i.uri.toString() !== t.toString() ? null : i } }; Bi = Ri([Oi(0, Ct.q)], Bi); class Wi { show() { return Wi.NULL_PROGRESS_RUNNER } showWhile(e, t) { return Pi(this, void 0, void 0, (function*() { yield e })) } } Wi.NULL_PROGRESS_RUNNER = { done: () => {}, total: () => {}, worked: () => {} }; class zi { confirm(e) { return this.doConfirm(e).then((e => ({ confirmed: e, checkboxChecked: !1 }))) } doConfirm(e) { let t = e.message; return e.detail && (t = t + "\n\n" + e.detail), Promise.resolve(window .confirm(t)) } show(e, t, i, n) { return Promise.resolve({ choice: 0 }) } } class Vi { info(e) { return this.notify({ severity: li.Z.Info, message: e }) } warn(e) { return this.notify({ severity: li.Z.Warning, message: e }) } error(e) { return this.notify({ severity: li.Z.Error, message: e }) } notify(e) { switch (e.severity) { case li.Z.Error: console.error(e.message); break; case li.Z.Warning: console.warn(e.message); break; default: console.log(e.message) } return Vi.NO_OP } status(e, t) { return Le.JT.None } } Vi.NO_OP = new Ti.EO; class Hi { constructor(e) { this._onWillExecuteCommand = new z.Q5, this._onDidExecuteCommand = new z .Q5, this.onDidExecuteCommand = this._onDidExecuteCommand.event, this ._instantiationService = e } executeCommand(e, ...t) { const i = _e.P.getCommand(e); if (!i) return Promise.reject(new Error(`command '${e}' not found`)); try { this._onWillExecuteCommand.fire({ commandId: e, args: t }); const n = this._instantiationService.invokeFunction.apply(this._instantiationService, [ i.handler, ...t ]); return this._onDidExecuteCommand.fire({ commandId: e, args: t }), Promise.resolve(n) } catch (e) { return Promise.reject(e) } } } class Ui extends wi { constructor(e, t, i, n, o, r) { super(e, t, i, n, o), this._cachedResolver = null, this._dynamicKeybindings = [], this._register(he.nm(r, he.tw.KEY_DOWN, (e => { const t = new ai.y(e); this._dispatch(t, t.target) && (t.preventDefault(), t.stopPropagation()) }))), this._register(he.nm(window, he.tw.KEY_UP, (e => { const t = new ai.y(e); this._singleModifierDispatch(t, t.target) && t.preventDefault() }))) } addDynamicKeybinding(e, t, i, n) { const o = (0, V.gm)(t, ze.OS), r = new Le.SL; return o && (this._dynamicKeybindings.push({ keybinding: o, command: e, when: n, weight1: 1e3, weight2: 0, extensionId: null, isBuiltinExtension: !1 }), r.add((0, Le.OF)((() => { for (let t = 0; t < this._dynamicKeybindings.length; t++) if (this._dynamicKeybindings[t].command === e) return this._dynamicKeybindings .splice(t, 1), void this.updateResolver({ source: 1 }) })))), r.add(_e.P.registerCommand(e, i)), this.updateResolver({ source: 1 }), r } updateResolver(e) { this._cachedResolver = null, this._onDidUpdateKeybindings.fire(e) } _getResolver() { if (!this._cachedResolver) { const e = this._toNormalizedKeybindingItems(ki.W.getDefaultKeybindings(), ! 0), t = this._toNormalizedKeybindingItems(this._dynamicKeybindings, !1); this._cachedResolver = new yi(e, t, (e => this._log(e))) } return this._cachedResolver } _documentHasFocus() { return document.hasFocus() } _toNormalizedKeybindingItems(e, t) { let i = [], n = 0; for (const o of e) { const e = o.when || void 0, r = o.keybinding; if (r) { const s = this.resolveKeybinding(r); for (const r of s) i[n++] = new Li(r, o.command, o.commandArgs, e, t, null, !1) } else i[n++] = new Li(void 0, o.command, o.commandArgs, e, t, null, ! 1) } return i } resolveKeybinding(e) { return [new Ii(e, ze.OS)] } resolveKeyboardEvent(e) { let t = new V.QC(e.ctrlKey, e.shiftKey, e.altKey, e.metaKey, e.keyCode) .toChord(); return new Ii(t, ze.OS) } } function ji(e) { return e && "object" == typeof e && (!e.overrideIdentifier || "string" == typeof e.overrideIdentifier) && (!e.resource || e.resource instanceof H .o) } class Ki { constructor() { this._onDidChangeConfiguration = new z.Q5, this.onDidChangeConfiguration = this._onDidChangeConfiguration.event, this._configuration = new _i( new fi, new mi) } getValue(e, t) { const i = "string" == typeof e ? e : void 0, n = ji(e) ? e : ji(t) ? t : {}; return this._configuration.getValue(i, n, void 0) } updateValues(e) { const t = { data: this._configuration.toData() }; let i = []; for (const t of e) { const [e, n] = t; this.getValue(e) !== n && (this._configuration.updateValue(e, n), i.push( e)) } if (i.length > 0) { const e = new bi({ keys: i, overrides: [] }, t, this._configuration); e.source = 7, e.sourceConfig = null, this._onDidChangeConfiguration.fire( e) } return Promise.resolve() } } class $i { constructor(e) { this.configurationService = e, this._onDidChangeConfiguration = new z.Q5, this.configurationService.onDidChangeConfiguration((e => { this._onDidChangeConfiguration.fire({ affectedKeys: e.affectedKeys, affectsConfiguration: (t, i) => e.affectsConfiguration(i) }) })) } getValue(e, t, i) { const n = U.L.isIPosition(t) && t ? "string" == typeof i ? i : void 0 : "string" == typeof t ? t : void 0; return void 0 === n ? this.configurationService.getValue() : this.configurationService .getValue(n) } } let qi = class { constructor(e) { this.configurationService = e } getEOL(e, t) { const i = this.configurationService.getValue("files.eol", { overrideIdentifier: t, resource: e }); return i && "string" == typeof i && "auto" !== i ? i : ze.IJ || ze.dz ? "\n" : "\r\n" } }; qi = Ri([Oi(0, gi.Ui)], qi); class Zi { publicLog(e, t) { return Promise.resolve(void 0) } publicLog2(e, t) { return this.publicLog(e, t) } } class Gi { constructor() { const e = H.o.from({ scheme: Gi.SCHEME, authority: "model", path: "/" }); this.workspace = { id: "4064f6ec-cb38-4ad0-af64-ee6467e63c82", folders: [new Mi.md({ uri: e, name: "", index: 0 })] } } getWorkspace() { return this.workspace } } function Yi(e, t, i) { if (!t) return; if (!(e instanceof Ki)) return; let n = []; Object.keys(t).forEach((e => { (0, hi.ei)(e) && n.push([`editor.${e}`, t[e]]), i && (0, hi.Pe)(e) && n.push([`diffEditor.${e}`, t[e]]) })), n.length > 0 && e.updateValues(n) } Gi.SCHEME = "inmemory"; class Qi { constructor(e) { this._modelService = e } hasPreviewHandler() { return !1 } apply(e, t) { return Pi(this, void 0, void 0, (function*() { const t = new Map; for (let i of e) { if (!(i instanceof ci.Gl)) throw new Error( "bad edit - only text edits are supported"); const e = this._modelService.getModel(i.resource); if (!e) throw new Error("bad edit - model not found"); if ("number" == typeof i.versionId && e.getVersionId() !== i.versionId) throw new Error("bad state - model changed in the meantime"); let n = t.get(e); n || (n = [], t.set(e, n)), n.push(ui.h.replaceMove(j.e.lift(i.textEdit .range), i.textEdit.text)) } let i = 0, n = 0; for (const [e, o] of t) e.pushStackElement(), e.pushEditOperations( [], o, (() => [])), e.pushStackElement(), n += 1, i += o.length; return { ariaSummary: Xe.WU(Ai.UL.bulkEditServiceSummary, i, n) } })) } } class Xi { getUriLabel(e, t) { return "file" === e.scheme ? e.fsPath : e.path } } class Ji { constructor(e, t) { this._codeEditorService = e, this._container = t, this.onDidLayout = z .ju.None } get dimension() { return this._dimension || (this._dimension = he.D6(window.document.body)), this._dimension } get container() { return this._container } focus() { var e; null === (e = this._codeEditorService.getFocusedCodeEditor()) || void 0 === e || e.focus() } } var en = i(6346), tn = i(6341), nn = i(2360), on = {}; on.styleTagTransform = se(), on.setAttributes = ie(), on.insert = ee().bind( null, "head"), on.domAPI = X(), on.insertStyleElement = oe(), Y()(nn.Z, on), nn.Z && nn.Z.locals && nn.Z.locals; var rn = i(8626), sn = i(3841), an = i(9052), ln = i(9925), dn = i(4504), cn = {}; cn.styleTagTransform = se(), cn.setAttributes = ie(), cn.insert = ee().bind( null, "head"), cn.domAPI = X(), cn.insertStyleElement = oe(), Y()(dn.Z, cn), dn.Z && dn.Z.locals && dn.Z.locals; var hn, un = i(317), gn = i(6781), pn = i(4741), mn = i(6830), fn = i(7869), _n = i(3910), bn = i(7781), vn = i(3046), wn = i(9554); class Cn { constructor(e, t, i, n) { this.originalLineStart = e, this.originalLineEnd = t, this.modifiedLineStart = i, this.modifiedLineEnd = n } getType() { return 0 === this.originalLineStart ? 1 : 0 === this.modifiedLineStart ? 2 : 0 } } class yn { constructor(e) { this.entries = e } } const Sn = (0, wn.q5)("diff-review-insert", vn.lA.add, vi.N( "diffReviewInsertIcon", "Icon for 'Insert' in diff review.")), xn = (0, wn.q5)("diff-review-remove", vn.lA.remove, vi.N( "diffReviewRemoveIcon", "Icon for 'Remove' in diff review.")), kn = (0, wn.q5)("diff-review-close", vn.lA.close, vi.N( "diffReviewCloseIcon", "Icon for 'Close' in diff review.")); class Ln extends Le.JT { constructor(e) { super(), this._width = 0, this._diffEditor = e, this._isVisible = !1, this.shadow = (0, rn.X)(document.createElement("div")), this.shadow.setClassName( "diff-review-shadow"), this.actionBarContainer = (0, rn.X)(document .createElement("div")), this.actionBarContainer.setClassName( "diff-review-actions"), this._actionBar = this._register(new un.o( this.actionBarContainer.domNode)), this._actionBar.push(new pn.aU( "diffreview.close", vi.N("label.close", "Close"), "close-diff-review " + bn.kS.asClassName(kn), !0, (() => { return e = this, t = void 0, n = function*() { return this.hide() }, new((i = void 0) || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i((function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })); var e, t, i, n })), { label: !1, icon: !0 }), this.domNode = (0, rn.X)(document.createElement("div")), this.domNode .setClassName("diff-review monaco-editor-background"), this._content = (0, rn.X)(document.createElement("div")), this._content.setClassName( "diff-review-content"), this._content.setAttribute("role", "code"), this.scrollbar = this._register(new gn.s$(this._content.domNode, {})), this.domNode.domNode.appendChild(this.scrollbar.getDomNode()), this._register( e.onDidUpdateDiff((() => { this._isVisible && (this._diffs = this._compute(), this._render()) }))), this._register(e.getModifiedEditor().onDidChangeCursorPosition( (() => { this._isVisible && this._render() }))), this._register(he.mu(this.domNode.domNode, "click", (e => { e.preventDefault(); let t = he.Fx(e.target, "diff-review-row"); t && this._goToRow(t) }))), this._register(he.mu(this.domNode.domNode, "keydown", (e => { (e.equals(18) || e.equals(2066) || e.equals(530)) && (e.preventDefault(), this._goToRow(this._getNextRow())), (e.equals(16) || e.equals( 2064) || e.equals(528)) && (e.preventDefault(), this._goToRow( this._getPrevRow())), (e.equals(9) || e.equals(2057) || e.equals( 521) || e.equals(1033)) && (e.preventDefault(), this.hide()), ( e.equals(10) || e.equals(3)) && (e.preventDefault(), this.accept()) }))), this._diffs = [], this._currentDiff = null } prev() { let e = 0; if (this._isVisible || (this._diffs = this._compute()), this._isVisible) { let t = -1; for (let e = 0, i = this._diffs.length; e < i; e++) if (this._diffs[e] === this._currentDiff) { t = e; break } e = this._diffs.length + t - 1 } else e = this._findDiffIndex(this._diffEditor.getPosition()); if (0 === this._diffs.length) return; e %= this._diffs.length; const t = this._diffs[e].entries; this._diffEditor.setPosition(new U.L(t[0].modifiedLineStart, 1)), this._diffEditor.setSelection({ startColumn: 1, startLineNumber: t[0].modifiedLineStart, endColumn: 1073741824, endLineNumber: t[t.length - 1].modifiedLineEnd }), this._isVisible = !0, this._diffEditor.doLayout(), this._render(), this._goToRow(this._getNextRow()) } next() { let e = 0; if (this._isVisible || (this._diffs = this._compute()), this._isVisible) { let t = -1; for (let e = 0, i = this._diffs.length; e < i; e++) if (this._diffs[e] === this._currentDiff) { t = e; break } e = t + 1 } else e = this._findDiffIndex(this._diffEditor.getPosition()); if (0 === this._diffs.length) return; e %= this._diffs.length; const t = this._diffs[e].entries; this._diffEditor.setPosition(new U.L(t[0].modifiedLineStart, 1)), this._diffEditor.setSelection({ startColumn: 1, startLineNumber: t[0].modifiedLineStart, endColumn: 1073741824, endLineNumber: t[t.length - 1].modifiedLineEnd }), this._isVisible = !0, this._diffEditor.doLayout(), this._render(), this._goToRow(this._getNextRow()) } accept() { let e = -1, t = this._getCurrentFocusedRow(); if (t) { let i = parseInt(t.getAttribute("data-line"), 10); isNaN(i) || (e = i) } this.hide(), -1 !== e && (this._diffEditor.setPosition(new U.L(e, 1)), this._diffEditor.revealPosition(new U.L(e, 1), 1)) } hide() { this._isVisible = !1, this._diffEditor.updateOptions({ readOnly: !1 }), this._diffEditor.focus(), this._diffEditor.doLayout(), this._render() } _getPrevRow() { let e = this._getCurrentFocusedRow(); return e ? e.previousElementSibling ? e.previousElementSibling : e : this._getFirstRow() } _getNextRow() { let e = this._getCurrentFocusedRow(); return e ? e.nextElementSibling ? e.nextElementSibling : e : this._getFirstRow() } _getFirstRow() { return this.domNode.domNode.querySelector(".diff-review-row") } _getCurrentFocusedRow() { let e = document.activeElement; return e && /diff-review-row/.test(e.className) ? e : null } _goToRow(e) { let t = this._getCurrentFocusedRow(); e.tabIndex = 0, e.focus(), t && t !== e && (t.tabIndex = -1), this.scrollbar .scanDomNode() } isVisible() { return this._isVisible } layout(e, t, i) { this._width = t, this.shadow.setTop(e - 6), this.shadow.setWidth(t), this.shadow.setHeight(this._isVisible ? 6 : 0), this.domNode.setTop( e), this.domNode.setWidth(t), this.domNode.setHeight(i), this._content .setHeight(i), this._content.setWidth(t), this._isVisible ? (this.actionBarContainer .setAttribute("aria-hidden", "false"), this.actionBarContainer.setDisplay( "block")) : (this.actionBarContainer.setAttribute("aria-hidden", "true"), this.actionBarContainer.setDisplay("none")) } _compute() { const e = this._diffEditor.getLineChanges(); if (!e || 0 === e.length) return []; const t = this._diffEditor.getOriginalEditor().getModel(), i = this._diffEditor.getModifiedEditor().getModel(); return t && i ? Ln._mergeAdjacent(e, t.getLineCount(), i.getLineCount()) : [] } static _mergeAdjacent(e, t, i) { if (!e || 0 === e.length) return []; let n = [], o = 0; for (let r = 0, s = e.length; r < s; r++) { const a = e[r], l = a.originalStartLineNumber, d = a.originalEndLineNumber, c = a.modifiedStartLineNumber, h = a.modifiedEndLineNumber; let u = [], g = 0; { const t = 0 === d ? l : l - 1, i = 0 === h ? c : c - 1; let n = 1, o = 1; if (r > 0) { const t = e[r - 1]; n = 0 === t.originalEndLineNumber ? t.originalStartLineNumber + 1 : t.originalEndLineNumber + 1, o = 0 === t.modifiedEndLineNumber ? t.modifiedStartLineNumber + 1 : t.modifiedEndLineNumber + 1 } let s = t - 3 + 1, a = i - 3 + 1; if (s < n) { const e = n - s; s += e, a += e } if (a < o) { const e = o - a; s += e, a += e } u[g++] = new Cn(s, t, a, i) } 0 !== d && (u[g++] = new Cn(l, d, 0, 0)), 0 !== h && (u[g++] = new Cn( 0, 0, c, h)); { const n = 0 === d ? l + 1 : d + 1, o = 0 === h ? c + 1 : h + 1; let a = t, p = i; if (r + 1 < s) { const t = e[r + 1]; a = 0 === t.originalEndLineNumber ? t.originalStartLineNumber : t.originalStartLineNumber - 1, p = 0 === t.modifiedEndLineNumber ? t.modifiedStartLineNumber : t.modifiedStartLineNumber - 1 } let m = n + 3 - 1, f = o + 3 - 1; if (m > a) { const e = a - m; m += e, f += e } if (f > p) { const e = p - f; m += e, f += e } u[g++] = new Cn(n, m, o, f) } n[o++] = new yn(u) } let r = n[0].entries, s = [], a = 0; for (let e = 1, t = n.length; e < t; e++) { const t = n[e].entries, i = r[r.length - 1], o = t[0]; 0 === i.getType() && 0 === o.getType() && o.originalLineStart <= i.originalLineEnd ? (r[r.length - 1] = new Cn(i.originalLineStart, o.originalLineEnd, i .modifiedLineStart, o.modifiedLineEnd), r = r.concat(t.slice(1))) : (s[a++] = new yn(r), r = t) } return s[a++] = new yn(r), s } _findDiffIndex(e) { const t = e.lineNumber; for (let e = 0, i = this._diffs.length; e < i; e++) { const i = this._diffs[e].entries; if (t <= i[i.length - 1].modifiedLineEnd) return e } return 0 } _render() { const e = this._diffEditor.getOriginalEditor().getOptions(), t = this._diffEditor.getModifiedEditor().getOptions(), i = this._diffEditor.getOriginalEditor().getModel(), n = this._diffEditor.getModifiedEditor().getModel(), o = i.getOptions(), r = n.getOptions(); if (!this._isVisible || !i || !n) return he.PO(this._content.domNode), this._currentDiff = null, void this.scrollbar.scanDomNode(); this._diffEditor.updateOptions({ readOnly: !0 }); const s = this._findDiffIndex(this._diffEditor.getPosition()); if (this._diffs[s] === this._currentDiff) return; this._currentDiff = this._diffs[s]; const a = this._diffs[s].entries; let l = document.createElement("div"); l.className = "diff-review-table", l.setAttribute("role", "list"), l.setAttribute( "aria-label", 'Difference review. Use "Stage | Unstage | Revert Selected Ranges" commands' ), an.V.applyFontInfoSlow(l, t.get(42)); let d = 0, c = 0, h = 0, u = 0; for (let e = 0, t = a.length; e < t; e++) { const t = a[e], i = t.originalLineStart, n = t.originalLineEnd, o = t.modifiedLineStart, r = t.modifiedLineEnd; 0 !== i && (0 === d || i < d) && (d = i), 0 !== n && (0 === c || n > c) && (c = n), 0 !== o && (0 === h || o < h) && (h = o), 0 !== r && (0 === u || r > u) && (u = r) } let g = document.createElement("div"); g.className = "diff-review-row"; let p = document.createElement("div"); p.className = "diff-review-cell diff-review-summary"; const m = c - d + 1, f = u - h + 1; p.appendChild(document.createTextNode( `${s+1}/${this._diffs.length}: @@ -${d},${m} +${h},${f} @@`)), g.setAttribute( "data-line", String(h)); const _ = e => 0 === e ? vi.N("no_lines_changed", "no lines changed") : 1 === e ? vi.N("one_line_changed", "1 line changed") : vi.N( "more_lines_changed", "{0} lines changed", e), b = _(m), v = _(f); g.setAttribute("aria-label", vi.N({ key: "header", comment: ["This is the ARIA label for a git diff header.", "A git diff header looks like this: @@ -154,12 +159,39 @@.", "That encodes that at original line 154 (which is now line 159), 12 lines were removed/changed with 39 lines.", "Variables 0 and 1 refer to the diff index out of total number of diffs.", "Variables 2 and 4 will be numbers (a line number).", 'Variables 3 and 5 will be "no lines changed", "1 line changed" or "X lines changed", localized separately.' ] }, "Difference {0} of {1}: original line {2}, {3}, modified line {4}, {5}", s + 1, this._diffs.length, d, b, h, v)), g.appendChild(p), g.setAttribute( "role", "listitem"), l.appendChild(g); const w = t.get(58); let C = h; for (let s = 0, d = a.length; s < d; s++) { const d = a[s]; Ln._renderSection(l, d, C, w, this._width, e, i, o, t, n, r), 0 !== d.modifiedLineStart && (C = d.modifiedLineEnd) } he.PO(this._content.domNode), this._content.domNode.appendChild(l), this.scrollbar.scanDomNode() } static _renderSection(e, t, i, n, o, r, s, a, l, d, c) { const h = t.getType(); let u = "diff-review-row", g = "", p = null; switch (h) { case 1: u = "diff-review-row line-insert", g = " char-insert", p = Sn; break; case 2: u = "diff-review-row line-delete", g = " char-delete", p = xn } const m = t.originalLineStart, f = t.originalLineEnd, _ = t.modifiedLineStart, b = t.modifiedLineEnd, v = Math.max(b - _, f - m), w = r.get(130), C = w.glyphMarginWidth + w.lineNumbersWidth, y = l.get(130), S = 10 + y.glyphMarginWidth + y.lineNumbersWidth; for (let t = 0; t <= v; t++) { const f = 0 === m ? 0 : m + t, b = 0 === _ ? 0 : _ + t, v = document.createElement("div"); v.style.minWidth = o + "px", v.className = u, v.setAttribute("role", "listitem"), 0 !== b && (i = b), v.setAttribute("data-line", String(i)); let w = document.createElement("div"); w.className = "diff-review-cell", w.style.height = `${n}px`, v.appendChild( w); const y = document.createElement("span"); y.style.width = C + "px", y.style.minWidth = C + "px", y.className = "diff-review-line-number" + g, 0 !== f ? y.appendChild(document.createTextNode( String(f))) : y.innerText = " ", w.appendChild(y); const x = document.createElement("span"); x.style.width = S + "px", x.style.minWidth = S + "px", x.style.paddingRight = "10px", x.className = "diff-review-line-number" + g, 0 !== b ? x.appendChild( document.createTextNode(String(b))) : x.innerText = " ", w.appendChild( x); const k = document.createElement("span"); if (k.className = "diff-review-spacer", p) { const e = document.createElement("span"); e.className = bn.kS.asClassName(p), e.innerText = " ", k.appendChild( e) } else k.innerText = " "; let L; if (w.appendChild(k), 0 !== b) { let e = this._renderLine(d, l, c.tabSize, b); Ln._ttPolicy && (e = Ln._ttPolicy.createHTML(e)), w.insertAdjacentHTML( "beforeend", e), L = d.getLineContent(b) } else { let e = this._renderLine(s, r, a.tabSize, f); Ln._ttPolicy && (e = Ln._ttPolicy.createHTML(e)), w.insertAdjacentHTML( "beforeend", e), L = s.getLineContent(f) } 0 === L.length && (L = vi.N("blankLine", "blank")); let N = ""; switch (h) { case 0: N = f === b ? vi.N({ key: "unchangedLine", comment: [ "The placeholders are contents of the line and should not be translated." ] }, "{0} unchanged line {1}", L, f) : vi.N("equalLine", "{0} original line {1} modified line {2}", L, f, b); break; case 1: N = vi.N("insertLine", "+ {0} modified line {1}", L, b); break; case 2: N = vi.N("deleteLine", "- {0} original line {1}", L, f) } v.setAttribute("aria-label", N), e.appendChild(v) } } static _renderLine(e, t, i, n) { const o = e.getLineContent(n), r = t.get(42), s = Ft.A.createEmpty(o), a = Wt.wA.isBasicASCII(o, e.mightContainNonBasicASCII()), l = Wt.wA.containsRTL(o, a, e.mightContainRTL()); return (0, Bt.tF)(new Bt.IJ(r.isMonospace && !t.get(28), r.canUseHalfwidthRightwardsArrow, o, !1, a, l, 0, s, [], i, 0, r.spaceWidth, r.middotWidth, r.wsmiddotWidth, t.get(105), t.get(88), t.get(82), t.get(43) !== B.n0.OFF, null)).html } } Ln._ttPolicy = null === (hn = window.trustedTypes) || void 0 === hn ? void 0 : hn.createPolicy("diffReview", { createHTML: e => e }), (0, bn.Ic)(((e, t) => { const i = e.getColor(fn.hw); i && t.addRule( `.monaco-diff-editor .diff-review-line-number { color: ${i}; }`); const n = e.getColor(_n._w); n && t.addRule( `.monaco-diff-editor .diff-review-shadow { box-shadow: ${n} 0 -6px 6px -6px inset; }` ) })); class Nn extends mn.R6 { constructor() { super({ id: "editor.action.diffReview.next", label: vi.N("editor.action.diffReview.next", "Go to Next Difference"), alias: "Go to Next Difference", precondition: Ci.Ao.has("isInDiffEditor"), kbOpts: { kbExpr: null, primary: 65, weight: 100 } }) } run(e, t) { const i = En(e); i && i.diffReviewNext() } } class Dn extends mn.R6 { constructor() { super({ id: "editor.action.diffReview.prev", label: vi.N("editor.action.diffReview.prev", "Go to Previous Difference"), alias: "Go to Previous Difference", precondition: Ci.Ao.has("isInDiffEditor"), kbOpts: { kbExpr: null, primary: 1089, weight: 100 } }) } run(e, t) { const i = En(e); i && i.diffReviewPrev() } } function En(e) { const t = e.get(ce.$), i = t.listDiffEditors(), n = t.getActiveCodeEditor(); if (!n) return null; for (let e = 0, t = i.length; e < t; e++) { const t = i[e]; if (t.getModifiedEditor().getId() === n.getId() || t.getOriginalEditor() .getId() === n.getId()) return t } return null }(0, mn.Qr)(Nn), (0, mn.Qr)(Dn); var In = i(72), Tn = i(6281), Mn = i(2003), An = i(2550), Rn = i(2065), On = i(972), Pn = i(5606), Fn = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; class Bn extends Le.JT { constructor(e, t, i, n, o, r) { super(), this._viewZoneId = e, this._marginDomNode = t, this.editor = i, this.diff = n, this._contextMenuService = o, this._clipboardService = r, this._visibility = !1, this._marginDomNode.style.zIndex = "10", this._diffActions = document.createElement("div"), this._diffActions .className = vn.lA.lightBulb.classNames + " lightbulb-glyph", this._diffActions .style.position = "absolute"; const s = i.getOption(58), a = i.getModel().getEOL(); this._diffActions.style.right = "0px", this._diffActions.style.visibility = "hidden", this._diffActions.style.height = `${s}px`, this._diffActions .style.lineHeight = `${s}px`, this._marginDomNode.appendChild(this._diffActions); const l = []; l.push(new pn.aU("diff.clipboard.copyDeletedContent", n.originalEndLineNumber > n.modifiedStartLineNumber ? vi.N( "diff.clipboard.copyDeletedLinesContent.label", "Copy deleted lines") : vi.N( "diff.clipboard.copyDeletedLinesContent.single.label", "Copy deleted line"), void 0, !0, (() => Fn(this, void 0, void 0, ( function*() { const e = new j.e(n.originalStartLineNumber, 1, n.originalEndLineNumber + 1, 1), t = n.originalModel.getValueInRange(e); yield this._clipboardService.writeText(t) }))))); let d, c = 0; n.originalEndLineNumber > n.modifiedStartLineNumber && (d = new pn.aU( "diff.clipboard.copyDeletedLineContent", vi.N( "diff.clipboard.copyDeletedLineContent.label", "Copy deleted line ({0})", n.originalStartLineNumber), void 0, !0, ( () => Fn(this, void 0, void 0, (function*() { const e = n.originalModel.getLineContent(n.originalStartLineNumber + c); yield this._clipboardService.writeText(e) })))), l.push(d)), i.getOption(80) || l.push(new pn.aU( "diff.inline.revertChange", vi.N("diff.inline.revertChange.label", "Revert this change"), void 0, !0, (() => Fn(this, void 0, void 0, ( function*() { const e = new j.e(n.originalStartLineNumber, 1, n.originalEndLineNumber, n.originalModel.getLineMaxColumn(n.originalEndLineNumber)), t = n.originalModel.getValueInRange(e); if (0 === n.modifiedEndLineNumber) { const e = i.getModel().getLineMaxColumn(n.modifiedStartLineNumber); i.executeEdits("diffEditor", [{ range: new j.e(n.modifiedStartLineNumber, e, n.modifiedStartLineNumber, e), text: a + t }]) } else { const e = i.getModel().getLineMaxColumn(n.modifiedEndLineNumber); i.executeEdits("diffEditor", [{ range: new j.e(n.modifiedStartLineNumber, 1, n.modifiedEndLineNumber, e), text: t }]) } }))))); const h = (e, t) => { this._contextMenuService.showContextMenu({ getAnchor: () => ({ x: e, y: t }), getActions: () => (d && (d.label = vi.N( "diff.clipboard.copyDeletedLineContent.label", "Copy deleted line ({0})", n.originalStartLineNumber + c)), l), autoSelectFirstItem: !0 }) }; this._register(he.mu(this._diffActions, "mousedown", (e => { const { top: t, height: i } = he.i(this._diffActions); let n = Math.floor(s / 3); e.preventDefault(), h(e.posx, t + i + n) }))), this._register(i.onMouseMove((e => { (8 === e.target.type || 5 === e.target.type) && e.target.detail.viewZoneId === this._viewZoneId ? (this.visibility = !0, c = this._updateLightBulbPosition( this._marginDomNode, e.event.browserEvent.y, s)) : this.visibility = ! 1 }))), this._register(i.onMouseDown((e => { !e.event.rightButton || 8 !== e.target.type && 5 !== e.target.type || e.target.detail.viewZoneId === this._viewZoneId && (e.event.preventDefault(), c = this._updateLightBulbPosition(this._marginDomNode, e.event .browserEvent.y, s), h(e.event.posx, e.event.posy + s)) }))) } get visibility() { return this._visibility } set visibility(e) { this._visibility !== e && (this._visibility = e, this._diffActions.style .visibility = e ? "visible" : "hidden") } _updateLightBulbPosition(e, t, i) { const { top: n } = he.i(e), o = t - n, r = Math.floor(o / i), s = r * i; if (this._diffActions.style.top = `${s}px`, this.diff.viewLineCounts) { let e = 0; for (let t = 0; t < this.diff.viewLineCounts.length; t++) if (e += this.diff.viewLineCounts[t], r < e) return t } return r } } var Wn, zn = i(4972), Vn = i(535), Hn = i(4534), Un = i(1185), jn = function(e, t) { return function(i, n) { t(i, n, e) } }; class Kn { constructor(e, t) { this._contextMenuService = e, this._clipboardService = t, this._zones = [], this._inlineDiffMargins = [], this._zonesMap = {}, this._decorations = [] } getForeignViewZones(e) { return e.filter((e => !this._zonesMap[String(e.id)])) } clean(e) { this._zones.length > 0 && e.changeViewZones((e => { for (const t of this._zones) e.removeZone(t) })), this._zones = [], this._zonesMap = {}, this._decorations = e.deltaDecorations( this._decorations, []) } apply(e, t, i, n) { const o = n ? ln.ZF.capture(e) : null; e.changeViewZones((t => { for (const e of this._zones) t.removeZone(e); for (const e of this._inlineDiffMargins) e.dispose(); this._zones = [], this._zonesMap = {}, this._inlineDiffMargins = []; for (let n = 0, o = i.zones.length; n < o; n++) { const o = i.zones[n]; o.suppressMouseDown = !0; const r = t.addZone(o); this._zones.push(r), this._zonesMap[String(r)] = !0, i.zones[n].diff && o.marginDomNode && (o.suppressMouseDown = !1, this._inlineDiffMargins .push(new Bn(r, o.marginDomNode, e, i.zones[n].diff, this._contextMenuService, this._clipboardService))) } })), o && o.restore(e), this._decorations = e.deltaDecorations(this._decorations, i.decorations), t && t.setZones(i.overviewZones) } } let $n = 0; const qn = (0, wn.q5)("diff-insert", vn.lA.add, vi.N("diffInsertIcon", "Line decoration for inserts in the diff editor.")), Zn = (0, wn.q5)("diff-remove", vn.lA.remove, vi.N("diffRemoveIcon", "Line decoration for removals in the diff editor.")), Gn = null === (Wn = window.trustedTypes) || void 0 === Wn ? void 0 : Wn.createPolicy( "diffEditorWidget", { createHTML: e => e }); let Yn = class e extends Le.JT { constructor(t, i, n, o, r, s, a, l, d, c, h, u) { super(), this._editorProgressService = u, this._onDidDispose = this._register( new z.Q5), this.onDidDispose = this._onDidDispose.event, this._onDidUpdateDiff = this._register(new z.Q5), this.onDidUpdateDiff = this._onDidUpdateDiff .event, this._onDidContentSizeChange = this._register(new z.Q5), this._lastOriginalWarning = null, this._lastModifiedWarning = null, this._editorWorkerService = r, this._codeEditorService = l, this._contextKeyService = this._register(s.createScoped(t)), this._instantiationService = a.createChild( new On.y([Ci.i6, this._contextKeyService])), this._contextKeyService .createKey("isInDiffEditor", !0), this._themeService = d, this._notificationService = c, this._id = ++$n, this._state = 0, this._updatingDiffProgress = null, this._domElement = t, i = i || {}, this._renderSideBySide = !0, void 0 !== i.renderSideBySide && (this._renderSideBySide = i.renderSideBySide), this._maxComputationTime = 5e3, void 0 !== i.maxComputationTime && ( this._maxComputationTime = i.maxComputationTime), this._ignoreTrimWhitespace = ! 0, void 0 !== i.ignoreTrimWhitespace && (this._ignoreTrimWhitespace = i.ignoreTrimWhitespace), this._renderIndicators = !0, void 0 !== i.renderIndicators && (this._renderIndicators = i.renderIndicators), this._originalIsEditable = (0, B.O7)(i.originalEditable, !1), this._diffCodeLens = (0, B.O7)(i.diffCodeLens, ! 1), this._diffWordWrap = so(i.diffWordWrap, "inherit"), void 0 !== i.isInEmbeddedEditor ? this._contextKeyService.createKey( "isInEmbeddedDiffEditor", i.isInEmbeddedEditor) : this._contextKeyService .createKey("isInEmbeddedDiffEditor", !1), this._renderOverviewRuler = ! 0, void 0 !== i.renderOverviewRuler && (this._renderOverviewRuler = Boolean(i.renderOverviewRuler)), this._updateDecorationsRunner = this._register(new Be.pY((() => this._updateDecorations()), 0)), this._containerDomElement = document.createElement("div"), this._containerDomElement .className = e._getClassName(this._themeService.getColorTheme(), this._renderSideBySide), this._containerDomElement.style.position = "relative", this._containerDomElement.style.height = "100%", this._domElement .appendChild(this._containerDomElement), this._overviewViewportDomElement = (0, rn.X)(document.createElement("div")), this._overviewViewportDomElement .setClassName("diffViewport"), this._overviewViewportDomElement.setPosition( "absolute"), this._overviewDomElement = document.createElement( "div"), this._overviewDomElement.className = "diffOverview", this._overviewDomElement .style.position = "absolute", this._overviewDomElement.appendChild( this._overviewViewportDomElement.domNode), this._register(he.mu( this._overviewDomElement, "mousedown", (e => { this._modifiedEditor.delegateVerticalScrollbarMouseDown(e) }))), this._renderOverviewRuler && this._containerDomElement.appendChild( this._overviewDomElement), this._originalDomNode = document.createElement( "div"), this._originalDomNode.className = "editor original", this._originalDomNode .style.position = "absolute", this._originalDomNode.style.height = "100%", this._containerDomElement.appendChild(this._originalDomNode), this._modifiedDomNode = document.createElement("div"), this._modifiedDomNode .className = "editor modified", this._modifiedDomNode.style.position = "absolute", this._modifiedDomNode.style.height = "100%", this._containerDomElement .appendChild(this._modifiedDomNode), this._beginUpdateDecorationsTimeout = - 1, this._currentlyChangingViewZones = !1, this._diffComputationToken = 0, this._originalEditorState = new Kn(h, o), this._modifiedEditorState = new Kn(h, o), this._isVisible = !0, this._isHandlingScrollEvent = !1, this._elementSizeObserver = this._register(new Hn.I(this._containerDomElement, i.dimension, (() => this._onDidContainerSizeChanged()))), i.automaticLayout && this._elementSizeObserver.startObserving(), this._diffComputationResult = null, this._originalEditor = this._createLeftHandSideEditor(i, n.originalEditor || {}), this._modifiedEditor = this._createRightHandSideEditor(i, n.modifiedEditor || {}), this._originalOverviewRuler = null, this._modifiedOverviewRuler = null, this._reviewPane = new Ln(this), this._containerDomElement.appendChild( this._reviewPane.domNode.domNode), this._containerDomElement.appendChild( this._reviewPane.shadow.domNode), this._containerDomElement.appendChild( this._reviewPane.actionBarContainer.domNode), this._enableSplitViewResizing = ! 0, void 0 !== i.enableSplitViewResizing && (this._enableSplitViewResizing = i.enableSplitViewResizing), this._renderSideBySide ? this._setStrategy( new io(this._createDataSource(), this._enableSplitViewResizing)) : this._setStrategy(new oo(this._createDataSource(), this._enableSplitViewResizing)), this._register(d.onDidColorThemeChange((t => { this._strategy && this._strategy.applyColors(t) && this._updateDecorationsRunner .schedule(), this._containerDomElement.className = e._getClassName( this._themeService.getColorTheme(), this._renderSideBySide) }))); const g = mn.Uc.getDiffEditorContributions(); for (const e of g) try { this._register(a.createInstance(e.ctor, this)) } catch (e) { (0, We.dL)(e) } this._codeEditorService.addDiffEditor(this) } _setState(e) { this._state !== e && (this._state = e, this._updatingDiffProgress && (this._updatingDiffProgress.done(), this._updatingDiffProgress = null), 1 === this._state && (this._updatingDiffProgress = this._editorProgressService .show(!0, 1e3))) } diffReviewNext() { this._reviewPane.next() } diffReviewPrev() { this._reviewPane.prev() } static _getClassName(e, t) { let i = "monaco-diff-editor monaco-editor-background "; return t && (i += "side-by-side "), i += (0, bn.m6)(e.type), i } _recreateOverviewRulers() { this._renderOverviewRuler && (this._originalOverviewRuler && (this._overviewDomElement .removeChild(this._originalOverviewRuler.getDomNode()), this._originalOverviewRuler .dispose()), this._originalEditor.hasModel() && (this._originalOverviewRuler = this._originalEditor.createOverviewRuler( "original diffOverviewRuler"), this._overviewDomElement.appendChild( this._originalOverviewRuler.getDomNode())), this._modifiedOverviewRuler && (this._overviewDomElement.removeChild(this._modifiedOverviewRuler.getDomNode()), this._modifiedOverviewRuler.dispose()), this._modifiedEditor.hasModel() && (this._modifiedOverviewRuler = this._modifiedEditor.createOverviewRuler( "modified diffOverviewRuler"), this._overviewDomElement.appendChild( this._modifiedOverviewRuler.getDomNode())), this._layoutOverviewRulers() ) } _createLeftHandSideEditor(t, i) { const n = this._createInnerEditor(this._instantiationService, this._originalDomNode, this._adjustOptionsForLeftHandSide(t), i); this._register(n.onDidScrollChange((e => { this._isHandlingScrollEvent || (e.scrollTopChanged || e.scrollLeftChanged || e.scrollHeightChanged) && (this._isHandlingScrollEvent = !0, this._modifiedEditor.setScrollPosition({ scrollLeft: e.scrollLeft, scrollTop: e.scrollTop }), this._isHandlingScrollEvent = !1, this._layoutOverviewViewport() ) }))), this._register(n.onDidChangeViewZones((() => { this._onViewZonesChanged() }))), this._register(n.onDidChangeConfiguration((e => { n.getModel() && (e.hasChanged(42) && this._updateDecorationsRunner .schedule(), e.hasChanged(131) && (this._updateDecorationsRunner .cancel(), this._updateDecorations())) }))), this._register(n.onDidChangeModelContent((() => { this._isVisible && this._beginUpdateDecorationsSoon() }))); const o = this._contextKeyService.createKey("isInDiffLeftEditor", n.hasWidgetFocus()); return this._register(n.onDidFocusEditorWidget((() => o.set(!0)))), this._register(n.onDidBlurEditorWidget((() => o.set(!1)))), this._register( n.onDidContentSizeChange((t => { const i = this._originalEditor.getContentWidth() + this._modifiedEditor .getContentWidth() + e.ONE_OVERVIEW_WIDTH, n = Math.max(this._modifiedEditor.getContentHeight(), this._originalEditor .getContentHeight()); this._onDidContentSizeChange.fire({ contentHeight: n, contentWidth: i, contentHeightChanged: t.contentHeightChanged, contentWidthChanged: t.contentWidthChanged }) }))), n } _createRightHandSideEditor(t, i) { const n = this._createInnerEditor(this._instantiationService, this._modifiedDomNode, this._adjustOptionsForRightHandSide(t), i); this._register(n.onDidScrollChange((e => { this._isHandlingScrollEvent || (e.scrollTopChanged || e.scrollLeftChanged || e.scrollHeightChanged) && (this._isHandlingScrollEvent = !0, this._originalEditor.setScrollPosition({ scrollLeft: e.scrollLeft, scrollTop: e.scrollTop }), this._isHandlingScrollEvent = !1, this._layoutOverviewViewport() ) }))), this._register(n.onDidChangeViewZones((() => { this._onViewZonesChanged() }))), this._register(n.onDidChangeConfiguration((e => { n.getModel() && (e.hasChanged(42) && this._updateDecorationsRunner .schedule(), e.hasChanged(131) && (this._updateDecorationsRunner .cancel(), this._updateDecorations())) }))), this._register(n.onDidChangeModelContent((() => { this._isVisible && this._beginUpdateDecorationsSoon() }))), this._register(n.onDidChangeModelOptions((e => { e.tabSize && this._updateDecorationsRunner.schedule() }))); const o = this._contextKeyService.createKey("isInDiffRightEditor", n.hasWidgetFocus()); return this._register(n.onDidFocusEditorWidget((() => o.set(!0)))), this._register(n.onDidBlurEditorWidget((() => o.set(!1)))), this._register( n.onDidContentSizeChange((t => { const i = this._originalEditor.getContentWidth() + this._modifiedEditor .getContentWidth() + e.ONE_OVERVIEW_WIDTH, n = Math.max(this._modifiedEditor.getContentHeight(), this._originalEditor .getContentHeight()); this._onDidContentSizeChange.fire({ contentHeight: n, contentWidth: i, contentHeightChanged: t.contentHeightChanged, contentWidthChanged: t.contentWidthChanged }) }))), n } _createInnerEditor(e, t, i, n) { return e.createInstance(tn.Gm, t, i, n) } dispose() { this._codeEditorService.removeDiffEditor(this), -1 !== this._beginUpdateDecorationsTimeout && (window.clearTimeout(this._beginUpdateDecorationsTimeout), this._beginUpdateDecorationsTimeout = - 1), this._cleanViewZonesAndDecorations(), this._originalOverviewRuler && (this._overviewDomElement.removeChild(this._originalOverviewRuler.getDomNode()), this._originalOverviewRuler.dispose()), this._modifiedOverviewRuler && (this._overviewDomElement.removeChild(this._modifiedOverviewRuler.getDomNode()), this._modifiedOverviewRuler.dispose()), this._overviewDomElement.removeChild( this._overviewViewportDomElement.domNode), this._renderOverviewRuler && this._containerDomElement.removeChild(this._overviewDomElement), this._containerDomElement.removeChild(this._originalDomNode), this._originalEditor .dispose(), this._containerDomElement.removeChild(this._modifiedDomNode), this._modifiedEditor.dispose(), this._strategy.dispose(), this._containerDomElement .removeChild(this._reviewPane.domNode.domNode), this._containerDomElement .removeChild(this._reviewPane.shadow.domNode), this._containerDomElement .removeChild(this._reviewPane.actionBarContainer.domNode), this._reviewPane .dispose(), this._domElement.removeChild(this._containerDomElement), this._onDidDispose.fire(), super.dispose() } getId() { return this.getEditorType() + ":" + this._id } getEditorType() { return Te.g.IDiffEditor } getLineChanges() { return this._diffComputationResult ? this._diffComputationResult.changes : null } getOriginalEditor() { return this._originalEditor } getModifiedEditor() { return this._modifiedEditor } updateOptions(t) { let i = !1; void 0 !== t.renderSideBySide && this._renderSideBySide !== t.renderSideBySide && (this._renderSideBySide = t.renderSideBySide, i = !0), void 0 !== t.maxComputationTime && (this._maxComputationTime = t.maxComputationTime, this._isVisible && this._beginUpdateDecorationsSoon()); let n = !1; void 0 !== t.ignoreTrimWhitespace && this._ignoreTrimWhitespace !== t .ignoreTrimWhitespace && (this._ignoreTrimWhitespace = t.ignoreTrimWhitespace, n = !0), void 0 !== t.renderIndicators && this._renderIndicators !== t.renderIndicators && (this._renderIndicators = t.renderIndicators, n = !0), n && this._beginUpdateDecorations(), this._originalIsEditable = (0, B.O7)(t.originalEditable, this._originalIsEditable), this._diffCodeLens = (0, B.O7)(t.diffCodeLens, this._diffCodeLens), this._diffWordWrap = so(t.diffWordWrap, this._diffWordWrap), this._modifiedEditor.updateOptions( this._adjustOptionsForRightHandSide(t)), this._originalEditor.updateOptions( this._adjustOptionsForLeftHandSide(t)), void 0 !== t.enableSplitViewResizing && (this._enableSplitViewResizing = t.enableSplitViewResizing), this._strategy .setEnableSplitViewResizing(this._enableSplitViewResizing), i && ( this._renderSideBySide ? this._setStrategy(new io(this._createDataSource(), this._enableSplitViewResizing)) : this._setStrategy(new oo(this._createDataSource(), this._enableSplitViewResizing)), this._containerDomElement.className = e._getClassName(this._themeService.getColorTheme(), this._renderSideBySide) ), void 0 !== t.renderOverviewRuler && this._renderOverviewRuler !== t.renderOverviewRuler && (this._renderOverviewRuler = t.renderOverviewRuler, this._renderOverviewRuler ? this._containerDomElement.appendChild( this._overviewDomElement) : this._containerDomElement.removeChild( this._overviewDomElement)) } getModel() { return { original: this._originalEditor.getModel(), modified: this._modifiedEditor.getModel() } } setModel(e) { if (e && (!e.original || !e.modified)) throw new Error(e.original ? "DiffEditorWidget.setModel: Modified model is null" : "DiffEditorWidget.setModel: Original model is null"); this._cleanViewZonesAndDecorations(), this._originalEditor.setModel(e ? e.original : null), this._modifiedEditor.setModel(e ? e.modified : null), this._updateDecorationsRunner.cancel(), e && (this._originalEditor .setScrollTop(0), this._modifiedEditor.setScrollTop(0)), this._diffComputationResult = null, this._diffComputationToken++, this._setState(0), e && (this._recreateOverviewRulers(), this._beginUpdateDecorations()), this._layoutOverviewViewport() } getDomNode() { return this._domElement } getVisibleColumnFromPosition(e) { return this._modifiedEditor.getVisibleColumnFromPosition(e) } getPosition() { return this._modifiedEditor.getPosition() } setPosition(e) { this._modifiedEditor.setPosition(e) } revealLine(e, t = 0) { this._modifiedEditor.revealLine(e, t) } revealLineInCenter(e, t = 0) { this._modifiedEditor.revealLineInCenter(e, t) } revealLineInCenterIfOutsideViewport(e, t = 0) { this._modifiedEditor.revealLineInCenterIfOutsideViewport(e, t) } revealLineNearTop(e, t = 0) { this._modifiedEditor.revealLineNearTop(e, t) } revealPosition(e, t = 0) { this._modifiedEditor.revealPosition(e, t) } revealPositionInCenter(e, t = 0) { this._modifiedEditor.revealPositionInCenter(e, t) } revealPositionInCenterIfOutsideViewport(e, t = 0) { this._modifiedEditor.revealPositionInCenterIfOutsideViewport(e, t) } revealPositionNearTop(e, t = 0) { this._modifiedEditor.revealPositionNearTop(e, t) } getSelection() { return this._modifiedEditor.getSelection() } getSelections() { return this._modifiedEditor.getSelections() } setSelection(e) { this._modifiedEditor.setSelection(e) } setSelections(e) { this._modifiedEditor.setSelections(e) } revealLines(e, t, i = 0) { this._modifiedEditor.revealLines(e, t, i) } revealLinesInCenter(e, t, i = 0) { this._modifiedEditor.revealLinesInCenter(e, t, i) } revealLinesInCenterIfOutsideViewport(e, t, i = 0) { this._modifiedEditor.revealLinesInCenterIfOutsideViewport(e, t, i) } revealLinesNearTop(e, t, i = 0) { this._modifiedEditor.revealLinesNearTop(e, t, i) } revealRange(e, t = 0, i = !1, n = !0) { this._modifiedEditor.revealRange(e, t, i, n) } revealRangeInCenter(e, t = 0) { this._modifiedEditor.revealRangeInCenter(e, t) } revealRangeInCenterIfOutsideViewport(e, t = 0) { this._modifiedEditor.revealRangeInCenterIfOutsideViewport(e, t) } revealRangeNearTop(e, t = 0) { this._modifiedEditor.revealRangeNearTop(e, t) } revealRangeNearTopIfOutsideViewport(e, t = 0) { this._modifiedEditor.revealRangeNearTopIfOutsideViewport(e, t) } revealRangeAtTop(e, t = 0) { this._modifiedEditor.revealRangeAtTop(e, t) } getSupportedActions() { return this._modifiedEditor.getSupportedActions() } saveViewState() { return { original: this._originalEditor.saveViewState(), modified: this._modifiedEditor.saveViewState() } } restoreViewState(e) { if (e && e.original && e.modified) { const t = e; this._originalEditor.restoreViewState(t.original), this._modifiedEditor .restoreViewState(t.modified) } } layout(e) { this._elementSizeObserver.observe(e) } focus() { this._modifiedEditor.focus() } hasTextFocus() { return this._originalEditor.hasTextFocus() || this._modifiedEditor.hasTextFocus() } trigger(e, t, i) { this._modifiedEditor.trigger(e, t, i) } changeDecorations(e) { return this._modifiedEditor.changeDecorations(e) } _onDidContainerSizeChanged() { this._doLayout() } _getReviewHeight() { return this._reviewPane.isVisible() ? this._elementSizeObserver.getHeight() : 0 } _layoutOverviewRulers() { if (!this._renderOverviewRuler) return; if (!this._originalOverviewRuler || !this._modifiedOverviewRuler) return; const t = this._elementSizeObserver.getHeight(), i = this._getReviewHeight(), n = e.ENTIRE_DIFF_OVERVIEW_WIDTH - 2 * e.ONE_OVERVIEW_WIDTH; this._modifiedEditor.getLayoutInfo() && (this._originalOverviewRuler.setLayout({ top: 0, width: e.ONE_OVERVIEW_WIDTH, right: n + e.ONE_OVERVIEW_WIDTH, height: t - i }), this._modifiedOverviewRuler.setLayout({ top: 0, right: 0, width: e.ONE_OVERVIEW_WIDTH, height: t - i })) } _onViewZonesChanged() { this._currentlyChangingViewZones || this._updateDecorationsRunner.schedule() } _beginUpdateDecorationsSoon() { -1 !== this._beginUpdateDecorationsTimeout && (window.clearTimeout( this._beginUpdateDecorationsTimeout), this._beginUpdateDecorationsTimeout = - 1), this._beginUpdateDecorationsTimeout = window.setTimeout((() => this._beginUpdateDecorations()), e.UPDATE_DIFF_DECORATIONS_DELAY) } static _equals(e, t) { return !e && !t || !(!e || !t) && e.toString() === t.toString() } _beginUpdateDecorations() { this._beginUpdateDecorationsTimeout = -1; const t = this._originalEditor.getModel(), i = this._modifiedEditor.getModel(); if (!t || !i) return; this._diffComputationToken++; const n = this._diffComputationToken; this._setState(1), this._editorWorkerService.canComputeDiff(t.uri, i.uri) ? this._editorWorkerService.computeDiff(t.uri, i.uri, this._ignoreTrimWhitespace, this._maxComputationTime).then((e => { n === this._diffComputationToken && t === this._originalEditor.getModel() && i === this._modifiedEditor.getModel() && (this._setState(2), this._diffComputationResult = e, this._updateDecorationsRunner.schedule(), this._onDidUpdateDiff.fire()) }), (e => { n === this._diffComputationToken && t === this._originalEditor.getModel() && i === this._modifiedEditor.getModel() && (this._setState(2), this._diffComputationResult = null, this._updateDecorationsRunner .schedule()) })) : e._equals(t.uri, this._lastOriginalWarning) && e._equals(i.uri, this._lastModifiedWarning) || (this._lastOriginalWarning = t.uri, this._lastModifiedWarning = i.uri, this._notificationService.warn( vi.N("diff.tooLarge", "Cannot compare files because one file is too large."))) } _cleanViewZonesAndDecorations() { this._originalEditorState.clean(this._originalEditor), this._modifiedEditorState .clean(this._modifiedEditor) } _updateDecorations() { if (!this._originalEditor.getModel() || !this._modifiedEditor.getModel()) return; const e = this._diffComputationResult ? this._diffComputationResult.changes : [], t = this._originalEditorState.getForeignViewZones(this._originalEditor .getWhitespaces()), i = this._modifiedEditorState.getForeignViewZones(this._modifiedEditor .getWhitespaces()), n = this._strategy.getEditorsDiffDecorations(e, this._ignoreTrimWhitespace, this._renderIndicators, t, i); try { this._currentlyChangingViewZones = !0, this._originalEditorState.apply( this._originalEditor, this._originalOverviewRuler, n.original, !1), this._modifiedEditorState.apply(this._modifiedEditor, this._modifiedOverviewRuler, n.modified, !0) } finally { this._currentlyChangingViewZones = !1 } } _adjustOptionsForSubEditor(e) { const t = Object.assign({}, e); return t.inDiffEditor = !0, t.automaticLayout = !1, t.scrollbar = Object.assign({}, t.scrollbar || {}), t.scrollbar.vertical = "visible", t.folding = !1, t.codeLens = this._diffCodeLens, t.fixedOverflowWidgets = ! 0, t.minimap = Object.assign({}, t.minimap || {}), t.minimap.enabled = ! 1, t } _adjustOptionsForLeftHandSide(e) { const t = this._adjustOptionsForSubEditor(e); return this._renderSideBySide ? t.wordWrapOverride1 = this._diffWordWrap : t.wordWrapOverride1 = "off", e.originalAriaLabel && (t.ariaLabel = e .originalAriaLabel), t.readOnly = !this._originalIsEditable, t.extraEditorClassName = "original-in-monaco-diff-editor", Object.assign(Object.assign({}, t), { dimension: { height: 0, width: 0 } }) } _adjustOptionsForRightHandSide(t) { const i = this._adjustOptionsForSubEditor(t); return t.modifiedAriaLabel && (i.ariaLabel = t.modifiedAriaLabel), i.wordWrapOverride1 = this._diffWordWrap, i.revealHorizontalRightPadding = B.BH.revealHorizontalRightPadding .defaultValue + e.ENTIRE_DIFF_OVERVIEW_WIDTH, i.scrollbar.verticalHasArrows = ! 1, i.extraEditorClassName = "modified-in-monaco-diff-editor", Object .assign(Object.assign({}, i), { dimension: { height: 0, width: 0 } }) } doLayout() { this._elementSizeObserver.observe(), this._doLayout() } _doLayout() { const t = this._elementSizeObserver.getWidth(), i = this._elementSizeObserver.getHeight(), n = this._getReviewHeight(), o = this._strategy.layout(); this._originalDomNode.style.width = o + "px", this._originalDomNode.style .left = "0px", this._modifiedDomNode.style.width = t - o + "px", this._modifiedDomNode.style.left = o + "px", this._overviewDomElement .style.top = "0px", this._overviewDomElement.style.height = i - n + "px", this._overviewDomElement.style.width = e.ENTIRE_DIFF_OVERVIEW_WIDTH + "px", this._overviewDomElement.style.left = t - e.ENTIRE_DIFF_OVERVIEW_WIDTH + "px", this._overviewViewportDomElement.setWidth(e.ENTIRE_DIFF_OVERVIEW_WIDTH), this._overviewViewportDomElement.setHeight(30), this._originalEditor .layout({ width: o, height: i - n }), this._modifiedEditor.layout({ width: t - o - (this._renderOverviewRuler ? e.ENTIRE_DIFF_OVERVIEW_WIDTH : 0), height: i - n }), (this._originalOverviewRuler || this._modifiedOverviewRuler) && this._layoutOverviewRulers(), this._reviewPane.layout(i - n, t, n), this._layoutOverviewViewport() } _layoutOverviewViewport() { const e = this._computeOverviewViewport(); e ? (this._overviewViewportDomElement.setTop(e.top), this._overviewViewportDomElement .setHeight(e.height)) : (this._overviewViewportDomElement.setTop(0), this._overviewViewportDomElement.setHeight(0)) } _computeOverviewViewport() { const e = this._modifiedEditor.getLayoutInfo(); if (!e) return null; const t = this._modifiedEditor.getScrollTop(), i = this._modifiedEditor.getScrollHeight(), n = Math.max(0, e.height), o = Math.max(0, n - 0), r = i > 0 ? o / i : 0; return { height: Math.max(0, Math.floor(e.height * r)), top: Math.floor(t * r) } } _createDataSource() { return { getWidth: () => this._elementSizeObserver.getWidth(), getHeight: () => this._elementSizeObserver.getHeight() - this._getReviewHeight(), getOptions: () => ({ renderOverviewRuler: this._renderOverviewRuler }), getContainerDomNode: () => this._containerDomElement, relayoutEditors: () => { this._doLayout() }, getOriginalEditor: () => this._originalEditor, getModifiedEditor: () => this._modifiedEditor } } _setStrategy(e) { this._strategy && this._strategy.dispose(), this._strategy = e, e.applyColors( this._themeService.getColorTheme()), this._diffComputationResult && this._updateDecorations(), this._doLayout() } _getLineChangeAtOrBeforeLineNumber(e, t) { const i = this._diffComputationResult ? this._diffComputationResult.changes : []; if (0 === i.length || e < t(i[0])) return null; let n = 0, o = i.length - 1; for (; n < o;) { const r = Math.floor((n + o) / 2), s = t(i[r]), a = r + 1 <= o ? t(i[r + 1]) : 1073741824; e < s ? o = r - 1 : e >= a ? n = r + 1 : (n = r, o = r) } return i[n] } _getEquivalentLineForOriginalLineNumber(e) { const t = this._getLineChangeAtOrBeforeLineNumber(e, (e => e.originalStartLineNumber)); if (!t) return e; const i = t.originalStartLineNumber + (t.originalEndLineNumber > 0 ? -1 : 0), n = t.modifiedStartLineNumber + (t.modifiedEndLineNumber > 0 ? -1 : 0), o = t.originalEndLineNumber > 0 ? t.originalEndLineNumber - t.originalStartLineNumber + 1 : 0, r = t.modifiedEndLineNumber > 0 ? t.modifiedEndLineNumber - t.modifiedStartLineNumber + 1 : 0, s = e - i; return s <= o ? n + Math.min(s, r) : n + r - o + s } _getEquivalentLineForModifiedLineNumber(e) { const t = this._getLineChangeAtOrBeforeLineNumber(e, (e => e.modifiedStartLineNumber)); if (!t) return e; const i = t.originalStartLineNumber + (t.originalEndLineNumber > 0 ? -1 : 0), n = t.modifiedStartLineNumber + (t.modifiedEndLineNumber > 0 ? -1 : 0), o = t.originalEndLineNumber > 0 ? t.originalEndLineNumber - t.originalStartLineNumber + 1 : 0, r = t.modifiedEndLineNumber > 0 ? t.modifiedEndLineNumber - t.modifiedStartLineNumber + 1 : 0, s = e - n; return s <= r ? i + Math.min(s, o) : i + o - r + s } getDiffLineInformationForOriginal(e) { return this._diffComputationResult ? { equivalentLineNumber: this._getEquivalentLineForOriginalLineNumber( e) } : null } getDiffLineInformationForModified(e) { return this._diffComputationResult ? { equivalentLineNumber: this._getEquivalentLineForModifiedLineNumber( e) } : null } }; Yn.ONE_OVERVIEW_WIDTH = 15, Yn.ENTIRE_DIFF_OVERVIEW_WIDTH = 30, Yn.UPDATE_DIFF_DECORATIONS_DELAY = 200, Yn = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([jn(3, zn.p), jn(4, Oe.p), jn(5, Ci.i6), jn(6, Rn.TG), jn(7, ce.$), jn( 8, bn.XE), jn(9, Ti.lT), jn(10, Pn.i), jn(11, Vn.e)], Yn); class Qn extends Le.JT { constructor(e) { super(), this._dataSource = e, this._insertColor = null, this._removeColor = null } applyColors(e) { const t = (e.getColor(_n.yp) || _n.Cz).transparent(2), i = (e.getColor(_n.P4) || _n.ke).transparent(2), n = !t.equals(this._insertColor) || !i.equals(this._removeColor); return this._insertColor = t, this._removeColor = i, n } getEditorsDiffDecorations(e, t, i, n, o) { o = o.sort(((e, t) => e.afterLineNumber - t.afterLineNumber)), n = n.sort( ((e, t) => e.afterLineNumber - t.afterLineNumber)); const r = this._getViewZones(e, n, o, i), s = this._getOriginalEditorDecorations(e, t, i), a = this._getModifiedEditorDecorations(e, t, i); return { original: { decorations: s.decorations, overviewZones: s.overviewZones, zones: r.original }, modified: { decorations: a.decorations, overviewZones: a.overviewZones, zones: r.modified } } } } class Xn { constructor(e) { this._source = e, this._index = -1, this.current = null, this.advance() } advance() { this._index++, this._index < this._source.length ? this.current = this ._source[this._index] : this.current = null } } class Jn { constructor(e, t, i, n, o) { this._lineChanges = e, this._originalForeignVZ = t, this._modifiedForeignVZ = i, this._originalEditor = n, this._modifiedEditor = o } static _getViewLineCount(e, t, i) { const n = e.getModel(), o = e._getViewModel(); if (n && o) { const e = ho(n, o, t, i); return e.endLineNumber - e.startLineNumber + 1 } return i - t + 1 } getViewZones() { const e = this._originalEditor.getOption(58), t = this._modifiedEditor.getOption(58), i = -1 !== this._originalEditor.getOption(131).wrappingColumn, n = -1 !== this._modifiedEditor.getOption(131).wrappingColumn, o = i || n, r = this._originalEditor.getModel(), s = this._originalEditor._getViewModel().coordinatesConverter, a = this._modifiedEditor._getViewModel().coordinatesConverter, l = [], d = []; let c = 0, h = 0, u = 0, g = 0, p = 0, m = 0; const f = (e, t) => e.afterLineNumber - t.afterLineNumber, _ = (e, t) => { if (null === t.domNode && e.length > 0) { const i = e[e.length - 1]; if (i.afterLineNumber === t.afterLineNumber && null === i.domNode) return void(i.heightInLines += t.heightInLines) } e.push(t) }, b = new Xn(this._modifiedForeignVZ), v = new Xn(this._originalForeignVZ); let w = 1, C = 1; for (let i = 0, n = this._lineChanges.length; i <= n; i++) { const y = i < n ? this._lineChanges[i] : null; null !== y ? (u = y.originalStartLineNumber + (y.originalEndLineNumber > 0 ? -1 : 0), g = y.modifiedStartLineNumber + (y.modifiedEndLineNumber > 0 ? -1 : 0), h = y.originalEndLineNumber > 0 ? Jn._getViewLineCount( this._originalEditor, y.originalStartLineNumber, y.originalEndLineNumber ) : 0, c = y.modifiedEndLineNumber > 0 ? Jn._getViewLineCount(this._modifiedEditor, y.modifiedStartLineNumber, y.modifiedEndLineNumber) : 0, p = Math.max( y.originalStartLineNumber, y.originalEndLineNumber), m = Math.max( y.modifiedStartLineNumber, y.modifiedEndLineNumber)) : (u += 1e7 + h, g += 1e7 + c, p = u, m = g); let S = [], x = []; if (o) { let e; e = y ? y.originalEndLineNumber > 0 ? y.originalStartLineNumber - w : y.modifiedStartLineNumber - C : r.getLineCount() - w; for (let t = 0; t < e; t++) { const e = w + t, i = C + t, n = s.getModelLineViewLineCount(e), o = a.getModelLineViewLineCount(i); n < o ? S.push({ afterLineNumber: e, heightInLines: o - n, domNode: null, marginDomNode: null }) : n > o && x.push({ afterLineNumber: i, heightInLines: n - o, domNode: null, marginDomNode: null }) } y && (w = (y.originalEndLineNumber > 0 ? y.originalEndLineNumber : y .originalStartLineNumber) + 1, C = (y.modifiedEndLineNumber > 0 ? y.modifiedEndLineNumber : y.modifiedStartLineNumber) + 1) } for (; b.current && b.current.afterLineNumber <= m;) { let e; e = b.current.afterLineNumber <= g ? u - g + b.current.afterLineNumber : p; let i = null; y && y.modifiedStartLineNumber <= b.current.afterLineNumber && b.current .afterLineNumber <= y.modifiedEndLineNumber && (i = this._createOriginalMarginDomNodeForModifiedForeignViewZoneInAddedRegion()), S.push({ afterLineNumber: e, heightInLines: b.current.height / t, domNode: null, marginDomNode: i }), b.advance() } for (; v.current && v.current.afterLineNumber <= p;) { let t; t = v.current.afterLineNumber <= u ? g - u + v.current.afterLineNumber : m, x.push({ afterLineNumber: t, heightInLines: v.current.height / e, domNode: null }), v.advance() } if (null !== y && ao(y)) { const e = this._produceOriginalFromDiff(y, h, c); e && S.push(e) } if (null !== y && lo(y)) { const e = this._produceModifiedFromDiff(y, h, c); e && x.push(e) } let k = 0, L = 0; for (S = S.sort(f), x = x.sort(f); k < S.length && L < x.length;) { const e = S[k], t = x[L], i = e.afterLineNumber - u, n = t.afterLineNumber - g; i < n ? (_(l, e), k++) : n < i ? (_(d, t), L++) : e.shouldNotShrink ? (_(l, e), k++) : t.shouldNotShrink ? (_(d, t), L++) : e.heightInLines >= t.heightInLines ? (e.heightInLines -= t.heightInLines, L++) : (t.heightInLines -= e.heightInLines, k++) } for (; k < S.length;) _(l, S[k]), k++; for (; L < x.length;) _(d, x[L]), L++ } return { original: Jn._ensureDomNodes(l), modified: Jn._ensureDomNodes(d) } } static _ensureDomNodes(e) { return e.map((e => (e.domNode || (e.domNode = co()), e))) } } function eo(e, t, i, n, o) { return { range: new j.e(e, t, i, n), options: o } } const to = { charDelete: Tn.qx.register({ description: "diff-editor-char-delete", className: "char-delete" }), charDeleteWholeLine: Tn.qx.register({ description: "diff-editor-char-delete-whole-line", className: "char-delete", isWholeLine: !0 }), charInsert: Tn.qx.register({ description: "diff-editor-char-insert", className: "char-insert" }), charInsertWholeLine: Tn.qx.register({ description: "diff-editor-char-insert-whole-line", className: "char-insert", isWholeLine: !0 }), lineInsert: Tn.qx.register({ description: "diff-editor-line-insert", className: "line-insert", marginClassName: "line-insert", isWholeLine: !0 }), lineInsertWithSign: Tn.qx.register({ description: "diff-editor-line-insert-with-sign", className: "line-insert", linesDecorationsClassName: "insert-sign " + bn.kS.asClassName(qn), marginClassName: "line-insert", isWholeLine: !0 }), lineDelete: Tn.qx.register({ description: "diff-editor-line-delete", className: "line-delete", marginClassName: "line-delete", isWholeLine: !0 }), lineDeleteWithSign: Tn.qx.register({ description: "diff-editor-line-delete-with-sign", className: "line-delete", linesDecorationsClassName: "delete-sign " + bn.kS.asClassName(Zn), marginClassName: "line-delete", isWholeLine: !0 }), lineDeleteMargin: Tn.qx.register({ description: "diff-editor-line-delete-margin", marginClassName: "line-delete" }) }; class io extends Qn { constructor(e, t) { super(e), this._disableSash = !1 === t, this._sashRatio = null, this._sashPosition = null, this._startSashPosition = null, this._sash = this._register(new sn .g(this._dataSource.getContainerDomNode(), this, { orientation: 0 })), this._disableSash && (this._sash.state = 0), this._sash.onDidStart( (() => this._onSashDragStart())), this._sash.onDidChange((e => this._onSashDrag( e))), this._sash.onDidEnd((() => this._onSashDragEnd())), this._sash .onDidReset((() => this._onSashReset())) } setEnableSplitViewResizing(e) { const t = !1 === e; this._disableSash !== t && (this._disableSash = t, this._sash.state = this._disableSash ? 0 : 3) } layout(e = this._sashRatio) { const t = this._dataSource.getWidth() - (this._dataSource.getOptions() .renderOverviewRuler ? Yn.ENTIRE_DIFF_OVERVIEW_WIDTH : 0); let i = Math.floor((e || .5) * t); const n = Math.floor(.5 * t); return i = this._disableSash ? n : i || n, t > 2 * io.MINIMUM_EDITOR_WIDTH ? (i < io.MINIMUM_EDITOR_WIDTH && (i = io.MINIMUM_EDITOR_WIDTH), i > t - io.MINIMUM_EDITOR_WIDTH && (i = t - io.MINIMUM_EDITOR_WIDTH)) : i = n, this._sashPosition !== i && (this._sashPosition = i, this._sash.layout()), this._sashPosition } _onSashDragStart() { this._startSashPosition = this._sashPosition } _onSashDrag(e) { const t = this._dataSource.getWidth() - (this._dataSource.getOptions() .renderOverviewRuler ? Yn.ENTIRE_DIFF_OVERVIEW_WIDTH : 0), i = this.layout((this._startSashPosition + (e.currentX - e.startX)) / t); this._sashRatio = i / t, this._dataSource.relayoutEditors() } _onSashDragEnd() { this._sash.layout() } _onSashReset() { this._sashRatio = .5, this._dataSource.relayoutEditors(), this._sash.layout() } getVerticalSashTop(e) { return 0 } getVerticalSashLeft(e) { return this._sashPosition } getVerticalSashHeight(e) { return this._dataSource.getHeight() } _getViewZones(e, t, i) { const n = this._dataSource.getOriginalEditor(), o = this._dataSource.getModifiedEditor(); return new no(e, t, i, n, o).getViewZones() } _getOriginalEditorDecorations(e, t, i) { const n = this._dataSource.getOriginalEditor(), o = String(this._removeColor), r = { decorations: [], overviewZones: [] }, s = n.getModel(), a = n._getViewModel(); for (const n of e) if (lo(n)) { r.decorations.push({ range: new j.e(n.originalStartLineNumber, 1, n.originalEndLineNumber, 1073741824), options: i ? to.lineDeleteWithSign : to.lineDelete }), ao(n) && n.charChanges || r.decorations.push(eo(n.originalStartLineNumber, 1, n.originalEndLineNumber, 1073741824, to.charDeleteWholeLine)); const e = ho(s, a, n.originalStartLineNumber, n.originalEndLineNumber); if (r.overviewZones.push(new Mn.EY(e.startLineNumber, e.endLineNumber, o)), n.charChanges) for (const e of n.charChanges) if (lo(e)) if (t) for (let t = e.originalStartLineNumber; t <= e.originalEndLineNumber; t++) { let i, n; i = t === e.originalStartLineNumber ? e.originalStartColumn : s .getLineFirstNonWhitespaceColumn(t), n = t === e.originalEndLineNumber ? e.originalEndColumn : s.getLineLastNonWhitespaceColumn(t), r.decorations .push(eo(t, i, t, n, to.charDelete)) } else r.decorations.push(eo(e.originalStartLineNumber, e.originalStartColumn, e.originalEndLineNumber, e.originalEndColumn, to.charDelete)) } return r } _getModifiedEditorDecorations(e, t, i) { const n = this._dataSource.getModifiedEditor(), o = String(this._insertColor), r = { decorations: [], overviewZones: [] }, s = n.getModel(), a = n._getViewModel(); for (const n of e) if (ao(n)) { r.decorations.push({ range: new j.e(n.modifiedStartLineNumber, 1, n.modifiedEndLineNumber, 1073741824), options: i ? to.lineInsertWithSign : to.lineInsert }), lo(n) && n.charChanges || r.decorations.push(eo(n.modifiedStartLineNumber, 1, n.modifiedEndLineNumber, 1073741824, to.charInsertWholeLine)); const e = ho(s, a, n.modifiedStartLineNumber, n.modifiedEndLineNumber); if (r.overviewZones.push(new Mn.EY(e.startLineNumber, e.endLineNumber, o)), n.charChanges) for (const e of n.charChanges) if (ao(e)) if (t) for (let t = e.modifiedStartLineNumber; t <= e.modifiedEndLineNumber; t++) { let i, n; i = t === e.modifiedStartLineNumber ? e.modifiedStartColumn : s .getLineFirstNonWhitespaceColumn(t), n = t === e.modifiedEndLineNumber ? e.modifiedEndColumn : s.getLineLastNonWhitespaceColumn(t), r.decorations .push(eo(t, i, t, n, to.charInsert)) } else r.decorations.push(eo(e.modifiedStartLineNumber, e.modifiedStartColumn, e.modifiedEndLineNumber, e.modifiedEndColumn, to.charInsert)) } return r } } io.MINIMUM_EDITOR_WIDTH = 100; class no extends Jn { constructor(e, t, i, n, o) { super(e, t, i, n, o) } _createOriginalMarginDomNodeForModifiedForeignViewZoneInAddedRegion() { return null } _produceOriginalFromDiff(e, t, i) { return i > t ? { afterLineNumber: Math.max(e.originalStartLineNumber, e.originalEndLineNumber), heightInLines: i - t, domNode: null } : null } _produceModifiedFromDiff(e, t, i) { return t > i ? { afterLineNumber: Math.max(e.modifiedStartLineNumber, e.modifiedEndLineNumber), heightInLines: t - i, domNode: null } : null } } class oo extends Qn { constructor(e, t) { super(e), this._decorationsLeft = e.getOriginalEditor().getLayoutInfo() .decorationsLeft, this._register(e.getOriginalEditor().onDidLayoutChange( (t => { this._decorationsLeft !== t.decorationsLeft && (this._decorationsLeft = t.decorationsLeft, e.relayoutEditors()) }))) } setEnableSplitViewResizing(e) {} _getViewZones(e, t, i, n) { const o = this._dataSource.getOriginalEditor(), r = this._dataSource.getModifiedEditor(); return new ro(e, t, i, o, r, n).getViewZones() } _getOriginalEditorDecorations(e, t, i) { const n = String(this._removeColor), o = { decorations: [], overviewZones: [] }, r = this._dataSource.getOriginalEditor(), s = r.getModel(), a = r._getViewModel(); for (const t of e) if (lo(t)) { o.decorations.push({ range: new j.e(t.originalStartLineNumber, 1, t.originalEndLineNumber, 1073741824), options: to.lineDeleteMargin }); const e = ho(s, a, t.originalStartLineNumber, t.originalEndLineNumber); o.overviewZones.push(new Mn.EY(e.startLineNumber, e.endLineNumber, n)) } return o } _getModifiedEditorDecorations(e, t, i) { const n = this._dataSource.getModifiedEditor(), o = String(this._insertColor), r = { decorations: [], overviewZones: [] }, s = n.getModel(), a = n._getViewModel(); for (const n of e) if (ao(n)) { r.decorations.push({ range: new j.e(n.modifiedStartLineNumber, 1, n.modifiedEndLineNumber, 1073741824), options: i ? to.lineInsertWithSign : to.lineInsert }); const e = ho(s, a, n.modifiedStartLineNumber, n.modifiedEndLineNumber); if (r.overviewZones.push(new Mn.EY(e.startLineNumber, e.endLineNumber, o)), n.charChanges) { for (const e of n.charChanges) if (ao(e)) if (t) for (let t = e.modifiedStartLineNumber; t <= e.modifiedEndLineNumber; t++) { let i, n; i = t === e.modifiedStartLineNumber ? e.modifiedStartColumn : s .getLineFirstNonWhitespaceColumn(t), n = t === e.modifiedEndLineNumber ? e.modifiedEndColumn : s.getLineLastNonWhitespaceColumn(t), r.decorations .push(eo(t, i, t, n, to.charInsert)) } else r.decorations.push(eo(e.modifiedStartLineNumber, e.modifiedStartColumn, e.modifiedEndLineNumber, e.modifiedEndColumn, to.charInsert)) } else r.decorations.push(eo(n.modifiedStartLineNumber, 1, n.modifiedEndLineNumber, 1073741824, to.charInsertWholeLine)) } return r } layout() { return Math.max(5, this._decorationsLeft) } } class ro extends Jn { constructor(e, t, i, n, o, r) { super(e, t, i, n, o), this._originalModel = n.getModel(), this._renderIndicators = r, this._pendingLineChange = [], this._pendingViewZones = [], this._lineBreaksComputer = this._modifiedEditor._getViewModel().createLineBreaksComputer() } getViewZones() { const e = super.getViewZones(); return this._finalize(e), e } _createOriginalMarginDomNodeForModifiedForeignViewZoneInAddedRegion() { const e = document.createElement("div"); return e.className = "inline-added-margin-view-zone", e } _produceOriginalFromDiff(e, t, i) { const n = document.createElement("div"); return n.className = "inline-added-margin-view-zone", { afterLineNumber: Math.max(e.originalStartLineNumber, e.originalEndLineNumber), heightInLines: i, domNode: document.createElement("div"), marginDomNode: n } } _produceModifiedFromDiff(e, t, i) { const n = document.createElement("div"); n.className = `view-lines line-delete ${Un.S}`; const o = document.createElement("div"); o.className = "inline-deleted-margin-view-zone"; const r = { shouldNotShrink: !0, afterLineNumber: 0 === e.modifiedEndLineNumber ? e.modifiedStartLineNumber : e .modifiedStartLineNumber - 1, heightInLines: t, minWidthInPx: 0, domNode: n, marginDomNode: o, diff: { originalStartLineNumber: e.originalStartLineNumber, originalEndLineNumber: e.originalEndLineNumber, modifiedStartLineNumber: e.modifiedStartLineNumber, modifiedEndLineNumber: e.modifiedEndLineNumber, originalModel: this._originalModel, viewLineCounts: null } }; for (let t = e.originalStartLineNumber; t <= e.originalEndLineNumber; t++) this._lineBreaksComputer.addRequest(this._originalModel.getLineContent( t), null, null); return this._pendingLineChange.push(e), this._pendingViewZones.push(r), r } _finalize(e) { const t = this._modifiedEditor.getOptions(), i = this._modifiedEditor.getModel().getOptions().tabSize, n = t.get(42), o = t.get(28), r = n.typicalHalfwidthCharacterWidth, s = t.get(93), a = this._originalModel.mightContainNonBasicASCII(), l = this._originalModel.mightContainRTL(), d = t.get(58), c = t.get(130).decorationsWidth, h = t.get(105), u = t.get(88), g = t.get(82), p = t.get(43), m = this._lineBreaksComputer.finalize(); let f = 0; for (let t = 0; t < this._pendingLineChange.length; t++) { const _ = this._pendingLineChange[t], b = this._pendingViewZones[t], v = b.domNode; an.V.applyFontInfoSlow(v, n); const w = b.marginDomNode; an.V.applyFontInfoSlow(w, n); const C = []; if (_.charChanges) for (const e of _.charChanges) lo(e) && C.push(new Wt.$t(new j.e(e.originalStartLineNumber, e.originalStartColumn, e.originalEndLineNumber, e.originalEndColumn ), "char-delete", 0)); const y = C.length > 0, S = (0, In.l$)(1e4); let x = 0, k = 0, L = null; for (let t = _.originalStartLineNumber; t <= _.originalEndLineNumber; t++) { const r = t - _.originalStartLineNumber, s = this._originalModel.getLineTokens(t), v = s.getLineContent(), N = m[f++], D = An.Kp.filter(C, t, 1, v.length + 1); if (N) { let m = 0; for (const e of N.breakOffsets) { const t = s.sliceAndInflate(m, e, 0), r = v.substring(m, e); x = Math.max(x, this._renderOriginalLine(k++, r, t, An.Kp.extractWrapped( D, m, e), y, a, l, n, o, d, c, h, u, g, p, i, S, w)), m = e } for (L || (L = []); L.length < r;) L[L.length] = 1; L[r] = N.breakOffsets.length, b.heightInLines += N.breakOffsets.length - 1; const f = document.createElement("div"); f.className = "line-delete", e.original.push({ afterLineNumber: t, afterColumn: 0, heightInLines: N.breakOffsets.length - 1, domNode: co(), marginDomNode: f }) } else x = Math.max(x, this._renderOriginalLine(k++, v, s, D, y, a, l, n, o, d, c, h, u, g, p, i, S, w)) } x += s; const N = S.build(), D = Gn ? Gn.createHTML(N) : N; if (v.innerHTML = D, b.minWidthInPx = x * r, L) { const e = _.originalEndLineNumber - _.originalStartLineNumber; for (; L.length <= e;) L[L.length] = 1 } b.diff.viewLineCounts = L } e.original.sort(((e, t) => e.afterLineNumber - t.afterLineNumber)) } _renderOriginalLine(e, t, i, n, o, r, s, a, l, d, c, h, u, g, p, m, f, _) { f.appendASCIIString('
    '); const b = Wt.wA.isBasicASCII(t, r), v = Wt.wA.containsRTL(t, b, s), w = (0, Bt.d1)(new Bt.IJ(a.isMonospace && !l, a.canUseHalfwidthRightwardsArrow, t, !1, b, v, 0, i, n, m, 0, a.spaceWidth, a.middotWidth, a.wsmiddotWidth, h, u, g, p !== B.n0.OFF, null), f); if (f.appendASCIIString("
    "), this._renderIndicators) { const t = document.createElement("div"); t.className = `delete-sign ${bn.kS.asClassName(Zn)}`, t.setAttribute( "style", `position:absolute;top:${e*d}px;width:${c}px;height:${d}px;right:0;` ), _.appendChild(t) } return w.characterMapping.getAbsoluteOffset(w.characterMapping.length) } } function so(e, t) { return (0, B.NY)(e, t, ["off", "on", "inherit"]) } function ao(e) { return e.modifiedEndLineNumber > 0 } function lo(e) { return e.originalEndLineNumber > 0 } function co() { const e = document.createElement("div"); return e.className = "diagonal-fill", e } function ho(e, t, i, n) { const o = e.getLineCount(); return i = Math.min(o, Math.max(1, i)), n = Math.min(o, Math.max(1, n)), t.coordinatesConverter.convertModelRangeToViewRange(new j.e(i, e.getLineMinColumn( i), n, e.getLineMaxColumn(n))) }(0, bn.Ic)(((e, t) => { const i = e.getColor(_n.yp); i && (t.addRule( `.monaco-editor .line-insert, .monaco-editor .char-insert { background-color: ${i}; }` ), t.addRule( `.monaco-diff-editor .line-insert, .monaco-diff-editor .char-insert { background-color: ${i}; }` ), t.addRule( `.monaco-editor .inline-added-margin-view-zone { background-color: ${i}; }` )); const n = e.getColor(_n.P4); n && (t.addRule( `.monaco-editor .line-delete, .monaco-editor .char-delete { background-color: ${n}; }` ), t.addRule( `.monaco-diff-editor .line-delete, .monaco-diff-editor .char-delete { background-color: ${n}; }` ), t.addRule( `.monaco-editor .inline-deleted-margin-view-zone { background-color: ${n}; }` )); const o = e.getColor(_n.XL); o && t.addRule( `.monaco-editor .line-insert, .monaco-editor .char-insert { border: 1px ${"hc"===e.type?"dashed":"solid"} ${o}; }` ); const r = e.getColor(_n.mH); r && t.addRule( `.monaco-editor .line-delete, .monaco-editor .char-delete { border: 1px ${"hc"===e.type?"dashed":"solid"} ${r}; }` ); const s = e.getColor(_n._w); s && t.addRule( `.monaco-diff-editor.side-by-side .editor.modified { box-shadow: -6px 0 5px -5px ${s}; }` ); const a = e.getColor(_n.LL); a && t.addRule( `.monaco-diff-editor.side-by-side .editor.modified { border-left: 1px solid ${a}; }` ); const l = e.getColor(_n.et); l && t.addRule( `\n\t\t\t.monaco-diff-editor .diffViewport {\n\t\t\t\tbackground: ${l};\n\t\t\t}\n\t\t` ); const d = e.getColor(_n.AB); d && t.addRule( `\n\t\t\t.monaco-diff-editor .diffViewport:hover {\n\t\t\t\tbackground: ${d};\n\t\t\t}\n\t\t` ); const c = e.getColor(_n.yn); c && t.addRule( `\n\t\t\t.monaco-diff-editor .diffViewport:active {\n\t\t\t\tbackground: ${c};\n\t\t\t}\n\t\t` ); const h = e.getColor(_n.L_); t.addRule( `\n\t.monaco-editor .diagonal-fill {\n\t\tbackground-image: linear-gradient(\n\t\t\t-45deg,\n\t\t\t${h} 12.5%,\n\t\t\t#0000 12.5%, #0000 50%,\n\t\t\t${h} 50%, ${h} 62.5%,\n\t\t\t#0000 62.5%, #0000 100%\n\t\t);\n\t\tbackground-size: 8px 8px;\n\t}\n\t` ) })); var uo = i(653), go = i(2095), po = i(4144), mo = i(1847), fo = i(1106); class _o extends Le.JT { constructor() { super(), this._onCodeEditorAdd = this._register(new z.Q5), this.onCodeEditorAdd = this._onCodeEditorAdd.event, this._onCodeEditorRemove = this._register( new z.Q5), this.onCodeEditorRemove = this._onCodeEditorRemove.event, this._onDiffEditorAdd = this._register(new z.Q5), this._onDiffEditorRemove = this._register(new z.Q5), this._onDecorationTypeRegistered = this._register( new z.Q5), this._modelProperties = new Map, this._codeEditors = Object.create(null), this._diffEditors = Object.create(null) } addCodeEditor(e) { this._codeEditors[e.getId()] = e, this._onCodeEditorAdd.fire(e) } removeCodeEditor(e) { delete this._codeEditors[e.getId()] && this._onCodeEditorRemove.fire( e) } listCodeEditors() { return Object.keys(this._codeEditors).map((e => this._codeEditors[e])) } addDiffEditor(e) { this._diffEditors[e.getId()] = e, this._onDiffEditorAdd.fire(e) } removeDiffEditor(e) { delete this._diffEditors[e.getId()] && this._onDiffEditorRemove.fire( e) } listDiffEditors() { return Object.keys(this._diffEditors).map((e => this._diffEditors[e])) } getFocusedCodeEditor() { let e = null; const t = this.listCodeEditors(); for (const i of t) { if (i.hasTextFocus()) return i; i.hasWidgetFocus() && (e = i) } return e } setModelProperty(e, t, i) { const n = e.toString(); let o; this._modelProperties.has(n) ? o = this._modelProperties.get(n) : (o = new Map, this._modelProperties.set(n, o)), o.set(t, i) } getModelProperty(e, t) { const i = e.toString(); if (this._modelProperties.has(i)) return this._modelProperties.get(i) .get(t) } } class bo { constructor(e, t, i) { this._parent = e, this._editorId = t, this._styleSheet = i, this._refCount = 0 } ref() { this._refCount++ } unref() { var e; this._refCount--, 0 === this._refCount && (null === (e = this._styleSheet .parentNode) || void 0 === e || e.removeChild(this._styleSheet), this._parent._removeEditorStyleSheets(this._editorId)) } insertRule(e, t) { this._styleSheet.sheet.insertRule(e, t) } removeRulesContainingSelector(e) { he.uN(e, this._styleSheet) } } class vo { constructor(e) { this._styleSheet = e } ref() {} unref() {} insertRule(e, t) { this._styleSheet.sheet.insertRule(e, t) } removeRulesContainingSelector(e) { he.uN(e, this._styleSheet) } } let wo = class extends _o { constructor(e, t) { super(), this._decorationOptionProviders = new Map, this._editorStyleSheets = new Map, this._globalStyleSheet = e || null, this._themeService = t } _getOrCreateGlobalStyleSheet() { return this._globalStyleSheet || (this._globalStyleSheet = new vo(he.dS())), this._globalStyleSheet } _getOrCreateStyleSheet(e) { if (!e) return this._getOrCreateGlobalStyleSheet(); const t = e.getContainerDomNode(); if (!he.OO(t)) return this._getOrCreateGlobalStyleSheet(); const i = e.getId(); if (!this._editorStyleSheets.has(i)) { const e = new bo(this, i, he.dS(t)); this._editorStyleSheets.set(i, e) } return this._editorStyleSheets.get(i) } _removeEditorStyleSheets(e) { this._editorStyleSheets.delete(e) } registerDecorationType(e, t, i, n, o) { let r = this._decorationOptionProviders.get(t); if (!r) { const s = this._getOrCreateStyleSheet(o), a = { styleSheet: s, key: t, parentTypeKey: n, options: i || Object.create(null) }; r = n ? new So(this._themeService, s, a) : new xo(e, this._themeService, s, a), this._decorationOptionProviders.set(t, r), this._onDecorationTypeRegistered .fire(t) } r.refCount++ } removeDecorationType(e) { const t = this._decorationOptionProviders.get(e); t && (t.refCount--, t.refCount <= 0 && (this._decorationOptionProviders .delete(e), t.dispose(), this.listCodeEditors().forEach((t => t.removeDecorations( e))))) } resolveDecorationOptions(e, t) { const i = this._decorationOptionProviders.get(e); if (!i) throw new Error("Unknown decoration type key: " + e); return i.getOptions(this, t) } }; var Co, yo; wo = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([(Co = 1, yo = bn.XE, function(e, t) { yo(e, t, Co) })], wo); class So { constructor(e, t, i) { this._styleSheet = t, this._styleSheet.ref(), this._parentTypeKey = i.parentTypeKey, this.refCount = 0, this._beforeContentRules = new Lo(3, i, e), this._afterContentRules = new Lo(4, i, e) } getOptions(e, t) { const i = e.resolveDecorationOptions(this._parentTypeKey, !0); return this._beforeContentRules && (i.beforeContentClassName = this._beforeContentRules .className), this._afterContentRules && (i.afterContentClassName = this._afterContentRules.className), i } dispose() { this._beforeContentRules && (this._beforeContentRules.dispose(), this._beforeContentRules = null), this._afterContentRules && (this._afterContentRules.dispose(), this._afterContentRules = null), this._styleSheet.unref() } } class xo { constructor(e, t, i, n) { this._disposables = new Le.SL, this.description = e, this._styleSheet = i, this._styleSheet.ref(), this.refCount = 0; const o = e => { const i = new Lo(e, n, t); if (this._disposables.add(i), i.hasContent) return i.className }, r = e => { const i = new Lo(e, n, t); return this._disposables.add(i), i.hasContent ? { className: i.className, hasLetterSpacing: i.hasLetterSpacing } : null }; this.className = o(0); const s = r(1); if (s && (this.inlineClassName = s.className, this.inlineClassNameAffectsLetterSpacing = s.hasLetterSpacing), this.beforeContentClassName = o(3), this.afterContentClassName = o(4), n.options.beforeInjectedText && n.options.beforeInjectedText.contentText ) { const e = r(5); this.beforeInjectedText = { content: n.options.beforeInjectedText.contentText, inlineClassName: null == e ? void 0 : e.className, inlineClassNameAffectsLetterSpacing: (null == e ? void 0 : e.hasLetterSpacing) || n.options.beforeInjectedText.affectsLetterSpacing } } if (n.options.afterInjectedText && n.options.afterInjectedText.contentText) { const e = r(6); this.afterInjectedText = { content: n.options.afterInjectedText.contentText, inlineClassName: null == e ? void 0 : e.className, inlineClassNameAffectsLetterSpacing: (null == e ? void 0 : e.hasLetterSpacing) || n.options.afterInjectedText.affectsLetterSpacing } } this.glyphMarginClassName = o(2); const a = n.options; this.isWholeLine = Boolean(a.isWholeLine), this.stickiness = a.rangeBehavior; const l = a.light && a.light.overviewRulerColor || a.overviewRulerColor, d = a.dark && a.dark.overviewRulerColor || a.overviewRulerColor; void 0 === l && void 0 === d || (this.overviewRuler = { color: l || d, darkColor: d || l, position: a.overviewRulerLane || Me.sh.Center }) } getOptions(e, t) { return t ? { description: this.description, inlineClassName: this.inlineClassName, beforeContentClassName: this.beforeContentClassName, afterContentClassName: this.afterContentClassName, className: this.className, glyphMarginClassName: this.glyphMarginClassName, isWholeLine: this.isWholeLine, overviewRuler: this.overviewRuler, stickiness: this.stickiness, before: this.beforeInjectedText } : this } dispose() { this._disposables.dispose(), this._styleSheet.unref() } } const ko = { color: "color:{0} !important;", opacity: "opacity:{0};", backgroundColor: "background-color:{0};", outline: "outline:{0};", outlineColor: "outline-color:{0};", outlineStyle: "outline-style:{0};", outlineWidth: "outline-width:{0};", border: "border:{0};", borderColor: "border-color:{0};", borderRadius: "border-radius:{0};", borderSpacing: "border-spacing:{0};", borderStyle: "border-style:{0};", borderWidth: "border-width:{0};", fontStyle: "font-style:{0};", fontWeight: "font-weight:{0};", fontSize: "font-size:{0};", fontFamily: "font-family:{0};", textDecoration: "text-decoration:{0};", cursor: "cursor:{0};", letterSpacing: "letter-spacing:{0};", gutterIconPath: "background:{0} center center no-repeat;", gutterIconSize: "background-size:{0};", contentText: "content:'{0}';", contentIconPath: "content:{0};", margin: "margin:{0};", padding: "padding:{0};", width: "width:{0};", height: "height:{0};", verticalAlign: "vertical-align:{0};" }; class Lo { constructor(e, t, i) { this._theme = i.getColorTheme(), this._ruleType = e, this._providerArgs = t, this._usesThemeColors = !1, this._hasContent = !1, this._hasLetterSpacing = ! 1; let n = No.getClassName(this._providerArgs.key, e); this._providerArgs.parentTypeKey && (n = n + " " + No.getClassName( this._providerArgs.parentTypeKey, e)), this._className = n, this._unThemedSelector = No.getSelector(this._providerArgs.key, this._providerArgs.parentTypeKey, e), this._buildCSS(), this._usesThemeColors ? this._themeListener = i.onDidColorThemeChange((e => { this._theme = i.getColorTheme(), this._removeCSS(), this._buildCSS() })) : this._themeListener = null } dispose() { this._hasContent && (this._removeCSS(), this._hasContent = !1), this._themeListener && (this._themeListener.dispose(), this._themeListener = null) } get hasContent() { return this._hasContent } get hasLetterSpacing() { return this._hasLetterSpacing } get className() { return this._className } _buildCSS() { const e = this._providerArgs.options; let t, i, n; switch (this._ruleType) { case 0: t = this.getCSSTextForModelDecorationClassName(e), i = this.getCSSTextForModelDecorationClassName( e.light), n = this.getCSSTextForModelDecorationClassName(e.dark); break; case 1: t = this.getCSSTextForModelDecorationInlineClassName(e), i = this.getCSSTextForModelDecorationInlineClassName( e.light), n = this.getCSSTextForModelDecorationInlineClassName(e.dark); break; case 2: t = this.getCSSTextForModelDecorationGlyphMarginClassName(e), i = this.getCSSTextForModelDecorationGlyphMarginClassName(e.light), n = this.getCSSTextForModelDecorationGlyphMarginClassName(e.dark); break; case 3: t = this.getCSSTextForModelDecorationContentClassName(e.before), i = this.getCSSTextForModelDecorationContentClassName(e.light && e.light .before), n = this.getCSSTextForModelDecorationContentClassName(e.dark && e.dark.before); break; case 4: t = this.getCSSTextForModelDecorationContentClassName(e.after), i = this.getCSSTextForModelDecorationContentClassName(e.light && e.light .after), n = this.getCSSTextForModelDecorationContentClassName(e.dark && e.dark.after); break; case 5: t = this.getCSSTextForModelDecorationContentClassName(e.beforeInjectedText), i = this.getCSSTextForModelDecorationContentClassName(e.light && e.light .beforeInjectedText), n = this.getCSSTextForModelDecorationContentClassName( e.dark && e.dark.beforeInjectedText); break; case 6: t = this.getCSSTextForModelDecorationContentClassName(e.afterInjectedText), i = this.getCSSTextForModelDecorationContentClassName(e.light && e.light .afterInjectedText), n = this.getCSSTextForModelDecorationContentClassName( e.dark && e.dark.afterInjectedText); break; default: throw new Error("Unknown rule type: " + this._ruleType) } const o = this._providerArgs.styleSheet; let r = !1; t.length > 0 && (o.insertRule(`${this._unThemedSelector} {${t}}`, 0), r = !0), i.length > 0 && (o.insertRule( `.vs${this._unThemedSelector} {${i}}`, 0), r = !0), n.length > 0 && (o.insertRule( `.vs-dark${this._unThemedSelector}, .hc-black${this._unThemedSelector} {${n}}`, 0), r = !0), this._hasContent = r } _removeCSS() { this._providerArgs.styleSheet.removeRulesContainingSelector(this._unThemedSelector) } getCSSTextForModelDecorationClassName(e) { if (!e) return ""; const t = []; return this.collectCSSText(e, ["backgroundColor"], t), this.collectCSSText( e, ["outline", "outlineColor", "outlineStyle", "outlineWidth"], t), this.collectBorderSettingsCSSText(e, t), t.join("") } getCSSTextForModelDecorationInlineClassName(e) { if (!e) return ""; const t = []; return this.collectCSSText(e, ["fontStyle", "fontWeight", "textDecoration", "cursor", "color", "opacity", "letterSpacing" ], t), e.letterSpacing && (this._hasLetterSpacing = !0), t.join("") } getCSSTextForModelDecorationContentClassName(e) { if (!e) return ""; const t = []; if (void 0 !== e) { if (this.collectBorderSettingsCSSText(e, t), void 0 !== e.contentIconPath && t.push(Xe.WU(ko.contentIconPath, he.wY(H.o.revive(e.contentIconPath)))), "string" == typeof e.contentText) { const i = e.contentText.match(/^.*$/m)[0].replace(/['\\]/g, "\\$&"); t.push(Xe.WU(ko.contentText, i)) } this.collectCSSText(e, ["verticalAlign", "fontStyle", "fontWeight", "fontSize", "fontFamily", "textDecoration", "color", "opacity", "backgroundColor", "margin", "padding" ], t), this.collectCSSText(e, ["width", "height"], t) && t.push( "display:inline-block;") } return t.join("") } getCSSTextForModelDecorationGlyphMarginClassName(e) { if (!e) return ""; const t = []; return void 0 !== e.gutterIconPath && (t.push(Xe.WU(ko.gutterIconPath, he.wY(H.o.revive(e.gutterIconPath)))), void 0 !== e.gutterIconSize && t.push(Xe.WU(ko.gutterIconSize, e.gutterIconSize))), t.join("") } collectBorderSettingsCSSText(e, t) { return !!this.collectCSSText(e, ["border", "borderColor", "borderRadius", "borderSpacing", "borderStyle", "borderWidth" ], t) && (t.push(Xe.WU("box-sizing: border-box;")), !0) } collectCSSText(e, t, i) { const n = i.length; for (let n of t) { const t = this.resolveValue(e[n]); "string" == typeof t && i.push(Xe.WU(ko[n], t)) } return i.length !== n } resolveValue(e) { if ((0, Te.I)(e)) { this._usesThemeColors = !0; const t = this._theme.getColor(e.id); return t ? t.toString() : "transparent" } return e } } class No { static getClassName(e, t) { return "ced-" + e + "-" + t } static getSelector(e, t, i) { let n = ".monaco-editor ." + this.getClassName(e, i); return t && (n = n + "." + this.getClassName(t, i)), 3 === i ? n += "::before" : 4 === i && (n += "::after"), n } } var Do = function(e, t) { return function(i, n) { t(i, n, e) } }; let Eo = class extends wo { constructor(e, t, i) { super(e, i), this.onCodeEditorAdd((() => this._checkContextKey())), this.onCodeEditorRemove((() => this._checkContextKey())), this._editorIsOpen = t.createKey("editorIsOpen", !1), this._activeCodeEditor = null } _checkContextKey() { let e = !1; for (const t of this.listCodeEditors()) if (!t.isSimpleWidget) { e = !0; break } this._editorIsOpen.set(e) } setActiveCodeEditor(e) { this._activeCodeEditor = e } getActiveCodeEditor() { return this._activeCodeEditor } openCodeEditor(e, t, i) { return t ? Promise.resolve(this.doOpenEditor(t, e)) : Promise.resolve( null) } doOpenEditor(e, t) { if (!this.findModel(e, t.resource)) { if (t.resource) { const i = t.resource.scheme; if (i === me.lg.http || i === me.lg.https) return (0, he.V3)(t.resource .toString()), e } return null } const i = t.options ? t.options.selection : null; if (i) if ("number" == typeof i.endLineNumber && "number" == typeof i.endColumn) e.setSelection(i), e.revealRangeInCenter(i, 1); else { const t = { lineNumber: i.startLineNumber, column: i.startColumn }; e.setPosition(t), e.revealPositionInCenter(t, 1) } return e } findModel(e, t) { const i = e.getModel(); return i && i.uri.toString() !== t.toString() ? null : i } }; Eo = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([Do(1, Ci.i6), Do(2, bn.XE)], Eo); var Io = i(1170), To = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }, Mo = function(e, t) { return function(i, n) { t(i, n, e) } }; let Ao = 0, Ro = !1, Oo = class extends tn.Gm { constructor(e, t, i, n, o, r, s, a, l, d) { const c = Object.assign({}, t); c.ariaLabel = c.ariaLabel || Ai.B8.editorViewAccessibleLabel, c.ariaLabel = c.ariaLabel + ";" + Ai.B8.accessibilityHelpMessage, super(e, c, {}, i, n, o, r, a, l, d), this._standaloneKeybindingService = s instanceof Ui ? s : null, Ro || (Ro = !0, en.wW(document.body)) } addCommand(e, t, i) { if (!this._standaloneKeybindingService) return console.warn( "Cannot add command because the editor is configured with an unrecognized KeybindingService" ), null; let n = "DYNAMIC_" + ++Ao, o = Ci.Ao.deserialize(i); return this._standaloneKeybindingService.addDynamicKeybinding(n, e, t, o), n } createContextKey(e, t) { return this._contextKeyService.createKey(e, t) } addAction(e) { if ("string" != typeof e.id || "string" != typeof e.label || "function" != typeof e.run) 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" ), Le.JT.None; const t = e.id, i = e.label, n = Ci.Ao.and(Ci.Ao.equals("editorId", this.getId()), Ci.Ao.deserialize( e.precondition)), o = e.keybindings, r = Ci.Ao.and(n, Ci.Ao.deserialize(e.keybindingContext)), s = e.contextMenuGroupId || null, a = e.contextMenuOrder || 0, l = (t, ...i) => Promise.resolve(e.run(this, ...i)), d = new Le.SL, c = this.getId() + ":" + t; if (d.add(_e.P.registerCommand(c, l)), s) { let e = { command: { id: c, title: i }, when: n, group: s, order: a }; d.add(po.BH.appendMenuItem(po.eH.EditorContext, e)) } if (Array.isArray(o)) for (const e of o) d.add(this._standaloneKeybindingService.addDynamicKeybinding( c, e, l, r)); let h = new uo.p(c, i, i, n, l, this._contextKeyService); return this._actions[t] = h, d.add((0, Le.OF)((() => { delete this._actions[t] }))), d } _triggerCommand(e, t) { if (this._codeEditorService instanceof Eo) try { this._codeEditorService.setActiveCodeEditor(this), super._triggerCommand( e, t) } finally { this._codeEditorService.setActiveCodeEditor(null) } else super._triggerCommand(e, t) } }; Oo = To([Mo(2, Rn.TG), Mo(3, ce.$), Mo(4, _e.H), Mo(5, Ci.i6), Mo(6, mo.d), Mo(7, bn.XE), Mo(8, Ti.lT), Mo(9, fo.F) ], Oo); let Po = class extends Oo { constructor(e, t, i, n, o, r, s, a, l, d, c, h, u, g, p) { const m = Object.assign({}, t); Yi(h, m, !1); const f = d.registerEditorContainer(e); "string" == typeof m.theme && d.setTheme(m.theme), void 0 !== m.autoDetectHighContrast && d.setAutoDetectHighContrast(Boolean(m.autoDetectHighContrast)); let _, b = m.model; if (delete m.model, super(e, m, n, o, r, s, a, d, c, u), this._contextViewService = l, this._configurationService = h, this._standaloneThemeService = d, this._register(i), this._register(f), void 0 === b ? (_ = Bo(g, p, m .value || "", m.language || Io.vW.text, void 0), this._ownsModel = ! 0) : (_ = b, this._ownsModel = !1), this._attachModel(_), _) { let e = { oldModelUrl: null, newModelUrl: _.uri }; this._onDidChangeModel.fire(e) } } dispose() { super.dispose() } updateOptions(e) { Yi(this._configurationService, e, !1), "string" == typeof e.theme && this._standaloneThemeService.setTheme(e.theme), void 0 !== e.autoDetectHighContrast && this._standaloneThemeService.setAutoDetectHighContrast(Boolean(e.autoDetectHighContrast)), super.updateOptions(e) } _attachModel(e) { super._attachModel(e), this._modelData && this._contextViewService.setContainer( this._modelData.view.domNode.domNode) } _postDetachModelCleanup(e) { super._postDetachModelCleanup(e), e && this._ownsModel && (e.dispose(), this._ownsModel = !1) } }; Po = To([Mo(3, Rn.TG), Mo(4, ce.$), Mo(5, _e.H), Mo(6, Ci.i6), Mo(7, mo.d), Mo(8, Pn.u), Mo(9, go.Z), Mo(10, Ti.lT), Mo(11, gi.Ui), Mo(12, fo.F), Mo(13, Ct.q), Mo(14, Pe.h) ], Po); let Fo = class extends Yn { constructor(e, t, i, n, o, r, s, a, l, d, c, h, u, g, p) { const m = Object.assign({}, t); Yi(h, m, !0); const f = d.registerEditorContainer(e); "string" == typeof m.theme && d.setTheme(m.theme), void 0 !== m.autoDetectHighContrast && d.setAutoDetectHighContrast(Boolean(m.autoDetectHighContrast)), super(e, m, {}, p, a, o, n, l, d, c, u, g), this._contextViewService = s, this._configurationService = h, this._standaloneThemeService = d, this._register(i), this._register(f), this._contextViewService.setContainer( this._containerDomElement) } dispose() { super.dispose() } updateOptions(e) { Yi(this._configurationService, e, !0), "string" == typeof e.theme && this._standaloneThemeService.setTheme(e.theme), void 0 !== e.autoDetectHighContrast && this._standaloneThemeService.setAutoDetectHighContrast(Boolean(e.autoDetectHighContrast)), super.updateOptions(e) } _createInnerEditor(e, t, i) { return e.createInstance(Oo, t, i) } getOriginalEditor() { return super.getOriginalEditor() } getModifiedEditor() { return super.getModifiedEditor() } addCommand(e, t, i) { return this.getModifiedEditor().addCommand(e, t, i) } createContextKey(e, t) { return this.getModifiedEditor().createContextKey(e, t) } addAction(e) { return this.getModifiedEditor().addAction(e) } }; function Bo(e, t, i, n, o) { if (i = i || "", !n) { const n = i.indexOf("\n"); let r = i; return -1 !== n && (r = i.substring(0, n)), Wo(e, i, t.createByFilepathOrFirstLine( o || null, r), o) } return Wo(e, i, t.create(n), o) } function Wo(e, t, i, n) { return e.createModel(t, i, n) } Fo = To([Mo(3, Rn.TG), Mo(4, Ci.i6), Mo(5, mo.d), Mo(6, Pn.u), Mo(7, Oe.p), Mo(8, ce.$), Mo(9, go.Z), Mo(10, Ti.lT), Mo(11, gi.Ui), Mo(12, Pn.i), Mo(13, Vn.e), Mo(14, zn.p) ], Fo); class zo { constructor(e) { this._languageIdentifier = e } getId() { return this._languageIdentifier.language } } var Vo = i(1144), Ho = i(9872); const Uo = Object.prototype.hasOwnProperty; class jo extends Le.JT { constructor(e = !0, t = !1) { super(), this._onDidChange = this._register(new z.Q5), this.onDidChange = this._onDidChange.event, this._warnOnOverwrite = t, this._nextLanguageId2 = 1, this._languageIdToLanguage = [], this._languageToLanguageId = Object.create(null), this._languages = {}, this._mimeTypesMap = {}, this._nameMap = {}, this._lowercaseNameMap = {}, e && (this._initializeFromRegistry(), this._register(Vo.dQ.onDidChangeLanguages((e => this._initializeFromRegistry()))) ) } _initializeFromRegistry() { this._languages = {}, this._mimeTypesMap = {}, this._nameMap = {}, this._lowercaseNameMap = {}; const e = Vo.dQ.getLanguages(); this._registerLanguages(e) } _registerLanguages(e) { for (const t of e) this._registerLanguage(t); this._mimeTypesMap = {}, this._nameMap = {}, this._lowercaseNameMap = {}, Object.keys(this._languages).forEach((e => { let t = this._languages[e]; t.name && (this._nameMap[t.name] = t.identifier), t.aliases.forEach( (e => { this._lowercaseNameMap[e.toLowerCase()] = t.identifier })), t.mimetypes.forEach((e => { this._mimeTypesMap[e] = t.identifier })) })), Ho.B.as(pi.IP.Configuration).registerOverrideIdentifiers(Vo.dQ.getLanguages() .map((e => e.id))), this._onDidChange.fire() } _getLanguageId(e) { if (this._languageToLanguageId[e]) return this._languageToLanguageId[ e]; const t = this._nextLanguageId2++; return this._languageIdToLanguage[t] = e, this._languageToLanguageId[ e] = t, t } _registerLanguage(e) { const t = e.id; let i; if (Uo.call(this._languages, t)) i = this._languages[t]; else { const e = this._getLanguageId(t); i = { identifier: new Ae.rl(t, e), name: null, mimetypes: [], aliases: [], extensions: [], filenames: [], configurationFiles: [] }, this._languages[t] = i } this._mergeLanguage(i, e) } _mergeLanguage(e, t) { const i = t.id; let n = null; if (Array.isArray(t.mimetypes) && t.mimetypes.length > 0 && (e.mimetypes .push(...t.mimetypes), n = t.mimetypes[0]), n || (n = `text/x-${i}`, e.mimetypes.push(n)), Array.isArray(t.extensions)) { t.configuration ? e.extensions = t.extensions.concat(e.extensions) : e.extensions = e.extensions.concat(t.extensions); for (let e of t.extensions) Io.sA({ id: i, mime: n, extension: e }, this._warnOnOverwrite) } if (Array.isArray(t.filenames)) for (let o of t.filenames) Io.sA({ id: i, mime: n, filename: o }, this._warnOnOverwrite), e.filenames.push(o); if (Array.isArray(t.filenamePatterns)) for (let e of t.filenamePatterns) Io.sA({ id: i, mime: n, filepattern: e }, this._warnOnOverwrite); if ("string" == typeof t.firstLine && t.firstLine.length > 0) { let e = t.firstLine; "^" !== e.charAt(0) && (e = "^" + e); try { let t = new RegExp(e); Xe.IO(t) || Io.sA({ id: i, mime: n, firstline: t }, this._warnOnOverwrite) } catch (e) { (0, We.dL)(e) } } e.aliases.push(i); let o = null; if (void 0 !== t.aliases && Array.isArray(t.aliases) && (o = 0 === t.aliases .length ? [null] : t.aliases), null !== o) for (const t of o) t && 0 !== t.length && e.aliases.push(t); let r = null !== o && o.length > 0; if (r && null === o[0]); else { let t = (r ? o[0] : null) || i; !r && e.name || (e.name = t) } t.configuration && e.configurationFiles.push(t.configuration) } isRegisteredMode(e) { return !!Uo.call(this._mimeTypesMap, e) || Uo.call(this._languages, e) } getModeIdForLanguageNameLowercase(e) { return Uo.call(this._lowercaseNameMap, e) ? this._lowercaseNameMap[e] .language : null } extractModeIds(e) { return e ? e.split(",").map((e => e.trim())).map((e => Uo.call(this._mimeTypesMap, e) ? this._mimeTypesMap[e].language : e)).filter((e => Uo.call(this ._languages, e))) : [] } getLanguageIdentifier(e) { if (e === Re.TG || 0 === e) return Re.pA; let t; if ("string" == typeof e) t = e; else if (t = this._languageIdToLanguage[e], !t) return null; return Uo.call(this._languages, t) ? this._languages[t].identifier : null } getModeIdsFromFilepathOrFirstLine(e, t) { if (!e && !t) return []; let i = Io.G8(e, t); return this.extractModeIds(i.join(",")) } } class Ko { constructor(e, t) { let i; this._selector = t, this.languageIdentifier = this._selector(), this._onDidChange = new z.Q5({ onFirstListenerAdd: () => { i = e((() => this._evaluate())) }, onLastListenerRemove: () => { i.dispose() } }), this.onDidChange = this._onDidChange.event } _evaluate() { let e = this._selector(); e.id !== this.languageIdentifier.id && (this.languageIdentifier = e, this._onDidChange.fire(this.languageIdentifier)) } } class $o extends Le.JT { constructor(e = !1) { super(), this._onDidCreateMode = this._register(new z.Q5), this.onDidCreateMode = this._onDidCreateMode.event, this._onLanguagesMaybeChanged = this._register( new z.Q5({ leakWarningThreshold: 200 })), this.onLanguagesMaybeChanged = this._onLanguagesMaybeChanged.event, this._instantiatedModes = {}, this._registry = this._register(new jo(! 0, e)), this._register(this._registry.onDidChange((() => this._onLanguagesMaybeChanged .fire()))) } isRegisteredMode(e) { return this._registry.isRegisteredMode(e) } getModeIdForLanguageName(e) { return this._registry.getModeIdForLanguageNameLowercase(e) } getModeIdByFilepathOrFirstLine(e, t) { const i = this._registry.getModeIdsFromFilepathOrFirstLine(e, t); return (0, St.Xh)(i, null) } getModeId(e) { const t = this._registry.extractModeIds(e); return (0, St.Xh)(t, null) } getLanguageIdentifier(e) { return this._registry.getLanguageIdentifier(e) } create(e) { return new Ko(this.onLanguagesMaybeChanged, (() => { const t = this.getModeId(e); return this._createModeAndGetLanguageIdentifier(t) })) } createByFilepathOrFirstLine(e, t) { return new Ko(this.onLanguagesMaybeChanged, (() => { const i = this.getModeIdByFilepathOrFirstLine(e, t); return this._createModeAndGetLanguageIdentifier(i) })) } _createModeAndGetLanguageIdentifier(e) { const t = this.getLanguageIdentifier(e || "plaintext") || Re.pA; return this._getOrCreateMode(t.language), t } triggerMode(e) { const t = this.getModeId(e); this._getOrCreateMode(t || "plaintext") } _getOrCreateMode(e) { if (!this._instantiatedModes.hasOwnProperty(e)) { let t = this.getLanguageIdentifier(e) || Re.pA; this._instantiatedModes[e] = new zo(t), this._onDidCreateMode.fire( this._instantiatedModes[e]) } return this._instantiatedModes[e] } } var qo = i(7390), Zo = i(1264); class Go { constructor(e, t, i, n, o) { this._parsedThemeRuleBrand = void 0, this.token = e, this.index = t, this.fontStyle = i, this.foreground = n, this.background = o } } const Yo = /^#?([0-9A-Fa-f]{6})([0-9A-Fa-f]{2})?$/; class Qo { constructor() { this._lastColorId = 0, this._id2color = [], this._color2id = new Map } getId(e) { if (null === e) return 0; const t = e.match(Yo); if (!t) throw new Error("Illegal value for token color: " + e); e = t[1].toUpperCase(); let i = this._color2id.get(e); return i || (i = ++this._lastColorId, this._color2id.set(e, i), this._id2color[ i] = Zo.Il.fromHex("#" + e), i) } getColorMap() { return this._id2color.slice(0) } } class Xo { constructor(e, t) { this._colorMap = e, this._root = t, this._cache = new Map } static createFromRawTokenTheme(e, t) { return this.createFromParsedTokenTheme(function(e) { if (!e || !Array.isArray(e)) return []; let t = [], i = 0; for (let n = 0, o = e.length; n < o; n++) { let o = e[n], r = -1; if ("string" == typeof o.fontStyle) { r = 0; let e = o.fontStyle.split(" "); for (let t = 0, i = e.length; t < i; t++) switch (e[t]) { case "italic": r |= 1; break; case "bold": r |= 2; break; case "underline": r |= 4 } } let s = null; "string" == typeof o.foreground && (s = o.foreground); let a = null; "string" == typeof o.background && (a = o.background), t[i++] = new Go(o.token || "", n, r, s, a) } return t }(e), t) } static createFromParsedTokenTheme(e, t) { return function(e, t) { e.sort(((e, t) => { let i = function(e, t) { return e < t ? -1 : e > t ? 1 : 0 }(e.token, t.token); return 0 !== i ? i : e.index - t.index })); let i = 0, n = "000000", o = "ffffff"; for (; e.length >= 1 && "" === e[0].token;) { let t = e.shift(); - 1 !== t.fontStyle && (i = t.fontStyle), null !== t.foreground && (n = t.foreground), null !== t.background && (o = t.background) } let r = new Qo; for (let e of t) r.getId(e); let s = r.getId(n), a = r.getId(o), l = new er(i, s, a), d = new tr(l); for (let t = 0, i = e.length; t < i; t++) { let i = e[t]; d.insert(i.token, i.fontStyle, r.getId(i.foreground), r.getId(i.background)) } return new Xo(r, d) }(e, t) } getColorMap() { return this._colorMap.getColorMap() } _match(e) { return this._root.match(e) } match(e, t) { let i = this._cache.get(t); if (void 0 === i) { let e = this._match(t), n = function(e) { let t = e.match(Jo); if (!t) return 0; switch (t[1]) { case "comment": return 1; case "string": return 2; case "regex": case "regexp": return 4 } throw new Error("Unexpected match for standard token type!") }(t); i = (e.metadata | n << 8) >>> 0, this._cache.set(t, i) } return (i | e << 0) >>> 0 } } const Jo = /\b(comment|string|regex|regexp)\b/; class er { constructor(e, t, i) { this._themeTrieElementRuleBrand = void 0, this._fontStyle = e, this._foreground = t, this._background = i, this.metadata = (this._fontStyle << 11 | this._foreground << 14 | this._background << 23) >>> 0 } clone() { return new er(this._fontStyle, this._foreground, this._background) } acceptOverwrite(e, t, i) { -1 !== e && (this._fontStyle = e), 0 !== t && (this._foreground = t), 0 !== i && (this._background = i), this.metadata = (this._fontStyle << 11 | this._foreground << 14 | this._background << 23) >>> 0 } } class tr { constructor(e) { this._themeTrieElementBrand = void 0, this._mainRule = e, this._children = new Map } match(e) { if ("" === e) return this._mainRule; let t, i, n = e.indexOf("."); - 1 === n ? (t = e, i = "") : (t = e.substring( 0, n), i = e.substring(n + 1)); let o = this._children.get(t); return void 0 !== o ? o.match(i) : this._mainRule } insert(e, t, i, n) { if ("" === e) return void this._mainRule.acceptOverwrite(t, i, n); let o, r, s = e.indexOf("."); - 1 === s ? (o = e, r = "") : (o = e.substring( 0, s), r = e.substring(s + 1)); let a = this._children.get(o); void 0 === a && (a = new tr(this._mainRule.clone()), this._children.set( o, a)), a.insert(r, t, i, n) } } const ir = { 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: { [_n.cv]: "#FFFFFE", [_n.NO]: "#000000", [_n.ES]: "#E5EBF1", [fn.tR]: "#D3D3D3", [fn.Ym]: "#939393", [_n.Rz]: "#ADD6FF4D" } }, nr = { 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: { [_n.cv]: "#1E1E1E", [_n.NO]: "#D4D4D4", [_n.ES]: "#3A3D41", [fn.tR]: "#404040", [fn.Ym]: "#707070", [_n.Rz]: "#ADD6FF26" } }, or = { 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: { [_n.cv]: "#000000", [_n.NO]: "#FFFFFF", [fn.tR]: "#FFFFFF", [fn.Ym]: "#FFFFFF" } }; var rr = i(2321); const sr = "vs", ar = "vs-dark", lr = "hc-black", dr = Ho.B.as(_n.IP.ColorContribution), cr = Ho.B.as(bn.IP.ThemingContribution); class hr { constructor(e, t) { this.semanticHighlighting = !1, this.themeData = t; let i = t.base; e.length > 0 ? (ur(e) ? this.id = e : this.id = i + " " + e, this.themeName = e) : (this.id = i, this.themeName = i), 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 e = new Map; for (let t in this.themeData.colors) e.set(t, Zo.Il.fromHex(this.themeData .colors[t])); if (this.themeData.inherit) { let t = gr(this.themeData.base); for (let i in t.colors) e.has(i) || e.set(i, Zo.Il.fromHex(t.colors[ i])) } this.colors = e } return this.colors } getColor(e, t) { return this.getColors().get(e) || (!1 !== t ? this.getDefault(e) : void 0) } getDefault(e) { let t = this.defaultColors[e]; return t || (t = dr.resolveDefaultColor(e, this), this.defaultColors[e] = t, t) } defines(e) { return Object.prototype.hasOwnProperty.call(this.getColors(), e) } get type() { switch (this.base) { case sr: return rr.e.LIGHT; case lr: return rr.e.HIGH_CONTRAST; default: return rr.e.DARK } } get tokenTheme() { if (!this._tokenTheme) { let e = [], t = []; if (this.themeData.inherit) { let i = gr(this.themeData.base); e = i.rules, i.encodedTokensColors && (t = i.encodedTokensColors) } e = e.concat(this.themeData.rules), this.themeData.encodedTokensColors && (t = this.themeData.encodedTokensColors), this._tokenTheme = Xo.createFromRawTokenTheme( e, t) } return this._tokenTheme } getTokenStyleMetadata(e, t, i) { const n = this.tokenTheme._match([e].concat(t).join(".")).metadata, o = Ae.NX.getForeground(n), r = Ae.NX.getFontStyle(n); return { foreground: o, italic: Boolean(1 & r), bold: Boolean(2 & r), underline: Boolean(4 & r) } } } function ur(e) { return e === sr || e === ar || e === lr } function gr(e) { switch (e) { case sr: return ir; case ar: return nr; case lr: return or } } function pr(e) { let t = gr(e); return new hr(e, t) } class mr extends Le.JT { constructor() { super(), this._onColorThemeChange = this._register(new z.Q5), this.onDidColorThemeChange = this._onColorThemeChange.event, this._environment = Object.create( null), this._autoDetectHighContrast = !0, this._knownThemes = new Map, this._knownThemes.set(sr, pr(sr)), this._knownThemes.set(ar, pr(ar)), this._knownThemes.set(lr, pr(lr)); const e = function() { const e = new z.Q5, t = (0, wn.Ks)(); return t.onDidChange((() => e.fire())), { onDidChange: e.event, getCSS() { const e = {}, i = i => { let n = i.defaults; for (; bn.kS.isThemeIcon(n);) { const e = t.getIcon(n.id); if (!e) return; n = e.defaults } const o = n.fontId; if (o) { const r = t.getIconFont(o); if (r) return e[o] = r, `.codicon-${i.id}:before { content: '${n.fontCharacter}'; font-family: ${(0,he._h)(o)}; }` } return `.codicon-${i.id}:before { content: '${n.fontCharacter}'; }` }, n = []; for (let e of t.getIcons()) { const t = i(e); t && n.push(t) } for (let t in e) { const i = e[t].definition.src.map((e => `${(0,he.wY)(e.location)} format('${e.format}')`)).join(", "); n.push( `@font-face { src: ${i}; font-family: ${(0,he._h)(t)}; font-display: block; }` ) } return n.join("\n") } } }(); this._codiconCSS = e.getCSS(), this._themeCSS = "", this._allCSS = `${this._codiconCSS}\n${this._themeCSS}`, this._globalStyleElement = null, this._styleElements = [], this._colorMapOverride = null, this.setTheme( sr), e.onDidChange((() => { this._codiconCSS = e.getCSS(), this._updateCSS() })), he.uB("(forced-colors: active)", (() => { this._updateActualTheme() })) } registerEditorContainer(e) { return he.OO(e) ? this._registerShadowDomContainer(e) : this._registerRegularEditorContainer() } _registerRegularEditorContainer() { return this._globalStyleElement || (this._globalStyleElement = he.dS(), this._globalStyleElement.className = "monaco-colors", this._globalStyleElement .textContent = this._allCSS, this._styleElements.push(this._globalStyleElement) ), Le.JT.None } _registerShadowDomContainer(e) { const t = he.dS(e); return t.className = "monaco-colors", t.textContent = this._allCSS, this._styleElements.push(t), { dispose: () => { for (let e = 0; e < this._styleElements.length; e++) if (this._styleElements[e] === t) return void this._styleElements .splice(e, 1) } } } defineTheme(e, t) { if (!/^[a-z0-9\-]+$/i.test(e)) throw new Error("Illegal theme name!"); if (!ur(t.base) && !ur(e)) throw new Error("Illegal theme base!"); this._knownThemes.set(e, new hr(e, t)), ur(e) && this._knownThemes.forEach( (t => { t.base === e && t.notifyBaseUpdated() })), this._theme.themeName === e && this.setTheme(e) } getColorTheme() { return this._theme } setColorMapOverride(e) { this._colorMapOverride = e, this._updateThemeOrColorMap() } setTheme(e) { let t; t = this._knownThemes.has(e) ? this._knownThemes.get(e) : this._knownThemes .get(sr), this._desiredTheme = t, this._updateActualTheme() } _updateActualTheme() { const e = this._autoDetectHighContrast && window.matchMedia( "(forced-colors: active)").matches ? this._knownThemes.get(lr) : this._desiredTheme; this._theme !== e && (this._theme = e, this._updateThemeOrColorMap()) } setAutoDetectHighContrast(e) { this._autoDetectHighContrast = e, this._updateActualTheme() } _updateThemeOrColorMap() { let e = [], t = {}, i = { addRule: i => { t[i] || (e.push(i), t[i] = !0) } }; cr.getThemingParticipants().forEach((e => e(this._theme, i, this._environment))); const n = this._colorMapOverride || this._theme.tokenTheme.getColorMap(); i.addRule(function(e) { let t = []; for (let i = 1, n = e.length; i < n; i++) { let n = e[i]; t[i] = `.mtk${i} { color: ${n}; }` } return t.push(".mtki { font-style: italic; }"), t.push( ".mtkb { font-weight: bold; }"), t.push( ".mtku { text-decoration: underline; text-underline-position: under; }" ), t.join("\n") }(n)), this._themeCSS = e.join("\n"), this._updateCSS(), Ae.RW.setColorMap( n), this._onColorThemeChange.fire(this._theme) } _updateCSS() { this._allCSS = `${this._codiconCSS}\n${this._themeCSS}`, this._styleElements .forEach((e => e.textContent = this._allCSS)) } getFileIconTheme() { return { hasFileIcons: !1, hasFolderIcons: !1, hidesExplorerArrows: !1 } } } var fr = i(3725); const _r = "data-keybinding-context"; class br { constructor(e, t) { this._id = e, this._parent = t, this._value = Object.create(null), this._value._contextId = e } setValue(e, t) { return this._value[e] !== t && (this._value[e] = t, !0) } removeValue(e) { return e in this._value && (delete this._value[e], !0) } getValue(e) { const t = this._value[e]; return void 0 === t && this._parent ? this._parent.getValue(e) : t } } class vr extends br { constructor() { super(-1, null) } setValue(e, t) { return !1 } removeValue(e) { return !1 } getValue(e) {} } vr.INSTANCE = new vr; class wr extends br { constructor(e, t, i) { super(e, null), this._configurationService = t, this._values = ge.Id.forConfigKeys(), this._listener = this._configurationService.onDidChangeConfiguration( (e => { if (6 === e.source) { const e = Array.from(fr.$.map(this._values, (([e]) => e))); this._values.clear(), i.fire(new Sr(e)) } else { const t = []; for (const i of e.affectedKeys) { const e = `config.${i}`, n = this._values.findSuperstr(e); void 0 !== n && (t.push(...fr.$.map(n, (([e]) => e))), this._values .deleteSuperstr(e)), this._values.has(e) && (t.push(e), this._values .delete(e)) } i.fire(new Sr(t)) } })) } dispose() { this._listener.dispose() } getValue(e) { if (0 !== e.indexOf(wr._keyPrefix)) return super.getValue(e); if (this._values.has(e)) return this._values.get(e); const t = e.substr(wr._keyPrefix.length), i = this._configurationService.getValue(t); let n; switch (typeof i) { case "number": case "boolean": case "string": n = i; break; default: n = Array.isArray(i) ? JSON.stringify(i) : i } return this._values.set(e, n), n } setValue(e, t) { return super.setValue(e, t) } removeValue(e) { return super.removeValue(e) } } wr._keyPrefix = "config."; class Cr { constructor(e, t, i) { this._service = e, this._key = t, this._defaultValue = i, this.reset() } set(e) { this._service.setContext(this._key, e) } reset() { void 0 === this._defaultValue ? this._service.removeContext(this._key) : this._service.setContext(this._key, this._defaultValue) } get() { return this._service.getContextKeyValue(this._key) } } class yr { constructor(e) { this.key = e } affectsSome(e) { return e.has(this.key) } } class Sr { constructor(e) { this.keys = e } affectsSome(e) { for (const t of this.keys) if (e.has(t)) return !0; return !1 } } class xr { constructor(e) { this.events = e } affectsSome(e) { for (const t of this.events) if (t.affectsSome(e)) return !0; return !1 } } class kr { constructor(e) { this._onDidChangeContext = new z.K3({ merge: e => new xr(e) }), this.onDidChangeContext = this._onDidChangeContext.event, this._isDisposed = ! 1, this._myContextId = e } createKey(e, t) { if (this._isDisposed) throw new Error( "AbstractContextKeyService has been disposed"); return new Cr(this, e, t) } bufferChangeEvents(e) { this._onDidChangeContext.pause(); try { e() } finally { this._onDidChangeContext.resume() } } createScoped(e) { if (this._isDisposed) throw new Error( "AbstractContextKeyService has been disposed"); return new Nr(this, e) } contextMatchesRules(e) { if (this._isDisposed) throw new Error( "AbstractContextKeyService has been disposed"); const t = this.getContextValuesContainer(this._myContextId); return yi.contextMatchesRules(t, e) } getContextKeyValue(e) { if (!this._isDisposed) return this.getContextValuesContainer(this._myContextId) .getValue(e) } setContext(e, t) { if (this._isDisposed) return; const i = this.getContextValuesContainer(this._myContextId); i && i.setValue(e, t) && this._onDidChangeContext.fire(new yr(e)) } removeContext(e) { this._isDisposed || this.getContextValuesContainer(this._myContextId).removeValue( e) && this._onDidChangeContext.fire(new yr(e)) } getContext(e) { return this._isDisposed ? vr.INSTANCE : this.getContextValuesContainer( function(e) { for (; e;) { if (e.hasAttribute(_r)) { const t = e.getAttribute(_r); return t ? parseInt(t, 10) : NaN } e = e.parentElement } return 0 }(e)) } } let Lr = class extends kr { constructor(e) { super(0), this._contexts = new Map, this._toDispose = new Le.SL, this ._lastContextId = 0; const t = new wr(this._myContextId, e, this._onDidChangeContext); this._contexts.set(this._myContextId, t), this._toDispose.add(t) } dispose() { this._onDidChangeContext.dispose(), this._isDisposed = !0, this._toDispose .dispose() } getContextValuesContainer(e) { return this._isDisposed ? vr.INSTANCE : this._contexts.get(e) || vr.INSTANCE } createChildContext(e = this._myContextId) { if (this._isDisposed) throw new Error( "ContextKeyService has been disposed"); let t = ++this._lastContextId; return this._contexts.set(t, new br(t, this.getContextValuesContainer( e))), t } disposeContext(e) { this._isDisposed || this._contexts.delete(e) } }; Lr = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([function(e, t) { return function(i, n) { t(i, n, e) } }(0, gi.Ui)], Lr); class Nr extends kr { constructor(e, t) { if (super(e.createChildContext()), this._parentChangeListener = new Le .XK, this._parent = e, this._updateParentChangeListener(), this._domNode = t, this._domNode.hasAttribute(_r)) { let e = ""; this._domNode.classList && (e = Array.from(this._domNode.classList.values()) .join(", ")), console.error("Element already has context attribute" + (e ? ": " + e : "")) } this._domNode.setAttribute(_r, String(this._myContextId)) } _updateParentChangeListener() { this._parentChangeListener.value = this._parent.onDidChangeContext( this._onDidChangeContext.fire, this._onDidChangeContext) } dispose() { this._isDisposed || (this._onDidChangeContext.dispose(), this._parent.disposeContext( this._myContextId), this._parentChangeListener.dispose(), this._domNode .removeAttribute(_r), this._isDisposed = !0) } getContextValuesContainer(e) { return this._isDisposed ? vr.INSTANCE : this._parent.getContextValuesContainer( e) } createChildContext(e = this._myContextId) { if (this._isDisposed) throw new Error( "ScopedContextKeyService has been disposed"); return this._parent.createChildContext(e) } disposeContext(e) { this._isDisposed || this._parent.disposeContext(e) } } _e.P.registerCommand(Ci.Eq, (function(e, t, i) { e.get(Ci.i6).createKey(String(t), i) })), _e.P.registerCommand({ id: "getContextKeyInfo", handler: () => [...Ci.uy.all()].sort(((e, t) => e.key.localeCompare(t.key))), description: { description: (0, vi.N)("getContextKeyInfo", "A command that returns information about context keys"), args: [] } }), _e.P.registerCommand("_generateContextKeyInfo", (function() { const e = [], t = new Set; for (let i of Ci.uy.all()) t.has(i.key) || (t.add(i.key), e.push(i)); e.sort(((e, t) => e.key.localeCompare(t.key))), console.log(JSON.stringify( e, void 0, 2)) })); var Dr, Er = i(829), Ir = i(3938), Tr = i(6268), Mr = i(553), Ar = i(6033), Rr = i(9899), Or = i(161), Pr = i(1134), Fr = i(6328), Br = {}; function Wr(e, t, i) { const n = i.mode === Dr.ALIGN ? i.offset : i.offset + i.size, o = i.mode === Dr.ALIGN ? i.offset + i.size : i.offset; return 0 === i.position ? t <= e - n ? n : t <= o ? o - t : Math.max(e - t, 0) : t <= o ? o - t : t <= e - n ? n : 0 } Br.styleTagTransform = se(), Br.setAttributes = ie(), Br.insert = ee().bind( null, "head"), Br.domAPI = X(), Br.insertStyleElement = oe(), Y()(Fr.Z, Br), Fr.Z && Fr.Z.locals && Fr.Z.locals, function(e) { e[e.AVOID = 0] = "AVOID", e[e.ALIGN = 1] = "ALIGN" }(Dr || (Dr = {})); class zr extends Le.JT { constructor(e, t) { super(), this.container = null, this.delegate = null, this.toDisposeOnClean = Le.JT.None, this.toDisposeOnSetContainer = Le.JT.None, this.shadowRoot = null, this.shadowRootHostElement = null, this.view = he.$( ".context-view"), this.useFixedPosition = !1, this.useShadowDOM = ! 1, he.Cp(this.view), this.setContainer(e, t), this._register((0, Le.OF) ((() => this.setContainer(null, 1)))) } setContainer(e, t) { var i; if (this.container && (this.toDisposeOnSetContainer.dispose(), this.shadowRoot ? (this.shadowRoot.removeChild(this.view), this.shadowRoot = null, null === (i = this.shadowRootHostElement) || void 0 === i || i.remove(), this.shadowRootHostElement = null) : this.container.removeChild( this.view), this.container = null), e) { if (this.container = e, this.useFixedPosition = 1 !== t, this.useShadowDOM = 3 === t, this.useShadowDOM) { this.shadowRootHostElement = he.$(".shadow-root-host"), this.container .appendChild(this.shadowRootHostElement), this.shadowRoot = this.shadowRootHostElement .attachShadow({ mode: "open" }); const e = document.createElement("style"); e.textContent = Vr, this.shadowRoot.appendChild(e), this.shadowRoot .appendChild(this.view), this.shadowRoot.appendChild(he.$("slot")) } else this.container.appendChild(this.view); const i = new Le.SL; zr.BUBBLE_UP_EVENTS.forEach((e => { i.add(he.mu(this.container, e, (e => { this.onDOMEvent(e, !1) }))) })), zr.BUBBLE_DOWN_EVENTS.forEach((e => { i.add(he.mu(this.container, e, (e => { this.onDOMEvent(e, !0) }), !0)) })), this.toDisposeOnSetContainer = i } } show(e) { this.isVisible() && this.hide(), he.PO(this.view), this.view.className = "context-view", this.view.style.top = "0px", this.view.style.left = "0px", this.view.style.zIndex = "2500", this.view.style.position = this.useFixedPosition ? "fixed" : "absolute", he.$Z(this.view), this .toDisposeOnClean = e.render(this.view) || Le.JT.None, this.delegate = e, this.doLayout(), this.delegate.focus && this.delegate.focus() } getViewElement() { return this.view } layout() { this.isVisible() && (!1 !== this.delegate.canRelayout || ze.gn && Or.D .pointerEvents ? (this.delegate.layout && this.delegate.layout(), this.doLayout()) : this.hide()) } doLayout() { if (!this.isVisible()) return; let e, t = this.delegate.getAnchor(); if (he.Re(t)) { let i = he.i(t); e = { top: i.top, left: i.left, width: i.width, height: i.height } } else e = { top: t.y, left: t.x, width: t.width || 1, height: t.height || 2 }; const i = he.w(this.view), n = he.wn(this.view), o = this.delegate.anchorPosition || 0, r = this.delegate.anchorAlignment || 0; let s, a; if (0 === (this.delegate.anchorAxisAlignment || 0)) { const t = { offset: e.top - window.pageYOffset, size: e.height, position: 0 === o ? 0 : 1 }, l = { offset: e.left, size: e.width, position: 0 === r ? 0 : 1, mode: Dr.ALIGN }; s = Wr(window.innerHeight, n, t) + window.pageYOffset, Pr.e.intersects({ start: s, end: s + n }, { start: t.offset, end: t.offset + t.size }) && (l.mode = Dr.AVOID), a = Wr(window.innerWidth, i, l) } else { const t = { offset: e.left, size: e.width, position: 0 === r ? 0 : 1 }, l = { offset: e.top, size: e.height, position: 0 === o ? 0 : 1, mode: Dr.ALIGN }; a = Wr(window.innerWidth, i, t), Pr.e.intersects({ start: a, end: a + i }, { start: t.offset, end: t.offset + t.size }) && (l.mode = Dr.AVOID), s = Wr(window.innerHeight, n, l) + window.pageYOffset } this.view.classList.remove("top", "bottom", "left", "right"), this.view .classList.add(0 === o ? "bottom" : "top"), this.view.classList.add( 0 === r ? "left" : "right"), this.view.classList.toggle("fixed", this.useFixedPosition); const l = he.i(this.container); this.view.style.top = s - (this.useFixedPosition ? he.i(this.view).top : l.top) + "px", this.view.style.left = a - (this.useFixedPosition ? he.i(this.view).left : l.left) + "px", this.view.style.width = "initial" } hide(e) { const t = this.delegate; this.delegate = null, (null == t ? void 0 : t.onHide) && t.onHide(e), this.toDisposeOnClean.dispose(), he.Cp(this.view) } isVisible() { return !!this.delegate } onDOMEvent(e, t) { this.delegate && (this.delegate.onDOMEvent ? this.delegate.onDOMEvent( e, document.activeElement) : t && !he.jg(e.target, this.container) && this.hide()) } dispose() { this.hide(), super.dispose() } } zr.BUBBLE_UP_EVENTS = ["click", "keydown", "focus", "blur"], zr.BUBBLE_DOWN_EVENTS = [ "click" ]; let Vr = '\n\t:host {\n\t\tall: initial; /* 1st rule so subsequent properties are reset. */\n\t}\n\n\t@font-face {\n\t\tfont-family: "codicon";\n\t\tfont-display: block;\n\t\tsrc: url("./codicon.ttf?5d4d76ab2ce5108968ad644d591a16a6") format("truetype");\n\t}\n\n\t.codicon[class*=\'codicon-\'] {\n\t\tfont: normal normal normal 16px/1 codicon;\n\t\tdisplay: inline-block;\n\t\ttext-decoration: none;\n\t\ttext-rendering: auto;\n\t\ttext-align: center;\n\t\t-webkit-font-smoothing: antialiased;\n\t\t-moz-osx-font-smoothing: grayscale;\n\t\tuser-select: none;\n\t\t-webkit-user-select: none;\n\t\t-ms-user-select: none;\n\t}\n\n\t:host {\n\t\tfont-family: -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI", "HelveticaNeue-Light", system-ui, "Ubuntu", "Droid Sans", sans-serif;\n\t}\n\n\t:host-context(.mac) { font-family: -apple-system, BlinkMacSystemFont, sans-serif; }\n\t:host-context(.mac:lang(zh-Hans)) { font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", sans-serif; }\n\t:host-context(.mac:lang(zh-Hant)) { font-family: -apple-system, BlinkMacSystemFont, "PingFang TC", sans-serif; }\n\t:host-context(.mac:lang(ja)) { font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic Pro", sans-serif; }\n\t:host-context(.mac:lang(ko)) { font-family: -apple-system, BlinkMacSystemFont, "Nanum Gothic", "Apple SD Gothic Neo", "AppleGothic", sans-serif; }\n\n\t:host-context(.windows) { font-family: "Segoe WPC", "Segoe UI", sans-serif; }\n\t:host-context(.windows:lang(zh-Hans)) { font-family: "Segoe WPC", "Segoe UI", "Microsoft YaHei", sans-serif; }\n\t:host-context(.windows:lang(zh-Hant)) { font-family: "Segoe WPC", "Segoe UI", "Microsoft Jhenghei", sans-serif; }\n\t:host-context(.windows:lang(ja)) { font-family: "Segoe WPC", "Segoe UI", "Yu Gothic UI", "Meiryo UI", sans-serif; }\n\t:host-context(.windows:lang(ko)) { font-family: "Segoe WPC", "Segoe UI", "Malgun Gothic", "Dotom", sans-serif; }\n\n\t:host-context(.linux) { font-family: system-ui, "Ubuntu", "Droid Sans", sans-serif; }\n\t:host-context(.linux:lang(zh-Hans)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans SC", "Source Han Sans CN", "Source Han Sans", sans-serif; }\n\t:host-context(.linux:lang(zh-Hant)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans TC", "Source Han Sans TW", "Source Han Sans", sans-serif; }\n\t:host-context(.linux:lang(ja)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans J", "Source Han Sans JP", "Source Han Sans", sans-serif; }\n\t:host-context(.linux:lang(ko)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans K", "Source Han Sans JR", "Source Han Sans", "UnDotum", "FBaekmuk Gulim", sans-serif; }\n'; var Hr = i(1212); const Ur = /\(&([^\s&])\)|(^|[^&])&([^\s&])/, jr = /(&)?(&)([^\s&])/g, Kr = (0, vn.CM)("menu-selection", vn.lA.check), $r = (0, vn.CM)("menu-submenu", vn.lA.chevronRight); var qr; ! function(e) { e[e.Right = 0] = "Right", e[e.Left = 1] = "Left" }(qr || (qr = {})); class Zr extends un.o { constructor(e, t, i = {}) { e.classList.add("monaco-menu-container"), e.setAttribute("role", "presentation"); const n = document.createElement("div"); n.classList.add("monaco-menu"), n.setAttribute("role", "presentation"), super(n, { orientation: 1, actionViewItemProvider: e => this.doGetActionViewItem(e, i, o), context: i.context, actionRunner: i.actionRunner, ariaLabel: i.ariaLabel, focusOnlyEnabledItems: !0, triggerKeys: { keys: [3, ...ze.dz || ze.IJ ? [10] : []], keyDown: !0 } }), this.menuElement = n, this.actionsList.setAttribute("role", "menu"), this.actionsList.tabIndex = 0, this.menuDisposables = this ._register(new Le.SL), this.initializeStyleSheet(e), this._register( Mr.o.addTarget(n)), (0, he.nm)(n, he.tw.KEY_DOWN, (e => { new ai.y(e).equals(2) && e.preventDefault() })), i.enableMnemonics && this.menuDisposables.add((0, he.nm)(n, he.tw .KEY_DOWN, (e => { const t = e.key.toLocaleLowerCase(); if (this.mnemonics.has(t)) { he.zB.stop(e, !0); const i = this.mnemonics.get(t); if (1 === i.length && (i[0] instanceof Yr && i[0].container && this.focusItemByElement(i[0].container), i[0].onClick(e)), i.length > 1) { const e = i.shift(); e && e.container && (this.focusItemByElement(e.container), i.push( e)), this.mnemonics.set(t, i) } } }))), ze.IJ && this._register((0, he.nm)(n, he.tw.KEY_DOWN, (e => { const t = new ai.y(e); t.equals(14) || t.equals(11) ? (this.focusedItem = this.viewItems .length - 1, this.focusNext(), he.zB.stop(e, !0)) : (t.equals( 13) || t.equals(12)) && (this.focusedItem = 0, this.focusPrevious(), he.zB.stop(e, !0)) }))), this._register((0, he.nm)(this.domNode, he.tw.MOUSE_OUT, (e => { let t = e.relatedTarget; (0, he.jg)(t, this.domNode) || (this.focusedItem = void 0, this.updateFocus(), e.stopPropagation()) }))), this._register((0, he.nm)(this.actionsList, he.tw.MOUSE_OVER, ( e => { let t = e.target; if (t && (0, he.jg)(t, this.actionsList) && t !== this.actionsList) { for (; t.parentElement !== this.actionsList && null !== t.parentElement;) t = t.parentElement; if (t.classList.contains("action-item")) { const e = this.focusedItem; this.setFocusedItem(t), e !== this.focusedItem && this.updateFocus() } } }))), this._register(Mr.o.addTarget(this.actionsList)), this._register( (0, he.nm)(this.actionsList, Mr.t.Tap, (e => { let t = e.initialTarget; if (t && (0, he.jg)(t, this.actionsList) && t !== this.actionsList) { for (; t.parentElement !== this.actionsList && null !== t.parentElement;) t = t.parentElement; if (t.classList.contains("action-item")) { const e = this.focusedItem; this.setFocusedItem(t), e !== this.focusedItem && this.updateFocus() } } }))); let o = { parent: this }; this.mnemonics = new Map, this.scrollableElement = this._register(new gn .s$(n, { alwaysConsumeMouseWheel: !0, horizontal: 2, vertical: 3, verticalScrollbarSize: 7, handleMouseWheel: !0, useShadows: !0 })); const r = this.scrollableElement.getDomNode(); r.style.position = "", this._register((0, he.nm)(n, Mr.t.Change, (e => { he.zB.stop(e, !0); const t = this.scrollableElement.getScrollPosition().scrollTop; this.scrollableElement.setScrollPosition({ scrollTop: t - e.translationY }) }))), this._register((0, he.nm)(r, he.tw.MOUSE_UP, (e => { e.preventDefault() }))), n.style.maxHeight = `${Math.max(10,window.innerHeight-e.getBoundingClientRect().top-35)}px`, t = t.filter((e => { var t; return !(null === (t = i.submenuIds) || void 0 === t ? void 0 : t .has(e.id)) || (console.warn(`Found submenu cycle: ${e.id}`), ! 1) })), this.push(t, { icon: !0, label: !0, isMenu: !0 }), e.appendChild(this.scrollableElement.getDomNode()), this.scrollableElement .scanDomNode(), this.viewItems.filter((e => !(e instanceof Qr))).forEach( ((e, t, i) => { e.updatePositionInSet(t + 1, i.length) })) } initializeStyleSheet(e) { (0, he.OO)(e) ? (this.styleSheet = (0, he.dS)(e), this.styleSheet.textContent = Xr) : (Zr.globalStyleSheet || (Zr.globalStyleSheet = (0, he.dS)(), Zr.globalStyleSheet.textContent = Xr), this.styleSheet = Zr.globalStyleSheet) } style(e) { const t = this.getContainer(), i = e.foregroundColor ? `${e.foregroundColor}` : "", n = e.backgroundColor ? `${e.backgroundColor}` : "", o = e.borderColor ? `1px solid ${e.borderColor}` : "", r = e.shadowColor ? `0 2px 4px ${e.shadowColor}` : ""; t.style.border = o, this.domNode.style.color = i, this.domNode.style.backgroundColor = n, t.style.boxShadow = r, this.viewItems && this.viewItems.forEach(( t => { (t instanceof Gr || t instanceof Qr) && t.style(e) })) } getContainer() { return this.scrollableElement.getDomNode() } get onScroll() { return this.scrollableElement.onScroll } focusItemByElement(e) { const t = this.focusedItem; this.setFocusedItem(e), t !== this.focusedItem && this.updateFocus() } setFocusedItem(e) { for (let t = 0; t < this.actionsList.children.length; t++) if (e === this.actionsList.children[t]) { this.focusedItem = t; break } } updateFocus(e) { super.updateFocus(e, !0), void 0 !== this.focusedItem && this.scrollableElement .setScrollPosition({ scrollTop: Math.round(this.menuElement.scrollTop) }) } doGetActionViewItem(e, t, i) { if (e instanceof pn.Z0) return new Qr(t.context, e, { icon: !0 }); if (e instanceof pn.wY) { const n = new Yr(e, e.actions, i, Object.assign(Object.assign({}, t), { submenuIds: new Set([...t.submenuIds || [], e.id]) })); if (t.enableMnemonics) { const e = n.getMnemonic(); if (e && n.isEnabled()) { let t = []; this.mnemonics.has(e) && (t = this.mnemonics.get(e)), t.push(n), this.mnemonics.set(e, t) } } return n } { const i = { enableMnemonics: t.enableMnemonics, useEventAsContext: t.useEventAsContext }; if (t.getKeyBinding) { const n = t.getKeyBinding(e); if (n) { const e = n.getLabel(); e && (i.keybinding = e) } } const n = new Gr(t.context, e, i); if (t.enableMnemonics) { const e = n.getMnemonic(); if (e && n.isEnabled()) { let t = []; this.mnemonics.has(e) && (t = this.mnemonics.get(e)), t.push(n), this.mnemonics.set(e, t) } } return n } } } class Gr extends Ar.Y { constructor(e, t, i = {}) { if (i.isMenu = !0, super(t, t, i), this.options = i, this.options.icon = void 0 !== i.icon && i.icon, this.options.label = void 0 === i.label || i.label, this.cssClass = "", this.options.label && i.enableMnemonics ) { let e = this.getAction().label; if (e) { let t = Ur.exec(e); t && (this.mnemonic = (t[1] ? t[1] : t[3]).toLocaleLowerCase()) } } this.runOnceToEnableMouseUp = new Be.pY((() => { this.element && (this._register((0, he.nm)(this.element, he.tw.MOUSE_UP, ( e => { if (he.zB.stop(e, !0), Tr.vU) { if (new Ir.n(e).rightButton) return; this.onClick(e) } else setTimeout((() => { this.onClick(e) }), 0) }))), this._register((0, he.nm)(this.element, he.tw.CONTEXT_MENU, ( e => { he.zB.stop(e, !0) })))) }), 100), this._register(this.runOnceToEnableMouseUp) } render(e) { super.render(e), this.element && (this.container = e, this.item = (0, he.R3)(this.element, (0, he.$)("a.action-menu-item")), this._action .id === pn.Z0.ID ? this.item.setAttribute("role", "presentation") : (this.item.setAttribute("role", "menuitem"), this.mnemonic && this.item .setAttribute("aria-keyshortcuts", `${this.mnemonic}`)), this.check = (0, he.R3)(this.item, (0, he.$)("span.menu-item-check" + Kr.cssSelector)), this.check.setAttribute("role", "none"), this.label = (0, he.R3)( this.item, (0, he.$)("span.action-label")), this.options.label && this.options.keybinding && ((0, he.R3)(this.item, (0, he.$)( "span.keybinding")).textContent = this.options.keybinding), this.runOnceToEnableMouseUp .schedule(), this.updateClass(), this.updateLabel(), this.updateTooltip(), this.updateEnabled(), this.updateChecked()) } blur() { super.blur(), this.applyStyle() } focus() { super.focus(), this.item && this.item.focus(), this.applyStyle() } updatePositionInSet(e, t) { this.item && (this.item.setAttribute("aria-posinset", `${e}`), this.item .setAttribute("aria-setsize", `${t}`)) } updateLabel() { if (this.label && this.options.label) { (0, he.PO)(this.label); let e = (0, Hr.x$)(this.getAction().label); if (e) { const t = function(e) { const t = Ur, i = t.exec(e); if (!i) return e; const n = !i[1]; return e.replace(t, n ? "$2$3" : "").trim() }(e); this.options.enableMnemonics || (e = t), this.label.setAttribute( "aria-label", t.replace(/&&/g, "&")); const i = Ur.exec(e); if (i) { e = Xe.YU(e), jr.lastIndex = 0; let t = jr.exec(e); for (; t && t[1];) t = jr.exec(e); const n = e => e.replace(/&&/g, "&"); t ? this.label.append(Xe.j3(n(e.substr(0, t.index)), " "), (0, he.$) ("u", { "aria-hidden": "true" }, t[3]), Xe.oL(n(e.substr(t.index + t[0].length)), " ")) : this .label.innerText = n(e).trim(), this.item && this.item.setAttribute( "aria-keyshortcuts", (i[1] ? i[1] : i[3]).toLocaleLowerCase()) } else this.label.innerText = e.replace(/&&/g, "&").trim() } } } updateTooltip() { let e = null; this.getAction().tooltip ? e = this.getAction().tooltip : !this.options .label && this.getAction().label && this.options.icon && (e = this.getAction() .label, this.options.keybinding && (e = vi.N({ key: "titleLabel", comment: ["action title", "action keybinding"] }, "{0} ({1})", e, this.options.keybinding))), e && this.item && ( this.item.title = e) } updateClass() { this.cssClass && this.item && this.item.classList.remove(...this.cssClass .split(" ")), this.options.icon && this.label ? (this.cssClass = this.getAction().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.getAction().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() { this.item && (this.getAction().checked ? (this.item.classList.add( "checked"), this.item.setAttribute("role", "menuitemcheckbox"), this.item.setAttribute("aria-checked", "true")) : (this.item.classList .remove("checked"), this.item.setAttribute("role", "menuitem"), this.item.setAttribute("aria-checked", "false"))) } getMnemonic() { return this.mnemonic } applyStyle() { if (!this.menuStyle) return; const e = this.element && this.element.classList.contains("focused"), t = e && this.menuStyle.selectionForegroundColor ? this.menuStyle.selectionForegroundColor : this.menuStyle.foregroundColor, i = e && this.menuStyle.selectionBackgroundColor ? this.menuStyle.selectionBackgroundColor : void 0, n = e && this.menuStyle.selectionBorderColor ? `thin solid ${this.menuStyle.selectionBorderColor}` : ""; this.item && (this.item.style.color = t ? t.toString() : "", this.item .style.backgroundColor = i ? i.toString() : ""), this.check && ( this.check.style.color = t ? t.toString() : ""), this.container && (this.container.style.border = n) } style(e) { this.menuStyle = e, this.applyStyle() } } class Yr extends Gr { constructor(e, t, i, n) { super(e, e, n), this.submenuActions = t, this.parentData = i, this.submenuOptions = n, this.mysubmenu = null, this.submenuDisposables = this._register( new Le.SL), this.mouseOver = !1, this.expandDirection = n && void 0 !== n.expandDirection ? n.expandDirection : qr.Right, this.showScheduler = new Be.pY((() => { this.mouseOver && (this.cleanupExistingSubmenu(!1), this.createSubmenu(! 1)) }), 250), this.hideScheduler = new Be.pY((() => { this.element && !(0, he.jg)((0, he.vY)(), this.element) && this.parentData .submenu === this.mysubmenu && (this.parentData.parent.focus(!1), this.cleanupExistingSubmenu(!0)) }), 750) } render(e) { super.render(e), 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, he.R3)(this.item, (0, he.$)("span.submenu-indicator" + $r.cssSelector)), this.submenuIndicator.setAttribute("aria-hidden", "true")), this._register( (0, he.nm)(this.element, he.tw.KEY_UP, (e => { let t = new ai.y(e); (t.equals(17) || t.equals(3)) && (he.zB.stop(e, !0), this.createSubmenu(! 0)) }))), this._register((0, he.nm)(this.element, he.tw.KEY_DOWN, (e => { let t = new ai.y(e); (0, he.vY)() === this.item && (t.equals(17) || t.equals(3)) && he.zB.stop(e, !0) }))), this._register((0, he.nm)(this.element, he.tw.MOUSE_OVER, (e => { this.mouseOver || (this.mouseOver = !0, this.showScheduler.schedule()) }))), this._register((0, he.nm)(this.element, he.tw.MOUSE_LEAVE, (e => { this.mouseOver = !1 }))), this._register((0, he.nm)(this.element, he.tw.FOCUS_OUT, (e => { this.element && !(0, he.jg)((0, he.vY)(), this.element) && this.hideScheduler .schedule() }))), this._register(this.parentData.parent.onScroll((() => { this.parentData.parent.focus(!1), this.cleanupExistingSubmenu(!1) })))) } updateEnabled() {} onClick(e) { he.zB.stop(e, !0), this.cleanupExistingSubmenu(!1), this.createSubmenu(! 0) } cleanupExistingSubmenu(e) { if (this.parentData.submenu && (e || this.parentData.submenu !== this.mysubmenu)) { try { this.parentData.submenu.dispose() } catch (e) {} this.parentData.submenu = void 0, this.updateAriaExpanded("false"), this.submenuContainer && (this.submenuDisposables.clear(), this.submenuContainer = void 0) } } calculateSubmenuMenuLayout(e, t, i, n) { const o = { top: 0, left: 0 }; return o.left = Wr(e.width, t.width, { position: n === qr.Right ? 0 : 1, offset: i.left, size: i.width }), o.left >= i.left && o.left < i.left + i.width && (i.left + 10 + t .width <= e.width && (o.left = i.left + 10), i.top += 10, i.height = 0), o.top = Wr(e.height, t.height, { position: 0, offset: i.top, size: 0 }), o.top + t.height === i.top && o.top + i.height + t.height <= e.height && (o.top += i.height), o } createSubmenu(e = !0) { if (this.element) if (this.parentData.submenu) this.parentData.submenu.focus(!1); else { this.updateAriaExpanded("true"), this.submenuContainer = (0, he.R3)( this.element, (0, he.$)("div.monaco-submenu")), this.submenuContainer .classList.add("menubar-menu-items-holder", "context-view"); const t = getComputedStyle(this.parentData.parent.domNode), i = parseFloat(t.paddingTop || "0") || 0; this.submenuContainer.style.zIndex = "1", this.submenuContainer.style .position = "fixed", this.submenuContainer.style.top = "0", this.submenuContainer .style.left = "0", this.parentData.submenu = new Zr(this.submenuContainer, this.submenuActions.length ? this.submenuActions : [new pn.eZ], this.submenuOptions), this.menuStyle && this.parentData.submenu.style( this.menuStyle); const n = this.element.getBoundingClientRect(), o = { top: n.top - i, left: n.left, height: n.height + 2 * i, width: n.width }, r = this.submenuContainer.getBoundingClientRect(), { top: s, left: a } = this.calculateSubmenuMenuLayout(new he.Ro(window.innerWidth, window.innerHeight), he.Ro.lift(r), o, this.expandDirection); this.submenuContainer.style.left = `${a}px`, this.submenuContainer.style .top = `${s}px`, this.submenuDisposables.add((0, he.nm)(this.submenuContainer, he.tw.KEY_UP, (e => { new ai.y(e).equals(15) && (he.zB.stop(e, !0), this.parentData.parent .focus(), this.cleanupExistingSubmenu(!0)) }))), this.submenuDisposables.add((0, he.nm)(this.submenuContainer, he.tw.KEY_DOWN, (e => { new ai.y(e).equals(15) && he.zB.stop(e, !0) }))), this.submenuDisposables.add(this.parentData.submenu.onDidCancel( (() => { this.parentData.parent.focus(), this.cleanupExistingSubmenu(!0) }))), this.parentData.submenu.focus(e), this.mysubmenu = this.parentData .submenu } } updateAriaExpanded(e) { var t; this.item && (null === (t = this.item) || void 0 === t || t.setAttribute( "aria-expanded", e)) } applyStyle() { if (super.applyStyle(), !this.menuStyle) return; const e = this.element && this.element.classList.contains("focused") && this.menuStyle.selectionForegroundColor ? this.menuStyle.selectionForegroundColor : this.menuStyle.foregroundColor; this.submenuIndicator && (this.submenuIndicator.style.color = e ? `${e}` : ""), this.parentData.submenu && this.parentData.submenu.style( this.menuStyle) } dispose() { super.dispose(), this.hideScheduler.dispose(), this.mysubmenu && (this .mysubmenu.dispose(), this.mysubmenu = null), this.submenuContainer && (this.submenuContainer = void 0) } } class Qr extends Ar.g { style(e) { this.label && (this.label.style.borderBottomColor = e.separatorColor ? `${e.separatorColor}` : "") } } let Xr = `\n.monaco-menu {\n\tfont-size: 13px;\n\n}\n\n${(0,Rr.a)(Kr)}\n${(0,Rr.a)($r)}\n\n.monaco-menu .monaco-action-bar {\n\ttext-align: right;\n\toverflow: hidden;\n\twhite-space: nowrap;\n}\n\n.monaco-menu .monaco-action-bar .actions-container {\n\tdisplay: flex;\n\tmargin: 0 auto;\n\tpadding: 0;\n\twidth: 100%;\n\tjustify-content: flex-end;\n}\n\n.monaco-menu .monaco-action-bar.vertical .actions-container {\n\tdisplay: inline-block;\n}\n\n.monaco-menu .monaco-action-bar.reverse .actions-container {\n\tflex-direction: row-reverse;\n}\n\n.monaco-menu .monaco-action-bar .action-item {\n\tcursor: pointer;\n\tdisplay: inline-block;\n\ttransition: transform 50ms ease;\n\tposition: relative; /* DO NOT REMOVE - this is the key to preventing the ghosting icon bug in Chrome 42 */\n}\n\n.monaco-menu .monaco-action-bar .action-item.disabled {\n\tcursor: default;\n}\n\n.monaco-menu .monaco-action-bar.animated .action-item.active {\n\ttransform: scale(1.272019649, 1.272019649); /* 1.272019649 = √φ */\n}\n\n.monaco-menu .monaco-action-bar .action-item .icon,\n.monaco-menu .monaco-action-bar .action-item .codicon {\n\tdisplay: inline-block;\n}\n\n.monaco-menu .monaco-action-bar .action-item .codicon {\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.monaco-menu .monaco-action-bar .action-label {\n\tfont-size: 11px;\n\tmargin-right: 4px;\n}\n\n.monaco-menu .monaco-action-bar .action-item.disabled .action-label,\n.monaco-menu .monaco-action-bar .action-item.disabled .action-label:hover {\n\topacity: 0.4;\n}\n\n/* Vertical actions */\n\n.monaco-menu .monaco-action-bar.vertical {\n\ttext-align: left;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tdisplay: block;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tdisplay: block;\n\tborder-bottom: 1px solid #bbb;\n\tpadding-top: 1px;\n\tmargin-left: .8em;\n\tmargin-right: .8em;\n}\n\n.monaco-menu .secondary-actions .monaco-action-bar .action-label {\n\tmargin-left: 6px;\n}\n\n/* Action Items */\n.monaco-menu .monaco-action-bar .action-item.select-container {\n\toverflow: hidden; /* somehow the dropdown overflows its container, we prevent it here to not push */\n\tflex: 1;\n\tmax-width: 170px;\n\tmin-width: 60px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin-right: 10px;\n}\n\n.monaco-menu .monaco-action-bar.vertical {\n\tmargin-left: 0;\n\toverflow: visible;\n}\n\n.monaco-menu .monaco-action-bar.vertical .actions-container {\n\tdisplay: block;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tpadding: 0;\n\ttransform: none;\n\tdisplay: flex;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item.active {\n\ttransform: none;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item {\n\tflex: 1 1 auto;\n\tdisplay: flex;\n\theight: 2em;\n\talign-items: center;\n\tposition: relative;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label {\n\tflex: 1 1 auto;\n\ttext-decoration: none;\n\tpadding: 0 1em;\n\tbackground: none;\n\tfont-size: 12px;\n\tline-height: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .keybinding,\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\tdisplay: inline-block;\n\tflex: 2 1 auto;\n\tpadding: 0 1em;\n\ttext-align: right;\n\tfont-size: 12px;\n\tline-height: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\theight: 100%;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon {\n\tfont-size: 16px !important;\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon::before {\n\tmargin-left: auto;\n\tmargin-right: -20px;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item.disabled .keybinding,\n.monaco-menu .monaco-action-bar.vertical .action-item.disabled .submenu-indicator {\n\topacity: 0.4;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator) {\n\tdisplay: inline-block;\n\tbox-sizing: border-box;\n\tmargin: 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tposition: static;\n\toverflow: visible;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item .monaco-submenu {\n\tposition: absolute;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tpadding: 0.5em 0 0 0;\n\tmargin-bottom: 0.5em;\n\twidth: 100%;\n\theight: 0px !important;\n\tmargin-left: .8em !important;\n\tmargin-right: .8em !important;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator.text {\n\tpadding: 0.7em 1em 0.1em 1em;\n\tfont-weight: bold;\n\topacity: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:hover {\n\tcolor: inherit;\n}\n\n.monaco-menu .monaco-action-bar.vertical .menu-item-check {\n\tposition: absolute;\n\tvisibility: hidden;\n\twidth: 1em;\n\theight: 100%;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item.checked .menu-item-check {\n\tvisibility: visible;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n/* Context Menu */\n\n.context-view.monaco-menu-container {\n\toutline: 0;\n\tborder: none;\n\tanimation: fadeIn 0.083s linear;\n\t-webkit-app-region: no-drag;\n}\n\n.context-view.monaco-menu-container :focus,\n.context-view.monaco-menu-container .monaco-action-bar.vertical:focus,\n.context-view.monaco-menu-container .monaco-action-bar.vertical :focus {\n\toutline: 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tborder: thin solid transparent; /* prevents jumping behaviour on hover or focus */\n}\n\n\n/* High Contrast Theming */\n:host-context(.hc-black) .context-view.monaco-menu-container {\n\tbox-shadow: none;\n}\n\n:host-context(.hc-black) .monaco-menu .monaco-action-bar.vertical .action-item.focused {\n\tbackground: none;\n}\n\n/* Vertical Action Bar Styles */\n\n.monaco-menu .monaco-action-bar.vertical {\n\tpadding: .5em 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item {\n\theight: 1.8em;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator),\n.monaco-menu .monaco-action-bar.vertical .keybinding {\n\tfont-size: inherit;\n\tpadding: 0 2em;\n}\n\n.monaco-menu .monaco-action-bar.vertical .menu-item-check {\n\tfont-size: inherit;\n\twidth: 2em;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tfont-size: inherit;\n\tpadding: 0.2em 0 0 0;\n\tmargin-bottom: 0.2em;\n}\n\n:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tmargin-left: 0;\n\tmargin-right: 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\tfont-size: 60%;\n\tpadding: 0 1.8em;\n}\n\n:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\theight: 100%;\n\tmask-size: 10px 10px;\n\t-webkit-mask-size: 10px 10px;\n}\n\n.monaco-menu .action-item {\n\tcursor: default;\n}\n\n/* Arrows */\n.monaco-scrollable-element > .scrollbar > .scra {\n\tcursor: pointer;\n\tfont-size: 11px !important;\n}\n\n.monaco-scrollable-element > .visible {\n\topacity: 1;\n\n\t/* Background rule added for IE9 - to allow clicks on dom node */\n\tbackground:rgba(0,0,0,0);\n\n\ttransition: opacity 100ms linear;\n}\n.monaco-scrollable-element > .invisible {\n\topacity: 0;\n\tpointer-events: none;\n}\n.monaco-scrollable-element > .invisible.fade {\n\ttransition: opacity 800ms linear;\n}\n\n/* Scrollable Content Inset Shadow */\n.monaco-scrollable-element > .shadow {\n\tposition: absolute;\n\tdisplay: none;\n}\n.monaco-scrollable-element > .shadow.top {\n\tdisplay: block;\n\ttop: 0;\n\tleft: 3px;\n\theight: 3px;\n\twidth: 100%;\n\tbox-shadow: #DDD 0 6px 6px -6px inset;\n}\n.monaco-scrollable-element > .shadow.left {\n\tdisplay: block;\n\ttop: 3px;\n\tleft: 0;\n\theight: 100%;\n\twidth: 3px;\n\tbox-shadow: #DDD 6px 0 6px -6px inset;\n}\n.monaco-scrollable-element > .shadow.top-left-corner {\n\tdisplay: block;\n\ttop: 0;\n\tleft: 0;\n\theight: 3px;\n\twidth: 3px;\n}\n.monaco-scrollable-element > .shadow.top.left {\n\tbox-shadow: #DDD 6px 6px 6px -6px inset;\n}\n\n/* ---------- Default Style ---------- */\n\n:host-context(.vs) .monaco-scrollable-element > .scrollbar > .slider {\n\tbackground: rgba(100, 100, 100, .4);\n}\n:host-context(.vs-dark) .monaco-scrollable-element > .scrollbar > .slider {\n\tbackground: rgba(121, 121, 121, .4);\n}\n:host-context(.hc-black) .monaco-scrollable-element > .scrollbar > .slider {\n\tbackground: rgba(111, 195, 223, .6);\n}\n\n.monaco-scrollable-element > .scrollbar > .slider:hover {\n\tbackground: rgba(100, 100, 100, .7);\n}\n:host-context(.hc-black) .monaco-scrollable-element > .scrollbar > .slider:hover {\n\tbackground: rgba(111, 195, 223, .8);\n}\n\n.monaco-scrollable-element > .scrollbar > .slider.active {\n\tbackground: rgba(0, 0, 0, .6);\n}\n:host-context(.vs-dark) .monaco-scrollable-element > .scrollbar > .slider.active {\n\tbackground: rgba(191, 191, 191, .4);\n}\n:host-context(.hc-black) .monaco-scrollable-element > .scrollbar > .slider.active {\n\tbackground: rgba(111, 195, 223, 1);\n}\n\n:host-context(.vs-dark) .monaco-scrollable-element .shadow.top {\n\tbox-shadow: none;\n}\n\n:host-context(.vs-dark) .monaco-scrollable-element .shadow.left {\n\tbox-shadow: #000 6px 0 6px -6px inset;\n}\n\n:host-context(.vs-dark) .monaco-scrollable-element .shadow.top.left {\n\tbox-shadow: #000 6px 6px 6px -6px inset;\n}\n\n:host-context(.hc-black) .monaco-scrollable-element .shadow.top {\n\tbox-shadow: none;\n}\n\n:host-context(.hc-black) .monaco-scrollable-element .shadow.left {\n\tbox-shadow: none;\n}\n\n:host-context(.hc-black) .monaco-scrollable-element .shadow.top.left {\n\tbox-shadow: none;\n}\n`; var Jr = i(4932), es = {}; es.styleTagTransform = se(), es.setAttributes = ie(), es.insert = ee().bind( null, "head"), es.domAPI = X(), es.insertStyleElement = oe(), Y()(Jr.Z, es), Jr.Z && Jr.Z.locals && Jr.Z.locals; var ts = i(8810); class is { constructor(e, t, i, n, o) { this.contextViewService = e, this.telemetryService = t, this.notificationService = i, this.keybindingService = n, this.themeService = o, this.focusToReturn = null, this.block = null, this.options = { blockMouse: !0 } } configure(e) { this.options = e } showContextMenu(e) { const t = e.getActions(); if (!t.length) return; let i; this.focusToReturn = document.activeElement; let n = (0, he.Re)(e.domForShadowRoot) ? e.domForShadowRoot : void 0; this.contextViewService.showContextView({ getAnchor: () => e.getAnchor(), canRelayout: !1, anchorAlignment: e.anchorAlignment, anchorAxisAlignment: e.anchorAxisAlignment, render: n => { let o = e.getMenuClassName ? e.getMenuClassName() : ""; o && (n.className += " " + o), this.options.blockMouse && (this.block = n.appendChild((0, he.$)(".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", (0, he.nm)(this.block, he.tw.MOUSE_DOWN, (e => e.stopPropagation()))); const r = new Le.SL, s = e.actionRunner || new pn.Wi; return s.onBeforeRun(this.onActionRun, this, r), s.onDidRun(this.onDidActionRun, this, r), i = new Zr(n, t, { actionViewItemProvider: e.getActionViewItem, context: e.getActionsContext ? e.getActionsContext() : null, actionRunner: s, getKeyBinding: e.getKeyBinding ? e.getKeyBinding : e => this.keybindingService .lookupKeybinding(e.id) }), r.add((0, ts.tj)(i, this.themeService)), i.onDidCancel((() => this.contextViewService.hideContextView(!0)), null, r), i.onDidBlur( (() => this.contextViewService.hideContextView(!0)), null, r), r.add((0, he.nm)(window, he.tw.BLUR, (() => this.contextViewService .hideContextView(!0)))), r.add((0, he.nm)(window, he.tw.MOUSE_DOWN, ( e => { if (e.defaultPrevented) return; let t = new Ir.n(e), i = t.target; if (!t.rightButton) { for (; i;) { if (i === n) return; i = i.parentElement } this.contextViewService.hideContextView(!0) } }))), (0, Le.F8)(r, i) }, focus: () => { i && i.focus(!!e.autoSelectFirstItem) }, onHide: t => { e.onHide && e.onHide(!!t), this.block && (this.block.remove(), this.block = null), this.focusToReturn && this.focusToReturn.focus() } }, n, !!n) } onActionRun(e) { this.telemetryService.publicLog2("workbenchActionExecuted", { id: e.action.id, from: "contextMenu" }), this.contextViewService.hideContextView(!1), this.focusToReturn && this.focusToReturn.focus() } onDidActionRun(e) { e.error && !(0, We.VV)(e.error) && this.notificationService.error(e.error) } } var ns = function(e, t) { return function(i, n) { t(i, n, e) } }; let os = class extends Le.JT { constructor(e, t, i, n, o) { super(), this.contextMenuHandler = new is(i, e, t, n, o) } configure(e) { this.contextMenuHandler.configure(e) } showContextMenu(e) { this.contextMenuHandler.showContextMenu(e), he._q.getInstance().resetKeyStatus() } }; os = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([ns(0, Er.b), ns(1, Ti.lT), ns(2, Pn.u), ns(3, mo.d), ns(4, bn.XE)], os); const rs = (0, Rn.yh)("layoutService"); let ss = class extends Le.JT { constructor(e) { super(), this.layoutService = e, this.currentViewDisposable = Le.JT.None, this.container = e.container, this.contextView = this._register(new zr( this.container, 1)), this.layout(), this._register(e.onDidLayout((() => this.layout()))) } setContainer(e, t) { this.contextView.setContainer(e, t || 1) } showContextView(e, t, i) { t ? t !== this.container && (this.container = t, this.setContainer(t, i ? 3 : 2)) : this.container !== this.layoutService.container && ( this.container = this.layoutService.container, this.setContainer( this.container, 1)), this.contextView.show(e); const n = (0, Le.OF)((() => { this.currentViewDisposable === n && this.hideContextView() })); return this.currentViewDisposable = n, n } getContextViewElement() { return this.contextView.getViewElement() } layout() { this.contextView.layout() } hideContextView(e) { this.contextView.hide(e) } }; ss = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([function(e, t) { return function(i, n) { t(i, n, e) } }(0, rs)], ss); var as = i(8820), ls = i(7108); class ds { constructor(e) { this.incoming = new Map, this.outgoing = new Map, this.data = e } } class cs { constructor(e) { this._hashFn = e, this._nodes = new Map } roots() { const e = []; for (let t of this._nodes.values()) 0 === t.outgoing.size && e.push(t); return e } insertEdge(e, t) { const i = this.lookupOrInsertNode(e), n = this.lookupOrInsertNode(t); i.outgoing.set(this._hashFn(t), n), n.incoming.set(this._hashFn(e), i) } removeNode(e) { const t = this._hashFn(e); this._nodes.delete(t); for (let e of this._nodes.values()) e.outgoing.delete(t), e.incoming.delete( t) } lookupOrInsertNode(e) { const t = this._hashFn(e); let i = this._nodes.get(t); return i || (i = new ds(e), this._nodes.set(t, i)), i } isEmpty() { return 0 === this._nodes.size } toString() { let e = []; for (let [t, i] of this._nodes) e.push( `${t}, (incoming)[${[...i.incoming.keys()].join(", ")}], (outgoing)[${[...i.outgoing.keys()].join(",")}]` ); return e.join("\n") } findCycleSlow() { for (let [e, t] of this._nodes) { const i = new Set([e]), n = this._findCycle(t, i); if (n) return n } } _findCycle(e, t) { for (let [i, n] of e.outgoing) { if (t.has(i)) return [...t, i].join(" -> "); t.add(i); const e = this._findCycle(n, t); if (e) return e; t.delete(i) } } } class hs extends Error { constructor(e) { var t; super("cyclic dependency between services"), this.message = null !== ( t = e.findCycleSlow()) && void 0 !== t ? t : `UNABLE to detect cycle, dumping graph: \n${e.toString()}` } } class us { constructor(e = new On.y, t = !1, i) { this._activeInstantiations = new Set, this._services = e, this._strict = t, this._parent = i, this._services.set(Rn.TG, this) } createChild(e) { return new us(e, this._strict, this) } invokeFunction(e, ...t) { let i = gs.traceInvocation(e), n = !1; try { return e({ get: (e, t) => { if (n) throw (0, We.L6)( "service accessor is only valid during the invocation of its target method" ); const o = this._getOrCreateServiceInstance(e, i); if (!o && t !== Rn.jt) throw new Error( `[invokeFunction] unknown service '${e}'`); return o } }, ...t) } finally { n = !0, i.stop() } } createInstance(e, ...t) { let i, n; return e instanceof ls.M ? (i = gs.traceCreation(e.ctor), n = this._createInstance( e.ctor, e.staticArguments.concat(t), i)) : (i = gs.traceCreation(e), n = this._createInstance(e, t, i)), i.stop(), n } _createInstance(e, t = [], i) { let n = Rn.I8.getServiceDependencies(e).sort(((e, t) => e.index - t.index)), o = []; for (const t of n) { let n = this._getOrCreateServiceInstance(t.id, i); if (!n && this._strict && !t.optional) throw new Error( `[createInstance] ${e.name} depends on UNKNOWN service ${t.id}.`); o.push(n) } let r = n.length > 0 ? n[0].index : t.length; if (t.length !== r) { console.warn( `[createInstance] First service dependency of ${e.name} at position ${r+1} conflicts with ${t.length} static arguments` ); let i = r - t.length; t = i > 0 ? t.concat(new Array(i)) : t.slice(0, r) } return new e(...[...t, ...o]) } _setServiceInstance(e, t) { if (this._services.get(e) instanceof ls.M) this._services.set(e, t); else { if (!this._parent) throw new Error( "illegalState - setting UNKNOWN service instance"); this._parent._setServiceInstance(e, t) } } _getServiceInstanceOrDescriptor(e) { let t = this._services.get(e); return !t && this._parent ? this._parent._getServiceInstanceOrDescriptor( e) : t } _getOrCreateServiceInstance(e, t) { let i = this._getServiceInstanceOrDescriptor(e); return i instanceof ls.M ? this._safeCreateAndCacheServiceInstance(e, i, t.branch(e, !0)) : (t.branch(e, !1), i) } _safeCreateAndCacheServiceInstance(e, t, i) { if (this._activeInstantiations.has(e)) throw new Error( `illegal state - RECURSIVELY instantiating service '${e}'`); this._activeInstantiations.add(e); try { return this._createAndCacheServiceInstance(e, t, i) } finally { this._activeInstantiations.delete(e) } } _createAndCacheServiceInstance(e, t, i) { const n = new cs((e => e.id.toString())); let o = 0; const r = [{ id: e, desc: t, _trace: i }]; for (; r.length;) { const t = r.pop(); if (n.lookupOrInsertNode(t), o++ > 1e3) throw new hs(n); for (let i of Rn.I8.getServiceDependencies(t.desc.ctor)) { let o = this._getServiceInstanceOrDescriptor(i.id); if (o || i.optional || console.warn( `[createInstance] ${e} depends on ${i.id} which is NOT registered.` ), o instanceof ls.M) { const e = { id: i.id, desc: o, _trace: t._trace.branch(i.id, !0) }; n.insertEdge(t, e), r.push(e) } } } for (;;) { const e = n.roots(); if (0 === e.length) { if (!n.isEmpty()) throw new hs(n); break } for (const { data: t } of e) { if (this._getServiceInstanceOrDescriptor(t.id) instanceof ls.M) { const e = this._createServiceInstanceWithOwner(t.id, t.desc.ctor, t .desc.staticArguments, t.desc.supportsDelayedInstantiation, t._trace ); this._setServiceInstance(t.id, e) } n.removeNode(t) } } return this._getServiceInstanceOrDescriptor(e) } _createServiceInstanceWithOwner(e, t, i = [], n, o) { if (this._services.get(e) instanceof ls.M) return this._createServiceInstance( t, i, n, o); if (this._parent) return this._parent._createServiceInstanceWithOwner( e, t, i, n, o); throw new Error( `illegalState - creating UNKNOWN service instance ${t.name}`) } _createServiceInstance(e, t = [], i, n) { if (i) { const i = new Be.Ue((() => this._createInstance(e, t, n))); return new Proxy(Object.create(null), { get(e, t) { if (t in e) return e[t]; let n = i.value, o = n[t]; return "function" != typeof o || (o = o.bind(n), e[t] = o), o }, set: (e, t, n) => (i.value[t] = n, !0) }) } return this._createInstance(e, t, n) } } class gs { constructor(e, t) { this.type = e, this.name = t, this._start = Date.now(), this._dep = [] } static traceInvocation(e) { return gs._None } static traceCreation(e) { return gs._None } branch(e, t) { let i = new gs(2, e.toString()); return this._dep.push([e, t, i]), i } stop() { let e = Date.now() - this._start; gs._totals += e; let t = !1, i = [`${0===this.type?"CREATE":"CALL"} ${this.name}`, `${function e(i,n){let o=[],r=new Array(i+1).join("\t");for(const[s,a,l]of n._dep)if(a&&l){t=!0,o.push(` $ { r } CREATES - > $ { s } `);let n=e(i+1,l);n&&o.push(n)}else o.push(` $ { r } uses - > $ { s } `);return o.join("\n")}(1,this)}`, `DONE, took ${e.toFixed(2)}ms (grand total ${gs._totals.toFixed(2)}ms)` ]; (e > 2 || t) && console.log(i.join("\n")) } } gs._None = new class extends gs { constructor() { super(-1, null) } stop() {} branch() { return this } }, gs._totals = 0; var ps = i(4349), ms = i(3738), fs = i(8674); class _s { constructor() { this._byResource = new ge.Y9, this._byOwner = new Map } set(e, t, i) { let n = this._byResource.get(e); n || (n = new Map, this._byResource.set(e, n)), n.set(t, i); let o = this._byOwner.get(t); o || (o = new ge.Y9, this._byOwner.set(t, o)), o.set(e, i) } get(e, t) { let i = this._byResource.get(e); return null == i ? void 0 : i.get(t) } delete(e, t) { let i = !1, n = !1, o = this._byResource.get(e); o && (i = o.delete(t)); let r = this._byOwner.get(t); if (r && (n = r.delete(e)), i !== n) throw new Error("illegal state"); return i && n } values(e) { var t, i, n, o; return "string" == typeof e ? null !== (i = null === (t = this._byOwner .get(e)) || void 0 === t ? void 0 : t.values()) && void 0 !== i ? i : fr.$.empty() : H.o.isUri(e) ? null !== (o = null === (n = this._byResource .get(e)) || void 0 === n ? void 0 : n.values()) && void 0 !== o ? o : fr.$.empty() : fr.$.map(fr.$.concat(...this._byOwner.values()), (e => e[1])) } } class bs { constructor(e) { this.errors = 0, this.infos = 0, this.warnings = 0, this.unknowns = 0, this._data = new ge.Y9, this._service = e, this._subscription = e.onMarkerChanged( this._update, this) } dispose() { this._subscription.dispose() } _update(e) { for (const t of e) { const e = this._data.get(t); e && this._substract(e); const i = this._resourceStats(t); this._add(i), this._data.set(t, i) } } _resourceStats(e) { const t = { errors: 0, warnings: 0, infos: 0, unknowns: 0 }; if (e.scheme === me.lg.inMemory || e.scheme === me.lg.walkThrough || e .scheme === me.lg.walkThroughSnippet) return t; for (const { severity: i } of this._service.read({ resource: e })) i === fs.ZL.Error ? t.errors += 1 : i === fs.ZL.Warning ? t.warnings += 1 : i === fs.ZL.Info ? t.infos += 1 : t.unknowns += 1; return t } _substract(e) { this.errors -= e.errors, this.warnings -= e.warnings, this.infos -= e.infos, this.unknowns -= e.unknowns } _add(e) { this.errors += e.errors, this.warnings += e.warnings, this.infos += e.infos, this.unknowns += e.unknowns } } class vs { constructor() { this._onMarkerChanged = new z.D0({ delay: 0, merge: vs._merge }), this.onMarkerChanged = this._onMarkerChanged.event, this._data = new _s, this._stats = new bs(this) } dispose() { this._stats.dispose(), this._onMarkerChanged.dispose() } remove(e, t) { for (const i of t || []) this.changeOne(e, i, []) } changeOne(e, t, i) { if ((0, St.XY)(i)) this._data.delete(t, e) && this._onMarkerChanged.fire( [t]); else { const n = []; for (const o of i) { const i = vs._toMarker(e, t, o); i && n.push(i) } this._data.set(t, e, n), this._onMarkerChanged.fire([t]) } } static _toMarker(e, t, i) { let { code: n, severity: o, message: r, source: s, startLineNumber: a, startColumn: l, endLineNumber: d, endColumn: c, relatedInformation: h, tags: u } = i; if (r) return a = a > 0 ? a : 1, l = l > 0 ? l : 1, d = d >= a ? d : a, c = c > 0 ? c : l, { resource: t, owner: e, code: n, severity: o, message: r, source: s, startLineNumber: a, startColumn: l, endLineNumber: d, endColumn: c, relatedInformation: h, tags: u } } read(e = Object.create(null)) { let { owner: t, resource: i, severities: n, take: o } = e; if ((!o || o < 0) && (o = -1), t && i) { const e = this._data.get(i, t); if (e) { const t = []; for (const i of e) if (vs._accept(i, n)) { const e = t.push(i); if (o > 0 && e === o) break } return t } return [] } if (t || i) { const e = this._data.values(null != i ? i : t), r = []; for (const t of e) for (const e of t) if (vs._accept(e, n)) { const t = r.push(e); if (o > 0 && t === o) return r } return r } { const e = []; for (let t of this._data.values()) for (let i of t) if (vs._accept(i, n)) { const t = e.push(i); if (o > 0 && t === o) return e } return e } } static _accept(e, t) { return void 0 === t || (t & e.severity) === e.severity } static _merge(e) { const t = new ge.Y9; for (let i of e) for (let e of i) t.set(e, !0); return Array.from(t.keys()) } } var ws = i(6904), Cs = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }, ys = function(e, t) { return function(i, n) { t(i, n, e) } }; let Ss = class { constructor(e) { this._commandService = e } createMenu(e, t, i) { return new xs(e, Object.assign({ emitEventsForSubmenuChanges: !1, eventDebounceDelay: 50 }, i), this._commandService, t, this) } }; Ss = Cs([ys(0, _e.H)], Ss); let xs = class e { constructor(e, t, i, n, o) { this._id = e, this._options = t, this._commandService = i, this._contextKeyService = n, this._menuService = o, this._disposables = new Le.SL, this._menuGroups = [], this._contextKeys = new Set, this._build(); const r = new Be.pY((() => { this._build(), this._onDidChange.fire(this) }), t.eventDebounceDelay); this._disposables.add(r), this._disposables.add(po.BH.onDidChangeMenu( (t => { t.has(e) && r.schedule() }))); const s = this._disposables.add(new Le.SL); this._onDidChange = new z.Q5({ onFirstListenerAdd: () => { const e = new Be.pY((() => this._onDidChange.fire(this)), t.eventDebounceDelay); s.add(e), s.add(n.onDidChangeContext((t => { t.affectsSome(this._contextKeys) && e.schedule() }))) }, onLastListenerRemove: s.clear.bind(s) }), this.onDidChange = this._onDidChange.event } dispose() { this._disposables.dispose(), this._onDidChange.dispose() } _build() { this._menuGroups.length = 0, this._contextKeys.clear(); const t = po.BH.getMenuItems(this._id); let i; t.sort(e._compareMenuItems); for (const e of t) { const t = e.group || ""; i && i[0] === t || (i = [t, []], this._menuGroups.push(i)), i[1].push( e), this._collectContextKeys(e) } } _collectContextKeys(t) { if (e._fillInKbExprKeys(t.when, this._contextKeys), (0, po.vr)(t)) { if (t.command.precondition && e._fillInKbExprKeys(t.command.precondition, this._contextKeys), t.command.toggled) { const i = t.command.toggled.condition || t.command.toggled; e._fillInKbExprKeys(i, this._contextKeys) } } else this._options.emitEventsForSubmenuChanges && po.BH.getMenuItems( t.submenu).forEach(this._collectContextKeys, this) } getActions(e) { const t = []; for (let i of this._menuGroups) { const [n, o] = i, r = []; for (const t of o) if (this._contextKeyService.contextMatchesRules(t.when)) { const i = (0, po.vr)(t) ? new po.U8(t.command, t.alt, e, this._contextKeyService, this._commandService) : new po.NZ(t, this._menuService, this._contextKeyService, e); r.push(i) } r.length > 0 && t.push([n, r]) } return t } static _fillInKbExprKeys(e, t) { if (e) for (let i of e.keys()) t.add(i) } static _compareMenuItems(t, i) { let n = t.group, o = i.group; if (n !== o) { if (!n) return 1; if (!o) return -1; if ("navigation" === n) return -1; if ("navigation" === o) return 1; let e = n.localeCompare(o); if (0 !== e) return e } let r = t.order || 0, s = i.order || 0; return r < s ? -1 : r > s ? 1 : e._compareTitles((0, po.vr)(t) ? t.command .title : t.title, (0, po.vr)(i) ? i.command.title : i.title) } static _compareTitles(e, t) { const i = "string" == typeof e ? e : e.original, n = "string" == typeof t ? t : t.original; return i.localeCompare(n) } }; xs = Cs([ys(2, _e.H), ys(3, Ci.i6), ys(4, po.co)], xs); var ks = i(6479), Ls = function(e, t) { return function(i, n) { t(i, n, e) } }; class Ns extends Le.JT { constructor(e) { super(), this.model = e, this._markersData = new Map, this._register( (0, Le.OF)((() => { this.model.deltaDecorations([...this._markersData.keys()], []), this._markersData.clear() }))) } update(e, t) { const i = [...this._markersData.keys()]; this._markersData.clear(); const n = this.model.deltaDecorations(i, t); for (let t = 0; t < n.length; t++) this._markersData.set(n[t], e[t]); return 0 !== i.length || 0 !== n.length } getMarker(e) { return this._markersData.get(e.id) } } let Ds = class extends Le.JT { constructor(e, t) { super(), this._markerService = t, this._onDidChangeMarker = this._register( new z.Q5), this._markerDecorations = new ge.Y9, e.getModels().forEach( (e => this._onModelAdded(e))), this._register(e.onModelAdded(this._onModelAdded, this)), this._register(e.onModelRemoved(this._onModelRemoved, this)), this._register(this._markerService.onMarkerChanged(this._handleMarkerChange, this)) } dispose() { super.dispose(), this._markerDecorations.forEach((e => e.dispose())), this._markerDecorations.clear() } getMarker(e, t) { const i = this._markerDecorations.get(e); return i && i.getMarker(t) || null } _handleMarkerChange(e) { e.forEach((e => { const t = this._markerDecorations.get(e); t && this._updateDecorations(t) })) } _onModelAdded(e) { const t = new Ns(e); this._markerDecorations.set(e.uri, t), this._updateDecorations(t) } _onModelRemoved(e) { const t = this._markerDecorations.get(e.uri); t && (t.dispose(), this._markerDecorations.delete(e.uri)), e.uri.scheme !== me.lg.inMemory && e.uri.scheme !== me.lg.internal && e.uri.scheme !== me.lg.vscode || this._markerService && this._markerService.read({ resource: e.uri }).map((e => e.owner)).forEach((t => this._markerService.remove(t, [ e.uri ]))) } _updateDecorations(e) { const t = this._markerService.read({ resource: e.model.uri, take: 500 }); let i = t.map((t => ({ range: this._createDecorationRange(e.model, t), options: this._createDecorationOption(t) }))); e.update(t, i) && this._onDidChangeMarker.fire(e.model) } _createDecorationRange(e, t) { let i = j.e.lift(t); if (t.severity !== fs.ZL.Hint || this._hasMarkerTag(t, 1) || this._hasMarkerTag( t, 2) || (i = i.setEndPosition(i.startLineNumber, i.startColumn + 2)), i = e.validateRange(i), i.isEmpty()) { let t = e.getWordAtPosition(i.getStartPosition()); if (t) i = new j.e(i.startLineNumber, t.startColumn, i.endLineNumber, t.endColumn); else { let t = e.getLineLastNonWhitespaceColumn(i.startLineNumber) || e.getLineMaxColumn( i.startLineNumber); 1 === t || (i = i.endColumn >= t ? new j.e(i.startLineNumber, t - 1, i.endLineNumber, t) : new j.e(i.startLineNumber, i.startColumn, i.endLineNumber, i.endColumn + 1)) } } else if (t.endColumn === Number.MAX_VALUE && 1 === t.startColumn && i.startLineNumber === i.endLineNumber) { let n = e.getLineFirstNonWhitespaceColumn(t.startLineNumber); n < i.endColumn && (i = new j.e(i.startLineNumber, n, i.endLineNumber, i.endColumn), t.startColumn = n) } return i } _createDecorationOption(e) { let t, i, n, o, r; switch (e.severity) { case fs.ZL.Hint: t = this._hasMarkerTag(e, 2) ? void 0 : this._hasMarkerTag(e, 1) ? "squiggly-unnecessary" : "squiggly-hint", n = 0; break; case fs.ZL.Warning: t = "squiggly-warning", i = (0, bn.EN)(fn.Re), n = 20, r = { color: (0, bn.EN)(_n.Iv), position: Me.F5.Inline }; break; case fs.ZL.Info: t = "squiggly-info", i = (0, bn.EN)(fn.eS), n = 10; break; case fs.ZL.Error: default: t = "squiggly-error", i = (0, bn.EN)(fn.lK), n = 30, r = { color: (0, bn.EN)(_n.Gj), position: Me.F5.Inline } } return e.tags && (-1 !== e.tags.indexOf(1) && (o = "squiggly-inline-unnecessary"), -1 !== e.tags.indexOf(2) && (o = "squiggly-inline-deprecated")), { description: "marker-decoration", stickiness: 1, className: t, showIfCollapsed: !0, overviewRuler: { color: i, position: Me.sh.Right }, minimap: r, zIndex: n, inlineClassName: o } } _hasMarkerTag(e, t) { return !!e.tags && e.tags.indexOf(t) >= 0 } }; Ds = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([Ls(0, Ct.q), Ls(1, fs.lT)], Ds); var Es = i(5026), Is = function(e, t) { return function(i, n) { t(i, n, e) } }; let Ts = class extends Le.JT { constructor(e, t) { super(), this._contextKeyService = e, this._configurationService = t, this._accessibilitySupport = 0, this._onDidChangeScreenReaderOptimized = new z.Q5, this._accessibilityModeEnabledContext = fo.U.bindTo(this._contextKeyService); const i = () => this._accessibilityModeEnabledContext.set(this.isScreenReaderOptimized()); this._register(this._configurationService.onDidChangeConfiguration((e => { e.affectsConfiguration("editor.accessibilitySupport") && (i(), this._onDidChangeScreenReaderOptimized.fire()) }))), i(), this.onDidChangeScreenReaderOptimized((() => i())) } get onDidChangeScreenReaderOptimized() { return this._onDidChangeScreenReaderOptimized.event } isScreenReaderOptimized() { const e = this._configurationService.getValue( "editor.accessibilitySupport"); return "on" === e || "auto" === e && 2 === this._accessibilitySupport } getAccessibilitySupport() { return this._accessibilitySupport } }; Ts = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([Is(0, Ci.i6), Is(1, gi.Ui)], Ts); var Ms = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; class As { constructor() { this.mapTextToType = new Map, this.findText = "" } writeText(e, t) { return Ms(this, void 0, void 0, (function*() { if (t) return void this.mapTextToType.set(t, e); try { return yield navigator.clipboard.writeText(e) } catch (e) { console.error(e) } const i = document.activeElement, n = document.body.appendChild((0, he.$)("textarea", { "aria-hidden": !0 })); n.style.height = "1px", n.style.width = "1px", n.style.position = "absolute", n.value = e, n.focus(), n.select(), document.execCommand( "copy"), i instanceof HTMLElement && i.focus(), document.body.removeChild( n) })) } readText(e) { return Ms(this, void 0, void 0, (function*() { if (e) return this.mapTextToType.get(e) || ""; try { return yield navigator.clipboard.readText() } catch (e) { return console.error(e), "" } })) } readFindText() { return Ms(this, void 0, void 0, (function*() { return this.findText })) } writeFindText(e) { return Ms(this, void 0, void 0, (function*() { this.findText = e })) } } var Rs = i(4862), Os = function(e, t) { return function(i, n) { t(i, n, e) } }, Ps = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; function Fs(e) { return e.scheme === me.lg.file ? e.fsPath : e.path } let Bs = 0; class Ws { constructor(e, t, i, n, o, r, s) { this.id = ++Bs, this.type = 0, this.actual = e, this.label = e.label, this.confirmBeforeUndo = e.confirmBeforeUndo || !1, this.resourceLabel = t, this.strResource = i, this.resourceLabels = [this.resourceLabel], this.strResources = [this.strResource], this.groupId = n, this.groupOrder = o, this.sourceId = r, this.sourceOrder = s, this.isValid = !0 } setValid(e) { this.isValid = e } toString() { return `[id:${this.id}] [group:${this.groupId}] [${this.isValid?" VALID":"INVALID"}] ${this.actual.constructor.name} - ${this.actual}` } } class zs { constructor(e, t) { this.resourceLabel = e, this.reason = t } } class Vs { constructor() { this.elements = new Map } createMessage() { const e = [], t = []; for (const [, i] of this.elements)(0 === i.reason ? e : t).push(i.resourceLabel); let i = []; return e.length > 0 && i.push(vi.N({ key: "externalRemoval", comment: ["{0} is a list of filenames"] }, "The following files have been closed and modified on disk: {0}.", e.join(", "))), t.length > 0 && i.push(vi.N({ key: "noParallelUniverses", comment: ["{0} is a list of filenames"] }, "The following files have been modified in an incompatible way: {0}.", t.join(", "))), i.join("\n") } get size() { return this.elements.size } has(e) { return this.elements.has(e) } set(e, t) { this.elements.set(e, t) } delete(e) { return this.elements.delete(e) } } class Hs { constructor(e, t, i, n, o, r, s) { this.id = ++Bs, this.type = 1, this.actual = e, this.label = e.label, this.confirmBeforeUndo = e.confirmBeforeUndo || !1, this.resourceLabels = t, this.strResources = i, this.groupId = n, this.groupOrder = o, this .sourceId = r, this.sourceOrder = s, this.removedResources = null, this.invalidatedResources = null } canSplit() { return "function" == typeof this.actual.split } removeResource(e, t, i) { this.removedResources || (this.removedResources = new Vs), this.removedResources .has(t) || this.removedResources.set(t, new zs(e, i)) } setValid(e, t, i) { i ? this.invalidatedResources && (this.invalidatedResources.delete(t), 0 === this.invalidatedResources.size && (this.invalidatedResources = null)) : (this.invalidatedResources || (this.invalidatedResources = new Vs), this.invalidatedResources.has(t) || this.invalidatedResources .set(t, new zs(e, 0))) } toString() { return `[id:${this.id}] [group:${this.groupId}] [${this.invalidatedResources?"INVALID":" VALID"}] ${this.actual.constructor.name} - ${this.actual}` } } class Us { constructor(e, t) { this.resourceLabel = e, this.strResource = t, this._past = [], this._future = [], this.locked = !1, this.versionId = 1 } dispose() { for (const e of this._past) 1 === e.type && e.removeResource(this.resourceLabel, this.strResource, 0); for (const e of this._future) 1 === e.type && e.removeResource(this.resourceLabel, this.strResource, 0); this.versionId++ } toString() { let e = []; e.push(`* ${this.strResource}:`); for (let t = 0; t < this._past.length; t++) e.push( ` * [UNDO] ${this._past[t]}`); for (let t = this._future.length - 1; t >= 0; t--) e.push( ` * [REDO] ${this._future[t]}`); return e.join("\n") } flushAllElements() { this._past = [], this._future = [], this.versionId++ } _setElementValidFlag(e, t) { 1 === e.type ? e.setValid(this.resourceLabel, this.strResource, t) : e .setValid(t) } setElementsValidFlag(e, t) { for (const i of this._past) t(i.actual) && this._setElementValidFlag(i, e); for (const i of this._future) t(i.actual) && this._setElementValidFlag( i, e) } pushElement(e) { for (const e of this._future) 1 === e.type && e.removeResource(this.resourceLabel, this.strResource, 1); this._future = [], this._past.push(e), this.versionId++ } createSnapshot(e) { const t = []; for (let e = 0, i = this._past.length; e < i; e++) t.push(this._past[e] .id); for (let e = this._future.length - 1; e >= 0; e--) t.push(this._future[ e].id); return new Rs.YO(e, t) } restoreSnapshot(e) { const t = e.elements.length; let i = !0, n = 0, o = -1; for (let r = 0, s = this._past.length; r < s; r++, n++) { const s = this._past[r]; i && (n >= t || s.id !== e.elements[n]) && (i = !1, o = 0), i || 1 !== s.type || s.removeResource(this.resourceLabel, this.strResource, 0) } let r = -1; for (let o = this._future.length - 1; o >= 0; o--, n++) { const s = this._future[o]; i && (n >= t || s.id !== e.elements[n]) && (i = !1, r = o), i || 1 !== s.type || s.removeResource(this.resourceLabel, this.strResource, 0) } - 1 !== o && (this._past = this._past.slice(0, o)), -1 !== r && ( this._future = this._future.slice(r + 1)), this.versionId++ } getElements() { const e = [], t = []; for (const t of this._past) e.push(t.actual); for (const e of this._future) t.push(e.actual); return { past: e, future: t } } getClosestPastElement() { return 0 === this._past.length ? null : this._past[this._past.length - 1] } getSecondClosestPastElement() { return this._past.length < 2 ? null : this._past[this._past.length - 2] } getClosestFutureElement() { return 0 === this._future.length ? null : this._future[this._future.length - 1] } hasPastElements() { return this._past.length > 0 } hasFutureElements() { return this._future.length > 0 } splitPastWorkspaceElement(e, t) { for (let i = this._past.length - 1; i >= 0; i--) if (this._past[i] === e) { t.has(this.strResource) ? this._past[i] = t.get(this.strResource) : this._past.splice(i, 1); break } this.versionId++ } splitFutureWorkspaceElement(e, t) { for (let i = this._future.length - 1; i >= 0; i--) if (this._future[i] === e) { t.has(this.strResource) ? this._future[i] = t.get(this.strResource) : this._future.splice(i, 1); break } this.versionId++ } moveBackward(e) { this._past.pop(), this._future.push(e), this.versionId++ } moveForward(e) { this._future.pop(), this._past.push(e), this.versionId++ } } class js { constructor(e) { this.editStacks = e, this._versionIds = []; for (let e = 0, t = this.editStacks.length; e < t; e++) this._versionIds[ e] = this.editStacks[e].versionId } isValid() { for (let e = 0, t = this.editStacks.length; e < t; e++) if (this._versionIds[e] !== this.editStacks[e].versionId) return !1; return !0 } } const Ks = new Us("", ""); Ks.locked = !0; let $s = class { constructor(e, t) { this._dialogService = e, this._notificationService = t, this._editStacks = new Map, this._uriComparisonKeyComputers = [] } getUriComparisonKey(e) { for (const t of this._uriComparisonKeyComputers) if (t[0] === e.scheme) return t[1].getComparisonKey(e); return e.toString() } _print(e) { console.log("------------------------------------"), console.log( `AFTER ${e}: `); let t = []; for (const e of this._editStacks) t.push(e[1].toString()); console.log(t.join("\n")) } pushElement(e, t = Rs.Xt.None, i = Rs.gJ.None) { if (0 === e.type) { const n = Fs(e.resource), o = this.getUriComparisonKey(e.resource); this._pushElement(new Ws(e, n, o, t.id, t.nextOrder(), i.id, i.nextOrder())) } else { const n = new Set, o = [], r = []; for (const t of e.resources) { const e = Fs(t), i = this.getUriComparisonKey(t); n.has(i) || (n.add(i), o.push(e), r.push(i)) } 1 === o.length ? this._pushElement(new Ws(e, o[0], r[0], t.id, t.nextOrder(), i.id, i.nextOrder())) : this._pushElement(new Hs(e, o, r, t.id, t.nextOrder(), i.id, i.nextOrder())) } } _pushElement(e) { for (let t = 0, i = e.strResources.length; t < i; t++) { const i = e.resourceLabels[t], n = e.strResources[t]; let o; this._editStacks.has(n) ? o = this._editStacks.get(n) : (o = new Us( i, n), this._editStacks.set(n, o)), o.pushElement(e) } } getLastElement(e) { const t = this.getUriComparisonKey(e); if (this._editStacks.has(t)) { const e = this._editStacks.get(t); if (e.hasFutureElements()) return null; const i = e.getClosestPastElement(); return i ? i.actual : null } return null } _splitPastWorkspaceElement(e, t) { const i = e.actual.split(), n = new Map; for (const e of i) { const t = Fs(e.resource), i = this.getUriComparisonKey(e.resource), o = new Ws(e, t, i, 0, 0, 0, 0); n.set(o.strResource, o) } for (const i of e.strResources) t && t.has(i) || this._editStacks.get( i).splitPastWorkspaceElement(e, n) } _splitFutureWorkspaceElement(e, t) { const i = e.actual.split(), n = new Map; for (const e of i) { const t = Fs(e.resource), i = this.getUriComparisonKey(e.resource), o = new Ws(e, t, i, 0, 0, 0, 0); n.set(o.strResource, o) } for (const i of e.strResources) t && t.has(i) || this._editStacks.get( i).splitFutureWorkspaceElement(e, n) } removeElements(e) { const t = "string" == typeof e ? e : this.getUriComparisonKey(e); this._editStacks.has(t) && (this._editStacks.get(t).dispose(), this._editStacks .delete(t)) } setElementsValidFlag(e, t, i) { const n = this.getUriComparisonKey(e); this._editStacks.has(n) && this._editStacks.get(n).setElementsValidFlag( t, i) } createSnapshot(e) { const t = this.getUriComparisonKey(e); return this._editStacks.has(t) ? this._editStacks.get(t).createSnapshot( e) : new Rs.YO(e, []) } restoreSnapshot(e) { const t = this.getUriComparisonKey(e.resource); if (this._editStacks.has(t)) { const i = this._editStacks.get(t); i.restoreSnapshot(e), i.hasPastElements() || i.hasFutureElements() || (i.dispose(), this._editStacks.delete(t)) } } getElements(e) { const t = this.getUriComparisonKey(e); return this._editStacks.has(t) ? this._editStacks.get(t).getElements() : { past: [], future: [] } } _findClosestUndoElementWithSource(e) { if (!e) return [null, null]; let t = null, i = null; for (const [n, o] of this._editStacks) { const r = o.getClosestPastElement(); r && r.sourceId === e && (!t || r.sourceOrder > t.sourceOrder) && (t = r, i = n) } return [t, i] } canUndo(e) { if (e instanceof Rs.gJ) { const [, t] = this._findClosestUndoElementWithSource(e.id); return !!t } const t = this.getUriComparisonKey(e); return !!this._editStacks.has(t) && this._editStacks.get(t).hasPastElements() } _onError(e, t) { (0, We.dL)(e); for (const e of t.strResources) this.removeElements(e); this._notificationService.error(e) } _acquireLocks(e) { for (const t of e.editStacks) if (t.locked) throw new Error("Cannot acquire edit stack lock"); for (const t of e.editStacks) t.locked = !0; return () => { for (const t of e.editStacks) t.locked = !1 } } _safeInvokeWithLocks(e, t, i, n, o) { const r = this._acquireLocks(i); let s; try { s = t() } catch (t) { return r(), n.dispose(), this._onError(t, e) } return s ? s.then((() => (r(), n.dispose(), o())), (t => (r(), n.dispose(), this._onError(t, e)))) : (r(), n.dispose(), o()) } _invokeWorkspacePrepare(e) { return Ps(this, void 0, void 0, (function*() { if (void 0 === e.actual.prepareUndoRedo) return Le.JT.None; const t = e.actual.prepareUndoRedo(); return void 0 === t ? Le.JT.None : t })) } _invokeResourcePrepare(e, t) { if (1 !== e.actual.type || void 0 === e.actual.prepareUndoRedo) return t(Le.JT.None); const i = e.actual.prepareUndoRedo(); return i ? (0, Le.Wf)(i) ? t(i) : i.then((e => t(e))) : t(Le.JT.None) } _getAffectedEditStacks(e) { const t = []; for (const i of e.strResources) t.push(this._editStacks.get(i) || Ks); return new js(t) } _tryToSplitAndUndo(e, t, i, n) { if (t.canSplit()) return this._splitPastWorkspaceElement(t, i), this._notificationService .warn(n), new qs(this._undo(e, 0, !0)); for (const e of t.strResources) this.removeElements(e); return this._notificationService.warn(n), new qs } _checkWorkspaceUndo(e, t, i, n) { if (t.removedResources) return this._tryToSplitAndUndo(e, t, t.removedResources, vi.N({ key: "cannotWorkspaceUndo", comment: [ "{0} is a label for an operation. {1} is another message." ] }, "Could not undo '{0}' across all files. {1}", t.label, t.removedResources .createMessage())); if (n && t.invalidatedResources) return this._tryToSplitAndUndo(e, t, t.invalidatedResources, vi.N({ key: "cannotWorkspaceUndo", comment: [ "{0} is a label for an operation. {1} is another message." ] }, "Could not undo '{0}' across all files. {1}", t.label, t.invalidatedResources .createMessage())); const o = []; for (const e of i.editStacks) e.getClosestPastElement() !== t && o.push( e.resourceLabel); if (o.length > 0) return this._tryToSplitAndUndo(e, t, null, vi.N({ key: "cannotWorkspaceUndoDueToChanges", comment: [ "{0} is a label for an operation. {1} is a list of filenames." ] }, "Could not undo '{0}' across all files because changes were made to {1}", t.label, o.join(", "))); const r = []; for (const e of i.editStacks) e.locked && r.push(e.resourceLabel); return r.length > 0 ? this._tryToSplitAndUndo(e, t, null, vi.N({ key: "cannotWorkspaceUndoDueToInProgressUndoRedo", comment: [ "{0} is a label for an operation. {1} is a list of filenames." ] }, "Could not undo '{0}' across all files because there is already an undo or redo operation running on {1}", t.label, r.join(", "))) : i.isValid() ? null : this._tryToSplitAndUndo( e, t, null, vi.N({ key: "cannotWorkspaceUndoDueToInMeantimeUndoRedo", comment: [ "{0} is a label for an operation. {1} is a list of filenames." ] }, "Could not undo '{0}' across all files because an undo or redo operation occurred in the meantime", t.label)) } _workspaceUndo(e, t, i) { const n = this._getAffectedEditStacks(t), o = this._checkWorkspaceUndo(e, t, n, !1); return o ? o.returnValue : this._confirmAndExecuteWorkspaceUndo(e, t, n, i) } _isPartOfUndoGroup(e) { if (!e.groupId) return !1; for (const [, t] of this._editStacks) { const i = t.getClosestPastElement(); if (i) { if (i === e) { const i = t.getSecondClosestPastElement(); if (i && i.groupId === e.groupId) return !0 } if (i.groupId === e.groupId) return !0 } } return !1 } _confirmAndExecuteWorkspaceUndo(e, t, i, n) { return Ps(this, void 0, void 0, (function*() { if (t.canSplit() && !this._isPartOfUndoGroup(t)) { const o = yield this._dialogService.show(li.Z.Info, vi.N( "confirmWorkspace", "Would you like to undo '{0}' across all files?", t.label), [ vi.N({ key: "ok", comment: ["{0} denotes a number that is > 1"] }, "Undo in {0} Files", i.editStacks.length), vi.N("nok", "Undo this File"), vi.N("cancel", "Cancel") ], { cancelId: 2 }); if (2 === o.choice) return; if (1 === o.choice) return this._splitPastWorkspaceElement(t, null), this._undo(e, 0, !0); const r = this._checkWorkspaceUndo(e, t, i, !1); if (r) return r.returnValue; n = !0 } let o; try { o = yield this._invokeWorkspacePrepare(t) } catch (e) { return this._onError(e, t) } const r = this._checkWorkspaceUndo(e, t, i, !0); if (r) return o.dispose(), r.returnValue; for (const e of i.editStacks) e.moveBackward(t); return this._safeInvokeWithLocks(t, (() => t.actual.undo()), i, o, ( () => this._continueUndoInGroup(t.groupId, n))) })) } _resourceUndo(e, t, i) { if (t.isValid) { if (!e.locked) return this._invokeResourcePrepare(t, (n => (e.moveBackward( t), this._safeInvokeWithLocks(t, (() => t.actual.undo()), new js( [e]), n, (() => this._continueUndoInGroup(t.groupId, i)))))); { const e = vi.N({ key: "cannotResourceUndoDueToInProgressUndoRedo", comment: ["{0} is a label for an operation."] }, "Could not undo '{0}' because there is already an undo or redo operation running.", t.label); this._notificationService.warn(e) } } else e.flushAllElements() } _findClosestUndoElementInGroup(e) { if (!e) return [null, null]; let t = null, i = null; for (const [n, o] of this._editStacks) { const r = o.getClosestPastElement(); r && r.groupId === e && (!t || r.groupOrder > t.groupOrder) && (t = r, i = n) } return [t, i] } _continueUndoInGroup(e, t) { if (!e) return; const [, i] = this._findClosestUndoElementInGroup(e); return i ? this._undo(i, 0, t) : void 0 } undo(e) { if (e instanceof Rs.gJ) { const [, t] = this._findClosestUndoElementWithSource(e.id); return t ? this._undo(t, e.id, !1) : void 0 } return "string" == typeof e ? this._undo(e, 0, !1) : this._undo(this.getUriComparisonKey( e), 0, !1) } _undo(e, t = 0, i) { if (!this._editStacks.has(e)) return; const n = this._editStacks.get(e), o = n.getClosestPastElement(); if (o) { if (o.groupId) { const [e, n] = this._findClosestUndoElementInGroup(o.groupId); if (o !== e && n) return this._undo(n, t, i) } if ((o.sourceId !== t || o.confirmBeforeUndo) && !i) return this._confirmAndContinueUndo( e, t, o); try { return 1 === o.type ? this._workspaceUndo(e, o, i) : this._resourceUndo( n, o, i) } finally {} } } _confirmAndContinueUndo(e, t, i) { return Ps(this, void 0, void 0, (function*() { if (1 !== (yield this._dialogService.show(li.Z.Info, vi.N( "confirmDifferentSource", "Would you like to undo '{0}'?", i.label ), [vi.N("confirmDifferentSource.yes", "Yes"), vi.N("cancel", "Cancel")], { cancelId: 1 })).choice) return this._undo(e, t, !0) })) } _findClosestRedoElementWithSource(e) { if (!e) return [null, null]; let t = null, i = null; for (const [n, o] of this._editStacks) { const r = o.getClosestFutureElement(); r && r.sourceId === e && (!t || r.sourceOrder < t.sourceOrder) && (t = r, i = n) } return [t, i] } canRedo(e) { if (e instanceof Rs.gJ) { const [, t] = this._findClosestRedoElementWithSource(e.id); return !!t } const t = this.getUriComparisonKey(e); return !!this._editStacks.has(t) && this._editStacks.get(t).hasFutureElements() } _tryToSplitAndRedo(e, t, i, n) { if (t.canSplit()) return this._splitFutureWorkspaceElement(t, i), this._notificationService.warn(n), new qs(this._redo(e)); for (const e of t.strResources) this.removeElements(e); return this._notificationService.warn(n), new qs } _checkWorkspaceRedo(e, t, i, n) { if (t.removedResources) return this._tryToSplitAndRedo(e, t, t.removedResources, vi.N({ key: "cannotWorkspaceRedo", comment: [ "{0} is a label for an operation. {1} is another message." ] }, "Could not redo '{0}' across all files. {1}", t.label, t.removedResources .createMessage())); if (n && t.invalidatedResources) return this._tryToSplitAndRedo(e, t, t.invalidatedResources, vi.N({ key: "cannotWorkspaceRedo", comment: [ "{0} is a label for an operation. {1} is another message." ] }, "Could not redo '{0}' across all files. {1}", t.label, t.invalidatedResources .createMessage())); const o = []; for (const e of i.editStacks) e.getClosestFutureElement() !== t && o.push( e.resourceLabel); if (o.length > 0) return this._tryToSplitAndRedo(e, t, null, vi.N({ key: "cannotWorkspaceRedoDueToChanges", comment: [ "{0} is a label for an operation. {1} is a list of filenames." ] }, "Could not redo '{0}' across all files because changes were made to {1}", t.label, o.join(", "))); const r = []; for (const e of i.editStacks) e.locked && r.push(e.resourceLabel); return r.length > 0 ? this._tryToSplitAndRedo(e, t, null, vi.N({ key: "cannotWorkspaceRedoDueToInProgressUndoRedo", comment: [ "{0} is a label for an operation. {1} is a list of filenames." ] }, "Could not redo '{0}' across all files because there is already an undo or redo operation running on {1}", t.label, r.join(", "))) : i.isValid() ? null : this._tryToSplitAndRedo( e, t, null, vi.N({ key: "cannotWorkspaceRedoDueToInMeantimeUndoRedo", comment: [ "{0} is a label for an operation. {1} is a list of filenames." ] }, "Could not redo '{0}' across all files because an undo or redo operation occurred in the meantime", t.label)) } _workspaceRedo(e, t) { const i = this._getAffectedEditStacks(t), n = this._checkWorkspaceRedo(e, t, i, !1); return n ? n.returnValue : this._executeWorkspaceRedo(e, t, i) } _executeWorkspaceRedo(e, t, i) { return Ps(this, void 0, void 0, (function*() { let n; try { n = yield this._invokeWorkspacePrepare(t) } catch (e) { return this._onError(e, t) } const o = this._checkWorkspaceRedo(e, t, i, !0); if (o) return n.dispose(), o.returnValue; for (const e of i.editStacks) e.moveForward(t); return this._safeInvokeWithLocks(t, (() => t.actual.redo()), i, n, ( () => this._continueRedoInGroup(t.groupId))) })) } _resourceRedo(e, t) { if (t.isValid) { if (!e.locked) return this._invokeResourcePrepare(t, (i => (e.moveForward( t), this._safeInvokeWithLocks(t, (() => t.actual.redo()), new js( [e]), i, (() => this._continueRedoInGroup(t.groupId)))))); { const e = vi.N({ key: "cannotResourceRedoDueToInProgressUndoRedo", comment: ["{0} is a label for an operation."] }, "Could not redo '{0}' because there is already an undo or redo operation running.", t.label); this._notificationService.warn(e) } } else e.flushAllElements() } _findClosestRedoElementInGroup(e) { if (!e) return [null, null]; let t = null, i = null; for (const [n, o] of this._editStacks) { const r = o.getClosestFutureElement(); r && r.groupId === e && (!t || r.groupOrder < t.groupOrder) && (t = r, i = n) } return [t, i] } _continueRedoInGroup(e) { if (!e) return; const [, t] = this._findClosestRedoElementInGroup(e); return t ? this._redo(t) : void 0 } redo(e) { if (e instanceof Rs.gJ) { const [, t] = this._findClosestRedoElementWithSource(e.id); return t ? this._redo(t) : void 0 } return "string" == typeof e ? this._redo(e) : this._redo(this.getUriComparisonKey( e)) } _redo(e) { if (!this._editStacks.has(e)) return; const t = this._editStacks.get(e), i = t.getClosestFutureElement(); if (i) { if (i.groupId) { const [e, t] = this._findClosestRedoElementInGroup(i.groupId); if (i !== e && t) return this._redo(t) } try { return 1 === i.type ? this._workspaceRedo(e, i) : this._resourceRedo( t, i) } finally {} } } }; $s = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([Os(0, as.S), Os(1, Ti.lT)], $s); class qs { constructor(e) { this.returnValue = e } }(0, Es.z)(Rs.tJ, $s); var Zs = i(3198), Gs = {}; Gs.styleTagTransform = se(), Gs.setAttributes = ie(), Gs.insert = ee().bind( null, "head"), Gs.domAPI = X(), Gs.insertStyleElement = oe(), Y()(Zs.Z, Gs), Zs.Z && Zs.Z.locals && Zs.Z.locals; var Ys = i(6811), Qs = i(2013), Xs = {}; Xs.styleTagTransform = se(), Xs.setAttributes = ie(), Xs.insert = ee().bind( null, "head"), Xs.domAPI = X(), Xs.insertStyleElement = oe(), Y()(Qs.Z, Xs), Qs.Z && Qs.Z.locals && Qs.Z.locals; const Js = { buttonBackground: Zo.Il.fromHex("#0E639C"), buttonHoverBackground: Zo.Il.fromHex("#006BB3"), buttonForeground: Zo.Il.white }; class ea extends Le.JT { constructor(e, t) { super(), this._onDidClick = this._register(new z.Q5), this.options = t || Object.create(null), (0, Ne.jB)(this.options, Js, !1), this.buttonForeground = this.options.buttonForeground, this.buttonBackground = this.options.buttonBackground, this.buttonHoverBackground = this.options.buttonHoverBackground, this.buttonSecondaryForeground = this.options.buttonSecondaryForeground, this.buttonSecondaryBackground = this.options.buttonSecondaryBackground, this.buttonSecondaryHoverBackground = this.options.buttonSecondaryHoverBackground, this.buttonBorder = this.options.buttonBorder, this._element = document.createElement("a"), this._element.classList.add( "monaco-button"), this._element.tabIndex = 0, this._element.setAttribute( "role", "button"), e.appendChild(this._element), this._register(Mr.o .addTarget(this._element)), [he.tw.CLICK, Mr.t.Tap].forEach((e => { this._register((0, he.nm)(this._element, e, (e => { this.enabled ? this._onDidClick.fire(e) : he.zB.stop(e) }))) })), this._register((0, he.nm)(this._element, he.tw.KEY_DOWN, (e => { const t = new ai.y(e); let i = !1; this.enabled && (t.equals(3) || t.equals(10)) ? (this._onDidClick .fire(e), i = !0) : t.equals(9) && (this._element.blur(), i = ! 0), i && he.zB.stop(t, !0) }))), this._register((0, he.nm)(this._element, he.tw.MOUSE_OVER, (e => { this._element.classList.contains("disabled") || this.setHoverBackground() }))), this._register((0, he.nm)(this._element, he.tw.MOUSE_OUT, (e => { this.applyStyles() }))), this.focusTracker = this._register((0, he.go)(this._element)), this._register(this.focusTracker.onDidFocus((() => this.setHoverBackground()))), this._register(this.focusTracker.onDidBlur((() => this.applyStyles()))), this.applyStyles() } get onDidClick() { return this._onDidClick.event } setHoverBackground() { let e; e = this.options.secondary ? this.buttonSecondaryHoverBackground ? this.buttonSecondaryHoverBackground.toString() : null : this.buttonHoverBackground ? this.buttonHoverBackground.toString() : null, e && (this._element.style .backgroundColor = e) } style(e) { this.buttonForeground = e.buttonForeground, this.buttonBackground = e .buttonBackground, this.buttonHoverBackground = e.buttonHoverBackground, this.buttonSecondaryForeground = e.buttonSecondaryForeground, this.buttonSecondaryBackground = e.buttonSecondaryBackground, this.buttonSecondaryHoverBackground = e .buttonSecondaryHoverBackground, this.buttonBorder = e.buttonBorder, this.applyStyles() } applyStyles() { if (this._element) { let e, t; this.options.secondary ? (t = this.buttonSecondaryForeground ? this.buttonSecondaryForeground .toString() : "", e = this.buttonSecondaryBackground ? this.buttonSecondaryBackground .toString() : "") : (t = this.buttonForeground ? this.buttonForeground .toString() : "", e = this.buttonBackground ? this.buttonBackground .toString() : ""); const i = this.buttonBorder ? this.buttonBorder.toString() : ""; this._element.style.color = t, this._element.style.backgroundColor = e, this._element.style.borderWidth = i ? "1px" : "", this._element.style .borderStyle = i ? "solid" : "", this._element.style.borderColor = i } } get element() { return this._element } set label(e) { this._element.classList.add("monaco-text-button"), this.options.supportIcons ? (0, he.mc)(this._element, ...(0, Ys.T)(e)) : this._element.textContent = e, "string" == typeof this.options.title ? this._element.title = this.options.title : this.options.title && (this._element.title = e) } set enabled(e) { e ? (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") } } var ta = i(9162), ia = i(4185), na = {}; na.styleTagTransform = se(), na.setAttributes = ie(), na.insert = ee().bind( null, "head"), na.domAPI = X(), na.insertStyleElement = oe(), Y()(ia.Z, na), ia.Z && ia.Z.locals && ia.Z.locals; const oa = "done", ra = "active", sa = "infinite", aa = "discrete", la = { progressBarBackground: Zo.Il.fromHex("#0E70C0") }; class da extends Le.JT { constructor(e, t) { super(), this.options = t || Object.create(null), (0, Ne.jB)(this.options, la, !1), this.workedVal = 0, this.progressBarBackground = this.options .progressBarBackground, this._register(this.showDelayedScheduler = new Be.pY((() => (0, he.$Z)(this.element)), 0)), this.create(e) } create(e) { this.element = document.createElement("div"), this.element.classList.add( "monaco-progress-container"), this.element.setAttribute("role", "progressbar"), this.element.setAttribute("aria-valuemin", "0"), e.appendChild( this.element), this.bit = document.createElement("div"), this.bit.classList .add("progress-bit"), this.element.appendChild(this.bit), this.applyStyles() } off() { this.bit.style.width = "inherit", this.bit.style.opacity = "1", this.element .classList.remove(ra, sa, aa), this.workedVal = 0, this.totalWork = void 0 } stop() { return this.doDone(!1) } doDone(e) { return this.element.classList.add(oa), this.element.classList.contains( sa) ? (this.bit.style.opacity = "0", e ? setTimeout((() => this.off()), 200) : this.off()) : (this.bit.style.width = "inherit", e ? setTimeout((() => this.off()), 200) : this.off()), this } infinite() { return this.bit.style.width = "2%", this.bit.style.opacity = "1", this.element.classList.remove(aa, oa), this.element.classList.add(ra, sa), this } getContainer() { return this.element } style(e) { this.progressBarBackground = e.progressBarBackground, this.applyStyles() } applyStyles() { if (this.bit) { const e = this.progressBarBackground ? this.progressBarBackground.toString() : ""; this.bit.style.backgroundColor = e } } } var ca = i(4742), ha = i(3257), ua = {}; ua.styleTagTransform = se(), ua.setAttributes = ie(), ua.insert = ee().bind( null, "head"), ua.domAPI = X(), ua.insertStyleElement = oe(), Y()(ha.Z, ua), ha.Z && ha.Z.locals && ha.Z.locals; const ga = {}, pa = new ca.R("quick-input-button-icon-"); function ma(e) { if (!e) return; let t; const i = e.dark.toString(); return ga[i] ? t = ga[i] : (t = pa.nextId(), he.fk(`.${t}`, `background-image: ${he.wY(e.light||e.dark)}`), he.fk( `.vs-dark .${t}, .hc-black .${t}`, `background-image: ${he.wY(e.dark)}`), ga[i] = t), t } var fa = i(7746), _a = i(4299); const ba = he.$; class va extends Le.JT { constructor(e) { super(), this.parent = e, this.onKeyDown = e => he.nm(this.inputBox.inputElement, he.tw.KEY_DOWN, (t => { e(new ai.y(t)) })), this.onMouseDown = e => he.nm(this.inputBox.inputElement, he.tw .MOUSE_DOWN, (t => { e(new Ir.n(t)) })), this.onDidChange = e => this.inputBox.onDidChange(e), this.container = he.R3(this.parent, ba(".quick-input-box")), this.inputBox = this._register( new _a.W(this.container, void 0)) } get value() { return this.inputBox.value } set value(e) { this.inputBox.value = e } select(e = null) { this.inputBox.select(e) } isSelectionAtEnd() { return this.inputBox.isSelectionAtEnd() } get placeholder() { return this.inputBox.inputElement.getAttribute("placeholder") || "" } set placeholder(e) { this.inputBox.setPlaceHolder(e) } get ariaLabel() { return this.inputBox.getAriaLabel() } set ariaLabel(e) { this.inputBox.setAriaLabel(e) } get password() { return "password" === this.inputBox.inputElement.type } set password(e) { this.inputBox.inputElement.type = e ? "password" : "text" } setAttribute(e, t) { this.inputBox.inputElement.setAttribute(e, t) } removeAttribute(e) { this.inputBox.inputElement.removeAttribute(e) } showDecoration(e) { e === li.Z.Ignore ? this.inputBox.hideMessage() : this.inputBox.showMessage({ type: e === li.Z.Info ? 1 : e === li.Z.Warning ? 2 : 3, content: "" }) } stylesForType(e) { return this.inputBox.stylesForType(e === li.Z.Info ? 1 : e === li.Z.Warning ? 2 : 3) } setFocus() { this.inputBox.focus() } layout() { this.inputBox.layout() } style(e) { this.inputBox.style(e) } } var wa = i(4650), Ca = i(3326), ya = i(2298), Sa = {}; Sa.styleTagTransform = se(), Sa.setAttributes = ie(), Sa.insert = ee().bind( null, "head"), Sa.domAPI = X(), Sa.insertStyleElement = oe(), Y()(ya.Z, Sa), ya.Z && ya.Z.locals && ya.Z.locals; const xa = he.$; class ka { constructor(e, t, i) { this.os = t, this.keyElements = new Set, this.options = i || Object.create( null), this.labelBackground = this.options.keybindingLabelBackground, this.labelForeground = this.options.keybindingLabelForeground, this.labelBorder = this.options.keybindingLabelBorder, this.labelBottomBorder = this.options .keybindingLabelBottomBorder, this.labelShadow = this.options.keybindingLabelShadow, this.domNode = he.R3(e, xa(".monaco-keybinding")), this.didEverRender = ! 1, e.appendChild(this.domNode) } get element() { return this.domNode } set(e, t) { this.didEverRender && this.keybinding === e && ka.areSame(this.matches, t) || (this.keybinding = e, this.matches = t, this.render()) } render() { if (this.clear(), this.keybinding) { let [e, t] = this.keybinding.getParts(); e && this.renderPart(this.domNode, e, this.matches ? this.matches.firstPart : null), t && (he.R3(this.domNode, xa( "span.monaco-keybinding-key-chord-separator", void 0, " ")), this.renderPart( this.domNode, t, this.matches ? this.matches.chordPart : null)), this.domNode.title = this.keybinding.getAriaLabel() || "" } else this.options && this.options.renderUnboundKeybindings && this.renderUnbound( this.domNode); this.applyStyles(), this.didEverRender = !0 } clear() { he.PO(this.domNode), this.keyElements.clear() } renderPart(e, t, i) { const n = Di.xo.modifierLabels[this.os]; t.ctrlKey && this.renderKey(e, n.ctrlKey, Boolean(null == i ? void 0 : i.ctrlKey), n.separator), t.shiftKey && this.renderKey(e, n.shiftKey, Boolean(null == i ? void 0 : i.shiftKey), n.separator), t.altKey && this.renderKey(e, n.altKey, Boolean(null == i ? void 0 : i.altKey), n .separator), t.metaKey && this.renderKey(e, n.metaKey, Boolean(null == i ? void 0 : i.metaKey), n.separator); const o = t.keyLabel; o && this.renderKey(e, o, Boolean(null == i ? void 0 : i.keyCode), "") } renderKey(e, t, i, n) { he.R3(e, this.createKeyElement(t, i ? ".highlight" : "")), n && he.R3( e, xa("span.monaco-keybinding-key-separator", void 0, n)) } renderUnbound(e) { he.R3(e, this.createKeyElement((0, vi.N)("unbound", "Unbound"))) } createKeyElement(e, t = "") { const i = xa("span.monaco-keybinding-key" + t, void 0, e); return this.keyElements.add(i), i } style(e) { this.labelBackground = e.keybindingLabelBackground, this.labelForeground = e.keybindingLabelForeground, this.labelBorder = e.keybindingLabelBorder, this.labelBottomBorder = e.keybindingLabelBottomBorder, this.labelShadow = e.keybindingLabelShadow, this.applyStyles() } applyStyles() { var e; if (this.element) { for (const t of this.keyElements) this.labelBackground && (t.style.backgroundColor = null === (e = this.labelBackground) || void 0 === e ? void 0 : e.toString() ), this.labelBorder && (t.style.borderColor = this.labelBorder.toString()), this.labelBottomBorder && (t.style.borderBottomColor = this.labelBottomBorder .toString()), this.labelShadow && (t.style.boxShadow = `inset 0 -1px 0 ${this.labelShadow}`); this.labelForeground && (this.element.style.color = this.labelForeground .toString()) } } static areSame(e, t) { return e === t || !e && !t || !!e && !!t && (0, Ne.fS)(e.firstPart, t.firstPart) && (0, Ne.fS)(e.chordPart, t.chordPart) } } const La = new Be.Ue((() => { const e = new Intl.Collator(void 0, { numeric: !0, sensitivity: "base" }); return { collator: e, collatorIsNumeric: e.resolvedOptions().numeric } })); var Na = i(9898), Da = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }; const Ea = he.$; class Ia { constructor(e) { this.hidden = !1, this._onChecked = new z.Q5, this.onChecked = this._onChecked .event, Object.assign(this, e) } get checked() { return !!this._checked } set checked(e) { e !== this._checked && (this._checked = e, this._onChecked.fire(e)) } dispose() { this._onChecked.dispose() } } class Ta { get templateId() { return Ta.ID } renderTemplate(e) { const t = Object.create(null); t.toDisposeElement = [], t.toDisposeTemplate = [], t.entry = he.R3(e, Ea(".quick-input-list-entry")); const i = he.R3(t.entry, Ea("label.quick-input-list-label")); t.toDisposeTemplate.push(he.mu(i, he.tw.CLICK, (e => { t.checkbox.offsetParent || e.preventDefault() }))), t.checkbox = he.R3(i, Ea("input.quick-input-list-checkbox")), t .checkbox.type = "checkbox", t.toDisposeTemplate.push(he.mu(t.checkbox, he.tw.CHANGE, (e => { t.element.checked = t.checkbox.checked }))); const n = he.R3(i, Ea(".quick-input-list-rows")), o = he.R3(n, Ea(".quick-input-list-row")), r = he.R3(n, Ea(".quick-input-list-row")); t.label = new Ca.g(o, { supportHighlights: !0, supportDescriptionHighlights: !0, supportIcons: !0 }); const s = he.R3(o, Ea(".quick-input-list-entry-keybinding")); t.keybinding = new ka(s, ze.OS); const a = he.R3(r, Ea(".quick-input-list-label-meta")); return t.detail = new wa.q(a, !0), t.separator = he.R3(t.entry, Ea( ".quick-input-list-separator")), t.actionBar = new un.o(t.entry), t.actionBar .domNode.classList.add("quick-input-list-entry-action-bar"), t.toDisposeTemplate .push(t.actionBar), t } renderElement(e, t, i) { i.toDisposeElement = (0, Le.B9)(i.toDisposeElement), i.element = e, i.checkbox .checked = e.checked, i.toDisposeElement.push(e.onChecked((e => i.checkbox .checked = e))); const { labelHighlights: n, descriptionHighlights: o, detailHighlights: r } = e, s = Object.create(null); s.matches = n || [], s.descriptionTitle = e.saneDescription, s.descriptionMatches = o || [], s.extraClasses = e.item.iconClasses, s.italic = e.item.italic, s.strikethrough = e.item.strikethrough, i.label.setLabel(e.saneLabel, e.saneDescription, s), i.keybinding.set(e.item.keybinding), i.detail .set(e.saneDetail, r), e.separator && e.separator.label ? (i.separator .textContent = e.separator.label, i.separator.style.display = "") : i.separator.style.display = "none", i.entry.classList.toggle( "quick-input-list-separator-border", !!e.separator), i.actionBar.clear(); const a = e.item.buttons; a && a.length ? (i.actionBar.push(a.map(((t, i) => { let n = t.iconClass || (t.iconPath ? ma(t.iconPath) : void 0); t.alwaysVisible && (n = n ? `${n} always-visible` : "always-visible"); const o = new pn.aU(`id-${i}`, "", n, !0, (() => { return i = this, n = void 0, r = function*() { e.fireButtonTriggered({ button: t, item: e.item }) }, new((o = void 0) || (o = Promise))((function(e, t) { function s(e) { try { l(r.next(e)) } catch (e) { t(e) } } function a(e) { try { l(r.throw(e)) } catch (e) { t(e) } } function l(t) { var i; t.done ? e(t.value) : (i = t.value, i instanceof o ? i : new o((function(e) { e(i) }))).then(s, a) } l((r = r.apply(i, n || [])).next()) })); var i, n, o, r })); return o.tooltip = t.tooltip || "", o })), { icon: !0, label: !1 }), i.entry.classList.add("has-actions")) : i.entry.classList.remove( "has-actions") } disposeElement(e, t, i) { i.toDisposeElement = (0, Le.B9)(i.toDisposeElement) } disposeTemplate(e) { e.toDisposeElement = (0, Le.B9)(e.toDisposeElement), e.toDisposeTemplate = (0, Le.B9)(e.toDisposeTemplate) } } Ta.ID = "listelement"; class Ma { getHeight(e) { return e.saneDetail ? 44 : 22 } getTemplateId(e) { return Ta.ID } } var Aa; ! function(e) { e[e.First = 1] = "First", e[e.Second = 2] = "Second", e[e.Last = 3] = "Last", e[e.Next = 4] = "Next", e[e.Previous = 5] = "Previous", e[e.NextPage = 6] = "NextPage", e[e.PreviousPage = 7] = "PreviousPage" }(Aa || (Aa = {})); class Ra { constructor(e, t, i) { this.parent = e, this.inputElements = [], this.elements = [], this.elementsToIndexes = new Map, this.matchOnDescription = !1, this.matchOnDetail = !1, this.matchOnLabel = ! 0, this.matchOnMeta = !0, this.sortByLabel = !0, this._onChangedAllVisibleChecked = new z.Q5, this.onChangedAllVisibleChecked = this._onChangedAllVisibleChecked .event, this._onChangedCheckedCount = new z.Q5, this.onChangedCheckedCount = this._onChangedCheckedCount.event, this._onChangedVisibleCount = new z .Q5, this.onChangedVisibleCount = this._onChangedVisibleCount.event, this._onChangedCheckedElements = new z.Q5, this.onChangedCheckedElements = this._onChangedCheckedElements.event, this._onButtonTriggered = new z .Q5, this.onButtonTriggered = this._onButtonTriggered.event, this._onKeyDown = new z.Q5, this.onKeyDown = this._onKeyDown.event, this._onLeave = new z .Q5, this.onLeave = this._onLeave.event, this._fireCheckedEvents = !0, this.elementDisposables = [], this.disposables = [], this.id = t, this.container = he.R3(this.parent, Ea(".quick-input-list")); const n = new Ma, o = new Oa; this.list = i.createList("QuickInput", this.container, n, [new Ta], { identityProvider: { getId: e => e.saneLabel }, setRowLineHeight: !1, multipleSelectionSupport: !1, horizontalScrolling: !1, accessibilityProvider: o }), this.list.getHTMLElement().id = t, this.disposables.push(this.list), this.disposables.push(this.list.onKeyDown((e => { const t = new ai.y(e); switch (t.keyCode) { case 10: this.toggleCheckbox(); break; case 31: (ze.dz ? e.metaKey : e.ctrlKey) && this.list.setFocus((0, St.w6) (this.list.length)); break; case 16: const t = this.list.getFocus(); 1 === t.length && 0 === t[0] && this._onLeave.fire(); break; case 18: const i = this.list.getFocus(); 1 === i.length && i[0] === this.list.length - 1 && this._onLeave .fire() } this._onKeyDown.fire(t) }))), this.disposables.push(this.list.onMouseDown((e => { 2 !== e.browserEvent.button && e.browserEvent.preventDefault() }))), this.disposables.push(he.nm(this.container, he.tw.CLICK, (e => { (e.x || e.y) && this._onLeave.fire() }))), this.disposables.push(this.list.onMouseMiddleClick((e => { this._onLeave.fire() }))), this.disposables.push(this.list.onContextMenu((e => { "number" == typeof e.index && (e.browserEvent.preventDefault(), this.list.setSelection([e.index])) }))), this.disposables.push(this._onChangedAllVisibleChecked, this._onChangedCheckedCount, this._onChangedVisibleCount, this._onChangedCheckedElements, this._onButtonTriggered, this._onLeave, this._onKeyDown) } get onDidChangeFocus() { return z.ju.map(this.list.onDidChangeFocus, (e => e.elements.map((e => e.item)))) } get onDidChangeSelection() { return z.ju.map(this.list.onDidChangeSelection, (e => ({ items: e.elements.map((e => e.item)), event: e.browserEvent }))) } getAllVisibleChecked() { return this.allVisibleChecked(this.elements, !1) } allVisibleChecked(e, t = !0) { for (let i = 0, n = e.length; i < n; i++) { const n = e[i]; if (!n.hidden) { if (!n.checked) return !1; t = !0 } } return t } getCheckedCount() { let e = 0; const t = this.elements; for (let i = 0, n = t.length; i < n; i++) t[i].checked && e++; return e } getVisibleCount() { let e = 0; const t = this.elements; for (let i = 0, n = t.length; i < n; i++) t[i].hidden || e++; return e } setAllVisibleChecked(e) { try { this._fireCheckedEvents = !1, this.elements.forEach((t => { t.hidden || (t.checked = e) })) } finally { this._fireCheckedEvents = !0, this.fireCheckedEvents() } } setElements(e) { this.elementDisposables = (0, Le.B9)(this.elementDisposables); const t = e => this.fireButtonTriggered(e); this.inputElements = e, this.elements = e.reduce(((i, n, o) => { var r, s, a; if ("separator" !== n.type) { const l = o && e[o - 1], d = n.label && n.label.replace(/\r?\n/g, " "), c = n.meta && n.meta.replace(/\r?\n/g, " "), h = n.description && n.description.replace(/\r?\n/g, " "), u = n.detail && n.detail.replace(/\r?\n/g, " "), g = n.ariaLabel || [d, h, u].map((e => (0, vn.JL)(e))).filter((e => !!e)).join(", "); i.push(new Ia({ index: o, item: n, saneLabel: d, saneMeta: c, saneAriaLabel: g, saneDescription: h, saneDetail: u, labelHighlights: null === (r = n.highlights) || void 0 === r ? void 0 : r.label, descriptionHighlights: null === (s = n.highlights) || void 0 === s ? void 0 : s.description, detailHighlights: null === (a = n.highlights) || void 0 === a ? void 0 : a.detail, checked: !1, separator: l && "separator" === l.type ? l : void 0, fireButtonTriggered: t })) } return i }), []), this.elementDisposables.push(...this.elements), this.elementDisposables .push(...this.elements.map((e => e.onChecked((() => this.fireCheckedEvents()))))), this.elementsToIndexes = this.elements.reduce(((e, t, i) => (e.set(t.item, i), e)), new Map), this.list.splice(0, this.list.length), this.list.splice( 0, this.list.length, this.elements), this._onChangedVisibleCount.fire( this.elements.length) } getFocusedElements() { return this.list.getFocusedElements().map((e => e.item)) } setFocusedElements(e) { if (this.list.setFocus(e.filter((e => this.elementsToIndexes.has(e))).map( (e => this.elementsToIndexes.get(e)))), e.length > 0) { const e = this.list.getFocus()[0]; "number" == typeof e && this.list.reveal(e) } } getActiveDescendant() { return this.list.getHTMLElement().getAttribute("aria-activedescendant") } setSelectedElements(e) { this.list.setSelection(e.filter((e => this.elementsToIndexes.has(e))).map( (e => this.elementsToIndexes.get(e)))) } getCheckedElements() { return this.elements.filter((e => e.checked)).map((e => e.item)) } setCheckedElements(e) { try { this._fireCheckedEvents = !1; const t = new Set; for (const i of e) t.add(i); for (const e of this.elements) e.checked = t.has(e.item) } finally { this._fireCheckedEvents = !0, this.fireCheckedEvents() } } set enabled(e) { this.list.getHTMLElement().style.pointerEvents = e ? "" : "none" } focus(e) { if (!this.list.length) return; switch (e === Aa.Next && this.list.getFocus()[0] === this.list.length - 1 && (e = Aa.First), e === Aa.Previous && 0 === this.list.getFocus()[ 0] && (e = Aa.Last), e === Aa.Second && this.list.length < 2 && (e = Aa.First), e) { case Aa.First: this.list.focusFirst(); break; case Aa.Second: this.list.focusNth(1); break; case Aa.Last: this.list.focusLast(); break; case Aa.Next: this.list.focusNext(); break; case Aa.Previous: this.list.focusPrevious(); break; case Aa.NextPage: this.list.focusNextPage(); break; case Aa.PreviousPage: this.list.focusPreviousPage() } const t = this.list.getFocus()[0]; "number" == typeof t && this.list.reveal(t) } clearFocus() { this.list.setFocus([]) } domFocus() { this.list.domFocus() } layout(e) { this.list.getHTMLElement().style.maxHeight = e ? `calc(${44*Math.floor(e/44)}px)` : "", this.list.layout() } filter(e) { if (!(this.sortByLabel || this.matchOnLabel || this.matchOnDescription || this.matchOnDetail)) return this.list.layout(), !1; if ((e = e.trim()) && (this.matchOnLabel || this.matchOnDescription || this.matchOnDetail)) { let t; this.elements.forEach((i => { const n = this.matchOnLabel ? (0, Ve.f6)((0, Hr.Gt)(e, (0, Hr.Ho) (i.saneLabel))) : void 0, o = this.matchOnDescription ? (0, Ve.f6)((0, Hr.Gt)(e, (0, Hr.Ho) (i.saneDescription || ""))) : void 0, r = this.matchOnDetail ? (0, Ve.f6)((0, Hr.Gt)(e, (0, Hr.Ho)(i.saneDetail || ""))) : void 0, s = this.matchOnMeta ? (0, Ve.f6)((0, Hr.Gt)(e, (0, Hr.Ho)(i.saneMeta || ""))) : void 0; if (n || o || r || s ? (i.labelHighlights = n, i.descriptionHighlights = o, i.detailHighlights = r, i.hidden = !1) : (i.labelHighlights = void 0, i.descriptionHighlights = void 0, i.detailHighlights = void 0, i.hidden = !i.item.alwaysShow), i.separator = void 0, ! this.sortByLabel) { const e = i.index && this.inputElements[i.index - 1]; t = e && "separator" === e.type ? e : t, t && !i.hidden && (i.separator = t, t = void 0) } })) } else this.elements.forEach((e => { e.labelHighlights = void 0, e.descriptionHighlights = void 0, e.detailHighlights = void 0, e.hidden = !1; const t = e.index && this.inputElements[e.index - 1]; e.separator = t && "separator" === t.type ? t : void 0 })); const t = this.elements.filter((e => !e.hidden)); if (this.sortByLabel && e) { const i = e.toLowerCase(); t.sort(((e, t) => function(e, t, i) { const n = e.labelHighlights || [], o = t.labelHighlights || []; return n.length && !o.length ? -1 : !n.length && o.length ? 1 : 0 === n.length && 0 === o.length ? 0 : function(e, t, i) { const n = e.toLowerCase(), o = t.toLowerCase(), r = function(e, t, i) { const n = e.toLowerCase(), o = t.toLowerCase(), r = n.startsWith(i), s = o.startsWith(i); if (r !== s) return r ? -1 : 1; if (r && s) { if (n.length < o.length) return -1; if (n.length > o.length) return 1 } return 0 }(e, t, i); if (r) return r; const s = n.endsWith(i); if (s !== o.endsWith(i)) return s ? -1 : 1; const a = function(e, t, i = !1) { const n = e || "", o = t || "", r = La.value.collator.compare(n, o); return La.value.collatorIsNumeric && 0 === r && n !== o ? n < o ? -1 : 1 : r }(n, o); return 0 !== a ? a : n.localeCompare(o) }(e.saneLabel, t.saneLabel, i) }(e, t, i))) } return this.elementsToIndexes = t.reduce(((e, t, i) => (e.set(t.item, i), e)), new Map), this.list.splice(0, this.list.length, t), this.list .setFocus([]), this.list.layout(), this._onChangedAllVisibleChecked.fire( this.getAllVisibleChecked()), this._onChangedVisibleCount.fire(t.length), ! 0 } toggleCheckbox() { try { this._fireCheckedEvents = !1; const e = this.list.getFocusedElements(), t = this.allVisibleChecked(e); for (const i of e) i.checked = !t } finally { this._fireCheckedEvents = !0, this.fireCheckedEvents() } } display(e) { this.container.style.display = e ? "" : "none" } isDisplayed() { return "none" !== this.container.style.display } dispose() { this.elementDisposables = (0, Le.B9)(this.elementDisposables), this.disposables = (0, Le.B9)(this.disposables) } fireCheckedEvents() { this._fireCheckedEvents && (this._onChangedAllVisibleChecked.fire(this .getAllVisibleChecked()), this._onChangedCheckedCount.fire(this.getCheckedCount()), this._onChangedCheckedElements.fire(this.getCheckedElements())) } fireButtonTriggered(e) { this._onButtonTriggered.fire(e) } style(e) { this.list.style(e) } } Da([Na.H], Ra.prototype, "onDidChangeFocus", null), Da([Na.H], Ra.prototype, "onDidChangeSelection", null); class Oa { getWidgetAriaLabel() { return (0, vi.N)("quickInput", "Quick Input") } getAriaLabel(e) { return e.saneAriaLabel } getWidgetRole() { return "listbox" } getRole() { return "option" } } var Pa = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; const Fa = he.$, Ba = { iconClass: (0, vn.CM)("quick-input-back", vn.lA.arrowLeft).classNames, tooltip: (0, vi.N)("quickInput.back", "Back"), handle: -1 }; class Wa extends Le.JT { constructor(e) { super(), this.ui = e, this.visible = !1, this._enabled = !0, this._busy = ! 1, this._ignoreFocusOut = !1, this._buttons = [], this.noValidationMessage = Wa.noPromptMessage, this._severity = li.Z.Ignore, this.buttonsUpdated = ! 1, this.onDidTriggerButtonEmitter = this._register(new z.Q5), this.onDidHideEmitter = this._register(new z.Q5), this.onDisposeEmitter = this._register(new z .Q5), this.visibleDisposables = this._register(new Le.SL), this.onDidHide = this.onDidHideEmitter.event } get title() { return this._title } set title(e) { this._title = e, this.update() } get description() { return this._description } set description(e) { this._description = e, this.update() } get step() { return this._steps } set step(e) { this._steps = e, this.update() } get totalSteps() { return this._totalSteps } set totalSteps(e) { this._totalSteps = e, this.update() } get enabled() { return this._enabled } set enabled(e) { this._enabled = e, this.update() } get contextKey() { return this._contextKey } set contextKey(e) { this._contextKey = e, this.update() } get busy() { return this._busy } set busy(e) { this._busy = e, this.update() } get ignoreFocusOut() { return this._ignoreFocusOut } set ignoreFocusOut(e) { const t = this._ignoreFocusOut !== e && !ze.gn; this._ignoreFocusOut = e && !ze.gn, t && this.update() } get buttons() { return this._buttons } set buttons(e) { this._buttons = e, this.buttonsUpdated = !0, this.update() } get validationMessage() { return this._validationMessage } set validationMessage(e) { this._validationMessage = e, this.update() } get severity() { return this._severity } set severity(e) { this._severity = e, this.update() } show() { this.visible || (this.visibleDisposables.add(this.ui.onDidTriggerButton( (e => { -1 !== this.buttons.indexOf(e) && this.onDidTriggerButtonEmitter .fire(e) }))), this.ui.show(this), this.visible = !0, this._lastValidationMessage = void 0, this._lastSeverity = void 0, this.buttons.length && (this.buttonsUpdated = ! 0), this.update()) } hide() { this.visible && this.ui.hide() } didHide(e = fa.Jq.Other) { this.visible = !1, this.visibleDisposables.clear(), this.onDidHideEmitter .fire({ reason: e }) } update() { if (!this.visible) return; const e = this.getTitle(); e && this.ui.title.textContent !== e ? this.ui.title.textContent = e : e || " " === this.ui.title.innerHTML || (this.ui.title.innerText = " "); const t = this.getDescription(); if (this.ui.description1.textContent !== t && (this.ui.description1.textContent = t), this.ui.description2.textContent !== t && (this.ui.description2 .textContent = t), this.busy && !this.busyDelay && (this.busyDelay = new Be._F, 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 e = this.buttons.filter((e => e === Ba)); this.ui.leftActionBar.push(e.map(((e, t) => { const i = new pn.aU(`id-${t}`, "", e.iconClass || ma(e.iconPath), ! 0, (() => Pa(this, void 0, void 0, (function*() { this.onDidTriggerButtonEmitter.fire(e) })))); return i.tooltip = e.tooltip || "", i })), { icon: !0, label: !1 }), this.ui.rightActionBar.clear(); const t = this.buttons.filter((e => e !== Ba)); this.ui.rightActionBar.push(t.map(((e, t) => { const i = new pn.aU(`id-${t}`, "", e.iconClass || ma(e.iconPath), ! 0, (() => Pa(this, void 0, void 0, (function*() { this.onDidTriggerButtonEmitter.fire(e) })))); return i.tooltip = e.tooltip || "", i })), { icon: !0, label: !1 }) } this.ui.ignoreFocusOut = this.ignoreFocusOut, this.ui.setEnabled(this .enabled), this.ui.setContextKey(this.contextKey); const i = this.validationMessage || this.noValidationMessage; this._lastValidationMessage !== i && (this._lastValidationMessage = i, he.mc(this.ui.message, ...(0, Ys.T)(i))), 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, vi.N)("quickInput.steps", "{0}/{1}", this.step, this.totalSteps) : this.step ? String(this.step) : "" } showMessageDecoration(e) { if (this.ui.inputBox.showDecoration(e), e !== li.Z.Ignore) { const t = this.ui.inputBox.stylesForType(e); this.ui.message.style.color = t.foreground ? `${t.foreground}` : "", this.ui.message.style.backgroundColor = t.background ? `${t.background}` : "", this.ui.message.style.border = t.border ? `1px solid ${t.border}` : "", this.ui.message.style.paddingBottom = "4px" } else this.ui.message.style.color = "", this.ui.message.style.backgroundColor = "", this.ui.message.style.border = "", this.ui.message.style.paddingBottom = "" } dispose() { this.hide(), this.onDisposeEmitter.fire(), super.dispose() } } Wa.noPromptMessage = (0, vi.N)("inputModeEntry", "Press 'Enter' to confirm your input or 'Escape' to cancel"); class za extends Wa { constructor() { super(...arguments), this._value = "", this.onDidChangeValueEmitter = this._register(new z.Q5), this.onWillAcceptEmitter = this._register( new z.Q5), this.onDidAcceptEmitter = this._register(new z.Q5), this.onDidCustomEmitter = this._register(new z.Q5), this._items = [], this.itemsUpdated = !1, this._canSelectMany = !1, this._canAcceptInBackground = !1, this._matchOnDescription = ! 1, this._matchOnDetail = !1, this._matchOnLabel = !0, this._sortByLabel = ! 0, this._autoFocusOnList = !0, this._itemActivation = this.ui.isScreenReaderOptimized() ? fa.jG.NONE : fa.jG.FIRST, this._activeItems = [], this.activeItemsUpdated = ! 1, this.activeItemsToConfirm = [], this.onDidChangeActiveEmitter = this._register(new z.Q5), this._selectedItems = [], this.selectedItemsUpdated = ! 1, this.selectedItemsToConfirm = [], this.onDidChangeSelectionEmitter = this._register(new z.Q5), this.onDidTriggerItemButtonEmitter = this._register( new z.Q5), this.valueSelectionUpdated = !0, this._ok = "default", this._customButton = !1, this.filterValue = e => e, 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 } get quickNavigate() { return this._quickNavigate } set quickNavigate(e) { this._quickNavigate = e, this.update() } get value() { return this._value } set value(e) { this._value !== e && (this._value = e || "", this.update(), this.onDidChangeValueEmitter .fire(this._value)) } set ariaLabel(e) { this._ariaLabel = e, this.update() } get ariaLabel() { return this._ariaLabel } get placeholder() { return this._placeholder } set placeholder(e) { this._placeholder = e, this.update() } get items() { return this._items } set items(e) { this._items = e, this.itemsUpdated = !0, this.update() } get canSelectMany() { return this._canSelectMany } set canSelectMany(e) { this._canSelectMany = e, this.update() } get canAcceptInBackground() { return this._canAcceptInBackground } set canAcceptInBackground(e) { this._canAcceptInBackground = e } get matchOnDescription() { return this._matchOnDescription } set matchOnDescription(e) { this._matchOnDescription = e, this.update() } get matchOnDetail() { return this._matchOnDetail } set matchOnDetail(e) { this._matchOnDetail = e, this.update() } get matchOnLabel() { return this._matchOnLabel } set matchOnLabel(e) { this._matchOnLabel = e, this.update() } get sortByLabel() { return this._sortByLabel } set sortByLabel(e) { this._sortByLabel = e, this.update() } get autoFocusOnList() { return this._autoFocusOnList } set autoFocusOnList(e) { this._autoFocusOnList = e, this.update() } get itemActivation() { return this._itemActivation } set itemActivation(e) { this._itemActivation = e } get activeItems() { return this._activeItems } set activeItems(e) { this._activeItems = e, this.activeItemsUpdated = !0, this.update() } get selectedItems() { return this._selectedItems } set selectedItems(e) { this._selectedItems = e, this.selectedItemsUpdated = !0, this.update() } get keyMods() { return this._quickNavigate ? fa.X5 : this.ui.keyMods } set valueSelection(e) { this._valueSelection = e, this.valueSelectionUpdated = !0, this.update() } get customButton() { return this._customButton } set customButton(e) { this._customButton = e, this.update() } get customLabel() { return this._customButtonLabel } set customLabel(e) { this._customButtonLabel = e, this.update() } get customHover() { return this._customButtonHover } set customHover(e) { this._customButtonHover = e, this.update() } get ok() { return this._ok } set ok(e) { this._ok = e, this.update() } get hideInput() { return !!this._hideInput } set hideInput(e) { this._hideInput = e, this.update() } trySelectFirst() { this.autoFocusOnList && (this.canSelectMany || this.ui.list.focus(Aa.First)) } show() { this.visible || (this.visibleDisposables.add(this.ui.inputBox.onDidChange( (e => { e !== this.value && (this._value = e, this.ui.list.filter(this.filterValue( this.ui.inputBox.value)) && this.trySelectFirst(), this.onDidChangeValueEmitter .fire(e)) }))), this.visibleDisposables.add(this.ui.inputBox.onMouseDown((e => { this.autoFocusOnList || this.ui.list.clearFocus() }))), this.visibleDisposables.add((this._hideInput ? this.ui.list : this.ui.inputBox).onKeyDown((e => { switch (e.keyCode) { case 18: this.ui.list.focus(Aa.Next), this.canSelectMany && this.ui.list .domFocus(), he.zB.stop(e, !0); break; case 16: this.ui.list.getFocusedElements().length ? this.ui.list.focus( Aa.Previous) : this.ui.list.focus(Aa.Last), this.canSelectMany && this.ui.list.domFocus(), he.zB.stop(e, !0); break; case 12: this.ui.list.focus(Aa.NextPage), this.canSelectMany && this.ui .list.domFocus(), he.zB.stop(e, !0); break; case 11: this.ui.list.focus(Aa.PreviousPage), this.canSelectMany && this.ui.list.domFocus(), he.zB.stop(e, !0); break; case 17: if (!this._canAcceptInBackground) return; if (!this.ui.inputBox.isSelectionAtEnd()) return; this.activeItems[0] && (this._selectedItems = [this.activeItems[ 0]], this.onDidChangeSelectionEmitter.fire(this.selectedItems), this.handleAccept(!0)); break; case 14: !e.ctrlKey && !e.metaKey || e.shiftKey || e.altKey || (this.ui .list.focus(Aa.First), he.zB.stop(e, !0)); break; case 13: !e.ctrlKey && !e.metaKey || e.shiftKey || e.altKey || (this.ui .list.focus(Aa.Last), he.zB.stop(e, !0)) } }))), this.visibleDisposables.add(this.ui.onDidAccept((() => { !this.canSelectMany && 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.ui.list.onDidChangeFocus((e => { this.activeItemsUpdated || this.activeItemsToConfirm !== this._activeItems && (0, St.fS)(e, this._activeItems, ((e, t) => e === t)) || (this._activeItems = e, this.onDidChangeActiveEmitter.fire(e)) }))), this.visibleDisposables.add(this.ui.list.onDidChangeSelection( (({ items: e, event: t }) => { this.canSelectMany ? e.length && this.ui.list.setSelectedElements( []) : this.selectedItemsToConfirm !== this._selectedItems && ( 0, St.fS)(e, this._selectedItems, ((e, t) => e === t)) || ( this._selectedItems = e, this.onDidChangeSelectionEmitter.fire( e), e.length && this.handleAccept(t instanceof MouseEvent && 1 === t.button)) }))), this.visibleDisposables.add(this.ui.list.onChangedCheckedElements( (e => { this.canSelectMany && (this.selectedItemsToConfirm !== this._selectedItems && (0, St.fS)(e, this._selectedItems, ((e, t) => e === t)) || ( this._selectedItems = e, this.onDidChangeSelectionEmitter.fire( e))) }))), this.visibleDisposables.add(this.ui.list.onButtonTriggered((e => this.onDidTriggerItemButtonEmitter.fire(e)))), this.visibleDisposables .add(this.registerQuickNavigation()), this.valueSelectionUpdated = ! 0), super.show() } handleAccept(e) { let t = !1; this.onWillAcceptEmitter.fire({ veto: () => t = !0 }), t || this.onDidAcceptEmitter.fire({ inBackground: e }) } registerQuickNavigation() { return he.nm(this.ui.container, he.tw.KEY_UP, (e => { if (this.canSelectMany || !this._quickNavigate) return; const t = new ai.y(e), i = t.keyCode; this._quickNavigate.keybindings.some((e => { const [n, o] = e.getParts(); return !(o || (n.shiftKey && 4 === i ? t.ctrlKey || t.altKey || t.metaKey : !(n.altKey && 6 === i || n.ctrlKey && 5 === i || n.metaKey && 57 === i))) })) && (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 e = !!this._hideInput && this._items.length > 0; this.ui.container.classList.toggle("hidden-input", e && !this.description); const t = { title: !!this.title || !!this.step || !!this.buttons.length, description: !!this.description, checkAll: this.canSelectMany && !this._hideCheckAll, checkBox: this.canSelectMany, inputBox: !e, progressBar: !e, visibleCount: !0, count: this.canSelectMany, ok: "default" === this.ok ? this.canSelectMany : this.ok, list: !0, message: !!this.validationMessage, customButton: this.customButton }; this.ui.setVisibilities(t), 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 || ""); const i = this.ariaLabel || this.placeholder || za.DEFAULT_ARIA_LABEL; if (this.ui.inputBox.ariaLabel !== i && (this.ui.inputBox.ariaLabel = i), this.ui.list.matchOnDescription = this.matchOnDescription, this.ui .list.matchOnDetail = this.matchOnDetail, this.ui.list.matchOnLabel = this.matchOnLabel, this.ui.list.sortByLabel = this.sortByLabel, this.itemsUpdated ) switch (this.itemsUpdated = !1, this.ui.list.setElements(this.items), this.ui.list.filter(this.filterValue(this.ui.inputBox.value)), this.ui .checkAll.checked = this.ui.list.getAllVisibleChecked(), this.ui.visibleCount .setCount(this.ui.list.getVisibleCount()), this.ui.count.setCount( this.ui.list.getCheckedCount()), this._itemActivation) { case fa.jG.NONE: this._itemActivation = fa.jG.FIRST; break; case fa.jG.SECOND: this.ui.list.focus(Aa.Second), this._itemActivation = fa.jG.FIRST; break; case fa.jG.LAST: this.ui.list.focus(Aa.Last), this._itemActivation = fa.jG.FIRST; break; default: this.trySelectFirst() } 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 || "", this.ui.setComboboxAccessibility(!0), t.inputBox || (this.ui.list .domFocus(), this.canSelectMany && this.ui.list.focus(Aa.First)) } } za.DEFAULT_ARIA_LABEL = (0, vi.N)("quickInputBox.ariaLabel", "Type to narrow down results."); class Va extends Le.JT { constructor(e) { super(), this.options = e, this.comboboxAccessibility = !1, this.enabled = ! 0, this.onDidAcceptEmitter = this._register(new z.Q5), this.onDidCustomEmitter = this._register(new z.Q5), this.onDidTriggerButtonEmitter = this._register( new z.Q5), this.keyMods = { ctrlCmd: !1, alt: !1 }, this.controller = null, this.onShowEmitter = this._register(new z .Q5), this.onShow = this.onShowEmitter.event, this.onHideEmitter = this._register(new z.Q5), this.onHide = this.onHideEmitter.event, this.idPrefix = e.idPrefix, this.parentElement = e.container, this.styles = e.styles, this.registerKeyModsListeners() } registerKeyModsListeners() { const e = e => { this.keyMods.ctrlCmd = e.ctrlKey || e.metaKey, this.keyMods.alt = e .altKey }; this._register(he.nm(window, he.tw.KEY_DOWN, e, !0)), this._register( he.nm(window, he.tw.KEY_UP, e, !0)), this._register(he.nm(window, he.tw.MOUSE_DOWN, e, !0)) } getUI() { if (this.ui) return this.ui; const e = he.R3(this.parentElement, Fa( ".quick-input-widget.show-file-icons")); e.tabIndex = -1, e.style.display = "none"; const t = he.dS(e), i = he.R3(e, Fa(".quick-input-titlebar")), n = this._register(new un.o(i)); n.domNode.classList.add("quick-input-left-action-bar"); const o = he.R3(i, Fa(".quick-input-title")), r = this._register(new un.o(i)); r.domNode.classList.add("quick-input-right-action-bar"); const s = he.R3(e, Fa(".quick-input-description")), a = he.R3(e, Fa(".quick-input-header")), l = he.R3(a, Fa("input.quick-input-check-all")); l.type = "checkbox", this._register(he.mu(l, he.tw.CHANGE, (e => { const t = l.checked; y.setAllVisibleChecked(t) }))), this._register(he.nm(l, he.tw.CLICK, (e => { (e.x || e.y) && u.setFocus() }))); const d = he.R3(a, Fa(".quick-input-description")), c = he.R3(a, Fa(".quick-input-and-message")), h = he.R3(c, Fa(".quick-input-filter")), u = this._register(new va(h)); u.setAttribute("aria-describedby", `${this.idPrefix}message`); const g = he.R3(h, Fa(".quick-input-visible-count")); g.setAttribute("aria-live", "polite"), g.setAttribute("aria-atomic", "true"); const p = new ta.Z(g, { countFormat: (0, vi.N)({ key: "quickInput.visibleCount", comment: [ "This tells the user how many items are shown in a list of items to select from. The items can be anything. Currently not visible, but read by screen readers." ] }, "{0} Results") }), m = he.R3(h, Fa(".quick-input-count")); m.setAttribute("aria-live", "polite"); const f = new ta.Z(m, { countFormat: (0, vi.N)({ key: "quickInput.countSelected", comment: [ "This tells the user how many items are selected in a list of items to select from. The items can be anything." ] }, "{0} Selected") }), _ = he.R3(a, Fa(".quick-input-action")), b = new ea(_); b.label = (0, vi.N)("ok", "OK"), this._register(b.onDidClick((e => { this.onDidAcceptEmitter.fire() }))); const v = he.R3(a, Fa(".quick-input-action")), w = new ea(v); w.label = (0, vi.N)("custom", "Custom"), this._register(w.onDidClick( (e => { this.onDidCustomEmitter.fire() }))); const C = he.R3(c, Fa(`#${this.idPrefix}message.quick-input-message`)), y = this._register(new Ra(e, this.idPrefix + "list", this.options)); this._register(y.onChangedAllVisibleChecked((e => { l.checked = e }))), this._register(y.onChangedVisibleCount((e => { p.setCount(e) }))), this._register(y.onChangedCheckedCount((e => { f.setCount(e) }))), this._register(y.onLeave((() => { setTimeout((() => { u.setFocus(), this.controller instanceof za && this.controller .canSelectMany && y.clearFocus() }), 0) }))), this._register(y.onDidChangeFocus((() => { this.comboboxAccessibility && this.getUI().inputBox.setAttribute( "aria-activedescendant", this.getUI().list.getActiveDescendant() || "") }))); const S = new da(e); S.getContainer().classList.add("quick-input-progress"); const x = he.go(e); return this._register(x), this._register(he.nm(e, he.tw.FOCUS, (e => { this.previousFocusElement = e.relatedTarget instanceof HTMLElement ? e.relatedTarget : void 0 }), !0)), this._register(x.onDidBlur((() => { this.getUI().ignoreFocusOut || this.options.ignoreFocusOut() || this.hide(fa.Jq.Blur), this.previousFocusElement = void 0 }))), this._register(he.nm(e, he.tw.FOCUS, (e => { u.setFocus() }))), this._register(he.nm(e, he.tw.KEY_DOWN, (t => { const i = new ai.y(t); switch (i.keyCode) { case 3: he.zB.stop(t, !0), this.onDidAcceptEmitter.fire(); break; case 9: he.zB.stop(t, !0), this.hide(fa.Jq.Gesture); break; case 2: if (!i.altKey && !i.ctrlKey && !i.metaKey) { const n = [".action-label.codicon"]; e.classList.contains("show-checkboxes") ? n.push("input") : n .push("input[type=text]"), this.getUI().list.isDisplayed() && n.push(".monaco-list"); const o = e.querySelectorAll(n.join(", ")); i.shiftKey && i.target === o[0] ? (he.zB.stop(t, !0), o[o.length - 1].focus()) : i.shiftKey || i.target !== o[o.length - 1] || (he.zB.stop(t, !0), o[0].focus()) } } }))), this.ui = { container: e, styleSheet: t, leftActionBar: n, titleBar: i, title: o, description1: s, description2: d, rightActionBar: r, checkAll: l, filterContainer: h, inputBox: u, visibleCountContainer: g, visibleCount: p, countContainer: m, count: f, okContainer: _, ok: b, message: C, customButtonContainer: v, customButton: w, list: y, progressBar: S, onDidAccept: this.onDidAcceptEmitter.event, onDidCustom: this.onDidCustomEmitter.event, onDidTriggerButton: this.onDidTriggerButtonEmitter.event, ignoreFocusOut: !1, keyMods: this.keyMods, isScreenReaderOptimized: () => this.options.isScreenReaderOptimized(), show: e => this.show(e), hide: () => this.hide(), setVisibilities: e => this.setVisibilities(e), setComboboxAccessibility: e => this.setComboboxAccessibility(e), setEnabled: e => this.setEnabled(e), setContextKey: e => this.options.setContextKey(e) }, this.updateStyles(), this.ui } pick(e, t = {}, i = W.T.None) { return new Promise(((n, o) => { let r = e => { r = n, t.onKeyMods && t.onKeyMods(s.keyMods), n(e) }; if (i.isCancellationRequested) return void r(void 0); const s = this.createQuickPick(); let a; const l = [s, s.onDidAccept((() => { if (s.canSelectMany) r(s.selectedItems.slice()), s.hide(); else { const e = s.activeItems[0]; e && (r(e), s.hide()) } })), s.onDidChangeActive((e => { const i = e[0]; i && t.onDidFocus && t.onDidFocus(i) })), s.onDidChangeSelection((e => { if (!s.canSelectMany) { const t = e[0]; t && (r(t), s.hide()) } })), s.onDidTriggerItemButton((e => t.onDidTriggerItemButton && t.onDidTriggerItemButton(Object.assign(Object.assign({}, e), { removeItem: () => { const t = s.items.indexOf(e.item); if (-1 !== t) { const e = s.items.slice(), i = e.splice(t, 1), n = s.activeItems.filter((e => e !== i[0])); s.items = e, n && (s.activeItems = n) } } })))), s.onDidChangeValue((e => { !a || e || 1 === s.activeItems.length && s.activeItems[0] === a || (s.activeItems = [a]) })), i.onCancellationRequested((() => { s.hide() })), s.onDidHide((() => { (0, Le.B9)(l), r(void 0) }))]; s.title = t.title, s.canSelectMany = !!t.canPickMany, s.placeholder = t.placeHolder, s.ignoreFocusOut = !!t.ignoreFocusLost, s.matchOnDescription = ! !t.matchOnDescription, s.matchOnDetail = !!t.matchOnDetail, s.matchOnLabel = void 0 === t.matchOnLabel || t.matchOnLabel, s.autoFocusOnList = void 0 === t.autoFocusOnList || t.autoFocusOnList, s.quickNavigate = t.quickNavigate, s.contextKey = t.contextKey, s.busy = !0, Promise.all([e, t.activeItem]).then((([e, t]) => { a = t, s.busy = !1, s.items = e, s.canSelectMany && (s.selectedItems = e.filter((e => "separator" !== e.type && e.picked))), a && (s.activeItems = [a]) })), s.show(), Promise.resolve(e).then(void 0, (e => { o(e), s.hide() })) })) } createQuickPick() { const e = this.getUI(); return new za(e) } show(e) { const t = this.getUI(); this.onShowEmitter.fire(); const i = this.controller; this.controller = e, i && i.didHide(), this.setEnabled(!0), t.leftActionBar .clear(), t.title.textContent = "", t.description1.textContent = "", t.description2.textContent = "", t.rightActionBar.clear(), t.checkAll .checked = !1, t.inputBox.placeholder = "", t.inputBox.password = !1, t.inputBox.showDecoration(li.Z.Ignore), t.visibleCount.setCount(0), t.count.setCount(0), he.mc(t.message), t.progressBar.stop(), t.list.setElements( []), t.list.matchOnDescription = !1, t.list.matchOnDetail = !1, t.list .matchOnLabel = !0, t.list.sortByLabel = !0, t.ignoreFocusOut = !1, this.setComboboxAccessibility(!1), t.inputBox.ariaLabel = ""; const n = this.options.backKeybindingLabel(); Ba.tooltip = n ? (0, vi.N)("quickInput.backWithKeybinding", "Back ({0})", n) : (0, vi.N)("quickInput.back", "Back"), t.container .style.display = "", this.updateLayout(), t.inputBox.setFocus() } setVisibilities(e) { const t = this.getUI(); t.title.style.display = e.title ? "" : "none", t.description1.style.display = e.description && (e.inputBox || e.checkAll) ? "" : "none", t.description2 .style.display = !e.description || e.inputBox || e.checkAll ? "none" : "", t.checkAll.style.display = e.checkAll ? "" : "none", t.filterContainer .style.display = e.inputBox ? "" : "none", t.visibleCountContainer.style .display = e.visibleCount ? "" : "none", t.countContainer.style.display = e.count ? "" : "none", t.okContainer.style.display = e.ok ? "" : "none", t.customButtonContainer.style.display = e.customButton ? "" : "none", t.message.style.display = e.message ? "" : "none", t.progressBar .getContainer().style.display = e.progressBar ? "" : "none", t.list.display(! !e.list), t.container.classList[e.checkBox ? "add" : "remove"]( "show-checkboxes"), this.updateLayout() } setComboboxAccessibility(e) { if (e !== this.comboboxAccessibility) { const t = this.getUI(); this.comboboxAccessibility = e, this.comboboxAccessibility ? (t.inputBox .setAttribute("role", "combobox"), t.inputBox.setAttribute( "aria-haspopup", "true"), t.inputBox.setAttribute( "aria-autocomplete", "list"), t.inputBox.setAttribute( "aria-activedescendant", t.list.getActiveDescendant() || "")) : ( t.inputBox.removeAttribute("role"), t.inputBox.removeAttribute( "aria-haspopup"), t.inputBox.removeAttribute("aria-autocomplete"), t.inputBox.removeAttribute("aria-activedescendant")) } } setEnabled(e) { if (e !== this.enabled) { this.enabled = e; for (const t of this.getUI().leftActionBar.viewItems) t.getAction().enabled = e; for (const t of this.getUI().rightActionBar.viewItems) t.getAction() .enabled = e; this.getUI().checkAll.disabled = !e, this.getUI().ok.enabled = e, this.getUI().list.enabled = e } } hide(e) { var t; const i = this.controller; if (i) { const n = !(null === (t = this.ui) || void 0 === t ? void 0 : t.container .contains(document.activeElement)); this.controller = null, this.onHideEmitter.fire(), this.getUI().container .style.display = "none", n || (this.previousFocusElement && this.previousFocusElement .offsetParent ? (this.previousFocusElement.focus(), this.previousFocusElement = void 0) : this.options.returnFocus()), i.didHide(e) } } layout(e, t) { this.dimension = e, this.titleBarOffset = t, this.updateLayout() } updateLayout() { if (this.ui) { this.ui.container.style.top = `${this.titleBarOffset}px`; const e = this.ui.container.style, t = Math.min(.62 * this.dimension.width, Va.MAX_WIDTH); e.width = t + "px", e.marginLeft = "-" + t / 2 + "px", this.ui.inputBox .layout(), this.ui.list.layout(this.dimension && .4 * this.dimension .height) } } applyStyles(e) { this.styles = e, this.updateStyles() } updateStyles() { if (this.ui) { const { quickInputTitleBackground: e, quickInputBackground: t, quickInputForeground: i, contrastBorder: n, widgetShadow: o } = this.styles.widget; this.ui.titleBar.style.backgroundColor = e ? e.toString() : "", this .ui.container.style.backgroundColor = t ? t.toString() : "", this.ui .container.style.color = i ? i.toString() : "", this.ui.container.style .border = n ? `1px solid ${n}` : "", this.ui.container.style.boxShadow = o ? `0 0 8px 2px ${o}` : "", this.ui.inputBox.style(this.styles.inputBox), this.ui.count.style(this.styles.countBadge), this.ui.ok.style(this.styles .button), this.ui.customButton.style(this.styles.button), this.ui.progressBar .style(this.styles.progressBar), this.ui.list.style(this.styles.list); const r = []; this.styles.list.pickerGroupBorder && r.push( `.quick-input-list .quick-input-list-entry { border-top-color: ${this.styles.list.pickerGroupBorder}; }` ), this.styles.list.pickerGroupForeground && r.push( `.quick-input-list .quick-input-list-separator { color: ${this.styles.list.pickerGroupForeground}; }` ), (this.styles.keybindingLabel.keybindingLabelBackground || this.styles .keybindingLabel.keybindingLabelBorder || this.styles.keybindingLabel .keybindingLabelBottomBorder || this.styles.keybindingLabel.keybindingLabelShadow || this.styles.keybindingLabel.keybindingLabelForeground) && (r.push( ".quick-input-list .monaco-keybinding > .monaco-keybinding-key {" ), this.styles.keybindingLabel.keybindingLabelBackground && r.push( `background-color: ${this.styles.keybindingLabel.keybindingLabelBackground};` ), this.styles.keybindingLabel.keybindingLabelBorder && r.push( `border-color: ${this.styles.keybindingLabel.keybindingLabelBorder};` ), this.styles.keybindingLabel.keybindingLabelBottomBorder && r.push( `border-bottom-color: ${this.styles.keybindingLabel.keybindingLabelBottomBorder};` ), this.styles.keybindingLabel.keybindingLabelShadow && r.push( `box-shadow: inset 0 -1px 0 ${this.styles.keybindingLabel.keybindingLabelShadow};` ), this.styles.keybindingLabel.keybindingLabelForeground && r.push( `color: ${this.styles.keybindingLabel.keybindingLabelForeground};` ), r.push("}")); const s = r.join("\n"); s !== this.ui.styleSheet.textContent && (this.ui.styleSheet.textContent = s) } } } Va.MAX_WIDTH = 600; var Ha = i(8289), Ua = i(725), ja = i(1157), Ka = function(e, t) { return function(i, n) { t(i, n, e) } }; let $a = class extends Le.JT { constructor(e, t) { super(), this.quickInputService = e, this.instantiationService = t, this.registry = Ho.B.as(Ua.IP.Quickaccess), this.mapProviderToDescriptor = new Map, this.lastAcceptedPickerValues = new Map, this.visibleQuickAccess = void 0 } show(e = "", t) { this.doShowOrPick(e, !1, t) } doShowOrPick(e, t, i) { var n; const [o, r] = this.getOrInstantiateProvider(e), s = this.visibleQuickAccess, a = null == s ? void 0 : s.descriptor; if (s && r && a === r) return e === r.prefix || (null == i ? void 0 : i.preserveValue) || (s.picker.value = e), void this.adjustValueSelection( s.picker, r, i); if (r && !(null == i ? void 0 : i.preserveValue)) { let t; if (s && a && a !== r) { const e = s.value.substr(a.prefix.length); e && (t = `${r.prefix}${e}`) } if (!t) { const e = null == o ? void 0 : o.defaultFilterValue; e === Ua.Ry.LAST ? t = this.lastAcceptedPickerValues.get(r) : "string" == typeof e && (t = `${r.prefix}${e}`) } "string" == typeof t && (e = t) } const l = new Le.SL, d = l.add(this.quickInputService.createQuickPick()); let c, h; d.value = e, this.adjustValueSelection(d, r, i), d.placeholder = null == r ? void 0 : r.placeholder, d.quickNavigate = null == i ? void 0 : i .quickNavigateConfiguration, d.hideInput = !!d.quickNavigate && !s, ( "number" == typeof(null == i ? void 0 : i.itemActivation) || (null == i ? void 0 : i.quickNavigateConfiguration)) && (d.itemActivation = null !== (n = null == i ? void 0 : i.itemActivation) && void 0 !== n ? n : ja.jG.SECOND), d.contextKey = null == r ? void 0 : r.contextKey, d.filterValue = e => e.substring(r ? r.prefix.length : 0), (null == r ? void 0 : r.placeholder) && (d.ariaLabel = null == r ? void 0 : r.placeholder), t && (c = new Promise((e => h = e)), l.add((0, Ha.I) (d.onWillAccept)((e => { e.veto(), d.hide() })))), l.add(this.registerPickerListeners(d, o, r, e)); const u = l.add(new W.A); return o && l.add(o.provide(d, u.token)), (0, Ha.I)(d.onDidHide)((() => { 0 === d.selectedItems.length && u.cancel(), l.dispose(), null == h || h(d.selectedItems) })), d.show(), t ? c : void 0 } adjustValueSelection(e, t, i) { var n; let o; o = (null == i ? void 0 : i.preserveValue) ? [e.value.length, e.value .length ] : [null !== (n = null == t ? void 0 : t.prefix.length) && void 0 !== n ? n : 0, e.value.length ], e.valueSelection = o } registerPickerListeners(e, t, i, n) { const o = new Le.SL, r = this.visibleQuickAccess = { picker: e, descriptor: i, value: n }; return o.add((0, Le.OF)((() => { r === this.visibleQuickAccess && (this.visibleQuickAccess = void 0) }))), o.add(e.onDidChangeValue((e => { const [i] = this.getOrInstantiateProvider(e); i !== t ? this.show(e, { preserveValue: !0 }) : r.value = e }))), i && o.add(e.onDidAccept((() => { this.lastAcceptedPickerValues.set(i, e.value) }))), o } getOrInstantiateProvider(e) { const t = this.registry.getQuickAccessProvider(e); if (!t) return [void 0, void 0]; let i = this.mapProviderToDescriptor.get(t); return i || (i = this.instantiationService.createInstance(t.ctor), this.mapProviderToDescriptor.set(t, i)), [i, t] } }; $a = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([Ka(0, ja.eJ), Ka(1, Rn.TG)], $a); var qa = function(e, t) { return function(i, n) { t(i, n, e) } }; let Za = class extends bn.bB { constructor(e, t, i, n, o) { super(i), this.instantiationService = e, this.contextKeyService = t, this.accessibilityService = n, this.layoutService = o, this.contexts = new Map } get controller() { return this._controller || (this._controller = this._register(this.createController())), this._controller } get quickAccess() { return this._quickAccess || (this._quickAccess = this._register(this.instantiationService .createInstance($a))), this._quickAccess } createController(e = this.layoutService, t) { var i, n; const o = { idPrefix: "quickInput_", container: e.container, ignoreFocusOut: () => !1, isScreenReaderOptimized: () => this.accessibilityService.isScreenReaderOptimized(), backKeybindingLabel: () => {}, setContextKey: e => this.setContextKey(e), returnFocus: () => e.focus(), createList: (e, t, i, n, o) => this.instantiationService.createInstance( ms.ev, e, t, i, n, o), styles: this.computeStyles() }, r = this._register(new Va(Object.assign(Object.assign({}, o), t))); return r.layout(e.dimension, null !== (n = null === (i = e.offset) || void 0 === i ? void 0 : i.top) && void 0 !== n ? n : 0), this._register( e.onDidLayout((t => { var i, n; return r.layout(t, null !== (n = null === (i = e.offset) || void 0 === i ? void 0 : i.top) && void 0 !== n ? n : 0) }))), this._register(r.onShow((() => this.resetContextKeys()))), this._register(r.onHide((() => this.resetContextKeys()))), r } setContextKey(e) { let t; e && (t = this.contexts.get(e), t || (t = new Ci.uy(e, !1).bindTo( this.contextKeyService), this.contexts.set(e, t))), t && t.get() || (this.resetContextKeys(), t && t.set(!0)) } resetContextKeys() { this.contexts.forEach((e => { e.get() && e.reset() })) } pick(e, t = {}, i = W.T.None) { return this.controller.pick(e, t, i) } createQuickPick() { return this.controller.createQuickPick() } updateStyles() { this.controller.applyStyles(this.computeStyles()) } computeStyles() { return { widget: Object.assign({}, (0, ts.o)(this.theme, { quickInputBackground: _n.zK, quickInputForeground: _n.tZ, quickInputTitleBackground: _n.lo, contrastBorder: _n.lR, widgetShadow: _n.rh })), inputBox: (0, ts.o)(this.theme, { inputForeground: _n.zJ, inputBackground: _n.sE, inputBorder: _n.dt, inputValidationInfoBackground: _n._l, inputValidationInfoForeground: _n.YI, inputValidationInfoBorder: _n.EP, inputValidationWarningBackground: _n.RV, inputValidationWarningForeground: _n.SU, inputValidationWarningBorder: _n.C3, inputValidationErrorBackground: _n.p, inputValidationErrorForeground: _n._t, inputValidationErrorBorder: _n.OZ }), countBadge: (0, ts.o)(this.theme, { badgeBackground: _n.g8, badgeForeground: _n.qe, badgeBorder: _n.lR }), button: (0, ts.o)(this.theme, { buttonForeground: _n.j5, buttonBackground: _n.b7, buttonHoverBackground: _n.GO, buttonBorder: _n.lR }), progressBar: (0, ts.o)(this.theme, { progressBarBackground: _n.zR }), keybindingLabel: (0, ts.o)(this.theme, { keybindingLabelBackground: _n.oQ, keybindingLabelForeground: _n.lW, keybindingLabelBorder: _n.AW, keybindingLabelBottomBorder: _n.K1, keybindingLabelShadow: _n.rh }), list: (0, ts.o)(this.theme, { listBackground: _n.zK, listInactiveFocusForeground: _n.NP, listInactiveSelectionIconForeground: _n.cb, listInactiveFocusBackground: _n.Vq, listFocusOutline: _n.xL, listInactiveFocusOutline: _n.xL, pickerGroupBorder: _n.op, pickerGroupForeground: _n.kJ }) } } }; Za = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([qa(0, Rn.TG), qa(1, Ci.i6), qa(2, bn.XE), qa(3, fo.F), qa(4, rs)], Za); var Ga = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }, Ya = function(e, t) { return function(i, n) { t(i, n, e) } }; let Qa = class extends Za { constructor(e, t, i, n, o, r) { super(t, i, n, o, r), this.host = void 0; const s = Ja.get(e); this.host = { _serviceBrand: void 0, get container() { return s.widget.getDomNode() }, get dimension() { return e.getLayoutInfo() }, get onDidLayout() { return e.onDidLayoutChange }, focus: () => e.focus() } } createController() { return super.createController(this.host) } }; Qa = Ga([Ya(1, Rn.TG), Ya(2, Ci.i6), Ya(3, bn.XE), Ya(4, fo.F), Ya(5, rs)], Qa); let Xa = class { constructor(e, t) { this.instantiationService = e, this.codeEditorService = t, this.mapEditorToService = new Map } get activeService() { const e = this.codeEditorService.getFocusedCodeEditor(); if (!e) throw new Error( "Quick input service needs a focused editor to work."); let t = this.mapEditorToService.get(e); if (!t) { const i = t = this.instantiationService.createInstance(Qa, e); this.mapEditorToService.set(e, t), (0, Ha.I)(e.onDidDispose)((() => { i.dispose(), this.mapEditorToService.delete(e) })) } return t } get quickAccess() { return this.activeService.quickAccess } pick(e, t = {}, i = W.T.None) { return this.activeService.pick(e, t, i) } createQuickPick() { return this.activeService.createQuickPick() } }; Xa = Ga([Ya(0, Rn.TG), Ya(1, ce.$)], Xa); class Ja { constructor(e) { this.editor = e, this.widget = new el(this.editor) } static get(e) { return e.getContribution(Ja.ID) } dispose() { this.widget.dispose() } } Ja.ID = "editor.controller.quickInput"; class el { constructor(e) { this.codeEditor = e, this.domNode = document.createElement("div"), this.codeEditor.addOverlayWidget(this) } getId() { return el.ID } getDomNode() { return this.domNode } getPosition() { return { preference: 2 } } dispose() { this.codeEditor.removeOverlayWidget(this) } } var tl; el.ID = "editor.contrib.quickInputWidget", (0, mn._K)(Ja.ID, Ja), function(e) { const t = new On.y; class i { constructor(e, t) { this._serviceId = e, this._factory = t, this._value = null } get id() { return this._serviceId } get(e) { if (!this._value) { if (e && (this._value = e[this._serviceId.toString()]), this._value || (this._value = this._factory(e)), !this._value) throw new Error( "Service " + this._serviceId + " is missing!"); t.set(this._serviceId, this._value) } return this._value } } e.LazyStaticService = i; let n = []; function o(e, t) { let o = new i(e, t); return n.push(o), o } e.init = function(e) { let t = new On.y; for (const [e, i] of(0, Es.d)()) t.set(e, i); for (let i in e) e.hasOwnProperty(i) && t.set((0, Rn.yh)(i), e[i]); n.forEach((i => t.set(i.id, i.get(e)))); let i = new us(t, !0); return t.set(Rn.TG, i), [t, i] }, e.instantiationService = o(Rn.TG, (() => new us(t, !0))); const r = new Ki; e.configurationService = o(gi.Ui, (() => r)), e.resourceConfigurationService = o(yt.V, (() => new $i(r))), e.resourcePropertiesService = o(yt.y, (() => new qi(r))), e.contextService = o(Mi.ec, (() => new Gi)), e.labelService = o(ps.e, (() => new Xi)), e.telemetryService = o(Er.b, (() => new Zi)), e.dialogService = o(as.S, (() => new zi)), e.notificationService = o( Ti.lT, (() => new Vi)), e.markerService = o(fs.lT, (() => new vs)), e .modeService = o(Pe.h, (e => new $o)), e.standaloneThemeService = o(go .Z, (() => new mr)), e.logService = o(xt.VZ, (() => new xt.$V(new xt.kw))), e.undoRedoService = o(Rs.tJ, (t => new $s(e.dialogService.get(t), e.notificationService .get(t)))), e.modelService = o(Ct.q, (t => new qo.BR(e.configurationService .get(t), e.resourcePropertiesService.get(t), e.standaloneThemeService .get(t), e.logService.get(t), e.undoRedoService.get(t)))), e.markerDecorationsService = o(ks.i, (t => new Ds(e.modelService.get(t), e.markerService.get(t)))), e.contextKeyService = o(Ci.i6, (t => new Lr(e.configurationService.get( t)))), e.codeEditorService = o(ce.$, (t => new Eo(null, e.contextKeyService .get(t), e.standaloneThemeService.get(t)))), e.editorProgressService = o(Vn.e, (() => new Wi)), e.storageService = o(ws.Uy, (() => new ws.vm)), e.editorWorkerService = o(Oe.p, (t => new Dt(e.modelService.get(t), e.resourceConfigurationService .get(t), e.logService.get(t)))) }(tl || (tl = {})); class il extends Le.JT { constructor(e, t) { super(); const [i, n] = tl.init(t); this._serviceCollection = i, this._instantiationService = n; const o = this.get(gi.Ui), r = this.get(Ti.lT), s = this.get(Er.b), a = this.get(bn.XE), l = this.get(xt.VZ), d = this.get(Ci.i6); let c = (e, i) => { let n = null; return t && (n = t[e.toString()]), n || (n = i()), this._serviceCollection .set(e, n), n }; c(fo.F, (() => new Ts(d, o))), c(ms.Lw, (() => new ms.XN(a))); let h = c(_e.H, (() => new Hi(this._instantiationService))), u = c(mo.d, (() => this._register(new Ui(d, h, s, r, l, e)))), g = c(rs, (() => new Ji(tl.codeEditorService.get(ce.$), e))); c(ja.eJ, (() => new Xa(n, tl.codeEditorService.get(ce.$)))); let p = c(Pn.u, (() => this._register(new ss(g)))); c(zn.p, (() => new As)), c(Pn.i, (() => { const e = new os(s, r, p, u, a); return e.configure({ blockMouse: !1 }), this._register(e) })), c(po.co, (() => new Ss(h))), c(ci.vu, (() => new Qi(tl.modelService .get(Ct.q)))) } get(e) { let t = this._serviceCollection.get(e); if (!t) throw new Error("Missing service " + e); return t } set(e, t) { this._serviceCollection.set(e, t) } has(e) { return this._serviceCollection.has(e) } } function nl(e, t, i) { let n = new il(e, t), o = null; n.has(Fe.S) || (o = new Bi(tl.modelService.get()), n.set(Fe.S, o)), n.has( be.v4) || n.set(be.v4, new xe(n.get(ce.$), n.get(_e.H))); let r = i(n); return o && o.setEditor(r), r } function ol(e, t) { return "boolean" == typeof e ? e : t } function rl(e, t) { return "string" == typeof e ? e : t } function sl(e, t = !1) { t && (e = e.map((function(e) { return e.toLowerCase() }))); const i = function(e) { const t = {}; for (const i of e) t[i] = !0; return t }(e); return t ? function(e) { return void 0 !== i[e.toLowerCase()] && i.hasOwnProperty(e.toLowerCase()) } : function(e) { return void 0 !== i[e] && i.hasOwnProperty(e) } } function al(e, t) { t = t.replace(/@@/g, ""); let i, n = 0; do { i = !1, t = t.replace(/@(\w+)/g, (function(n, o) { i = !0; let r = ""; if ("string" == typeof e[o]) r = e[o]; else { if (!(e[o] && e[o] instanceof RegExp)) throw void 0 === e[o] ? Kt( e, "language definition does not contain attribute '" + o + "', used at: " + t) : Kt(e, "attribute reference '" + o + "' must be a string, used at: " + t); r = e[o].source } return Ht(r) ? "" : "(?:" + r + ")" })), n++ } while (i && n < 5); t = t.replace(/\x01/g, "@"); let o = (e.ignoreCase ? "i" : "") + (e.unicode ? "u" : ""); return new RegExp(t, o) } function ll(e, t, i, n) { let o = -1, r = i, s = i.match(/^\$(([sS]?)(\d\d?)|#)(.*)$/); s && (s[3] && (o = parseInt(s[3]), s[2] && (o += 100)), r = s[4]); let a, l = "~", d = r; if (r && 0 !== r.length ? /^\w*$/.test(d) ? l = "==" : (s = r.match( /^(@|!@|~|!~|==|!=)(.*)$/), s && (l = s[1], d = s[2])) : (l = "!=", d = ""), "~" !== l && "!~" !== l || !/^(\w|\|)*$/.test(d)) if ("@" === l || "!@" === l) { let i = e[d]; if (!i) throw Kt(e, "the @ match target '" + d + "' is not defined, in rule: " + t); if (! function(e, t) { if (!t) return !1; if (!Array.isArray(t)) return !1; for (const e of t) if ("string" != typeof e) return !1; return !0 }(0, i)) throw Kt(e, "the @ match target '" + d + "' must be an array of strings, in rule: " + t); let n = sl(i, e.ignoreCase); a = function(e) { return "@" === l ? n(e) : !n(e) } } else if ("~" === l || "!~" === l) if (d.indexOf("$") < 0) { let t = al(e, "^" + d + "$"); a = function(e) { return "~" === l ? t.test(e) : !t.test(e) } } else a = function(t, i, n, o) { return al(e, "^" + $t(e, d, i, n, o) + "$").test(t) }; else if (d.indexOf("$") < 0) { let t = Ut(e, d); a = function(e) { return "==" === l ? e === t : e !== t } } else { let t = Ut(e, d); a = function(i, n, o, r, s) { let a = $t(e, t, n, o, r); return "==" === l ? i === a : i !== a } } else { let t = sl(d.split("|"), e.ignoreCase); a = function(e) { return "~" === l ? t(e) : !t(e) } } return -1 === o ? { name: i, value: n, test: function(e, t, i, n) { return a(e, e, t, i, n) } } : { name: i, value: n, test: function(e, t, i, n) { let r = function(e, t, i, n) { if (n < 0) return e; if (n < t.length) return t[n]; if (n >= 100) { n -= 100; let e = i.split("."); if (e.unshift(i), n < e.length) return e[n] } return null }(e, t, i, o); return a(r || "", e, t, i, n) } } } function dl(e, t, i) { if (i) { if ("string" == typeof i) return i; if (i.token || "" === i.token) { if ("string" != typeof i.token) throw Kt(e, "a 'token' attribute must be of type string, in rule: " + t); { let n = { token: i.token }; if (i.token.indexOf("$") >= 0 && (n.tokenSubst = !0), "string" == typeof i.bracket) if ("@open" === i.bracket) n.bracket = 1; else { if ("@close" !== i.bracket) throw Kt(e, "a 'bracket' attribute must be either '@open' or '@close', in rule: " + t); n.bracket = -1 } if (i.next) { if ("string" != typeof i.next) throw Kt(e, "the next state must be a string value in rule: " + t); { let o = i.next; if (!/^(@pop|@push|@popall)$/.test(o) && ("@" === o[0] && (o = o.substr( 1)), o.indexOf("$") < 0 && ! function(e, t) { let i = t; for (; i && i.length > 0;) { if (e.stateNames[i]) return !0; const t = i.lastIndexOf("."); i = t < 0 ? null : i.substr(0, t) } return !1 }(e, $t(e, o, "", [], "")))) throw Kt(e, "the next state '" + i.next + "' is not defined in rule: " + t); n.next = o } } return "number" == typeof i.goBack && (n.goBack = i.goBack), "string" == typeof i.switchTo && (n.switchTo = i.switchTo), "string" == typeof i .log && (n.log = i.log), "string" == typeof i.nextEmbedded && (n.nextEmbedded = i.nextEmbedded, e.usesEmbedded = !0), n } } if (Array.isArray(i)) { let n = []; for (let o = 0, r = i.length; o < r; o++) n[o] = dl(e, t, i[o]); return { group: n } } if (i.cases) { let n = []; for (let o in i.cases) if (i.cases.hasOwnProperty(o)) { const r = dl(e, t, i.cases[o]); "@default" === o || "@" === o || "" === o ? n.push({ test: void 0, value: r, name: o }) : "@eos" === o ? n.push({ test: function(e, t, i, n) { return n }, value: r, name: o }) : n.push(ll(e, t, o, r)) } const o = e.defaultToken; return { test: function(e, t, i, r) { for (const o of n) if (!o.test || o.test(e, t, i, r)) return o.value; return o } } } throw Kt(e, "an action must be a string, an object with a 'token' or 'cases' attribute, or an array of actions; in rule: " + t) } return { token: "" } } class cl { constructor(e) { this.regex = new RegExp(""), this.action = { token: "" }, this.matchOnlyAtLineStart = !1, this.name = "", this.name = e } setRegex(e, t) { let i; if ("string" == typeof t) i = t; else { if (!(t instanceof RegExp)) throw Kt(e, "rules must start with a match string or regular expression: " + this.name); i = t.source } this.matchOnlyAtLineStart = i.length > 0 && "^" === i[0], this.name = this.name + ": " + i, this.regex = al(e, "^(?:" + (this.matchOnlyAtLineStart ? i.substr(1) : i) + ")") } setAction(e, t) { this.action = dl(e, this.name, t) } } class hl { constructor(e, t) { this._languageIdentifier = e, this._actual = t } getInitialState() { return this._actual.getInitialState() } tokenize(e, t, i, n) { if ("function" == typeof this._actual.tokenize) return ul.adaptTokenize( this._languageIdentifier.language, this._actual, e, i, n); throw new Error("Not supported!") } tokenize2(e, t, i) { let n = this._actual.tokenizeEncoded(e, i); return new $.Hi(n.tokens, n.endState) } } class ul { constructor(e, t, i) { this._standaloneThemeService = e, this._languageIdentifier = t, this._actual = i } getInitialState() { return this._actual.getInitialState() } static _toClassicTokens(e, t, i) { let n = [], o = 0; for (let r = 0, s = e.length; r < s; r++) { const s = e[r]; let a = s.startIndex; 0 === r ? a = 0 : a < o && (a = o), n[r] = new $.WU(a + i, s.scopes, t), o = a } return n } static adaptTokenize(e, t, i, n, o) { let r, s = t.tokenize(i, n), a = ul._toClassicTokens(s.tokens, e, o); return r = s.endState.equals(n) ? n : s.endState, new $.hG(a, r) } tokenize(e, t, i, n) { return ul.adaptTokenize(this._languageIdentifier.language, this._actual, e, i, n) } _toBinaryTokens(e, t) { const i = this._languageIdentifier.id, n = this._standaloneThemeService.getColorTheme().tokenTheme; let o = [], r = 0, s = 0; for (let a = 0, l = e.length; a < l; a++) { const l = e[a], d = n.match(i, l.scopes); if (r > 0 && o[r - 1] === d) continue; let c = l.startIndex; 0 === a ? c = 0 : c < s && (c = s), o[r++] = c + t, o[r++] = d, s = c } let a = new Uint32Array(r); for (let e = 0; e < r; e++) a[e] = o[e]; return a } tokenize2(e, t, i, n) { let o, r = this._actual.tokenize(e, i), s = this._toBinaryTokens(r.tokens, n); return o = r.endState.equals(i) ? i : r.endState, new $.Hi(s, o) } } function gl(e) { return e && "function" == typeof e.then } var pl, ml = i(3606); B.BH.wrappingIndent.defaultValue = 0, B.BH.glyphMargin.defaultValue = !1, B.BH.autoIndent.defaultValue = 3, B.BH.overviewRulerLanes.defaultValue = 2, ml.xC.setFormatterSelector(((e, t, i) => Promise.resolve(e[0]))); const fl = Z(); fl.editor = { create: function(e, t, i) { return nl(e, i || {}, (i => new Po(e, t, i, i.get(Rn.TG), i.get(ce.$), i.get(_e.H), i.get(Ci.i6), i.get(mo.d), i.get(Pn.u), i.get(go.Z), i.get(Ti.lT), i.get(gi.Ui), i.get(fo.F), i.get(Ct.q), i.get(Pe.h) ))) }, onDidCreateEditor: function(e) { return tl.codeEditorService.get().onCodeEditorAdd((t => { e(t) })) }, createDiffEditor: function(e, t, i) { return nl(e, i || {}, (i => new Fo(e, t, i, i.get(Rn.TG), i.get(Ci.i6), i.get(mo.d), i.get(Pn.u), i.get(Oe.p), i.get(ce.$), i.get(go.Z), i.get(Ti.lT), i.get(gi.Ui), i.get(Pn.i), i.get(Vn.e), i.get(zn.p) ))) }, createDiffNavigator: function(e, t) { return new Ee(e, t) }, createModel: function(e, t, i) { return Bo(tl.modelService.get(), tl.modeService.get(), e, t, i) }, setModelLanguage: function(e, t) { tl.modelService.get().setMode(e, tl.modeService.get().create(t)) }, setModelMarkers: function(e, t, i) { e && tl.markerService.get().changeOne(t, e.uri, i) }, getModelMarkers: function(e) { return tl.markerService.get().read(e) }, onDidChangeMarkers: function(e) { return tl.markerService.get().onMarkerChanged(e) }, getModels: function() { return tl.modelService.get().getModels() }, getModel: function(e) { return tl.modelService.get().getModel(e) }, onDidCreateModel: function(e) { return tl.modelService.get().onModelAdded(e) }, onWillDisposeModel: function(e) { return tl.modelService.get().onModelRemoved(e) }, onDidChangeModelLanguage: function(e) { return tl.modelService.get().onModelModeChanged((t => { e({ model: t.model, oldLanguage: t.oldModeId }) })) }, createWebWorker: function(e) { return function(e, t) { return new Ot(e, t) }(tl.modelService.get(), e) }, colorizeElement: function(e, t) { const i = tl.standaloneThemeService.get(); return i.registerEditorContainer(e), oi.colorizeElement(i, tl.modeService .get(), e, t) }, colorize: function(e, t, i) { return tl.standaloneThemeService.get().registerEditorContainer( document.body), oi.colorize(tl.modeService.get(), e, t, i) }, colorizeModelLine: function(e, t, i = 4) { return tl.standaloneThemeService.get().registerEditorContainer( document.body), oi.colorizeModelLine(e, t, i) }, tokenize: function(e, t) { tl.modeService.get().triggerMode(t); let i = (n = t, Ae.RW.get(n) || { getInitialState: () => Re.nO, tokenize: (e, t, i, o) => (0, Re.Ri)(n, e, i, o) }); var n; let o = (0, Xe.uq)(e), r = [], s = i.getInitialState(); for (let e = 0, t = o.length; e < t; e++) { let t = o[e], n = i.tokenize(t, !0, s, 0); r[e] = n.tokens, s = n.endState } return r }, defineTheme: function(e, t) { tl.standaloneThemeService.get().defineTheme(e, t) }, setTheme: function(e) { tl.standaloneThemeService.get().setTheme(e) }, remeasureFonts: function() { (0, an.P)() }, registerCommand: function(e, t) { return _e.P.registerCommand({ id: e, handler: t }) }, AccessibilitySupport: n, ContentWidgetPositionPreference: l, CursorChangeReason: d, DefaultEndOfLine: c, EditorAutoIndentStrategy: u, EditorOption: g, EndOfLinePreference: p, EndOfLineSequence: m, MinimapPosition: y, MouseTargetType: S, OverlayWidgetPositionPreference: x, OverviewRulerLane: k, RenderLineNumbersType: L, RenderMinimap: N, ScrollbarVisibility: E, ScrollType: D, TextEditorCursorBlinkingStyle: R, TextEditorCursorStyle: O, TrackedRangeStickiness: P, WrappingIndent: F, ConfigurationChangedEvent: B.Bb, BareFontInfo: Ie.E4, FontInfo: Ie.pR, TextModelResolvedOptions: Me.dJ, FindMatch: Me.tk, EditorType: Te.g, EditorOptions: B.BH }, fl.languages = { register: function(e) { Vo.dQ.registerLanguage(e) }, getLanguages: function() { let e = []; return e = e.concat(Vo.dQ.getLanguages()), e }, onLanguage: function(e, t) { let i = tl.modeService.get().onDidCreateMode((n => { n.getId() === e && (i.dispose(), t()) })); return i }, getEncodedLanguageId: function(e) { let t = tl.modeService.get().getLanguageIdentifier(e); return t ? t.id : 0 }, setLanguageConfiguration: function(e, t) { let i = tl.modeService.get().getLanguageIdentifier(e); if (!i) throw new Error( `Cannot set configuration for unknown language ${e}`); return Ye.zu.register(i, t, 100) }, setColorMap: function(e) { if (e) { const t = [null]; for (let i = 1, n = e.length; i < n; i++) t[i] = Zo.Il.fromHex(e[i]); tl.standaloneThemeService.get().setColorMapOverride(t) } else tl.standaloneThemeService.get().setColorMapOverride(null) }, setTokensProvider: function(e, t) { let i = tl.modeService.get().getLanguageIdentifier(e); if (!i) throw new Error( `Cannot set tokens provider for unknown language ${e}`); const n = e => function(e) { return "tokenizeEncoded" in e }(e) ? new hl(i, e) : new ul(tl.standaloneThemeService.get(), i, e); return gl(t) ? Ae.RW.registerPromise(e, t.then((e => n(e)))) : Ae.RW.register( e, n(t)) }, setMonarchTokensProvider: function(e, t) { const i = t => function(e, t, i, n) { return new ti(e, t, i, n) }(tl.modeService.get(), tl.standaloneThemeService.get(), e, function( e, t) { if (!t || "object" != typeof t) throw new Error( "Monarch: expecting a language definition object"); let i = {}; i.languageId = e, i.includeLF = ol(t.includeLF, !1), i.noThrow = ! 1, i.maxStack = 100, i.start = "string" == typeof t.start ? t.start : null, i.ignoreCase = ol(t.ignoreCase, !1), i.unicode = ol(t.unicode, ! 1), i.tokenPostfix = rl(t.tokenPostfix, "." + i.languageId), i.defaultToken = rl(t.defaultToken, "source"), i.usesEmbedded = !1; let n = t; function o(e, r, s) { for (const a of s) { let s = a.include; if (s) { if ("string" != typeof s) throw Kt(i, "an 'include' attribute must be a string at: " + e); if ("@" === s[0] && (s = s.substr(1)), !t.tokenizer[s]) throw Kt( i, "include target '" + s + "' is not defined at: " + e); o(e + "." + s, r, t.tokenizer[s]) } else { const t = new cl(e); if (Array.isArray(a) && a.length >= 1 && a.length <= 3) if (t.setRegex(n, a[0]), a.length >= 3) if ("string" == typeof a[1]) t.setAction(n, { token: a[1], next: a[2] }); else { if ("object" != typeof a[1]) throw Kt(i, "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: " + e); { const e = a[1]; e.next = a[2], t.setAction(n, e) } } else t.setAction(n, a[1]); else { if (!a.regex) throw Kt(i, "a rule must either be an array, or an object with a 'regex' or 'include' field at: " + e); a.name && "string" == typeof a.name && (t.name = a.name), a.matchOnlyAtStart && (t.matchOnlyAtLineStart = ol(a.matchOnlyAtLineStart, !1)), t.setRegex( n, a.regex), t.setAction(n, a.action) } r.push(t) } } } if (n.languageId = e, n.includeLF = i.includeLF, n.ignoreCase = i.ignoreCase, n.unicode = i.unicode, n.noThrow = i.noThrow, n.usesEmbedded = i.usesEmbedded, n.stateNames = t.tokenizer, n.defaultToken = i.defaultToken, !t.tokenizer || "object" != typeof t.tokenizer) throw Kt(i, "a language definition must define the 'tokenizer' attribute as an object" ); i.tokenizer = []; for (let e in t.tokenizer) if (t.tokenizer.hasOwnProperty(e)) { i.start || (i.start = e); const n = t.tokenizer[e]; i.tokenizer[e] = new Array, o("tokenizer." + e, i.tokenizer[e], n) } if (i.usesEmbedded = n.usesEmbedded, t.brackets) { if (!Array.isArray(t.brackets)) throw Kt(i, "the 'brackets' attribute must be defined as an array") } else t.brackets = [{ open: "{", close: "}", token: "delimiter.curly" }, { open: "[", close: "]", token: "delimiter.square" }, { open: "(", close: ")", token: "delimiter.parenthesis" }, { open: "<", close: ">", token: "delimiter.angle" }]; let r = []; for (let e of t.brackets) { let t = e; if (t && Array.isArray(t) && 3 === t.length && (t = { token: t[2], open: t[0], close: t[1] }), t.open === t.close) throw Kt(i, "open and close brackets in a 'brackets' attribute must be different: " + t.open + "\n hint: use the 'bracket' attribute if matching on equal brackets is required." ); if ("string" != typeof t.open || "string" != typeof t.token || "string" != typeof t.close) throw Kt(i, "every element in the 'brackets' array must be a '{open,close,token}' object or array" ); r.push({ token: t.token + i.tokenPostfix, open: Ut(i, t.open), close: Ut(i, t.close) }) } return i.brackets = r, i.noThrow = !0, i }(e, t)); return gl(t) ? Ae.RW.registerPromise(e, t.then((e => i(e)))) : Ae.RW.register( e, i(t)) }, registerReferenceProvider: function(e, t) { return Ae.FL.register(e, t) }, registerRenameProvider: function(e, t) { return Ae.G0.register(e, t) }, registerCompletionItemProvider: function(e, t) { return Ae.KZ.register(e, t) }, registerSignatureHelpProvider: function(e, t) { return Ae.nD.register(e, t) }, registerHoverProvider: function(e, t) { return Ae.xp.register(e, { provideHover: (e, i, n) => { let o = e.getWordAtPosition(i); return Promise.resolve(t.provideHover(e, i, n)).then((e => { if (e) return !e.range && o && (e.range = new j.e(i.lineNumber, o.startColumn, i.lineNumber, o.endColumn)), e.range || (e .range = new j.e(i.lineNumber, i.column, i.lineNumber, i.column) ), e })) } }) }, registerDocumentSymbolProvider: function(e, t) { return Ae.vJ.register(e, t) }, registerDocumentHighlightProvider: function(e, t) { return Ae.vH.register(e, t) }, registerLinkedEditingRangeProvider: function(e, t) { return Ae.id.register(e, t) }, registerDefinitionProvider: function(e, t) { return Ae.Ct.register(e, t) }, registerImplementationProvider: function(e, t) { return Ae.vI.register(e, t) }, registerTypeDefinitionProvider: function(e, t) { return Ae.tA.register(e, t) }, registerCodeLensProvider: function(e, t) { return Ae.He.register(e, t) }, registerCodeActionProvider: function(e, t, i) { return Ae.H9.register(e, { providedCodeActionKinds: null == i ? void 0 : i.providedCodeActionKinds, provideCodeActions: (e, i, n, o) => { let r = tl.markerService.get().read({ resource: e.uri }).filter((e => j.e.areIntersectingOrTouching(e, i))); return t.provideCodeActions(e, i, { markers: r, only: n.only }, o) } }) }, registerDocumentFormattingEditProvider: function(e, t) { return Ae.Az.register(e, t) }, registerDocumentRangeFormattingEditProvider: function(e, t) { return Ae.vN.register(e, t) }, registerOnTypeFormattingEditProvider: function(e, t) { return Ae.ln.register(e, t) }, registerLinkProvider: function(e, t) { return Ae.pM.register(e, t) }, registerColorProvider: function(e, t) { return Ae.OH.register(e, t) }, registerFoldingRangeProvider: function(e, t) { return Ae.aC.register(e, t) }, registerDeclarationProvider: function(e, t) { return Ae.RN.register(e, t) }, registerSelectionRangeProvider: function(e, t) { return Ae.AC.register(e, t) }, registerDocumentSemanticTokensProvider: function(e, t) { return Ae.wT.register(e, t) }, registerDocumentRangeSemanticTokensProvider: function(e, t) { return Ae.K7.register(e, t) }, registerInlineCompletionsProvider: function(e, t) { return Ae.zu.register(e, t) }, registerInlayHintsProvider: function(e, t) { return Ae.mX.register(e, t) }, DocumentHighlightKind: h, CompletionItemKind: r, CompletionItemTag: s, CompletionItemInsertTextRule: o, SymbolKind: M, SymbolTag: A, IndentAction: f, CompletionTriggerKind: a, SignatureHelpTriggerKind: T, InlayHintKind: _, InlineCompletionTriggerKind: b, FoldingRangeKind: Ae.AD }, fl.CancellationTokenSource; const _l = fl.Emitter, bl = (fl.KeyCode, fl.KeyMod, fl.Position, fl.Range), vl = (fl.Selection, fl.SelectionDirection, fl.MarkerSeverity), wl = fl.MarkerTag, Cl = fl.Uri, yl = (fl.Token, fl.editor), Sl = fl.languages; ((null === (pl = ze.li.MonacoEnvironment) || void 0 === pl ? void 0 : pl.globalAPI) || "function" == typeof define && i.amdO) && (self.monaco = fl), void 0 !== self.require && "function" == typeof self.require.config && self.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" ] }) }, 5898: (e, t, i) => { "use strict"; i.r(t); var n = i(3379), o = i.n(n), r = i(7795), s = i.n(r), a = i(569), l = i.n(a), d = i(3565), c = i.n(d), h = i(9216), u = i.n(h), g = i(4589), p = i.n(g), m = i(8844), f = {}; f.styleTagTransform = p(), f.setAttributes = c(), f.insert = l().bind( null, "head"), f.domAPI = s(), f.insertStyleElement = u(), o()(m.Z, f), m.Z && m.Z.locals && m.Z.locals; var _ = i(5321), b = i(8626), v = i(8764), w = i(6346), C = i(3794), y = i(5976), S = i(1432), x = i(7295), k = i(666), L = i(6830), N = i(9102), D = i(9720), E = i(8819), I = i(2065), T = i(1847), M = i(988), A = i(3910), R = i(7781), O = i(913), P = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }, F = function(e, t) { return function(i, n) { t(i, n, e) } }; const B = new E.uy("accessibilityHelpWidgetVisible", !1); let W = class e extends y.JT { constructor(e, t) { super(), this._editor = e, this._widget = this._register(t.createInstance( z, this._editor)) } static get(t) { return t.getContribution(e.ID) } show() { this._widget.show() } hide() { this._widget.hide() } }; W.ID = "editor.contrib.accessibilityHelpController", W = P([F(1, I.TG)], W); let z = class e extends C.$ { constructor(e, t, i, n) { super(), this._contextKeyService = t, this._keybindingService = i, this._openerService = n, this._editor = e, this._isVisibleKey = B.bindTo( this._contextKeyService), this._domNode = (0, b.X)(document.createElement( "div")), this._domNode.setClassName("accessibilityHelpWidget"), this._domNode.setDisplay("none"), this._domNode.setAttribute("role", "dialog"), this._domNode.setAttribute("aria-hidden", "true"), this._contentDomNode = (0, b.X)(document.createElement("div")), this._contentDomNode.setAttribute( "role", "document"), this._domNode.appendChild(this._contentDomNode), this._isVisible = !1, this._register(this._editor.onDidLayoutChange( (() => { this._isVisible && this._layout() }))), this._register(_.mu(this._contentDomNode.domNode, "keydown", ( e => { if (this._isVisible && (e.equals(2083) && ((0, w.Z9)(O.Oe.emergencyConfOn), this._editor.updateOptions({ accessibilitySupport: "on" }), _.PO(this._contentDomNode.domNode), this._buildContent(), this._contentDomNode.domNode.focus(), e.preventDefault(), e.stopPropagation() ), e.equals(2086))) { (0, w.Z9)(O.Oe.openingDocs); let t = this._editor.getRawOptions().accessibilityHelpUrl; void 0 === t && (t = "https://go.microsoft.com/fwlink/?linkid=852450"), this._openerService .open(k.o.parse(t)), e.preventDefault(), e.stopPropagation() } }))), this.onblur(this._contentDomNode.domNode, (() => { this.hide() })), this._editor.addOverlayWidget(this) } dispose() { this._editor.removeOverlayWidget(this), super.dispose() } getId() { return e.ID } getDomNode() { return this._domNode.domNode } getPosition() { return { preference: null } } show() { this._isVisible || (this._isVisible = !0, this._isVisibleKey.set(!0), this._layout(), this._domNode.setDisplay("block"), this._domNode.setAttribute( "aria-hidden", "false"), this._contentDomNode.domNode.tabIndex = 0, this._buildContent(), this._contentDomNode.domNode.focus()) } _descriptionForCommand(e, t, i) { let n = this._keybindingService.lookupKeybinding(e); return n ? x.WU(t, n.getAriaLabel()) : x.WU(i, e) } _buildContent() { const e = this._editor.getOptions(), t = this._editor.getSelections(); let i = 0; if (t) { const e = this._editor.getModel(); e && t.forEach((t => { i += e.getValueLengthInRange(t) })) } let n = function(e, t) { return e && 0 !== e.length ? 1 === e.length ? t ? x.WU(O.Oe.singleSelectionRange, e[0].positionLineNumber, e[0].positionColumn, t) : x.WU(O.Oe.singleSelection, e[0].positionLineNumber, e[0].positionColumn) : t ? x.WU(O.Oe.multiSelectionRange, e.length, t) : e.length > 0 ? x.WU(O.Oe.multiSelection, e.length) : "" : O.Oe.noSelection }(t, i); e.get(53) ? e.get(80) ? n += O.Oe.readonlyDiffEditor : n += O.Oe.editableDiffEditor : e.get(80) ? n += O.Oe.readonlyEditor : n += O.Oe.editableEditor; const o = S.dz ? O.Oe.changeConfigToOnMac : O.Oe.changeConfigToOnWinLinux; switch (e.get(2)) { case 0: n += "\n\n - " + o; break; case 2: n += "\n\n - " + O.Oe.auto_on; break; case 1: n += "\n\n - " + O.Oe.auto_off, n += " " + o } e.get(129) ? n += "\n\n - " + this._descriptionForCommand(D.ToggleTabFocusModeAction .ID, O.Oe.tabFocusModeOnMsg, O.Oe.tabFocusModeOnMsgNoKb) : n += "\n\n - " + this._descriptionForCommand(D.ToggleTabFocusModeAction.ID, O.Oe.tabFocusModeOffMsg, O.Oe.tabFocusModeOffMsgNoKb), n += "\n\n - " + (S.dz ? O.Oe.openDocMac : O.Oe.openDocWinLinux), n += "\n\n" + O.Oe.outroMsg, this._contentDomNode.domNode.appendChild((0, v.BO)(n)), this._contentDomNode.domNode.setAttribute("aria-label", n) } hide() { this._isVisible && (this._isVisible = !1, this._isVisibleKey.reset(), this._domNode.setDisplay("none"), this._domNode.setAttribute( "aria-hidden", "true"), this._contentDomNode.domNode.tabIndex = -1, _.PO(this._contentDomNode.domNode), this._editor.focus()) } _layout() { let t = this._editor.getLayoutInfo(), i = Math.max(5, Math.min(e.WIDTH, t.width - 40)), n = Math.max(5, Math.min(e.HEIGHT, t.height - 40)); this._domNode.setWidth(i), this._domNode.setHeight(n); let o = Math.round((t.height - n) / 2); this._domNode.setTop(o); let r = Math.round((t.width - i) / 2); this._domNode.setLeft(r) } }; z.ID = "editor.contrib.accessibilityHelpWidget", z.WIDTH = 500, z.HEIGHT = 300, z = P([F(1, E.i6), F(2, T.d), F(3, M.v4)], z); class V extends L.R6 { constructor() { super({ id: "editor.action.showAccessibilityHelp", label: O.Oe.showAccessibilityHelpAction, alias: "Show Accessibility Help", precondition: void 0, kbOpts: { primary: 571, weight: 100, linux: { primary: 1595, secondary: [571] } } }) } run(e, t) { let i = W.get(t); i && i.show() } }(0, L._K)(W.ID, W), (0, L.Qr)(V); const H = L._l.bindToContribution(W.get); (0, L.fK)(new H({ id: "closeAccessibilityHelp", precondition: B, handler: e => e.hide(), kbOpts: { weight: 200, kbExpr: N.u.focus, primary: 9, secondary: [1033] } })), (0, R.Ic)(((e, t) => { const i = e.getColor(A.D0); i && t.addRule( `.monaco-editor .accessibilityHelpWidget { background-color: ${i}; }` ); const n = e.getColor(A.Hf); n && t.addRule( `.monaco-editor .accessibilityHelpWidget { color: ${n}; }`); const o = e.getColor(A.rh); o && t.addRule( `.monaco-editor .accessibilityHelpWidget { box-shadow: 0 2px 8px ${o}; }` ); const r = e.getColor(A.lR); r && t.addRule( `.monaco-editor .accessibilityHelpWidget { border: 2px solid ${r}; }` ) })) }, 1321: (e, t, i) => { "use strict"; i.r(t), i.d(t, { IPadShowKeyboard: () => C }); var n = i(3379), o = i.n(n), r = i(7795), s = i.n(r), a = i(569), l = i.n(a), d = i(3565), c = i.n(d), h = i(9216), u = i.n(h), g = i(4589), p = i.n(g), m = i(1556), f = {}; f.styleTagTransform = p(), f.setAttributes = c(), f.insert = l().bind( null, "head"), f.domAPI = s(), f.insertStyleElement = u(), o()(m.Z, f), m.Z && m.Z.locals && m.Z.locals; var _ = i(5321), b = i(5976), v = i(6830), w = i(1432); class C extends b.JT { constructor(e) { super(), this.editor = e, this.widget = null, w.gn && (this._register( e.onDidChangeConfiguration((() => this.update()))), this.update()) } update() { const e = !this.editor.getOption(80); !this.widget && e ? this.widget = new y(this.editor) : this.widget && !e && (this.widget.dispose(), this.widget = null) } dispose() { super.dispose(), this.widget && (this.widget.dispose(), this.widget = null) } } C.ID = "editor.contrib.iPadShowKeyboard"; class y extends b.JT { constructor(e) { super(), this.editor = e, this._domNode = document.createElement( "textarea"), this._domNode.className = "iPadShowKeyboard", this._register( _.nm(this._domNode, "touchstart", (e => { this.editor.focus() }))), this._register(_.nm(this._domNode, "focus", (e => { this.editor.focus() }))), this.editor.addOverlayWidget(this) } dispose() { this.editor.removeOverlayWidget(this), super.dispose() } getId() { return y.ID } getDomNode() { return this._domNode } getPosition() { return { preference: 1 } } } y.ID = "editor.contrib.ShowKeyboardWidget", (0, v._K)(C.ID, C) }, 154: (e, t, i) => { "use strict"; i.r(t); var n = i(3379), o = i.n(n), r = i(7795), s = i.n(r), a = i(569), l = i.n(a), d = i(3565), c = i.n(d), h = i(9216), u = i.n(h), g = i(4589), p = i.n(g), m = i(5189), f = {}; f.styleTagTransform = p(), f.setAttributes = c(), f.insert = l().bind( null, "head"), f.domAPI = s(), f.insertStyleElement = u(), o()(m.Z, f), m.Z && m.Z.locals && m.Z.locals; var _ = i(5321), b = i(1264), v = i(5976), w = i(6830), C = i(4101), y = i(8111), S = i(1531), x = i(2095), k = i(3910), L = i(7781), N = i(913), D = i(2321), E = function(e, t) { return function(i, n) { t(i, n, e) } }; let I = class e extends v.JT { constructor(e, t, i) { super(), this._editor = e, this._modeService = i, this._widget = null, this._register(this._editor.onDidChangeModel((e => this.stop()))), this._register(this._editor.onDidChangeModelLanguage((e => this.stop()))), this._register(C.RW.onDidChange((e => this.stop()))), this._register( this._editor.onKeyUp((e => 9 === e.keyCode && this.stop()))) } static get(t) { return t.getContribution(e.ID) } dispose() { this.stop(), super.dispose() } launch() { this._widget || this._editor.hasModel() && (this._widget = new M(this ._editor, this._modeService)) } stop() { this._widget && (this._widget.dispose(), this._widget = null) } }; I.ID = "editor.contrib.inspectTokens", I = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([E(1, x.Z), E(2, S.h)], I); class T extends w.R6 { constructor() { super({ id: "editor.action.inspectTokens", label: N.ug.inspectTokensAction, alias: "Developer: Inspect Tokens", precondition: void 0 }) } run(e, t) { let i = I.get(t); i && i.launch() } } class M extends v.JT { constructor(e, t) { var i; super(), this.allowEditorOverflow = !0, this._editor = e, this._modeService = t, this._model = this._editor.getModel(), this._domNode = document.createElement( "div"), this._domNode.className = "tokens-inspect-widget", this._tokenizationSupport = (i = this._model.getLanguageIdentifier(), C.RW.get(i.language) || { getInitialState: () => y.nO, tokenize: (e, t, n, o) => (0, y.Ri)(i.language, e, n, o), tokenize2: (e, t, n, o) => (0, y.mh)(i.id, e, n, o) }), this._compute(this._editor.getPosition()), this._register(this._editor .onDidChangeCursorPosition((e => this._compute(this._editor.getPosition()))) ), this._editor.addContentWidget(this) } dispose() { this._editor.removeContentWidget(this), super.dispose() } getId() { return M._ID } _compute(e) { let t = this._getTokensAtLine(e.lineNumber), i = 0; for (let n = t.tokens1.length - 1; n >= 0; n--) { let o = t.tokens1[n]; if (e.column - 1 >= o.offset) { i = n; break } } let n = 0; for (let i = t.tokens2.length >>> 1; i >= 0; i--) if (e.column - 1 >= t.tokens2[i << 1]) { n = i; break } let o = this._model.getLineContent(e.lineNumber), r = ""; if (i < t.tokens1.length) { let e = t.tokens1[i].offset, n = i + 1 < t.tokens1.length ? t.tokens1[i + 1].offset : o.length; r = o.substring(e, n) }(0, _.mc)(this._domNode, (0, _.$)("h2.tm-token", void 0, function(e) { let t = ""; for (let i = 0, n = e.length; i < n; i++) { let n = e.charCodeAt(i); switch (n) { case 9: t += "→"; break; case 32: t += "·"; break; default: t += String.fromCharCode(n) } } return t }(r), (0, _.$)("span.tm-token-length", void 0, `${r.length} ${1===r.length?"char":"chars"}`))), (0, _.R3)(this._domNode, ( 0, _.$)("hr.tokens-inspect-separator", { style: "clear:both" })); const s = 1 + (n << 1) < t.tokens2.length ? this._decodeMetadata(t.tokens2[ 1 + (n << 1)]) : null; (0, _.R3)(this._domNode, (0, _.$)("table.tm-metadata-table", void 0, ( 0, _.$)("tbody", void 0, (0, _.$)("tr", void 0, (0, _.$)( "td.tm-metadata-key", void 0, "language"), (0, _.$)( "td.tm-metadata-value", void 0, `${s?s.languageIdentifier.language:"-?-"}`)), (0, _.$)("tr", void 0, ( 0, _.$)("td.tm-metadata-key", void 0, "token type"), (0, _.$)( "td.tm-metadata-value", void 0, `${s?this._tokenTypeToString(s.tokenType):"-?-"}`)), (0, _.$)( "tr", void 0, (0, _.$)("td.tm-metadata-key", void 0, "font style"), ( 0, _.$)("td.tm-metadata-value", void 0, `${s?this._fontStyleToString(s.fontStyle):"-?-"}`)), (0, _.$)( "tr", void 0, (0, _.$)("td.tm-metadata-key", void 0, "foreground"), ( 0, _.$)("td.tm-metadata-value", void 0, `${s?b.Il.Format.CSS.formatHex(s.foreground):"-?-"}`)), (0, _.$) ("tr", void 0, (0, _.$)("td.tm-metadata-key", void 0, "background"), ( 0, _.$)("td.tm-metadata-value", void 0, `${s?b.Il.Format.CSS.formatHex(s.background):"-?-"}`))))), (0, _.R3) (this._domNode, (0, _.$)("hr.tokens-inspect-separator")), i < t.tokens1 .length && (0, _.R3)(this._domNode, (0, _.$)("span.tm-token-type", void 0, t.tokens1[i].type)), this._editor.layoutContentWidget(this) } _decodeMetadata(e) { let t = C.RW.getColorMap(), i = C.NX.getLanguageId(e), n = C.NX.getTokenType(e), o = C.NX.getFontStyle(e), r = C.NX.getForeground(e), s = C.NX.getBackground(e); return { languageIdentifier: this._modeService.getLanguageIdentifier(i), tokenType: n, fontStyle: o, foreground: t[r], background: t[s] } } _tokenTypeToString(e) { switch (e) { case 0: return "Other"; case 1: return "Comment"; case 2: return "String"; case 4: return "RegEx"; default: return "??" } } _fontStyleToString(e) { let t = ""; return 1 & e && (t += "italic "), 2 & e && (t += "bold "), 4 & e && ( t += "underline "), 0 === t.length && (t = "---"), t } _getTokensAtLine(e) { let t = this._getStateBeforeLine(e), i = this._tokenizationSupport.tokenize(this._model.getLineContent(e), ! 0, t, 0), n = this._tokenizationSupport.tokenize2(this._model.getLineContent(e), ! 0, t, 0); return { startState: t, tokens1: i.tokens, tokens2: n.tokens, endState: i.endState } } _getStateBeforeLine(e) { let t = this._tokenizationSupport.getInitialState(); for (let i = 1; i < e; i++) t = this._tokenizationSupport.tokenize( this._model.getLineContent(i), !0, t, 0).endState; return t } getDomNode() { return this._domNode } getPosition() { return { position: this._editor.getPosition(), preference: [2, 1] } } } M._ID = "editor.contrib.inspectTokensWidget", (0, w._K)(I.ID, I), (0, w.Qr) (T), (0, L.Ic)(((e, t) => { const i = e.getColor(k.CN); if (i) { let n = e.type === D.e.HIGH_CONTRAST ? 2 : 1; t.addRule( `.monaco-editor .tokens-inspect-widget { border: ${n}px solid ${i}; }` ), t.addRule( `.monaco-editor .tokens-inspect-widget .tokens-inspect-separator { background-color: ${i}; }` ) } const n = e.getColor(k.yJ); n && t.addRule( `.monaco-editor .tokens-inspect-widget { background-color: ${n}; }` ); const o = e.getColor(k.Sb); o && t.addRule( `.monaco-editor .tokens-inspect-widget { color: ${o}; }`) })) }, 7720: (e, t, i) => { "use strict"; i.r(t), i.d(t, { GotoLineAction: () => j, StandaloneCommandsQuickAccessProvider: () => U }); var n = i(9872), o = i(725), r = i(913), s = i(1640), a = i(9488), l = i(8401), d = i(3580); function c(e, t) { return t && (e.stack || e.stacktrace) ? d.N("stackTrace.format", "{0}: {1}", u(e), h(e.stack) || h(e.stacktrace)) : u(e) } function h(e) { return Array.isArray(e) ? e.join("\n") : e } function u(e) { return "string" == typeof e.code && "number" == typeof e.errno && "string" == typeof e.syscall ? d.N("nodeExceptionMessage", "A system error occurred ({0})", e.message) : e.message || d.N( "error.defaultMessage", "An unknown error occurred. Please consult the log for more details.") } function g(e = null, t = !1) { if (!e) return d.N("error.defaultMessage", "An unknown error occurred. Please consult the log for more details." ); if (Array.isArray(e)) { const i = a.kX(e), n = g(i[0], t); return i.length > 1 ? d.N("error.moreErrors", "{0} ({1} errors in total)", n, i.length) : n } if (l.HD(e)) return e; if (e.detail) { const i = e.detail; if (i.error) return c(i.error, t); if (i.exception) return c(i.exception, t) } return e.stack ? c(e, t) : e.message ? e.message : d.N( "error.defaultMessage", "An unknown error occurred. Please consult the log for more details.") } var p, m = i(7301), f = i(5392), _ = i(5976), b = i(3702), v = i(4603), w = i(4565), C = i(3108), y = i(8820), S = i(2065), x = i(1847), k = i(5393), L = i(1050), N = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; function D(e) { const t = e; return Array.isArray(t.items) }! function(e) { e[e.NO_ACTION = 0] = "NO_ACTION", e[e.CLOSE_PICKER = 1] = "CLOSE_PICKER", e[e.REFRESH_PICKER = 2] = "REFRESH_PICKER", e[e.REMOVE_ITEM = 3] = "REMOVE_ITEM" }(p || (p = {})); class E extends _.JT { constructor(e, t) { super(), this.prefix = e, this.options = t } provide(e, t) { var i; const n = new _.SL; let o; e.canAcceptInBackground = !!(null === (i = this.options) || void 0 === i ? void 0 : i.canAcceptInBackground), e.matchOnLabel = e.matchOnDescription = e.matchOnDetail = e.sortByLabel = !1; const r = n.add(new _.XK), s = () => N(this, void 0, void 0, (function*() { const i = r.value = new _.SL; null == o || o.dispose(!0), e.busy = !1, o = new L.A(t); const n = o.token, s = e.value.substr(this.prefix.length).trim(), a = this._getPicks(s, i, n), l = (t, i) => { var n; let o, r; if (D(t) ? (o = t.items, r = t.active) : o = t, 0 === o.length) { if (i) return !1; s.length > 0 && (null === (n = this.options) || void 0 === n ? void 0 : n.noResultsPick) && (o = [this.options.noResultsPick]) } return e.items = o, r && (e.activeItems = [r]), !0 }; if (null === a); else if (function(e) { const t = e; return !!t.picks && t.additionalPicks instanceof Promise }(a)) { let t = !1, i = !1; yield Promise.all([(() => N(this, void 0, void 0, (function*() { yield(0, k.Vs)(E.FAST_PICKS_RACE_DELAY), n.isCancellationRequested || i || (t = l(a.picks, !0)) })))(), (() => N(this, void 0, void 0, (function*() { e.busy = !0; try { const o = yield a.additionalPicks; if (n.isCancellationRequested) return; let r, s, d, c; if (D(a.picks) ? (r = a.picks.items, s = a.picks.active) : r = a.picks, D(o) ? (d = o.items, c = o.active) : d = o, d.length > 0 || !t) { let t; if (!s && !c) { const i = e.activeItems[0]; i && -1 !== r.indexOf(i) && (t = i) } l({ items: [...r, ...d], active: s || c || t }) } } finally { n.isCancellationRequested || (e.busy = !1), i = !0 } })))()]) } else if (a instanceof Promise) { e.busy = !0; try { const t = yield a; if (n.isCancellationRequested) return; l(t) } finally { n.isCancellationRequested || (e.busy = !1) } } else l(a) })); return n.add(e.onDidChangeValue((() => s()))), s(), n.add(e.onDidAccept( (t => { const [i] = e.selectedItems; "function" == typeof(null == i ? void 0 : i.accept) && (t.inBackground || e.hide(), i.accept(e.keyMods, t)) }))), n.add(e.onDidTriggerItemButton((({ button: i, item: n }) => N(this, void 0, void 0, (function*() { var o, r; if ("function" == typeof n.trigger) { const a = null !== (r = null === (o = n.buttons) || void 0 === o ? void 0 : o.indexOf(i)) && void 0 !== r ? r : -1; if (a >= 0) { const i = n.trigger(a, e.keyMods), o = "number" == typeof i ? i : yield i; if (t.isCancellationRequested) return; switch (o) { case p.NO_ACTION: break; case p.CLOSE_PICKER: e.hide(); break; case p.REFRESH_PICKER: s(); break; case p.REMOVE_ITEM: const t = e.items.indexOf(n); if (-1 !== t) { const i = e.items.slice(); i.splice(t, 1), e.items = i } } } } }))))), n } } E.FAST_PICKS_RACE_DELAY = 200; var I = i(6904), T = i(829), M = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }, A = function(e, t) { return function(i, n) { t(i, n, e) } }, R = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; let O = class e extends E { constructor(t, i, n, o, r, s) { super(e.PREFIX, t), this.instantiationService = i, this.keybindingService = n, this.commandService = o, this.telemetryService = r, this.dialogService = s, this.commandsHistory = this._register(this.instantiationService.createInstance( P)), this.options = t } _getPicks(t, i, n) { return R(this, void 0, void 0, (function*() { const o = yield this.getCommandPicks(i, n); if (n.isCancellationRequested) return []; const r = []; for (const i of o) { const n = (0, l.f6)(e.WORD_FILTER(t, i.label)), o = i.commandAlias ? (0, l.f6)(e.WORD_FILTER(t, i.commandAlias)) : void 0; n || o ? (i.highlights = { label: n, detail: this.options.showAlias ? o : void 0 }, r.push(i)) : t === i.commandId && r.push(i) } const s = new Map; for (const e of r) { const t = s.get(e.label); t ? (e.description = e.commandId, t.description = t.commandId) : s.set(e.label, e) } r.sort(((e, t) => { const i = this.commandsHistory.peek(e.commandId), n = this.commandsHistory.peek(t.commandId); return i && n ? i > n ? -1 : 1 : i ? -1 : n ? 1 : e.label.localeCompare( t.label) })); const a = []; let c = !1; for (let e = 0; e < r.length; e++) { const t = r[e], i = this.keybindingService.lookupKeybinding(t.commandId), n = i ? (0, d.N)("commandPickAriaLabelWithKeybinding", "{0}, {1}", t.label, i.getAriaLabel()) : t.label; 0 === e && this.commandsHistory.peek(t.commandId) && (a.push({ type: "separator", label: (0, d.N)("recentlyUsed", "recently used") }), c = !0), 0 !== e && c && !this.commandsHistory.peek(t.commandId) && (a.push({ type: "separator", label: (0, d.N)("morecCommands", "other commands") }), c = !1), a.push(Object.assign(Object.assign({}, t), { ariaLabel: n, detail: this.options.showAlias && t.commandAlias !== t.label ? t.commandAlias : void 0, keybinding: i, accept: () => R(this, void 0, void 0, (function*() { this.commandsHistory.push(t.commandId), this.telemetryService .publicLog2("workbenchActionExecuted", { id: t.commandId, from: "quick open" }); try { yield this.commandService.executeCommand(t.commandId) } catch (e) { (0, m.VV)(e) || this.dialogService.show(v.Z.Error, (0, d.N)("canNotRun", "Command '{0}' resulted in an error ({1})", t.label, g(e))) } })) })) } return a })) } }; O.PREFIX = ">", O.WORD_FILTER = (0, f.or)(f.Ji, f.KZ, f.ir), O = M([A(1, S.TG), A(2, x.d), A(3, w.H), A(4, T.b), A(5, y.S)], O); let P = class e extends _.JT { constructor(e, t) { super(), this.storageService = e, this.configurationService = t, this .configuredCommandsHistoryLength = 0, this.updateConfiguration(), this.load(), this.registerListeners() } registerListeners() { this._register(this.configurationService.onDidChangeConfiguration((() => this.updateConfiguration()))) } updateConfiguration() { this.configuredCommandsHistoryLength = e.getConfiguredCommandHistoryLength( this.configurationService), e.cache && e.cache.limit !== this.configuredCommandsHistoryLength && (e.cache.limit = this.configuredCommandsHistoryLength, e.saveState( this.storageService)) } load() { const t = this.storageService.get(e.PREF_KEY_CACHE, 0); let i; if (t) try { i = JSON.parse(t) } catch (e) {} const n = e.cache = new b.z6(this.configuredCommandsHistoryLength, 1); if (i) { let e; e = i.usesLRU ? i.entries : i.entries.sort(((e, t) => e.value - t.value)), e.forEach((e => n.set(e.key, e.value))) } e.counter = this.storageService.getNumber(e.PREF_KEY_COUNTER, 0, e.counter) } push(t) { e.cache && (e.cache.set(t, e.counter++), e.saveState(this.storageService)) } peek(t) { var i; return null === (i = e.cache) || void 0 === i ? void 0 : i.peek(t) } static saveState(t) { if (!e.cache) return; const i = { usesLRU: !0, entries: [] }; e.cache.forEach(((e, t) => i.entries.push({ key: t, value: e }))), t.store(e.PREF_KEY_CACHE, JSON.stringify(i), 0, 0), t.store(e.PREF_KEY_COUNTER, e.counter, 0, 0) } static getConfiguredCommandHistoryLength(t) { var i, n; const o = null === (n = null === (i = t.getValue().workbench) || void 0 === i ? void 0 : i.commandPalette) || void 0 === n ? void 0 : n.history; return "number" == typeof o ? o : e.DEFAULT_COMMANDS_HISTORY_LENGTH } }; P.DEFAULT_COMMANDS_HISTORY_LENGTH = 50, P.PREF_KEY_CACHE = "commandPalette.mru.cache", P.PREF_KEY_COUNTER = "commandPalette.mru.counter", P.counter = 1, P = M([A(0, I.Uy), A(1, C.Ui)], P); var F = i(1212); class B extends O { constructor(e, t, i, n, o, r) { super(e, t, i, n, o, r) } getCodeEditorCommandPicks() { const e = this.activeTextEditorControl; if (!e) return []; const t = []; for (const i of e.getSupportedActions()) t.push({ commandId: i.id, commandAlias: i.alias, label: (0, F.x$)(i.label) || i.id }); return t } } var W = i(6830), z = i(9102), V = i(1157), H = function(e, t) { return function(i, n) { t(i, n, e) } }; let U = class extends B { constructor(e, t, i, n, o, r) { super({ showAlias: !1 }, e, i, n, o, r), this.codeEditorService = t } get activeTextEditorControl() { return (0, l.f6)(this.codeEditorService.getFocusedCodeEditor()) } getCommandPicks() { return e = this, t = void 0, n = function*() { return this.getCodeEditorCommandPicks() }, new((i = void 0) || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })); var e, t, i, n } }; U = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([H(0, S.TG), H(1, s.$), H(2, x.d), H(3, w.H), H(4, T.b), H(5, y.S)], U), n.B.as(o.IP.Quickaccess).registerQuickAccessProvider({ ctor: U, prefix: U.PREFIX, helpEntries: [{ description: r.UX.quickCommandHelp, needsEditor: !0 }] }); class j extends W.R6 { constructor() { super({ id: "editor.action.quickCommand", label: r.UX.quickCommandActionLabel, alias: "Command Palette", precondition: void 0, kbOpts: { kbExpr: z.u.focus, primary: 59, weight: 100 }, contextMenuOpts: { group: "z_commands", order: 1 } }) } run(e) { e.get(V.eJ).quickAccess.show(U.PREFIX) } }(0, W.Qr)(j) }, 2097: (e, t, i) => { "use strict"; i.r(t), i.d(t, { GotoLineAction: () => w, StandaloneGotoLineQuickAccessProvider: () => _ }); var n = i(3580), o = i(5976), r = i(8275), s = i(5520); class a extends r.X { constructor() { super({ canAcceptInBackground: !0 }) } provideWithoutTextEditor(e) { const t = (0, n.N)("cannotRunGotoLine", "Open a text editor first to go to a line."); return e.items = [{ label: t }], e.ariaLabel = t, o.JT.None } provideWithTextEditor(e, t, i) { const n = e.editor, r = new o.SL; r.add(t.onDidAccept((i => { const [o] = t.selectedItems; if (o) { if (!this.isValidLineNumber(n, o.lineNumber)) return; this.gotoLocation(e, { range: this.toRange(o.lineNumber, o.column), keyMods: t.keyMods, preserveFocus: i.inBackground }), i.inBackground || t.hide() } }))); const l = () => { const e = this.parsePosition(n, t.value.trim().substr(a.PREFIX.length)), i = this.getPickLabel(n, e.lineNumber, e.column); if (t.items = [{ lineNumber: e.lineNumber, column: e.column, label: i }], t.ariaLabel = i, !this.isValidLineNumber(n, e.lineNumber)) return void this.clearDecorations(n); const o = this.toRange(e.lineNumber, e.column); n.revealRangeInCenter(o, 0), this.addDecorations(n, o) }; l(), r.add(t.onDidChangeValue((() => l()))); const d = (0, s.Pi)(n); return d && 2 === d.getOptions().get(59).renderType && (d.updateOptions({ lineNumbers: "on" }), r.add((0, o.OF)((() => d.updateOptions({ lineNumbers: "relative" }))))), r } toRange(e = 1, t = 1) { return { startLineNumber: e, startColumn: t, endLineNumber: e, endColumn: t } } parsePosition(e, t) { const i = t.split(/,|:|#/).map((e => parseInt(e, 10))).filter((e => ! isNaN(e))), n = this.lineCount(e) + 1; return { lineNumber: i[0] > 0 ? i[0] : n + i[0], column: i[1] } } getPickLabel(e, t, i) { if (this.isValidLineNumber(e, t)) return this.isValidColumn(e, t, i) ? (0, n.N)("gotoLineColumnLabel", "Go to line {0} and character {1}.", t, i) : (0, n.N)("gotoLineLabel", "Go to line {0}.", t); const o = e.getPosition() || { lineNumber: 1, column: 1 }, r = this.lineCount(e); return r > 1 ? (0, n.N)("gotoLineLabelEmptyWithLimit", "Current Line: {0}, Character: {1}. Type a line number between 1 and {2} to navigate to.", o.lineNumber, o.column, r) : (0, n.N)("gotoLineLabelEmpty", "Current Line: {0}, Character: {1}. Type a line number to navigate to.", o.lineNumber, o.column) } isValidLineNumber(e, t) { return !(!t || "number" != typeof t) && t > 0 && t <= this.lineCount( e) } isValidColumn(e, t, i) { if (!i || "number" != typeof i) return !1; const n = this.getModel(e); if (!n) return !1; const o = { lineNumber: t, column: i }; return n.validatePosition(o).equals(o) } lineCount(e) { var t, i; return null !== (i = null === (t = this.getModel(e)) || void 0 === t ? void 0 : t.getLineCount()) && void 0 !== i ? i : 0 } } a.PREFIX = ":"; var l = i(9872), d = i(725), c = i(1640), h = i(8401), u = i(913), g = i(4669), p = i(6830), m = i(9102), f = i(1157); let _ = class extends a { constructor(e) { super(), this.editorService = e, this.onDidActiveTextEditorControlChange = g.ju.None } get activeTextEditorControl() { return (0, h.f6)(this.editorService.getFocusedCodeEditor()) } }; var b, v; _ = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([(b = 0, v = c.$, function(e, t) { v(e, t, b) })], _), l.B.as(d.IP.Quickaccess).registerQuickAccessProvider({ ctor: _, prefix: _.PREFIX, helpEntries: [{ description: u.qq.gotoLineActionLabel, needsEditor: !0 }] }); class w extends p.R6 { constructor() { super({ id: "editor.action.gotoLine", label: u.qq.gotoLineActionLabel, alias: "Go to Line/Column...", precondition: void 0, kbOpts: { kbExpr: m.u.focus, primary: 2085, mac: { primary: 293 }, weight: 100 } }) } run(e) { e.get(f.eJ).quickAccess.show(_.PREFIX) } }(0, p.Qr)(w) }, 8936: (e, t, i) => { "use strict"; i.r(t), i.d(t, { GotoLineAction: () => W, StandaloneGotoSymbolQuickAccessProvider: () => P }), i(9899), i(4954); var n = i(3580), o = i(1050), r = i(5976), s = i(4314), a = i(8275), l = i(4101), d = i(6895), c = i(7295), h = i(5392), u = i(8721), g = i(1432); const p = [void 0, []]; function m(e, t, i = 0, n = 0) { const o = t; return o.values && o.values.length > 1 ? function(e, t, i, n) { let o = 0; const r = []; for (const s of t) { const [t, a] = f(e, s, i, n); if ("number" != typeof t) return p; o += t, r.push(...a) } return [o, _(r)] }(e, o.values, i, n) : f(e, t, i, n) } function f(e, t, i, n) { const o = (0, h.EW)(t.original, t.originalLowercase, i, e, e.toLowerCase(), n, !0); return o ? [o[0], (0, h.mB)(o)] : p } function _(e) { const t = e.sort(((e, t) => e.start - t.start)), i = []; let n; for (const e of t) !n || (r = e, (o = n).end < r.start || r.end < o.start) ? (n = e, i.push(e)) : (n.start = Math.min(n.start, e.start), n.end = Math.max(n.end, e.end)); var o, r; return i } function b(e) { return e.startsWith('"') && e.endsWith('"') } function v(e) { "string" != typeof e && (e = ""); const t = e.toLowerCase(), { pathNormalized: i, normalized: n, normalizedLowercase: o } = w(e), r = i.indexOf(u.ir) >= 0, s = b(e); let a; const l = e.split(" "); if (l.length > 1) for (const e of l) { const t = b(e), { pathNormalized: i, normalized: n, normalizedLowercase: o } = w(e); n && (a || (a = []), a.push({ original: e, originalLowercase: e.toLowerCase(), pathNormalized: i, normalized: n, normalizedLowercase: o, expectContiguousMatch: t })) } return { original: e, originalLowercase: t, pathNormalized: i, normalized: n, normalizedLowercase: o, values: a, containsPathSeparator: r, expectContiguousMatch: s } } function w(e) { let t; t = g.ED ? e.replace(/\//g, u.ir) : e.replace(/\\/g, u.ir); const i = (0, c.R1)(t).replace(/\s|"/g, ""); return { pathNormalized: t, normalized: i, normalizedLowercase: i.toLowerCase() } } function C(e) { return Array.isArray(e) ? v(e.map((e => e.original)).join(" ")) : v(e.original) } var y = i(3046), S = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; class x extends a.X { constructor(e = Object.create(null)) { super(e), this.options = e, this.options.canAcceptInBackground = !0 } provideWithoutTextEditor(e) { return this.provideLabelPick(e, (0, n.N)( "cannotRunGotoSymbolWithoutEditor", "To go to a symbol, first open a text editor with symbol information." )), r.JT.None } provideWithTextEditor(e, t, i) { const n = e.editor, o = this.getModel(n); return o ? l.vJ.has(o) ? this.doProvideWithEditorSymbols(e, o, t, i) : this.doProvideWithoutEditorSymbols(e, o, t, i) : r.JT.None } doProvideWithoutEditorSymbols(e, t, i, o) { const s = new r.SL; return this.provideLabelPick(i, (0, n.N)( "cannotRunGotoSymbolWithoutSymbolProvider", "The active text editor does not provide symbol information.")), (() => { S(this, void 0, void 0, (function*() { (yield this.waitForLanguageSymbolRegistry(t, s)) && !o.isCancellationRequested && s.add(this.doProvideWithEditorSymbols(e, t, i, o)) })) })(), s } provideLabelPick(e, t) { e.items = [{ label: t, index: 0, kind: 14 }], e.ariaLabel = t } waitForLanguageSymbolRegistry(e, t) { return S(this, void 0, void 0, (function*() { if (l.vJ.has(e)) return !0; let i; const n = new Promise((e => i = e)), o = t.add(l.vJ.onDidChange((() => { l.vJ.has(e) && (o.dispose(), i(!0)) }))); return t.add((0, r.OF)((() => i(!1)))), n })) } doProvideWithEditorSymbols(e, t, i, s) { const a = e.editor, l = new r.SL; l.add(i.onDidAccept((t => { const [n] = i.selectedItems; n && n.range && (this.gotoLocation(e, { range: n.range.selection, keyMods: i.keyMods, preserveFocus: t.inBackground }), t.inBackground || i.hide()) }))), l.add(i.onDidTriggerItemButton((({ item: t }) => { t && t.range && (this.gotoLocation(e, { range: t.range.selection, keyMods: i.keyMods, forceSideBySide: !0 }), i.hide()) }))); const d = this.getDocumentSymbols(t, s); let c; const h = () => S(this, void 0, void 0, (function*() { null == c || c.dispose(!0), i.busy = !1, c = new o.A(s), i.busy = ! 0; try { const e = v(i.value.substr(x.PREFIX.length).trim()), t = yield this.doGetSymbolPicks(d, e, void 0, c.token); if (s.isCancellationRequested) return; t.length > 0 ? i.items = t : e.original.length > 0 ? this.provideLabelPick( i, (0, n.N)("noMatchingSymbolResults", "No matching editor symbols")) : this.provideLabelPick(i, (0, n.N)("noSymbolResults", "No editor symbols")) } finally { s.isCancellationRequested || (i.busy = !1) } })); l.add(i.onDidChangeValue((() => h()))), h(); let u = !0; return l.add(i.onDidChangeActive((() => { const [e] = i.activeItems; if (e && e.range) { if (u) return void(u = !1); a.revealRangeInCenter(e.range.selection, 0), this.addDecorations( a, e.range.decoration) } }))), l } doGetSymbolPicks(e, t, i, o) { return S(this, void 0, void 0, (function*() { const r = yield e; if (o.isCancellationRequested) return []; const a = 0 === t.original.indexOf(x.SCOPE_PREFIX), d = a ? 1 : 0; let h, u; t.values && t.values.length > 1 ? (h = C(t.values[0]), u = C(t.values .slice(1))) : h = t; const g = []; for (let e = 0; e < r.length; e++) { const o = r[e], a = (0, c.fy)(o.name), p = `$(symbol-${l.uZ.toString(o.kind)||"property"}) ${a}`, f = p.length - a.length; let _, b, v, w, C = o.containerName; if ((null == i ? void 0 : i.extraContainerLabel) && (C = C ? `${i.extraContainerLabel} • ${C}` : i.extraContainerLabel), t.original .length > d) { let e = !1; if (h !== t && ([_, b] = m(p, Object.assign(Object.assign({}, t), { values: void 0 }), d, f), "number" == typeof _ && (e = !0)), "number" != typeof _ && ([_, b] = m(p, h, d, f), "number" != typeof _)) continue; if (!e && u) { if (C && u.original.length > 0 && ([v, w] = m(C, u)), "number" != typeof v) continue; "number" == typeof _ && (_ += v) } } const S = o.tags && o.tags.indexOf(1) >= 0; g.push({ index: e, kind: o.kind, score: _, label: p, ariaLabel: a, description: C, highlights: S ? void 0 : { label: b, description: w }, range: { selection: s.e.collapseToStart(o.selectionRange), decoration: o.range }, strikethrough: S, buttons: (() => { var e, t; const i = (null === (e = this.options) || void 0 === e ? void 0 : e.openSideBySideDirection) ? null === (t = this .options) || void 0 === t ? void 0 : t.openSideBySideDirection() : void 0; if (i) return [{ iconClass: "right" === i ? y.lA.splitHorizontal.classNames : y .lA.splitVertical.classNames, tooltip: "right" === i ? (0, n.N)("openToSide", "Open to the Side") : (0, n.N)("openToBottom", "Open to the Bottom") }] })() }) } const p = g.sort(((e, t) => a ? this.compareByKindAndScore(e, t) : this.compareByScore(e, t))); let f = []; if (a) { let e, t, i = 0; function n() { t && "number" == typeof e && i > 0 && (t.label = (0, c.WU)(L[e] || k, i)) } for (const o of p) e !== o.kind ? (n(), e = o.kind, i = 1, t = { type: "separator" }, f.push(t)) : i++, f.push(o); n() } else p.length > 0 && (f = [{ label: (0, n.N)("symbols", "symbols ({0})", g.length), type: "separator" }, ...p]); return f })) } compareByScore(e, t) { if ("number" != typeof e.score && "number" == typeof t.score) return 1; if ("number" == typeof e.score && "number" != typeof t.score) return - 1; if ("number" == typeof e.score && "number" == typeof t.score) { if (e.score > t.score) return -1; if (e.score < t.score) return 1 } return e.index < t.index ? -1 : e.index > t.index ? 1 : 0 } compareByKindAndScore(e, t) { const i = L[e.kind] || k, n = L[t.kind] || k, o = i.localeCompare(n); return 0 === o ? this.compareByScore(e, t) : o } getDocumentSymbols(e, t) { return S(this, void 0, void 0, (function*() { const i = yield d.C3.create(e, t); return t.isCancellationRequested ? [] : i.asListOfDocumentSymbols() })) } } x.PREFIX = "@", x.SCOPE_PREFIX = ":", x.PREFIX_BY_CATEGORY = `${x.PREFIX}${x.SCOPE_PREFIX}`; const k = (0, n.N)("property", "properties ({0})"), L = { 5: (0, n.N)("method", "methods ({0})"), 11: (0, n.N)("function", "functions ({0})"), 8: (0, n.N)("_constructor", "constructors ({0})"), 12: (0, n.N)("variable", "variables ({0})"), 4: (0, n.N)("class", "classes ({0})"), 22: (0, n.N)("struct", "structs ({0})"), 23: (0, n.N)("event", "events ({0})"), 24: (0, n.N)("operator", "operators ({0})"), 10: (0, n.N)("interface", "interfaces ({0})"), 2: (0, n.N)("namespace", "namespaces ({0})"), 3: (0, n.N)("package", "packages ({0})"), 25: (0, n.N)("typeParameter", "type parameters ({0})"), 1: (0, n.N)("modules", "modules ({0})"), 6: (0, n.N)("property", "properties ({0})"), 9: (0, n.N)("enum", "enumerations ({0})"), 21: (0, n.N)("enumMember", "enumeration members ({0})"), 14: (0, n.N)("string", "strings ({0})"), 0: (0, n.N)("file", "files ({0})"), 17: (0, n.N)("array", "arrays ({0})"), 15: (0, n.N)("number", "numbers ({0})"), 16: (0, n.N)("boolean", "booleans ({0})"), 18: (0, n.N)("object", "objects ({0})"), 19: (0, n.N)("key", "keys ({0})"), 7: (0, n.N)("field", "fields ({0})"), 13: (0, n.N)("constant", "constants ({0})") }; var N = i(9872), D = i(725), E = i(1640), I = i(8401), T = i(913), M = i(4669), A = i(6830), R = i(9102), O = i(1157); let P = class extends x { constructor(e) { super(), this.editorService = e, this.onDidActiveTextEditorControlChange = M.ju.None } get activeTextEditorControl() { return (0, I.f6)(this.editorService.getFocusedCodeEditor()) } }; var F, B; P = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([(F = 0, B = E.$, function(e, t) { B(e, t, F) })], P), N.B.as(D.IP.Quickaccess).registerQuickAccessProvider({ ctor: P, prefix: x.PREFIX, helpEntries: [{ description: T.aq.quickOutlineActionLabel, prefix: x.PREFIX, needsEditor: !0 }, { description: T.aq.quickOutlineByCategoryActionLabel, prefix: x.PREFIX_BY_CATEGORY, needsEditor: !0 }] }); class W extends A.R6 { constructor() { super({ id: "editor.action.quickOutline", label: T.aq.quickOutlineActionLabel, alias: "Go to Symbol...", precondition: R.u.hasDocumentSymbolProvider, kbOpts: { kbExpr: R.u.focus, primary: 3117, weight: 100 }, contextMenuOpts: { group: "navigation", order: 3 } }) } run(e) { e.get(O.eJ).quickAccess.show(x.PREFIX) } }(0, A.Qr)(W) }, 8944: (e, t, i) => { "use strict"; i.r(t); var n = i(9872), o = i(725), r = i(913), s = i(5976), a = i(3580), l = i(1157); let d = class e { constructor(e) { this.quickInputService = e, this.registry = n.B.as(o.IP.Quickaccess) } provide(t) { const i = new s.SL; i.add(t.onDidAccept((() => { const [e] = t.selectedItems; e && this.quickInputService.quickAccess.show(e.prefix, { preserveValue: !0 }) }))), i.add(t.onDidChangeValue((t => { const i = this.registry.getQuickAccessProvider(t.substr(e.PREFIX .length)); i && i.prefix && i.prefix !== e.PREFIX && this.quickInputService .quickAccess.show(i.prefix, { preserveValue: !0 }) }))); const { editorProviders: n, globalProviders: o } = this.getQuickAccessProviders(); return t.items = 0 === n.length || 0 === o.length ? [...0 === n.length ? o : n ] : [{ label: (0, a.N)("globalCommands", "global commands"), type: "separator" }, ...o, { label: (0, a.N)("editorCommands", "editor commands"), type: "separator" }, ...n], i } getQuickAccessProviders() { const t = [], i = []; for (const n of this.registry.getQuickAccessProviders().sort(((e, t) => e.prefix.localeCompare(t.prefix)))) if (n.prefix !== e.PREFIX) for (const e of n.helpEntries) { const o = e.prefix || n.prefix, r = o || "…"; (e.needsEditor ? i : t).push({ prefix: o, label: r, ariaLabel: (0, a.N)("helpPickAriaLabel", "{0}, {1}", r, e.description), description: e.description }) } return { editorProviders: i, globalProviders: t } } }; var c, h; d.PREFIX = "?", d = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([(c = 0, h = l.eJ, function(e, t) { h(e, t, c) })], d), n.B.as(o.IP.Quickaccess).registerQuickAccessProvider({ ctor: d, prefix: "", helpEntries: [{ description: r.ld.helpQuickAccessActionLabel, needsEditor: !0 }] }) }, 5048: (e, t, i) => { "use strict"; i.r(t), i.d(t, { StandaloneReferencesController: () => u }); var n = i(6830), o = i(1640), r = i(2406), s = i(3108), a = i(8819), l = i(2065), d = i(9422), c = i(6904), h = function(e, t) { return function(i, n) { t(i, n, e) } }; let u = class extends r.J { constructor(e, t, i, n, o, r, s) { super(!0, e, t, i, n, o, r, s) } }; u = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([h(1, a.i6), h(2, o.$), h(3, d.lT), h(4, l.TG), h(5, c.Uy), h(6, s.Ui)], u), (0, n._K)(r.J.ID, u) }, 5662: (e, t, i) => { "use strict"; i.r(t); var n = i(6830), o = i(2095), r = i(913); class s extends n.R6 { constructor() { super({ id: "editor.action.toggleHighContrast", label: r.xi.toggleHighContrast, alias: "Toggle High Contrast Theme", precondition: void 0 }), this._originalThemeName = null } run(e, t) { const i = e.get(o.Z); this._originalThemeName ? (i.setTheme(this._originalThemeName), this._originalThemeName = null) : (this._originalThemeName = i.getColorTheme().themeName, i.setTheme( "hc-black")) } }(0, n.Qr)(s) }, 2095: (e, t, i) => { "use strict"; i.d(t, { Z: () => n }); const n = (0, i(2065).yh)("themeService") }, 1460: (e, t, i) => { "use strict"; i.d(t, { Q5: () => n.Emitter, ZL: () => n.MarkerSeverity, e6: () => n.Range, Sf: () => n.Uri, j6: () => n.editor, Mj: () => n.languages }); var n = i(158) }, 605: (e, t, i) => { "use strict"; i.r(t), i.d(t, { cssDefaults: () => a, scssDefaults: () => l, lessDefaults: () => d }), i(158); var n = i(1460), o = function() { function e(e, t, i) { this._onDidChange = new n.Q5, this._languageId = e, this.setOptions(t), this.setModeConfiguration(i) } return Object.defineProperty(e.prototype, "onDidChange", { get: function() { return this._onDidChange.event }, enumerable: !1, configurable: !0 }), Object.defineProperty(e.prototype, "languageId", { get: function() { return this._languageId }, enumerable: !1, configurable: !0 }), Object.defineProperty(e.prototype, "modeConfiguration", { get: function() { return this._modeConfiguration }, enumerable: !1, configurable: !0 }), Object.defineProperty(e.prototype, "diagnosticsOptions", { get: function() { return this.options }, enumerable: !1, configurable: !0 }), Object.defineProperty(e.prototype, "options", { get: function() { return this._options }, enumerable: !1, configurable: !0 }), e.prototype.setOptions = function(e) { this._options = e || Object.create(null), this._onDidChange.fire(this) }, e.prototype.setDiagnosticsOptions = function(e) { this.setOptions(e) }, e.prototype.setModeConfiguration = function(e) { this._modeConfiguration = e || Object.create(null), this._onDidChange .fire(this) }, e }(), r = { 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 } }, s = { completionItems: !0, hovers: !0, documentSymbols: !0, definitions: !0, references: !0, documentHighlights: !0, rename: !0, colors: !0, foldingRanges: !0, diagnostics: !0, selectionRanges: !0 }, a = new o("css", r, s), l = new o("scss", r, s), d = new o("less", r, s); function c() { return i.e(403).then(i.bind(i, 2403)) } n.Mj.css = { cssDefaults: a, lessDefaults: d, scssDefaults: l }, n.Mj.onLanguage("less", (function() { c().then((function(e) { return e.setupMode(d) })) })), n.Mj.onLanguage("scss", (function() { c().then((function(e) { return e.setupMode(l) })) })), n.Mj.onLanguage("css", (function() { c().then((function(e) { return e.setupMode(a) })) })) }, 7650: (e, t, i) => { "use strict"; i.d(t, { Q5: () => n.Emitter, e6: () => n.Range, Sf: () => n.Uri, j6: () => n.editor, Mj: () => n.languages }); var n = i(158) }, 8423: (e, t, i) => { "use strict"; i.r(t), i.d(t, { htmlLanguageService: () => c, htmlDefaults: () => h, handlebarLanguageService: () => u, handlebarDefaults: () => g, razorLanguageService: () => p, razorDefaults: () => m, registerHTMLLanguageService: () => f }), i(158); var n = i(7650), o = function() { function e(e, t, i) { this._onDidChange = new n.Q5, this._languageId = e, this.setOptions(t), this.setModeConfiguration(i) } return Object.defineProperty(e.prototype, "onDidChange", { get: function() { return this._onDidChange.event }, enumerable: !1, configurable: !0 }), Object.defineProperty(e.prototype, "languageId", { get: function() { return this._languageId }, enumerable: !1, configurable: !0 }), Object.defineProperty(e.prototype, "options", { get: function() { return this._options }, enumerable: !1, configurable: !0 }), Object.defineProperty(e.prototype, "modeConfiguration", { get: function() { return this._modeConfiguration }, enumerable: !1, configurable: !0 }), e.prototype.setOptions = function(e) { this._options = e || Object.create(null), this._onDidChange.fire(this) }, e.prototype.setModeConfiguration = function(e) { this._modeConfiguration = e || Object.create(null), this._onDidChange .fire(this) }, e }(), r = { format: { 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: null, indentHandlebars: !1, endWithNewline: !1, extraLiners: "head, body, /html", wrapAttributes: "auto" }, suggest: {}, data: { useDefaultDataProvider: !0 } }; function s(e) { return { completionItems: !0, hovers: !0, documentSymbols: !0, links: !0, documentHighlights: !0, rename: !0, colors: !0, foldingRanges: !0, selectionRanges: !0, diagnostics: e === a, documentFormattingEdits: e === a, documentRangeFormattingEdits: e === a } } var a = "html", l = "handlebars", d = "razor", c = f(a, r, s(a)), h = c.defaults, u = f(l, r, s(l)), g = u.defaults, p = f(d, r, s(d)), m = p.defaults; function f(e, t, a) { var l = this; void 0 === t && (t = r), void 0 === a && (a = s(e)); var d, c = new o(e, t, a), h = n.Mj.onLanguage(e, (function() { return e = l, t = void 0, o = function() { return function(e, t) { var i, n, o, r, s = { label: 0, sent: function() { if (1 & o[0]) throw o[1]; return o[1] }, trys: [], ops: [] }; return r = { next: a(0), throw: a(1), return: a(2) }, "function" == typeof Symbol && (r[Symbol.iterator] = function() { return this }), r; function a(r) { return function(a) { return function(r) { if (i) throw new TypeError( "Generator is already executing."); for (; s;) try { if (i = 1, n && (o = 2 & r[0] ? n.return : r[0] ? n.throw || ((o = n.return) && o.call(n), 0) : n.next) && !(o = o.call( n, r[1])).done) return o; switch (n = 0, o && (r = [2 & r[0], o.value]), r[0]) { case 0: case 1: o = r; break; case 4: return s.label++, { value: r[1], done: !1 }; case 5: s.label++, n = r[1], r = [0]; continue; case 7: r = s.ops.pop(), s.trys.pop(); continue; default: if (!((o = (o = s.trys).length > 0 && o[o.length - 1]) || 6 !== r[0] && 2 !== r[0])) { s = 0; continue } if (3 === r[0] && (!o || r[1] > o[0] && r[1] < o[3])) { s.label = r[1]; break } if (6 === r[0] && s.label < o[1]) { s.label = o[1], o = r; break } if (o && s.label < o[2]) { s.label = o[2], s.ops.push(r); break } o[2] && s.ops.pop(), s.trys.pop(); continue } r = t.call(e, s) } catch (e) { r = [6, e], n = 0 } finally { i = o = 0 } if (5 & r[0]) throw r[1]; return { value: r[0] ? r[1] : void 0, done: !0 } }([r, a]) } } }(this, (function(e) { switch (e.label) { case 0: return [4, i.e(706).then(i.bind(i, 6706))]; case 1: return d = e.sent().setupMode(c), [2] } })) }, new((n = void 0) || (n = Promise))((function(i, r) { function s(e) { try { l(o.next(e)) } catch (e) { r(e) } } function a(e) { try { l(o.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? i(e.value) : (t = e.value, t instanceof n ? t : new n( (function(e) { e(t) }))).then(s, a) } l((o = o.apply(e, t || [])).next()) })); var e, t, n, o })); return { defaults: c, dispose: function() { h.dispose(), null == d || d.dispose(), d = void 0 } } } n.Mj.html = { htmlDefaults: h, razorDefaults: m, handlebarDefaults: g, htmlLanguageService: c, handlebarLanguageService: u, razorLanguageService: p, registerHTMLLanguageService: f } }, 1174: (e, t, i) => { "use strict"; i.d(t, { Q5: () => n.Emitter, ZL: () => n.MarkerSeverity, e6: () => n.Range, j6: () => n.editor, Mj: () => n.languages }); var n = i(158) }, 2323: (e, t, i) => { "use strict"; i.r(t), i.d(t, { jsonDefaults: () => o }), i(158); var n = i(1174), o = new(function() { function e(e, t, i) { this._onDidChange = new n.Q5, this._languageId = e, this.setDiagnosticsOptions( t), this.setModeConfiguration(i) } return Object.defineProperty(e.prototype, "onDidChange", { get: function() { return this._onDidChange.event }, enumerable: !1, configurable: !0 }), Object.defineProperty(e.prototype, "languageId", { get: function() { return this._languageId }, enumerable: !1, configurable: !0 }), Object.defineProperty(e.prototype, "modeConfiguration", { get: function() { return this._modeConfiguration }, enumerable: !1, configurable: !0 }), Object.defineProperty(e.prototype, "diagnosticsOptions", { get: function() { return this._diagnosticsOptions }, enumerable: !1, configurable: !0 }), e.prototype.setDiagnosticsOptions = function(e) { this._diagnosticsOptions = e || Object.create(null), this._onDidChange .fire(this) }, e.prototype.setModeConfiguration = function(e) { this._modeConfiguration = e || Object.create(null), this._onDidChange .fire(this) }, e }())("json", { validate: !0, allowComments: !0, schemas: [], enableSchemaRequest: !1, schemaRequest: "warning", schemaValidation: "warning", comments: "error", trailingCommas: "error" }, { documentFormattingEdits: !0, documentRangeFormattingEdits: !0, completionItems: !0, hovers: !0, documentSymbols: !0, tokens: !0, colors: !0, foldingRanges: !0, diagnostics: !0, selectionRanges: !0 }); n.Mj.json = { jsonDefaults: o }, n.Mj.register({ id: "json", extensions: [".json", ".bowerrc", ".jshintrc", ".jscsrc", ".eslintrc", ".babelrc", ".har" ], aliases: ["JSON", "json"], mimetypes: ["application/json"] }), n.Mj.onLanguage("json", (function() { i.e(99).then(i.bind(i, 1099)).then((function(e) { return e.setupMode(o) })) })) }, 1429: (e, t, i) => { "use strict"; i.d(t, { Q5: () => n.Emitter, ZL: () => n.MarkerSeverity, eB: () => n.MarkerTag, e6: () => n.Range, Sf: () => n.Uri, j6: () => n.editor, Mj: () => n.languages }); var n = i(158) }, 8828: (e, t, i) => { "use strict"; i.r(t), i.d(t, { JsxEmit: () => o, ModuleKind: () => n, ModuleResolutionKind: () => a, NewLineKind: () => r, ScriptTarget: () => s, getJavaScriptWorker: () => p, getTypeScriptWorker: () => g, javascriptDefaults: () => u, typescriptDefaults: () => h, typescriptVersion: () => c }), i(158); var n, o, r, s, a, l = i(1429); ! function(e) { e[e.None = 0] = "None", e[e.CommonJS = 1] = "CommonJS", e[e.AMD = 2] = "AMD", e[e.UMD = 3] = "UMD", e[e.System = 4] = "System", e[e.ES2015 = 5] = "ES2015", e[e.ESNext = 99] = "ESNext" }(n || (n = {})), function(e) { e[e.None = 0] = "None", e[e.Preserve = 1] = "Preserve", e[e.React = 2] = "React", e[e.ReactNative = 3] = "ReactNative", e[e.ReactJSX = 4] = "ReactJSX", e[e.ReactJSXDev = 5] = "ReactJSXDev" }(o || (o = {})), function(e) { e[e.CarriageReturnLineFeed = 0] = "CarriageReturnLineFeed", e[e.LineFeed = 1] = "LineFeed" }(r || (r = {})), function(e) { e[e.ES3 = 0] = "ES3", e[e.ES5 = 1] = "ES5", e[e.ES2015 = 2] = "ES2015", e[e.ES2016 = 3] = "ES2016", e[e.ES2017 = 4] = "ES2017", e[e.ES2018 = 5] = "ES2018", e[e.ES2019 = 6] = "ES2019", e[e.ES2020 = 7] = "ES2020", e[e.ESNext = 99] = "ESNext", e[e.JSON = 100] = "JSON", e[e.Latest = 99] = "Latest" }(s || (s = {})), function(e) { e[e.Classic = 1] = "Classic", e[e.NodeJs = 2] = "NodeJs" }(a || (a = {})); var d = function() { function e(e, t, i, n) { this._onDidChange = new l.Q5, this._onDidExtraLibsChange = new l.Q5, this._extraLibs = Object.create(null), this._removedExtraLibs = Object.create(null), this._eagerModelSync = !1, this.setCompilerOptions( e), this.setDiagnosticsOptions(t), this.setWorkerOptions(i), this.setInlayHintsOptions( n), this._onDidExtraLibsChangeTimeout = -1 } return Object.defineProperty(e.prototype, "onDidChange", { get: function() { return this._onDidChange.event }, enumerable: !1, configurable: !0 }), Object.defineProperty(e.prototype, "onDidExtraLibsChange", { get: function() { return this._onDidExtraLibsChange.event }, enumerable: !1, configurable: !0 }), Object.defineProperty(e.prototype, "workerOptions", { get: function() { return this._workerOptions }, enumerable: !1, configurable: !0 }), Object.defineProperty(e.prototype, "inlayHintsOptions", { get: function() { return this._inlayHintsOptions }, enumerable: !1, configurable: !0 }), e.prototype.getExtraLibs = function() { return this._extraLibs }, e.prototype.addExtraLib = function(e, t) { var i, n = this; if (i = void 0 === t ? "ts:extralib-" + Math.random().toString(36).substring( 2, 15) : t, this._extraLibs[i] && this._extraLibs[i].content === e) return { dispose: function() {} }; var o = 1; return this._removedExtraLibs[i] && (o = this._removedExtraLibs[i] + 1), this._extraLibs[i] && (o = this._extraLibs[i].version + 1), this._extraLibs[i] = { content: e, version: o }, this._fireOnDidExtraLibsChangeSoon(), { dispose: function() { var e = n._extraLibs[i]; e && e.version === o && (delete n._extraLibs[i], n._removedExtraLibs[ i] = o, n._fireOnDidExtraLibsChangeSoon()) } } }, e.prototype.setExtraLibs = function(e) { for (var t in this._extraLibs) this._removedExtraLibs[t] = this._extraLibs[ t].version; if (this._extraLibs = Object.create(null), e && e.length > 0) for (var i = 0, n = e; i < n.length; i++) { var o = n[i], r = (t = o.filePath || "ts:extralib-" + Math.random().toString(36) .substring(2, 15), o.content), s = 1; this._removedExtraLibs[t] && (s = this._removedExtraLibs[t] + 1), this._extraLibs[t] = { content: r, version: s } } this._fireOnDidExtraLibsChangeSoon() }, e.prototype._fireOnDidExtraLibsChangeSoon = function() { var e = this; - 1 === this._onDidExtraLibsChangeTimeout && (this._onDidExtraLibsChangeTimeout = setTimeout((function() { e._onDidExtraLibsChangeTimeout = -1, e._onDidExtraLibsChange.fire( void 0) }), 0)) }, e.prototype.getCompilerOptions = function() { return this._compilerOptions }, e.prototype.setCompilerOptions = function(e) { this._compilerOptions = e || Object.create(null), this._onDidChange.fire( void 0) }, e.prototype.getDiagnosticsOptions = function() { return this._diagnosticsOptions }, e.prototype.setDiagnosticsOptions = function(e) { this._diagnosticsOptions = e || Object.create(null), this._onDidChange .fire(void 0) }, e.prototype.setWorkerOptions = function(e) { this._workerOptions = e || Object.create(null), this._onDidChange.fire( void 0) }, e.prototype.setInlayHintsOptions = function(e) { this._inlayHintsOptions = e || Object.create(null), this._onDidChange .fire(void 0) }, e.prototype.setMaximumWorkerIdleTime = function(e) {}, e.prototype.setEagerModelSync = function(e) { this._eagerModelSync = e }, e.prototype.getEagerModelSync = function() { return this._eagerModelSync }, e }(), c = "4.4.2", h = new d({ allowNonTsExtensions: !0, target: s.Latest }, { noSemanticValidation: !1, noSyntaxValidation: !1, onlyVisible: !1 }, {}, {}), u = new d({ allowNonTsExtensions: !0, allowJs: !0, target: s.Latest }, { noSemanticValidation: !0, noSyntaxValidation: !1, onlyVisible: !1 }, {}, {}), g = function() { return m().then((function(e) { return e.getTypeScriptWorker() })) }, p = function() { return m().then((function(e) { return e.getJavaScriptWorker() })) }; function m() { return i.e(183).then(i.bind(i, 8183)) } l.Mj.typescript = { ModuleKind: n, JsxEmit: o, NewLineKind: r, ScriptTarget: s, ModuleResolutionKind: a, typescriptVersion: c, typescriptDefaults: h, javascriptDefaults: u, getTypeScriptWorker: g, getJavaScriptWorker: p }, l.Mj.onLanguage("typescript", (function() { return m().then((function(e) { return e.setupTypeScript(h) })) })), l.Mj.onLanguage("javascript", (function() { return m().then((function(e) { return e.setupJavaScript(u) })) })) }, 3580: (e, t, i) => { "use strict"; function n(e, t, ...i) { return function(e, t) { let i; return i = 0 === t.length ? e : e.replace(/\{(\d+)\}/g, (function(e, i) { const n = i[0]; return void 0 !== t[n] ? t[n] : e })), i }(t, i) } i.d(t, { N: () => n }) }, 1106: (e, t, i) => { "use strict"; i.d(t, { F: () => o, U: () => r }); var n = i(8819); const o = (0, i(2065).yh)("accessibilityService"), r = new n.uy("accessibilityModeEnabled", !1) }, 1133: (e, t, i) => { "use strict"; i.d(t, { Mm: () => j, Id: () => q, vr: () => U }); var n = i(5321), o = i(9069), r = i(6033), s = i(553), a = i(4741), l = i(4669), d = i(3379), c = i.n(d), h = i(7795), u = i.n(h), g = i(569), p = i.n(g), m = i(3565), f = i.n(m), _ = i(9216), b = i.n(_), v = i(4589), w = i.n(v), C = i(5035), y = {}; y.styleTagTransform = w(), y.setAttributes = f(), y.insert = p().bind( null, "head"), y.domAPI = u(), y.insertStyleElement = b(), c()(C.Z, y), C.Z && C.Z.locals && C.Z.locals; class S extends a.Wi { constructor(e, t) { super(), this._onDidChangeVisibility = new l.Q5, this.onDidChangeVisibility = this._onDidChangeVisibility.event, this._element = (0, n.R3)(e, (0, n.$)(".monaco-dropdown")), this._label = (0, n.R3)(this._element, ( 0, n.$)(".dropdown-label")); let i = t.labelRenderer; i || (i = e => (e.textContent = t.label || "", null)); for (const e of[n.tw.CLICK, n.tw.MOUSE_DOWN, s.t.Tap]) this._register( (0, n.nm)(this.element, e, (e => n.zB.stop(e, !0)))); for (const e of[n.tw.MOUSE_DOWN, s.t.Tap]) this._register((0, n.nm)( this._label, e, (e => { e instanceof MouseEvent && e.detail > 1 || (this.visible ? this.hide() : this.show()) }))); this._register((0, n.nm)(this._label, n.tw.KEY_UP, (e => { const t = new o.y(e); (t.equals(3) || t.equals(10)) && (n.zB.stop(e, !0), this.visible ? this.hide() : this.show()) }))); const r = i(this._label); r && this._register(r), this._register(s.o.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 x extends S { constructor(e, t) { super(e, t), this._actions = [], this._contextMenuProvider = t.contextMenuProvider, this.actions = t.actions || [], this.actionProvider = t.actionProvider, this.menuClassName = t.menuClassName || "", this.menuAsChild = !!t.menuAsChild } set menuOptions(e) { this._menuOptions = e } get menuOptions() { return this._menuOptions } get actions() { return this.actionProvider ? this.actionProvider.getActions() : this._actions } set actions(e) { this._actions = e } show() { super.show(), this.element.classList.add("active"), this._contextMenuProvider .showContextMenu({ getAnchor: () => this.element, getActions: () => this.actions, getActionsContext: () => this.menuOptions ? this.menuOptions.context : null, getActionViewItem: e => this.menuOptions && this.menuOptions.actionViewItemProvider ? this.menuOptions.actionViewItemProvider(e) : void 0, getKeyBinding: e => this.menuOptions && this.menuOptions.getKeyBinding ? this.menuOptions.getKeyBinding(e) : void 0, getMenuClassName: () => this.menuClassName, onHide: () => this.onHide(), actionRunner: this.menuOptions ? this.menuOptions.actionRunner : void 0, anchorAlignment: this.menuOptions ? this.menuOptions.anchorAlignment : 0, domForShadowRoot: this.menuAsChild ? this.element : void 0 }) } hide() { super.hide() } onHide() { this.hide(), this.element.classList.remove("active") } } class k extends r.Y { constructor(e, t, i, n = Object.create(null)) { super(null, e, n), this.actionItem = null, this._onDidChangeVisibility = this._register(new l.Q5), this.menuActionsOrProvider = t, this.contextMenuProvider = i, this.options = n, this.options.actionRunner && (this.actionRunner = this.options.actionRunner) } render(e) { this.actionItem = e; const t = Array.isArray(this.menuActionsOrProvider), i = { contextMenuProvider: this.contextMenuProvider, labelRenderer: e => { this.element = (0, n.R3)(e, (0, n.$)("a.action-label")); let t = []; return "string" == typeof this.options.classNames ? t = this.options .classNames.split(/\s+/g).filter((e => !!e)) : this.options.classNames && (t = this.options.classNames), t.find((e => "icon" === e)) || t.push( "codicon"), this.element.classList.add(...t), this.element.setAttribute( "role", "button"), this.element.setAttribute("aria-haspopup", "true"), this.element.setAttribute("aria-expanded", "false"), this.element.title = this._action.label || "", null }, menuAsChild: this.options.menuAsChild, actions: t ? this.menuActionsOrProvider : void 0, actionProvider: t ? void 0 : this.menuActionsOrProvider }; if (this.dropdownMenu = this._register(new x(e, i)), this._register( this.dropdownMenu.onDidChangeVisibility((e => { var t; null === (t = this.element) || void 0 === t || t.setAttribute( "aria-expanded", `${e}`), this._onDidChangeVisibility.fire(e) }))), this.dropdownMenu.menuOptions = { actionViewItemProvider: this.options.actionViewItemProvider, actionRunner: this.actionRunner, getKeyBinding: this.options.keybindingProvider, context: this._context }, this.options.anchorAlignmentProvider) { const e = this; this.dropdownMenu.menuOptions = Object.assign(Object.assign({}, this .dropdownMenu.menuOptions), {get anchorAlignment() { return e.options.anchorAlignmentProvider() } }) } this.updateEnabled() } setActionContext(e) { super.setActionContext(e), this.dropdownMenu && (this.dropdownMenu.menuOptions ? this.dropdownMenu.menuOptions.context = e : this.dropdownMenu.menuOptions = { context: e }) } updateEnabled() { var e, t; const i = !this.getAction().enabled; null === (e = this.actionItem) || void 0 === e || e.classList.toggle( "disabled", i), null === (t = this.element) || void 0 === t || t.classList .toggle("disabled", i) } } var L = i(8030), N = i(5976), D = i(1432), E = i(1854), I = {}; I.styleTagTransform = w(), I.setAttributes = f(), I.insert = p().bind( null, "head"), I.domAPI = u(), I.insertStyleElement = b(), c()(E.Z, I), E.Z && E.Z.locals && E.Z.locals; var T = i(3580), M = i(4144), A = i(8819), R = i(5606), O = i(2065), P = i(1847), F = i(9422), B = i(6904), W = i(7781), z = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }, V = function(e, t) { return function(i, n) { t(i, n, e) } }, H = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; function U(e, t, i, n, o, r, s) { const l = e.getActions(t); return function(e, t, i, n = (e => "navigation" === e), o = Number.MAX_SAFE_INTEGER, r = (() => !1), s = !1) { let l, d; Array.isArray(t) ? (l = t, d = t) : (l = t.primary, d = t.secondary); const c = new Set; for (const [t, o] of e) { let e; n(t) ? (e = l, e.length > 0 && s && e.push(new a.Z0)) : (e = d, e.length > 0 && e.push(new a.Z0)); for (let n of o) { i && (n = n instanceof M.U8 && n.alt ? n.alt : n); const o = e.push(n); n instanceof a.wY && c.add({ group: t, action: n, index: o - 1 }) } } for (const { group: e, action: t, index: i } of c) { const s = n(e) ? l : d, a = t.actions; (a.length <= 1 || s.length + a.length - 2 <= o) && r(t, e, s.length) && s.splice(i, 1, ...a) } if (l !== d && l.length > o) { const e = l.splice(o, l.length - o); d.unshift(...e, new a.Z0) } }(l, i, !1, "string" == typeof n ? e => e === n : n, o, r, s), function(e) { const t = new N.SL; for (const [, i] of e) for (const e of i) t.add(e); return t }(l) } let j = class extends r.g { constructor(e, t, i, o, r) { super(void 0, e, { icon: !(!e.class && !e.item.icon), label: !e.class && !e.item.icon, draggable: null == t ? void 0 : t.draggable }), this._keybindingService = i, this._notificationService = o, this ._contextKeyService = r, this._wantsAltCommand = !1, this._itemClassDispose = this._register(new N.XK), this._altKey = n._q.getInstance() } get _menuItemAction() { return this._action } get _commandAction() { return this._wantsAltCommand && this._menuItemAction.alt || this._menuItemAction } onClick(e) { return H(this, void 0, void 0, (function*() { e.preventDefault(), e.stopPropagation(); try { yield this.actionRunner.run(this._commandAction, this._context) } catch (e) { this._notificationService.error(e) } })) } render(e) { super.render(e), e.classList.add("menu-entry"), this._updateItemClass( this._menuItemAction.item); let t = !1, i = this._altKey.keyStatus.altKey || (D.ED || D.IJ) && this._altKey.keyStatus .shiftKey; const o = () => { const e = t && i; e !== this._wantsAltCommand && (this._wantsAltCommand = e, this.updateLabel(), this.updateTooltip(), this.updateClass()) }; this._menuItemAction.alt && this._register(this._altKey.event((e => { i = e.altKey || (D.ED || D.IJ) && e.shiftKey, o() }))), this._register((0, n.nm)(e, "mouseleave", (e => { t = !1, o() }))), this._register((0, n.nm)(e, "mouseenter", (e => { t = !0, o() }))) } updateLabel() { this.options.label && this.label && (this.label.textContent = this._commandAction .label) } updateTooltip() { if (this.label) { const e = this._keybindingService.lookupKeybinding(this._commandAction .id, this._contextKeyService), t = e && e.getLabel(), i = this._commandAction.tooltip || this._commandAction.label; let n = t ? (0, T.N)("titleAndKb", "{0} ({1})", i, t) : i; if (!this._wantsAltCommand && this._menuItemAction.alt) { const e = this._menuItemAction.alt.tooltip || this._menuItemAction.alt .label, t = this._keybindingService.lookupKeybinding(this._menuItemAction.alt .id, this._contextKeyService), i = t && t.getLabel(), o = i ? (0, T.N)("titleAndKb", "{0} ({1})", e, i) : e; n += `\n[${L.xo.modifierLabels[D.OS].altKey}] ${o}` } this.label.title = n } } updateClass() { this.options.icon && (this._commandAction !== this._menuItemAction ? this._menuItemAction.alt && this._updateItemClass(this._menuItemAction .alt.item) : this._menuItemAction.alt && this._updateItemClass( this._menuItemAction.item)) } _updateItemClass(e) { var t; this._itemClassDispose.value = void 0; const { element: i, label: o } = this; if (!i || !o) return; const r = this._commandAction.checked && (null === (t = e.toggled) || void 0 === t ? void 0 : t.icon) ? e.toggled.icon : e.icon; if (r) if (W.kS.isThemeIcon(r)) { const e = W.kS.asClassNameArray(r); o.classList.add(...e), this._itemClassDispose.value = (0, N.OF)((() => { o.classList.remove(...e) })) } else r.light && o.style.setProperty("--menu-entry-icon-light", (0, n.wY)(r.light)), r.dark && o.style.setProperty( "--menu-entry-icon-dark", (0, n.wY)(r.dark)), o.classList.add( "icon"), this._itemClassDispose.value = (0, N.OF)((() => { o.classList.remove("icon"), o.style.removeProperty( "--menu-entry-icon-light"), o.style.removeProperty( "--menu-entry-icon-dark") })) } }; j = z([V(2, P.d), V(3, F.lT), V(4, A.i6)], j); let K = class extends k { constructor(e, t, i) { var n, o; const r = Object.assign({}, null != t ? t : Object.create(null), { menuAsChild: null === (n = null == t ? void 0 : t.menuAsChild) || void 0 === n || n, classNames: null !== (o = null == t ? void 0 : t.classNames) && void 0 !== o ? o : W.kS.isThemeIcon(e.item.icon) ? W.kS.asClassName( e.item.icon) : void 0 }); super(e, { getActions: () => e.actions }, i, r) } render(e) { if (super.render(e), this.element) { e.classList.add("menu-entry"); const { icon: t } = this._action.item; t && !W.kS.isThemeIcon(t) && (this.element.classList.add("icon"), t.light && this.element.style.setProperty("--menu-entry-icon-light", (0, n.wY) (t.light)), t.dark && this.element.style.setProperty( "--menu-entry-icon-dark", (0, n.wY)(t.dark))) } } }; K = z([V(2, R.i)], K); let $ = class extends r.Y { constructor(e, t, i, n, o, r, s, l) { var d, c, h; let u; super(null, e), this._keybindingService = i, this._notificationService = n, this._contextMenuService = o, this._menuService = r, this._instaService = s, this._storageService = l, this._container = null, this._storageKey = `${e.item.submenu._debugName}_lastActionId`; let g = l.get(this._storageKey, 1); g && (u = e.actions.find((e => g === e.id))), u || (u = e.actions[0]), this._defaultAction = this._instaService.createInstance(j, u, void 0); const p = Object.assign({}, null != t ? t : Object.create(null), { menuAsChild: null === (d = null == t ? void 0 : t.menuAsChild) || void 0 === d || d, classNames: null !== (c = null == t ? void 0 : t.classNames) && void 0 !== c ? c : ["codicon", "codicon-chevron-down"], actionRunner: null !== (h = null == t ? void 0 : t.actionRunner) && void 0 !== h ? h : new a.Wi }); this._dropdown = new k(e, e.actions, this._contextMenuService, p), this._dropdown.actionRunner.onDidRun((e => { e.action instanceof M.U8 && this.update(e.action) })) } update(e) { this._storageService.store(this._storageKey, e.id, 1, 0), this._defaultAction .dispose(), this._defaultAction = this._instaService.createInstance( j, e, void 0), this._defaultAction.actionRunner = new class extends a .Wi { runAction(e, t) { return H(this, void 0, void 0, (function*() { yield e.run(void 0) })) } }, this._container && this._defaultAction.render((0, n.Ce)(this._container, ( 0, n.$)(".action-container"))) } setActionContext(e) { super.setActionContext(e), this._defaultAction.setActionContext(e), this._dropdown.setActionContext(e) } render(e) { this._container = e, super.render(this._container), this._container.classList .add("monaco-dropdown-with-default"); const t = (0, n.$)(".action-container"); this._defaultAction.render((0, n.R3)(this._container, t)), this._register( (0, n.nm)(t, n.tw.KEY_DOWN, (e => { const t = new o.y(e); t.equals(17) && (this._defaultAction.element.tabIndex = -1, this ._dropdown.focus(), t.stopPropagation()) }))); const i = (0, n.$)(".dropdown-action-container"); this._dropdown.render((0, n.R3)(this._container, i)), this._register( (0, n.nm)(i, n.tw.KEY_DOWN, (e => { var t; const i = new o.y(e); i.equals(15) && (this._defaultAction.element.tabIndex = 0, this._dropdown .setFocusable(!1), null === (t = this._defaultAction.element) || void 0 === t || t.focus(), i.stopPropagation()) }))) } focus(e) { e ? 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(e) { e ? this._defaultAction.element.tabIndex = 0 : (this._defaultAction.element .tabIndex = -1, this._dropdown.setFocusable(!1)) } dispose() { this._defaultAction.dispose(), this._dropdown.dispose(), super.dispose() } }; function q(e, t, i) { return t instanceof M.U8 ? e.createInstance(j, t, void 0) : t instanceof M .NZ ? t.item.rememberDefaultAction ? e.createInstance($, t, i) : e.createInstance( K, t, i) : void 0 } $ = z([V(2, P.d), V(3, F.lT), V(4, R.i), V(5, M.co), V(6, O.TG), V(7, B.Uy)], $) }, 4144: (e, t, i) => { "use strict"; i.d(t, { vr: () => p, eH: () => m, co: () => f, BH: () => _, NZ: () => b, U8: () => v }); var n = i(4741), o = i(3046), r = i(4669), s = i(3725), a = i(5976), l = i(1741), d = i(4565), c = i(8819), h = i(2065), u = i(7781), g = function(e, t) { return function(i, n) { t(i, n, e) } }; function p(e) { return void 0 !== e.command } class m { constructor(e) { this.id = m._idPool++, this._debugName = e } } m._idPool = 0, m.CommandPalette = new m("CommandPalette"), m.EditorContext = new m("EditorContext"), m.SimpleEditorContext = new m( "SimpleEditorContext"), m.EditorContextCopy = new m("EditorContextCopy"), m.EditorContextPeek = new m("EditorContextPeek"), m.MenubarEditMenu = new m("MenubarEditMenu"), m.MenubarCopy = new m("MenubarCopy"), m.MenubarGoMenu = new m("MenubarGoMenu"), m.MenubarSelectionMenu = new m( "MenubarSelectionMenu"), m.InlineCompletionsActions = new m( "InlineCompletionsActions"); const f = (0, h.yh)("menuService"), _ = new class { constructor() { this._commands = new Map, this._menuItems = new Map, this._onDidChangeMenu = new r.Q5, this.onDidChangeMenu = this._onDidChangeMenu.event, this._commandPaletteChangeEvent = { has: e => e === m.CommandPalette } } addCommand(e) { return this.addCommands(s.$.single(e)) } addCommands(e) { for (const t of e) this._commands.set(t.id, t); return this._onDidChangeMenu.fire(this._commandPaletteChangeEvent), ( 0, a.OF)((() => { let t = !1; for (const i of e) t = this._commands.delete(i.id) || t; t && this._onDidChangeMenu.fire(this._commandPaletteChangeEvent) })) } getCommand(e) { return this._commands.get(e) } getCommands() { const e = new Map; return this._commands.forEach(((t, i) => e.set(i, t))), e } appendMenuItem(e, t) { return this.appendMenuItems(s.$.single({ id: e, item: t })) } appendMenuItems(e) { const t = new Set, i = new l.S; for (const { id: n, item: o } of e) { let e = this._menuItems.get(n); e || (e = new l.S, this._menuItems.set(n, e)), i.push(e.push(o)), t.add( n) } return this._onDidChangeMenu.fire(t), (0, a.OF)((() => { if (i.size > 0) { for (let e of i) e(); this._onDidChangeMenu.fire(t), i.clear() } })) } getMenuItems(e) { let t; return t = this._menuItems.has(e) ? [...this._menuItems.get(e)] : [], e === m.CommandPalette && this._appendImplicitItems(t), t } _appendImplicitItems(e) { const t = new Set; for (const i of e) p(i) && (t.add(i.command.id), i.alt && t.add(i.alt .id)); this._commands.forEach(((i, n) => { t.has(n) || e.push({ command: i }) })) } }; class b extends n.wY { constructor(e, t, i, n) { super(`submenuitem.${e.submenu.id}`, "string" == typeof e.title ? e.title : e.title.value, [], "submenu"), this.item = e, this._menuService = t, this._contextKeyService = i, this._options = n } get actions() { const e = [], t = this._menuService.createMenu(this.item.submenu, this._contextKeyService), i = t.getActions(this._options); t.dispose(); for (const [, t] of i) t.length > 0 && (e.push(...t), e.push(new n.Z0)); return e.length && e.pop(), e } } let v = class e { constructor(t, i, n, r, s) { var a, l; if (this._commandService = s, this.id = t.id, this.label = (null == n ? void 0 : n.renderShortTitle) && t.shortTitle ? "string" == typeof t .shortTitle ? t.shortTitle : t.shortTitle.value : "string" == typeof t .title ? t.title : t.title.value, this.tooltip = null !== (l = "string" == typeof t.tooltip ? t.tooltip : null === (a = t.tooltip) || void 0 === a ? void 0 : a.value) && void 0 !== l ? l : "", this.enabled = ! t.precondition || r.contextMatchesRules(t.precondition), this.checked = ! 1, t.toggled) { const e = t.toggled.condition ? t.toggled : { condition: t.toggled }; this.checked = r.contextMatchesRules(e.condition), this.checked && e .tooltip && (this.tooltip = "string" == typeof e.tooltip ? e.tooltip : e.tooltip.value), e.title && (this.label = "string" == typeof e.title ? e.title : e.title.value) } this.item = t, this.alt = i ? new e(i, void 0, n, r, s) : void 0, this._options = n, u.kS.isThemeIcon(t.icon) && (this.class = o.dT.asClassName( t.icon)) } dispose() {} run(...e) { var t, i; let n = []; return (null === (t = this._options) || void 0 === t ? void 0 : t.arg) && (n = [...n, this._options.arg]), (null === (i = this._options) || void 0 === i ? void 0 : i.shouldForwardArgs) && (n = [...n, ...e]), this._commandService.executeCommand(this.id, ...n) } }; v = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }([g(3, c.i6), g(4, d.H)], v) }, 4972: (e, t, i) => { "use strict"; i.d(t, { p: () => n }); const n = (0, i(2065).yh)("clipboardService") }, 4565: (e, t, i) => { "use strict"; i.d(t, { H: () => l, P: () => d }); var n = i(4669), o = i(3725), r = i(5976), s = i(1741), a = i(8401); const l = (0, i(2065).yh)("commandService"), d = new class { constructor() { this._commands = new Map, this._onDidRegisterCommand = new n.Q5, this .onDidRegisterCommand = this._onDidRegisterCommand.event } registerCommand(e, t) { if (!e) throw new Error("invalid command"); if ("string" == typeof e) { if (!t) throw new Error("invalid command"); return this.registerCommand({ id: e, handler: t }) } if (e.description) { const t = []; for (let i of e.description.args) t.push(i.constraint); const i = e.handler; e.handler = function(e, ...n) { return (0, a.D8)(n, t), i(e, ...n) } } const { id: i } = e; let n = this._commands.get(i); n || (n = new s.S, this._commands.set(i, n)); let o = n.unshift(e), l = (0, r.OF)((() => { o(); const e = this._commands.get(i); (null == e ? void 0 : e.isEmpty()) && this._commands.delete(i) })); return this._onDidRegisterCommand.fire(i), l } registerCommandAlias(e, t) { return d.registerCommand(e, ((e, ...i) => e.get(l).executeCommand(t, ...i))) } getCommand(e) { const t = this._commands.get(e); if (t && !t.isEmpty()) return o.$.first(t) } getCommands() { const e = new Map; for (const t of this._commands.keys()) { const i = this.getCommand(t); i && e.set(t, i) } return e } }; d.registerCommand("noop", (() => {})) }, 3108: (e, t, i) => { "use strict"; i.d(t, { Ui: () => s, Od: () => a, KV: () => l, xL: () => d, Mt: () => h, MR: () => u, O4: () => g }); var n = i(3193), o = i(2065), r = i(9872); const s = (0, o.yh)("configurationService"); function a(e, t) { const i = Object.create(null); for (let n in e) l(i, n, e[n], t); return i } function l(e, t, i, n) { const o = t.split("."), r = o.pop(); let s = e; for (let e = 0; e < o.length; e++) { let i = o[e], r = s[i]; switch (typeof r) { case "undefined": r = s[i] = Object.create(null); break; case "object": break; default: return void n( `Ignoring ${t} as ${o.slice(0,e+1).join(".")} is ${JSON.stringify(r)}` ) } s = r } if ("object" == typeof s && null !== s) try { s[r] = i } catch (e) { n(`Ignoring ${t} as ${o.join(".")} is ${JSON.stringify(s)}`) } else n(`Ignoring ${t} as ${o.join(".")} is ${JSON.stringify(s)}`) } function d(e, t) { c(e, t.split(".")) } function c(e, t) { const i = t.shift(); if (0 !== t.length) { if (-1 !== Object.keys(e).indexOf(i)) { const n = e[i]; "object" != typeof n || Array.isArray(n) || (c(n, t), 0 === Object.keys( n).length && delete e[i]) } } else delete e[i] } function h(e, t, i) { const n = function(e, t) { let i = e; for (const e of t) { if ("object" != typeof i || null === i) return; i = i[e] } return i }(e, t.split(".")); return void 0 === n ? i : n } function u() { const e = r.B.as(n.IP.Configuration).getConfigurationProperties(); return Object.keys(e) } function g() { const e = Object.create(null), t = r.B.as(n.IP.Configuration).getConfigurationProperties(); for (let i in t) l(e, i, t[i].default, (e => console.error( `Conflict in default settings: ${e}`))); return e } }, 3193: (e, t, i) => { "use strict"; i.d(t, { IP: () => l, G1: () => _, Uh: () => b }); var n = i(4669), o = i(8401), r = i(3580), s = i(1294), a = i(9872); const l = { Configuration: "base.contributions.configuration" }, d = { properties: {}, patternProperties: {} }, c = { properties: {}, patternProperties: {} }, h = { properties: {}, patternProperties: {} }, u = { properties: {}, patternProperties: {} }, g = { properties: {}, patternProperties: {} }, p = { properties: {}, patternProperties: {} }, m = "vscode://schemas/settings/resourceLanguage", f = a.B.as(s.I.JSONContribution), _ = new RegExp("\\[.*\\]$"); function b(e) { return e.substring(1, e.length - 1) } const v = new class { constructor() { this.overrideIdentifiers = new Set, this._onDidSchemaChange = new n.Q5, this._onDidUpdateConfiguration = new n.Q5, this.defaultValues = {}, this.defaultLanguageConfigurationOverridesNode = { id: "defaultOverrides", title: r.N("defaultLanguageConfigurationOverrides.title", "Default Language Configuration Overrides"), properties: {} }, this.configurationContributors = [this.defaultLanguageConfigurationOverridesNode], this.resourceLanguageSettingsSchema = { properties: {}, patternProperties: {}, additionalProperties: !1, errorMessage: "Unknown editor configuration setting", allowTrailingCommas: !0, allowComments: !0 }, this.configurationProperties = {}, this.excludedConfigurationProperties = {}, f.registerSchema(m, this.resourceLanguageSettingsSchema) } registerConfiguration(e, t = !0) { this.registerConfigurations([e], t) } registerConfigurations(e, t = !0) { const i = []; e.forEach((e => { i.push(...this.validateAndRegisterProperties(e, t, e.extensionInfo)), this.configurationContributors.push(e), this.registerJSONConfiguration( e) })), f.registerSchema(m, this.resourceLanguageSettingsSchema), this._onDidSchemaChange .fire(), this._onDidUpdateConfiguration.fire(i) } registerOverrideIdentifiers(e) { for (const t of e) this.overrideIdentifiers.add(t); this.updateOverridePropertyPatternKey() } validateAndRegisterProperties(e, t = !0, i, n = 3) { var r; n = o.Jp(e.scope) ? n : e.scope; let s = [], a = e.properties; if (a) for (let e in a) { if (t && w(e)) { delete a[e]; continue } const l = a[e]; this.updatePropertyDefaultValue(e, l), _.test(e) ? l.scope = void 0 : (l.scope = o.Jp(l.scope) ? n : l.scope, l.restricted = o.Jp(l.restricted) ? !!(null === (r = null == i ? void 0 : i.restrictedConfigurations) || void 0 === r ? void 0 : r.includes(e)) : l.restricted), !a[e].hasOwnProperty( "included") || a[e].included ? (this.configurationProperties[e] = a[e], !a[e].deprecationMessage && a[e].markdownDeprecationMessage && (a[e].deprecationMessage = a[e].markdownDeprecationMessage), s.push( e)) : (this.excludedConfigurationProperties[e] = a[e], delete a[ e]) } let l = e.allOf; if (l) for (let e of l) s.push(...this.validateAndRegisterProperties(e, t, i, n)); return s } getConfigurationProperties() { return this.configurationProperties } registerJSONConfiguration(e) { const t = e => { let i = e.properties; if (i) for (const e in i) this.updateSchema(e, i[e]); let n = e.allOf; n && n.forEach(t) }; t(e) } updateSchema(e, t) { switch (d.properties[e] = t, t.scope) { case 1: c.properties[e] = t; break; case 2: h.properties[e] = t; break; case 6: u.properties[e] = t; break; case 3: g.properties[e] = t; break; case 4: p.properties[e] = t; break; case 5: p.properties[e] = t, this.resourceLanguageSettingsSchema.properties[ e] = t } } updateOverridePropertyPatternKey() { for (const e of this.overrideIdentifiers.values()) { const t = `[${e}]`, i = { type: "object", description: r.N("overrideSettings.defaultDescription", "Configure editor settings to be overridden for a language."), errorMessage: r.N("overrideSettings.errorMessage", "This setting does not support per-language configuration."), $ref: m }; this.updatePropertyDefaultValue(t, i), d.properties[t] = i, c.properties[ t] = i, h.properties[t] = i, u.properties[t] = i, g.properties[t] = i, p.properties[t] = i } this._onDidSchemaChange.fire() } updatePropertyDefaultValue(e, t) { let i = this.defaultValues[e]; o.o8(i) && (i = t.default), o.o8(i) && (i = function(e) { switch (Array.isArray(e) ? e[0] : e) { case "boolean": return !1; case "integer": case "number": return 0; case "string": return ""; case "array": return []; case "object": return {}; default: return null } }(t.type)), t.default = i } }; function w(e) { return e.trim() ? _.test(e) ? r.N("config.property.languageDefault", "Cannot register '{0}'. This matches property pattern '\\\\[.*\\\\]$' for describing language specific editor settings. Use 'configurationDefaults' contribution.", e) : void 0 !== v.getConfigurationProperties()[e] ? r.N( "config.property.duplicate", "Cannot register '{0}'. This property is already registered.", e) : null : r.N("config.property.empty", "Cannot register an empty property") } a.B.add(l.Configuration, v) }, 8819: (e, t, i) => { "use strict"; i.d(t, { Ao: () => d, uy: () => N, i6: () => D, Eq: () => E, K8: () => M }); var n = i(1432), o = i(7295), r = i(2065); let s = n.WE || ""; const a = new Map; a.set("false", !1), a.set("true", !0), a.set("isMac", n.dz), a.set( "isLinux", n.IJ), a.set("isWindows", n.ED), a.set("isWeb", n.$L), a.set( "isMacNative", n.dz && !n.$L), a.set("isEdge", s.indexOf("Edg/") >= 0), a.set("isFirefox", s.indexOf("Firefox") >= 0), a.set("isChrome", s.indexOf( "Chrome") >= 0), a.set("isSafari", s.indexOf("Safari") >= 0); const l = Object.prototype.hasOwnProperty; class d { static has(e) { return g.create(e) } static equals(e, t) { return p.create(e, t) } static regex(e, t) { return S.create(e, t) } static not(e) { return b.create(e) } static and(...e) { return k.create(e, null) } static or(...e) { return L.create(e, null, !0) } static deserialize(e, t = !1) { if (e) return this._deserializeOrExpression(e, t) } static _deserializeOrExpression(e, t) { let i = e.split("||"); return L.create(i.map((e => this._deserializeAndExpression(e, t))), null, !0) } static _deserializeAndExpression(e, t) { let i = e.split("&&"); return k.create(i.map((e => this._deserializeOne(e, t))), null) } static _deserializeOne(e, t) { if ((e = e.trim()).indexOf("!=") >= 0) { let i = e.split("!="); return _.create(i[0].trim(), this._deserializeValue(i[1], t)) } if (e.indexOf("==") >= 0) { let i = e.split("=="); return p.create(i[0].trim(), this._deserializeValue(i[1], t)) } if (e.indexOf("=~") >= 0) { let i = e.split("=~"); return S.create(i[0].trim(), this._deserializeRegexValue(i[1], t)) } if (e.indexOf(" in ") >= 0) { let t = e.split(" in "); return m.create(t[0].trim(), t[1].trim()) } if (/^[^<=>]+>=[^<=>]+$/.test(e)) { const t = e.split(">="); return w.create(t[0].trim(), t[1].trim()) } if (/^[^<=>]+>[^<=>]+$/.test(e)) { const t = e.split(">"); return v.create(t[0].trim(), t[1].trim()) } if (/^[^<=>]+<=[^<=>]+$/.test(e)) { const t = e.split("<="); return y.create(t[0].trim(), t[1].trim()) } if (/^[^<=>]+<[^<=>]+$/.test(e)) { const t = e.split("<"); return C.create(t[0].trim(), t[1].trim()) } return /^\!\s*/.test(e) ? b.create(e.substr(1).trim()) : g.create(e) } static _deserializeValue(e, t) { if ("true" === (e = e.trim())) return !0; if ("false" === e) return !1; let i = /^'([^']*)'$/.exec(e); return i ? i[1].trim() : e } static _deserializeRegexValue(e, t) { if ((0, o.m5)(e)) { if (t) throw new Error("missing regexp-value for =~-expression"); return console.warn("missing regexp-value for =~-expression"), null } let i = e.indexOf("/"), n = e.lastIndexOf("/"); if (i === n || i < 0) { if (t) throw new Error(`bad regexp-value '${e}', missing /-enclosure`); return console.warn(`bad regexp-value '${e}', missing /-enclosure`), null } let r = e.slice(i + 1, n), s = "i" === e[n + 1] ? "i" : ""; try { return new RegExp(r, s) } catch (i) { if (t) throw new Error(`bad regexp-value '${e}', parse error: ${i}`); return console.warn(`bad regexp-value '${e}', parse error: ${i}`), null } } } function c(e, t) { return e.cmp(t) } class h { constructor() { this.type = 0 } cmp(e) { return this.type - e.type } equals(e) { return e.type === this.type } evaluate(e) { return !1 } serialize() { return "false" } keys() { return [] } negate() { return u.INSTANCE } } h.INSTANCE = new h; class u { constructor() { this.type = 1 } cmp(e) { return this.type - e.type } equals(e) { return e.type === this.type } evaluate(e) { return !0 } serialize() { return "true" } keys() { return [] } negate() { return h.INSTANCE } } u.INSTANCE = new u; class g { constructor(e, t) { this.key = e, this.negated = t, this.type = 2 } static create(e, t = null) { const i = a.get(e); return "boolean" == typeof i ? i ? u.INSTANCE : h.INSTANCE : new g(e, t) } cmp(e) { return e.type !== this.type ? this.type - e.type : I(this.key, e.key) } equals(e) { return e.type === this.type && this.key === e.key } evaluate(e) { return !!e.getValue(this.key) } serialize() { return this.key } keys() { return [this.key] } negate() { return this.negated || (this.negated = b.create(this.key, this)), this .negated } } class p { constructor(e, t, i) { this.key = e, this.value = t, this.negated = i, this.type = 4 } static create(e, t, i = null) { if ("boolean" == typeof t) return t ? g.create(e, i) : b.create(e, i); const n = a.get(e); return "boolean" == typeof n ? t === (n ? "true" : "false") ? u.INSTANCE : h.INSTANCE : new p(e, t, i) } cmp(e) { return e.type !== this.type ? this.type - e.type : T(this.key, this.value, e.key, e.value) } equals(e) { return e.type === this.type && this.key === e.key && this.value === e.value } evaluate(e) { return e.getValue(this.key) == this.value } serialize() { return `${this.key} == '${this.value}'` } keys() { return [this.key] } negate() { return this.negated || (this.negated = _.create(this.key, this.value, this)), this.negated } } class m { constructor(e, t) { this.key = e, this.valueKey = t, this.type = 10, this.negated = null } static create(e, t) { return new m(e, t) } cmp(e) { return e.type !== this.type ? this.type - e.type : T(this.key, this.valueKey, e.key, e.valueKey) } equals(e) { return e.type === this.type && this.key === e.key && this.valueKey === e.valueKey } evaluate(e) { const t = e.getValue(this.valueKey), i = e.getValue(this.key); return Array.isArray(t) ? t.indexOf(i) >= 0 : "string" == typeof i && "object" == typeof t && null !== t && l.call(t, i) } serialize() { return `${this.key} in '${this.valueKey}'` } keys() { return [this.key, this.valueKey] } negate() { return this.negated || (this.negated = f.create(this)), this.negated } } class f { constructor(e) { this._actual = e, this.type = 11 } static create(e) { return new f(e) } cmp(e) { return e.type !== this.type ? this.type - e.type : this._actual.cmp(e._actual) } equals(e) { return e.type === this.type && this._actual.equals(e._actual) } evaluate(e) { return !this._actual.evaluate(e) } serialize() { throw new Error("Method not implemented.") } keys() { return this._actual.keys() } negate() { return this._actual } } class _ { constructor(e, t, i) { this.key = e, this.value = t, this.negated = i, this.type = 5 } static create(e, t, i = null) { if ("boolean" == typeof t) return t ? b.create(e, i) : g.create(e, i); const n = a.get(e); return "boolean" == typeof n ? t === (n ? "true" : "false") ? h.INSTANCE : u.INSTANCE : new _(e, t, i) } cmp(e) { return e.type !== this.type ? this.type - e.type : T(this.key, this.value, e.key, e.value) } equals(e) { return e.type === this.type && this.key === e.key && this.value === e.value } evaluate(e) { return e.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 } } class b { constructor(e, t) { this.key = e, this.negated = t, this.type = 3 } static create(e, t = null) { const i = a.get(e); return "boolean" == typeof i ? i ? h.INSTANCE : u.INSTANCE : new b(e, t) } cmp(e) { return e.type !== this.type ? this.type - e.type : I(this.key, e.key) } equals(e) { return e.type === this.type && this.key === e.key } evaluate(e) { return !e.getValue(this.key) } serialize() { return `!${this.key}` } keys() { return [this.key] } negate() { return this.negated || (this.negated = g.create(this.key, this)), this .negated } } class v { constructor(e, t, i) { this.key = e, this.value = t, this.negated = i, this.type = 12 } static create(e, t, i = null) { return new v(e, t, i) } cmp(e) { return e.type !== this.type ? this.type - e.type : T(this.key, this.value, e.key, e.value) } equals(e) { return e.type === this.type && this.key === e.key && this.value === e.value } evaluate(e) { return parseFloat(e.getValue(this.key)) > parseFloat(this.value) } serialize() { return `${this.key} > ${this.value}` } keys() { return [this.key] } negate() { return this.negated || (this.negated = y.create(this.key, this.value, this)), this.negated } } class w { constructor(e, t, i) { this.key = e, this.value = t, this.negated = i, this.type = 13 } static create(e, t, i = null) { return new w(e, t, i) } cmp(e) { return e.type !== this.type ? this.type - e.type : T(this.key, this.value, e.key, e.value) } equals(e) { return e.type === this.type && this.key === e.key && this.value === e.value } evaluate(e) { return parseFloat(e.getValue(this.key)) >= parseFloat(this.value) } serialize() { return `${this.key} >= ${this.value}` } keys() { return [this.key] } negate() { return this.negated || (this.negated = C.create(this.key, this.value, this)), this.negated } } class C { constructor(e, t, i) { this.key = e, this.value = t, this.negated = i, this.type = 14 } static create(e, t, i = null) { return new C(e, t, i) } cmp(e) { return e.type !== this.type ? this.type - e.type : T(this.key, this.value, e.key, e.value) } equals(e) { return e.type === this.type && this.key === e.key && this.value === e.value } evaluate(e) { return parseFloat(e.getValue(this.key)) < parseFloat(this.value) } serialize() { return `${this.key} < ${this.value}` } keys() { return [this.key] } negate() { return this.negated || (this.negated = w.create(this.key, this.value, this)), this.negated } } class y { constructor(e, t, i) { this.key = e, this.value = t, this.negated = i, this.type = 15 } static create(e, t, i = null) { return new y(e, t, i) } cmp(e) { return e.type !== this.type ? this.type - e.type : T(this.key, this.value, e.key, e.value) } equals(e) { return e.type === this.type && this.key === e.key && this.value === e.value } evaluate(e) { return parseFloat(e.getValue(this.key)) <= parseFloat(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 } } class S { constructor(e, t) { this.key = e, this.regexp = t, this.type = 7, this.negated = null } static create(e, t) { return new S(e, t) } cmp(e) { if (e.type !== this.type) return this.type - e.type; if (this.key < e.key) return -1; if (this.key > e.key) return 1; const t = this.regexp ? this.regexp.source : "", i = e.regexp ? e.regexp.source : ""; return t < i ? -1 : t > i ? 1 : 0 } equals(e) { if (e.type === this.type) { const t = this.regexp ? this.regexp.source : "", i = e.regexp ? e.regexp.source : ""; return this.key === e.key && t === i } return !1 } evaluate(e) { let t = e.getValue(this.key); return !!this.regexp && this.regexp.test(t) } serialize() { const e = this.regexp ? `/${this.regexp.source}/${this.regexp.ignoreCase?"i":""}` : "/invalid/"; return `${this.key} =~ ${e}` } keys() { return [this.key] } negate() { return this.negated || (this.negated = x.create(this)), this.negated } } class x { constructor(e) { this._actual = e, this.type = 8 } static create(e) { return new x(e) } cmp(e) { return e.type !== this.type ? this.type - e.type : this._actual.cmp(e._actual) } equals(e) { return e.type === this.type && this._actual.equals(e._actual) } evaluate(e) { return !this._actual.evaluate(e) } serialize() { throw new Error("Method not implemented.") } keys() { return this._actual.keys() } negate() { return this._actual } } class k { constructor(e, t) { this.expr = e, this.negated = t, this.type = 6 } static create(e, t) { return k._normalizeArr(e, t) } cmp(e) { if (e.type !== this.type) return this.type - e.type; if (this.expr.length < e.expr.length) return -1; if (this.expr.length > e.expr.length) return 1; for (let t = 0, i = this.expr.length; t < i; t++) { const i = c(this.expr[t], e.expr[t]); if (0 !== i) return i } return 0 } equals(e) { if (e.type === this.type) { if (this.expr.length !== e.expr.length) return !1; for (let t = 0, i = this.expr.length; t < i; t++) if (!this.expr[t].equals(e.expr[t])) return !1; return !0 } return !1 } evaluate(e) { for (let t = 0, i = this.expr.length; t < i; t++) if (!this.expr[t].evaluate(e)) return !1; return !0 } static _normalizeArr(e, t) { const i = []; let n = !1; for (const t of e) if (t) if (1 !== t.type) { if (0 === t.type) return h.INSTANCE; 6 !== t.type ? i.push(t) : i.push(...t.expr) } else n = !0; if (0 === i.length && n) return u.INSTANCE; if (0 !== i.length) { if (1 === i.length) return i[0]; i.sort(c); for (let e = 1; e < i.length; e++) i[e - 1].equals(i[e]) && (i.splice( e, 1), e--); if (1 === i.length) return i[0]; for (; i.length > 1;) { const e = i[i.length - 1]; if (9 !== e.type) break; i.pop(); const t = i.pop(), n = 0 === i.length, o = L.create(e.expr.map((e => k.create([e, t], null))), null, n); o && (i.push(o), i.sort(c)) } return 1 === i.length ? i[0] : new k(i, t) } } serialize() { return this.expr.map((e => e.serialize())).join(" && ") } keys() { const e = []; for (let t of this.expr) e.push(...t.keys()); return e } negate() { if (!this.negated) { const e = []; for (let t of this.expr) e.push(t.negate()); this.negated = L.create(e, this, !0) } return this.negated } } class L { constructor(e, t) { this.expr = e, this.negated = t, this.type = 9 } static create(e, t, i) { return L._normalizeArr(e, t, i) } cmp(e) { if (e.type !== this.type) return this.type - e.type; if (this.expr.length < e.expr.length) return -1; if (this.expr.length > e.expr.length) return 1; for (let t = 0, i = this.expr.length; t < i; t++) { const i = c(this.expr[t], e.expr[t]); if (0 !== i) return i } return 0 } equals(e) { if (e.type === this.type) { if (this.expr.length !== e.expr.length) return !1; for (let t = 0, i = this.expr.length; t < i; t++) if (!this.expr[t].equals(e.expr[t])) return !1; return !0 } return !1 } evaluate(e) { for (let t = 0, i = this.expr.length; t < i; t++) if (this.expr[t].evaluate(e)) return !0; return !1 } static _normalizeArr(e, t, i) { let n = [], o = !1; if (e) { for (let t = 0, i = e.length; t < i; t++) { const i = e[t]; if (i) if (0 !== i.type) { if (1 === i.type) return u.INSTANCE; 9 !== i.type ? n.push(i) : n = n.concat(i.expr) } else o = !0 } if (0 === n.length && o) return h.INSTANCE; n.sort(c) } if (0 !== n.length) { if (1 === n.length) return n[0]; for (let e = 1; e < n.length; e++) n[e - 1].equals(n[e]) && (n.splice( e, 1), e--); if (1 === n.length) return n[0]; if (i) { for (let e = 0; e < n.length; e++) for (let t = e + 1; t < n.length; t++) M(n[e], n[t]) && (n.splice(t, 1), t--); if (1 === n.length) return n[0] } return new L(n, t) } } serialize() { return this.expr.map((e => e.serialize())).join(" || ") } keys() { const e = []; for (let t of this.expr) e.push(...t.keys()); return e } negate() { if (!this.negated) { let e = []; for (let t of this.expr) e.push(t.negate()); for (; e.length > 1;) { const t = e.shift(), i = e.shift(), n = []; for (const e of A(t)) for (const t of A(i)) n.push(k.create([e, t], null)); const o = 0 === e.length; e.unshift(L.create(n, null, o)) } this.negated = e[0] } return this.negated } } class N extends g { constructor(e, t, i) { super(e, null), this._defaultValue = t, "object" == typeof i ? N._info .push(Object.assign(Object.assign({}, i), { key: e })) : !0 !== i && N._info.push({ key: e, description: i, type: null != t ? typeof t : void 0 }) } static all() { return N._info.values() } bindTo(e) { return e.createKey(this.key, this._defaultValue) } getValue(e) { return e.getContextKeyValue(this.key) } toNegated() { return this.negate() } isEqualTo(e) { return p.create(this.key, e) } } N._info = []; const D = (0, r.yh)("contextKeyService"), E = "setContext"; function I(e, t) { return e < t ? -1 : e > t ? 1 : 0 } function T(e, t, i, n) { return e < i ? -1 : e > i ? 1 : t < n ? -1 : t > n ? 1 : 0 } function M(e, t) { if (6 === t.type && 9 !== e.type && 6 !== e.type) for (const i of t.expr) if (e.equals(i)) return !0; const i = A(e.negate()).concat(A(t)); i.sort(c); for (let e = 0; e < i.length; e++) { const t = i[e].negate(); for (let n = e + 1; n < i.length; n++) { const e = i[n]; if (t.equals(e)) return !0 } } return !1 } function A(e) { return 9 === e.type ? e.expr : [e] } }, 9282: (e, t, i) => { "use strict"; i.d(t, { c: () => r, d: () => s }); var n = i(1432), o = i(3580); const r = new(i(8819).uy)("isWindows", n.ED, (0, o.N)("isWindows", "Whether the operating system is Windows")), s = "inputFocus" }, 5606: (e, t, i) => { "use strict"; i.d(t, { u: () => o, i: () => r }); var n = i(2065); const o = (0, n.yh)("contextViewService"), r = (0, n.yh)("contextMenuService") }, 8820: (e, t, i) => { "use strict"; i.d(t, { S: () => n }); const n = (0, i(2065).yh)("dialogService") }, 7108: (e, t, i) => { "use strict"; i.d(t, { M: () => n }); class n { constructor(e, t = [], i = !1) { this.ctor = e, this.staticArguments = t, this.supportsDelayedInstantiation = i } } }, 5026: (e, t, i) => { "use strict"; i.d(t, { z: () => r, d: () => s }); var n = i(7108); const o = []; function r(e, t, i) { t instanceof n.M || (t = new n.M(t, [], i)), o.push([e, t]) } function s() { return o } }, 2065: (e, t, i) => { "use strict"; var n; i.d(t, { I8: () => n, TG: () => o, yh: () => s, jt: () => a }), function(e) { e.serviceIds = new Map, e.DI_TARGET = "$di$target", e.DI_DEPENDENCIES = "$di$dependencies", e.getServiceDependencies = function(t) { return t[e.DI_DEPENDENCIES] || [] } }(n || (n = {})); const o = s("instantiationService"); function r(e, t, i, o) { t[n.DI_TARGET] === t ? t[n.DI_DEPENDENCIES].push({ id: e, index: i, optional: o }) : (t[n.DI_DEPENDENCIES] = [{ id: e, index: i, optional: o }], t[n.DI_TARGET] = t) } function s(e) { if (n.serviceIds.has(e)) return n.serviceIds.get(e); const t = function(e, i, n) { if (3 !== arguments.length) throw new Error( "@IServiceName-decorator can only be used to decorate a parameter"); r(t, e, n, !1) }; return t.toString = () => e, n.serviceIds.set(e, t), t } function a(e) { return function(t, i, n) { if (3 !== arguments.length) throw new Error( "@optional-decorator can only be used to decorate a parameter"); r(e, t, n, !0) } } }, 972: (e, t, i) => { "use strict"; i.d(t, { y: () => n }); class n { constructor(...e) { this._entries = new Map; for (let [t, i] of e) this.set(t, i) } set(e, t) { const i = this._entries.get(e); return this._entries.set(e, t), i } has(e) { return this._entries.has(e) } get(e) { return this._entries.get(e) } } }, 1294: (e, t, i) => { "use strict"; i.d(t, { I: () => r }); var n = i(4669), o = i(9872); const r = { JSONContribution: "base.contributions.json" }, s = new class { constructor() { this._onDidChangeSchema = new n.Q5, this.schemasById = {} } registerSchema(e, t) { var i; this.schemasById[(i = e, i.length > 0 && "#" === i.charAt(i.length - 1) ? i.substring(0, i.length - 1) : i)] = t, this._onDidChangeSchema .fire(e) } notifySchemaChanged(e) { this._onDidChangeSchema.fire(e) } }; o.B.add(r.JSONContribution, s) }, 1847: (e, t, i) => { "use strict"; i.d(t, { d: () => n }); const n = (0, i(2065).yh)("keybindingService") }, 9989: (e, t, i) => { "use strict"; i.d(t, { W: () => l }); var n = i(2258), o = i(1432), r = i(4565), s = i(9872); class a { constructor() { this._coreKeybindings = [], this._extensionKeybindings = [], this._cachedMergedKeybindings = null } static bindToCurrentPlatform(e) { if (1 === o.OS) { if (e && e.win) return e.win } else if (2 === o.OS) { if (e && e.mac) return e.mac } else if (e && e.linux) return e.linux; return e } registerKeybindingRule(e) { const t = a.bindToCurrentPlatform(e); if (t && t.primary) { const i = (0, n.gm)(t.primary, o.OS); i && this._registerDefaultKeybinding(i, e.id, e.args, e.weight, 0, e.when) } if (t && Array.isArray(t.secondary)) for (let i = 0, r = t.secondary.length; i < r; i++) { const r = t.secondary[i], s = (0, n.gm)(r, o.OS); s && this._registerDefaultKeybinding(s, e.id, e.args, e.weight, -i - 1, e.when) } } registerCommandAndKeybindingRule(e) { this.registerKeybindingRule(e), r.P.registerCommand(e) } static _mightProduceChar(e) { return e >= 21 && e <= 30 || e >= 31 && e <= 56 || 80 === e || 81 === e || 82 === e || 83 === e || 84 === e || 85 === e || 86 === e || 110 === e || 111 === e || 87 === e || 88 === e || 89 === e || 90 === e || 91 === e || 92 === e } _assertNoCtrlAlt(e, t) { e.ctrlKey && e.altKey && !e.metaKey && a._mightProduceChar(e.keyCode) && console.warn( "Ctrl+Alt+ keybindings should not be used by default under Windows. Offender: ", e, " for ", t) } _registerDefaultKeybinding(e, t, i, n, r, s) { 1 === o.OS && this._assertNoCtrlAlt(e.parts[0], t), this._coreKeybindings .push({ keybinding: e, command: t, commandArgs: i, when: s, weight1: n, weight2: r, extensionId: null, isBuiltinExtension: !1 }), this._cachedMergedKeybindings = null } getDefaultKeybindings() { return this._cachedMergedKeybindings || (this._cachedMergedKeybindings = [] .concat(this._coreKeybindings).concat(this._extensionKeybindings), this._cachedMergedKeybindings.sort(d)), this._cachedMergedKeybindings .slice(0) } } const l = new a; function d(e, t) { return e.weight1 !== t.weight1 ? e.weight1 - t.weight1 : e.command < t.command ? -1 : e.command > t.command ? 1 : e.weight2 - t.weight2 } s.B.add("platform.keybindingsRegistry", l) }, 4349: (e, t, i) => { "use strict"; i.d(t, { e: () => n }); const n = (0, i(2065).yh)("labelService") }, 3738: (e, t, i) => { "use strict"; i.d(t, { Lw: () => at, XN: () => lt, ls: () => Ut, ev: () => Mt, CQ: () => ht }); var n = i(5321), o = i(9488), r = i(1050), s = i(4669), a = i(5976), l = (i(3164), i(3799)); class d { constructor(e, t) { this.renderer = e, this.modelProvider = t } get templateId() { return this.renderer.templateId } renderTemplate(e) { return { data: this.renderer.renderTemplate(e), disposable: a.JT.None } } renderElement(e, t, i, n) { if (i.disposable && i.disposable.dispose(), !i.data) return; const o = this.modelProvider(); if (o.isResolved(e)) return this.renderer.renderElement(o.get(e), e, i .data, n); const s = new r.A, a = o.resolve(e, s.token); i.disposable = { dispose: () => s.cancel() }, this.renderer.renderPlaceholder(e, i.data), a.then((t => this.renderer .renderElement(t, e, i.data, n))) } disposeTemplate(e) { e.disposable && (e.disposable.dispose(), e.disposable = void 0), e.data && (this.renderer.disposeTemplate(e.data), e.data = void 0) } } class c { constructor(e, t) { this.modelProvider = e, this.accessibilityProvider = t } getWidgetAriaLabel() { return this.accessibilityProvider.getWidgetAriaLabel() } getAriaLabel(e) { const t = this.modelProvider(); return t.isResolved(e) ? this.accessibilityProvider.getAriaLabel(t.get( e)) : null } } var h = i(9782), u = i(3379), g = i.n(u), p = i(7795), m = i.n(p), f = i(569), _ = i.n(f), b = i(3565), v = i.n(b), w = i(9216), C = i.n(w), y = i(4589), S = i.n(y), x = i(1728), k = {}; k.styleTagTransform = S(), k.setAttributes = v(), k.insert = _().bind( null, "head"), k.domAPI = m(), k.insertStyleElement = C(), g()(x.Z, k), x.Z && x.Z.locals && x.Z.locals; class L { constructor(e, t, i) { this.columns = e, this.getColumnSize = i, this.templateId = L.TemplateId, this.renderedTemplates = new Set; const n = new Map(t.map((e => [e.templateId, e]))); this.renderers = []; for (const t of e) { const e = n.get(t.templateId); if (!e) throw new Error( `Table cell renderer for template id ${t.templateId} not found.`); this.renderers.push(e) } } renderTemplate(e) { const t = (0, n.R3)(e, (0, n.$)(".monaco-table-tr")), i = [], o = []; for (let e = 0; e < this.columns.length; e++) { const r = this.renderers[e], s = (0, n.R3)(t, (0, n.$)(".monaco-table-td", { "data-col-index": e })); s.style.width = `${this.getColumnSize(e)}px`, i.push(s), o.push(r.renderTemplate( s)) } const r = { container: e, cellContainers: i, cellTemplateData: o }; return this.renderedTemplates.add(r), r } renderElement(e, t, i, n) { for (let o = 0; o < this.columns.length; o++) { const r = this.columns[o].project(e); this.renderers[o].renderElement(r, t, i.cellTemplateData[o], n) } } disposeElement(e, t, i, n) { for (let o = 0; o < this.columns.length; o++) { const r = this.renderers[o]; if (r.disposeElement) { const s = this.columns[o].project(e); r.disposeElement(s, t, i.cellTemplateData[o], n) } } } disposeTemplate(e) { for (let t = 0; t < this.columns.length; t++) this.renderers[t].disposeTemplate( e.cellTemplateData[t]); (0, n.PO)(e.container), this.renderedTemplates.delete(e) } layoutColumn(e, t) { for (const { cellContainers: i } of this.renderedTemplates) i[e].style.width = `${t}px` } } L.TemplateId = "row"; class N { constructor(e, t) { this.column = e, this.index = t, this._onDidLayout = new s.Q5, this.onDidLayout = this._onDidLayout.event, this.element = (0, n.$)(".monaco-table-th", { "data-col-index": t, title: e.tooltip }, e.label) } get minimumSize() { var e; return null !== (e = this.column.minimumWidth) && void 0 !== e ? e : 120 } get maximumSize() { var e; return null !== (e = this.column.maximumWidth) && void 0 !== e ? e : Number.POSITIVE_INFINITY } get onDidChange() { var e; return null !== (e = this.column.onDidChangeWidthConstraints) && void 0 !== e ? e : s.ju.None } layout(e) { this._onDidLayout.fire([this.index, e]) } } class D { constructor(e, t, i, o, r, a) { this.virtualDelegate = i, this.domId = "table_id_" + ++D.InstanceCount, this.cachedHeight = 0, this.domNode = (0, n.R3)(t, (0, n.$)( `.monaco-table.${this.domId}`)); const d = o.map(((e, t) => new N(e, t))), c = { size: d.reduce(((e, t) => e + t.column.weight), 0), views: d.map((e => ({ size: e.column.weight, view: e }))) }; this.splitview = new h.z(this.domNode, { orientation: 1, scrollbarVisibility: 2, getSashOrthogonalSize: () => this.cachedHeight, descriptor: c }), this.splitview.el.style.height = `${i.headerRowHeight}px`, this.splitview .el.style.lineHeight = `${i.headerRowHeight}px`; const u = new L(o, r, (e => this.splitview.getViewSize(e))); var g; this.list = new l.aV(e, this.domNode, (g = i, { getHeight: e => g.getHeight(e), getTemplateId: () => L.TemplateId }), [u], a), this.columnLayoutDisposable = s.ju.any(...d.map((e => e.onDidLayout))) ((([e, t]) => u.layoutColumn(e, t))), this.styleElement = (0, n.dS)( this.domNode), this.style({}) } get onDidChangeFocus() { return this.list.onDidChangeFocus } get onDidChangeSelection() { return this.list.onDidChangeSelection } get onMouseDblClick() { return this.list.onMouseDblClick } get onPointer() { return this.list.onPointer } get onDidFocus() { return this.list.onDidFocus } get onDidDispose() { return this.list.onDidDispose } updateOptions(e) { this.list.updateOptions(e) } splice(e, t, i = []) { this.list.splice(e, t, i) } getHTMLElement() { return this.domNode } style(e) { const t = []; t.push( `.monaco-table.${this.domId} > .monaco-split-view2 .monaco-sash.vertical::before {\n\t\t\ttop: ${this.virtualDelegate.headerRowHeight+1}px;\n\t\t\theight: calc(100% - ${this.virtualDelegate.headerRowHeight}px);\n\t\t}` ), this.styleElement.textContent = t.join("\n"), this.list.style(e) } getSelectedElements() { return this.list.getSelectedElements() } getSelection() { return this.list.getSelection() } getFocus() { return this.list.getFocus() } dispose() { this.splitview.dispose(), this.list.dispose(), this.columnLayoutDisposable .dispose() } } D.InstanceCount = 0; var E, I = i(5707), T = i(3547), M = i(4850), A = i(9069); ! function(e) { e[e.Unknown = 0] = "Unknown", e[e.Twistie = 1] = "Twistie", e[e.Element = 2] = "Element" }(E || (E = {})); class R extends Error { constructor(e, t) { super(`TreeError [${e}] ${t}`) } } class O { constructor(e) { this.fn = e, this._map = new WeakMap } map(e) { let t = this._map.get(e); return t || (t = this.fn(e), this._map.set(e, t)), t } } var P = i(2484), F = i(3725); function B(e) { return "object" == typeof e && "visibility" in e && "data" in e } function W(e) { switch (e) { case !0: return 1; case !1: return 0; default: return e } } function z(e) { return "boolean" == typeof e.collapsible } class V { constructor(e, t, i, n = {}) { this.user = e, this.list = t, this.rootRef = [], this.eventBufferer = new s.E7, this._onDidChangeCollapseState = new s.Q5, this.onDidChangeCollapseState = this.eventBufferer.wrapEvent(this._onDidChangeCollapseState.event), this._onDidChangeRenderNodeCount = new s.Q5, this.onDidChangeRenderNodeCount = this.eventBufferer.wrapEvent(this._onDidChangeRenderNodeCount.event), this._onDidSplice = new s.Q5, this.onDidSplice = this._onDidSplice.event, this.collapseByDefault = void 0 !== n.collapseByDefault && n.collapseByDefault, this.filter = n.filter, this.autoExpandSingleChildren = void 0 !== n.autoExpandSingleChildren && n.autoExpandSingleChildren, this.root = { parent: void 0, element: i, children: [], depth: 0, visibleChildrenCount: 0, visibleChildIndex: -1, collapsible: !1, collapsed: !1, renderNodeCount: 0, visibility: 1, visible: !0, filterData: void 0 } } splice(e, t, i = F.$.empty(), n = {}) { if (0 === e.length) throw new R(this.user, "Invalid tree location"); n.diffIdentityProvider ? this.spliceSmart(n.diffIdentityProvider, e, t, i, n) : this.spliceSimple(e, t, i, n) } spliceSmart(e, t, i, n, o, r) { var s; void 0 === n && (n = F.$.empty()), void 0 === r && (r = null !== (s = o.diffDepth) && void 0 !== s ? s : 0); const { parentNode: a } = this.getParentNodeWithListIndex(t), l = [...n], d = t[t.length - 1], c = new P.Hs({ getElements: () => a.children.map((t => e.getId(t.element).toString())) }, { getElements: () => [...a.children.slice(0, d), ...l, ...a.children.slice( d + i)].map((t => e.getId(t.element).toString())) }).ComputeDiff(!1); if (c.quitEarly) return this.spliceSimple(t, i, l, o); const h = t.slice(0, -1), u = (t, i, n) => { if (r > 0) for (let s = 0; s < n; s++) t--, i--, this.spliceSmart(e, [...h, t, 0 ], Number.MAX_SAFE_INTEGER, l[i].children, o, r - 1) }; let g = Math.min(a.children.length, d + i), p = l.length; for (const e of c.changes.sort(((e, t) => t.originalStart - e.originalStart))) u(g, p, g - (e.originalStart + e.originalLength)), g = e.originalStart, p = e.modifiedStart - d, this.spliceSimple([...h, g], e.originalLength, F.$.slice(l, p, p + e.modifiedLength), o); u(g, p, g) } spliceSimple(e, t, i = F.$.empty(), { onDidCreateNode: n, onDidDeleteNode: r }) { const { parentNode: s, listIndex: a, revealed: l, visible: d } = this.getParentNodeWithListIndex(e), c = [], h = F.$.map(i, (e => this.createTreeNode(e, s, s.visible ? 1 : 0, l, c, n))), u = e[e.length - 1], g = s.children.length > 0; let p = 0; for (let e = u; e >= 0 && e < s.children.length; e--) { const t = s.children[e]; if (t.visible) { p = t.visibleChildIndex; break } } const m = []; let f = 0, _ = 0; for (const e of h) m.push(e), _ += e.renderNodeCount, e.visible && (e.visibleChildIndex = p + f++); const b = (0, o.db)(s.children, u, t, m); let v = 0; for (const e of b) e.visible && v++; if (0 !== v) for (let e = u + m.length; e < s.children.length; e++) { const t = s.children[e]; t.visible && (t.visibleChildIndex -= v) } if (s.visibleChildrenCount += f - v, l && d) { const e = b.reduce(((e, t) => e + (t.visible ? t.renderNodeCount : 0)), 0); this._updateAncestorsRenderNodeCount(s, _ - e), this.list.splice(a, e, c) } if (b.length > 0 && r) { const e = t => { r(t), t.children.forEach(e) }; b.forEach(e) } const w = s.children.length > 0; g !== w && this.setCollapsible(e.slice(0, -1), w), this._onDidSplice.fire({ insertedNodes: m, deletedNodes: b }); let C = s; for (; C;) { if (2 === C.visibility) { this.refilter(); break } C = C.parent } } rerender(e) { if (0 === e.length) throw new R(this.user, "Invalid tree location"); const { node: t, listIndex: i, revealed: n } = this.getTreeNodeWithListIndex(e); t.visible && n && this.list.splice(i, 1, [t]) } has(e) { return this.hasTreeNode(e) } getListIndex(e) { const { listIndex: t, visible: i, revealed: n } = this.getTreeNodeWithListIndex(e); return i && n ? t : -1 } getListRenderCount(e) { return this.getTreeNode(e).renderNodeCount } isCollapsible(e) { return this.getTreeNode(e).collapsible } setCollapsible(e, t) { const i = this.getTreeNode(e); void 0 === t && (t = !i.collapsible); const n = { collapsible: t }; return this.eventBufferer.bufferEvents((() => this._setCollapseState(e, n))) } isCollapsed(e) { return this.getTreeNode(e).collapsed } setCollapsed(e, t, i) { const n = this.getTreeNode(e); void 0 === t && (t = !n.collapsed); const o = { collapsed: t, recursive: i || !1 }; return this.eventBufferer.bufferEvents((() => this._setCollapseState(e, o))) } _setCollapseState(e, t) { const { node: i, listIndex: n, revealed: o } = this.getTreeNodeWithListIndex(e), r = this._setListNodeCollapseState( i, n, o, t); if (i !== this.root && this.autoExpandSingleChildren && r && !z(t) && i.collapsible && !i.collapsed && !t.recursive) { let n = -1; for (let e = 0; e < i.children.length; e++) if (i.children[e].visible) { if (n > -1) { n = -1; break } n = e } n > -1 && this._setCollapseState([...e, n], t) } return r } _setListNodeCollapseState(e, t, i, n) { const o = this._setNodeCollapseState(e, n, !1); if (!i || !e.visible || !o) return o; const r = e.renderNodeCount, s = this.updateNodeAfterCollapseChange(e), a = r - (-1 === t ? 0 : 1); return this.list.splice(t + 1, a, s.slice(1)), o } _setNodeCollapseState(e, t, i) { let n; if (e === this.root ? n = !1 : (z(t) ? (n = e.collapsible !== t.collapsible, e.collapsible = t.collapsible) : e.collapsible ? (n = e.collapsed !== t.collapsed, e.collapsed = t.collapsed) : n = !1, n && this._onDidChangeCollapseState .fire({ node: e, deep: i })), !z(t) && t.recursive) for (const i of e.children) n = this._setNodeCollapseState(i, t, !0) || n; return n } expandTo(e) { this.eventBufferer.bufferEvents((() => { let t = this.getTreeNode(e); for (; t.parent;) t = t.parent, e = e.slice(0, e.length - 1), t.collapsed && this._setCollapseState(e, { collapsed: !1, recursive: !1 }) })) } refilter() { const e = this.root.renderNodeCount, t = this.updateNodeAfterFilterChange(this.root); this.list.splice(0, e, t) } createTreeNode(e, t, i, n, o, r) { const s = { parent: t, element: e.element, children: [], depth: t.depth + 1, visibleChildrenCount: 0, visibleChildIndex: -1, collapsible: "boolean" == typeof e.collapsible ? e.collapsible : void 0 !== e.collapsed, collapsed: void 0 === e.collapsed ? this.collapseByDefault : e.collapsed, renderNodeCount: 1, visibility: 1, visible: !0, filterData: void 0 }, a = this._filterNode(s, i); s.visibility = a, n && o.push(s); const l = e.children || F.$.empty(), d = n && 0 !== a && !s.collapsed, c = F.$.map(l, (e => this.createTreeNode(e, s, a, d, o, r))); let h = 0, u = 1; for (const e of c) s.children.push(e), u += e.renderNodeCount, e.visible && (e.visibleChildIndex = h++); return s.collapsible = s.collapsible || s.children.length > 0, s.visibleChildrenCount = h, s.visible = 2 === a ? h > 0 : 1 === a, s.visible ? s.collapsed || (s.renderNodeCount = u) : (s.renderNodeCount = 0, n && o.pop()), r && r(s), s } updateNodeAfterCollapseChange(e) { const t = e.renderNodeCount, i = []; return this._updateNodeAfterCollapseChange(e, i), this._updateAncestorsRenderNodeCount( e.parent, i.length - t), i } _updateNodeAfterCollapseChange(e, t) { if (!1 === e.visible) return 0; if (t.push(e), e.renderNodeCount = 1, !e.collapsed) for (const i of e.children) e.renderNodeCount += this._updateNodeAfterCollapseChange( i, t); return this._onDidChangeRenderNodeCount.fire(e), e.renderNodeCount } updateNodeAfterFilterChange(e) { const t = e.renderNodeCount, i = []; return this._updateNodeAfterFilterChange(e, e.visible ? 1 : 0, i), this._updateAncestorsRenderNodeCount(e.parent, i.length - t), i } _updateNodeAfterFilterChange(e, t, i, n = !0) { let o; if (e !== this.root) { if (o = this._filterNode(e, t), 0 === o) return e.visible = !1, e.renderNodeCount = 0, !1; n && i.push(e) } const r = i.length; e.renderNodeCount = e === this.root ? 0 : 1; let s = !1; if (e.collapsed && 0 === o) e.visibleChildrenCount = 0; else { let t = 0; for (const r of e.children) s = this._updateNodeAfterFilterChange(r, o, i, n && !e.collapsed) || s, r.visible && (r.visibleChildIndex = t++); e.visibleChildrenCount = t } return e !== this.root && (e.visible = 2 === o ? s : 1 === o), e.visible ? e.collapsed || (e.renderNodeCount += i.length - r) : (e.renderNodeCount = 0, n && i.pop()), this._onDidChangeRenderNodeCount.fire(e), e.visible } _updateAncestorsRenderNodeCount(e, t) { if (0 !== t) for (; e;) e.renderNodeCount += t, this._onDidChangeRenderNodeCount.fire( e), e = e.parent } _filterNode(e, t) { const i = this.filter ? this.filter.filter(e.element, t) : 1; return "boolean" == typeof i ? (e.filterData = void 0, i ? 1 : 0) : B( i) ? (e.filterData = i.data, W(i.visibility)) : (e.filterData = void 0, W(i)) } hasTreeNode(e, t = this.root) { if (!e || 0 === e.length) return !0; const [i, ...n] = e; return !(i < 0 || i > t.children.length) && this.hasTreeNode(n, t.children[ i]) } getTreeNode(e, t = this.root) { if (!e || 0 === e.length) return t; const [i, ...n] = e; if (i < 0 || i > t.children.length) throw new R(this.user, "Invalid tree location"); return this.getTreeNode(n, t.children[i]) } getTreeNodeWithListIndex(e) { if (0 === e.length) return { node: this.root, listIndex: -1, revealed: !0, visible: !1 }; const { parentNode: t, listIndex: i, revealed: n, visible: o } = this.getParentNodeWithListIndex(e), r = e[e.length - 1]; if (r < 0 || r > t.children.length) throw new R(this.user, "Invalid tree location"); const s = t.children[r]; return { node: s, listIndex: i, revealed: n, visible: o && s.visible } } getParentNodeWithListIndex(e, t = this.root, i = 0, n = !0, o = !0) { const [r, ...s] = e; if (r < 0 || r > t.children.length) throw new R(this.user, "Invalid tree location"); for (let e = 0; e < r; e++) i += t.children[e].renderNodeCount; return n = n && !t.collapsed, o = o && t.visible, 0 === s.length ? { parentNode: t, listIndex: i, revealed: n, visible: o } : this.getParentNodeWithListIndex(s, t.children[r], i + 1, n, o) } getNode(e = []) { return this.getTreeNode(e) } getNodeLocation(e) { const t = []; let i = e; for (; i.parent;) t.push(i.parent.children.indexOf(i)), i = i.parent; return t.reverse() } getParentNodeLocation(e) { return 0 === e.length ? void 0 : 1 === e.length ? [] : (0, o.JH)(e)[0] } } var H = i(3046); const U = (0, H.CM)("tree-item-expanded", H.lA.chevronDown), j = (0, H.CM)("tree-filter-on-type-on", H.lA.listFilter), K = (0, H.CM)("tree-filter-on-type-off", H.lA.listSelection), $ = (0, H.CM)("tree-filter-clear", H.lA.close), q = (0, H.CM)("tree-item-loading", H.lA.loading); var Z = i(5393), G = i(6626), Y = i(5392), Q = i(9870), X = i(1432), J = i(1766), ee = {}; ee.styleTagTransform = S(), ee.setAttributes = v(), ee.insert = _().bind( null, "head"), ee.domAPI = m(), ee.insertStyleElement = C(), g()(J.Z, ee), J.Z && J.Z.locals && J.Z.locals; var te, ie = i(3580); class ne extends I.kX { constructor(e) { super(e.elements.map((e => e.element))), this.data = e } } function oe(e) { return e instanceof I.kX ? new ne(e) : e } class re { constructor(e, t) { this.modelProvider = e, this.dnd = t, this.autoExpandDisposable = a.JT .None } getDragURI(e) { return this.dnd.getDragURI(e.element) } getDragLabel(e, t) { if (this.dnd.getDragLabel) return this.dnd.getDragLabel(e.map((e => e.element)), t) } onDragStart(e, t) { this.dnd.onDragStart && this.dnd.onDragStart(oe(e), t) } onDragOver(e, t, i, n, r = !0) { const s = this.dnd.onDragOver(oe(e), t && t.element, i, n), a = this.autoExpandNode !== t; if (a && (this.autoExpandDisposable.dispose(), this.autoExpandNode = t), void 0 === t) return s; if (a && "boolean" != typeof s && s.autoExpand && (this.autoExpandDisposable = (0, Z.Vg)((() => { const e = this.modelProvider(), i = e.getNodeLocation(t); e.isCollapsed(i) && e.setCollapsed(i, !1), this.autoExpandNode = void 0 }), 500)), "boolean" == typeof s || !s.accept || void 0 === s.bubble || s.feedback) return r ? s : { accept: "boolean" == typeof s ? s : s.accept, effect: "boolean" == typeof s ? void 0 : s.effect, feedback: [i] }; if (1 === s.bubble) { const i = this.modelProvider(), o = i.getNodeLocation(t), r = i.getParentNodeLocation(o), s = i.getNode(r), a = r && i.getListIndex(r); return this.onDragOver(e, s, a, n, !1) } const l = this.modelProvider(), d = l.getNodeLocation(t), c = l.getListIndex(d), h = l.getListRenderCount(d); return Object.assign(Object.assign({}, s), { feedback: (0, o.w6)(c, c + h) }) } drop(e, t, i, n) { this.autoExpandDisposable.dispose(), this.autoExpandNode = void 0, this.dnd.drop(oe(e), t && t.element, i, n) } onDragEnd(e) { this.dnd.onDragEnd && this.dnd.onDragEnd(e) } } class se { constructor(e) { this.delegate = e } getHeight(e) { return this.delegate.getHeight(e.element) } getTemplateId(e) { return this.delegate.getTemplateId(e.element) } hasDynamicHeight(e) { return !!this.delegate.hasDynamicHeight && this.delegate.hasDynamicHeight( e.element) } setDynamicHeight(e, t) { this.delegate.setDynamicHeight && this.delegate.setDynamicHeight(e.element, t) } }! function(e) { e.None = "none", e.OnHover = "onHover", e.Always = "always" }(te || (te = {})); class ae { constructor(e, t = []) { this._elements = t, this.onDidChange = s.ju.forEach(e, (e => this._elements = e)) } get elements() { return this._elements } } class le { constructor(e, t, i, n, o = {}) { this.renderer = e, this.modelProvider = t, this.activeNodes = n, this.renderedElements = new Map, this.renderedNodes = new Map, this.indent = le.DefaultIndent, this.hideTwistiesOfChildlessElements = !1, this.shouldRenderIndentGuides = ! 1, this.renderedIndentGuides = new G.r, this.activeIndentNodes = new Set, this.indentGuidesDisposable = a.JT.None, this.disposables = new a.SL, this.templateId = e.templateId, this.updateOptions(o), s.ju.map(i, (e => e.node))(this.onDidChangeNodeTwistieState, this, this.disposables), e.onDidChangeTwistieState && e.onDidChangeTwistieState(this.onDidChangeTwistieState, this, this.disposables) } updateOptions(e = {}) { if (void 0 !== e.indent && (this.indent = (0, Q.u)(e.indent, 0, 40)), void 0 !== e.renderIndentGuides) { const t = e.renderIndentGuides !== te.None; if (t !== this.shouldRenderIndentGuides && (this.shouldRenderIndentGuides = t, this.indentGuidesDisposable.dispose(), t)) { const e = new a.SL; this.activeNodes.onDidChange(this._onDidChangeActiveNodes, this, e), this.indentGuidesDisposable = e, this._onDidChangeActiveNodes(this.activeNodes .elements) } } void 0 !== e.hideTwistiesOfChildlessElements && (this.hideTwistiesOfChildlessElements = e.hideTwistiesOfChildlessElements) } renderTemplate(e) { const t = (0, n.R3)(e, (0, n.$)(".monaco-tl-row")), i = (0, n.R3)(t, (0, n.$)(".monaco-tl-indent")), o = (0, n.R3)(t, (0, n.$)(".monaco-tl-twistie")), r = (0, n.R3)(t, (0, n.$)(".monaco-tl-contents")), s = this.renderer.renderTemplate(r); return { container: e, indent: i, twistie: o, indentGuidesDisposable: a.JT.None, templateData: s } } renderElement(e, t, i, n) { "number" == typeof n && (this.renderedNodes.set(e, { templateData: i, height: n }), this.renderedElements.set(e.element, e)); const o = le.DefaultIndent + (e.depth - 1) * this.indent; i.twistie.style.paddingLeft = `${o}px`, i.indent.style.width = o + this.indent - 16 + "px", this.renderTwistie(e, i), "number" == typeof n && this.renderIndentGuides(e, i), this.renderer.renderElement(e, t, i.templateData, n) } disposeElement(e, t, i, n) { i.indentGuidesDisposable.dispose(), this.renderer.disposeElement && this.renderer.disposeElement(e, t, i.templateData, n), "number" == typeof n && (this.renderedNodes.delete(e), this.renderedElements.delete( e.element)) } disposeTemplate(e) { this.renderer.disposeTemplate(e.templateData) } onDidChangeTwistieState(e) { const t = this.renderedElements.get(e); t && this.onDidChangeNodeTwistieState(t) } onDidChangeNodeTwistieState(e) { const t = this.renderedNodes.get(e); t && (this.renderTwistie(e, t.templateData), this._onDidChangeActiveNodes( this.activeNodes.elements), this.renderIndentGuides(e, t.templateData)) } renderTwistie(e, t) { t.twistie.classList.remove(...U.classNamesArray); let i = !1; this.renderer.renderTwistie && (i = this.renderer.renderTwistie(e.element, t.twistie)), e.collapsible && (!this.hideTwistiesOfChildlessElements || e.visibleChildrenCount > 0) ? (i || t.twistie.classList.add(...U.classNamesArray), t.twistie.classList.add("collapsible"), t.twistie.classList.toggle( "collapsed", e.collapsed)) : t.twistie.classList.remove( "collapsible", "collapsed"), e.collapsible ? t.container.setAttribute( "aria-expanded", String(!e.collapsed)) : t.container.removeAttribute( "aria-expanded") } renderIndentGuides(e, t) { if ((0, n.PO)(t.indent), t.indentGuidesDisposable.dispose(), !this.shouldRenderIndentGuides) return; const i = new a.SL, o = this.modelProvider(); let r = e; for (;;) { const e = o.getNodeLocation(r), s = o.getParentNodeLocation(e); if (!s) break; const l = o.getNode(s), d = (0, n.$)(".indent-guide", { style: `width: ${this.indent}px` }); this.activeIndentNodes.has(l) && d.classList.add("active"), 0 === t.indent .childElementCount ? t.indent.appendChild(d) : t.indent.insertBefore( d, t.indent.firstElementChild), this.renderedIndentGuides.add(l, d), i.add((0, a.OF)((() => this.renderedIndentGuides.delete(l, d)))), r = l } t.indentGuidesDisposable = i } _onDidChangeActiveNodes(e) { if (!this.shouldRenderIndentGuides) return; const t = new Set, i = this.modelProvider(); e.forEach((e => { const n = i.getNodeLocation(e); try { const o = i.getParentNodeLocation(n); e.collapsible && e.children.length > 0 && !e.collapsed ? t.add(e) : o && t.add(i.getNode(o)) } catch (e) {} })), this.activeIndentNodes.forEach((e => { t.has(e) || this.renderedIndentGuides.forEach(e, (e => e.classList .remove("active"))) })), t.forEach((e => { this.activeIndentNodes.has(e) || this.renderedIndentGuides.forEach( e, (e => e.classList.add("active"))) })), this.activeIndentNodes = t } dispose() { this.renderedNodes.clear(), this.renderedElements.clear(), this.indentGuidesDisposable .dispose(), (0, a.B9)(this.disposables) } } le.DefaultIndent = 8; class de { constructor(e, t, i) { this.tree = e, this.keyboardNavigationLabelProvider = t, this._filter = i, this._totalCount = 0, this._matchCount = 0, this._pattern = "", this._lowercasePattern = "", this.disposables = new a.SL, e.onWillRefilter( this.reset, this, this.disposables) } get totalCount() { return this._totalCount } get matchCount() { return this._matchCount } set pattern(e) { this._pattern = e, this._lowercasePattern = e.toLowerCase() } filter(e, t) { if (this._filter) { const i = this._filter.filter(e, t); if (this.tree.options.simpleKeyboardNavigation) return i; let n; if (n = "boolean" == typeof i ? i ? 1 : 0 : B(i) ? W(i.visibility) : i, 0 === n) return !1 } if (this._totalCount++, this.tree.options.simpleKeyboardNavigation || !this._pattern) return this._matchCount++, { data: Y.CL.Default, visibility: !0 }; const i = this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel( e), n = Array.isArray(i) ? i : [i]; for (const e of n) { const t = e && e.toString(); if (void 0 === t) return { data: Y.CL.Default, visibility: !0 }; const i = (0, Y.EW)(this._pattern, this._lowercasePattern, 0, t, t.toLowerCase(), 0, !0); if (i) return this._matchCount++, 1 === n.length ? { data: i, visibility: !0 } : { data: { label: t, score: i }, visibility: !0 } } return this.tree.options.filterOnType ? 2 : { data: Y.CL.Default, visibility: !0 } } reset() { this._totalCount = 0, this._matchCount = 0 } dispose() { (0, a.B9)(this.disposables) } } class ce { constructor(e, t, i, o, r) { this.tree = e, this.view = i, this.filter = o, this.keyboardNavigationDelegate = r, this._enabled = !1, this._pattern = "", this._empty = !1, this._onDidChangeEmptyState = new s.Q5, this.positionClassName = "ne", this.automaticKeyboardNavigation = ! 0, this.triggered = !1, this._onDidChangePattern = new s.Q5, this.enabledDisposables = new a.SL, this.disposables = new a.SL, this.domNode = (0, n.$)( `.monaco-list-type-filter.${this.positionClassName}`), this.domNode.draggable = ! 0, this.disposables.add((0, n.nm)(this.domNode, "dragstart", (() => this.onDragStart()))), this.messageDomNode = (0, n.R3)(i.getHTMLElement(), ( 0, n.$)(".monaco-list-type-filter-message")), this.labelDomNode = (0, n.R3)(this.domNode, (0, n.$)("span.label")); const l = (0, n.R3)(this.domNode, (0, n.$)(".controls")); this._filterOnType = !!e.options.filterOnType, this.filterOnTypeDomNode = (0, n.R3)(l, (0, n.$)("input.filter")), this.filterOnTypeDomNode.type = "checkbox", this.filterOnTypeDomNode.checked = this._filterOnType, this.filterOnTypeDomNode.tabIndex = -1, this.updateFilterOnTypeTitleAndIcon(), this.disposables.add((0, n.nm)(this.filterOnTypeDomNode, "input", (() => this.onDidChangeFilterOnType()))), this.clearDomNode = (0, n.R3)(l, ( 0, n.$)("button.clear" + $.cssSelector)), this.clearDomNode.tabIndex = - 1, this.clearDomNode.title = (0, ie.N)("clear", "Clear"), this.keyboardNavigationEventFilter = e.options.keyboardNavigationEventFilter, t.onDidSplice(this.onDidSpliceModel, this, this.disposables), this.updateOptions(e.options) } get enabled() { return this._enabled } get pattern() { return this._pattern } get filterOnType() { return this._filterOnType } updateOptions(e) { e.simpleKeyboardNavigation ? this.disable() : this.enable(), void 0 !== e.filterOnType && (this._filterOnType = !!e.filterOnType, this.filterOnTypeDomNode .checked = this._filterOnType, this.updateFilterOnTypeTitleAndIcon() ), void 0 !== e.automaticKeyboardNavigation && (this.automaticKeyboardNavigation = e.automaticKeyboardNavigation), this.tree.refilter(), this.render(), this.automaticKeyboardNavigation || this.onEventOrInput("") } enable() { if (this._enabled) return; const e = this.enabledDisposables.add(new M.Y(this.view.getHTMLElement(), "keydown")), t = s.ju.chain(e.event).filter((e => !(0, l.cK)(e.target) || e.target === this.filterOnTypeDomNode)).filter((e => "Dead" !== e.key && ! /^Media/.test(e.key))).map((e => new A.y(e))).filter(this.keyboardNavigationEventFilter || (() => !0)).filter((() => this.automaticKeyboardNavigation || this.triggered)) .filter((e => this.keyboardNavigationDelegate.mightProducePrintableCharacter( e) && !(18 === e.keyCode || 16 === e.keyCode || 15 === e.keyCode || 17 === e.keyCode) || (this.pattern.length > 0 || this.triggered) && (9 === e.keyCode || 1 === e.keyCode) && !e.altKey && !e.ctrlKey && !e.metaKey || 1 === e.keyCode && (X.dz ? e.altKey && !e.metaKey : e .ctrlKey) && !e.shiftKey)).forEach((e => { e.stopPropagation(), e.preventDefault() })).event, i = this.enabledDisposables.add(new M.Y(this.clearDomNode, "click")); s.ju.chain(s.ju.any(t, i.event)).event(this.onEventOrInput, this, this .enabledDisposables), this.filter.pattern = "", this.tree.refilter(), this.render(), this._enabled = !0, this.triggered = !1 } disable() { this._enabled && (this.domNode.remove(), this.enabledDisposables.clear(), this.tree.refilter(), this.render(), this._enabled = !1, this.triggered = ! 1) } onEventOrInput(e) { "string" == typeof e ? this.onInput(e) : e instanceof MouseEvent || 9 === e.keyCode || 1 === e.keyCode && (X.dz ? e.altKey : e.ctrlKey) ? this.onInput( "") : 1 === e.keyCode ? this.onInput(0 === this.pattern.length ? "" : this.pattern.substr(0, this.pattern.length - 1)) : this.onInput(this .pattern + e.browserEvent.key) } onInput(e) { const t = this.view.getHTMLElement(); e && !this.domNode.parentElement ? t.append(this.domNode) : !e && this .domNode.parentElement && (this.domNode.remove(), this.tree.domFocus()), this._pattern = e, this._onDidChangePattern.fire(e), this.filter.pattern = e, this.tree.refilter(), e && this.tree.focusNext(0, !0, void 0, (e => !Y.CL.isDefault(e.filterData))); const i = this.tree.getFocus(); if (i.length > 0) { const e = i[0]; null === this.tree.getRelativeTop(e) && this.tree.reveal(e, .5) } this.render(), e || (this.triggered = !1) } onDragStart() { const e = this.view.getHTMLElement(), { left: t } = (0, n.i)(e), i = e.clientWidth, o = i / 2, r = this.domNode.clientWidth, s = new a.SL; let l = this.positionClassName; const d = () => { switch (l) { case "nw": this.domNode.style.top = "4px", this.domNode.style.left = "4px"; break; case "ne": this.domNode.style.top = "4px", this.domNode.style.left = i - r - 6 + "px" } }, c = () => { this.positionClassName = l, this.domNode.className = `monaco-list-type-filter ${this.positionClassName}`, this.domNode.style .top = "", this.domNode.style.left = "", (0, a.B9)(s) }; d(), this.domNode.classList.remove(l), this.domNode.classList.add( "dragging"), s.add((0, a.OF)((() => this.domNode.classList.remove( "dragging")))), s.add((0, n.nm)(document, "dragover", (e => (e => { e.preventDefault(); const i = e.clientX - t; e.dataTransfer && (e.dataTransfer.dropEffect = "none"), l = i < o ? "nw" : "ne", d() })(e)))), s.add((0, n.nm)(this.domNode, "dragend", (() => c()))), T.P$ .CurrentDragAndDropData = new T.TN("vscode-ui"), s.add((0, a.OF)((() => T.P$.CurrentDragAndDropData = void 0))) } onDidSpliceModel() { this._enabled && 0 !== this.pattern.length && (this.tree.refilter(), this.render()) } onDidChangeFilterOnType() { this.tree.updateOptions({ filterOnType: this.filterOnTypeDomNode.checked }), this.tree.refilter(), this.tree.domFocus(), this.render(), this.updateFilterOnTypeTitleAndIcon() } updateFilterOnTypeTitleAndIcon() { this.filterOnType ? (this.filterOnTypeDomNode.classList.remove(...K.classNamesArray), this.filterOnTypeDomNode.classList.add(...j.classNamesArray), this.filterOnTypeDomNode .title = (0, ie.N)("disable filter on type", "Disable Filter on Type")) : (this.filterOnTypeDomNode.classList.remove( ...j.classNamesArray), this.filterOnTypeDomNode.classList.add(...K.classNamesArray), this.filterOnTypeDomNode.title = (0, ie.N)("enable filter on type", "Enable Filter on Type")) } render() { const e = this.filter.totalCount > 0 && 0 === this.filter.matchCount; this.pattern && this.tree.options.filterOnType && e ? (this.messageDomNode .textContent = (0, ie.N)("empty", "No elements found"), this._empty = ! 0) : (this.messageDomNode.innerText = "", this._empty = !1), this.domNode .classList.toggle("no-matches", e), this.domNode.title = (0, ie.N)( "found", "Matched {0} out of {1} elements", this.filter.matchCount, this.filter.totalCount), this.labelDomNode.textContent = this.pattern .length > 16 ? "…" + this.pattern.substr(this.pattern.length - 16) : this.pattern, this._onDidChangeEmptyState.fire(this._empty) } shouldAllowFocus(e) { return !(this.enabled && this.pattern && !this.filterOnType) || this.filter .totalCount > 0 && this.filter.matchCount <= 1 || !Y.CL.isDefault(e.filterData) } dispose() { this._enabled && (this.domNode.remove(), this.enabledDisposables.dispose(), this._enabled = !1, this.triggered = !1), this._onDidChangePattern.dispose(), ( 0, a.B9)(this.disposables) } } function he(e) { let t = E.Unknown; return (0, n.uU)(e.browserEvent.target, "monaco-tl-twistie", "monaco-tl-row") ? t = E.Twistie : (0, n.uU)(e.browserEvent.target, "monaco-tl-contents", "monaco-tl-row") && (t = E.Element), { browserEvent: e.browserEvent, element: e.element ? e.element.element : null, target: t } } function ue(e, t) { t(e), e.children.forEach((e => ue(e, t))) } class ge { constructor(e, t) { this.getFirstViewElementWithTrait = e, this.identityProvider = t, this .nodes = [], this._onDidChange = new s.Q5, this.onDidChange = this._onDidChange .event } get nodeSet() { return this._nodeSet || (this._nodeSet = this.createNodeSet()), this._nodeSet } set(e, t) { var i; !(null === (i = t) || void 0 === i ? void 0 : i.__forceEvent) && (0, o .fS)(this.nodes, e) || this._set(e, !1, t) } _set(e, t, i) { if (this.nodes = [...e], this.elements = void 0, this._nodeSet = void 0, ! t) { const e = this; this._onDidChange.fire({get elements() { return e.get() }, browserEvent: i }) } } get() { return this.elements || (this.elements = this.nodes.map((e => e.element))), [ ...this.elements ] } getNodes() { return this.nodes } has(e) { return this.nodeSet.has(e) } onDidModelSplice({ insertedNodes: e, deletedNodes: t }) { if (!this.identityProvider) { const e = this.createNodeSet(), i = t => e.delete(t); return t.forEach((e => ue(e, i))), void this.set([...e.values()]) } const i = new Set, n = e => i.add(this.identityProvider.getId(e.element).toString()); t.forEach((e => ue(e, n))); const o = new Map, r = e => o.set(this.identityProvider.getId(e.element).toString(), e); e.forEach((e => ue(e, r))); const s = []; for (const e of this.nodes) { const t = this.identityProvider.getId(e.element).toString(); if (i.has(t)) { const e = o.get(t); e && s.push(e) } else s.push(e) } if (this.nodes.length > 0 && 0 === s.length) { const e = this.getFirstViewElementWithTrait(); e && s.push(e) } this._set(s, !0) } createNodeSet() { const e = new Set; for (const t of this.nodes) e.add(t); return e } } class pe extends l.sx { constructor(e, t) { super(e), this.tree = t } onViewPointer(e) { if ((0, l.cK)(e.browserEvent.target) || (0, l.hD)(e.browserEvent.target)) return; const t = e.element; if (!t) return super.onViewPointer(e); if (this.isSelectionRangeChangeEvent(e) || this.isSelectionSingleChangeEvent( e)) return super.onViewPointer(e); const i = e.browserEvent.target, n = i.classList.contains("monaco-tl-twistie") || i.classList.contains( "monaco-icon-label") && i.classList.contains("folder-icon") && e.browserEvent .offsetX < 16; let o = !1; if (o = "function" == typeof this.tree.expandOnlyOnTwistieClick ? this.tree.expandOnlyOnTwistieClick(t.element) : !!this.tree.expandOnlyOnTwistieClick, o && !n && 2 !== e.browserEvent.detail) return super.onViewPointer(e); if (!this.tree.expandOnDoubleClick && 2 === e.browserEvent.detail) return super.onViewPointer(e); if (t.collapsible) { const i = this.tree.model, r = i.getNodeLocation(t), s = e.browserEvent.altKey; if (this.tree.setFocus([r]), i.setCollapsed(r, void 0, s), o && n) return } super.onViewPointer(e) } onDoubleClick(e) { !e.browserEvent.target.classList.contains("monaco-tl-twistie") && this.tree.expandOnDoubleClick && super.onDoubleClick(e) } } class me extends l.aV { constructor(e, t, i, n, o, r, s, a) { super(e, t, i, n, a), this.focusTrait = o, this.selectionTrait = r, this.anchorTrait = s } createMouseController(e) { return new pe(this, e.tree) } splice(e, t, i = []) { if (super.splice(e, t, i), 0 === i.length) return; const n = [], r = []; let s; i.forEach(((t, i) => { this.focusTrait.has(t) && n.push(e + i), this.selectionTrait.has( t) && r.push(e + i), this.anchorTrait.has(t) && (s = e + i) })), n.length > 0 && super.setFocus((0, o.cU)([...super.getFocus(), ...n ])), r.length > 0 && super.setSelection((0, o.cU)([...super.getSelection(), ...r ])), "number" == typeof s && super.setAnchor(s) } setFocus(e, t, i = !1) { super.setFocus(e, t), i || this.focusTrait.set(e.map((e => this.element( e))), t) } setSelection(e, t, i = !1) { super.setSelection(e, t), i || this.selectionTrait.set(e.map((e => this.element(e))), t) } setAnchor(e, t = !1) { super.setAnchor(e), t || (void 0 === e ? this.anchorTrait.set([]) : this.anchorTrait.set([this.element(e)])) } } class fe { constructor(e, t, i, o, r = {}) { this._options = r, this.eventBufferer = new s.E7, this.disposables = new a.SL, this._onWillRefilter = new s.Q5, this.onWillRefilter = this ._onWillRefilter.event, this._onDidUpdateOptions = new s.Q5; const d = new se(i), c = new s.ZD, h = new s.ZD, u = new ae(h.event); this.renderers = o.map((e => new le(e, (() => this.model), c.event, u, r))); for (let e of this.renderers) this.disposables.add(e); let g; r.keyboardNavigationLabelProvider && (g = new de(this, r.keyboardNavigationLabelProvider, r.filter), r = Object.assign(Object.assign({}, r), { filter: g }), this.disposables.add(g)), this.focus = new ge((() => this.view.getFocusedElements()[ 0]), r.identityProvider), this.selection = new ge((() => this.view.getSelectedElements()[ 0]), r.identityProvider), this.anchor = new ge((() => this.view.getAnchorElement()), r.identityProvider), this.view = new me(e, t, d, this.renderers, this.focus, this.selection, this.anchor, Object.assign(Object.assign({}, function(e, t) { return t && Object.assign(Object.assign({}, t), { identityProvider: t.identityProvider && { getId: e => t.identityProvider.getId(e.element) }, dnd: t.dnd && new re(e, t.dnd), multipleSelectionController: t.multipleSelectionController && { isSelectionSingleChangeEvent: e => t.multipleSelectionController .isSelectionSingleChangeEvent(Object.assign(Object.assign({}, e), { element: e.element })), isSelectionRangeChangeEvent: e => t.multipleSelectionController .isSelectionRangeChangeEvent(Object.assign(Object.assign({}, e), { element: e.element })) }, accessibilityProvider: t.accessibilityProvider && Object.assign( Object.assign({}, t.accessibilityProvider), { getSetSize(t) { const i = e(), n = i.getNodeLocation(t), o = i.getParentNodeLocation(n); return i.getNode(o).visibleChildrenCount }, getPosInSet: e => e.visibleChildIndex + 1, isChecked: t .accessibilityProvider && t.accessibilityProvider.isChecked ? e => t.accessibilityProvider.isChecked(e.element) : void 0, getRole: t.accessibilityProvider && t.accessibilityProvider .getRole ? e => t.accessibilityProvider.getRole(e.element) : () => "treeitem", getAriaLabel: e => t.accessibilityProvider .getAriaLabel(e.element), getWidgetAriaLabel: () => t.accessibilityProvider .getWidgetAriaLabel(), getWidgetRole: t.accessibilityProvider && t.accessibilityProvider.getWidgetRole ? () => t.accessibilityProvider .getWidgetRole() : () => "tree", getAriaLevel: t.accessibilityProvider && t.accessibilityProvider.getAriaLevel ? e => t.accessibilityProvider .getAriaLevel(e.element) : e => e.depth, getActiveDescendantId: t.accessibilityProvider.getActiveDescendantId && (e => t.accessibilityProvider.getActiveDescendantId(e.element)) }), keyboardNavigationLabelProvider: t.keyboardNavigationLabelProvider && Object.assign(Object.assign({}, t.keyboardNavigationLabelProvider), { getKeyboardNavigationLabel: e => t.keyboardNavigationLabelProvider .getKeyboardNavigationLabel(e.element) }), enableKeyboardNavigation: t.simpleKeyboardNavigation }) }((() => this.model), r)), { tree: this })), this.model = this.createModel(e, this.view, r), c.input = this.model .onDidChangeCollapseState; const p = s.ju.forEach(this.model.onDidSplice, (e => { this.eventBufferer.bufferEvents((() => { this.focus.onDidModelSplice(e), this.selection.onDidModelSplice( e) })) })); if (p((() => null), null, this.disposables), h.input = s.ju.chain(s.ju .any(p, this.focus.onDidChange, this.selection.onDidChange)).debounce( (() => null), 0).map((() => { const e = new Set; for (const t of this.focus.getNodes()) e.add(t); for (const t of this.selection.getNodes()) e.add(t); return [...e.values()] })).event, !1 !== r.keyboardSupport) { const e = s.ju.chain(this.view.onKeyDown).filter((e => !(0, l.cK)(e.target))) .map((e => new A.y(e))); e.filter((e => 15 === e.keyCode)).on(this.onLeftArrow, this, this.disposables), e.filter((e => 17 === e.keyCode)).on(this.onRightArrow, this, this.disposables), e.filter((e => 10 === e.keyCode)).on(this.onSpace, this, this.disposables) } if (r.keyboardNavigationLabelProvider) { const e = r.keyboardNavigationDelegate || l.WK; this.typeFilterController = new ce(this, this.model, this.view, g, e), this.focusNavigationFilter = e => this.typeFilterController.shouldAllowFocus( e), this.disposables.add(this.typeFilterController) } this.styleElement = (0, n.dS)(this.view.getHTMLElement()), this.getHTMLElement() .classList.toggle("always", this._options.renderIndentGuides === te.Always) } get onDidChangeFocus() { return this.eventBufferer.wrapEvent(this.focus.onDidChange) } get onDidChangeSelection() { return this.eventBufferer.wrapEvent(this.selection.onDidChange) } get onMouseDblClick() { return s.ju.map(this.view.onMouseDblClick, he) } get onPointer() { return s.ju.map(this.view.onPointer, he) } get onDidFocus() { return this.view.onDidFocus } get onDidChangeCollapseState() { return this.model.onDidChangeCollapseState } get expandOnDoubleClick() { return void 0 === this._options.expandOnDoubleClick || this._options.expandOnDoubleClick } get expandOnlyOnTwistieClick() { return void 0 === this._options.expandOnlyOnTwistieClick || this._options .expandOnlyOnTwistieClick } get onDidDispose() { return this.view.onDidDispose } updateOptions(e = {}) { this._options = Object.assign(Object.assign({}, this._options), e); for (const t of this.renderers) t.updateOptions(e); this.view.updateOptions(Object.assign(Object.assign({}, this._options), { enableKeyboardNavigation: this._options.simpleKeyboardNavigation })), this.typeFilterController && this.typeFilterController.updateOptions( this._options), this._onDidUpdateOptions.fire(this._options), this.getHTMLElement() .classList.toggle("always", this._options.renderIndentGuides === te.Always) } get options() { return this._options } getHTMLElement() { return this.view.getHTMLElement() } get scrollTop() { return this.view.scrollTop } set scrollTop(e) { this.view.scrollTop = e } domFocus() { this.view.domFocus() } layout(e, t) { this.view.layout(e, t) } style(e) { const t = `.${this.view.domId}`, i = []; e.treeIndentGuidesStroke && (i.push( `.monaco-list${t}:hover .monaco-tl-indent > .indent-guide, .monaco-list${t}.always .monaco-tl-indent > .indent-guide { border-color: ${e.treeIndentGuidesStroke.transparent(.4)}; }` ), i.push( `.monaco-list${t} .monaco-tl-indent > .indent-guide.active { border-color: ${e.treeIndentGuidesStroke}; }` )), this.styleElement.textContent = i.join("\n"), this.view.style(e) } collapse(e, t = !1) { return this.model.setCollapsed(e, !0, t) } expand(e, t = !1) { return this.model.setCollapsed(e, !1, t) } isCollapsible(e) { return this.model.isCollapsible(e) } setCollapsible(e, t) { return this.model.setCollapsible(e, t) } isCollapsed(e) { return this.model.isCollapsed(e) } refilter() { this._onWillRefilter.fire(void 0), this.model.refilter() } setSelection(e, t) { const i = e.map((e => this.model.getNode(e))); this.selection.set(i, t); const n = e.map((e => this.model.getListIndex(e))).filter((e => e > -1)); this.view.setSelection(n, t, !0) } getSelection() { return this.selection.get() } setFocus(e, t) { const i = e.map((e => this.model.getNode(e))); this.focus.set(i, t); const n = e.map((e => this.model.getListIndex(e))).filter((e => e > -1)); this.view.setFocus(n, t, !0) } focusNext(e = 1, t = !1, i, n = this.focusNavigationFilter) { this.view.focusNext(e, t, i, n) } getFocus() { return this.focus.get() } reveal(e, t) { this.model.expandTo(e); const i = this.model.getListIndex(e); - 1 !== i && this.view.reveal(i, t) } getRelativeTop(e) { const t = this.model.getListIndex(e); return -1 === t ? null : this.view.getRelativeTop(t) } onLeftArrow(e) { e.preventDefault(), e.stopPropagation(); const t = this.view.getFocusedElements(); if (0 === t.length) return; const i = t[0], n = this.model.getNodeLocation(i); if (!this.model.setCollapsed(n, !0)) { const e = this.model.getParentNodeLocation(n); if (!e) return; const t = this.model.getListIndex(e); this.view.reveal(t), this.view.setFocus([t]) } } onRightArrow(e) { e.preventDefault(), e.stopPropagation(); const t = this.view.getFocusedElements(); if (0 === t.length) return; const i = t[0], n = this.model.getNodeLocation(i); if (!this.model.setCollapsed(n, !1)) { if (!i.children.some((e => e.visible))) return; const [e] = this.view.getFocus(), t = e + 1; this.view.reveal(t), this.view.setFocus([t]) } } onSpace(e) { e.preventDefault(), e.stopPropagation(); const t = this.view.getFocusedElements(); if (0 === t.length) return; const i = t[0], n = this.model.getNodeLocation(i), o = e.browserEvent.altKey; this.model.setCollapsed(n, void 0, o) } dispose() { (0, a.B9)(this.disposables), this.view.dispose() } } class _e { constructor(e, t, i = {}) { this.user = e, this.rootRef = null, this.nodes = new Map, this.nodesByIdentity = new Map, this.model = new V(e, t, null, i), this.onDidSplice = this.model .onDidSplice, this.onDidChangeCollapseState = this.model.onDidChangeCollapseState, this.onDidChangeRenderNodeCount = this.model.onDidChangeRenderNodeCount, i.sorter && (this.sorter = { compare: (e, t) => i.sorter.compare(e.element, t.element) }), this.identityProvider = i.identityProvider } setChildren(e, t = F.$.empty(), i = {}) { const n = this.getElementLocation(e); this._setChildren(n, this.preserveCollapseState(t), i) } _setChildren(e, t = F.$.empty(), i) { const n = new Set, o = new Set; this.model.splice([...e, 0], Number.MAX_VALUE, t, Object.assign(Object .assign({}, i), { onDidCreateNode: e => { var t; if (null === e.element) return; const r = e; if (n.add(r.element), this.nodes.set(r.element, r), this.identityProvider) { const e = this.identityProvider.getId(r.element).toString(); o.add(e), this.nodesByIdentity.set(e, r) } null === (t = i.onDidCreateNode) || void 0 === t || t.call(i, r) }, onDidDeleteNode: e => { var t; if (null === e.element) return; const r = e; if (n.has(r.element) || this.nodes.delete(r.element), this.identityProvider) { const e = this.identityProvider.getId(r.element).toString(); o.has(e) || this.nodesByIdentity.delete(e) } null === (t = i.onDidDeleteNode) || void 0 === t || t.call(i, r) } })) } preserveCollapseState(e = F.$.empty()) { return this.sorter && (e = [...e].sort(this.sorter.compare.bind(this.sorter))), F.$.map(e, (e => { let t = this.nodes.get(e.element); if (!t && this.identityProvider) { const i = this.identityProvider.getId(e.element).toString(); t = this.nodesByIdentity.get(i) } if (!t) return Object.assign(Object.assign({}, e), { children: this.preserveCollapseState(e.children) }); const i = "boolean" == typeof e.collapsible ? e.collapsible : t.collapsible, n = void 0 !== e.collapsed ? e.collapsed : t.collapsed; return Object.assign(Object.assign({}, e), { collapsible: i, collapsed: n, children: this.preserveCollapseState(e.children) }) })) } rerender(e) { const t = this.getElementLocation(e); this.model.rerender(t) } has(e) { return this.nodes.has(e) } getListIndex(e) { const t = this.getElementLocation(e); return this.model.getListIndex(t) } getListRenderCount(e) { const t = this.getElementLocation(e); return this.model.getListRenderCount(t) } isCollapsible(e) { const t = this.getElementLocation(e); return this.model.isCollapsible(t) } setCollapsible(e, t) { const i = this.getElementLocation(e); return this.model.setCollapsible(i, t) } isCollapsed(e) { const t = this.getElementLocation(e); return this.model.isCollapsed(t) } setCollapsed(e, t, i) { const n = this.getElementLocation(e); return this.model.setCollapsed(n, t, i) } expandTo(e) { const t = this.getElementLocation(e); this.model.expandTo(t) } refilter() { this.model.refilter() } getNode(e = null) { if (null === e) return this.model.getNode(this.model.rootRef); const t = this.nodes.get(e); if (!t) throw new R(this.user, `Tree element not found: ${e}`); return t } getNodeLocation(e) { return e.element } getParentNodeLocation(e) { if (null === e) throw new R(this.user, "Invalid getParentNodeLocation call"); const t = this.nodes.get(e); if (!t) throw new R(this.user, `Tree element not found: ${e}`); const i = this.model.getNodeLocation(t), n = this.model.getParentNodeLocation(i); return this.model.getNode(n).element } getElementLocation(e) { if (null === e) return []; const t = this.nodes.get(e); if (!t) throw new R(this.user, `Tree element not found: ${e}`); return this.model.getNodeLocation(t) } } function be(e) { return { element: { elements: [e.element], incompressible: e.incompressible || !1 }, children: F.$.map(F.$.from(e.children), be), collapsible: e.collapsible, collapsed: e.collapsed } } function ve(e) { const t = [e.element], i = e.incompressible || !1; let n, o; for (; [o, n] = F.$.consume(F.$.from(e.children), 2), 1 === o.length && !o[0].incompressible; ) e = o[0], t.push(e.element); return { element: { elements: t, incompressible: i }, children: F.$.map(F.$.concat(o, n), ve), collapsible: e.collapsible, collapsed: e.collapsed } } function we(e, t = 0) { let i; return i = t < e.element.elements.length - 1 ? [we(e, t + 1)] : F.$.map( F.$.from(e.children), (e => we(e, 0))), 0 === t && e.element.incompressible ? { element: e.element.elements[t], children: i, incompressible: !0, collapsible: e.collapsible, collapsed: e.collapsed } : { element: e.element.elements[t], children: i, collapsible: e.collapsible, collapsed: e.collapsed } } function Ce(e) { return we(e, 0) } function ye(e, t, i) { return e.element === t ? Object.assign(Object.assign({}, e), { children: i }) : Object.assign(Object.assign({}, e), { children: F.$.map(F.$.from(e.children), (e => ye(e, t, i))) }) } class Se { constructor(e, t, i = {}) { this.user = e, this.rootRef = null, this.nodes = new Map, this.model = new _e(e, t, i), this.enabled = void 0 === i.compressionEnabled || i.compressionEnabled, this.identityProvider = i.identityProvider } get onDidSplice() { return this.model.onDidSplice } get onDidChangeCollapseState() { return this.model.onDidChangeCollapseState } get onDidChangeRenderNodeCount() { return this.model.onDidChangeRenderNodeCount } setChildren(e, t = F.$.empty(), i) { const n = i.diffIdentityProvider && (o = i.diffIdentityProvider, { getId: e => e.elements.map((e => o.getId(e).toString())).join("\0") }); var o; if (null === e) { const e = F.$.map(t, this.enabled ? ve : be); return void this._setChildren(null, e, { diffIdentityProvider: n, diffDepth: 1 / 0 }) } const r = this.nodes.get(e); if (!r) throw new Error("Unknown compressed tree node"); const s = this.model.getNode(r), a = this.model.getParentNodeLocation(r), l = this.model.getNode(a), d = ye(Ce(s), e, t), c = (this.enabled ? ve : be)(d), h = l.children.map((e => e === s ? c : e)); this._setChildren(l.element, h, { diffIdentityProvider: n, diffDepth: s.depth - l.depth }) } setCompressionEnabled(e) { if (e === this.enabled) return; this.enabled = e; const t = this.model.getNode().children, i = F.$.map(t, Ce), n = F.$.map(i, e ? ve : be); this._setChildren(null, n, { diffIdentityProvider: this.identityProvider, diffDepth: 1 / 0 }) } _setChildren(e, t, i) { const n = new Set; this.model.setChildren(e, t, Object.assign(Object.assign({}, i), { onDidCreateNode: e => { for (const t of e.element.elements) n.add(t), this.nodes.set(t, e.element) }, onDidDeleteNode: e => { for (const t of e.element.elements) n.has(t) || this.nodes.delete( t) } })) } has(e) { return this.nodes.has(e) } getListIndex(e) { const t = this.getCompressedNode(e); return this.model.getListIndex(t) } getListRenderCount(e) { const t = this.getCompressedNode(e); return this.model.getListRenderCount(t) } getNode(e) { if (void 0 === e) return this.model.getNode(); const t = this.getCompressedNode(e); return this.model.getNode(t) } getNodeLocation(e) { const t = this.model.getNodeLocation(e); return null === t ? null : t.elements[t.elements.length - 1] } getParentNodeLocation(e) { const t = this.getCompressedNode(e), i = this.model.getParentNodeLocation(t); return null === i ? null : i.elements[i.elements.length - 1] } isCollapsible(e) { const t = this.getCompressedNode(e); return this.model.isCollapsible(t) } setCollapsible(e, t) { const i = this.getCompressedNode(e); return this.model.setCollapsible(i, t) } isCollapsed(e) { const t = this.getCompressedNode(e); return this.model.isCollapsed(t) } setCollapsed(e, t, i) { const n = this.getCompressedNode(e); return this.model.setCollapsed(n, t, i) } expandTo(e) { const t = this.getCompressedNode(e); this.model.expandTo(t) } rerender(e) { const t = this.getCompressedNode(e); this.model.rerender(t) } refilter() { this.model.refilter() } getCompressedNode(e) { if (null === e) return null; const t = this.nodes.get(e); if (!t) throw new R(this.user, `Tree element not found: ${e}`); return t } } const xe = e => e[e.length - 1]; class ke { constructor(e, t) { this.unwrapper = e, this.node = t } get element() { return null === this.node.element ? null : this.unwrapper(this.node.element) } get children() { return this.node.children.map((e => new ke(this.unwrapper, e))) } 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 } } class Le { constructor(e, t, i = {}) { this.rootRef = null, this.elementMapper = i.elementMapper || xe; const n = e => this.elementMapper(e.elements); this.nodeMapper = new O((e => new ke(n, e))), this.model = new Se(e, function(e, t) { return { splice(i, n, o) { t.splice(i, n, o.map((t => e.map(t)))) }, updateElementHeight(e, i) { t.updateElementHeight(e, i) } } }(this.nodeMapper, t), function(e, t) { return Object.assign(Object.assign({}, t), { identityProvider: t.identityProvider && { getId: i => t.identityProvider.getId(e(i)) }, sorter: t.sorter && { compare: (e, i) => t.sorter.compare(e.elements[0], i.elements[ 0]) }, filter: t.filter && { filter: (i, n) => t.filter.filter(e(i), n) } }) }(n, i)) } get onDidSplice() { return s.ju.map(this.model.onDidSplice, (({ insertedNodes: e, deletedNodes: t }) => ({ insertedNodes: e.map((e => this.nodeMapper.map(e))), deletedNodes: t.map((e => this.nodeMapper.map(e))) }))) } get onDidChangeCollapseState() { return s.ju.map(this.model.onDidChangeCollapseState, (({ node: e, deep: t }) => ({ node: this.nodeMapper.map(e), deep: t }))) } get onDidChangeRenderNodeCount() { return s.ju.map(this.model.onDidChangeRenderNodeCount, (e => this.nodeMapper .map(e))) } setChildren(e, t = F.$.empty(), i = {}) { this.model.setChildren(e, t, i) } setCompressionEnabled(e) { this.model.setCompressionEnabled(e) } has(e) { return this.model.has(e) } getListIndex(e) { return this.model.getListIndex(e) } getListRenderCount(e) { return this.model.getListRenderCount(e) } getNode(e) { return this.nodeMapper.map(this.model.getNode(e)) } getNodeLocation(e) { return e.element } getParentNodeLocation(e) { return this.model.getParentNodeLocation(e) } isCollapsible(e) { return this.model.isCollapsible(e) } setCollapsible(e, t) { return this.model.setCollapsible(e, t) } isCollapsed(e) { return this.model.isCollapsed(e) } setCollapsed(e, t, i) { return this.model.setCollapsed(e, t, i) } expandTo(e) { return this.model.expandTo(e) } rerender(e) { return this.model.rerender(e) } refilter() { return this.model.refilter() } getCompressedTreeNode(e = null) { return this.model.getNode(e) } } var Ne = i(9898); class De extends fe { constructor(e, t, i, n, o = {}) { super(e, t, i, n, o) } get onDidChangeCollapseState() { return this.model.onDidChangeCollapseState } setChildren(e, t = F.$.empty(), i) { this.model.setChildren(e, t, i) } rerender(e) { void 0 !== e ? this.model.rerender(e) : this.view.rerender() } hasElement(e) { return this.model.has(e) } createModel(e, t, i) { return new _e(e, t, i) } } class Ee { constructor(e, t) { this._compressedTreeNodeProvider = e, this.renderer = t, this.templateId = t.templateId, t.onDidChangeTwistieState && (this.onDidChangeTwistieState = t.onDidChangeTwistieState) } get compressedTreeNodeProvider() { return this._compressedTreeNodeProvider() } renderTemplate(e) { return { compressedTreeNode: void 0, data: this.renderer.renderTemplate(e) } } renderElement(e, t, i, n) { const o = this.compressedTreeNodeProvider.getCompressedTreeNode(e.element); 1 === o.element.elements.length ? (i.compressedTreeNode = void 0, this .renderer.renderElement(e, t, i.data, n)) : (i.compressedTreeNode = o, this.renderer.renderCompressedElements(o, t, i.data, n)) } disposeElement(e, t, i, n) { i.compressedTreeNode ? this.renderer.disposeCompressedElements && this .renderer.disposeCompressedElements(i.compressedTreeNode, t, i.data, n) : this.renderer.disposeElement && this.renderer.disposeElement(e, t, i.data, n) } disposeTemplate(e) { this.renderer.disposeTemplate(e.data) } renderTwistie(e, t) { return !!this.renderer.renderTwistie && this.renderer.renderTwistie(e, t) } }! function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); r > 3 && s && Object.defineProperty(t, i, s) }([Ne.H], Ee.prototype, "compressedTreeNodeProvider", null); class Ie extends De { constructor(e, t, i, n, o = {}) { const r = () => this; super(e, t, i, n.map((e => new Ee(r, e))), function(e, t) { return t && Object.assign(Object.assign({}, t), { keyboardNavigationLabelProvider: t.keyboardNavigationLabelProvider && { getKeyboardNavigationLabel(i) { let n; try { n = e().getCompressedTreeNode(i) } catch (e) { return t.keyboardNavigationLabelProvider.getKeyboardNavigationLabel( i) } return 1 === n.element.elements.length ? t.keyboardNavigationLabelProvider .getKeyboardNavigationLabel(i) : t.keyboardNavigationLabelProvider .getCompressedNodeKeyboardNavigationLabel(n.element.elements) } } }) }(r, o)) } setChildren(e, t = F.$.empty(), i) { this.model.setChildren(e, t, i) } createModel(e, t, i) { return new Le(e, t, i) } updateOptions(e = {}) { super.updateOptions(e), void 0 !== e.compressionEnabled && this.model.setCompressionEnabled( e.compressionEnabled) } getCompressedTreeNode(e = null) { return this.model.getCompressedTreeNode(e) } } var Te = i(7301), Me = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; function Ae(e) { return Object.assign(Object.assign({}, e), { children: [], refreshPromise: void 0, stale: !0, slow: !1, collapsedByDefault: void 0 }) } function Re(e, t) { return !!t.parent && (t.parent === e || Re(e, t.parent)) } class Oe { constructor(e) { this.node = e } get element() { return this.node.element.element } get children() { return this.node.children.map((e => new Oe(e))) } 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 } } class Pe { constructor(e, t, i) { this.renderer = e, this.nodeMapper = t, this.onDidChangeTwistieState = i, this.renderedNodes = new Map, this.templateId = e.templateId } renderTemplate(e) { return { templateData: this.renderer.renderTemplate(e) } } renderElement(e, t, i, n) { this.renderer.renderElement(this.nodeMapper.map(e), t, i.templateData, n) } renderTwistie(e, t) { return e.slow ? (t.classList.add(...q.classNamesArray), !0) : (t.classList .remove(...q.classNamesArray), !1) } disposeElement(e, t, i, n) { this.renderer.disposeElement && this.renderer.disposeElement(this.nodeMapper .map(e), t, i.templateData, n) } disposeTemplate(e) { this.renderer.disposeTemplate(e.templateData) } dispose() { this.renderedNodes.clear() } } function Fe(e) { return { browserEvent: e.browserEvent, elements: e.elements.map((e => e.element)) } } function Be(e) { return { browserEvent: e.browserEvent, element: e.element && e.element.element, target: e.target } } class We extends I.kX { constructor(e) { super(e.elements.map((e => e.element))), this.data = e } } function ze(e) { return e instanceof I.kX ? new We(e) : e } class Ve { constructor(e) { this.dnd = e } getDragURI(e) { return this.dnd.getDragURI(e.element) } getDragLabel(e, t) { if (this.dnd.getDragLabel) return this.dnd.getDragLabel(e.map((e => e.element)), t) } onDragStart(e, t) { this.dnd.onDragStart && this.dnd.onDragStart(ze(e), t) } onDragOver(e, t, i, n, o = !0) { return this.dnd.onDragOver(ze(e), t && t.element, i, n) } drop(e, t, i, n) { this.dnd.drop(ze(e), t && t.element, i, n) } onDragEnd(e) { this.dnd.onDragEnd && this.dnd.onDragEnd(e) } } function He(e) { return e && Object.assign(Object.assign({}, e), { collapseByDefault: !0, identityProvider: e.identityProvider && { getId: t => e.identityProvider.getId(t.element) }, dnd: e.dnd && new Ve(e.dnd), multipleSelectionController: e.multipleSelectionController && { isSelectionSingleChangeEvent: t => e.multipleSelectionController.isSelectionSingleChangeEvent( Object.assign(Object.assign({}, t), { element: t.element })), isSelectionRangeChangeEvent: t => e.multipleSelectionController.isSelectionRangeChangeEvent( Object.assign(Object.assign({}, t), { element: t.element })) }, accessibilityProvider: e.accessibilityProvider && Object.assign( Object.assign({}, e.accessibilityProvider), { getPosInSet: void 0, getSetSize: void 0, getRole: e.accessibilityProvider.getRole ? t => e.accessibilityProvider .getRole(t.element) : () => "treeitem", isChecked: e.accessibilityProvider.isChecked ? t => { var i; return !!(null === (i = e.accessibilityProvider) || void 0 === i ? void 0 : i.isChecked(t.element)) } : void 0, getAriaLabel: t => e.accessibilityProvider.getAriaLabel(t.element), getWidgetAriaLabel: () => e.accessibilityProvider.getWidgetAriaLabel(), getWidgetRole: e.accessibilityProvider.getWidgetRole ? () => e.accessibilityProvider .getWidgetRole() : () => "tree", getAriaLevel: e.accessibilityProvider.getAriaLevel && (t => e.accessibilityProvider .getAriaLevel(t.element)), getActiveDescendantId: e.accessibilityProvider.getActiveDescendantId && (t => e.accessibilityProvider.getActiveDescendantId(t.element)) }), filter: e.filter && { filter: (t, i) => e.filter.filter(t.element, i) }, keyboardNavigationLabelProvider: e.keyboardNavigationLabelProvider && Object.assign(Object.assign({}, e.keyboardNavigationLabelProvider), { getKeyboardNavigationLabel: t => e.keyboardNavigationLabelProvider .getKeyboardNavigationLabel(t.element) }), sorter: void 0, expandOnlyOnTwistieClick: void 0 === e.expandOnlyOnTwistieClick ? void 0 : "function" != typeof e.expandOnlyOnTwistieClick ? e.expandOnlyOnTwistieClick : t => e.expandOnlyOnTwistieClick(t.element), additionalScrollHeight: e.additionalScrollHeight }) } function Ue(e, t) { t(e), e.children.forEach((e => Ue(e, t))) } class je { constructor(e, t, i, n, o, r = {}) { this.user = e, this.dataSource = o, this.nodes = new Map, this.subTreeRefreshPromises = new Map, this.refreshPromises = new Map, this._onDidRender = new s.Q5, this._onDidChangeNodeSlowState = new s.Q5, this.nodeMapper = new O((e => new Oe(e))), this.disposables = new a.SL, this.identityProvider = r.identityProvider, this.autoExpandSingleChildren = void 0 !== r.autoExpandSingleChildren && r.autoExpandSingleChildren, this.sorter = r.sorter, this.collapseByDefault = r.collapseByDefault, this.tree = this.createTree(e, t, i, n, r), this .root = Ae({ element: void 0, parent: null, hasChildren: !0 }), this.identityProvider && (this.root = Object.assign(Object.assign({}, this.root), { id: null })), this.nodes.set(null, this.root), this.tree.onDidChangeCollapseState( this._onDidChangeCollapseState, this, this.disposables) } get onDidChangeFocus() { return s.ju.map(this.tree.onDidChangeFocus, Fe) } get onDidChangeSelection() { return s.ju.map(this.tree.onDidChangeSelection, Fe) } get onMouseDblClick() { return s.ju.map(this.tree.onMouseDblClick, Be) } get onPointer() { return s.ju.map(this.tree.onPointer, Be) } get onDidFocus() { return this.tree.onDidFocus } get onDidDispose() { return this.tree.onDidDispose } createTree(e, t, i, n, o) { const r = new se(i), s = n.map((e => new Pe(e, this.nodeMapper, this._onDidChangeNodeSlowState .event))), a = He(o) || {}; return new De(e, t, r, s, a) } updateOptions(e = {}) { this.tree.updateOptions(e) } getHTMLElement() { return this.tree.getHTMLElement() } get scrollTop() { return this.tree.scrollTop } set scrollTop(e) { this.tree.scrollTop = e } domFocus() { this.tree.domFocus() } layout(e, t) { this.tree.layout(e, t) } style(e) { this.tree.style(e) } getInput() { return this.root.element } setInput(e, t) { return Me(this, void 0, void 0, (function*() { this.refreshPromises.forEach((e => e.cancel())), this.refreshPromises .clear(), this.root.element = e; const i = t && { viewState: t, focus: [], selection: [] }; yield this._updateChildren(e, !0, !1, i), i && (this.tree.setFocus( i.focus), this.tree.setSelection(i.selection)), t && "number" == typeof t.scrollTop && (this.scrollTop = t.scrollTop) })) } _updateChildren(e = this.root.element, t = !0, i = !1, n, o) { return Me(this, void 0, void 0, (function*() { if (void 0 === this.root.element) throw new R(this.user, "Tree input not set"); this.root.refreshPromise && (yield this.root.refreshPromise, yield s .ju.toPromise(this._onDidRender.event)); const r = this.getDataNode(e); if (yield this.refreshAndRenderNode(r, t, n, o), i) try { this.tree.rerender(r) } catch (e) {} })) } rerender(e) { if (void 0 === e || e === this.root.element) return void this.tree.rerender(); const t = this.getDataNode(e); this.tree.rerender(t) } collapse(e, t = !1) { const i = this.getDataNode(e); return this.tree.collapse(i === this.root ? null : i, t) } expand(e, t = !1) { return Me(this, void 0, void 0, (function*() { if (void 0 === this.root.element) throw new R(this.user, "Tree input not set"); this.root.refreshPromise && (yield this.root.refreshPromise, yield s .ju.toPromise(this._onDidRender.event)); const i = this.getDataNode(e); if (this.tree.hasElement(i) && !this.tree.isCollapsible(i)) return !1; if (i.refreshPromise && (yield this.root.refreshPromise, yield s.ju .toPromise(this._onDidRender.event)), i !== this.root && !i.refreshPromise && !this.tree.isCollapsed(i)) return !1; const n = this.tree.expand(i === this.root ? null : i, t); return i.refreshPromise && (yield this.root.refreshPromise, yield s .ju.toPromise(this._onDidRender.event)), n })) } setSelection(e, t) { const i = e.map((e => this.getDataNode(e))); this.tree.setSelection(i, t) } getSelection() { return this.tree.getSelection().map((e => e.element)) } setFocus(e, t) { const i = e.map((e => this.getDataNode(e))); this.tree.setFocus(i, t) } getFocus() { return this.tree.getFocus().map((e => e.element)) } reveal(e, t) { this.tree.reveal(this.getDataNode(e), t) } getDataNode(e) { const t = this.nodes.get(e === this.root.element ? null : e); if (!t) throw new R(this.user, `Data tree node not found: ${e}`); return t } refreshAndRenderNode(e, t, i, n) { return Me(this, void 0, void 0, (function*() { yield this.refreshNode(e, t, i), this.render(e, i, n) })) } refreshNode(e, t, i) { return Me(this, void 0, void 0, (function*() { let n; return this.subTreeRefreshPromises.forEach(((o, r) => { !n && function(e, t) { return e === t || Re(e, t) || Re(t, e) }(r, e) && (n = o.then((() => this.refreshNode(e, t, i)))) })), n || this.doRefreshSubTree(e, t, i) })) } doRefreshSubTree(e, t, i) { return Me(this, void 0, void 0, (function*() { let n; e.refreshPromise = new Promise((e => n = e)), this.subTreeRefreshPromises .set(e, e.refreshPromise), e.refreshPromise.finally((() => { e.refreshPromise = void 0, this.subTreeRefreshPromises.delete( e) })); try { const o = yield this.doRefreshNode(e, t, i); e.stale = !1, yield Z.jT.settled(o.map((e => this.doRefreshSubTree( e, t, i)))) } finally { n() } })) } doRefreshNode(e, t, i) { return Me(this, void 0, void 0, (function*() { let n; if (e.hasChildren = !!this.dataSource.hasChildren(e.element), e.hasChildren) { const t = (0, Z.Vs)(800); t.then((() => { e.slow = !0, this._onDidChangeNodeSlowState.fire(e) }), (e => null)), n = this.doGetChildren(e).finally((() => t.cancel())) } else n = Promise.resolve(F.$.empty()); try { const o = yield n; return this.setChildren(e, o, t, i) } catch (t) { if (e !== this.root && this.tree.hasElement(e) && this.tree.collapse( e), (0, Te.VV)(t)) return []; throw t } finally { e.slow && (e.slow = !1, this._onDidChangeNodeSlowState.fire(e)) } })) } doGetChildren(e) { let t = this.refreshPromises.get(e); return t || (t = (0, Z.PG)((() => Me(this, void 0, void 0, (function*() { const t = yield this.dataSource.getChildren(e.element); return this.processChildren(t) })))), this.refreshPromises.set(e, t), t.finally((() => { this.refreshPromises.delete(e) }))) } _onDidChangeCollapseState({ node: e, deep: t }) { null !== e.element && !e.collapsed && e.element.stale && (t ? this.collapse( e.element.element) : this.refreshAndRenderNode(e.element, !1).catch( Te.dL)) } setChildren(e, t, i, n) { const o = [...t]; if (0 === e.children.length && 0 === o.length) return []; const r = new Map, s = new Map; for (const t of e.children) if (r.set(t.element, t), this.identityProvider) { const e = this.tree.isCollapsed(t); s.set(t.id, { node: t, collapsed: e }) } const a = [], l = o.map((t => { const o = !!this.dataSource.hasChildren(t); if (!this.identityProvider) { const i = Ae({ element: t, parent: e, hasChildren: o }); return o && this.collapseByDefault && !this.collapseByDefault(t) && (i.collapsedByDefault = !1, a.push(i)), i } const l = this.identityProvider.getId(t).toString(), d = s.get(l); if (d) { const e = d.node; return r.delete(e.element), this.nodes.delete(e.element), this.nodes .set(t, e), e.element = t, e.hasChildren = o, i ? d.collapsed ? (e.children.forEach((e => Ue(e, (e => this.nodes.delete(e.element))))), e.children.splice(0, e.children.length), e.stale = !0) : a.push( e) : o && this.collapseByDefault && !this.collapseByDefault(t) && (e.collapsedByDefault = !1, a.push(e)), e } const c = Ae({ element: t, parent: e, id: l, hasChildren: o }); return n && n.viewState.focus && n.viewState.focus.indexOf(l) > -1 && n.focus.push(c), n && n.viewState.selection && n.viewState.selection .indexOf(l) > -1 && n.selection.push(c), n && n.viewState.expanded && n.viewState.expanded.indexOf(l) > -1 ? a.push(c) : o && this.collapseByDefault && !this.collapseByDefault(t) && (c.collapsedByDefault = !1, a.push( c)), c })); for (const e of r.values()) Ue(e, (e => this.nodes.delete(e.element))); for (const e of l) this.nodes.set(e.element, e); return e.children.splice(0, e.children.length, ...l), e !== this.root && this.autoExpandSingleChildren && 1 === l.length && 0 === a.length && (l[0].collapsedByDefault = !1, a.push(l[0])), a } render(e, t, i) { const n = e.children.map((e => this.asTreeElement(e, t))), o = i && Object.assign(Object.assign({}, i), { diffIdentityProvider: i.diffIdentityProvider && { getId: e => i.diffIdentityProvider.getId(e.element) } }); this.tree.setChildren(e === this.root ? null : e, n, o), e !== this.root && this.tree.setCollapsible(e, e.hasChildren), this._onDidRender.fire() } asTreeElement(e, t) { if (e.stale) return { element: e, collapsible: e.hasChildren, collapsed: !0 }; let i; return i = !(t && t.viewState.expanded && e.id && t.viewState.expanded .indexOf(e.id) > -1) && e.collapsedByDefault, e.collapsedByDefault = void 0, { element: e, children: e.hasChildren ? F.$.map(e.children, (e => this.asTreeElement( e, t))) : [], collapsible: e.hasChildren, collapsed: i } } processChildren(e) { return this.sorter && (e = [...e].sort(this.sorter.compare.bind(this.sorter))), e } dispose() { this.disposables.dispose() } } class Ke { constructor(e) { this.node = e } get element() { return { elements: this.node.element.elements.map((e => e.element)), incompressible: this.node.element.incompressible } } get children() { return this.node.children.map((e => new Ke(e))) } 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 } } class $e { constructor(e, t, i, n) { this.renderer = e, this.nodeMapper = t, this.compressibleNodeMapperProvider = i, this.onDidChangeTwistieState = n, this.renderedNodes = new Map, this.disposables = [], this.templateId = e.templateId } renderTemplate(e) { return { templateData: this.renderer.renderTemplate(e) } } renderElement(e, t, i, n) { this.renderer.renderElement(this.nodeMapper.map(e), t, i.templateData, n) } renderCompressedElements(e, t, i, n) { this.renderer.renderCompressedElements(this.compressibleNodeMapperProvider() .map(e), t, i.templateData, n) } renderTwistie(e, t) { return e.slow ? (t.classList.add(...q.classNamesArray), !0) : (t.classList .remove(...q.classNamesArray), !1) } disposeElement(e, t, i, n) { this.renderer.disposeElement && this.renderer.disposeElement(this.nodeMapper .map(e), t, i.templateData, n) } disposeCompressedElements(e, t, i, n) { this.renderer.disposeCompressedElements && this.renderer.disposeCompressedElements( this.compressibleNodeMapperProvider().map(e), t, i.templateData, n) } disposeTemplate(e) { this.renderer.disposeTemplate(e.templateData) } dispose() { this.renderedNodes.clear(), this.disposables = (0, a.B9)(this.disposables) } } class qe extends je { constructor(e, t, i, n, o, r, s = {}) { super(e, t, i, o, r, s), this.compressionDelegate = n, this.compressibleNodeMapper = new O((e => new Ke(e))), this.filter = s.filter } createTree(e, t, i, n, o) { const r = new se(i), s = n.map((e => new $e(e, this.nodeMapper, (() => this.compressibleNodeMapper), this._onDidChangeNodeSlowState.event))), a = function(e) { const t = e && He(e); return t && Object.assign(Object.assign({}, t), { keyboardNavigationLabelProvider: t.keyboardNavigationLabelProvider && Object.assign(Object.assign({}, t.keyboardNavigationLabelProvider), { getCompressedNodeKeyboardNavigationLabel: t => e.keyboardNavigationLabelProvider .getCompressedNodeKeyboardNavigationLabel(t.map((e => e.element))) }) }) }(o) || {}; return new Ie(e, t, r, s, a) } asTreeElement(e, t) { return Object.assign({ incompressible: this.compressionDelegate.isIncompressible(e.element) }, super.asTreeElement(e, t)) } updateOptions(e = {}) { this.tree.updateOptions(e) } render(e, t) { if (!this.identityProvider) return super.render(e, t); const i = e => this.identityProvider.getId(e).toString(), n = e => { const t = new Set; for (const n of e) { const e = this.tree.getCompressedTreeNode(n === this.root ? null : n); if (e.element) for (const n of e.element.elements) t.add(i(n.element)) } return t }, o = n(this.tree.getSelection()), r = n(this.tree.getFocus()); super.render(e, t); const s = this.getSelection(); let a = !1; const l = this.getFocus(); let d = !1; const c = e => { const t = e.element; if (t) for (let e = 0; e < t.elements.length; e++) { const n = i(t.elements[e].element), c = t.elements[t.elements.length - 1].element; o.has(n) && -1 === s.indexOf(c) && (s.push(c), a = !0), r.has(n) && -1 === l.indexOf(c) && (l.push(c), d = !0) } e.children.forEach(c) }; c(this.tree.getCompressedTreeNode(e === this.root ? null : e)), a && this.setSelection(s), d && this.setFocus(l) } processChildren(e) { return this.filter && (e = F.$.filter(e, (e => { const t = "boolean" == typeof(i = this.filter.filter(e, 1)) ? i ? 1 : 0 : B(i) ? W(i.visibility) : W(i); var i; if (2 === t) throw new Error( "Recursive tree visibility not supported in async data compressed trees" ); return 1 === t }))), super.processChildren(e) } } class Ze extends fe { constructor(e, t, i, n, o, r = {}) { super(e, t, i, n, r), this.user = e, this.dataSource = o, this.identityProvider = r.identityProvider } createModel(e, t, i) { return new _e(e, t, i) } } var Ge = i(1106), Ye = i(3108), Qe = i(3193), Xe = i(8819), Je = i(9282), et = i(2065), tt = i(1847), it = i(9872), nt = i(8810), ot = i(7781), rt = function(e, t, i, n) { var o, r = arguments.length, s = r < 3 ? t : null === n ? n = Object.getOwnPropertyDescriptor(t, i) : n; if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) s = Reflect.decorate(e, t, i, n); else for (var a = e.length - 1; a >= 0; a--)(o = e[a]) && (s = (r < 3 ? o(s) : r > 3 ? o(t, i, s) : o(t, i)) || s); return r > 3 && s && Object.defineProperty(t, i, s), s }, st = function(e, t) { return function(i, n) { t(i, n, e) } }; const at = (0, et.yh)("listService"); let lt = class { constructor(e) { this._themeService = e, this.disposables = new a.SL, this.lists = [], this._lastFocusedWidget = void 0, this._hasCreatedStyleController = ! 1 } get lastFocusedList() { return this._lastFocusedWidget } register(e, t) { if (!this._hasCreatedStyleController) { this._hasCreatedStyleController = !0; const e = new l.wD((0, n.dS)(), ""); this.disposables.add((0, nt.Jl)(e, this._themeService)) } if (this.lists.some((t => t.widget === e))) throw new Error( "Cannot register the same widget multiple times"); const i = { widget: e, extraContextKeys: t }; return this.lists.push(i), e.getHTMLElement() === document.activeElement && (this._lastFocusedWidget = e), (0, a.F8)(e.onDidFocus((() => this._lastFocusedWidget = e)), (0, a.OF)((() => this.lists.splice(this.lists.indexOf(i), 1))), e.onDidDispose((() => { this.lists = this.lists.filter((e => e !== i)), this._lastFocusedWidget === e && (this._lastFocusedWidget = void 0) }))) } dispose() { this.disposables.dispose() } }; lt = rt([st(0, ot.XE)], lt); const dt = new Xe.uy("listFocus", !0), ct = new Xe.uy("listSupportsMultiselect", !0), ht = Xe.Ao.and(dt, Xe.Ao.not(Je.d)), ut = new Xe.uy("listHasSelectionOrFocus", !1), gt = new Xe.uy("listDoubleSelection", !1), pt = new Xe.uy("listMultiSelection", !1), mt = new Xe.uy("listSelectionNavigation", !1), ft = "listAutomaticKeyboardNavigation"; function _t(e, t) { const i = e.createScoped(t.getHTMLElement()); return dt.bindTo(i), i } const bt = "workbench.list.multiSelectModifier", vt = "workbench.list.openMode", wt = "workbench.list.horizontalScrolling", Ct = "workbench.list.keyboardNavigation", yt = "workbench.list.automaticKeyboardNavigation", St = "workbench.tree.indent", xt = "workbench.tree.renderIndentGuides", kt = "workbench.list.smoothScrolling", Lt = "workbench.list.mouseWheelScrollSensitivity", Nt = "workbench.list.fastScrollSensitivity", Dt = "workbench.tree.expandMode"; function Et(e) { return "alt" === e.getValue(bt) } class It extends a.JT { constructor(e) { super(), this.configurationService = e, this.useAltAsMultipleSelectionModifier = Et(e), this.registerListeners() } registerListeners() { this._register(this.configurationService.onDidChangeConfiguration((e => { e.affectsConfiguration(bt) && (this.useAltAsMultipleSelectionModifier = Et(this.configurationService)) }))) } isSelectionSingleChangeEvent(e) { return this.useAltAsMultipleSelectionModifier ? e.browserEvent.altKey : (0, l.Zo)(e) } isSelectionRangeChangeEvent(e) { return (0, l.wn)(e) } } function Tt(e, t, i) { var n; const o = new a.SL; return [Object.assign(Object.assign({}, e), { keyboardNavigationDelegate: { mightProducePrintableCharacter: e => i.mightProducePrintableCharacter( e) }, smoothScrolling: Boolean(t.getValue(kt)), mouseWheelScrollSensitivity: t.getValue(Lt), fastScrollSensitivity: t.getValue(Nt), multipleSelectionController: null !== (n = e.multipleSelectionController) && void 0 !== n ? n : o.add(new It(t)) }), o] } let Mt = class extends l.aV { constructor(e, t, i, n, o, r, s, a, l, d) { const c = void 0 !== o.horizontalScrolling ? o.horizontalScrolling : Boolean(l.getValue(wt)), [h, u] = Tt(o, l, d); super(e, t, i, n, Object.assign(Object.assign(Object.assign({ keyboardSupport: !1 }, (0, nt.o)(a.getColorTheme(), nt.O2)), h), { horizontalScrolling: c })), this.disposables.add(u), this.contextKeyService = _t(r, this), this.themeService = a, this.listSupportsMultiSelect = ct.bindTo(this .contextKeyService), this.listSupportsMultiSelect.set(!1 !== o.multipleSelectionSupport), mt.bindTo(this.contextKeyService).set(Boolean(o.selectionNavigation)), this.listHasSelectionOrFocus = ut.bindTo(this.contextKeyService), this.listDoubleSelection = gt.bindTo(this.contextKeyService), this.listMultiSelection = pt.bindTo(this.contextKeyService), this.horizontalScrolling = o.horizontalScrolling, this._useAltAsMultipleSelectionModifier = Et(l), this.disposables.add( this.contextKeyService), this.disposables.add(s.register(this)), o.overrideStyles && this.updateStyles(o.overrideStyles), this.disposables.add(this.onDidChangeSelection( (() => { const e = this.getSelection(), t = this.getFocus(); this.contextKeyService.bufferChangeEvents((() => { this.listHasSelectionOrFocus.set(e.length > 0 || t.length > 0), this.listMultiSelection.set(e.length > 1), this.listDoubleSelection .set(2 === e.length) })) }))), this.disposables.add(this.onDidChangeFocus((() => { const e = this.getSelection(), t = this.getFocus(); this.listHasSelectionOrFocus.set(e.length > 0 || t.length > 0) }))), this.disposables.add(l.onDidChangeConfiguration((e => { e.affectsConfiguration(bt) && (this._useAltAsMultipleSelectionModifier = Et(l)); let t = {}; if (e.affectsConfiguration(wt) && void 0 === this.horizontalScrolling) { const e = Boolean(l.getValue(wt)); t = Object.assign(Object.assign({}, t), { horizontalScrolling: e }) } if (e.affectsConfiguration(kt)) { const e = Boolean(l.getValue(kt)); t = Object.assign(Object.assign({}, t), { smoothScrolling: e }) } if (e.affectsConfiguration(Lt)) { const e = l.getValue(Lt); t = Object.assign(Object.assign({}, t), { mouseWheelScrollSensitivity: e }) } if (e.affectsConfiguration(Nt)) { const e = l.getValue(Nt); t = Object.assign(Object.assign({}, t), { fastScrollSensitivity: e }) } Object.keys(t).length > 0 && this.updateOptions(t) }))), this.navigator = new Pt(this, Object.assign({ configurationService: l }, o)), this.disposables.add(this.navigator) } updateOptions(e) { super.updateOptions(e), e.overrideStyles && this.updateStyles(e.overrideStyles), void 0 !== e.multipleSelectionSupport && this.listSupportsMultiSelect .set(!!e.multipleSelectionSupport) } updateStyles(e) { var t; null === (t = this._styler) || void 0 === t || t.dispose(), this._styler = (0, nt.Jl)(this, this.themeService, e) } dispose() { var e; null === (e = this._styler) || void 0 === e || e.dispose(), super.dispose() } }; Mt = rt([st(5, Xe.i6), st(6, at), st(7, ot.XE), st(8, Ye.Ui), st(9, tt.d)], Mt); let At = class extends class { constructor(e, t, i, n, o = {}) { const r = () => this.model, s = n.map((e => new d(e, r))); this.list = new l.aV(e, t, i, s, function(e, t) { return Object.assign(Object.assign({}, t), { accessibilityProvider: t.accessibilityProvider && new c(e, t.accessibilityProvider) }) }(r, o)) } updateOptions(e) { this.list.updateOptions(e) } getHTMLElement() { return this.list.getHTMLElement() } get onDidFocus() { return this.list.onDidFocus } get onDidDispose() { return this.list.onDidDispose } get onMouseDblClick() { return s.ju.map(this.list.onMouseDblClick, (({ element: e, index: t, browserEvent: i }) => ({ element: void 0 === e ? void 0 : this._model.get(e), index: t, browserEvent: i }))) } get onPointer() { return s.ju.map(this.list.onPointer, (({ element: e, index: t, browserEvent: i }) => ({ element: void 0 === e ? void 0 : this._model.get(e), index: t, browserEvent: i }))) } get onDidChangeSelection() { return s.ju.map(this.list.onDidChangeSelection, (({ elements: e, indexes: t, browserEvent: i }) => ({ elements: e.map((e => this._model.get(e))), indexes: t, browserEvent: i }))) } get model() { return this._model } set model(e) { this._model = e, this.list.splice(0, this.list.length, (0, o.w6)(e.length)) } getFocus() { return this.list.getFocus() } getSelection() { return this.list.getSelection() } getSelectedElements() { return this.getSelection().map((e => this.model.get(e))) } style(e) { this.list.style(e) } dispose() { this.list.dispose() } } { constructor(e, t, i, n, o, r, s, l, d, c) { const h = void 0 !== o.horizontalScrolling ? o.horizontalScrolling : Boolean(d.getValue(wt)), [u, g] = Tt(o, d, c); super(e, t, i, n, Object.assign(Object.assign(Object.assign({ keyboardSupport: !1 }, (0, nt.o)(l.getColorTheme(), nt.O2)), u), { horizontalScrolling: h })), this.disposables = new a.SL, this.disposables.add(g), this.contextKeyService = _t(r, this), this.themeService = l, this.horizontalScrolling = o.horizontalScrolling, this.listSupportsMultiSelect = ct.bindTo(this.contextKeyService), this.listSupportsMultiSelect.set(!1 !== o.multipleSelectionSupport), mt.bindTo(this.contextKeyService).set(Boolean(o.selectionNavigation)), this._useAltAsMultipleSelectionModifier = Et(d), this.disposables.add( this.contextKeyService), this.disposables.add(s.register(this)), o.overrideStyles && this.updateStyles(o.overrideStyles), o.overrideStyles && this.disposables .add((0, nt.Jl)(this, l, o.overrideStyles)), this.disposables.add(d.onDidChangeConfiguration( (e => { e.affectsConfiguration(bt) && (this._useAltAsMultipleSelectionModifier = Et(d)); let t = {}; if (e.affectsConfiguration(wt) && void 0 === this.horizontalScrolling) { const e = Boolean(d.getValue(wt)); t = Object.assign(Object.assign({}, t), { horizontalScrolling: e }) } if (e.affectsConfiguration(kt)) { const e = Boolean(d.getValue(kt)); t = Object.assign(Object.assign({}, t), { smoothScrolling: e }) } if (e.affectsConfiguration(Lt)) { const e = d.getValue(Lt); t = Object.assign(Object.assign({}, t), { mouseWheelScrollSensitivity: e }) } if (e.affectsConfiguration(Nt)) { const e = d.getValue(Nt); t = Object.assign(Object.assign({}, t), { fastScrollSensitivity: e }) } Object.keys(t).length > 0 && this.updateOptions(t) }))), this.navigator = new Pt(this, Object.assign({ configurationService: d }, o)), this.disposables.add(this.navigator) } updateOptions(e) { super.updateOptions(e), e.overrideStyles && this.updateStyles(e.overrideStyles), void 0 !== e.multipleSelectionSupport && this.listSupportsMultiSelect .set(!!e.multipleSelectionSupport) } updateStyles(e) { var t; null === (t = this._styler) || void 0 === t || t.dispose(), this._styler = (0, nt.Jl)(this, this.themeService, e) } dispose() { var e; null === (e = this._styler) || void 0 === e || e.dispose(), this.disposables .dispose(), super.dispose() } }; At = rt([st(5, Xe.i6), st(6, at), st(7, ot.XE), st(8, Ye.Ui), st(9, tt.d)], At); let Rt = class extends D { constructor(e, t, i, n, o, r, s, l, d, c, h) { const u = void 0 !== r.horizontalScrolling ? r.horizontalScrolling : Boolean(c.getValue(wt)), [g, p] = Tt(r, c, h); super(e, t, i, n, o, Object.assign(Object.assign(Object.assign({ keyboardSupport: !1 }, (0, nt.o)(d.getColorTheme(), nt.O2)), g), { horizontalScrolling: u })), this.disposables = new a.SL, this.disposables.add(p), this.contextKeyService = _t(s, this), this.themeService = d, this.listSupportsMultiSelect = ct.bindTo(this.contextKeyService), this.listSupportsMultiSelect.set(! 1 !== r.multipleSelectionSupport), mt.bindTo(this.contextKeyService) .set(Boolean(r.selectionNavigation)), this.listHasSelectionOrFocus = ut.bindTo(this.contextKeyService), this.listDoubleSelection = gt.bindTo( this.contextKeyService), this.listMultiSelection = pt.bindTo(this.contextKeyService), this.horizontalScrolling = r.horizontalScrolling, this._useAltAsMultipleSelectionModifier = Et(c), this.disposables.add(this.contextKeyService), this.disposables .add(l.register(this)), r.overrideStyles && this.updateStyles(r.overrideStyles), this.disposables.add(this.onDidChangeSelection((() => { const e = this.getSelection(), t = this.getFocus(); this.contextKeyService.bufferChangeEvents((() => { this.listHasSelectionOrFocus.set(e.length > 0 || t.length > 0), this.listMultiSelection.set(e.length > 1), this.listDoubleSelection .set(2 === e.length) })) }))), this.disposables.add(this.onDidChangeFocus((() => { const e = this.getSelection(), t = this.getFocus(); this.listHasSelectionOrFocus.set(e.length > 0 || t.length > 0) }))), this.disposables.add(c.onDidChangeConfiguration((e => { e.affectsConfiguration(bt) && (this._useAltAsMultipleSelectionModifier = Et(c)); let t = {}; if (e.affectsConfiguration(wt) && void 0 === this.horizontalScrolling) { const e = Boolean(c.getValue(wt)); t = Object.assign(Object.assign({}, t), { horizontalScrolling: e }) } if (e.affectsConfiguration(kt)) { const e = Boolean(c.getValue(kt)); t = Object.assign(Object.assign({}, t), { smoothScrolling: e }) } if (e.affectsConfiguration(Lt)) { const e = c.getValue(Lt); t = Object.assign(Object.assign({}, t), { mouseWheelScrollSensitivity: e }) } if (e.affectsConfiguration(Nt)) { const e = c.getValue(Nt); t = Object.assign(Object.assign({}, t), { fastScrollSensitivity: e }) } Object.keys(t).length > 0 && this.updateOptions(t) }))), this.navigator = new Ft(this, Object.assign({ configurationService: c }, r)), this.disposables.add(this.navigator) } updateOptions(e) { super.updateOptions(e), e.overrideStyles && this.updateStyles(e.overrideStyles), void 0 !== e.multipleSelectionSupport && this.listSupportsMultiSelect .set(!!e.multipleSelectionSupport) } updateStyles(e) { var t; null === (t = this._styler) || void 0 === t || t.dispose(), this._styler = (0, nt.Jl)(this, this.themeService, e) } dispose() { var e; null === (e = this._styler) || void 0 === e || e.dispose(), this.disposables .dispose(), super.dispose() } }; Rt = rt([st(6, Xe.i6), st(7, at), st(8, ot.XE), st(9, Ye.Ui), st(10, tt.d)], Rt); class Ot extends a.JT { constructor(e, t) { var i; super(), this.widget = e, this._onDidOpen = this._register(new s.Q5), this.onDidOpen = this._onDidOpen.event, this._register(s.ju.filter( this.widget.onDidChangeSelection, (e => e.browserEvent instanceof KeyboardEvent) )((e => this.onSelectionFromKeyboard(e)))), this._register(this.widget .onPointer((e => this.onPointer(e.element, e.browserEvent)))), this ._register(this.widget.onMouseDblClick((e => this.onMouseDblClick(e.element, e.browserEvent)))), "boolean" != typeof(null == t ? void 0 : t.openOnSingleClick) && (null == t ? void 0 : t.configurationService) ? (this.openOnSingleClick = "doubleClick" !== (null == t ? void 0 : t.configurationService.getValue( vt)), this._register(null == t ? void 0 : t.configurationService.onDidChangeConfiguration( (() => { this.openOnSingleClick = "doubleClick" !== (null == t ? void 0 : t.configurationService.getValue(vt)) })))) : this.openOnSingleClick = null === (i = null == t ? void 0 : t.openOnSingleClick) || void 0 === i || i } onSelectionFromKeyboard(e) { if (1 !== e.elements.length) return; const t = e.browserEvent, i = "boolean" != typeof t.preserveFocus || t.preserveFocus, n = "boolean" == typeof t.pinned ? t.pinned : !i; this._open(this.getSelectedElement(), i, n, !1, e.browserEvent) } onPointer(e, t) { if (!this.openOnSingleClick) return; if (2 === t.detail) return; const i = 1 === t.button, n = t.ctrlKey || t.metaKey || t.altKey; this._open(e, !0, i, n, t) } onMouseDblClick(e, t) { if (!t) return; const i = t.target; if (i.classList.contains("monaco-tl-twistie") || i.classList.contains( "monaco-icon-label") && i.classList.contains("folder-icon") && t.offsetX < 16) return; const n = t.ctrlKey || t.metaKey || t.altKey; this._open(e, !1, !0, n, t) } _open(e, t, i, n, o) { e && this._onDidOpen.fire({ editorOptions: { preserveFocus: t, pinned: i, revealIfVisible: !0 }, sideBySide: n, element: e, browserEvent: o }) } } class Pt extends Ot { constructor(e, t) { super(e, t), this.widget = e } getSelectedElement() { return this.widget.getSelectedElements()[0] } } class Ft extends Ot { constructor(e, t) { super(e, t) } getSelectedElement() { return this.widget.getSelectedElements()[0] } } class Bt extends Ot { constructor(e, t) { super(e, t) } getSelectedElement() { var e; return null !== (e = this.widget.getSelection()[0]) && void 0 !== e ? e : void 0 } } function Wt(e, t) { let i = !1; return n => { if (i) return i = !1, !1; const o = t.softDispatch(n, e); return o && o.enterChord ? (i = !0, !1) : (i = !1, !0) } } let zt = class extends De { constructor(e, t, i, n, o, r, s, a, l, d, c) { const { options: h, getAutomaticKeyboardNavigation: u, disposable: g } = Kt(t, o, r, l, d, c); super(e, t, i, n, h), this.disposables.add(g), this.internals = new $t( this, o, u, o.overrideStyles, r, s, a, l, c), this.disposables.add( this.internals) } updateOptions(e) { super.updateOptions(e), this.internals.updateOptions(e) } }; zt = rt([st(5, Xe.i6), st(6, at), st(7, ot.XE), st(8, Ye.Ui), st(9, tt.d), st(10, Ge.F) ], zt); let Vt = class extends Ie { constructor(e, t, i, n, o, r, s, a, l, d, c) { const { options: h, getAutomaticKeyboardNavigation: u, disposable: g } = Kt(t, o, r, l, d, c); super(e, t, i, n, h), this.disposables.add(g), this.internals = new $t( this, o, u, o.overrideStyles, r, s, a, l, c), this.disposables.add( this.internals) } updateOptions(e = {}) { super.updateOptions(e), e.overrideStyles && this.internals.updateStyleOverrides( e.overrideStyles), this.internals.updateOptions(e) } }; Vt = rt([st(5, Xe.i6), st(6, at), st(7, ot.XE), st(8, Ye.Ui), st(9, tt.d), st(10, Ge.F) ], Vt); let Ht = class extends Ze { constructor(e, t, i, n, o, r, s, a, l, d, c, h) { const { options: u, getAutomaticKeyboardNavigation: g, disposable: p } = Kt(t, r, s, d, c, h); super(e, t, i, n, o, u), this.disposables.add(p), this.internals = new $t(this, r, g, r.overrideStyles, s, a, l, d, h), this.disposables .add(this.internals) } updateOptions(e = {}) { super.updateOptions(e), e.overrideStyles && this.internals.updateStyleOverrides( e.overrideStyles), this.internals.updateOptions(e) } }; Ht = rt([st(6, Xe.i6), st(7, at), st(8, ot.XE), st(9, Ye.Ui), st(10, tt.d), st(11, Ge.F) ], Ht); let Ut = class extends je { constructor(e, t, i, n, o, r, s, a, l, d, c, h) { const { options: u, getAutomaticKeyboardNavigation: g, disposable: p } = Kt(t, r, s, d, c, h); super(e, t, i, n, o, u), this.disposables.add(p), this.internals = new $t(this, r, g, r.overrideStyles, s, a, l, d, h), this.disposables .add(this.internals) } get onDidOpen() { return this.internals.onDidOpen } updateOptions(e = {}) { super.updateOptions(e), e.overrideStyles && this.internals.updateStyleOverrides( e.overrideStyles), this.internals.updateOptions(e) } }; Ut = rt([st(6, Xe.i6), st(7, at), st(8, ot.XE), st(9, Ye.Ui), st(10, tt.d), st(11, Ge.F) ], Ut); let jt = class extends qe { constructor(e, t, i, n, o, r, s, a, l, d, c, h, u) { const { options: g, getAutomaticKeyboardNavigation: p, disposable: m } = Kt(t, s, a, c, h, u); super(e, t, i, n, o, r, g), this.disposables.add(m), this.internals = new $t(this, s, p, s.overrideStyles, a, l, d, c, u), this.disposables .add(this.internals) } updateOptions(e) { super.updateOptions(e), this.internals.updateOptions(e) } }; function Kt(e, t, i, n, o, r) { var s; const a = () => { let e = Boolean(i.getContextKeyValue(ft)); return e && (e = Boolean(n.getValue(yt))), e }, l = r.isScreenReaderOptimized(), d = t.simpleKeyboardNavigation || l ? "simple" : n.getValue(Ct), c = void 0 !== t.horizontalScrolling ? t.horizontalScrolling : Boolean( n.getValue(wt)), [h, u] = Tt(t, n, o), g = t.additionalScrollHeight; return { getAutomaticKeyboardNavigation: a, disposable: u, options: Object.assign(Object.assign({ keyboardSupport: !1 }, h), { indent: "number" == typeof n.getValue(St) ? n.getValue(St) : void 0, renderIndentGuides: n.getValue(xt), smoothScrolling: Boolean(n.getValue(kt)), automaticKeyboardNavigation: a(), simpleKeyboardNavigation: "simple" === d, filterOnType: "filter" === d, horizontalScrolling: c, keyboardNavigationEventFilter: Wt(e, o), additionalScrollHeight: g, hideTwistiesOfChildlessElements: t.hideTwistiesOfChildlessElements, expandOnlyOnTwistieClick: null !== (s = t.expandOnlyOnTwistieClick) && void 0 !== s ? s : "doubleClick" === n.getValue(Dt) }) } } jt = rt([st(7, Xe.i6), st(8, at), st(9, ot.XE), st(10, Ye.Ui), st(11, tt.d), st(12, Ge.F) ], jt); let $t = class { constructor(e, t, i, n, o, r, s, a, l) { this.tree = e, this.themeService = s, this.disposables = [], this.contextKeyService = _t(o, e), this.listSupportsMultiSelect = ct.bindTo(this.contextKeyService), this.listSupportsMultiSelect.set(!1 !== t.multipleSelectionSupport), mt.bindTo(this.contextKeyService).set(Boolean(t.selectionNavigation)), this.hasSelectionOrFocus = ut.bindTo(this.contextKeyService), this.hasDoubleSelection = gt.bindTo(this.contextKeyService), this.hasMultiSelection = pt.bindTo( this.contextKeyService), this._useAltAsMultipleSelectionModifier = Et(a); const d = new Set; d.add(ft); const c = () => { const t = l.isScreenReaderOptimized() ? "simple" : a.getValue(Ct); e.updateOptions({ simpleKeyboardNavigation: "simple" === t, filterOnType: "filter" === t }) }; this.updateStyleOverrides(n), this.disposables.push(this.contextKeyService, r.register(e), e.onDidChangeSelection((() => { const t = e.getSelection(), i = e.getFocus(); this.contextKeyService.bufferChangeEvents((() => { this.hasSelectionOrFocus.set(t.length > 0 || i.length > 0), this.hasMultiSelection.set(t.length > 1), this.hasDoubleSelection .set(2 === t.length) })) })), e.onDidChangeFocus((() => { const t = e.getSelection(), i = e.getFocus(); this.hasSelectionOrFocus.set(t.length > 0 || i.length > 0) })), a.onDidChangeConfiguration((n => { let o = {}; if (n.affectsConfiguration(bt) && (this._useAltAsMultipleSelectionModifier = Et(a)), n.affectsConfiguration(St)) { const e = a.getValue(St); o = Object.assign(Object.assign({}, o), { indent: e }) } if (n.affectsConfiguration(xt)) { const e = a.getValue(xt); o = Object.assign(Object.assign({}, o), { renderIndentGuides: e }) } if (n.affectsConfiguration(kt)) { const e = Boolean(!!a.getValue(kt)); o = Object.assign(Object.assign({}, o), { smoothScrolling: e }) } if (n.affectsConfiguration(Ct) && c(), n.affectsConfiguration(yt) && (o = Object.assign(Object.assign({}, o), { automaticKeyboardNavigation: i() })), n.affectsConfiguration(wt) && void 0 === t.horizontalScrolling ) { const e = Boolean(!!a.getValue(wt)); o = Object.assign(Object.assign({}, o), { horizontalScrolling: e }) } if (n.affectsConfiguration(Dt) && void 0 === t.expandOnlyOnTwistieClick && (o = Object.assign(Object.assign({}, o), { expandOnlyOnTwistieClick: "doubleClick" === a.getValue(Dt) })), n.affectsConfiguration(Lt)) { const e = a.getValue(Lt); o = Object.assign(Object.assign({}, o), { mouseWheelScrollSensitivity: e }) } if (n.affectsConfiguration(Nt)) { const e = a.getValue(Nt); o = Object.assign(Object.assign({}, o), { fastScrollSensitivity: e }) } Object.keys(o).length > 0 && e.updateOptions(o) })), this.contextKeyService.onDidChangeContext((t => { t.affectsSome(d) && e.updateOptions({ automaticKeyboardNavigation: i() }) })), l.onDidChangeScreenReaderOptimized((() => c()))), this.navigator = new Bt(e, Object.assign({ configurationService: a }, t)), this.disposables.push(this.navigator) } get onDidOpen() { return this.navigator.onDidOpen } updateOptions(e) { void 0 !== e.multipleSelectionSupport && this.listSupportsMultiSelect .set(!!e.multipleSelectionSupport) } updateStyleOverrides(e) { (0, a.B9)(this.styler), this.styler = e ? (0, nt.Jl)(this.tree, this.themeService, e) : a.JT.None } dispose() { this.disposables = (0, a.B9)(this.disposables), (0, a.B9)(this.styler), this.styler = void 0 } }; $t = rt([st(4, Xe.i6), st(5, at), st(6, ot.XE), st(7, Ye.Ui), st(8, Ge.F)], $t), it.B.as(Qe.IP.Configuration).registerConfiguration({ id: "workbench", order: 7, title: (0, ie.N)("workbenchConfigurationTitle", "Workbench"), type: "object", properties: { [bt]: { type: "string", enum: ["ctrlCmd", "alt"], enumDescriptions: [(0, ie.N)("multiSelectModifier.ctrlCmd", "Maps to `Control` on Windows and Linux and to `Command` on macOS." ), (0, ie.N)("multiSelectModifier.alt", "Maps to `Alt` on Windows and Linux and to `Option` on macOS.")], default: "ctrlCmd", description: (0, ie.N)({ key: "multiSelectModifier", comment: [ "- `ctrlCmd` refers to a value the setting can take and should not be localized.", "- `Control` and `Command` refer to the modifier keys Ctrl or Cmd on the keyboard and can be localized." ] }, "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." ) }, [vt]: { type: "string", enum: ["singleClick", "doubleClick"], default: "singleClick", description: (0, ie.N)({ key: "openModeModifier", comment: [ "`singleClick` and `doubleClick` refers to a value the setting can take and should not be localized." ] }, "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." ) }, [wt]: { type: "boolean", default: !1, description: (0, ie.N)("horizontalScrolling setting", "Controls whether lists and trees support horizontal scrolling in the workbench. Warning: turning on this setting has a performance implication." ) }, [St]: { type: "number", default: 8, minimum: 0, maximum: 40, description: (0, ie.N)("tree indent setting", "Controls tree indentation in pixels.") }, [xt]: { type: "string", enum: ["none", "onHover", "always"], default: "onHover", description: (0, ie.N)("render tree indent guides", "Controls whether the tree should render indent guides.") }, [kt]: { type: "boolean", default: !1, description: (0, ie.N)("list smoothScrolling setting", "Controls whether lists and trees have smooth scrolling.") }, [Lt]: { type: "number", default: 1, description: (0, ie.N)("Mouse Wheel Scroll Sensitivity", "A multiplier to be used on the deltaX and deltaY of mouse wheel scroll events." ) }, [Nt]: { type: "number", default: 5, description: (0, ie.N)("Fast Scroll Sensitivity", "Scrolling speed multiplier when pressing Alt.") }, [Ct]: { type: "string", enum: ["simple", "highlight", "filter"], enumDescriptions: [(0, ie.N)("keyboardNavigationSettingKey.simple", "Simple keyboard navigation focuses elements which match the keyboard input. Matching is done only on prefixes." ), (0, ie.N)("keyboardNavigationSettingKey.highlight", "Highlight keyboard navigation highlights elements which match the keyboard input. Further up and down navigation will traverse only the highlighted elements." ), (0, ie.N)("keyboardNavigationSettingKey.filter", "Filter keyboard navigation will filter out and hide all the elements which do not match the keyboard input." )], default: "highlight", description: (0, ie.N)("keyboardNavigationSettingKey", "Controls the keyboard navigation style for lists and trees in the workbench. Can be simple, highlight and filter." ) }, [yt]: { type: "boolean", default: !0, markdownDescription: (0, ie.N)( "automatic keyboard navigation setting", "Controls whether keyboard navigation in lists and trees is automatically triggered simply by typing. If set to `false`, keyboard navigation is only triggered when executing the `list.toggleKeyboardNavigation` command, for which you can assign a keyboard shortcut." ) }, [Dt]: { type: "string", enum: ["singleClick", "doubleClick"], default: "singleClick", description: (0, ie.N)("expand mode", "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." ) } } }) }, 3557: (e, t, i) => { "use strict"; i.d(t, { VZ: () => r, in : () => s, kw: () => d, $V: () => c }); var n = i(4669), o = i(5976); const r = (0, i(2065).yh)("logService"); var s; ! function(e) { e[e.Trace = 0] = "Trace", e[e.Debug = 1] = "Debug", e[e.Info = 2] = "Info", e[e.Warning = 3] = "Warning", e[e.Error = 4] = "Error", e[e.Critical = 5] = "Critical", e[e.Off = 6] = "Off" }(s || (s = {})); const a = s.Info; class l extends o.JT { constructor() { super(...arguments), this.level = a, this._onDidChangeLogLevel = this ._register(new n.Q5) } setLevel(e) { this.level !== e && (this.level = e, this._onDidChangeLogLevel.fire( this.level)) } getLevel() { return this.level } } class d extends l { constructor(e = a) { super(), this.setLevel(e) } trace(e, ...t) { this.getLevel() <= s.Trace && console.log("%cTRACE", "color: #888", e, ...t) } debug(e, ...t) { this.getLevel() <= s.Debug && console.log("%cDEBUG", "background: #eee; color: #888", e, ...t) } info(e, ...t) { this.getLevel() <= s.Info && console.log("%c INFO", "color: #33f", e, ...t) } error(e, ...t) { this.getLevel() <= s.Error && console.log("%c ERR", "color: #f33", e, ...t) } dispose() {} } class c extends o.JT { constructor(e) { super(), this.logger = e, this._register(e) } getLevel() { return this.logger.getLevel() } trace(e, ...t) { this.logger.trace(e, ...t) } debug(e, ...t) { this.logger.debug(e, ...t) } info(e, ...t) { this.logger.info(e, ...t) } error(e, ...t) { this.logger.error(e, ...t) } } }, 8674: (e, t, i) => { "use strict"; i.d(t, { ZL: () => n, H0: () => o, lT: () => l }); var n, o, r = i(4603), s = i(3580), a = i(2065); ! function(e) { e[e.Hint = 1] = "Hint", e[e.Info = 2] = "Info", e[e.Warning = 4] = "Warning", e[e.Error = 8] = "Error" }(n || (n = {})), function(e) { e.compare = function(e, t) { return t - e }; const t = Object.create(null); t[e.Error] = (0, s.N)("sev.error", "Error"), t[e.Warning] = (0, s.N)( "sev.warning", "Warning"), t[e.Info] = (0, s.N)("sev.info", "Info"), e .toString = function(e) { return t[e] || "" }, e.fromSeverity = function(t) { switch (t) { case r.Z.Error: return e.Error; case r.Z.Warning: return e.Warning; case r.Z.Info: return e.Info; case r.Z.Ignore: return e.Hint } }, e.toSeverity = function(t) { switch (t) { case e.Error: return r.Z.Error; case e.Warning: return r.Z.Warning; case e.Info: return r.Z.Info; case e.Hint: return r.Z.Ignore } } }(n || (n = {})), function(e) { const t = ""; function i(e, i) { let o = [t]; return e.source ? o.push(e.source.replace("¦", "\\¦")) : o.push(t), e.code ? "string" == typeof e.code ? o.push(e.code.replace("¦", "\\¦")) : o.push( e.code.value.replace("¦", "\\¦")) : o.push(t), void 0 !== e.severity && null !== e.severity ? o.push(n.toString(e.severity)) : o.push(t), e.message && i ? o.push(e.message.replace("¦", "\\¦")) : o.push(t), void 0 !== e.startLineNumber && null !== e.startLineNumber ? o.push(e.startLineNumber.toString()) : o.push( t), void 0 !== e.startColumn && null !== e.startColumn ? o.push(e.startColumn .toString()) : o.push(t), void 0 !== e.endLineNumber && null !== e.endLineNumber ? o.push(e.endLineNumber.toString()) : o.push(t), void 0 !== e.endColumn && null !== e.endColumn ? o.push(e.endColumn.toString()) : o.push(t), o.push( t), o.join("¦") } e.makeKey = function(e) { return i(e, !0) }, e.makeKeyOptionalMessage = i }(o || (o = {})); const l = (0, a.yh)("markerService") }, 9422: (e, t, i) => { "use strict"; i.d(t, { lT: () => n, EO: () => o }), i(4603); const n = (0, i(2065).yh)("notificationService"); class o {} }, 988: (e, t, i) => { "use strict"; i.d(t, { v4: () => l, SW: () => d, xn: () => c }); var n = i(5976), o = i(7295), r = i(666), s = i(2065), a = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; const l = (0, s.yh)("openerService"), d = Object.freeze({ _serviceBrand: void 0, registerOpener: () => n.JT.None, registerValidator: () => n.JT.None, registerExternalUriResolver: () => n.JT.None, setDefaultExternalOpener() {}, registerExternalOpener: () => n.JT.None, open() { return a(this, void 0, void 0, (function*() { return !1 })) }, resolveExternalUri(e) { return a(this, void 0, void 0, (function*() { return { resolved: e, dispose() {} } })) } }); function c(e, t) { return r.o.isUri(e) ? (0, o.qq)(e.scheme, t) : (0, o.ok)(e, t + ":") } }, 535: (e, t, i) => { "use strict"; i.d(t, { E: () => o, e: () => r }); var n = i(2065); class o { constructor(e) { this.callback = e } report(e) { this._value = e, this.callback(this._value) } } o.None = Object.freeze({ report() {} }); const r = (0, n.yh)("editorProgressService") }, 725: (e, t, i) => { "use strict"; i.d(t, { Ry: () => n, IP: () => a }); var n, o = i(9488), r = i(5976), s = i(9872); ! function(e) { e[e.PRESERVE = 0] = "PRESERVE", e[e.LAST = 1] = "LAST" }(n || (n = {})); const a = { Quickaccess: "workbench.contributions.quickaccess" }; s.B.add(a.Quickaccess, new class { constructor() { this.providers = [], this.defaultProvider = void 0 } registerQuickAccessProvider(e) { return 0 === e.prefix.length ? this.defaultProvider = e : this.providers .push(e), this.providers.sort(((e, t) => t.prefix.length - e.prefix .length)), (0, r.OF)((() => { this.providers.splice(this.providers.indexOf(e), 1), this.defaultProvider === e && (this.defaultProvider = void 0) })) } getQuickAccessProviders() { return (0, o.kX)([this.defaultProvider, ...this.providers]) } getQuickAccessProvider(e) { return e && this.providers.find((t => e.startsWith(t.prefix))) || this.defaultProvider } }) }, 1157: (e, t, i) => { "use strict"; i.d(t, { jG: () => o.jG, eJ: () => r }); var n = i(2065), o = i(7746); const r = (0, n.yh)("quickInputService") }, 9872: (e, t, i) => { "use strict"; i.d(t, { B: () => r }); var n = i(5146), o = i(8401); const r = new class { constructor() { this.data = new Map } add(e, t) { n.ok(o.HD(e)), n.ok(o.Kn(t)), n.ok(!this.data.has(e), "There is already an extension with this id"), this.data.set(e, t) } as(e) { return this.data.get(e) || null } } }, 6904: (e, t, i) => { "use strict"; i.d(t, { Uy: () => g, vm: () => f, fk: () => p }); var n, o = i(4669), r = i(5976), s = i(8401), a = i(5393), l = function(e, t, i, n) { return new(i || (i = Promise))((function(o, r) { function s(e) { try { l(n.next(e)) } catch (e) { r(e) } } function a(e) { try { l(n.throw(e)) } catch (e) { r(e) } } function l(e) { var t; e.done ? o(e.value) : (t = e.value, t instanceof i ? t : new i(( function(e) { e(t) }))).then(s, a) } l((n = n.apply(e, t || [])).next()) })) }; ! function(e) { e[e.None = 0] = "None", e[e.Initialized = 1] = "Initialized", e[e.Closed = 2] = "Closed" }(n || (n = {})); class d extends r.JT { constructor(e, t = Object.create(null)) { super(), this.database = e, this.options = t, this._onDidChangeStorage = this._register(new o.Q5), this.onDidChangeStorage = this._onDidChangeStorage .event, this.state = n.None, this.cache = new Map, this.flushDelayer = new a.rH(d.DEFAULT_FLUSH_DELAY), this.pendingDeletes = new Set, this .pendingInserts = new Map, this.whenFlushedCallbacks = [], this.registerListeners() } registerListeners() { this._register(this.database.onDidChangeItemsExternal((e => this.onDidChangeItemsExternal( e)))) } onDidChangeItemsExternal(e) { var t, i; null === (t = e.changed) || void 0 === t || t.forEach(((e, t) => this .accept(t, e))), null === (i = e.deleted) || void 0 === i || i.forEach( (e => this.accept(e, void 0))) } accept(e, t) { if (this.state === n.Closed) return; let i = !1; (0, s.Jp)(t) ? i = this.cache.delete(e): this.cache.get(e) !== t && ( this.cache.set(e, t), i = !0), i && this._onDidChangeStorage.fire(e) } get(e, t) { const i = this.cache.get(e); return (0, s.Jp)(i) ? t : i } getBoolean(e, t) { const i = this.get(e); return (0, s.Jp)(i) ? t : "true" === i } getNumber(e, t) { const i = this.get(e); return (0, s.Jp)(i) ? t : parseInt(i, 10) } set(e, t) { return l(this, void 0, void 0, (function*() { if (this.state === n.Closed) return; if ((0, s.Jp)(t)) return this.delete(e); const i = String(t); return this.cache.get(e) !== i ? (this.cache.set(e, i), this.pendingInserts .set(e, i), this.pendingDeletes.delete(e), this._onDidChangeStorage .fire(e), this.flushDelayer.trigger((() => this.flushPending())) ) : void 0 })) } delete(e) { return l(this, void 0, void 0, (function*() { if (this.state !== n.Closed) return this.cache.delete(e) ? (this.pendingDeletes .has(e) || this.pendingDeletes.add(e), this.pendingInserts.delete( e), this._onDidChangeStorage.fire(e), this.flushDelayer.trigger( (() => this.flushPending()))) : void 0 })) } get hasPending() { return this.pendingInserts.size > 0 || this.pendingDeletes.size > 0 } flushPending() { return l(this, void 0, void 0, (function*() { if (!this.hasPending) return; const e = { insert: this.pendingInserts, delete: this.pendingDeletes }; return this.pendingDeletes = new Set, this.pendingInserts = new Map, this.database.updateItems(e).finally((() => { var e; if (!this.hasPending) for (; this.whenFlushedCallbacks.length;) null === (e = this .whenFlushedCallbacks.pop()) || void 0 === e || e() })) })) } dispose() { this.flushDelayer.dispose(), super.dispose() } } d.DEFAULT_FLUSH_DELAY = 100; class c { constructor() { this.onDidChangeItemsExternal = o.ju.None, this.items = new Map } updateItems(e) { return l(this, void 0, void 0, (function*() { e.insert && e.insert.forEach(((e, t) => this.items.set(t, e))), e.delete && e.delete.forEach((e => this.items.delete(e))) })) } } var h = i(2065); const u = "__$__targetStorageMarker", g = (0, h.yh)("storageService"); var p; ! function(e) { e[e.NONE = 0] = "NONE", e[e.SHUTDOWN = 1] = "SHUTDOWN" }(p || (p = {})); class m extends r.JT { constructor(e = { flushInterval: m.DEFAULT_FLUSH_INTERVAL }) { super(), this.options = e, this._onDidChangeValue = this._register( new o.K3), this._onDidChangeTarget = this._register(new o.K3), this ._onWillSaveState = this._register(new o.Q5), this.onWillSaveState = this._onWillSaveState.event, this._workspaceKeyTargets = void 0, this._globalKeyTargets = void 0 } emitDidChangeValue(e, t) { t === u ? (0 === e ? this._globalKeyTargets = void 0 : 1 === e && ( this._workspaceKeyTargets = void 0), this._onDidChangeTarget.fire({ scope: e })) : this._onDidChangeValue.fire({ scope: e, key: t, target: this.getKeyTargets(e)[t] }) } get(e, t, i) { var n; return null === (n = this.getStorage(t)) || void 0 === n ? void 0 : n .get(e, i) } getBoolean(e, t, i) { var n; return null === (n = this.getStorage(t)) || void 0 === n ? void 0 : n .getBoolean(e, i) } getNumber(e, t, i) { var n; return null === (n = this.getStorage(t)) || void 0 === n ? void 0 : n .getNumber(e, i) } store(e, t, i, n) { (0, s.Jp)(t) ? this.remove(e, i): this.withPausedEmitters((() => { var o; this.updateKeyTarget(e, i, n), null === (o = this.getStorage(i)) || void 0 === o || o.set(e, t) })) } remove(e, t) { this.withPausedEmitters((() => { var i; this.updateKeyTarget(e, t, void 0), null === (i = this.getStorage( t)) || void 0 === i || i.delete(e) })) } withPausedEmitters(e) { this._onDidChangeValue.pause(), this._onDidChangeTarget.pause(); try { e() } finally { this._onDidChangeValue.resume(), this._onDidChangeTarget.resume() } } updateKeyTarget(e, t, i) { var n, o; const r = this.getKeyTargets(t); "number" == typeof i ? r[e] !== i && (r[e] = i, null === (n = this.getStorage( t)) || void 0 === n || n.set(u, JSON.stringify(r))) : "number" == typeof r[e] && (delete r[e], null === (o = this.getStorage(t)) || void 0 === o || o.set(u, JSON.stringify(r))) } get workspaceKeyTargets() { return this._workspaceKeyTargets || (this._workspaceKeyTargets = this .loadKeyTargets(1)), this._workspaceKeyTargets } get globalKeyTargets() { return this._globalKeyTargets || (this._globalKeyTargets = this.loadKeyTargets( 0)), this._globalKeyTargets } getKeyTargets(e) { return 0 === e ? this.globalKeyTargets : this.workspaceKeyTargets } loadKeyTargets(e) { const t = this.get(u, e); if (t) try { return JSON.parse(t) } catch (e) {} return Object.create(null) } } m.DEFAULT_FLUSH_INTERVAL = 6e4; class f extends m { constructor() { super(), this.globalStorage = this._register(new d(new c)), this.workspaceStorage = this._register(new d(new c)), this._register(this.workspaceStorage.onDidChangeStorage( (e => this.emitDidChangeValue(1, e)))), this._register(this.globalStorage .onDidChangeStorage((e => this.emitDidChangeValue(0, e)))) } getStorage(e) { return 0 === e ? this.globalStorage : this.workspaceStorage } } }, 829: (e, t, i) => { "use strict"; i.d(t, { b: () => n }); const n = (0, i(2065).yh)("telemetryService") }, 3910: (e, t, i) => { "use strict"; i.d(t, { IP: () => c, P6: () => u, dR: () => g, Id: () => p, XZ: () => m, R8: () => f, lR: () => _, xL: () => b, ur: () => v, sg: () => w, Sw: () => C, rh: () => y, sE: () => S, zJ: () => x, dt: () => k, PR: () => L, XE: () => N, Pv: () => D, _l: () => E, YI: () => I, EP: () => T, RV: () => M, SU: () => A, C3: () => R, p: () => O, _t: () => P, OZ: () => F, j5: () => z, b7: () => V, GO: () => H, g8: () => U, qe: () => j, _w: () => K, et: () => $, AB: () => q, yn: () => Z, zR: () => G, A2: () => Y, lX: () => Q, b6: () => X, gp: () => J, uo: () => ee, pW: () => te, fe: () => ie, c6: () => ne, T8: () => oe, Du: () => re, fE: () => se, cv: () => ae, NO: () => le, D0: () => de, Hf: () => ce, D1: () => he, Ng: () => ue, zK: () => ge, tZ: () => pe, lo: () => me, kJ: () => fe, op: () => _e, oQ: () => be, lW: () => ve, AW: () => we, K1: () => Ce, hE: () => ye, yb: () => Se, ES: () => xe, Rz: () => ke, g_: () => Le, ny: () => Ne, MU: () => De, jU: () => Ee, pn: () => Ie, Ei: () => Te, gk: () => Me, pt: () => Ae, yJ: () => Re, Sb: () => Oe, CN: () => Pe, Lo: () => Fe, _Y: () => Be, VV: () => We, Pp: () => ze, Fu: () => Ve, sK: () => He, Cz: () => Ue, ke: () => je, yp: () => Ke, P4: () => $e, XL: () => qe, mH: () => Ze, LL: () => Ge, L_: () => Ye, _b: () => Qe, _2: () => Xe, Oo: () => Je, dC: () => et, M6: () => tt, Tn: () => it, rg: () => nt, yt: () => ot, kv: () => rt, s$: () => st, F3: () => at, mV: () => lt, $d: () => dt, AS: () => ct, Gw: () => ht, PX: () => ut, vG: () => mt, oS: () => ft, S: () => _t, Un: () => bt, ux: () => vt, NP: () => Ct, cb: () => yt, Vq: () => St, Cd: () => xt, DE: () => kt, Hz: () => Lt, jb: () => Nt, $D: () => Dt, E3: () => Et, ZG: () => It, lU: () => Tt, u2: () => Mt, Pk: () => At, I1: () => Rt, U6: () => Ot, Fm: () => Pt, SP: () => Ft, KT: () => Bt, ov: () => Wt, Gj: () => zt, Iv: () => Vt, kV: () => Ht, CA: () => Ut, Xy: () => jt, br: () => Kt, Jp: () => $t, BO: () => qt, OL: () => Zt, Zn: () => Qt, kw: () => Xt, Sn: () => ei }); var n = i(5393), o = i(1264), r = i(4669), s = i(8401), a = i(3580), l = i(1294), d = i(9872); const c = { ColorContribution: "base.contributions.colors" }, h = new class { constructor() { this._onDidChangeSchema = new r.Q5, this.onDidChangeSchema = this._onDidChangeSchema .event, this.colorSchema = { type: "object", properties: {} }, this.colorReferenceSchema = { type: "string", enum: [], enumDescriptions: [] }, this.colorsById = {} } registerColor(e, t, i, n = !1, o) { let r = { id: e, description: i, defaults: t, needsTransparency: n, deprecationMessage: o }; this.colorsById[e] = r; let s = { type: "string", description: i, format: "color-hex", defaultSnippets: [{ body: "${1:#ff0000}" }] }; return o && (s.deprecationMessage = o), this.colorSchema.properties[e] = s, this.colorReferenceSchema.enum.push(e), this.colorReferenceSchema .enumDescriptions.push(i), this._onDidChangeSchema.fire(), e } resolveDefaultColor(e, t) { const i = this.colorsById[e]; if (i && i.defaults) return ei(i.defaults[t.type], t) } getColorSchema() { return this.colorSchema } toString() { return Object.keys(this.colorsById).sort(((e, t) => { let i = -1 === e.indexOf(".") ? 0 : 1, n = -1 === t.indexOf(".") ? 0 : 1; return i !== n ? i - n : e.localeCompare(t) })).map((e => `- \`${e}\`: ${this.colorsById[e].description}`)).join( "\n") } }; function u(e, t, i, n, o) { return h.registerColor(e, t, i, n, o) } d.B.add(c.ColorContribution, h); const g = u("foreground", { dark: "#CCCCCC", light: "#616161", hc: "#FFFFFF" }, a.N("foreground", "Overall foreground color. This color is only used if not overridden by a component." )), p = u("errorForeground", { dark: "#F48771", light: "#A1260D", hc: "#F48771" }, a.N("errorForeground", "Overall foreground color for error messages. This color is only used if not overridden by a component." )), m = u("icon.foreground", { dark: "#C5C5C5", light: "#424242", hc: "#FFFFFF" }, a.N("iconForeground", "The default color for icons in the workbench.")), f = u("focusBorder", { dark: "#007FD4", light: "#0090F1", hc: "#F38518" }, a.N("focusBorder", "Overall border color for focused elements. This color is only used if not overridden by a component." )), _ = u("contrastBorder", { light: null, dark: null, hc: "#6FC3DF" }, a.N("contrastBorder", "An extra border around elements to separate them from others for greater contrast." )), b = u("contrastActiveBorder", { light: null, dark: null, hc: f }, a.N("activeContrastBorder", "An extra border around active elements to separate them from others for greater contrast." )), v = u("textLink.foreground", { light: "#006AB1", dark: "#3794FF", hc: "#3794FF" }, a.N("textLinkForeground", "Foreground color for links in text.")), w = u("textLink.activeForeground", { light: "#006AB1", dark: "#3794FF", hc: "#3794FF" }, a.N("textLinkActiveForeground", "Foreground color for links in text when clicked on and on mouse hover." )), C = u("textCodeBlock.background", { light: "#dcdcdc66", dark: "#0a0a0a66", hc: o.Il.black }, a.N("textCodeBlockBackground", "Background color for code blocks in text.")), y = u("widget.shadow", { dark: Qt(o.Il.black, .36), light: Qt(o.Il.black, .16), hc: null }, a.N("widgetShadow", "Shadow color of widgets such as find/replace inside the editor.")), S = u("input.background", { dark: "#3C3C3C", light: o.Il.white, hc: o.Il.black }, a.N("inputBoxBackground", "Input box background.")), x = u("input.foreground", { dark: g, light: g, hc: g }, a.N("inputBoxForeground", "Input box foreground.")), k = u("input.border", { dark: null, light: null, hc: _ }, a.N("inputBoxBorder", "Input box border.")), L = u("inputOption.activeBorder", { dark: "#007ACC00", light: "#007ACC00", hc: _ }, a.N("inputBoxActiveOptionBorder", "Border color of activated options in input fields.")), N = u("inputOption.activeBackground", { dark: Qt(f, .4), light: Qt(f, .2), hc: o.Il.transparent }, a.N("inputOption.activeBackground", "Background color of activated options in input fields.")), D = u("inputOption.activeForeground", { dark: o.Il.white, light: o.Il.black, hc: null }, a.N("inputOption.activeForeground", "Foreground color of activated options in input fields.")), E = u("inputValidation.infoBackground", { dark: "#063B49", light: "#D6ECF2", hc: o.Il.black }, a.N("inputValidationInfoBackground", "Input validation background color for information severity.")), I = u("inputValidation.infoForeground", { dark: null, light: null, hc: null }, a.N("inputValidationInfoForeground", "Input validation foreground color for information severity.")), T = u("inputValidation.infoBorder", { dark: "#007acc", light: "#007acc", hc: _ }, a.N("inputValidationInfoBorder", "Input validation border color for information severity.")), M = u("inputValidation.warningBackground", { dark: "#352A05", light: "#F6F5D2", hc: o.Il.black }, a.N("inputValidationWarningBackground", "Input validation background color for warning severity.")), A = u("inputValidation.warningForeground", { dark: null, light: null, hc: null }, a.N("inputValidationWarningForeground", "Input validation foreground color for warning severity.")), R = u("inputValidation.warningBorder", { dark: "#B89500", light: "#B89500", hc: _ }, a.N("inputValidationWarningBorder", "Input validation border color for warning severity.")), O = u("inputValidation.errorBackground", { dark: "#5A1D1D", light: "#F2DEDE", hc: o.Il.black }, a.N("inputValidationErrorBackground", "Input validation background color for error severity.")), P = u("inputValidation.errorForeground", { dark: null, light: null, hc: null }, a.N("inputValidationErrorForeground", "Input validation foreground color for error severity.")), F = u("inputValidation.errorBorder", { dark: "#BE1100", light: "#BE1100", hc: _ }, a.N("inputValidationErrorBorder", "Input validation border color for error severity.")), B = u("dropdown.background", { dark: "#3C3C3C", light: o.Il.white, hc: o.Il.black }, a.N("dropdownBackground", "Dropdown background.")), W = u("dropdown.foreground", { dark: "#F0F0F0", light: null, hc: o.Il.white }, a.N("dropdownForeground", "Dropdown foreground.")), z = u("button.foreground", { dark: o.Il.white, light: o.Il.white, hc: o.Il.white }, a.N("buttonForeground", "Button foreground color.")), V = u("button.background", { dark: "#0E639C", light: "#007ACC", hc: null }, a.N("buttonBackground", "Button background color.")), H = u("button.hoverBackground", { dark: Yt(V, .2), light: Gt(V, .2), hc: null }, a.N("buttonHoverBackground", "Button background color when hovering.")), U = u("badge.background", { dark: "#4D4D4D", light: "#C4C4C4", hc: o.Il.black }, a.N("badgeBackground", "Badge background color. Badges are small information labels, e.g. for search results count." )), j = u("badge.foreground", { dark: o.Il.white, light: "#333", hc: o.Il.white }, a.N("badgeForeground", "Badge foreground color. Badges are small information labels, e.g. for search results count." )), K = u("scrollbar.shadow", { dark: "#000000", light: "#DDDDDD", hc: null }, a.N("scrollbarShadow", "Scrollbar shadow to indicate that the view is scrolled.")), $ = u("scrollbarSlider.background", { dark: o.Il.fromHex("#797979").transparent(.4), light: o.Il.fromHex("#646464").transparent(.4), hc: Qt(_, .6) }, a.N("scrollbarSliderBackground", "Scrollbar slider background color.")), q = u("scrollbarSlider.hoverBackground", { dark: o.Il.fromHex("#646464").transparent(.7), light: o.Il.fromHex("#646464").transparent(.7), hc: Qt(_, .8) }, a.N("scrollbarSliderHoverBackground", "Scrollbar slider background color when hovering.")), Z = u("scrollbarSlider.activeBackground", { dark: o.Il.fromHex("#BFBFBF").transparent(.4), light: o.Il.fromHex("#000000").transparent(.6), hc: _ }, a.N("scrollbarSliderActiveBackground", "Scrollbar slider background color when clicked on.")), G = u("progressBar.background", { dark: o.Il.fromHex("#0E70C0"), light: o.Il.fromHex("#0E70C0"), hc: _ }, a.N("progressBarBackground", "Background color of the progress bar that can show for long running operations." )), Y = u("editorError.background", { dark: null, light: null, hc: null }, a.N("editorError.background", "Background color of error text in the editor. The color must not be opaque so as not to hide underlying decorations." ), !0), Q = u("editorError.foreground", { dark: "#F14C4C", light: "#E51400", hc: null }, a.N("editorError.foreground", "Foreground color of error squigglies in the editor.")), X = u("editorError.border", { dark: null, light: null, hc: o.Il.fromHex("#E47777").transparent(.8) }, a.N("errorBorder", "Border color of error boxes in the editor.")), J = u("editorWarning.background", { dark: null, light: null, hc: null }, a.N("editorWarning.background", "Background color of warning text in the editor. The color must not be opaque so as not to hide underlying decorations." ), !0), ee = u("editorWarning.foreground", { dark: "#CCA700", light: "#BF8803", hc: null }, a.N("editorWarning.foreground", "Foreground color of warning squigglies in the editor.")), te = u("editorWarning.border", { dark: null, light: null, hc: o.Il.fromHex("#FFCC00").transparent(.8) }, a.N("warningBorder", "Border color of warning boxes in the editor.")), ie = u("editorInfo.background", { dark: null, light: null, hc: null }, a.N("editorInfo.background", "Background color of info text in the editor. The color must not be opaque so as not to hide underlying decorations." ), !0), ne = u("editorInfo.foreground", { dark: "#3794FF", light: "#1a85ff", hc: "#3794FF" }, a.N("editorInfo.foreground", "Foreground color of info squigglies in the editor.")), oe = u("editorInfo.border", { dark: null, light: null, hc: o.Il.fromHex("#3794FF").transparent(.8) }, a.N("infoBorder", "Border color of info boxes in the editor.")), re = u("editorHint.foreground", { dark: o.Il.fromHex("#eeeeee").transparent(.7), light: "#6c6c6c", hc: null }, a.N("editorHint.foreground", "Foreground color of hint squigglies in the editor.")), se = u("editorHint.border", { dark: null, light: null, hc: o.Il.fromHex("#eeeeee").transparent(.8) }, a.N("hintBorder", "Border color of hint boxes in the editor.")), ae = u("editor.background", { light: "#fffffe", dark: "#1E1E1E", hc: o.Il.black }, a.N("editorBackground", "Editor background color.")), le = u("editor.foreground", { light: "#333333", dark: "#BBBBBB", hc: o.Il.white }, a.N("editorForeground", "Editor default foreground color.")), de = u("editorWidget.background", { dark: "#252526", light: "#F3F3F3", hc: "#0C141F" }, a.N("editorWidgetBackground", "Background color of editor widgets, such as find/replace.")), ce = u("editorWidget.foreground", { dark: g, light: g, hc: g }, a.N("editorWidgetForeground", "Foreground color of editor widgets, such as find/replace.")), he = u("editorWidget.border", { dark: "#454545", light: "#C8C8C8", hc: _ }, a.N("editorWidgetBorder", "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." )), ue = u("editorWidget.resizeBorder", { light: null, dark: null, hc: null }, a.N("editorWidgetResizeBorder", "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." )), ge = u("quickInput.background", { dark: de, light: de, hc: de }, a.N("pickerBackground", "Quick picker background color. The quick picker widget is the container for pickers like the command palette." )), pe = u("quickInput.foreground", { dark: ce, light: ce, hc: ce }, a.N("pickerForeground", "Quick picker foreground color. The quick picker widget is the container for pickers like the command palette." )), me = u("quickInputTitle.background", { dark: new o.Il(new o.VS(255, 255, 255, .105)), light: new o.Il(new o.VS(0, 0, 0, .06)), hc: "#000000" }, a.N("pickerTitleBackground", "Quick picker title background color. The quick picker widget is the container for pickers like the command palette." )), fe = u("pickerGroup.foreground", { dark: "#3794FF", light: "#0066BF", hc: o.Il.white }, a.N("pickerGroupForeground", "Quick picker color for grouping labels.")), _e = u("pickerGroup.border", { dark: "#3F3F46", light: "#CCCEDB", hc: o.Il.white }, a.N("pickerGroupBorder", "Quick picker color for grouping borders.")), be = u("keybindingLabel.background", { dark: new o.Il(new o.VS(128, 128, 128, .17)), light: new o.Il(new o.VS(221, 221, 221, .4)), hc: o.Il.transparent }, a.N("keybindingLabelBackground", "Keybinding label background color. The keybinding label is used to represent a keyboard shortcut." )), ve = u("keybindingLabel.foreground", { dark: o.Il.fromHex("#CCCCCC"), light: o.Il.fromHex("#555555"), hc: o.Il.white }, a.N("keybindingLabelForeground", "Keybinding label foreground color. The keybinding label is used to represent a keyboard shortcut." )), we = u("keybindingLabel.border", { dark: new o.Il(new o.VS(51, 51, 51, .6)), light: new o.Il(new o.VS(204, 204, 204, .4)), hc: new o.Il(new o.VS(111, 195, 223)) }, a.N("keybindingLabelBorder", "Keybinding label border color. The keybinding label is used to represent a keyboard shortcut." )), Ce = u("keybindingLabel.bottomBorder", { dark: new o.Il(new o.VS(68, 68, 68, .6)), light: new o.Il(new o.VS(187, 187, 187, .4)), hc: new o.Il(new o.VS(111, 195, 223)) }, a.N("keybindingLabelBottomBorder", "Keybinding label border bottom color. The keybinding label is used to represent a keyboard shortcut." )), ye = u("editor.selectionBackground", { light: "#ADD6FF", dark: "#264F78", hc: "#f3f518" }, a.N("editorSelectionBackground", "Color of the editor selection.")), Se = u("editor.selectionForeground", { light: null, dark: null, hc: "#000000" }, a.N("editorSelectionForeground", "Color of the selected text for high contrast.")), xe = u("editor.inactiveSelectionBackground", { light: Qt(ye, .5), dark: Qt(ye, .5), hc: Qt(ye, .5) }, a.N("editorInactiveSelection", "Color of the selection in an inactive editor. The color must not be opaque so as not to hide underlying decorations." ), !0), ke = u("editor.selectionHighlightBackground", { light: Jt(ye, ae, .3, .6), dark: Jt(ye, ae, .3, .6), hc: null }, a.N("editorSelectionHighlight", "Color for regions with the same content as the selection. The color must not be opaque so as not to hide underlying decorations." ), !0), Le = u("editor.selectionHighlightBorder", { light: null, dark: null, hc: b }, a.N("editorSelectionHighlightBorder", "Border color for regions with the same content as the selection.")), Ne = u("editor.findMatchBackground", { light: "#A8AC94", dark: "#515C6A", hc: null }, a.N("editorFindMatch", "Color of the current search match.")), De = u("editor.findMatchHighlightBackground", { light: "#EA5C0055", dark: "#EA5C0055", hc: null }, a.N("findMatchHighlight", "Color of the other search matches. The color must not be opaque so as not to hide underlying decorations." ), !0), Ee = u("editor.findRangeHighlightBackground", { dark: "#3a3d4166", light: "#b4b4b44d", hc: null }, a.N("findRangeHighlight", "Color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations." ), !0), Ie = u("editor.findMatchBorder", { light: null, dark: null, hc: b }, a.N("editorFindMatchBorder", "Border color of the current search match.")), Te = u("editor.findMatchHighlightBorder", { light: null, dark: null, hc: b }, a.N("findMatchHighlightBorder", "Border color of the other search matches.")), Me = u("editor.findRangeHighlightBorder", { dark: null, light: null, hc: Qt(b, .4) }, a.N("findRangeHighlightBorder", "Border color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations." ), !0), Ae = u("editor.hoverHighlightBackground", { light: "#ADD6FF26", dark: "#264f7840", hc: "#ADD6FF26" }, a.N("hoverHighlight", "Highlight below the word for which a hover is shown. The color must not be opaque so as not to hide underlying decorations." ), !0), Re = u("editorHoverWidget.background", { light: de, dark: de, hc: de }, a.N("hoverBackground", "Background color of the editor hover.")), Oe = u("editorHoverWidget.foreground", { light: ce, dark: ce, hc: ce }, a.N("hoverForeground", "Foreground color of the editor hover.")), Pe = u("editorHoverWidget.border", { light: he, dark: he, hc: he }, a.N("hoverBorder", "Border color of the editor hover.")), Fe = u("editorHoverWidget.statusBarBackground", { dark: Yt(Re, .2), light: Gt(Re, .05), hc: de }, a.N("statusBarBackground", "Background color of the editor hover status bar.")), Be = u("editorLink.activeForeground", { dark: "#4E94CE", light: o.Il.blue, hc: o.Il.cyan }, a.N("activeLinkForeground", "Color of active links.")), We = u("editorInlayHint.foreground", { dark: Qt(j, .8), light: Qt(j, .8), hc: j }, a.N("editorInlayHintForeground", "Foreground color of inline hints")), ze = u("editorInlayHint.background", { dark: Qt(U, .6), light: Qt(U, .3), hc: U }, a.N("editorInlayHintBackground", "Background color of inline hints")), Ve = u("editorLightBulb.foreground", { dark: "#FFCC00", light: "#DDB100", hc: "#FFCC00" }, a.N("editorLightBulbForeground", "The color used for the lightbulb actions icon.")), He = u("editorLightBulbAutoFix.foreground", { dark: "#75BEFF", light: "#007ACC", hc: "#75BEFF" }, a.N("editorLightBulbAutoFixForeground", "The color used for the lightbulb auto fix actions icon.")), Ue = new o.Il(new o.VS(155, 185, 85, .2)), je = new o.Il(new o.VS(255, 0, 0, .2)), Ke = u("diffEditor.insertedTextBackground", { dark: Ue, light: Ue, hc: null }, a.N("diffEditorInserted", "Background color for text that got inserted. The color must not be opaque so as not to hide underlying decorations." ), !0), $e = u("diffEditor.removedTextBackground", { dark: je, light: je, hc: null }, a.N("diffEditorRemoved", "Background color for text that got removed. The color must not be opaque so as not to hide underlying decorations." ), !0), qe = u("diffEditor.insertedTextBorder", { dark: null, light: null, hc: "#33ff2eff" }, a.N("diffEditorInsertedOutline", "Outline color for the text that got inserted.")), Ze = u("diffEditor.removedTextBorder", { dark: null, light: null, hc: "#FF008F" }, a.N("diffEditorRemovedOutline", "Outline color for text that got removed.")), Ge = u("diffEditor.border", { dark: null, light: null, hc: _ }, a.N("diffEditorBorder", "Border color between the two text editors.")), Ye = u("diffEditor.diagonalFill", { dark: "#cccccc33", light: "#22222233", hc: null }, a.N("diffDiagonalFill", "Color of the diff editor's diagonal fill. The diagonal fill is used in side-by-side diff views." )), Qe = u("list.focusBackground", { dark: null, light: null, hc: null }, a.N("listFocusBackground", "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." )), Xe = u("list.focusForeground", { dark: null, light: null, hc: null }, a.N("listFocusForeground", "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." )), Je = u("list.focusOutline", { dark: f, light: f, hc: b }, a.N("listFocusOutline", "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." )), et = u("list.activeSelectionBackground", { dark: "#094771", light: "#0060C0", hc: null }, a.N("listActiveSelectionBackground", "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." )), tt = u("list.activeSelectionForeground", { dark: o.Il.white, light: o.Il.white, hc: null }, a.N("listActiveSelectionForeground", "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." )), it = u("list.activeSelectionIconForeground", { dark: null, light: null, hc: null }, a.N("listActiveSelectionIconForeground", "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." )), nt = u("list.inactiveSelectionBackground", { dark: "#37373D", light: "#E4E6F1", hc: null }, a.N("listInactiveSelectionBackground", "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." )), ot = u("list.inactiveSelectionForeground", { dark: null, light: null, hc: null }, a.N("listInactiveSelectionForeground", "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." )), rt = u("list.inactiveSelectionIconForeground", { dark: null, light: null, hc: null }, a.N("listInactiveSelectionIconForeground", "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." )), st = u("list.inactiveFocusBackground", { dark: null, light: null, hc: null }, a.N("listInactiveFocusBackground", "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." )), at = u("list.inactiveFocusOutline", { dark: null, light: null, hc: null }, a.N("listInactiveFocusOutline", "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." )), lt = u("list.hoverBackground", { dark: "#2A2D2E", light: "#F0F0F0", hc: null }, a.N("listHoverBackground", "List/Tree background when hovering over items using the mouse.")), dt = u("list.hoverForeground", { dark: null, light: null, hc: null }, a.N("listHoverForeground", "List/Tree foreground when hovering over items using the mouse.")), ct = u("list.dropBackground", { dark: "#062F4A", light: "#D6EBFF", hc: null }, a.N("listDropBackground", "List/Tree drag and drop background when moving items around using the mouse." )), ht = u("list.highlightForeground", { dark: "#18A3FF", light: "#0066BF", hc: f }, a.N("highlight", "List/Tree foreground color of the match highlights when searching inside the list/tree." )), ut = u("list.focusHighlightForeground", { dark: ht, light: (gt = et, pt = ht, "#9DDDFF", { op: 5, if: gt, then: pt, else: "#9DDDFF" }), hc: ht }, a.N("listFocusHighlightForeground", "List/Tree foreground color of the match highlights on actively focused items when searching inside the list/tree." )); var gt, pt; const mt = u("listFilterWidget.background", { light: "#efc1ad", dark: "#653723", hc: o.Il.black }, a.N("listFilterWidgetBackground", "Background color of the type filter widget in lists and trees.")), ft = u("listFilterWidget.outline", { dark: o.Il.transparent, light: o.Il.transparent, hc: "#f38518" }, a.N("listFilterWidgetOutline", "Outline color of the type filter widget in lists and trees.")), _t = u("listFilterWidget.noMatchesOutline", { dark: "#BE1100", light: "#BE1100", hc: _ }, a.N("listFilterWidgetNoMatchesOutline", "Outline color of the type filter widget in lists and trees, when there are no matches." )), bt = u("tree.indentGuidesStroke", { dark: "#585858", light: "#a9a9a9", hc: "#a9a9a9" }, a.N("treeIndentGuidesStroke", "Tree stroke color for the indentation guides.")), vt = u("tree.tableColumnsBorder", { dark: "#CCCCCC20", light: "#61616120", hc: null }, a.N("treeIndentGuidesStroke", "Tree stroke color for the indentation guides.")), wt = u("quickInput.list.focusBackground", { dark: null, light: null, hc: null }, "", void 0, a.N("quickInput.list.focusBackground deprecation", "Please use quickInputList.focusBackground instead")), Ct = u("quickInputList.focusForeground", { dark: tt, light: tt, hc: tt }, a.N("quickInput.listFocusForeground", "Quick picker foreground color for the focused item.")), yt = u("quickInputList.focusIconForeground", { dark: it, light: it, hc: it }, a.N("quickInput.listFocusIconForeground", "Quick picker icon foreground color for the focused item.")), St = u("quickInputList.focusBackground", { dark: Xt(wt, et), light: Xt(wt, et), hc: null }, a.N("quickInput.listFocusBackground", "Quick picker background color for the focused item.")), xt = u("menu.border", { dark: null, light: null, hc: _ }, a.N("menuBorder", "Border color of menus.")), kt = u("menu.foreground", { dark: W, light: g, hc: W }, a.N("menuForeground", "Foreground color of menu items.")), Lt = u("menu.background", { dark: B, light: B, hc: B }, a.N("menuBackground", "Background color of menu items.")), Nt = u("menu.selectionForeground", { dark: tt, light: tt, hc: tt }, a.N("menuSelectionForeground", "Foreground color of the selected menu item in menus.")), Dt = u("menu.selectionBackground", { dark: et, light: et, hc: et }, a.N("menuSelectionBackground", "Background color of the selected menu item in menus.")), Et = u("menu.selectionBorder", { dark: null, light: null, hc: b }, a.N("menuSelectionBorder", "Border color of the selected menu item in menus.")), It = u("menu.separatorBackground", { dark: "#BBBBBB", light: "#888888", hc: _ }, a.N("menuSeparatorBackground", "Color of a separator menu item in menus.")), Tt = u("toolbar.hoverBackground", { dark: "#5a5d5e50", light: "#b8b8b850", hc: null }, a.N("toolbarHoverBackground", "Toolbar background when hovering over actions using the mouse")), Mt = u("editor.snippetTabstopHighlightBackground", { dark: new o.Il(new o.VS(124, 124, 124, .3)), light: new o.Il(new o.VS(10, 50, 100, .2)), hc: new o.Il(new o.VS(124, 124, 124, .3)) }, a.N("snippetTabstopHighlightBackground", "Highlight background color of a snippet tabstop.")), At = u("editor.snippetTabstopHighlightBorder", { dark: null, light: null, hc: null }, a.N("snippetTabstopHighlightBorder", "Highlight border color of a snippet tabstop.")), Rt = u("editor.snippetFinalTabstopHighlightBackground", { dark: null, light: null, hc: null }, a.N("snippetFinalTabstopHighlightBackground", "Highlight background color of the final tabstop of a snippet.")), Ot = u("editor.snippetFinalTabstopHighlightBorder", { dark: "#525252", light: new o.Il(new o.VS(10, 50, 100, .5)), hc: "#525252" }, a.N("snippetFinalTabstopHighlightBorder", "Highlight border color of the final tabstop of a snippet.")), Pt = u("editorOverviewRuler.findMatchForeground", { dark: "#d186167e", light: "#d186167e", hc: "#AB5A00" }, a.N("overviewRulerFindMatchForeground", "Overview ruler marker color for find matches. The color must not be opaque so as not to hide underlying decorations." ), !0), Ft = u("editorOverviewRuler.selectionHighlightForeground", { dark: "#A0A0A0CC", light: "#A0A0A0CC", hc: "#A0A0A0CC" }, a.N("overviewRulerSelectionHighlightForeground", "Overview ruler marker color for selection highlights. The color must not be opaque so as not to hide underlying decorations." ), !0), Bt = u("minimap.findMatchHighlight", { light: "#d18616", dark: "#d18616", hc: "#AB5A00" }, a.N("minimapFindMatchHighlight", "Minimap marker color for find matches."), !0), Wt = u("minimap.selectionHighlight", { light: "#ADD6FF", dark: "#264F78", hc: "#ffffff" }, a.N("minimapSelectionHighlight", "Minimap marker color for the editor selection."), !0), zt = u("minimap.errorHighlight", { dark: new o.Il(new o.VS(255, 18, 18, .7)), light: new o.Il(new o.VS(255, 18, 18, .7)), hc: new o.Il(new o.VS(255, 50, 50, 1)) }, a.N("minimapError", "Minimap marker color for errors.")), Vt = u("minimap.warningHighlight", { dark: ee, light: ee, hc: te }, a.N("overviewRuleWarning", "Minimap marker color for warnings.")), Ht = u("minimap.background", { dark: null, light: null, hc: null }, a.N("minimapBackground", "Minimap background color.")), Ut = u("minimapSlider.background", { light: Qt($, .5), dark: Qt($, .5), hc: Qt($, .5) }, a.N("minimapSliderBackground", "Minimap slider background color.")), jt = u("minimapSlider.hoverBackground", { light: Qt(q, .5), dark: Qt(q, .5), hc: Qt(q, .5) }, a.N("minimapSliderHoverBackground", "Minimap slider background color when hovering.")), Kt = u("minimapSlider.activeBackground", { light: Qt(Z, .5), dark: Qt(Z, .5), hc: Qt(Z, .5) }, a.N("minimapSliderActiveBackground", "Minimap slider background color when clicked on.")), $t = u("problemsErrorIcon.foreground", { dark: Q, light: Q, hc: Q }, a.N("problemsErrorIconForeground", "The color used for the problems error icon.")), qt = u("problemsWarningIcon.foreground", { dark: ee, light: ee, hc: ee }, a.N("problemsWarningIconForeground", "The color used for the problems warning icon.")), Zt = u("problemsInfoIcon.foreground", { dark: ne, light: ne, hc: ne }, a.N("problemsInfoIconForeground", "The color used for the problems info icon.")); function Gt(e, t) { return { op: 0, value: e, factor: t } } function Yt(e, t) { return { op: 1, value: e, factor: t } } function Qt(e, t) { return { op: 2, value: e, factor: t } } function Xt(...e) { return { op: 3, values: e } } function Jt(e, t, i, n) { return { op: 4, value: e, background: t, factor: i, transparency: n } } function ei(e, t) { if (null !== e) return "string" == typeof e ? "#" === e[0] ? o.Il.fromHex( e) : t.getColor(e) : e instanceof o.Il ? e : "object" == typeof e ? function(e, t) { var i, n, r; switch (e.op) { case 0: return null === (i = ei(e.value, t)) || void 0 === i ? void 0 : i.darken( e.factor); case 1: return null === (n = ei(e.value, t)) || void 0 === n ? void 0 : n.lighten( e.factor); case 2: return null === (r = ei(e.value, t)) || void 0 === r ? void 0 : r.transparent( e.factor); case 3: for (const i of e.values) { const e = ei(i, t); if (e) return e } return; case 5: return ei(t.defines(e.if) ? e.then : e.else, t); case 4: const a = ei(e.value, t); if (!a) return; const l = ei(e.background, t); return l ? a.isDarkerThan(l) ? o.Il.getLighterColor(a, l, e.factor) .transparent(e.transparency) : o.Il.getDarkerColor(a, l, e.factor) .transparent(e.transparency) : a.transparent(e.factor * e.transparency); default: throw (0, s.vE)(e) } }(e, t) : void 0 } const ti = "vscode://schemas/workbench-colors"; let ii = d.B.as(l.I.JSONContribution); ii.registerSchema(ti, h.getColorSchema()); const ni = new n.pY((() => ii.notifySchemaChanged(ti)), 200); h.onDidChangeSchema((() => { ni.isScheduled() || ni.schedule() })) }, 9554: (e, t, i) => { "use strict"; i.d(t, { q5: () => h, Ks: () => u, s_: () => f }); var n = i(5393), o = i(3046), r = i(4669), s = i(3580), a = i(1294), l = i(9872), d = i(7781); const c = new class { constructor() { this._onDidChange = new r.Q5, this.onDidChange = this._onDidChange.event, this.iconSchema = { definitions: { icons: { type: "object", properties: { fontId: { type: "string", description: (0, s.N)("iconDefintion.fontId", "The id of the font to use. If not set, the font that is defined first is used." ) }, fontCharacter: { type: "string", description: (0, s.N)("iconDefintion.fontCharacter", "The font character associated with the icon definition.") } }, additionalProperties: !1, defaultSnippets: [{ body: { fontCharacter: "\\\\e030" } }] } }, type: "object", properties: {} }, this.iconReferenceSchema = { type: "string", pattern: `^${o.dT.iconNameExpression}$`, enum: [], enumDescriptions: [] }, this.iconsById = {}, this.iconFontsById = {} } registerIcon(e, t, i, n) { const o = this.iconsById[e]; if (o) { if (i && !o.description) { o.description = i, this.iconSchema.properties[e].markdownDescription = `${i} $(${e})`; const t = this.iconReferenceSchema.enum.indexOf(e); - 1 !== t && ( this.iconReferenceSchema.enumDescriptions[t] = i), this._onDidChange .fire() } return o } let r = { id: e, description: i, defaults: t, deprecationMessage: n }; this.iconsById[e] = r; let s = { $ref: "#/definitions/icons" }; return n && (s.deprecationMessage = n), i && (s.markdownDescription = `${i}: $(${e})`), this.iconSchema.properties[e] = s, this.iconReferenceSchema .enum.push(e), this.iconReferenceSchema.enumDescriptions.push(i || ""), this._onDidChange.fire(), { id: e } } getIcons() { return Object.keys(this.iconsById).map((e => this.iconsById[e])) } getIcon(e) { return this.iconsById[e] } getIconSchema() { return this.iconSchema } getIconFont(e) { return this.iconFontsById[e] } toString() { const e = (e, t) => e.id.localeCompare(t.id), t = e => { for (; d.kS.isThemeIcon(e.defaults);) e = this.iconsById[e.defaults .id]; return `codicon codicon-${e?e.id:""}` }; let i = []; i.push( "| preview | identifier | default codicon ID | description" ), i.push( "| ----------- | --------------------------------- | --------------------------------- | --------------------------------- |" ); const n = Object.keys(this.iconsById).map((e => this.iconsById[e])); for (const o of n.filter((e => !!e.description)).sort(e)) i.push( `||${o.id}|${d.kS.isThemeIcon(o.defaults)?o.defaults.id:o.id}|${o.description||""}|` ); i.push("| preview | identifier "), i.push( "| ----------- | --------------------------------- |"); for (const o of n.filter((e => !d.kS.isThemeIcon(e.defaults))).sort(e)) i.push(`||${o.id}|`); return i.join("\n") } }; function h(e, t, i, n) { return c.registerIcon(e, t, i, n) } function u() { return c } l.B.add("base.contributions.icons", c), function() { for (const e of o.fK.all) c.registerIcon(e.id, e.definition, e.description); o.fK.onDidRegister((e => c.registerIcon(e.id, e.definition, e.description))) }(); const g = "vscode://schemas/icons"; let p = l.B.as(a.I.JSONContribution); p.registerSchema(g, c.getIconSchema()); const m = new n.pY((() => p.notifySchemaChanged(g)), 200); c.onDidChange((() => { m.isScheduled() || m.schedule() })); const f = h("widget-close", o.lA.close, (0, s.N)("widgetClose", "Icon for the close action in widgets.")) }, 8810: (e, t, i) => { "use strict"; i.d(t, { o: () => o, WZ: () => s, Jl: () => a, O2: () => l, tj: () => c }); var n = i(3910); function o(e, t) { const i = Object.create(null); for (let o in t) { const r = t[o]; r && (i[o] = (0, n.Sn)(r, e)) } return i } function r(e, t, i) { function n() { const n = o(e.getColorTheme(), t); "function" == typeof i ? i(n) : i.style(n) } return n(), e.onDidColorThemeChange(n) } function s(e, t, i) { return r(t, { badgeBackground: (null == i ? void 0 : i.badgeBackground) || n.g8, badgeForeground: (null == i ? void 0 : i.badgeForeground) || n.qe, badgeBorder: n.lR }, e) } function a(e, t, i) { return r(t, Object.assign(Object.assign({}, l), i || {}), e) } const l = { listFocusBackground: n._b, listFocusForeground: n._2, listFocusOutline: n.Oo, listActiveSelectionBackground: n.dC, listActiveSelectionForeground: n.M6, listActiveSelectionIconForeground: n.Tn, listFocusAndSelectionBackground: n.dC, listFocusAndSelectionForeground: n.M6, listInactiveSelectionBackground: n.rg, listInactiveSelectionIconForeground: n.kv, listInactiveSelectionForeground: n.yt, listInactiveFocusBackground: n.s$, listInactiveFocusOutline: n.F3, listHoverBackground: n.mV, listHoverForeground: n.$d, listDropBackground: n.AS, listSelectionOutline: n.xL, listHoverOutline: n.xL, listFilterWidgetBackground: n.vG, listFilterWidgetOutline: n.oS, listFilterWidgetNoMatchesOutline: n.S, listMatchesShadow: n.rh, treeIndentGuidesStroke: n.Un, tableColumnsBorder: n.ux }, d = { shadowColor: n.rh, borderColor: n.Cd, foregroundColor: n.DE, backgroundColor: n.Hz, selectionForegroundColor: n.jb, selectionBackgroundColor: n.$D, selectionBorderColor: n.E3, separatorColor: n.ZG }; function c(e, t, i) { return r(t, Object.assign(Object.assign({}, d), i), e) } }, 2321: (e, t, i) => { "use strict"; var n; i.d(t, { e: () => n }), function(e) { e.DARK = "dark", e.LIGHT = "light", e.HIGH_CONTRAST = "hc" }(n || (n = {})) }, 7781: (e, t, i) => { "use strict"; i.d(t, { XE: () => d, EN: () => u, kS: () => h, m6: () => g, IP: () => p, Ic: () => f, bB: () => _ }); var n = i(3046), o = i(4669), r = i(5976), s = i(2065), a = i(9872), l = i(2321); const d = (0, s.yh)("themeService"); var c, h; function u(e) { return { id: e } } function g(e) { switch (e) { case l.e.DARK: return "vs-dark"; case l.e.HIGH_CONTRAST: return "hc-black"; default: return "vs" } }! function(e) { e.isThemeColor = function(e) { return e && "object" == typeof e && "string" == typeof e.id } }(c || (c = {})), function(e) { e.isThemeIcon = function(e) { return e && "object" == typeof e && "string" == typeof e.id && (void 0 === e.color || c.isThemeColor(e.color)) }; const t = new RegExp( `^\\$\\((${n.dT.iconNameExpression}(?:${n.dT.iconModifierExpression})?)\\)$` ); e.fromString = function(e) { const i = t.exec(e); if (!i) return; let [, n] = i; return { id: n } }, e.modify = function(e, t) { let i = e.id; const n = i.lastIndexOf("~"); return -1 !== n && (i = i.substring(0, n)), t && (i = `${i}~${t}`), { id: i } }, e.isEqual = function(e, t) { var i, n; return e.id === t.id && (null === (i = e.color) || void 0 === i ? void 0 : i.id) === (null === (n = t.color) || void 0 === n ? void 0 : n.id) }, e.asThemeIcon = function(e, t) { return { id: e.id, color: t ? u(t) : void 0 } }, e.asClassNameArray = n.dT.asClassNameArray, e.asClassName = n.dT.asClassName, e.asCSSSelector = n.dT.asCSSSelector }(h || (h = {})); const p = { ThemingContribution: "base.contributions.theming" }; let m = new class { constructor() { this.themingParticipants = [], this.themingParticipants = [], this.onThemingParticipantAddedEmitter = new o.Q5 } onColorThemeChange(e) { return this.themingParticipants.push(e), this.onThemingParticipantAddedEmitter .fire(e), (0, r.OF)((() => { const t = this.themingParticipants.indexOf(e); this.themingParticipants.splice(t, 1) })) } getThemingParticipants() { return this.themingParticipants } }; function f(e) { return m.onColorThemeChange(e) } a.B.add(p.ThemingContribution, m); class _ extends r.JT { constructor(e) { super(), this.themeService = e, this.theme = e.getColorTheme(), this._register( this.themeService.onDidColorThemeChange((e => this.onThemeChange(e))) ) } onThemeChange(e) { this.theme = e, this.updateStyles() } updateStyles() {} } }, 4862: (e, t, i) => { "use strict"; i.d(t, { tJ: () => n, YO: () => o, Xt: () => r, gJ: () => s }); const n = (0, i(2065).yh)("undoRedoService"); class o { constructor(e, t) { this.resource = e, this.elements = t } } class r { constructor() { this.id = r._ID++, this.order = 1 } nextOrder() { return 0 === this.id ? 0 : this.order++ } } r._ID = 0, r.None = new r; class s { constructor() { this.id = s._ID++, this.order = 1 } nextOrder() { return 0 === this.id ? 0 : this.order++ } } s._ID = 0, s.None = new s }, 382: (e, t, i) => { "use strict"; i.d(t, { ec: () => n, md: () => o }), i(3702); const n = (0, i(2065).yh)("contextService"); class o { constructor(e, t) { this.raw = t, this.uri = e.uri, this.index = e.index, this.name = e.name } toJSON() { return { uri: this.uri, name: this.name, index: this.index } } } }, 7418: e => { "use strict"; var t = Object.getOwnPropertySymbols, i = Object.prototype.hasOwnProperty, n = Object.prototype.propertyIsEnumerable; function o(e) { if (null == e) throw new TypeError( "Object.assign cannot be called with null or undefined"); return Object(e) } e.exports = function() { try { if (!Object.assign) return !1; var e = new String("abc"); if (e[5] = "de", "5" === Object.getOwnPropertyNames(e)[0]) return !1; for (var t = {}, i = 0; i < 10; i++) t["_" + String.fromCharCode(i)] = i; if ("0123456789" !== Object.getOwnPropertyNames(t).map((function(e) { return t[e] })).join("")) return !1; var n = {}; return "abcdefghijklmnopqrst".split("").forEach((function(e) { n[e] = e })), "abcdefghijklmnopqrst" === Object.keys(Object.assign({}, n)).join( "") } catch (e) { return !1 } }() ? Object.assign : function(e, r) { for (var s, a, l = o(e), d = 1; d < arguments.length; d++) { for (var c in s = Object(arguments[d])) i.call(s, c) && (l[c] = s[c]); if (t) { a = t(s); for (var h = 0; h < a.length; h++) n.call(s, a[h]) && (l[a[h]] = s[a[ h]]) } } return l } }, 2703: (e, t, i) => { "use strict"; var n = i(414); function o() {} function r() {} r.resetWarningCache = o, e.exports = function() { function e(e, t, i, o, r, s) { if (s !== n) { var a = new Error( "Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types" ); throw a.name = "Invariant Violation", a } } function t() { return e } e.isRequired = e; var i = { array: e, bool: e, func: e, number: e, object: e, string: e, symbol: e, any: e, arrayOf: t, element: e, elementType: e, instanceOf: t, node: e, objectOf: t, oneOf: t, oneOfType: t, shape: t, exact: t, checkPropTypes: r, resetWarningCache: o }; return i.PropTypes = i, i } }, 5697: (e, t, i) => { e.exports = i(2703)() }, 414: e => { "use strict"; e.exports = "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED" }, 4448: (e, t, i) => { "use strict"; var n = i(7294), o = i(7418), r = i(3840); function s(e) { for (var t = "https://reactjs.org/docs/error-decoder.html?invariant=" + e, i = 1; i < arguments.length; i++) t += "&args[]=" + encodeURIComponent(arguments[i]); return "Minified React error #" + e + "; visit " + t + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings." } if (!n) throw Error(s(227)); var a = new Set, l = {}; function d(e, t) { c(e, t), c(e + "Capture", t) } function c(e, t) { for (l[e] = t, e = 0; e < t.length; e++) a.add(t[e]) } var h = !("undefined" == typeof window || void 0 === window.document || void 0 === window.document.createElement), u = /^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/, g = Object.prototype.hasOwnProperty, p = {}, m = {}; function f(e, t, i, n, o, r, s) { this.acceptsBooleans = 2 === t || 3 === t || 4 === t, this.attributeName = n, this.attributeNamespace = o, this.mustUseProperty = i, this.propertyName = e, this.type = t, this.sanitizeURL = r, this.removeEmptyString = s } var _ = {}; "children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style" .split(" ").forEach((function(e) { _[e] = new f(e, 0, !1, e, null, !1, !1) })), [ ["acceptCharset", "accept-charset"], ["className", "class"], ["htmlFor", "for"], ["httpEquiv", "http-equiv"] ].forEach((function(e) { var t = e[0]; _[t] = new f(t, 1, !1, e[1], null, !1, !1) })), ["contentEditable", "draggable", "spellCheck", "value"].forEach(( function(e) { _[e] = new f(e, 2, !1, e.toLowerCase(), null, !1, !1) })), ["autoReverse", "externalResourcesRequired", "focusable", "preserveAlpha" ].forEach((function(e) { _[e] = new f(e, 2, !1, e, null, !1, !1) })), "allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope" .split(" ").forEach((function(e) { _[e] = new f(e, 3, !1, e.toLowerCase(), null, !1, !1) })), ["checked", "multiple", "muted", "selected"].forEach((function(e) { _[e] = new f(e, 3, !0, e, null, !1, !1) })), ["capture", "download"].forEach((function(e) { _[e] = new f(e, 4, !1, e, null, !1, !1) })), ["cols", "rows", "size", "span"].forEach((function(e) { _[e] = new f(e, 6, !1, e, null, !1, !1) })), ["rowSpan", "start"].forEach((function(e) { _[e] = new f(e, 5, !1, e.toLowerCase(), null, !1, !1) })); var b = /[\-:]([a-z])/g; function v(e) { return e[1].toUpperCase() } function w(e, t, i, n) { var o = _.hasOwnProperty(t) ? _[t] : null; (null !== o ? 0 === o.type : !n && 2 < t.length && ("o" === t[0] || "O" === t[0]) && ("n" === t[1] || "N" === t[1])) || (function(e, t, i, n) { if (null == t || function(e, t, i, n) { if (null !== i && 0 === i.type) return !1; switch (typeof t) { case "function": case "symbol": return !0; case "boolean": return !n && (null !== i ? !i.acceptsBooleans : "data-" !== (e = e .toLowerCase().slice(0, 5)) && "aria-" !== e); default: return !1 } }(e, t, i, n)) return !0; if (n) return !1; if (null !== i) switch (i.type) { case 3: return !t; case 4: return !1 === t; case 5: return isNaN(t); case 6: return isNaN(t) || 1 > t } return !1 }(t, i, o, n) && (i = null), n || null === o ? function(e) { return !!g.call(m, e) || !g.call(p, e) && (u.test(e) ? m[e] = !0 : (p[ e] = !0, !1)) }(t) && (null === i ? e.removeAttribute(t) : e.setAttribute(t, "" + i)) : o.mustUseProperty ? e[o.propertyName] = null === i ? 3 !== o.type && "" : i : (t = o.attributeName, n = o.attributeNamespace, null === i ? e.removeAttribute( t) : (i = 3 === (o = o.type) || 4 === o && !0 === i ? "" : "" + i, n ? e.setAttributeNS(n, t, i) : e.setAttribute(t, i)))) } "accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height" .split(" ").forEach((function(e) { var t = e.replace(b, v); _[t] = new f(t, 1, !1, e, null, !1, !1) })), "xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type" .split(" ").forEach((function(e) { var t = e.replace(b, v); _[t] = new f(t, 1, !1, e, "http://www.w3.org/1999/xlink", !1, !1) })), ["xml:base", "xml:lang", "xml:space"].forEach((function(e) { var t = e.replace(b, v); _[t] = new f(t, 1, !1, e, "http://www.w3.org/XML/1998/namespace", !1, ! 1) })), ["tabIndex", "crossOrigin"].forEach((function(e) { _[e] = new f(e, 1, !1, e.toLowerCase(), null, !1, !1) })), _.xlinkHref = new f("xlinkHref", 1, !1, "xlink:href", "http://www.w3.org/1999/xlink", !0, !1), ["src", "href", "action", "formAction" ].forEach((function(e) { _[e] = new f(e, 1, !1, e.toLowerCase(), null, !0, !0) })); var C = n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, y = 60103, S = 60106, x = 60107, k = 60108, L = 60114, N = 60109, D = 60110, E = 60112, I = 60113, T = 60120, M = 60115, A = 60116, R = 60121, O = 60128, P = 60129, F = 60130, B = 60131; if ("function" == typeof Symbol && Symbol.for) { var W = Symbol.for; y = W("react.element"), S = W("react.portal"), x = W("react.fragment"), k = W("react.strict_mode"), L = W("react.profiler"), N = W( "react.provider"), D = W("react.context"), E = W("react.forward_ref"), I = W("react.suspense"), T = W("react.suspense_list"), M = W( "react.memo"), A = W("react.lazy"), R = W("react.block"), W( "react.scope"), O = W("react.opaque.id"), P = W( "react.debug_trace_mode"), F = W("react.offscreen"), B = W( "react.legacy_hidden") } var z, V = "function" == typeof Symbol && Symbol.iterator; function H(e) { return null === e || "object" != typeof e ? null : "function" == typeof( e = V && e[V] || e["@@iterator"]) ? e : null } function U(e) { if (void 0 === z) try { throw Error() } catch (e) { var t = e.stack.trim().match(/\n( *(at )?)/); z = t && t[1] || "" } return "\n" + z + e } var j = !1; function K(e, t) { if (!e || j) return ""; j = !0; var i = Error.prepareStackTrace; Error.prepareStackTrace = void 0; try { if (t) if (t = function() { throw Error() }, Object.defineProperty(t.prototype, "props", { set: function() { throw Error() } }), "object" == typeof Reflect && Reflect.construct) { try { Reflect.construct(t, []) } catch (e) { var n = e } Reflect.construct(e, [], t) } else { try { t.call() } catch (e) { n = e } e.call(t.prototype) } else { try { throw Error() } catch (e) { n = e } e() } } catch (e) { if (e && n && "string" == typeof e.stack) { for (var o = e.stack.split("\n"), r = n.stack.split("\n"), s = o.length - 1, a = r.length - 1; 1 <= s && 0 <= a && o[s] !== r[a];) a--; for (; 1 <= s && 0 <= a; s--, a--) if (o[s] !== r[a]) { if (1 !== s || 1 !== a) do { if (s--, 0 > --a || o[s] !== r[a]) return "\n" + o[s].replace( " at new ", " at ") } while (1 <= s && 0 <= a); break } } } finally { j = !1, Error.prepareStackTrace = i } return (e = e ? e.displayName || e.name : "") ? U(e) : "" } function $(e) { switch (e.tag) { case 5: return U(e.type); case 16: return U("Lazy"); case 13: return U("Suspense"); case 19: return U("SuspenseList"); case 0: case 2: case 15: return K(e.type, !1); case 11: return K(e.type.render, !1); case 22: return K(e.type._render, !1); case 1: return K(e.type, !0); default: return "" } } function q(e) { if (null == e) return null; if ("function" == typeof e) return e.displayName || e.name || null; if ("string" == typeof e) return e; switch (e) { case x: return "Fragment"; case S: return "Portal"; case L: return "Profiler"; case k: return "StrictMode"; case I: return "Suspense"; case T: return "SuspenseList" } if ("object" == typeof e) switch (e.$$typeof) { case D: return (e.displayName || "Context") + ".Consumer"; case N: return (e._context.displayName || "Context") + ".Provider"; case E: var t = e.render; return t = t.displayName || t.name || "", e.displayName || ("" !== t ? "ForwardRef(" + t + ")" : "ForwardRef"); case M: return q(e.type); case R: return q(e._render); case A: t = e._payload, e = e._init; try { return q(e(t)) } catch (e) {} } return null } function Z(e) { switch (typeof e) { case "boolean": case "number": case "object": case "string": case "undefined": return e; default: return "" } } function G(e) { var t = e.type; return (e = e.nodeName) && "input" === e.toLowerCase() && ("checkbox" === t || "radio" === t) } function Y(e) { e._valueTracker || (e._valueTracker = function(e) { var t = G(e) ? "checked" : "value", i = Object.getOwnPropertyDescriptor(e.constructor.prototype, t), n = "" + e[t]; if (!e.hasOwnProperty(t) && void 0 !== i && "function" == typeof i.get && "function" == typeof i.set) { var o = i.get, r = i.set; return Object.defineProperty(e, t, { configurable: !0, get: function() { return o.call(this) }, set: function(e) { n = "" + e, r.call(this, e) } }), Object.defineProperty(e, t, { enumerable: i.enumerable }), { getValue: function() { return n }, setValue: function(e) { n = "" + e }, stopTracking: function() { e._valueTracker = null, delete e[t] } } } }(e)) } function Q(e) { if (!e) return !1; var t = e._valueTracker; if (!t) return !0; var i = t.getValue(), n = ""; return e && (n = G(e) ? e.checked ? "true" : "false" : e.value), (e = n) !== i && (t.setValue(e), !0) } function X(e) { if (void 0 === (e = e || ("undefined" != typeof document ? document : void 0))) return null; try { return e.activeElement || e.body } catch (t) { return e.body } } function J(e, t) { var i = t.checked; return o({}, t, { defaultChecked: void 0, defaultValue: void 0, value: void 0, checked: null != i ? i : e._wrapperState.initialChecked }) } function ee(e, t) { var i = null == t.defaultValue ? "" : t.defaultValue, n = null != t.checked ? t.checked : t.defaultChecked; i = Z(null != t.value ? t.value : i), e._wrapperState = { initialChecked: n, initialValue: i, controlled: "checkbox" === t.type || "radio" === t.type ? null != t.checked : null != t.value } } function te(e, t) { null != (t = t.checked) && w(e, "checked", t, !1) } function ie(e, t) { te(e, t); var i = Z(t.value), n = t.type; if (null != i) "number" === n ? (0 === i && "" === e.value || e.value != i) && (e.value = "" + i) : e.value !== "" + i && (e.value = "" + i); else if ("submit" === n || "reset" === n) return void e.removeAttribute( "value"); t.hasOwnProperty("value") ? oe(e, t.type, i) : t.hasOwnProperty( "defaultValue") && oe(e, t.type, Z(t.defaultValue)), null == t.checked && null != t.defaultChecked && (e.defaultChecked = !!t.defaultChecked) } function ne(e, t, i) { if (t.hasOwnProperty("value") || t.hasOwnProperty("defaultValue")) { var n = t.type; if (!("submit" !== n && "reset" !== n || void 0 !== t.value && null !== t.value)) return; t = "" + e._wrapperState.initialValue, i || t === e.value || (e.value = t), e.defaultValue = t } "" !== (i = e.name) && (e.name = ""), e.defaultChecked = !!e._wrapperState .initialChecked, "" !== i && (e.name = i) } function oe(e, t, i) { "number" === t && X(e.ownerDocument) === e || (null == i ? e.defaultValue = "" + e._wrapperState.initialValue : e.defaultValue !== "" + i && (e.defaultValue = "" + i)) } function re(e, t) { return e = o({ children: void 0 }, t), (t = function(e) { var t = ""; return n.Children.forEach(e, (function(e) { null != e && (t += e) })), t }(t.children)) && (e.children = t), e } function se(e, t, i, n) { if (e = e.options, t) { t = {}; for (var o = 0; o < i.length; o++) t["$" + i[o]] = !0; for (i = 0; i < e.length; i++) o = t.hasOwnProperty("$" + e[i].value), e[i].selected !== o && (e[i].selected = o), o && n && (e[i].defaultSelected = ! 0) } else { for (i = "" + Z(i), t = null, o = 0; o < e.length; o++) { if (e[o].value === i) return e[o].selected = !0, void(n && (e[o].defaultSelected = ! 0)); null !== t || e[o].disabled || (t = e[o]) } null !== t && (t.selected = !0) } } function ae(e, t) { if (null != t.dangerouslySetInnerHTML) throw Error(s(91)); return o({}, t, { value: void 0, defaultValue: void 0, children: "" + e._wrapperState.initialValue }) } function le(e, t) { var i = t.value; if (null == i) { if (i = t.children, t = t.defaultValue, null != i) { if (null != t) throw Error(s(92)); if (Array.isArray(i)) { if (!(1 >= i.length)) throw Error(s(93)); i = i[0] } t = i } null == t && (t = ""), i = t } e._wrapperState = { initialValue: Z(i) } } function de(e, t) { var i = Z(t.value), n = Z(t.defaultValue); null != i && ((i = "" + i) !== e.value && (e.value = i), null == t.defaultValue && e.defaultValue !== i && (e.defaultValue = i)), null != n && (e.defaultValue = "" + n) } function ce(e) { var t = e.textContent; t === e._wrapperState.initialValue && "" !== t && null !== t && (e.value = t) } var he = "http://www.w3.org/1999/xhtml"; function ue(e) { switch (e) { case "svg": return "http://www.w3.org/2000/svg"; case "math": return "http://www.w3.org/1998/Math/MathML"; default: return "http://www.w3.org/1999/xhtml" } } function ge(e, t) { return null == e || "http://www.w3.org/1999/xhtml" === e ? ue(t) : "http://www.w3.org/2000/svg" === e && "foreignObject" === t ? "http://www.w3.org/1999/xhtml" : e } var pe, me, fe = (me = function(e, t) { if ("http://www.w3.org/2000/svg" !== e.namespaceURI || "innerHTML" in e) e.innerHTML = t; else { for ((pe = pe || document.createElement("div")).innerHTML = "" + t.valueOf().toString() + "", t = pe.firstChild; e.firstChild;) e.removeChild(e.firstChild); for (; t.firstChild;) e.appendChild(t.firstChild) } }, "undefined" != typeof MSApp && MSApp.execUnsafeLocalFunction ? function(e, t, i, n) { MSApp.execUnsafeLocalFunction((function() { return me(e, t) })) } : me); function _e(e, t) { if (t) { var i = e.firstChild; if (i && i === e.lastChild && 3 === i.nodeType) return void(i.nodeValue = t) } e.textContent = t } var be = { animationIterationCount: !0, borderImageOutset: !0, borderImageSlice: !0, borderImageWidth: !0, boxFlex: !0, boxFlexGroup: !0, boxOrdinalGroup: !0, columnCount: !0, columns: !0, flex: !0, flexGrow: !0, flexPositive: !0, flexShrink: !0, flexNegative: !0, flexOrder: !0, gridArea: !0, gridRow: !0, gridRowEnd: !0, gridRowSpan: !0, gridRowStart: !0, gridColumn: !0, gridColumnEnd: !0, gridColumnSpan: !0, gridColumnStart: !0, fontWeight: !0, lineClamp: !0, lineHeight: !0, opacity: !0, order: !0, orphans: !0, tabSize: !0, widows: !0, zIndex: !0, zoom: !0, fillOpacity: !0, floodOpacity: !0, stopOpacity: !0, strokeDasharray: !0, strokeDashoffset: !0, strokeMiterlimit: !0, strokeOpacity: !0, strokeWidth: !0 }, ve = ["Webkit", "ms", "Moz", "O"]; function we(e, t, i) { return null == t || "boolean" == typeof t || "" === t ? "" : i || "number" != typeof t || 0 === t || be.hasOwnProperty(e) && be[e] ? ("" + t).trim() : t + "px" } function Ce(e, t) { for (var i in e = e.style, t) if (t.hasOwnProperty(i)) { var n = 0 === i.indexOf("--"), o = we(i, t[i], n); "float" === i && (i = "cssFloat"), n ? e.setProperty(i, o) : e[i] = o } } Object.keys(be).forEach((function(e) { ve.forEach((function(t) { t = t + e.charAt(0).toUpperCase() + e.substring(1), be[t] = be[e] })) })); var ye = o({ menuitem: !0 }, { area: !0, base: !0, br: !0, col: !0, embed: !0, hr: !0, img: !0, input: !0, keygen: !0, link: !0, meta: !0, param: !0, source: !0, track: !0, wbr: !0 }); function Se(e, t) { if (t) { if (ye[e] && (null != t.children || null != t.dangerouslySetInnerHTML)) throw Error(s(137, e)); if (null != t.dangerouslySetInnerHTML) { if (null != t.children) throw Error(s(60)); if ("object" != typeof t.dangerouslySetInnerHTML || !("__html" in t.dangerouslySetInnerHTML)) throw Error(s(61)) } if (null != t.style && "object" != typeof t.style) throw Error(s(62)) } } function xe(e, t) { if (-1 === e.indexOf("-")) return "string" == typeof t.is; switch (e) { case "annotation-xml": case "color-profile": case "font-face": case "font-face-src": case "font-face-uri": case "font-face-format": case "font-face-name": case "missing-glyph": return !1; default: return !0 } } function ke(e) { return (e = e.target || e.srcElement || window).correspondingUseElement && (e = e.correspondingUseElement), 3 === e.nodeType ? e.parentNode : e } var Le = null, Ne = null, De = null; function Ee(e) { if (e = io(e)) { if ("function" != typeof Le) throw Error(s(280)); var t = e.stateNode; t && (t = oo(t), Le(e.stateNode, e.type, t)) } } function Ie(e) { Ne ? De ? De.push(e) : De = [e] : Ne = e } function Te() { if (Ne) { var e = Ne, t = De; if (De = Ne = null, Ee(e), t) for (e = 0; e < t.length; e++) Ee(t[e]) } } function Me(e, t) { return e(t) } function Ae(e, t, i, n, o) { return e(t, i, n, o) } function Re() {} var Oe = Me, Pe = !1, Fe = !1; function Be() { null === Ne && null === De || (Re(), Te()) } function We(e, t) { var i = e.stateNode; if (null === i) return null; var n = oo(i); if (null === n) return null; i = n[t]; e: switch (t) { case "onClick": case "onClickCapture": case "onDoubleClick": case "onDoubleClickCapture": case "onMouseDown": case "onMouseDownCapture": case "onMouseMove": case "onMouseMoveCapture": case "onMouseUp": case "onMouseUpCapture": case "onMouseEnter": (n = !n.disabled) || (n = !("button" === (e = e.type) || "input" === e || "select" === e || "textarea" === e)), e = !n; break e; default: e = !1 } if (e) return null; if (i && "function" != typeof i) throw Error(s(231, t, typeof i)); return i } var ze = !1; if (h) try { var Ve = {}; Object.defineProperty(Ve, "passive", { get: function() { ze = !0 } }), window.addEventListener("test", Ve, Ve), window.removeEventListener( "test", Ve, Ve) } catch (me) { ze = !1 } function He(e, t, i, n, o, r, s, a, l) { var d = Array.prototype.slice.call(arguments, 3); try { t.apply(i, d) } catch (e) { this.onError(e) } } var Ue = !1, je = null, Ke = !1, $e = null, qe = { onError: function(e) { Ue = !0, je = e } }; function Ze(e, t, i, n, o, r, s, a, l) { Ue = !1, je = null, He.apply(qe, arguments) } function Ge(e) { var t = e, i = e; if (e.alternate) for (; t.return;) t = t.return; else { e = t; do { 0 != (1026 & (t = e).flags) && (i = t.return), e = t.return } while (e) } return 3 === t.tag ? i : null } function Ye(e) { if (13 === e.tag) { var t = e.memoizedState; if (null === t && null !== (e = e.alternate) && (t = e.memoizedState), null !== t) return t.dehydrated } return null } function Qe(e) { if (Ge(e) !== e) throw Error(s(188)) } function Xe(e) { if (e = function(e) { var t = e.alternate; if (!t) { if (null === (t = Ge(e))) throw Error(s(188)); return t !== e ? null : e } for (var i = e, n = t;;) { var o = i.return; if (null === o) break; var r = o.alternate; if (null === r) { if (null !== (n = o.return)) { i = n; continue } break } if (o.child === r.child) { for (r = o.child; r;) { if (r === i) return Qe(o), e; if (r === n) return Qe(o), t; r = r.sibling } throw Error(s(188)) } if (i.return !== n.return) i = o, n = r; else { for (var a = !1, l = o.child; l;) { if (l === i) { a = !0, i = o, n = r; break } if (l === n) { a = !0, n = o, i = r; break } l = l.sibling } if (!a) { for (l = r.child; l;) { if (l === i) { a = !0, i = r, n = o; break } if (l === n) { a = !0, n = r, i = o; break } l = l.sibling } if (!a) throw Error(s(189)) } } if (i.alternate !== n) throw Error(s(190)) } if (3 !== i.tag) throw Error(s(188)); return i.stateNode.current === i ? e : t }(e), !e) return null; for (var t = e;;) { if (5 === t.tag || 6 === t.tag) return t; if (t.child) t.child.return = t, t = t.child; else { if (t === e) break; for (; !t.sibling;) { if (!t.return || t.return === e) return null; t = t.return } t.sibling.return = t.return, t = t.sibling } } return null } function Je(e, t) { for (var i = e.alternate; null !== t;) { if (t === e || t === i) return !0; t = t.return } return !1 } var et, tt, it, nt, ot = !1, rt = [], st = null, at = null, lt = null, dt = new Map, ct = new Map, ht = [], ut = "mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit" .split(" "); function gt(e, t, i, n, o) { return { blockedOn: e, domEventName: t, eventSystemFlags: 16 | i, nativeEvent: o, targetContainers: [n] } } function pt(e, t) { switch (e) { case "focusin": case "focusout": st = null; break; case "dragenter": case "dragleave": at = null; break; case "mouseover": case "mouseout": lt = null; break; case "pointerover": case "pointerout": dt.delete(t.pointerId); break; case "gotpointercapture": case "lostpointercapture": ct.delete(t.pointerId) } } function mt(e, t, i, n, o, r) { return null === e || e.nativeEvent !== r ? (e = gt(t, i, n, o, r), null !== t && null !== (t = io(t)) && tt(t), e) : (e.eventSystemFlags |= n, t = e.targetContainers, null !== o && -1 === t.indexOf(o) && t.push(o), e) } function ft(e) { var t = to(e.target); if (null !== t) { var i = Ge(t); if (null !== i) if (13 === (t = i.tag)) { if (null !== (t = Ye(i))) return e.blockedOn = t, void nt(e.lanePriority, ( function() { r.unstable_runWithPriority(e.priority, (function() { it(i) })) })) } else if (3 === t && i.stateNode.hydrate) return void(e.blockedOn = 3 === i.tag ? i.stateNode.containerInfo : null) } e.blockedOn = null } function _t(e) { if (null !== e.blockedOn) return !1; for (var t = e.targetContainers; 0 < t.length;) { var i = Xt(e.domEventName, e.eventSystemFlags, t[0], e.nativeEvent); if (null !== i) return null !== (t = io(i)) && tt(t), e.blockedOn = i, ! 1; t.shift() } return !0 } function bt(e, t, i) { _t(e) && i.delete(t) } function vt() { for (ot = !1; 0 < rt.length;) { var e = rt[0]; if (null !== e.blockedOn) { null !== (e = io(e.blockedOn)) && et(e); break } for (var t = e.targetContainers; 0 < t.length;) { var i = Xt(e.domEventName, e.eventSystemFlags, t[0], e.nativeEvent); if (null !== i) { e.blockedOn = i; break } t.shift() } null === e.blockedOn && rt.shift() } null !== st && _t(st) && (st = null), null !== at && _t(at) && (at = null), null !== lt && _t(lt) && (lt = null), dt.forEach(bt), ct.forEach( bt) } function wt(e, t) { e.blockedOn === t && (e.blockedOn = null, ot || (ot = !0, r.unstable_scheduleCallback( r.unstable_NormalPriority, vt))) } function Ct(e) { function t(t) { return wt(t, e) } if (0 < rt.length) { wt(rt[0], e); for (var i = 1; i < rt.length; i++) { var n = rt[i]; n.blockedOn === e && (n.blockedOn = null) } } for (null !== st && wt(st, e), null !== at && wt(at, e), null !== lt && wt(lt, e), dt.forEach(t), ct.forEach(t), i = 0; i < ht.length; i++)(n = ht[i]).blockedOn === e && (n.blockedOn = null); for (; 0 < ht.length && null === (i = ht[0]).blockedOn;) ft(i), null === i.blockedOn && ht.shift() } function yt(e, t) { var i = {}; return i[e.toLowerCase()] = t.toLowerCase(), i["Webkit" + e] = "webkit" + t, i["Moz" + e] = "moz" + t, i } var St = { animationend: yt("Animation", "AnimationEnd"), animationiteration: yt("Animation", "AnimationIteration"), animationstart: yt("Animation", "AnimationStart"), transitionend: yt("Transition", "TransitionEnd") }, xt = {}, kt = {}; function Lt(e) { if (xt[e]) return xt[e]; if (!St[e]) return e; var t, i = St[e]; for (t in i) if (i.hasOwnProperty(t) && t in kt) return xt[e] = i[t]; return e } h && (kt = document.createElement("div").style, "AnimationEvent" in window || (delete St.animationend.animation, delete St.animationiteration .animation, delete St.animationstart.animation), "TransitionEvent" in window || delete St.transitionend.transition); var Nt = Lt("animationend"), Dt = Lt("animationiteration"), Et = Lt("animationstart"), It = Lt("transitionend"), Tt = new Map, Mt = new Map, At = ["abort", "abort", Nt, "animationEnd", Dt, "animationIteration", Et, "animationStart", "canplay", "canPlay", "canplaythrough", "canPlayThrough", "durationchange", "durationChange", "emptied", "emptied", "encrypted", "encrypted", "ended", "ended", "error", "error", "gotpointercapture", "gotPointerCapture", "load", "load", "loadeddata", "loadedData", "loadedmetadata", "loadedMetadata", "loadstart", "loadStart", "lostpointercapture", "lostPointerCapture", "playing", "playing", "progress", "progress", "seeking", "seeking", "stalled", "stalled", "suspend", "suspend", "timeupdate", "timeUpdate", It, "transitionEnd", "waiting", "waiting" ]; function Rt(e, t) { for (var i = 0; i < e.length; i += 2) { var n = e[i], o = e[i + 1]; o = "on" + (o[0].toUpperCase() + o.slice(1)), Mt.set(n, t), Tt.set(n, o), d(o, [n]) } }(0, r.unstable_now)(); var Ot = 8; function Pt(e) { if (0 != (1 & e)) return Ot = 15, 1; if (0 != (2 & e)) return Ot = 14, 2; if (0 != (4 & e)) return Ot = 13, 4; var t = 24 & e; return 0 !== t ? (Ot = 12, t) : 0 != (32 & e) ? (Ot = 11, 32) : 0 != (t = 192 & e) ? (Ot = 10, t) : 0 != (256 & e) ? (Ot = 9, 256) : 0 != (t = 3584 & e) ? (Ot = 8, t) : 0 != (4096 & e) ? (Ot = 7, 4096) : 0 != (t = 4186112 & e) ? (Ot = 6, t) : 0 != (t = 62914560 & e) ? (Ot = 5, t) : 67108864 & e ? (Ot = 4, 67108864) : 0 != (134217728 & e) ? (Ot = 3, 134217728) : 0 != (t = 805306368 & e) ? (Ot = 2, t) : 0 != (1073741824 & e) ? (Ot = 1, 1073741824) : (Ot = 8, e) } function Ft(e, t) { var i = e.pendingLanes; if (0 === i) return Ot = 0; var n = 0, o = 0, r = e.expiredLanes, s = e.suspendedLanes, a = e.pingedLanes; if (0 !== r) n = r, o = Ot = 15; else if (0 != (r = 134217727 & i)) { var l = r & ~s; 0 !== l ? (n = Pt(l), o = Ot) : 0 != (a &= r) && (n = Pt(a), o = Ot) } else 0 != (r = i & ~s) ? (n = Pt(r), o = Ot) : 0 !== a && (n = Pt(a), o = Ot); if (0 === n) return 0; if (n = i & ((0 > (n = 31 - Ut(n)) ? 0 : 1 << n) << 1) - 1, 0 !== t && t !== n && 0 == (t & s)) { if (Pt(t), o <= Ot) return t; Ot = o } if (0 !== (t = e.entangledLanes)) for (e = e.entanglements, t &= n; 0 < t;) o = 1 << (i = 31 - Ut(t)), n |= e[i], t &= ~o; return n } function Bt(e) { return 0 != (e = -1073741825 & e.pendingLanes) ? e : 1073741824 & e ? 1073741824 : 0 } function Wt(e, t) { switch (e) { case 15: return 1; case 14: return 2; case 12: return 0 === (e = zt(24 & ~t)) ? Wt(10, t) : e; case 10: return 0 === (e = zt(192 & ~t)) ? Wt(8, t) : e; case 8: return 0 === (e = zt(3584 & ~t)) && 0 === (e = zt(4186112 & ~t)) && (e = 512), e; case 2: return 0 === (t = zt(805306368 & ~t)) && (t = 268435456), t } throw Error(s(358, e)) } function zt(e) { return e & -e } function Vt(e) { for (var t = [], i = 0; 31 > i; i++) t.push(e); return t } function Ht(e, t, i) { e.pendingLanes |= t; var n = t - 1; e.suspendedLanes &= n, e.pingedLanes &= n, (e = e.eventTimes)[t = 31 - Ut(t)] = i } var Ut = Math.clz32 ? Math.clz32 : function(e) { return 0 === e ? 32 : 31 - (jt(e) / Kt | 0) | 0 }, jt = Math.log, Kt = Math.LN2, $t = r.unstable_UserBlockingPriority, qt = r.unstable_runWithPriority, Zt = !0; function Gt(e, t, i, n) { Pe || Re(); var o = Qt, r = Pe; Pe = !0; try { Ae(o, e, t, i, n) } finally { (Pe = r) || Be() } } function Yt(e, t, i, n) { qt($t, Qt.bind(null, e, t, i, n)) } function Qt(e, t, i, n) { var o; if (Zt) if ((o = 0 == (4 & t)) && 0 < rt.length && -1 < ut.indexOf(e)) e = gt( null, e, t, i, n), rt.push(e); else { var r = Xt(e, t, i, n); if (null === r) o && pt(e, n); else { if (o) { if (-1 < ut.indexOf(e)) return e = gt(r, e, t, i, n), void rt.push(e); if (function(e, t, i, n, o) { switch (t) { case "focusin": return st = mt(st, e, t, i, n, o), !0; case "dragenter": return at = mt(at, e, t, i, n, o), !0; case "mouseover": return lt = mt(lt, e, t, i, n, o), !0; case "pointerover": var r = o.pointerId; return dt.set(r, mt(dt.get(r) || null, e, t, i, n, o)), !0; case "gotpointercapture": return r = o.pointerId, ct.set(r, mt(ct.get(r) || null, e, t, i, n, o)), !0 } return !1 }(r, e, t, i, n)) return; pt(e, n) } Rn(e, t, n, null, i) } } } function Xt(e, t, i, n) { var o = ke(n); if (null !== (o = to(o))) { var r = Ge(o); if (null === r) o = null; else { var s = r.tag; if (13 === s) { if (null !== (o = Ye(r))) return o; o = null } else if (3 === s) { if (r.stateNode.hydrate) return 3 === r.tag ? r.stateNode.containerInfo : null; o = null } else r !== o && (o = null) } } return Rn(e, t, n, o, i), null } var Jt = null, ei = null, ti = null; function ii() { if (ti) return ti; var e, t, i = ei, n = i.length, o = "value" in Jt ? Jt.value : Jt.textContent, r = o.length; for (e = 0; e < n && i[e] === o[e]; e++); var s = n - e; for (t = 1; t <= s && i[n - t] === o[r - t]; t++); return ti = o.slice(e, 1 < t ? 1 - t : void 0) } function ni(e) { var t = e.keyCode; return "charCode" in e ? 0 === (e = e.charCode) && 13 === t && (e = 13) : e = t, 10 === e && (e = 13), 32 <= e || 13 === e ? e : 0 } function oi() { return !0 } function ri() { return !1 } function si(e) { function t(t, i, n, o, r) { for (var s in this._reactName = t, this._targetInst = n, this.type = i, this.nativeEvent = o, this.target = r, this.currentTarget = null, e) e .hasOwnProperty(s) && (t = e[s], this[s] = t ? t(o) : o[s]); return this.isDefaultPrevented = (null != o.defaultPrevented ? o.defaultPrevented : !1 === o.returnValue) ? oi : ri, this.isPropagationStopped = ri, this } return o(t.prototype, { preventDefault: function() { this.defaultPrevented = !0; var e = this.nativeEvent; e && (e.preventDefault ? e.preventDefault() : "unknown" != typeof e .returnValue && (e.returnValue = !1), this.isDefaultPrevented = oi) }, stopPropagation: function() { var e = this.nativeEvent; e && (e.stopPropagation ? e.stopPropagation() : "unknown" != typeof e .cancelBubble && (e.cancelBubble = !0), this.isPropagationStopped = oi) }, persist: function() {}, isPersistent: oi }), t } var ai, li, di, ci = { eventPhase: 0, bubbles: 0, cancelable: 0, timeStamp: function(e) { return e.timeStamp || Date.now() }, defaultPrevented: 0, isTrusted: 0 }, hi = si(ci), ui = o({}, ci, { view: 0, detail: 0 }), gi = si(ui), pi = o({}, ui, { screenX: 0, screenY: 0, clientX: 0, clientY: 0, pageX: 0, pageY: 0, ctrlKey: 0, shiftKey: 0, altKey: 0, metaKey: 0, getModifierState: Li, button: 0, buttons: 0, relatedTarget: function(e) { return void 0 === e.relatedTarget ? e.fromElement === e.srcElement ? e.toElement : e.fromElement : e.relatedTarget }, movementX: function(e) { return "movementX" in e ? e.movementX : (e !== di && (di && "mousemove" === e.type ? (ai = e.screenX - di.screenX, li = e.screenY - di.screenY) : li = ai = 0, di = e), ai) }, movementY: function(e) { return "movementY" in e ? e.movementY : li } }), mi = si(pi), fi = si(o({}, pi, { dataTransfer: 0 })), _i = si(o({}, ui, { relatedTarget: 0 })), bi = si(o({}, ci, { animationName: 0, elapsedTime: 0, pseudoElement: 0 })), vi = o({}, ci, { clipboardData: function(e) { return "clipboardData" in e ? e.clipboardData : window.clipboardData } }), wi = si(vi), Ci = si(o({}, ci, { data: 0 })), yi = { Esc: "Escape", Spacebar: " ", Left: "ArrowLeft", Up: "ArrowUp", Right: "ArrowRight", Down: "ArrowDown", Del: "Delete", Win: "OS", Menu: "ContextMenu", Apps: "ContextMenu", Scroll: "ScrollLock", MozPrintableKey: "Unidentified" }, Si = { 8: "Backspace", 9: "Tab", 12: "Clear", 13: "Enter", 16: "Shift", 17: "Control", 18: "Alt", 19: "Pause", 20: "CapsLock", 27: "Escape", 32: " ", 33: "PageUp", 34: "PageDown", 35: "End", 36: "Home", 37: "ArrowLeft", 38: "ArrowUp", 39: "ArrowRight", 40: "ArrowDown", 45: "Insert", 46: "Delete", 112: "F1", 113: "F2", 114: "F3", 115: "F4", 116: "F5", 117: "F6", 118: "F7", 119: "F8", 120: "F9", 121: "F10", 122: "F11", 123: "F12", 144: "NumLock", 145: "ScrollLock", 224: "Meta" }, xi = { Alt: "altKey", Control: "ctrlKey", Meta: "metaKey", Shift: "shiftKey" }; function ki(e) { var t = this.nativeEvent; return t.getModifierState ? t.getModifierState(e) : !!(e = xi[e]) && !!t[ e] } function Li() { return ki } var Ni = o({}, ui, { key: function(e) { if (e.key) { var t = yi[e.key] || e.key; if ("Unidentified" !== t) return t } return "keypress" === e.type ? 13 === (e = ni(e)) ? "Enter" : String .fromCharCode(e) : "keydown" === e.type || "keyup" === e.type ? Si[ e.keyCode] || "Unidentified" : "" }, code: 0, location: 0, ctrlKey: 0, shiftKey: 0, altKey: 0, metaKey: 0, repeat: 0, locale: 0, getModifierState: Li, charCode: function(e) { return "keypress" === e.type ? ni(e) : 0 }, keyCode: function(e) { return "keydown" === e.type || "keyup" === e.type ? e.keyCode : 0 }, which: function(e) { return "keypress" === e.type ? ni(e) : "keydown" === e.type || "keyup" === e.type ? e.keyCode : 0 } }), Di = si(Ni), Ei = si(o({}, pi, { pointerId: 0, width: 0, height: 0, pressure: 0, tangentialPressure: 0, tiltX: 0, tiltY: 0, twist: 0, pointerType: 0, isPrimary: 0 })), Ii = si(o({}, ui, { touches: 0, targetTouches: 0, changedTouches: 0, altKey: 0, metaKey: 0, ctrlKey: 0, shiftKey: 0, getModifierState: Li })), Ti = si(o({}, ci, { propertyName: 0, elapsedTime: 0, pseudoElement: 0 })), Mi = o({}, pi, { deltaX: function(e) { return "deltaX" in e ? e.deltaX : "wheelDeltaX" in e ? -e.wheelDeltaX : 0 }, deltaY: function(e) { return "deltaY" in e ? e.deltaY : "wheelDeltaY" in e ? -e.wheelDeltaY : "wheelDelta" in e ? -e.wheelDelta : 0 }, deltaZ: 0, deltaMode: 0 }), Ai = si(Mi), Ri = [9, 13, 27, 32], Oi = h && "CompositionEvent" in window, Pi = null; h && "documentMode" in document && (Pi = document.documentMode); var Fi = h && "TextEvent" in window && !Pi, Bi = h && (!Oi || Pi && 8 < Pi && 11 >= Pi), Wi = String.fromCharCode(32), zi = !1; function Vi(e, t) { switch (e) { case "keyup": return -1 !== Ri.indexOf(t.keyCode); case "keydown": return 229 !== t.keyCode; case "keypress": case "mousedown": case "focusout": return !0; default: return !1 } } function Hi(e) { return "object" == typeof(e = e.detail) && "data" in e ? e.data : null } var Ui = !1, ji = { color: !0, date: !0, datetime: !0, "datetime-local": !0, email: !0, month: !0, number: !0, password: !0, range: !0, search: !0, tel: !0, text: !0, time: !0, url: !0, week: !0 }; function Ki(e) { var t = e && e.nodeName && e.nodeName.toLowerCase(); return "input" === t ? !!ji[e.type] : "textarea" === t } function $i(e, t, i, n) { Ie(n), 0 < (t = Pn(t, "onChange")).length && (i = new hi("onChange", "change", null, i, n), e.push({ event: i, listeners: t })) } var qi = null, Zi = null; function Gi(e) { Dn(e, 0) } function Yi(e) { if (Q(no(e))) return e } function Qi(e, t) { if ("change" === e) return t } var Xi = !1; if (h) { var Ji; if (h) { var en = "oninput" in document; if (!en) { var tn = document.createElement("div"); tn.setAttribute("oninput", "return;"), en = "function" == typeof tn.oninput } Ji = en } else Ji = !1; Xi = Ji && (!document.documentMode || 9 < document.documentMode) } function nn() { qi && (qi.detachEvent("onpropertychange", on), Zi = qi = null) } function on(e) { if ("value" === e.propertyName && Yi(Zi)) { var t = []; if ($i(t, Zi, e, ke(e)), e = Gi, Pe) e(t); else { Pe = !0; try { Me(e, t) } finally { Pe = !1, Be() } } } } function rn(e, t, i) { "focusin" === e ? (nn(), Zi = i, (qi = t).attachEvent("onpropertychange", on)) : "focusout" === e && nn() } function sn(e) { if ("selectionchange" === e || "keyup" === e || "keydown" === e) return Yi(Zi) } function an(e, t) { if ("click" === e) return Yi(t) } function ln(e, t) { if ("input" === e || "change" === e) return Yi(t) } var dn = "function" == typeof Object.is ? Object.is : function(e, t) { return e === t && (0 !== e || 1 / e == 1 / t) || e != e && t != t }, cn = Object.prototype.hasOwnProperty; function hn(e, t) { if (dn(e, t)) return !0; if ("object" != typeof e || null === e || "object" != typeof t || null === t) return !1; var i = Object.keys(e), n = Object.keys(t); if (i.length !== n.length) return !1; for (n = 0; n < i.length; n++) if (!cn.call(t, i[n]) || !dn(e[i[n]], t[i[n]])) return !1; return !0 } function un(e) { for (; e && e.firstChild;) e = e.firstChild; return e } function gn(e, t) { var i, n = un(e); for (e = 0; n;) { if (3 === n.nodeType) { if (i = e + n.textContent.length, e <= t && i >= t) return { node: n, offset: t - e }; e = i } e: { for (; n;) { if (n.nextSibling) { n = n.nextSibling; break e } n = n.parentNode } n = void 0 } n = un(n) } } function pn(e, t) { return !(!e || !t) && (e === t || (!e || 3 !== e.nodeType) && (t && 3 === t.nodeType ? pn(e, t.parentNode) : "contains" in e ? e.contains(t) : !!e.compareDocumentPosition && !!(16 & e.compareDocumentPosition(t)))) } function mn() { for (var e = window, t = X(); t instanceof e.HTMLIFrameElement;) { try { var i = "string" == typeof t.contentWindow.location.href } catch (e) { i = !1 } if (!i) break; t = X((e = t.contentWindow).document) } return t } function fn(e) { var t = e && e.nodeName && e.nodeName.toLowerCase(); return t && ("input" === t && ("text" === e.type || "search" === e.type || "tel" === e.type || "url" === e.type || "password" === e.type) || "textarea" === t || "true" === e.contentEditable) } var _n = h && "documentMode" in document && 11 >= document.documentMode, bn = null, vn = null, wn = null, Cn = !1; function yn(e, t, i) { var n = i.window === i ? i.document : 9 === i.nodeType ? i : i.ownerDocument; Cn || null == bn || bn !== X(n) || (n = "selectionStart" in (n = bn) && fn(n) ? { start: n.selectionStart, end: n.selectionEnd } : { anchorNode: (n = (n.ownerDocument && n.ownerDocument.defaultView || window).getSelection()).anchorNode, anchorOffset: n.anchorOffset, focusNode: n.focusNode, focusOffset: n.focusOffset }, wn && hn(wn, n) || (wn = n, 0 < (n = Pn(vn, "onSelect")).length && (t = new hi("onSelect", "select", null, t, i), e.push({ event: t, listeners: n }), t.target = bn))) } Rt( "cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange" .split(" "), 0), Rt( "drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel" .split(" "), 1), Rt(At, 2); for (var Sn = "change selectionchange textInput compositionstart compositionend compositionupdate" .split(" "), xn = 0; xn < Sn.length; xn++) Mt.set(Sn[xn], 0); c("onMouseEnter", ["mouseout", "mouseover"]), c("onMouseLeave", [ "mouseout", "mouseover" ]), c("onPointerEnter", ["pointerout", "pointerover"]), c( "onPointerLeave", ["pointerout", "pointerover"]), d("onChange", "change click focusin focusout input keydown keyup selectionchange".split( " ")), d("onSelect", "focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange" .split(" ")), d("onBeforeInput", ["compositionend", "keypress", "textInput", "paste" ]), d("onCompositionEnd", "compositionend focusout keydown keypress keyup mousedown".split(" ")), d("onCompositionStart", "compositionstart focusout keydown keypress keyup mousedown".split(" ") ), d("onCompositionUpdate", "compositionupdate focusout keydown keypress keyup mousedown".split(" ") ); var kn = "abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting" .split(" "), Ln = new Set("cancel close invalid load scroll toggle".split(" ").concat( kn)); function Nn(e, t, i) { var n = e.type || "unknown-event"; e.currentTarget = i, function(e, t, i, n, o, r, a, l, d) { if (Ze.apply(this, arguments), Ue) { if (!Ue) throw Error(s(198)); var c = je; Ue = !1, je = null, Ke || (Ke = !0, $e = c) } }(n, t, void 0, e), e.currentTarget = null } function Dn(e, t) { t = 0 != (4 & t); for (var i = 0; i < e.length; i++) { var n = e[i], o = n.event; n = n.listeners; e: { var r = void 0; if (t) for (var s = n.length - 1; 0 <= s; s--) { var a = n[s], l = a.instance, d = a.currentTarget; if (a = a.listener, l !== r && o.isPropagationStopped()) break e; Nn(o, a, d), r = l } else for (s = 0; s < n.length; s++) { if (l = (a = n[s]).instance, d = a.currentTarget, a = a.listener, l !== r && o.isPropagationStopped()) break e; Nn(o, a, d), r = l } } } if (Ke) throw e = $e, Ke = !1, $e = null, e } function En(e, t) { var i = ro(t), n = e + "__bubble"; i.has(n) || (An(t, e, 2, !1), i.add(n)) } var In = "_reactListening" + Math.random().toString(36).slice(2); function Tn(e) { e[In] || (e[In] = !0, a.forEach((function(t) { Ln.has(t) || Mn(t, !1, e, null), Mn(t, !0, e, null) }))) } function Mn(e, t, i, n) { var o = 4 < arguments.length && void 0 !== arguments[4] ? arguments[4] : 0, r = i; if ("selectionchange" === e && 9 !== i.nodeType && (r = i.ownerDocument), null !== n && !t && Ln.has(e)) { if ("scroll" !== e) return; o |= 2, r = n } var s = ro(r), a = e + "__" + (t ? "capture" : "bubble"); s.has(a) || (t && (o |= 4), An(r, e, o, t), s.add(a)) } function An(e, t, i, n) { var o = Mt.get(t); switch (void 0 === o ? 2 : o) { case 0: o = Gt; break; case 1: o = Yt; break; default: o = Qt } i = o.bind(null, t, i, e), o = void 0, !ze || "touchstart" !== t && "touchmove" !== t && "wheel" !== t || (o = !0), n ? void 0 !== o ? e.addEventListener( t, i, { capture: !0, passive: o }) : e.addEventListener(t, i, !0) : void 0 !== o ? e.addEventListener( t, i, { passive: o }) : e.addEventListener(t, i, !1) } function Rn(e, t, i, n, o) { var r = n; if (0 == (1 & t) && 0 == (2 & t) && null !== n) e: for (;;) { if (null === n) return; var s = n.tag; if (3 === s || 4 === s) { var a = n.stateNode.containerInfo; if (a === o || 8 === a.nodeType && a.parentNode === o) break; if (4 === s) for (s = n.return; null !== s;) { var l = s.tag; if ((3 === l || 4 === l) && ((l = s.stateNode.containerInfo) === o || 8 === l.nodeType && l.parentNode === o)) return; s = s.return } for (; null !== a;) { if (null === (s = to(a))) return; if (5 === (l = s.tag) || 6 === l) { n = r = s; continue e } a = a.parentNode } } n = n.return }! function(e, t, i) { if (Fe) return e(); Fe = !0; try { Oe(e, t, i) } finally { Fe = !1, Be() } }((function() { var n = r, o = ke(i), s = []; e: { var a = Tt.get(e); if (void 0 !== a) { var l = hi, d = e; switch (e) { case "keypress": if (0 === ni(i)) break e; case "keydown": case "keyup": l = Di; break; case "focusin": d = "focus", l = _i; break; case "focusout": d = "blur", l = _i; break; case "beforeblur": case "afterblur": l = _i; break; case "click": if (2 === i.button) break e; case "auxclick": case "dblclick": case "mousedown": case "mousemove": case "mouseup": case "mouseout": case "mouseover": case "contextmenu": l = mi; break; case "drag": case "dragend": case "dragenter": case "dragexit": case "dragleave": case "dragover": case "dragstart": case "drop": l = fi; break; case "touchcancel": case "touchend": case "touchmove": case "touchstart": l = Ii; break; case Nt: case Dt: case Et: l = bi; break; case It: l = Ti; break; case "scroll": l = gi; break; case "wheel": l = Ai; break; case "copy": case "cut": case "paste": l = wi; break; case "gotpointercapture": case "lostpointercapture": case "pointercancel": case "pointerdown": case "pointermove": case "pointerout": case "pointerover": case "pointerup": l = Ei } var c = 0 != (4 & t), h = !c && "scroll" === e, u = c ? null !== a ? a + "Capture" : null : a; c = []; for (var g, p = n; null !== p;) { var m = (g = p).stateNode; if (5 === g.tag && null !== m && (g = m, null !== u && null != ( m = We(p, u)) && c.push(On(p, m, g))), h) break; p = p.return } 0 < c.length && (a = new l(a, d, null, i, o), s.push({ event: a, listeners: c })) } } if (0 == (7 & t)) { if (l = "mouseout" === e || "pointerout" === e, (!(a = "mouseover" === e || "pointerover" === e) || 0 != (16 & t) || !(d = i.relatedTarget || i.fromElement) || !to(d) && !d[Jn]) && (l || a) && (a = o.window === o ? o : (a = o.ownerDocument) ? a.defaultView || a.parentWindow : window, l ? (l = n, null !== (d = (d = i.relatedTarget || i.toElement) ? to(d) : null) && (d !== (h = Ge(d)) || 5 !== d.tag && 6 !== d.tag) && (d = null)) : (l = null, d = n), l !== d)) { if (c = mi, m = "onMouseLeave", u = "onMouseEnter", p = "mouse", "pointerout" !== e && "pointerover" !== e || (c = Ei, m = "onPointerLeave", u = "onPointerEnter", p = "pointer"), h = null == l ? a : no(l), g = null == d ? a : no(d), (a = new c(m, p + "leave", l, i, o)).target = h, a.relatedTarget = g, m = null, to( o) === n && ((c = new c(u, p + "enter", d, i, o)).target = g, c.relatedTarget = h, m = c), h = m, l && d) e: { for (u = d, p = 0, g = c = l; g; g = Fn(g)) p++; for (g = 0, m = u; m; m = Fn(m)) g++; for (; 0 < p - g;) c = Fn(c), p--; for (; 0 < g - p;) u = Fn(u), g--; for (; p--;) { if (c === u || null !== u && c === u.alternate) break e; c = Fn(c), u = Fn(u) } c = null } else c = null; null !== l && Bn(s, a, l, c, !1), null !== d && null !== h && Bn(s, h, d, c, !0) } if ("select" === (l = (a = n ? no(n) : window).nodeName && a.nodeName .toLowerCase()) || "input" === l && "file" === a.type) var f = Qi; else if (Ki(a)) if (Xi) f = ln; else { f = sn; var _ = rn } else(l = a.nodeName) && "input" === l.toLowerCase() && ( "checkbox" === a.type || "radio" === a.type) && (f = an); switch (f && (f = f(e, n)) ? $i(s, f, i, o) : (_ && _(e, a, n), "focusout" === e && (_ = a._wrapperState) && _.controlled && "number" === a.type && oe(a, "number", a.value)), _ = n ? no(n) : window, e) { case "focusin": (Ki(_) || "true" === _.contentEditable) && (bn = _, vn = n, wn = null); break; case "focusout": wn = vn = bn = null; break; case "mousedown": Cn = !0; break; case "contextmenu": case "mouseup": case "dragend": Cn = !1, yn(s, i, o); break; case "selectionchange": if (_n) break; case "keydown": case "keyup": yn(s, i, o) } var b; if (Oi) e: { switch (e) { case "compositionstart": var v = "onCompositionStart"; break e; case "compositionend": v = "onCompositionEnd"; break e; case "compositionupdate": v = "onCompositionUpdate"; break e } v = void 0 } else Ui ? Vi(e, i) && (v = "onCompositionEnd") : "keydown" === e && 229 === i.keyCode && (v = "onCompositionStart"); v && (Bi && "ko" !== i.locale && (Ui || "onCompositionStart" !== v ? "onCompositionEnd" === v && Ui && (b = ii()) : (ei = "value" in (Jt = o) ? Jt.value : Jt.textContent, Ui = !0)), 0 < (_ = Pn(n, v)).length && (v = new Ci(v, e, null, i, o), s.push({ event: v, listeners: _ }), (b || null !== (b = Hi(i))) && (v.data = b))), (b = Fi ? function(e, t) { switch (e) { case "compositionend": return Hi(t); case "keypress": return 32 !== t.which ? null : (zi = !0, Wi); case "textInput": return (e = t.data) === Wi && zi ? null : e; default: return null } }(e, i) : function(e, t) { if (Ui) return "compositionend" === e || !Oi && Vi(e, t) ? (e = ii(), ti = ei = Jt = null, Ui = !1, e) : null; switch (e) { default: return null; case "keypress": if (!(t.ctrlKey || t.altKey || t.metaKey) || t.ctrlKey && t.altKey) { if (t.char && 1 < t.char.length) return t.char; if (t.which) return String.fromCharCode(t.which) }return null; case "compositionend": return Bi && "ko" !== t.locale ? null : t.data } }(e, i)) && 0 < (n = Pn(n, "onBeforeInput")).length && (o = new Ci( "onBeforeInput", "beforeinput", null, i, o), s.push({ event: o, listeners: n }), o.data = b) } Dn(s, t) })) } function On(e, t, i) { return { instance: e, listener: t, currentTarget: i } } function Pn(e, t) { for (var i = t + "Capture", n = []; null !== e;) { var o = e, r = o.stateNode; 5 === o.tag && null !== r && (o = r, null != (r = We(e, i)) && n.unshift( On(e, r, o)), null != (r = We(e, t)) && n.push(On(e, r, o))), e = e.return } return n } function Fn(e) { if (null === e) return null; do { e = e.return } while (e && 5 !== e.tag); return e || null } function Bn(e, t, i, n, o) { for (var r = t._reactName, s = []; null !== i && i !== n;) { var a = i, l = a.alternate, d = a.stateNode; if (null !== l && l === n) break; 5 === a.tag && null !== d && (a = d, o ? null != (l = We(i, r)) && s.unshift( On(i, l, a)) : o || null != (l = We(i, r)) && s.push(On(i, l, a))), i = i.return } 0 !== s.length && e.push({ event: t, listeners: s }) } function Wn() {} var zn = null, Vn = null; function Hn(e, t) { switch (e) { case "button": case "input": case "select": case "textarea": return !!t.autoFocus } return !1 } function Un(e, t) { return "textarea" === e || "option" === e || "noscript" === e || "string" == typeof t.children || "number" == typeof t.children || "object" == typeof t.dangerouslySetInnerHTML && null !== t.dangerouslySetInnerHTML && null != t.dangerouslySetInnerHTML.__html } var jn = "function" == typeof setTimeout ? setTimeout : void 0, Kn = "function" == typeof clearTimeout ? clearTimeout : void 0; function $n(e) { (1 === e.nodeType || 9 === e.nodeType && null != (e = e.body)) && (e.textContent = "") } function qn(e) { for (; null != e; e = e.nextSibling) { var t = e.nodeType; if (1 === t || 3 === t) break } return e } function Zn(e) { e = e.previousSibling; for (var t = 0; e;) { if (8 === e.nodeType) { var i = e.data; if ("$" === i || "$!" === i || "$?" === i) { if (0 === t) return e; t-- } else "/$" === i && t++ } e = e.previousSibling } return null } var Gn = 0, Yn = Math.random().toString(36).slice(2), Qn = "__reactFiber$" + Yn, Xn = "__reactProps$" + Yn, Jn = "__reactContainer$" + Yn, eo = "__reactEvents$" + Yn; function to(e) { var t = e[Qn]; if (t) return t; for (var i = e.parentNode; i;) { if (t = i[Jn] || i[Qn]) { if (i = t.alternate, null !== t.child || null !== i && null !== i.child) for (e = Zn(e); null !== e;) { if (i = e[Qn]) return i; e = Zn(e) } return t } i = (e = i).parentNode } return null } function io(e) { return !(e = e[Qn] || e[Jn]) || 5 !== e.tag && 6 !== e.tag && 13 !== e.tag && 3 !== e.tag ? null : e } function no(e) { if (5 === e.tag || 6 === e.tag) return e.stateNode; throw Error(s(33)) } function oo(e) { return e[Xn] || null } function ro(e) { var t = e[eo]; return void 0 === t && (t = e[eo] = new Set), t } var so = [], ao = -1; function lo(e) { return { current: e } } function co(e) { 0 > ao || (e.current = so[ao], so[ao] = null, ao--) } function ho(e, t) { ao++, so[ao] = e.current, e.current = t } var uo = {}, go = lo(uo), po = lo(!1), mo = uo; function fo(e, t) { var i = e.type.contextTypes; if (!i) return uo; var n = e.stateNode; if (n && n.__reactInternalMemoizedUnmaskedChildContext === t) return n.__reactInternalMemoizedMaskedChildContext; var o, r = {}; for (o in i) r[o] = t[o]; return n && ((e = e.stateNode).__reactInternalMemoizedUnmaskedChildContext = t, e.__reactInternalMemoizedMaskedChildContext = r), r } function _o(e) { return null != e.childContextTypes } function bo() { co(po), co(go) } function vo(e, t, i) { if (go.current !== uo) throw Error(s(168)); ho(go, t), ho(po, i) } function wo(e, t, i) { var n = e.stateNode; if (e = t.childContextTypes, "function" != typeof n.getChildContext) return i; for (var r in n = n.getChildContext()) if (!(r in e)) throw Error(s(108, q(t) || "Unknown", r)); return o({}, i, n) } function Co(e) { return e = (e = e.stateNode) && e.__reactInternalMemoizedMergedChildContext || uo, mo = go.current, ho(go, e), ho(po, po.current), !0 } function yo(e, t, i) { var n = e.stateNode; if (!n) throw Error(s(169)); i ? (e = wo(e, t, mo), n.__reactInternalMemoizedMergedChildContext = e, co(po), co(go), ho(go, e)) : co(po), ho(po, i) } var So = null, xo = null, ko = r.unstable_runWithPriority, Lo = r.unstable_scheduleCallback, No = r.unstable_cancelCallback, Do = r.unstable_shouldYield, Eo = r.unstable_requestPaint, Io = r.unstable_now, To = r.unstable_getCurrentPriorityLevel, Mo = r.unstable_ImmediatePriority, Ao = r.unstable_UserBlockingPriority, Ro = r.unstable_NormalPriority, Oo = r.unstable_LowPriority, Po = r.unstable_IdlePriority, Fo = {}, Bo = void 0 !== Eo ? Eo : function() {}, Wo = null, zo = null, Vo = !1, Ho = Io(), Uo = 1e4 > Ho ? Io : function() { return Io() - Ho }; function jo() { switch (To()) { case Mo: return 99; case Ao: return 98; case Ro: return 97; case Oo: return 96; case Po: return 95; default: throw Error(s(332)) } } function Ko(e) { switch (e) { case 99: return Mo; case 98: return Ao; case 97: return Ro; case 96: return Oo; case 95: return Po; default: throw Error(s(332)) } } function $o(e, t) { return e = Ko(e), ko(e, t) } function qo(e, t, i) { return e = Ko(e), Lo(e, t, i) } function Zo() { if (null !== zo) { var e = zo; zo = null, No(e) } Go() } function Go() { if (!Vo && null !== Wo) { Vo = !0; var e = 0; try { var t = Wo; $o(99, (function() { for (; e < t.length; e++) { var i = t[e]; do { i = i(!0) } while (null !== i) } })), Wo = null } catch (t) { throw null !== Wo && (Wo = Wo.slice(e + 1)), Lo(Mo, Zo), t } finally { Vo = !1 } } } var Yo = C.ReactCurrentBatchConfig; function Qo(e, t) { if (e && e.defaultProps) { for (var i in t = o({}, t), e = e.defaultProps) void 0 === t[i] && (t[i] = e[i]); return t } return t } var Xo = lo(null), Jo = null, er = null, tr = null; function ir() { tr = er = Jo = null } function nr(e) { var t = Xo.current; co(Xo), e.type._context._currentValue = t } function or(e, t) { for (; null !== e;) { var i = e.alternate; if ((e.childLanes & t) === t) { if (null === i || (i.childLanes & t) === t) break; i.childLanes |= t } else e.childLanes |= t, null !== i && (i.childLanes |= t); e = e.return } } function rr(e, t) { Jo = e, tr = er = null, null !== (e = e.dependencies) && null !== e.firstContext && (0 != (e.lanes & t) && (Ps = !0), e.firstContext = null) } function sr(e, t) { if (tr !== e && !1 !== t && 0 !== t) if ("number" == typeof t && 1073741823 !== t || (tr = e, t = 1073741823), t = { context: e, observedBits: t, next: null }, null === er) { if (null === Jo) throw Error(s(308)); er = t, Jo.dependencies = { lanes: 0, firstContext: t, responders: null } } else er = er.next = t; return e._currentValue } var ar = !1; function lr(e) { e.updateQueue = { baseState: e.memoizedState, firstBaseUpdate: null, lastBaseUpdate: null, shared: { pending: null }, effects: null } } function dr(e, t) { e = e.updateQueue, t.updateQueue === e && (t.updateQueue = { baseState: e.baseState, firstBaseUpdate: e.firstBaseUpdate, lastBaseUpdate: e.lastBaseUpdate, shared: e.shared, effects: e.effects }) } function cr(e, t) { return { eventTime: e, lane: t, tag: 0, payload: null, callback: null, next: null } } function hr(e, t) { if (null !== (e = e.updateQueue)) { var i = (e = e.shared).pending; null === i ? t.next = t : (t.next = i.next, i.next = t), e.pending = t } } function ur(e, t) { var i = e.updateQueue, n = e.alternate; if (null !== n && i === (n = n.updateQueue)) { var o = null, r = null; if (null !== (i = i.firstBaseUpdate)) { do { var s = { eventTime: i.eventTime, lane: i.lane, tag: i.tag, payload: i.payload, callback: i.callback, next: null }; null === r ? o = r = s : r = r.next = s, i = i.next } while (null !== i); null === r ? o = r = t : r = r.next = t } else o = r = t; return i = { baseState: n.baseState, firstBaseUpdate: o, lastBaseUpdate: r, shared: n.shared, effects: n.effects }, void(e.updateQueue = i) } null === (e = i.lastBaseUpdate) ? i.firstBaseUpdate = t : e.next = t, i.lastBaseUpdate = t } function gr(e, t, i, n) { var r = e.updateQueue; ar = !1; var s = r.firstBaseUpdate, a = r.lastBaseUpdate, l = r.shared.pending; if (null !== l) { r.shared.pending = null; var d = l, c = d.next; d.next = null, null === a ? s = c : a.next = c, a = d; var h = e.alternate; if (null !== h) { var u = (h = h.updateQueue).lastBaseUpdate; u !== a && (null === u ? h.firstBaseUpdate = c : u.next = c, h.lastBaseUpdate = d) } } if (null !== s) { for (u = r.baseState, a = 0, h = c = d = null;;) { l = s.lane; var g = s.eventTime; if ((n & l) === l) { null !== h && (h = h.next = { eventTime: g, lane: 0, tag: s.tag, payload: s.payload, callback: s.callback, next: null }); e: { var p = e, m = s; switch (l = t, g = i, m.tag) { case 1: if ("function" == typeof(p = m.payload)) { u = p.call(g, u, l); break e } u = p; break e; case 3: p.flags = -4097 & p.flags | 64; case 0: if (null == (l = "function" == typeof(p = m.payload) ? p.call(g, u, l) : p)) break e; u = o({}, u, l); break e; case 2: ar = !0 } } null !== s.callback && (e.flags |= 32, null === (l = r.effects) ? r.effects = [ s ] : l.push(s)) } else g = { eventTime: g, lane: l, tag: s.tag, payload: s.payload, callback: s.callback, next: null }, null === h ? (c = h = g, d = u) : h = h.next = g, a |= l; if (null === (s = s.next)) { if (null === (l = r.shared.pending)) break; s = l.next, l.next = null, r.lastBaseUpdate = l, r.shared.pending = null } } null === h && (d = u), r.baseState = d, r.firstBaseUpdate = c, r.lastBaseUpdate = h, Ba |= a, e.lanes = a, e.memoizedState = u } } function pr(e, t, i) { if (e = t.effects, t.effects = null, null !== e) for (t = 0; t < e.length; t++) { var n = e[t], o = n.callback; if (null !== o) { if (n.callback = null, n = i, "function" != typeof o) throw Error(s( 191, o)); o.call(n) } } } var mr = (new n.Component).refs; function fr(e, t, i, n) { i = null == (i = i(n, t = e.memoizedState)) ? t : o({}, t, i), e.memoizedState = i, 0 === e.lanes && (e.updateQueue.baseState = i) } var _r = { isMounted: function(e) { return !!(e = e._reactInternals) && Ge(e) === e }, enqueueSetState: function(e, t, i) { e = e._reactInternals; var n = dl(), o = cl(e), r = cr(n, o); r.payload = t, null != i && (r.callback = i), hr(e, r), hl(e, o, n) }, enqueueReplaceState: function(e, t, i) { e = e._reactInternals; var n = dl(), o = cl(e), r = cr(n, o); r.tag = 1, r.payload = t, null != i && (r.callback = i), hr(e, r), hl( e, o, n) }, enqueueForceUpdate: function(e, t) { e = e._reactInternals; var i = dl(), n = cl(e), o = cr(i, n); o.tag = 2, null != t && (o.callback = t), hr(e, o), hl(e, n, i) } }; function br(e, t, i, n, o, r, s) { return "function" == typeof(e = e.stateNode).shouldComponentUpdate ? e.shouldComponentUpdate( n, r, s) : !(t.prototype && t.prototype.isPureReactComponent && hn(i, n) && hn(o, r)) } function vr(e, t, i) { var n = !1, o = uo, r = t.contextType; return "object" == typeof r && null !== r ? r = sr(r) : (o = _o(t) ? mo : go.current, r = (n = null != (n = t.contextTypes)) ? fo(e, o) : uo), t = new t(i, r), e.memoizedState = null !== t.state && void 0 !== t.state ? t.state : null, t.updater = _r, e.stateNode = t, t._reactInternals = e, n && ((e = e.stateNode).__reactInternalMemoizedUnmaskedChildContext = o, e.__reactInternalMemoizedMaskedChildContext = r), t } function wr(e, t, i, n) { e = t.state, "function" == typeof t.componentWillReceiveProps && t.componentWillReceiveProps( i, n), "function" == typeof t.UNSAFE_componentWillReceiveProps && t.UNSAFE_componentWillReceiveProps( i, n), t.state !== e && _r.enqueueReplaceState(t, t.state, null) } function Cr(e, t, i, n) { var o = e.stateNode; o.props = i, o.state = e.memoizedState, o.refs = mr, lr(e); var r = t.contextType; "object" == typeof r && null !== r ? o.context = sr(r) : (r = _o(t) ? mo : go.current, o.context = fo(e, r)), gr(e, i, o, n), o.state = e.memoizedState, "function" == typeof(r = t.getDerivedStateFromProps) && (fr(e, t, r, i), o.state = e.memoizedState), "function" == typeof t.getDerivedStateFromProps || "function" == typeof o.getSnapshotBeforeUpdate || "function" != typeof o .UNSAFE_componentWillMount && "function" != typeof o.componentWillMount || (t = o.state, "function" == typeof o.componentWillMount && o.componentWillMount(), "function" == typeof o.UNSAFE_componentWillMount && o.UNSAFE_componentWillMount(), t !== o.state && _r.enqueueReplaceState(o, o.state, null), gr(e, i, o, n), o.state = e.memoizedState), "function" == typeof o.componentDidMount && (e.flags |= 4) } var yr = Array.isArray; function Sr(e, t, i) { if (null !== (e = i.ref) && "function" != typeof e && "object" != typeof e) { if (i._owner) { if (i = i._owner) { if (1 !== i.tag) throw Error(s(309)); var n = i.stateNode } if (!n) throw Error(s(147, e)); var o = "" + e; return null !== t && null !== t.ref && "function" == typeof t.ref && t .ref._stringRef === o ? t.ref : (t = function(e) { var t = n.refs; t === mr && (t = n.refs = {}), null === e ? delete t[o] : t[o] = e }, t._stringRef = o, t) } if ("string" != typeof e) throw Error(s(284)); if (!i._owner) throw Error(s(290, e)) } return e } function xr(e, t) { if ("textarea" !== e.type) throw Error(s(31, "[object Object]" === Object.prototype.toString.call(t) ? "object with keys {" + Object.keys( t).join(", ") + "}" : t)) } function kr(e) { function t(t, i) { if (e) { var n = t.lastEffect; null !== n ? (n.nextEffect = i, t.lastEffect = i) : t.firstEffect = t.lastEffect = i, i.nextEffect = null, i.flags = 8 } } function i(i, n) { if (!e) return null; for (; null !== n;) t(i, n), n = n.sibling; return null } function n(e, t) { for (e = new Map; null !== t;) null !== t.key ? e.set(t.key, t) : e.set( t.index, t), t = t.sibling; return e } function o(e, t) { return (e = Ul(e, t)).index = 0, e.sibling = null, e } function r(t, i, n) { return t.index = n, e ? null !== (n = t.alternate) ? (n = n.index) < i ? (t.flags = 2, i) : n : (t.flags = 2, i) : i } function a(t) { return e && null === t.alternate && (t.flags = 2), t } function l(e, t, i, n) { return null === t || 6 !== t.tag ? ((t = ql(i, e.mode, n)).return = e, t) : ((t = o(t, i)).return = e, t) } function d(e, t, i, n) { return null !== t && t.elementType === i.type ? ((n = o(t, i.props)).ref = Sr(e, t, i), n.return = e, n) : ((n = jl(i.type, i.key, i.props, null, e.mode, n)).ref = Sr(e, t, i), n.return = e, n) } function c(e, t, i, n) { return null === t || 4 !== t.tag || t.stateNode.containerInfo !== i.containerInfo || t.stateNode.implementation !== i.implementation ? ((t = Zl(i, e.mode, n)).return = e, t) : ((t = o(t, i.children || [])).return = e, t) } function h(e, t, i, n, r) { return null === t || 7 !== t.tag ? ((t = Kl(i, e.mode, n, r)).return = e, t) : ((t = o(t, i)).return = e, t) } function u(e, t, i) { if ("string" == typeof t || "number" == typeof t) return (t = ql("" + t, e.mode, i)).return = e, t; if ("object" == typeof t && null !== t) { switch (t.$$typeof) { case y: return (i = jl(t.type, t.key, t.props, null, e.mode, i)).ref = Sr(e, null, t), i.return = e, i; case S: return (t = Zl(t, e.mode, i)).return = e, t } if (yr(t) || H(t)) return (t = Kl(t, e.mode, i, null)).return = e, t; xr(e, t) } return null } function g(e, t, i, n) { var o = null !== t ? t.key : null; if ("string" == typeof i || "number" == typeof i) return null !== o ? null : l(e, t, "" + i, n); if ("object" == typeof i && null !== i) { switch (i.$$typeof) { case y: return i.key === o ? i.type === x ? h(e, t, i.props.children, n, o) : d(e, t, i, n) : null; case S: return i.key === o ? c(e, t, i, n) : null } if (yr(i) || H(i)) return null !== o ? null : h(e, t, i, n, null); xr(e, i) } return null } function p(e, t, i, n, o) { if ("string" == typeof n || "number" == typeof n) return l(t, e = e.get( i) || null, "" + n, o); if ("object" == typeof n && null !== n) { switch (n.$$typeof) { case y: return e = e.get(null === n.key ? i : n.key) || null, n.type === x ? h(t, e, n.props.children, o, n.key) : d(t, e, n, o); case S: return c(t, e = e.get(null === n.key ? i : n.key) || null, n, o) } if (yr(n) || H(n)) return h(t, e = e.get(i) || null, n, o, null); xr(t, n) } return null } function m(o, s, a, l) { for (var d = null, c = null, h = s, m = s = 0, f = null; null !== h && m < a.length; m++) { h.index > m ? (f = h, h = null) : f = h.sibling; var _ = g(o, h, a[m], l); if (null === _) { null === h && (h = f); break } e && h && null === _.alternate && t(o, h), s = r(_, s, m), null === c ? d = _ : c.sibling = _, c = _, h = f } if (m === a.length) return i(o, h), d; if (null === h) { for (; m < a.length; m++) null !== (h = u(o, a[m], l)) && (s = r(h, s, m), null === c ? d = h : c.sibling = h, c = h); return d } for (h = n(o, h); m < a.length; m++) null !== (f = p(h, o, m, a[m], l)) && (e && null !== f.alternate && h.delete(null === f.key ? m : f.key), s = r(f, s, m), null === c ? d = f : c.sibling = f, c = f); return e && h.forEach((function(e) { return t(o, e) })), d } function f(o, a, l, d) { var c = H(l); if ("function" != typeof c) throw Error(s(150)); if (null == (l = c.call(l))) throw Error(s(151)); for (var h = c = null, m = a, f = a = 0, _ = null, b = l.next(); null !== m && !b.done; f++, b = l.next()) { m.index > f ? (_ = m, m = null) : _ = m.sibling; var v = g(o, m, b.value, d); if (null === v) { null === m && (m = _); break } e && m && null === v.alternate && t(o, m), a = r(v, a, f), null === h ? c = v : h.sibling = v, h = v, m = _ } if (b.done) return i(o, m), c; if (null === m) { for (; !b.done; f++, b = l.next()) null !== (b = u(o, b.value, d)) && (a = r(b, a, f), null === h ? c = b : h.sibling = b, h = b); return c } for (m = n(o, m); !b.done; f++, b = l.next()) null !== (b = p(m, o, f, b.value, d)) && (e && null !== b.alternate && m.delete(null === b.key ? f : b.key), a = r(b, a, f), null === h ? c = b : h.sibling = b, h = b); return e && m.forEach((function(e) { return t(o, e) })), c } return function(e, n, r, l) { var d = "object" == typeof r && null !== r && r.type === x && null === r.key; d && (r = r.props.children); var c = "object" == typeof r && null !== r; if (c) switch (r.$$typeof) { case y: e: { for (c = r.key, d = n; null !== d;) { if (d.key === c) { if (7 === d.tag) { if (r.type === x) { i(e, d.sibling), (n = o(d, r.props.children)).return = e, e = n; break e } } else if (d.elementType === r.type) { i(e, d.sibling), (n = o(d, r.props)).ref = Sr(e, d, r), n.return = e, e = n; break e } i(e, d); break } t(e, d), d = d.sibling } r.type === x ? ((n = Kl(r.props.children, e.mode, l, r.key)).return = e, e = n) : ((l = jl(r.type, r.key, r.props, null, e.mode, l)).ref = Sr(e, n, r), l.return = e, e = l) } return a(e); case S: e: { for (d = r.key; null !== n;) { if (n.key === d) { if (4 === n.tag && n.stateNode.containerInfo === r.containerInfo && n.stateNode.implementation === r.implementation) { i(e, n.sibling), (n = o(n, r.children || [])).return = e, e = n; break e } i(e, n); break } t(e, n), n = n.sibling }(n = Zl(r, e.mode, l)).return = e, e = n } return a(e) } if ("string" == typeof r || "number" == typeof r) return r = "" + r, null !== n && 6 === n.tag ? (i(e, n.sibling), (n = o(n, r)).return = e, e = n) : (i(e, n), (n = ql(r, e.mode, l)).return = e, e = n), a( e); if (yr(r)) return m(e, n, r, l); if (H(r)) return f(e, n, r, l); if (c && xr(e, r), void 0 === r && !d) switch (e.tag) { case 1: case 22: case 0: case 11: case 15: throw Error(s(152, q(e.type) || "Component")) } return i(e, n) } } var Lr = kr(!0), Nr = kr(!1), Dr = {}, Er = lo(Dr), Ir = lo(Dr), Tr = lo(Dr); function Mr(e) { if (e === Dr) throw Error(s(174)); return e } function Ar(e, t) { switch (ho(Tr, t), ho(Ir, e), ho(Er, Dr), e = t.nodeType) { case 9: case 11: t = (t = t.documentElement) ? t.namespaceURI : ge(null, ""); break; default: t = ge(t = (e = 8 === e ? t.parentNode : t).namespaceURI || null, e = e.tagName) } co(Er), ho(Er, t) } function Rr() { co(Er), co(Ir), co(Tr) } function Or(e) { Mr(Tr.current); var t = Mr(Er.current), i = ge(t, e.type); t !== i && (ho(Ir, e), ho(Er, i)) } function Pr(e) { Ir.current === e && (co(Er), co(Ir)) } var Fr = lo(0); function Br(e) { for (var t = e; null !== t;) { if (13 === t.tag) { var i = t.memoizedState; if (null !== i && (null === (i = i.dehydrated) || "$?" === i.data || "$!" === i.data)) return t } else if (19 === t.tag && void 0 !== t.memoizedProps.revealOrder) { if (0 != (64 & t.flags)) return t } else if (null !== t.child) { t.child.return = t, t = t.child; continue } if (t === e) break; for (; null === t.sibling;) { if (null === t.return || t.return === e) return null; t = t.return } t.sibling.return = t.return, t = t.sibling } return null } var Wr = null, zr = null, Vr = !1; function Hr(e, t) { var i = Vl(5, null, null, 0); i.elementType = "DELETED", i.type = "DELETED", i.stateNode = t, i.return = e, i.flags = 8, null !== e.lastEffect ? (e.lastEffect.nextEffect = i, e .lastEffect = i) : e.firstEffect = e.lastEffect = i } function Ur(e, t) { switch (e.tag) { case 5: var i = e.type; return null !== (t = 1 !== t.nodeType || i.toLowerCase() !== t.nodeName .toLowerCase() ? null : t) && (e.stateNode = t, !0); case 6: return null !== (t = "" === e.pendingProps || 3 !== t.nodeType ? null : t) && (e.stateNode = t, !0); default: return !1 } } function jr(e) { if (Vr) { var t = zr; if (t) { var i = t; if (!Ur(e, t)) { if (!(t = qn(i.nextSibling)) || !Ur(e, t)) return e.flags = -1025 & e .flags | 2, Vr = !1, void(Wr = e); Hr(Wr, i) } Wr = e, zr = qn(t.firstChild) } else e.flags = -1025 & e.flags | 2, Vr = !1, Wr = e } } function Kr(e) { for (e = e.return; null !== e && 5 !== e.tag && 3 !== e.tag && 13 !== e.tag;) e = e.return; Wr = e } function $r(e) { if (e !== Wr) return !1; if (!Vr) return Kr(e), Vr = !0, !1; var t = e.type; if (5 !== e.tag || "head" !== t && "body" !== t && !Un(t, e.memoizedProps)) for (t = zr; t;) Hr(e, t), t = qn(t.nextSibling); if (Kr(e), 13 === e.tag) { if (!(e = null !== (e = e.memoizedState) ? e.dehydrated : null)) throw Error( s(317)); e: { for (e = e.nextSibling, t = 0; e;) { if (8 === e.nodeType) { var i = e.data; if ("/$" === i) { if (0 === t) { zr = qn(e.nextSibling); break e } t-- } else "$" !== i && "$!" !== i && "$?" !== i || t++ } e = e.nextSibling } zr = null } } else zr = Wr ? qn(e.stateNode.nextSibling) : null; return !0 } function qr() { zr = Wr = null, Vr = !1 } var Zr = []; function Gr() { for (var e = 0; e < Zr.length; e++) Zr[e]._workInProgressVersionPrimary = null; Zr.length = 0 } var Yr = C.ReactCurrentDispatcher, Qr = C.ReactCurrentBatchConfig, Xr = 0, Jr = null, es = null, ts = null, is = !1, ns = !1; function os() { throw Error(s(321)) } function rs(e, t) { if (null === t) return !1; for (var i = 0; i < t.length && i < e.length; i++) if (!dn(e[i], t[i])) return !1; return !0 } function ss(e, t, i, n, o, r) { if (Xr = r, Jr = t, t.memoizedState = null, t.updateQueue = null, t.lanes = 0, Yr.current = null === e || null === e.memoizedState ? Ms : As, e = i( n, o), ns) { r = 0; do { if (ns = !1, !(25 > r)) throw Error(s(301)); r += 1, ts = es = null, t.updateQueue = null, Yr.current = Rs, e = i(n, o) } while (ns) } if (Yr.current = Ts, t = null !== es && null !== es.next, Xr = 0, ts = es = Jr = null, is = !1, t) throw Error(s(300)); return e } function as() { var e = { memoizedState: null, baseState: null, baseQueue: null, queue: null, next: null }; return null === ts ? Jr.memoizedState = ts = e : ts = ts.next = e, ts } function ls() { if (null === es) { var e = Jr.alternate; e = null !== e ? e.memoizedState : null } else e = es.next; var t = null === ts ? Jr.memoizedState : ts.next; if (null !== t) ts = t, es = e; else { if (null === e) throw Error(s(310)); e = { memoizedState: (es = e).memoizedState, baseState: es.baseState, baseQueue: es.baseQueue, queue: es.queue, next: null }, null === ts ? Jr.memoizedState = ts = e : ts = ts.next = e } return ts } function ds(e, t) { return "function" == typeof t ? t(e) : t } function cs(e) { var t = ls(), i = t.queue; if (null === i) throw Error(s(311)); i.lastRenderedReducer = e; var n = es, o = n.baseQueue, r = i.pending; if (null !== r) { if (null !== o) { var a = o.next; o.next = r.next, r.next = a } n.baseQueue = o = r, i.pending = null } if (null !== o) { o = o.next, n = n.baseState; var l = a = r = null, d = o; do { var c = d.lane; if ((Xr & c) === c) null !== l && (l = l.next = { lane: 0, action: d.action, eagerReducer: d.eagerReducer, eagerState: d.eagerState, next: null }), n = d.eagerReducer === e ? d.eagerState : e(n, d.action); else { var h = { lane: c, action: d.action, eagerReducer: d.eagerReducer, eagerState: d.eagerState, next: null }; null === l ? (a = l = h, r = n) : l = l.next = h, Jr.lanes |= c, Ba |= c } d = d.next } while (null !== d && d !== o); null === l ? r = n : l.next = a, dn(n, t.memoizedState) || (Ps = !0), t .memoizedState = n, t.baseState = r, t.baseQueue = l, i.lastRenderedState = n } return [t.memoizedState, i.dispatch] } function hs(e) { var t = ls(), i = t.queue; if (null === i) throw Error(s(311)); i.lastRenderedReducer = e; var n = i.dispatch, o = i.pending, r = t.memoizedState; if (null !== o) { i.pending = null; var a = o = o.next; do { r = e(r, a.action), a = a.next } while (a !== o); dn(r, t.memoizedState) || (Ps = !0), t.memoizedState = r, null === t.baseQueue && (t.baseState = r), i.lastRenderedState = r } return [r, n] } function us(e, t, i) { var n = t._getVersion; n = n(t._source); var o = t._workInProgressVersionPrimary; if (null !== o ? e = o === n : (e = e.mutableReadLanes, (e = (Xr & e) === e) && (t._workInProgressVersionPrimary = n, Zr.push(t))), e) return i( t._source); throw Zr.push(t), Error(s(350)) } function gs(e, t, i, n) { var o = Ia; if (null === o) throw Error(s(349)); var r = t._getVersion, a = r(t._source), l = Yr.current, d = l.useState((function() { return us(o, t, i) })), c = d[1], h = d[0]; d = ts; var u = e.memoizedState, g = u.refs, p = g.getSnapshot, m = u.source; u = u.subscribe; var f = Jr; return e.memoizedState = { refs: g, source: t, subscribe: n }, l.useEffect((function() { g.getSnapshot = i, g.setSnapshot = c; var e = r(t._source); if (!dn(a, e)) { e = i(t._source), dn(h, e) || (c(e), e = cl(f), o.mutableReadLanes |= e & o.pendingLanes), e = o.mutableReadLanes, o.entangledLanes |= e; for (var n = o.entanglements, s = e; 0 < s;) { var l = 31 - Ut(s), d = 1 << l; n[l] |= e, s &= ~d } } }), [i, t, n]), l.useEffect((function() { return n(t._source, (function() { var e = g.getSnapshot, i = g.setSnapshot; try { i(e(t._source)); var n = cl(f); o.mutableReadLanes |= n & o.pendingLanes } catch (e) { i((function() { throw e })) } })) }), [t, n]), dn(p, i) && dn(m, t) && dn(u, n) || ((e = { pending: null, dispatch: null, lastRenderedReducer: ds, lastRenderedState: h }).dispatch = c = Is.bind(null, Jr, e), d.queue = e, d.baseQueue = null, h = us(o, t, i), d.memoizedState = d.baseState = h), h } function ps(e, t, i) { return gs(ls(), e, t, i) } function ms(e) { var t = as(); return "function" == typeof e && (e = e()), t.memoizedState = t.baseState = e, e = (e = t.queue = { pending: null, dispatch: null, lastRenderedReducer: ds, lastRenderedState: e }).dispatch = Is.bind(null, Jr, e), [t.memoizedState, e] } function fs(e, t, i, n) { return e = { tag: e, create: t, destroy: i, deps: n, next: null }, null === (t = Jr.updateQueue) ? (t = { lastEffect: null }, Jr.updateQueue = t, t.lastEffect = e.next = e) : null === (i = t.lastEffect) ? t.lastEffect = e.next = e : (n = i.next, i.next = e, e.next = n, t.lastEffect = e), e } function _s(e) { return e = { current: e }, as().memoizedState = e } function bs() { return ls().memoizedState } function vs(e, t, i, n) { var o = as(); Jr.flags |= e, o.memoizedState = fs(1 | t, i, void 0, void 0 === n ? null : n) } function ws(e, t, i, n) { var o = ls(); n = void 0 === n ? null : n; var r = void 0; if (null !== es) { var s = es.memoizedState; if (r = s.destroy, null !== n && rs(n, s.deps)) return void fs(t, i, r, n) } Jr.flags |= e, o.memoizedState = fs(1 | t, i, r, n) } function Cs(e, t) { return vs(516, 4, e, t) } function ys(e, t) { return ws(516, 4, e, t) } function Ss(e, t) { return ws(4, 2, e, t) } function xs(e, t) { return "function" == typeof t ? (e = e(), t(e), function() { t(null) }) : null != t ? (e = e(), t.current = e, function() { t.current = null }) : void 0 } function ks(e, t, i) { return i = null != i ? i.concat([e]) : null, ws(4, 2, xs.bind(null, t, e), i) } function Ls() {} function Ns(e, t) { var i = ls(); t = void 0 === t ? null : t; var n = i.memoizedState; return null !== n && null !== t && rs(t, n[1]) ? n[0] : (i.memoizedState = [ e, t ], e) } function Ds(e, t) { var i = ls(); t = void 0 === t ? null : t; var n = i.memoizedState; return null !== n && null !== t && rs(t, n[1]) ? n[0] : (e = e(), i.memoizedState = [ e, t ], e) } function Es(e, t) { var i = jo(); $o(98 > i ? 98 : i, (function() { e(!0) })), $o(97 < i ? 97 : i, (function() { var i = Qr.transition; Qr.transition = 1; try { e(!1), t() } finally { Qr.transition = i } })) } function Is(e, t, i) { var n = dl(), o = cl(e), r = { lane: o, action: i, eagerReducer: null, eagerState: null, next: null }, s = t.pending; if (null === s ? r.next = r : (r.next = s.next, s.next = r), t.pending = r, s = e.alternate, e === Jr || null !== s && s === Jr) ns = is = !0; else { if (0 === e.lanes && (null === s || 0 === s.lanes) && null !== (s = t.lastRenderedReducer)) try { var a = t.lastRenderedState, l = s(a, i); if (r.eagerReducer = s, r.eagerState = l, dn(l, a)) return } catch (e) {} hl(e, o, n) } } var Ts = { readContext: sr, useCallback: os, useContext: os, useEffect: os, useImperativeHandle: os, useLayoutEffect: os, useMemo: os, useReducer: os, useRef: os, useState: os, useDebugValue: os, useDeferredValue: os, useTransition: os, useMutableSource: os, useOpaqueIdentifier: os, unstable_isNewReconciler: !1 }, Ms = { readContext: sr, useCallback: function(e, t) { return as().memoizedState = [e, void 0 === t ? null : t], e }, useContext: sr, useEffect: Cs, useImperativeHandle: function(e, t, i) { return i = null != i ? i.concat([e]) : null, vs(4, 2, xs.bind(null, t, e), i) }, useLayoutEffect: function(e, t) { return vs(4, 2, e, t) }, useMemo: function(e, t) { var i = as(); return t = void 0 === t ? null : t, e = e(), i.memoizedState = [e, t], e }, useReducer: function(e, t, i) { var n = as(); return t = void 0 !== i ? i(t) : t, n.memoizedState = n.baseState = t, e = (e = n.queue = { pending: null, dispatch: null, lastRenderedReducer: e, lastRenderedState: t }).dispatch = Is.bind(null, Jr, e), [n.memoizedState, e] }, useRef: _s, useState: ms, useDebugValue: Ls, useDeferredValue: function(e) { var t = ms(e), i = t[0], n = t[1]; return Cs((function() { var t = Qr.transition; Qr.transition = 1; try { n(e) } finally { Qr.transition = t } }), [e]), i }, useTransition: function() { var e = ms(!1), t = e[0]; return _s(e = Es.bind(null, e[1])), [e, t] }, useMutableSource: function(e, t, i) { var n = as(); return n.memoizedState = { refs: { getSnapshot: t, setSnapshot: null }, source: e, subscribe: i }, gs(n, e, t, i) }, useOpaqueIdentifier: function() { if (Vr) { var e = !1, t = function(e) { return { $$typeof: O, toString: e, valueOf: e } }((function() { throw e || (e = !0, i("r:" + (Gn++).toString(36))), Error(s(355)) })), i = ms(t)[1]; return 0 == (2 & Jr.mode) && (Jr.flags |= 516, fs(5, (function() { i("r:" + (Gn++).toString(36)) }), void 0, null)), t } return ms(t = "r:" + (Gn++).toString(36)), t }, unstable_isNewReconciler: !1 }, As = { readContext: sr, useCallback: Ns, useContext: sr, useEffect: ys, useImperativeHandle: ks, useLayoutEffect: Ss, useMemo: Ds, useReducer: cs, useRef: bs, useState: function() { return cs(ds) }, useDebugValue: Ls, useDeferredValue: function(e) { var t = cs(ds), i = t[0], n = t[1]; return ys((function() { var t = Qr.transition; Qr.transition = 1; try { n(e) } finally { Qr.transition = t } }), [e]), i }, useTransition: function() { var e = cs(ds)[0]; return [bs().current, e] }, useMutableSource: ps, useOpaqueIdentifier: function() { return cs(ds)[0] }, unstable_isNewReconciler: !1 }, Rs = { readContext: sr, useCallback: Ns, useContext: sr, useEffect: ys, useImperativeHandle: ks, useLayoutEffect: Ss, useMemo: Ds, useReducer: hs, useRef: bs, useState: function() { return hs(ds) }, useDebugValue: Ls, useDeferredValue: function(e) { var t = hs(ds), i = t[0], n = t[1]; return ys((function() { var t = Qr.transition; Qr.transition = 1; try { n(e) } finally { Qr.transition = t } }), [e]), i }, useTransition: function() { var e = hs(ds)[0]; return [bs().current, e] }, useMutableSource: ps, useOpaqueIdentifier: function() { return hs(ds)[0] }, unstable_isNewReconciler: !1 }, Os = C.ReactCurrentOwner, Ps = !1; function Fs(e, t, i, n) { t.child = null === e ? Nr(t, null, i, n) : Lr(t, e.child, i, n) } function Bs(e, t, i, n, o) { i = i.render; var r = t.ref; return rr(t, o), n = ss(e, t, i, n, r, o), null === e || Ps ? (t.flags |= 1, Fs(e, t, n, o), t.child) : (t.updateQueue = e.updateQueue, t.flags &= -517, e.lanes &= ~o, ia(e, t, o)) } function Ws(e, t, i, n, o, r) { if (null === e) { var s = i.type; return "function" != typeof s || Hl(s) || void 0 !== s.defaultProps || null !== i.compare || void 0 !== i.defaultProps ? ((e = jl(i.type, null, n, t, t.mode, r)).ref = t.ref, e.return = t, t.child = e) : (t.tag = 15, t.type = s, zs(e, t, s, n, o, r)) } return s = e.child, 0 == (o & r) && (o = s.memoizedProps, (i = null !== (i = i.compare) ? i : hn)(o, n) && e.ref === t.ref) ? ia(e, t, r) : (t .flags |= 1, (e = Ul(s, n)).ref = t.ref, e.return = t, t.child = e) } function zs(e, t, i, n, o, r) { if (null !== e && hn(e.memoizedProps, n) && e.ref === t.ref) { if (Ps = !1, 0 == (r & o)) return t.lanes = e.lanes, ia(e, t, r); 0 != (16384 & e.flags) && (Ps = !0) } return Us(e, t, i, n, r) } function Vs(e, t, i) { var n = t.pendingProps, o = n.children, r = null !== e ? e.memoizedState : null; if ("hidden" === n.mode || "unstable-defer-without-hiding" === n.mode) if (0 == (4 & t.mode)) t.memoizedState = { baseLanes: 0 }, vl(0, i); else { if (0 == (1073741824 & i)) return e = null !== r ? r.baseLanes | i : i, t.lanes = t.childLanes = 1073741824, t.memoizedState = { baseLanes: e }, vl(0, e), null; t.memoizedState = { baseLanes: 0 }, vl(0, null !== r ? r.baseLanes : i) } else null !== r ? (n = r.baseLanes | i, t.memoizedState = null) : n = i, vl(0, n); return Fs(e, t, o, i), t.child } function Hs(e, t) { var i = t.ref; (null === e && null !== i || null !== e && e.ref !== i) && (t.flags |= 128) } function Us(e, t, i, n, o) { var r = _o(i) ? mo : go.current; return r = fo(t, r), rr(t, o), i = ss(e, t, i, n, r, o), null === e || Ps ? (t.flags |= 1, Fs(e, t, i, o), t.child) : (t.updateQueue = e.updateQueue, t.flags &= -517, e.lanes &= ~o, ia(e, t, o)) } function js(e, t, i, n, o) { if (_o(i)) { var r = !0; Co(t) } else r = !1; if (rr(t, o), null === t.stateNode) null !== e && (e.alternate = null, t .alternate = null, t.flags |= 2), vr(t, i, n), Cr(t, i, n, o), n = !0; else if (null === e) { var s = t.stateNode, a = t.memoizedProps; s.props = a; var l = s.context, d = i.contextType; d = "object" == typeof d && null !== d ? sr(d) : fo(t, d = _o(i) ? mo : go.current); var c = i.getDerivedStateFromProps, h = "function" == typeof c || "function" == typeof s.getSnapshotBeforeUpdate; h || "function" != typeof s.UNSAFE_componentWillReceiveProps && "function" != typeof s.componentWillReceiveProps || (a !== n || l !== d) && wr(t, s, n, d), ar = !1; var u = t.memoizedState; s.state = u, gr(t, n, s, o), l = t.memoizedState, a !== n || u !== l || po.current || ar ? ("function" == typeof c && (fr(t, i, c, n), l = t.memoizedState), ( a = ar || br(t, i, a, n, u, l, d)) ? (h || "function" != typeof s.UNSAFE_componentWillMount && "function" != typeof s.componentWillMount || ("function" == typeof s .componentWillMount && s.componentWillMount(), "function" == typeof s .UNSAFE_componentWillMount && s.UNSAFE_componentWillMount()), "function" == typeof s.componentDidMount && (t.flags |= 4)) : ( "function" == typeof s.componentDidMount && (t.flags |= 4), t.memoizedProps = n, t.memoizedState = l), s.props = n, s.state = l, s.context = d, n = a) : ("function" == typeof s.componentDidMount && (t.flags |= 4), n = ! 1) } else { s = t.stateNode, dr(e, t), a = t.memoizedProps, d = t.type === t.elementType ? a : Qo(t.type, a), s.props = d, h = t.pendingProps, u = s.context, l = "object" == typeof(l = i.contextType) && null !== l ? sr(l) : fo(t, l = _o(i) ? mo : go.current); var g = i.getDerivedStateFromProps; (c = "function" == typeof g || "function" == typeof s.getSnapshotBeforeUpdate) || "function" != typeof s.UNSAFE_componentWillReceiveProps && "function" != typeof s.componentWillReceiveProps || (a !== h || u !== l) && wr(t, s, n, l), ar = !1, u = t.memoizedState, s.state = u, gr(t, n, s, o); var p = t.memoizedState; a !== h || u !== p || po.current || ar ? ("function" == typeof g && (fr( t, i, g, n), p = t.memoizedState), (d = ar || br(t, i, d, n, u, p, l)) ? (c || "function" != typeof s.UNSAFE_componentWillUpdate && "function" != typeof s.componentWillUpdate || ("function" == typeof s.componentWillUpdate && s.componentWillUpdate(n, p, l), "function" == typeof s.UNSAFE_componentWillUpdate && s.UNSAFE_componentWillUpdate(n, p, l)), "function" == typeof s.componentDidUpdate && (t.flags |= 4), "function" == typeof s.getSnapshotBeforeUpdate && (t .flags |= 256)) : ("function" != typeof s.componentDidUpdate || a === e.memoizedProps && u === e.memoizedState || (t.flags |= 4), "function" != typeof s.getSnapshotBeforeUpdate || a === e.memoizedProps && u === e.memoizedState || (t.flags |= 256), t.memoizedProps = n, t.memoizedState = p), s.props = n, s.state = p, s.context = l, n = d) : ("function" != typeof s.componentDidUpdate || a === e.memoizedProps && u === e.memoizedState || (t.flags |= 4), "function" != typeof s.getSnapshotBeforeUpdate || a === e.memoizedProps && u === e.memoizedState || (t.flags |= 256), n = !1) } return Ks(e, t, i, n, r, o) } function Ks(e, t, i, n, o, r) { Hs(e, t); var s = 0 != (64 & t.flags); if (!n && !s) return o && yo(t, i, !1), ia(e, t, r); n = t.stateNode, Os.current = t; var a = s && "function" != typeof i.getDerivedStateFromError ? null : n.render(); return t.flags |= 1, null !== e && s ? (t.child = Lr(t, e.child, null, r), t.child = Lr(t, null, a, r)) : Fs(e, t, a, r), t.memoizedState = n.state, o && yo(t, i, !0), t.child } function $s(e) { var t = e.stateNode; t.pendingContext ? vo(0, t.pendingContext, t.pendingContext !== t.context) : t.context && vo(0, t.context, !1), Ar(e, t.containerInfo) } var qs, Zs, Gs, Ys = { dehydrated: null, retryLane: 0 }; function Qs(e, t, i) { var n, o = t.pendingProps, r = Fr.current, s = !1; return (n = 0 != (64 & t.flags)) || (n = (null === e || null !== e.memoizedState) && 0 != (2 & r)), n ? (s = !0, t.flags &= -65) : null !== e && null === e .memoizedState || void 0 === o.fallback || !0 === o.unstable_avoidThisFallback || (r |= 1), ho(Fr, 1 & r), null === e ? (void 0 !== o.fallback && jr(t), e = o.children, r = o.fallback, s ? (e = Xs(t, e, r, i), t.child.memoizedState = { baseLanes: i }, t.memoizedState = Ys, e) : "number" == typeof o.unstable_expectedLoadTime ? (e = Xs(t, e, r, i), t.child.memoizedState = { baseLanes: i }, t.memoizedState = Ys, t.lanes = 33554432, e) : ((i = $l({ mode: "visible", children: e }, t.mode, i, null)).return = t, t.child = i)) : (e.memoizedState, s ? (o = function(e, t, i, n, o) { var r = t.mode, s = e.child; e = s.sibling; var a = { mode: "hidden", children: i }; return 0 == (2 & r) && t.child !== s ? ((i = t.child).childLanes = 0, i.pendingProps = a, null !== (s = i.lastEffect) ? (t.firstEffect = i.firstEffect, t.lastEffect = s, s.nextEffect = null) : t.firstEffect = t.lastEffect = null) : i = Ul(s, a), null !== e ? n = Ul(e, n) : ( n = Kl(n, r, o, null)).flags |= 2, n.return = t, i.return = t, i.sibling = n, t.child = i, n }(e, t, o.children, o.fallback, i), s = t.child, r = e.child.memoizedState, s.memoizedState = null === r ? { baseLanes: i } : { baseLanes: r.baseLanes | i }, s.childLanes = e.childLanes & ~i, t.memoizedState = Ys, o) : (i = function(e, t, i, n) { var o = e.child; return e = o.sibling, i = Ul(o, { mode: "visible", children: i }), 0 == (2 & t.mode) && (i.lanes = n), i.return = t, i.sibling = null, null !== e && (e.nextEffect = null, e.flags = 8, t.firstEffect = t.lastEffect = e), t.child = i }(e, t, o.children, i), t.memoizedState = null, i)) } function Xs(e, t, i, n) { var o = e.mode, r = e.child; return t = { mode: "hidden", children: t }, 0 == (2 & o) && null !== r ? (r.childLanes = 0, r.pendingProps = t) : r = $l(t, o, 0, null), i = Kl(i, o, n, null), r.return = e, i.return = e, r.sibling = i, e.child = r, i } function Js(e, t) { e.lanes |= t; var i = e.alternate; null !== i && (i.lanes |= t), or(e.return, t) } function ea(e, t, i, n, o, r) { var s = e.memoizedState; null === s ? e.memoizedState = { isBackwards: t, rendering: null, renderingStartTime: 0, last: n, tail: i, tailMode: o, lastEffect: r } : (s.isBackwards = t, s.rendering = null, s.renderingStartTime = 0, s .last = n, s.tail = i, s.tailMode = o, s.lastEffect = r) } function ta(e, t, i) { var n = t.pendingProps, o = n.revealOrder, r = n.tail; if (Fs(e, t, n.children, i), 0 != (2 & (n = Fr.current))) n = 1 & n | 2, t.flags |= 64; else { if (null !== e && 0 != (64 & e.flags)) e: for (e = t.child; null !== e;) { if (13 === e.tag) null !== e.memoizedState && Js(e, i); else if (19 === e.tag) Js(e, i); else if (null !== e.child) { e.child.return = e, e = e.child; continue } if (e === t) break e; for (; null === e.sibling;) { if (null === e.return || e.return === t) break e; e = e.return } e.sibling.return = e.return, e = e.sibling } n &= 1 } if (ho(Fr, n), 0 == (2 & t.mode)) t.memoizedState = null; else switch (o) { case "forwards": for (i = t.child, o = null; null !== i;) null !== (e = i.alternate) && null === Br(e) && (o = i), i = i.sibling; null === (i = o) ? (o = t.child, t.child = null) : (o = i.sibling, i.sibling = null), ea(t, !1, o, i, r, t.lastEffect); break; case "backwards": for (i = null, o = t.child, t.child = null; null !== o;) { if (null !== (e = o.alternate) && null === Br(e)) { t.child = o; break } e = o.sibling, o.sibling = i, i = o, o = e } ea(t, !0, i, null, r, t.lastEffect); break; case "together": ea(t, !1, null, null, void 0, t.lastEffect); break; default: t.memoizedState = null } return t.child } function ia(e, t, i) { if (null !== e && (t.dependencies = e.dependencies), Ba |= t.lanes, 0 != (i & t.childLanes)) { if (null !== e && t.child !== e.child) throw Error(s(153)); if (null !== t.child) { for (i = Ul(e = t.child, e.pendingProps), t.child = i, i.return = t; null !== e.sibling;) e = e.sibling, (i = i.sibling = Ul(e, e.pendingProps)).return = t; i.sibling = null } return t.child } return null } function na(e, t) { if (!Vr) switch (e.tailMode) { case "hidden": t = e.tail; for (var i = null; null !== t;) null !== t.alternate && (i = t), t = t.sibling; null === i ? e.tail = null : i.sibling = null; break; case "collapsed": i = e.tail; for (var n = null; null !== i;) null !== i.alternate && (n = i), i = i.sibling; null === n ? t || null === e.tail ? e.tail = null : e.tail.sibling = null : n.sibling = null } } function oa(e, t, i) { var n = t.pendingProps; switch (t.tag) { case 2: case 16: case 15: case 0: case 11: case 7: case 8: case 12: case 9: case 14: return null; case 1: case 17: return _o(t.type) && bo(), null; case 3: return Rr(), co(po), co(go), Gr(), (n = t.stateNode).pendingContext && (n.context = n.pendingContext, n.pendingContext = null), null !== e && null !== e.child || ($r(t) ? t.flags |= 4 : n.hydrate || (t.flags |= 256)), null; case 5: Pr(t); var r = Mr(Tr.current); if (i = t.type, null !== e && null != t.stateNode) Zs(e, t, i, n), e.ref !== t.ref && (t.flags |= 128); else { if (!n) { if (null === t.stateNode) throw Error(s(166)); return null } if (e = Mr(Er.current), $r(t)) { n = t.stateNode, i = t.type; var a = t.memoizedProps; switch (n[Qn] = t, n[Xn] = a, i) { case "dialog": En("cancel", n), En("close", n); break; case "iframe": case "object": case "embed": En("load", n); break; case "video": case "audio": for (e = 0; e < kn.length; e++) En(kn[e], n); break; case "source": En("error", n); break; case "img": case "image": case "link": En("error", n), En("load", n); break; case "details": En("toggle", n); break; case "input": ee(n, a), En("invalid", n); break; case "select": n._wrapperState = { wasMultiple: !!a.multiple }, En("invalid", n); break; case "textarea": le(n, a), En("invalid", n) } for (var d in Se(i, a), e = null, a) a.hasOwnProperty(d) && (r = a[d], "children" === d ? "string" == typeof r ? n.textContent !== r && ( e = ["children", r]) : "number" == typeof r && n.textContent !== "" + r && (e = ["children", "" + r]) : l.hasOwnProperty(d) && null != r && "onScroll" === d && En("scroll", n)); switch (i) { case "input": Y(n), ne(n, a, !0); break; case "textarea": Y(n), ce(n); break; case "select": case "option": break; default: "function" == typeof a.onClick && (n.onclick = Wn) } n = e, t.updateQueue = n, null !== n && (t.flags |= 4) } else { switch (d = 9 === r.nodeType ? r : r.ownerDocument, e === he && (e = ue(i)), e === he ? "script" === i ? ((e = d.createElement("div")).innerHTML = "