123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743 |
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./freemarker2-CfdpeQII.js","./index-D7n5ZNak.js","./index-CFSY6fn5.css","./index-BLvaQi9o.js","./index-DlzDd1un.css","./ppt-DHRBfASM.js","./excel-DA4Jg-WR.js","./video-SybPbBtI.js","./index-dC5UiZEt.js","./handlebars-D_zh2eoQ.js","./html-DP_aZkqC.js","./javascript-ZhKeO5eX.js","./typescript-C2eHGO45.js","./liquid-DSP5qmFQ.js","./mdx-CItUZfhc.js","./python-C-aG2PRa.js","./razor-CZiad-Tu.js","./xml-Cl6sRh62.js","./yaml-DlEYMLm9.js","./cssMode-BKiSyxm6.js","./htmlMode-Be5m4GVS.js","./jsonMode-C-fGz9zy.js","./tsMode-Dc0KogTY.js"])))=>i.map(i=>d[i]);
- var Ct=Object.defineProperty;var bt=(o,e,t)=>e in o?Ct(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var Oe=(o,e,t)=>bt(o,typeof e!="symbol"?e+"":e,t);import{x as getAugmentedNamespace,y as getDefaultExportFromCjs,z as service,A as getStore,c as createElementBlock,o as openBlock,a as useRouter,r as ref,B as toRefs,C as reactive,w as watch,e as resolveComponent,D as resolveDirective,E as createBlock,j as withCtx,h as createBaseVNode,i as createVNode,t as toDisplayString,m as unref,G as close_default,H as withDirectives,f as createCommentVNode,I as search_default,J as normalizeClass,p as normalizeStyle,n as createTextVNode,K as isArray,s as nextTick,_ as _export_sfc,L as defineComponent,M as mergeModels,g as getCurrentInstance,N as useModel,O as renderSlot,P as vShow,Q as __unplugin_components_0,R as withModifiers,S as ElMessage,b as computed,T as onUnmounted,v as onMounted,d as useUserStore,F as Fragment,V as __vitePreload,u as useRoute,W as onBeforeUnmount,k as renderList,l as isRef,X as delete_default,Y as refresh_default,Z as edit_default,$ as document_copy_default,a0 as collection_default,a1 as download_default,a2 as blobValidate,a3 as FileSaver_minExports,a4 as errorCode}from"./index-D7n5ZNak.js";import{r as requireVue,V as VueOfficeDocx}from"./index-BLvaQi9o.js";import{p as ppticon,f as flodericon}from"./ppt-DHRBfASM.js";import{p as pdficon,c as csvicon,e as excelicon,w as wordicon}from"./excel-DA4Jg-WR.js";import{m as mp3Png,v as videoPng,n as nonePng,o as ofdPng,a as visPng,p as psPng,c as cadPng,z as zipPng,s as svgPng,e as epubPng,t as textPng,i as imagePng,g as gifPng,f as flowPng,b as mapPng,x as xmindPng,d as mdPng,u as urlPng,l as luckysheetPng,h as htmlPng}from"./video-SybPbBtI.js";import{d as downLoadFileByPath,a as copyText}from"./index-dC5UiZEt.js";var vuedraggable_umd$1={exports:{}};/**!
- * Sortable 1.14.0
- * @author RubaXa <trash@rubaxa.org>
- * @author owenm <owen23355@gmail.com>
- * @license MIT
- */function ownKeys(o,e){var t=Object.keys(o);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(o);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(o,n).enumerable})),t.push.apply(t,i)}return t}function _objectSpread2(o){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?ownKeys(Object(t),!0).forEach(function(i){_defineProperty(o,i,t[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(i){Object.defineProperty(o,i,Object.getOwnPropertyDescriptor(t,i))})}return o}function _typeof(o){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_typeof=function(e){return typeof e}:_typeof=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof(o)}function _defineProperty(o,e,t){return e in o?Object.defineProperty(o,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):o[e]=t,o}function _extends(){return _extends=Object.assign||function(o){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(o[i]=t[i])}return o},_extends.apply(this,arguments)}function _objectWithoutPropertiesLoose(o,e){if(o==null)return{};var t={},i=Object.keys(o),n,r;for(r=0;r<i.length;r++)n=i[r],!(e.indexOf(n)>=0)&&(t[n]=o[n]);return t}function _objectWithoutProperties(o,e){if(o==null)return{};var t=_objectWithoutPropertiesLoose(o,e),i,n;if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(o);for(n=0;n<r.length;n++)i=r[n],!(e.indexOf(i)>=0)&&Object.prototype.propertyIsEnumerable.call(o,i)&&(t[i]=o[i])}return t}function _toConsumableArray(o){return _arrayWithoutHoles(o)||_iterableToArray(o)||_unsupportedIterableToArray(o)||_nonIterableSpread()}function _arrayWithoutHoles(o){if(Array.isArray(o))return _arrayLikeToArray(o)}function _iterableToArray(o){if(typeof Symbol<"u"&&o[Symbol.iterator]!=null||o["@@iterator"]!=null)return Array.from(o)}function _unsupportedIterableToArray(o,e){if(o){if(typeof o=="string")return _arrayLikeToArray(o,e);var t=Object.prototype.toString.call(o).slice(8,-1);if(t==="Object"&&o.constructor&&(t=o.constructor.name),t==="Map"||t==="Set")return Array.from(o);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return _arrayLikeToArray(o,e)}}function _arrayLikeToArray(o,e){(e==null||e>o.length)&&(e=o.length);for(var t=0,i=new Array(e);t<e;t++)i[t]=o[t];return i}function _nonIterableSpread(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var version="1.14.0";function userAgent$2(o){if(typeof window<"u"&&window.navigator)return!!navigator.userAgent.match(o)}var IE11OrLess=userAgent$2(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),Edge=userAgent$2(/Edge/i),FireFox=userAgent$2(/firefox/i),Safari=userAgent$2(/safari/i)&&!userAgent$2(/chrome/i)&&!userAgent$2(/android/i),IOS=userAgent$2(/iP(ad|od|hone)/i),ChromeForAndroid=userAgent$2(/chrome/i)&&userAgent$2(/android/i),captureMode={capture:!1,passive:!1};function on(o,e,t){o.addEventListener(e,t,!IE11OrLess&&captureMode)}function off(o,e,t){o.removeEventListener(e,t,!IE11OrLess&&captureMode)}function matches(o,e){if(e){if(e[0]===">"&&(e=e.substring(1)),o)try{if(o.matches)return o.matches(e);if(o.msMatchesSelector)return o.msMatchesSelector(e);if(o.webkitMatchesSelector)return o.webkitMatchesSelector(e)}catch{return!1}return!1}}function getParentOrHost(o){return o.host&&o!==document&&o.host.nodeType?o.host:o.parentNode}function closest(o,e,t,i){if(o){t=t||document;do{if(e!=null&&(e[0]===">"?o.parentNode===t&&matches(o,e):matches(o,e))||i&&o===t)return o;if(o===t)break}while(o=getParentOrHost(o))}return null}var R_SPACE=/\s+/g;function toggleClass(o,e,t){if(o&&e)if(o.classList)o.classList[t?"add":"remove"](e);else{var i=(" "+o.className+" ").replace(R_SPACE," ").replace(" "+e+" "," ");o.className=(i+(t?" "+e:"")).replace(R_SPACE," ")}}function css(o,e,t){var i=o&&o.style;if(i){if(t===void 0)return document.defaultView&&document.defaultView.getComputedStyle?t=document.defaultView.getComputedStyle(o,""):o.currentStyle&&(t=o.currentStyle),e===void 0?t:t[e];!(e in i)&&e.indexOf("webkit")===-1&&(e="-webkit-"+e),i[e]=t+(typeof t=="string"?"":"px")}}function matrix(o,e){var t="";if(typeof o=="string")t=o;else do{var i=css(o,"transform");i&&i!=="none"&&(t=i+" "+t)}while(!e&&(o=o.parentNode));var n=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return n&&new n(t)}function find(o,e,t){if(o){var i=o.getElementsByTagName(e),n=0,r=i.length;if(t)for(;n<r;n++)t(i[n],n);return i}return[]}function getWindowScrollingElement(){var o=document.scrollingElement;return o||document.documentElement}function getRect(o,e,t,i,n){if(!(!o.getBoundingClientRect&&o!==window)){var r,s,a,l,d,c,u;if(o!==window&&o.parentNode&&o!==getWindowScrollingElement()?(r=o.getBoundingClientRect(),s=r.top,a=r.left,l=r.bottom,d=r.right,c=r.height,u=r.width):(s=0,a=0,l=window.innerHeight,d=window.innerWidth,c=window.innerHeight,u=window.innerWidth),(e||t)&&o!==window&&(n=n||o.parentNode,!IE11OrLess))do if(n&&n.getBoundingClientRect&&(css(n,"transform")!=="none"||t&&css(n,"position")!=="static")){var g=n.getBoundingClientRect();s-=g.top+parseInt(css(n,"border-top-width")),a-=g.left+parseInt(css(n,"border-left-width")),l=s+r.height,d=a+r.width;break}while(n=n.parentNode);if(i&&o!==window){var f=matrix(n||o),p=f&&f.a,m=f&&f.d;f&&(s/=m,a/=p,u/=p,c/=m,l=s+c,d=a+u)}return{top:s,left:a,bottom:l,right:d,width:u,height:c}}}function isScrolledPast(o,e,t){for(var i=getParentAutoScrollElement(o,!0),n=getRect(o)[e];i;){var r=getRect(i)[t],s=void 0;if(s=n>=r,!s)return i;if(i===getWindowScrollingElement())break;i=getParentAutoScrollElement(i,!1)}return!1}function getChild(o,e,t,i){for(var n=0,r=0,s=o.children;r<s.length;){if(s[r].style.display!=="none"&&s[r]!==Sortable.ghost&&(i||s[r]!==Sortable.dragged)&&closest(s[r],t.draggable,o,!1)){if(n===e)return s[r];n++}r++}return null}function lastChild(o,e){for(var t=o.lastElementChild;t&&(t===Sortable.ghost||css(t,"display")==="none"||e&&!matches(t,e));)t=t.previousElementSibling;return t||null}function index$2(o,e){var t=0;if(!o||!o.parentNode)return-1;for(;o=o.previousElementSibling;)o.nodeName.toUpperCase()!=="TEMPLATE"&&o!==Sortable.clone&&(!e||matches(o,e))&&t++;return t}function getRelativeScrollOffset(o){var e=0,t=0,i=getWindowScrollingElement();if(o)do{var n=matrix(o),r=n.a,s=n.d;e+=o.scrollLeft*r,t+=o.scrollTop*s}while(o!==i&&(o=o.parentNode));return[e,t]}function indexOfObject(o,e){for(var t in o)if(o.hasOwnProperty(t)){for(var i in e)if(e.hasOwnProperty(i)&&e[i]===o[t][i])return Number(t)}return-1}function getParentAutoScrollElement(o,e){if(!o||!o.getBoundingClientRect)return getWindowScrollingElement();var t=o,i=!1;do if(t.clientWidth<t.scrollWidth||t.clientHeight<t.scrollHeight){var n=css(t);if(t.clientWidth<t.scrollWidth&&(n.overflowX=="auto"||n.overflowX=="scroll")||t.clientHeight<t.scrollHeight&&(n.overflowY=="auto"||n.overflowY=="scroll")){if(!t.getBoundingClientRect||t===document.body)return getWindowScrollingElement();if(i||e)return t;i=!0}}while(t=t.parentNode);return getWindowScrollingElement()}function extend(o,e){if(o&&e)for(var t in e)e.hasOwnProperty(t)&&(o[t]=e[t]);return o}function isRectEqual(o,e){return Math.round(o.top)===Math.round(e.top)&&Math.round(o.left)===Math.round(e.left)&&Math.round(o.height)===Math.round(e.height)&&Math.round(o.width)===Math.round(e.width)}var _throttleTimeout;function throttle(o,e){return function(){if(!_throttleTimeout){var t=arguments,i=this;t.length===1?o.call(i,t[0]):o.apply(i,t),_throttleTimeout=setTimeout(function(){_throttleTimeout=void 0},e)}}}function cancelThrottle(){clearTimeout(_throttleTimeout),_throttleTimeout=void 0}function scrollBy(o,e,t){o.scrollLeft+=e,o.scrollTop+=t}function clone$1(o){var e=window.Polymer,t=window.jQuery||window.Zepto;return e&&e.dom?e.dom(o).cloneNode(!0):t?t(o).clone(!0)[0]:o.cloneNode(!0)}function setRect(o,e){css(o,"position","absolute"),css(o,"top",e.top),css(o,"left",e.left),css(o,"width",e.width),css(o,"height",e.height)}function unsetRect(o){css(o,"position",""),css(o,"top",""),css(o,"left",""),css(o,"width",""),css(o,"height","")}var expando="Sortable"+new Date().getTime();function AnimationStateManager(){var o=[],e;return{captureAnimationState:function(){if(o=[],!!this.options.animation){var i=[].slice.call(this.el.children);i.forEach(function(n){if(!(css(n,"display")==="none"||n===Sortable.ghost)){o.push({target:n,rect:getRect(n)});var r=_objectSpread2({},o[o.length-1].rect);if(n.thisAnimationDuration){var s=matrix(n,!0);s&&(r.top-=s.f,r.left-=s.e)}n.fromRect=r}})}},addAnimationState:function(i){o.push(i)},removeAnimationState:function(i){o.splice(indexOfObject(o,{target:i}),1)},animateAll:function(i){var n=this;if(!this.options.animation){clearTimeout(e),typeof i=="function"&&i();return}var r=!1,s=0;o.forEach(function(a){var l=0,d=a.target,c=d.fromRect,u=getRect(d),g=d.prevFromRect,f=d.prevToRect,p=a.rect,m=matrix(d,!0);m&&(u.top-=m.f,u.left-=m.e),d.toRect=u,d.thisAnimationDuration&&isRectEqual(g,u)&&!isRectEqual(c,u)&&(p.top-u.top)/(p.left-u.left)===(c.top-u.top)/(c.left-u.left)&&(l=calculateRealTime(p,g,f,n.options)),isRectEqual(u,c)||(d.prevFromRect=c,d.prevToRect=u,l||(l=n.options.animation),n.animate(d,p,u,l)),l&&(r=!0,s=Math.max(s,l),clearTimeout(d.animationResetTimer),d.animationResetTimer=setTimeout(function(){d.animationTime=0,d.prevFromRect=null,d.fromRect=null,d.prevToRect=null,d.thisAnimationDuration=null},l),d.thisAnimationDuration=l)}),clearTimeout(e),r?e=setTimeout(function(){typeof i=="function"&&i()},s):typeof i=="function"&&i(),o=[]},animate:function(i,n,r,s){if(s){css(i,"transition",""),css(i,"transform","");var a=matrix(this.el),l=a&&a.a,d=a&&a.d,c=(n.left-r.left)/(l||1),u=(n.top-r.top)/(d||1);i.animatingX=!!c,i.animatingY=!!u,css(i,"transform","translate3d("+c+"px,"+u+"px,0)"),this.forRepaintDummy=repaint(i),css(i,"transition","transform "+s+"ms"+(this.options.easing?" "+this.options.easing:"")),css(i,"transform","translate3d(0,0,0)"),typeof i.animated=="number"&&clearTimeout(i.animated),i.animated=setTimeout(function(){css(i,"transition",""),css(i,"transform",""),i.animated=!1,i.animatingX=!1,i.animatingY=!1},s)}}}}function repaint(o){return o.offsetWidth}function calculateRealTime(o,e,t,i){return Math.sqrt(Math.pow(e.top-o.top,2)+Math.pow(e.left-o.left,2))/Math.sqrt(Math.pow(e.top-t.top,2)+Math.pow(e.left-t.left,2))*i.animation}var plugins=[],defaults={initializeByDefault:!0},PluginManager={mount:function(e){for(var t in defaults)defaults.hasOwnProperty(t)&&!(t in e)&&(e[t]=defaults[t]);plugins.forEach(function(i){if(i.pluginName===e.pluginName)throw"Sortable: Cannot mount plugin ".concat(e.pluginName," more than once")}),plugins.push(e)},pluginEvent:function(e,t,i){var n=this;this.eventCanceled=!1,i.cancel=function(){n.eventCanceled=!0};var r=e+"Global";plugins.forEach(function(s){t[s.pluginName]&&(t[s.pluginName][r]&&t[s.pluginName][r](_objectSpread2({sortable:t},i)),t.options[s.pluginName]&&t[s.pluginName][e]&&t[s.pluginName][e](_objectSpread2({sortable:t},i)))})},initializePlugins:function(e,t,i,n){plugins.forEach(function(a){var l=a.pluginName;if(!(!e.options[l]&&!a.initializeByDefault)){var d=new a(e,t,e.options);d.sortable=e,d.options=e.options,e[l]=d,_extends(i,d.defaults)}});for(var r in e.options)if(e.options.hasOwnProperty(r)){var s=this.modifyOption(e,r,e.options[r]);typeof s<"u"&&(e.options[r]=s)}},getEventProperties:function(e,t){var i={};return plugins.forEach(function(n){typeof n.eventProperties=="function"&&_extends(i,n.eventProperties.call(t[n.pluginName],e))}),i},modifyOption:function(e,t,i){var n;return plugins.forEach(function(r){e[r.pluginName]&&r.optionListeners&&typeof r.optionListeners[t]=="function"&&(n=r.optionListeners[t].call(e[r.pluginName],i))}),n}};function dispatchEvent(o){var e=o.sortable,t=o.rootEl,i=o.name,n=o.targetEl,r=o.cloneEl,s=o.toEl,a=o.fromEl,l=o.oldIndex,d=o.newIndex,c=o.oldDraggableIndex,u=o.newDraggableIndex,g=o.originalEvent,f=o.putSortable,p=o.extraEventProperties;if(e=e||t&&t[expando],!!e){var m,b=e.options,_="on"+i.charAt(0).toUpperCase()+i.substr(1);window.CustomEvent&&!IE11OrLess&&!Edge?m=new CustomEvent(i,{bubbles:!0,cancelable:!0}):(m=document.createEvent("Event"),m.initEvent(i,!0,!0)),m.to=s||t,m.from=a||t,m.item=n||t,m.clone=r,m.oldIndex=l,m.newIndex=d,m.oldDraggableIndex=c,m.newDraggableIndex=u,m.originalEvent=g,m.pullMode=f?f.lastPutMode:void 0;var C=_objectSpread2(_objectSpread2({},p),PluginManager.getEventProperties(i,e));for(var S in C)m[S]=C[S];t&&t.dispatchEvent(m),b[_]&&b[_].call(e,m)}}var _excluded=["evt"],pluginEvent=function(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=i.evt,r=_objectWithoutProperties(i,_excluded);PluginManager.pluginEvent.bind(Sortable)(e,t,_objectSpread2({dragEl,parentEl,ghostEl,rootEl,nextEl,lastDownEl,cloneEl,cloneHidden,dragStarted:moved,putSortable,activeSortable:Sortable.active,originalEvent:n,oldIndex,oldDraggableIndex,newIndex,newDraggableIndex,hideGhostForTarget:_hideGhostForTarget,unhideGhostForTarget:_unhideGhostForTarget,cloneNowHidden:function(){cloneHidden=!0},cloneNowShown:function(){cloneHidden=!1},dispatchSortableEvent:function(a){_dispatchEvent({sortable:t,name:a,originalEvent:n})}},r))};function _dispatchEvent(o){dispatchEvent(_objectSpread2({putSortable,cloneEl,targetEl:dragEl,rootEl,oldIndex,oldDraggableIndex,newIndex,newDraggableIndex},o))}var dragEl,parentEl,ghostEl,rootEl,nextEl,lastDownEl,cloneEl,cloneHidden,oldIndex,newIndex,oldDraggableIndex,newDraggableIndex,activeGroup,putSortable,awaitingDragStarted=!1,ignoreNextClick=!1,sortables=[],tapEvt,touchEvt,lastDx,lastDy,tapDistanceLeft,tapDistanceTop,moved,lastTarget,lastDirection,pastFirstInvertThresh=!1,isCircumstantialInvert=!1,targetMoveDistance,ghostRelativeParent,ghostRelativeParentInitialScroll=[],_silent=!1,savedInputChecked=[],documentExists=typeof document<"u",PositionGhostAbsolutely=IOS,CSSFloatProperty=Edge||IE11OrLess?"cssFloat":"float",supportDraggable=documentExists&&!ChromeForAndroid&&!IOS&&"draggable"in document.createElement("div"),supportCssPointerEvents=function(){if(documentExists){if(IE11OrLess)return!1;var o=document.createElement("x");return o.style.cssText="pointer-events:auto",o.style.pointerEvents==="auto"}}(),_detectDirection=function(e,t){var i=css(e),n=parseInt(i.width)-parseInt(i.paddingLeft)-parseInt(i.paddingRight)-parseInt(i.borderLeftWidth)-parseInt(i.borderRightWidth),r=getChild(e,0,t),s=getChild(e,1,t),a=r&&css(r),l=s&&css(s),d=a&&parseInt(a.marginLeft)+parseInt(a.marginRight)+getRect(r).width,c=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+getRect(s).width;if(i.display==="flex")return i.flexDirection==="column"||i.flexDirection==="column-reverse"?"vertical":"horizontal";if(i.display==="grid")return i.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(r&&a.float&&a.float!=="none"){var u=a.float==="left"?"left":"right";return s&&(l.clear==="both"||l.clear===u)?"vertical":"horizontal"}return r&&(a.display==="block"||a.display==="flex"||a.display==="table"||a.display==="grid"||d>=n&&i[CSSFloatProperty]==="none"||s&&i[CSSFloatProperty]==="none"&&d+c>n)?"vertical":"horizontal"},_dragElInRowColumn=function(e,t,i){var n=i?e.left:e.top,r=i?e.right:e.bottom,s=i?e.width:e.height,a=i?t.left:t.top,l=i?t.right:t.bottom,d=i?t.width:t.height;return n===a||r===l||n+s/2===a+d/2},_detectNearestEmptySortable=function(e,t){var i;return sortables.some(function(n){var r=n[expando].options.emptyInsertThreshold;if(!(!r||lastChild(n))){var s=getRect(n),a=e>=s.left-r&&e<=s.right+r,l=t>=s.top-r&&t<=s.bottom+r;if(a&&l)return i=n}}),i},_prepareGroup=function(e){function t(r,s){return function(a,l,d,c){var u=a.options.group.name&&l.options.group.name&&a.options.group.name===l.options.group.name;if(r==null&&(s||u))return!0;if(r==null||r===!1)return!1;if(s&&r==="clone")return r;if(typeof r=="function")return t(r(a,l,d,c),s)(a,l,d,c);var g=(s?a:l).options.group.name;return r===!0||typeof r=="string"&&r===g||r.join&&r.indexOf(g)>-1}}var i={},n=e.group;(!n||_typeof(n)!="object")&&(n={name:n}),i.name=n.name,i.checkPull=t(n.pull,!0),i.checkPut=t(n.put),i.revertClone=n.revertClone,e.group=i},_hideGhostForTarget=function(){!supportCssPointerEvents&&ghostEl&&css(ghostEl,"display","none")},_unhideGhostForTarget=function(){!supportCssPointerEvents&&ghostEl&&css(ghostEl,"display","")};documentExists&&document.addEventListener("click",function(o){if(ignoreNextClick)return o.preventDefault(),o.stopPropagation&&o.stopPropagation(),o.stopImmediatePropagation&&o.stopImmediatePropagation(),ignoreNextClick=!1,!1},!0);var nearestEmptyInsertDetectEvent=function(e){if(dragEl){e=e.touches?e.touches[0]:e;var t=_detectNearestEmptySortable(e.clientX,e.clientY);if(t){var i={};for(var n in e)e.hasOwnProperty(n)&&(i[n]=e[n]);i.target=i.rootEl=t,i.preventDefault=void 0,i.stopPropagation=void 0,t[expando]._onDragOver(i)}}},_checkOutsideTargetEl=function(e){dragEl&&dragEl.parentNode[expando]._isOutsideThisEl(e.target)};function Sortable(o,e){if(!(o&&o.nodeType&&o.nodeType===1))throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(o));this.el=o,this.options=e=_extends({},e),o[expando]=this;var t={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(o.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return _detectDirection(o,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(s,a){s.setData("Text",a.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:Sortable.supportPointer!==!1&&"PointerEvent"in window&&!Safari,emptyInsertThreshold:5};PluginManager.initializePlugins(this,o,t);for(var i in t)!(i in e)&&(e[i]=t[i]);_prepareGroup(e);for(var n in this)n.charAt(0)==="_"&&typeof this[n]=="function"&&(this[n]=this[n].bind(this));this.nativeDraggable=e.forceFallback?!1:supportDraggable,this.nativeDraggable&&(this.options.touchStartThreshold=1),e.supportPointer?on(o,"pointerdown",this._onTapStart):(on(o,"mousedown",this._onTapStart),on(o,"touchstart",this._onTapStart)),this.nativeDraggable&&(on(o,"dragover",this),on(o,"dragenter",this)),sortables.push(this.el),e.store&&e.store.get&&this.sort(e.store.get(this)||[]),_extends(this,AnimationStateManager())}Sortable.prototype={constructor:Sortable,_isOutsideThisEl:function(e){!this.el.contains(e)&&e!==this.el&&(lastTarget=null)},_getDirection:function(e,t){return typeof this.options.direction=="function"?this.options.direction.call(this,e,t,dragEl):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,i=this.el,n=this.options,r=n.preventOnFilter,s=e.type,a=e.touches&&e.touches[0]||e.pointerType&&e.pointerType==="touch"&&e,l=(a||e).target,d=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||l,c=n.filter;if(_saveInputCheckedState(i),!dragEl&&!(/mousedown|pointerdown/.test(s)&&e.button!==0||n.disabled)&&!d.isContentEditable&&!(!this.nativeDraggable&&Safari&&l&&l.tagName.toUpperCase()==="SELECT")&&(l=closest(l,n.draggable,i,!1),!(l&&l.animated)&&lastDownEl!==l)){if(oldIndex=index$2(l),oldDraggableIndex=index$2(l,n.draggable),typeof c=="function"){if(c.call(this,e,l,this)){_dispatchEvent({sortable:t,rootEl:d,name:"filter",targetEl:l,toEl:i,fromEl:i}),pluginEvent("filter",t,{evt:e}),r&&e.cancelable&&e.preventDefault();return}}else if(c&&(c=c.split(",").some(function(u){if(u=closest(d,u.trim(),i,!1),u)return _dispatchEvent({sortable:t,rootEl:u,name:"filter",targetEl:l,fromEl:i,toEl:i}),pluginEvent("filter",t,{evt:e}),!0}),c)){r&&e.cancelable&&e.preventDefault();return}n.handle&&!closest(d,n.handle,i,!1)||this._prepareDragStart(e,a,l)}}},_prepareDragStart:function(e,t,i){var n=this,r=n.el,s=n.options,a=r.ownerDocument,l;if(i&&!dragEl&&i.parentNode===r){var d=getRect(i);if(rootEl=r,dragEl=i,parentEl=dragEl.parentNode,nextEl=dragEl.nextSibling,lastDownEl=i,activeGroup=s.group,Sortable.dragged=dragEl,tapEvt={target:dragEl,clientX:(t||e).clientX,clientY:(t||e).clientY},tapDistanceLeft=tapEvt.clientX-d.left,tapDistanceTop=tapEvt.clientY-d.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,dragEl.style["will-change"]="all",l=function(){if(pluginEvent("delayEnded",n,{evt:e}),Sortable.eventCanceled){n._onDrop();return}n._disableDelayedDragEvents(),!FireFox&&n.nativeDraggable&&(dragEl.draggable=!0),n._triggerDragStart(e,t),_dispatchEvent({sortable:n,name:"choose",originalEvent:e}),toggleClass(dragEl,s.chosenClass,!0)},s.ignore.split(",").forEach(function(c){find(dragEl,c.trim(),_disableDraggable)}),on(a,"dragover",nearestEmptyInsertDetectEvent),on(a,"mousemove",nearestEmptyInsertDetectEvent),on(a,"touchmove",nearestEmptyInsertDetectEvent),on(a,"mouseup",n._onDrop),on(a,"touchend",n._onDrop),on(a,"touchcancel",n._onDrop),FireFox&&this.nativeDraggable&&(this.options.touchStartThreshold=4,dragEl.draggable=!0),pluginEvent("delayStart",this,{evt:e}),s.delay&&(!s.delayOnTouchOnly||t)&&(!this.nativeDraggable||!(Edge||IE11OrLess))){if(Sortable.eventCanceled){this._onDrop();return}on(a,"mouseup",n._disableDelayedDrag),on(a,"touchend",n._disableDelayedDrag),on(a,"touchcancel",n._disableDelayedDrag),on(a,"mousemove",n._delayedDragTouchMoveHandler),on(a,"touchmove",n._delayedDragTouchMoveHandler),s.supportPointer&&on(a,"pointermove",n._delayedDragTouchMoveHandler),n._dragStartTimer=setTimeout(l,s.delay)}else l()}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){dragEl&&_disableDraggable(dragEl),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;off(e,"mouseup",this._disableDelayedDrag),off(e,"touchend",this._disableDelayedDrag),off(e,"touchcancel",this._disableDelayedDrag),off(e,"mousemove",this._delayedDragTouchMoveHandler),off(e,"touchmove",this._delayedDragTouchMoveHandler),off(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||e.pointerType=="touch"&&e,!this.nativeDraggable||t?this.options.supportPointer?on(document,"pointermove",this._onTouchMove):t?on(document,"touchmove",this._onTouchMove):on(document,"mousemove",this._onTouchMove):(on(dragEl,"dragend",this),on(rootEl,"dragstart",this._onDragStart));try{document.selection?_nextTick(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(e,t){if(awaitingDragStarted=!1,rootEl&&dragEl){pluginEvent("dragStarted",this,{evt:t}),this.nativeDraggable&&on(document,"dragover",_checkOutsideTargetEl);var i=this.options;!e&&toggleClass(dragEl,i.dragClass,!1),toggleClass(dragEl,i.ghostClass,!0),Sortable.active=this,e&&this._appendGhost(),_dispatchEvent({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(touchEvt){this._lastX=touchEvt.clientX,this._lastY=touchEvt.clientY,_hideGhostForTarget();for(var e=document.elementFromPoint(touchEvt.clientX,touchEvt.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(touchEvt.clientX,touchEvt.clientY),e!==t);)t=e;if(dragEl.parentNode[expando]._isOutsideThisEl(e),t)do{if(t[expando]){var i=void 0;if(i=t[expando]._onDragOver({clientX:touchEvt.clientX,clientY:touchEvt.clientY,target:e,rootEl:t}),i&&!this.options.dragoverBubble)break}e=t}while(t=t.parentNode);_unhideGhostForTarget()}},_onTouchMove:function(e){if(tapEvt){var t=this.options,i=t.fallbackTolerance,n=t.fallbackOffset,r=e.touches?e.touches[0]:e,s=ghostEl&&matrix(ghostEl,!0),a=ghostEl&&s&&s.a,l=ghostEl&&s&&s.d,d=PositionGhostAbsolutely&&ghostRelativeParent&&getRelativeScrollOffset(ghostRelativeParent),c=(r.clientX-tapEvt.clientX+n.x)/(a||1)+(d?d[0]-ghostRelativeParentInitialScroll[0]:0)/(a||1),u=(r.clientY-tapEvt.clientY+n.y)/(l||1)+(d?d[1]-ghostRelativeParentInitialScroll[1]:0)/(l||1);if(!Sortable.active&&!awaitingDragStarted){if(i&&Math.max(Math.abs(r.clientX-this._lastX),Math.abs(r.clientY-this._lastY))<i)return;this._onDragStart(e,!0)}if(ghostEl){s?(s.e+=c-(lastDx||0),s.f+=u-(lastDy||0)):s={a:1,b:0,c:0,d:1,e:c,f:u};var g="matrix(".concat(s.a,",").concat(s.b,",").concat(s.c,",").concat(s.d,",").concat(s.e,",").concat(s.f,")");css(ghostEl,"webkitTransform",g),css(ghostEl,"mozTransform",g),css(ghostEl,"msTransform",g),css(ghostEl,"transform",g),lastDx=c,lastDy=u,touchEvt=r}e.cancelable&&e.preventDefault()}},_appendGhost:function(){if(!ghostEl){var e=this.options.fallbackOnBody?document.body:rootEl,t=getRect(dragEl,!0,PositionGhostAbsolutely,!0,e),i=this.options;if(PositionGhostAbsolutely){for(ghostRelativeParent=e;css(ghostRelativeParent,"position")==="static"&&css(ghostRelativeParent,"transform")==="none"&&ghostRelativeParent!==document;)ghostRelativeParent=ghostRelativeParent.parentNode;ghostRelativeParent!==document.body&&ghostRelativeParent!==document.documentElement?(ghostRelativeParent===document&&(ghostRelativeParent=getWindowScrollingElement()),t.top+=ghostRelativeParent.scrollTop,t.left+=ghostRelativeParent.scrollLeft):ghostRelativeParent=getWindowScrollingElement(),ghostRelativeParentInitialScroll=getRelativeScrollOffset(ghostRelativeParent)}ghostEl=dragEl.cloneNode(!0),toggleClass(ghostEl,i.ghostClass,!1),toggleClass(ghostEl,i.fallbackClass,!0),toggleClass(ghostEl,i.dragClass,!0),css(ghostEl,"transition",""),css(ghostEl,"transform",""),css(ghostEl,"box-sizing","border-box"),css(ghostEl,"margin",0),css(ghostEl,"top",t.top),css(ghostEl,"left",t.left),css(ghostEl,"width",t.width),css(ghostEl,"height",t.height),css(ghostEl,"opacity","0.8"),css(ghostEl,"position",PositionGhostAbsolutely?"absolute":"fixed"),css(ghostEl,"zIndex","100000"),css(ghostEl,"pointerEvents","none"),Sortable.ghost=ghostEl,e.appendChild(ghostEl),css(ghostEl,"transform-origin",tapDistanceLeft/parseInt(ghostEl.style.width)*100+"% "+tapDistanceTop/parseInt(ghostEl.style.height)*100+"%")}},_onDragStart:function(e,t){var i=this,n=e.dataTransfer,r=i.options;if(pluginEvent("dragStart",this,{evt:e}),Sortable.eventCanceled){this._onDrop();return}pluginEvent("setupClone",this),Sortable.eventCanceled||(cloneEl=clone$1(dragEl),cloneEl.draggable=!1,cloneEl.style["will-change"]="",this._hideClone(),toggleClass(cloneEl,this.options.chosenClass,!1),Sortable.clone=cloneEl),i.cloneId=_nextTick(function(){pluginEvent("clone",i),!Sortable.eventCanceled&&(i.options.removeCloneOnHide||rootEl.insertBefore(cloneEl,dragEl),i._hideClone(),_dispatchEvent({sortable:i,name:"clone"}))}),!t&&toggleClass(dragEl,r.dragClass,!0),t?(ignoreNextClick=!0,i._loopId=setInterval(i._emulateDragOver,50)):(off(document,"mouseup",i._onDrop),off(document,"touchend",i._onDrop),off(document,"touchcancel",i._onDrop),n&&(n.effectAllowed="move",r.setData&&r.setData.call(i,n,dragEl)),on(document,"drop",i),css(dragEl,"transform","translateZ(0)")),awaitingDragStarted=!0,i._dragStartId=_nextTick(i._dragStarted.bind(i,t,e)),on(document,"selectstart",i),moved=!0,Safari&&css(document.body,"user-select","none")},_onDragOver:function(e){var t=this.el,i=e.target,n,r,s,a=this.options,l=a.group,d=Sortable.active,c=activeGroup===l,u=a.sort,g=putSortable||d,f,p=this,m=!1;if(_silent)return;function b(k,T){pluginEvent(k,p,_objectSpread2({evt:e,isOwner:c,axis:f?"vertical":"horizontal",revert:s,dragRect:n,targetRect:r,canSort:u,fromSortable:g,target:i,completed:C,onMove:function(z,J){return _onMove(rootEl,t,dragEl,n,z,getRect(z),e,J)},changed:S},T))}function _(){b("dragOverAnimationCapture"),p.captureAnimationState(),p!==g&&g.captureAnimationState()}function C(k){return b("dragOverCompleted",{insertion:k}),k&&(c?d._hideClone():d._showClone(p),p!==g&&(toggleClass(dragEl,putSortable?putSortable.options.ghostClass:d.options.ghostClass,!1),toggleClass(dragEl,a.ghostClass,!0)),putSortable!==p&&p!==Sortable.active?putSortable=p:p===Sortable.active&&putSortable&&(putSortable=null),g===p&&(p._ignoreWhileAnimating=i),p.animateAll(function(){b("dragOverAnimationComplete"),p._ignoreWhileAnimating=null}),p!==g&&(g.animateAll(),g._ignoreWhileAnimating=null)),(i===dragEl&&!dragEl.animated||i===t&&!i.animated)&&(lastTarget=null),!a.dragoverBubble&&!e.rootEl&&i!==document&&(dragEl.parentNode[expando]._isOutsideThisEl(e.target),!k&&nearestEmptyInsertDetectEvent(e)),!a.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),m=!0}function S(){newIndex=index$2(dragEl),newDraggableIndex=index$2(dragEl,a.draggable),_dispatchEvent({sortable:p,name:"change",toEl:t,newIndex,newDraggableIndex,originalEvent:e})}if(e.preventDefault!==void 0&&e.cancelable&&e.preventDefault(),i=closest(i,a.draggable,t,!0),b("dragOver"),Sortable.eventCanceled)return m;if(dragEl.contains(e.target)||i.animated&&i.animatingX&&i.animatingY||p._ignoreWhileAnimating===i)return C(!1);if(ignoreNextClick=!1,d&&!a.disabled&&(c?u||(s=parentEl!==rootEl):putSortable===this||(this.lastPutMode=activeGroup.checkPull(this,d,dragEl,e))&&l.checkPut(this,d,dragEl,e))){if(f=this._getDirection(e,i)==="vertical",n=getRect(dragEl),b("dragOverValid"),Sortable.eventCanceled)return m;if(s)return parentEl=rootEl,_(),this._hideClone(),b("revert"),Sortable.eventCanceled||(nextEl?rootEl.insertBefore(dragEl,nextEl):rootEl.appendChild(dragEl)),C(!0);var y=lastChild(t,a.draggable);if(!y||_ghostIsLast(e,f,this)&&!y.animated){if(y===dragEl)return C(!1);if(y&&t===e.target&&(i=y),i&&(r=getRect(i)),_onMove(rootEl,t,dragEl,n,i,r,e,!!i)!==!1)return _(),t.appendChild(dragEl),parentEl=t,S(),C(!0)}else if(y&&_ghostIsFirst(e,f,this)){var E=getChild(t,0,a,!0);if(E===dragEl)return C(!1);if(i=E,r=getRect(i),_onMove(rootEl,t,dragEl,n,i,r,e,!1)!==!1)return _(),t.insertBefore(dragEl,E),parentEl=t,S(),C(!0)}else if(i.parentNode===t){r=getRect(i);var x=0,L,I=dragEl.parentNode!==t,D=!_dragElInRowColumn(dragEl.animated&&dragEl.toRect||n,i.animated&&i.toRect||r,f),N=f?"top":"left",F=isScrolledPast(i,"top","top")||isScrolledPast(dragEl,"top","top"),R=F?F.scrollTop:void 0;lastTarget!==i&&(L=r[N],pastFirstInvertThresh=!1,isCircumstantialInvert=!D&&a.invertSwap||I),x=_getSwapDirection(e,i,r,f,D?1:a.swapThreshold,a.invertedSwapThreshold==null?a.swapThreshold:a.invertedSwapThreshold,isCircumstantialInvert,lastTarget===i);var M;if(x!==0){var W=index$2(dragEl);do W-=x,M=parentEl.children[W];while(M&&(css(M,"display")==="none"||M===ghostEl))}if(x===0||M===i)return C(!1);lastTarget=i,lastDirection=x;var V=i.nextElementSibling,A=!1;A=x===1;var P=_onMove(rootEl,t,dragEl,n,i,r,e,A);if(P!==!1)return(P===1||P===-1)&&(A=P===1),_silent=!0,setTimeout(_unsilent,30),_(),A&&!V?t.appendChild(dragEl):i.parentNode.insertBefore(dragEl,A?V:i),F&&scrollBy(F,0,R-F.scrollTop),parentEl=dragEl.parentNode,L!==void 0&&!isCircumstantialInvert&&(targetMoveDistance=Math.abs(L-getRect(i)[N])),S(),C(!0)}if(t.contains(dragEl))return C(!1)}return!1},_ignoreWhileAnimating:null,_offMoveEvents:function(){off(document,"mousemove",this._onTouchMove),off(document,"touchmove",this._onTouchMove),off(document,"pointermove",this._onTouchMove),off(document,"dragover",nearestEmptyInsertDetectEvent),off(document,"mousemove",nearestEmptyInsertDetectEvent),off(document,"touchmove",nearestEmptyInsertDetectEvent)},_offUpEvents:function(){var e=this.el.ownerDocument;off(e,"mouseup",this._onDrop),off(e,"touchend",this._onDrop),off(e,"pointerup",this._onDrop),off(e,"touchcancel",this._onDrop),off(document,"selectstart",this)},_onDrop:function(e){var t=this.el,i=this.options;if(newIndex=index$2(dragEl),newDraggableIndex=index$2(dragEl,i.draggable),pluginEvent("drop",this,{evt:e}),parentEl=dragEl&&dragEl.parentNode,newIndex=index$2(dragEl),newDraggableIndex=index$2(dragEl,i.draggable),Sortable.eventCanceled){this._nulling();return}awaitingDragStarted=!1,isCircumstantialInvert=!1,pastFirstInvertThresh=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),_cancelNextTick(this.cloneId),_cancelNextTick(this._dragStartId),this.nativeDraggable&&(off(document,"drop",this),off(t,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),Safari&&css(document.body,"user-select",""),css(dragEl,"transform",""),e&&(moved&&(e.cancelable&&e.preventDefault(),!i.dropBubble&&e.stopPropagation()),ghostEl&&ghostEl.parentNode&&ghostEl.parentNode.removeChild(ghostEl),(rootEl===parentEl||putSortable&&putSortable.lastPutMode!=="clone")&&cloneEl&&cloneEl.parentNode&&cloneEl.parentNode.removeChild(cloneEl),dragEl&&(this.nativeDraggable&&off(dragEl,"dragend",this),_disableDraggable(dragEl),dragEl.style["will-change"]="",moved&&!awaitingDragStarted&&toggleClass(dragEl,putSortable?putSortable.options.ghostClass:this.options.ghostClass,!1),toggleClass(dragEl,this.options.chosenClass,!1),_dispatchEvent({sortable:this,name:"unchoose",toEl:parentEl,newIndex:null,newDraggableIndex:null,originalEvent:e}),rootEl!==parentEl?(newIndex>=0&&(_dispatchEvent({rootEl:parentEl,name:"add",toEl:parentEl,fromEl:rootEl,originalEvent:e}),_dispatchEvent({sortable:this,name:"remove",toEl:parentEl,originalEvent:e}),_dispatchEvent({rootEl:parentEl,name:"sort",toEl:parentEl,fromEl:rootEl,originalEvent:e}),_dispatchEvent({sortable:this,name:"sort",toEl:parentEl,originalEvent:e})),putSortable&&putSortable.save()):newIndex!==oldIndex&&newIndex>=0&&(_dispatchEvent({sortable:this,name:"update",toEl:parentEl,originalEvent:e}),_dispatchEvent({sortable:this,name:"sort",toEl:parentEl,originalEvent:e})),Sortable.active&&((newIndex==null||newIndex===-1)&&(newIndex=oldIndex,newDraggableIndex=oldDraggableIndex),_dispatchEvent({sortable:this,name:"end",toEl:parentEl,originalEvent:e}),this.save()))),this._nulling()},_nulling:function(){pluginEvent("nulling",this),rootEl=dragEl=parentEl=ghostEl=nextEl=cloneEl=lastDownEl=cloneHidden=tapEvt=touchEvt=moved=newIndex=newDraggableIndex=oldIndex=oldDraggableIndex=lastTarget=lastDirection=putSortable=activeGroup=Sortable.dragged=Sortable.ghost=Sortable.clone=Sortable.active=null,savedInputChecked.forEach(function(e){e.checked=!0}),savedInputChecked.length=lastDx=lastDy=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":dragEl&&(this._onDragOver(e),_globalDragOver(e));break;case"selectstart":e.preventDefault();break}},toArray:function(){for(var e=[],t,i=this.el.children,n=0,r=i.length,s=this.options;n<r;n++)t=i[n],closest(t,s.draggable,this.el,!1)&&e.push(t.getAttribute(s.dataIdAttr)||_generateId(t));return e},sort:function(e,t){var i={},n=this.el;this.toArray().forEach(function(r,s){var a=n.children[s];closest(a,this.options.draggable,n,!1)&&(i[r]=a)},this),t&&this.captureAnimationState(),e.forEach(function(r){i[r]&&(n.removeChild(i[r]),n.appendChild(i[r]))}),t&&this.animateAll()},save:function(){var e=this.options.store;e&&e.set&&e.set(this)},closest:function(e,t){return closest(e,t||this.options.draggable,this.el,!1)},option:function(e,t){var i=this.options;if(t===void 0)return i[e];var n=PluginManager.modifyOption(this,e,t);typeof n<"u"?i[e]=n:i[e]=t,e==="group"&&_prepareGroup(i)},destroy:function(){pluginEvent("destroy",this);var e=this.el;e[expando]=null,off(e,"mousedown",this._onTapStart),off(e,"touchstart",this._onTapStart),off(e,"pointerdown",this._onTapStart),this.nativeDraggable&&(off(e,"dragover",this),off(e,"dragenter",this)),Array.prototype.forEach.call(e.querySelectorAll("[draggable]"),function(t){t.removeAttribute("draggable")}),this._onDrop(),this._disableDelayedDragEvents(),sortables.splice(sortables.indexOf(this.el),1),this.el=e=null},_hideClone:function(){if(!cloneHidden){if(pluginEvent("hideClone",this),Sortable.eventCanceled)return;css(cloneEl,"display","none"),this.options.removeCloneOnHide&&cloneEl.parentNode&&cloneEl.parentNode.removeChild(cloneEl),cloneHidden=!0}},_showClone:function(e){if(e.lastPutMode!=="clone"){this._hideClone();return}if(cloneHidden){if(pluginEvent("showClone",this),Sortable.eventCanceled)return;dragEl.parentNode==rootEl&&!this.options.group.revertClone?rootEl.insertBefore(cloneEl,dragEl):nextEl?rootEl.insertBefore(cloneEl,nextEl):rootEl.appendChild(cloneEl),this.options.group.revertClone&&this.animate(dragEl,cloneEl),css(cloneEl,"display",""),cloneHidden=!1}}};function _globalDragOver(o){o.dataTransfer&&(o.dataTransfer.dropEffect="move"),o.cancelable&&o.preventDefault()}function _onMove(o,e,t,i,n,r,s,a){var l,d=o[expando],c=d.options.onMove,u;return window.CustomEvent&&!IE11OrLess&&!Edge?l=new CustomEvent("move",{bubbles:!0,cancelable:!0}):(l=document.createEvent("Event"),l.initEvent("move",!0,!0)),l.to=e,l.from=o,l.dragged=t,l.draggedRect=i,l.related=n||e,l.relatedRect=r||getRect(e),l.willInsertAfter=a,l.originalEvent=s,o.dispatchEvent(l),c&&(u=c.call(d,l,s)),u}function _disableDraggable(o){o.draggable=!1}function _unsilent(){_silent=!1}function _ghostIsFirst(o,e,t){var i=getRect(getChild(t.el,0,t.options,!0)),n=10;return e?o.clientX<i.left-n||o.clientY<i.top&&o.clientX<i.right:o.clientY<i.top-n||o.clientY<i.bottom&&o.clientX<i.left}function _ghostIsLast(o,e,t){var i=getRect(lastChild(t.el,t.options.draggable)),n=10;return e?o.clientX>i.right+n||o.clientX<=i.right&&o.clientY>i.bottom&&o.clientX>=i.left:o.clientX>i.right&&o.clientY>i.top||o.clientX<=i.right&&o.clientY>i.bottom+n}function _getSwapDirection(o,e,t,i,n,r,s,a){var l=i?o.clientY:o.clientX,d=i?t.height:t.width,c=i?t.top:t.left,u=i?t.bottom:t.right,g=!1;if(!s){if(a&&targetMoveDistance<d*n){if(!pastFirstInvertThresh&&(lastDirection===1?l>c+d*r/2:l<u-d*r/2)&&(pastFirstInvertThresh=!0),pastFirstInvertThresh)g=!0;else if(lastDirection===1?l<c+targetMoveDistance:l>u-targetMoveDistance)return-lastDirection}else if(l>c+d*(1-n)/2&&l<u-d*(1-n)/2)return _getInsertDirection(e)}return g=g||s,g&&(l<c+d*r/2||l>u-d*r/2)?l>c+d/2?1:-1:0}function _getInsertDirection(o){return index$2(dragEl)<index$2(o)?1:-1}function _generateId(o){for(var e=o.tagName+o.className+o.src+o.href+o.textContent,t=e.length,i=0;t--;)i+=e.charCodeAt(t);return i.toString(36)}function _saveInputCheckedState(o){savedInputChecked.length=0;for(var e=o.getElementsByTagName("input"),t=e.length;t--;){var i=e[t];i.checked&&savedInputChecked.push(i)}}function _nextTick(o){return setTimeout(o,0)}function _cancelNextTick(o){return clearTimeout(o)}documentExists&&on(document,"touchmove",function(o){(Sortable.active||awaitingDragStarted)&&o.cancelable&&o.preventDefault()});Sortable.utils={on,off,css,find,is:function(e,t){return!!closest(e,t,e,!1)},extend,throttle,closest,toggleClass,clone:clone$1,index:index$2,nextTick:_nextTick,cancelNextTick:_cancelNextTick,detectDirection:_detectDirection,getChild};Sortable.get=function(o){return o[expando]};Sortable.mount=function(){for(var o=arguments.length,e=new Array(o),t=0;t<o;t++)e[t]=arguments[t];e[0].constructor===Array&&(e=e[0]),e.forEach(function(i){if(!i.prototype||!i.prototype.constructor)throw"Sortable: Mounted plugin must be a constructor function, not ".concat({}.toString.call(i));i.utils&&(Sortable.utils=_objectSpread2(_objectSpread2({},Sortable.utils),i.utils)),PluginManager.mount(i)})};Sortable.create=function(o,e){return new Sortable(o,e)};Sortable.version=version;var autoScrolls=[],scrollEl,scrollRootEl,scrolling=!1,lastAutoScrollX,lastAutoScrollY,touchEvt$1,pointerElemChangedInterval;function AutoScrollPlugin(){function o(){this.defaults={scroll:!0,forceAutoScrollFallback:!1,scrollSensitivity:30,scrollSpeed:10,bubbleScroll:!0};for(var e in this)e.charAt(0)==="_"&&typeof this[e]=="function"&&(this[e]=this[e].bind(this))}return o.prototype={dragStarted:function(t){var i=t.originalEvent;this.sortable.nativeDraggable?on(document,"dragover",this._handleAutoScroll):this.options.supportPointer?on(document,"pointermove",this._handleFallbackAutoScroll):i.touches?on(document,"touchmove",this._handleFallbackAutoScroll):on(document,"mousemove",this._handleFallbackAutoScroll)},dragOverCompleted:function(t){var i=t.originalEvent;!this.options.dragOverBubble&&!i.rootEl&&this._handleAutoScroll(i)},drop:function(){this.sortable.nativeDraggable?off(document,"dragover",this._handleAutoScroll):(off(document,"pointermove",this._handleFallbackAutoScroll),off(document,"touchmove",this._handleFallbackAutoScroll),off(document,"mousemove",this._handleFallbackAutoScroll)),clearPointerElemChangedInterval(),clearAutoScrolls(),cancelThrottle()},nulling:function(){touchEvt$1=scrollRootEl=scrollEl=scrolling=pointerElemChangedInterval=lastAutoScrollX=lastAutoScrollY=null,autoScrolls.length=0},_handleFallbackAutoScroll:function(t){this._handleAutoScroll(t,!0)},_handleAutoScroll:function(t,i){var n=this,r=(t.touches?t.touches[0]:t).clientX,s=(t.touches?t.touches[0]:t).clientY,a=document.elementFromPoint(r,s);if(touchEvt$1=t,i||this.options.forceAutoScrollFallback||Edge||IE11OrLess||Safari){autoScroll(t,this.options,a,i);var l=getParentAutoScrollElement(a,!0);scrolling&&(!pointerElemChangedInterval||r!==lastAutoScrollX||s!==lastAutoScrollY)&&(pointerElemChangedInterval&&clearPointerElemChangedInterval(),pointerElemChangedInterval=setInterval(function(){var d=getParentAutoScrollElement(document.elementFromPoint(r,s),!0);d!==l&&(l=d,clearAutoScrolls()),autoScroll(t,n.options,d,i)},10),lastAutoScrollX=r,lastAutoScrollY=s)}else{if(!this.options.bubbleScroll||getParentAutoScrollElement(a,!0)===getWindowScrollingElement()){clearAutoScrolls();return}autoScroll(t,this.options,getParentAutoScrollElement(a,!1),!1)}}},_extends(o,{pluginName:"scroll",initializeByDefault:!0})}function clearAutoScrolls(){autoScrolls.forEach(function(o){clearInterval(o.pid)}),autoScrolls=[]}function clearPointerElemChangedInterval(){clearInterval(pointerElemChangedInterval)}var autoScroll=throttle(function(o,e,t,i){if(e.scroll){var n=(o.touches?o.touches[0]:o).clientX,r=(o.touches?o.touches[0]:o).clientY,s=e.scrollSensitivity,a=e.scrollSpeed,l=getWindowScrollingElement(),d=!1,c;scrollRootEl!==t&&(scrollRootEl=t,clearAutoScrolls(),scrollEl=e.scroll,c=e.scrollFn,scrollEl===!0&&(scrollEl=getParentAutoScrollElement(t,!0)));var u=0,g=scrollEl;do{var f=g,p=getRect(f),m=p.top,b=p.bottom,_=p.left,C=p.right,S=p.width,y=p.height,E=void 0,x=void 0,L=f.scrollWidth,I=f.scrollHeight,D=css(f),N=f.scrollLeft,F=f.scrollTop;f===l?(E=S<L&&(D.overflowX==="auto"||D.overflowX==="scroll"||D.overflowX==="visible"),x=y<I&&(D.overflowY==="auto"||D.overflowY==="scroll"||D.overflowY==="visible")):(E=S<L&&(D.overflowX==="auto"||D.overflowX==="scroll"),x=y<I&&(D.overflowY==="auto"||D.overflowY==="scroll"));var R=E&&(Math.abs(C-n)<=s&&N+S<L)-(Math.abs(_-n)<=s&&!!N),M=x&&(Math.abs(b-r)<=s&&F+y<I)-(Math.abs(m-r)<=s&&!!F);if(!autoScrolls[u])for(var W=0;W<=u;W++)autoScrolls[W]||(autoScrolls[W]={});(autoScrolls[u].vx!=R||autoScrolls[u].vy!=M||autoScrolls[u].el!==f)&&(autoScrolls[u].el=f,autoScrolls[u].vx=R,autoScrolls[u].vy=M,clearInterval(autoScrolls[u].pid),(R!=0||M!=0)&&(d=!0,autoScrolls[u].pid=setInterval((function(){i&&this.layer===0&&Sortable.active._onTouchMove(touchEvt$1);var V=autoScrolls[this.layer].vy?autoScrolls[this.layer].vy*a:0,A=autoScrolls[this.layer].vx?autoScrolls[this.layer].vx*a:0;typeof c=="function"&&c.call(Sortable.dragged.parentNode[expando],A,V,o,touchEvt$1,autoScrolls[this.layer].el)!=="continue"||scrollBy(autoScrolls[this.layer].el,A,V)}).bind({layer:u}),24))),u++}while(e.bubbleScroll&&g!==l&&(g=getParentAutoScrollElement(g,!1)));scrolling=d}},30),drop=function(e){var t=e.originalEvent,i=e.putSortable,n=e.dragEl,r=e.activeSortable,s=e.dispatchSortableEvent,a=e.hideGhostForTarget,l=e.unhideGhostForTarget;if(t){var d=i||r;a();var c=t.changedTouches&&t.changedTouches.length?t.changedTouches[0]:t,u=document.elementFromPoint(c.clientX,c.clientY);l(),d&&!d.el.contains(u)&&(s("spill"),this.onSpill({dragEl:n,putSortable:i}))}};function Revert(){}Revert.prototype={startIndex:null,dragStart:function(e){var t=e.oldDraggableIndex;this.startIndex=t},onSpill:function(e){var t=e.dragEl,i=e.putSortable;this.sortable.captureAnimationState(),i&&i.captureAnimationState();var n=getChild(this.sortable.el,this.startIndex,this.options);n?this.sortable.el.insertBefore(t,n):this.sortable.el.appendChild(t),this.sortable.animateAll(),i&&i.animateAll()},drop};_extends(Revert,{pluginName:"revertOnSpill"});function Remove(){}Remove.prototype={onSpill:function(e){var t=e.dragEl,i=e.putSortable,n=i||this.sortable;n.captureAnimationState(),t.parentNode&&t.parentNode.removeChild(t),n.animateAll()},drop};_extends(Remove,{pluginName:"removeOnSpill"});var lastSwapEl;function SwapPlugin(){function o(){this.defaults={swapClass:"sortable-swap-highlight"}}return o.prototype={dragStart:function(t){var i=t.dragEl;lastSwapEl=i},dragOverValid:function(t){var i=t.completed,n=t.target,r=t.onMove,s=t.activeSortable,a=t.changed,l=t.cancel;if(s.options.swap){var d=this.sortable.el,c=this.options;if(n&&n!==d){var u=lastSwapEl;r(n)!==!1?(toggleClass(n,c.swapClass,!0),lastSwapEl=n):lastSwapEl=null,u&&u!==lastSwapEl&&toggleClass(u,c.swapClass,!1)}a(),i(!0),l()}},drop:function(t){var i=t.activeSortable,n=t.putSortable,r=t.dragEl,s=n||this.sortable,a=this.options;lastSwapEl&&toggleClass(lastSwapEl,a.swapClass,!1),lastSwapEl&&(a.swap||n&&n.options.swap)&&r!==lastSwapEl&&(s.captureAnimationState(),s!==i&&i.captureAnimationState(),swapNodes(r,lastSwapEl),s.animateAll(),s!==i&&i.animateAll())},nulling:function(){lastSwapEl=null}},_extends(o,{pluginName:"swap",eventProperties:function(){return{swapItem:lastSwapEl}}})}function swapNodes(o,e){var t=o.parentNode,i=e.parentNode,n,r;!t||!i||t.isEqualNode(e)||i.isEqualNode(o)||(n=index$2(o),r=index$2(e),t.isEqualNode(i)&&n<r&&r++,t.insertBefore(e,t.children[n]),i.insertBefore(o,i.children[r]))}var multiDragElements=[],multiDragClones=[],lastMultiDragSelect,multiDragSortable,initialFolding=!1,folding=!1,dragStarted=!1,dragEl$1,clonesFromRect,clonesHidden;function MultiDragPlugin(){function o(e){for(var t in this)t.charAt(0)==="_"&&typeof this[t]=="function"&&(this[t]=this[t].bind(this));e.options.supportPointer?on(document,"pointerup",this._deselectMultiDrag):(on(document,"mouseup",this._deselectMultiDrag),on(document,"touchend",this._deselectMultiDrag)),on(document,"keydown",this._checkKeyDown),on(document,"keyup",this._checkKeyUp),this.defaults={selectedClass:"sortable-selected",multiDragKey:null,setData:function(n,r){var s="";multiDragElements.length&&multiDragSortable===e?multiDragElements.forEach(function(a,l){s+=(l?", ":"")+a.textContent}):s=r.textContent,n.setData("Text",s)}}}return o.prototype={multiDragKeyDown:!1,isMultiDrag:!1,delayStartGlobal:function(t){var i=t.dragEl;dragEl$1=i},delayEnded:function(){this.isMultiDrag=~multiDragElements.indexOf(dragEl$1)},setupClone:function(t){var i=t.sortable,n=t.cancel;if(this.isMultiDrag){for(var r=0;r<multiDragElements.length;r++)multiDragClones.push(clone$1(multiDragElements[r])),multiDragClones[r].sortableIndex=multiDragElements[r].sortableIndex,multiDragClones[r].draggable=!1,multiDragClones[r].style["will-change"]="",toggleClass(multiDragClones[r],this.options.selectedClass,!1),multiDragElements[r]===dragEl$1&&toggleClass(multiDragClones[r],this.options.chosenClass,!1);i._hideClone(),n()}},clone:function(t){var i=t.sortable,n=t.rootEl,r=t.dispatchSortableEvent,s=t.cancel;this.isMultiDrag&&(this.options.removeCloneOnHide||multiDragElements.length&&multiDragSortable===i&&(insertMultiDragClones(!0,n),r("clone"),s()))},showClone:function(t){var i=t.cloneNowShown,n=t.rootEl,r=t.cancel;this.isMultiDrag&&(insertMultiDragClones(!1,n),multiDragClones.forEach(function(s){css(s,"display","")}),i(),clonesHidden=!1,r())},hideClone:function(t){var i=this;t.sortable;var n=t.cloneNowHidden,r=t.cancel;this.isMultiDrag&&(multiDragClones.forEach(function(s){css(s,"display","none"),i.options.removeCloneOnHide&&s.parentNode&&s.parentNode.removeChild(s)}),n(),clonesHidden=!0,r())},dragStartGlobal:function(t){t.sortable,!this.isMultiDrag&&multiDragSortable&&multiDragSortable.multiDrag._deselectMultiDrag(),multiDragElements.forEach(function(i){i.sortableIndex=index$2(i)}),multiDragElements=multiDragElements.sort(function(i,n){return i.sortableIndex-n.sortableIndex}),dragStarted=!0},dragStarted:function(t){var i=this,n=t.sortable;if(this.isMultiDrag){if(this.options.sort&&(n.captureAnimationState(),this.options.animation)){multiDragElements.forEach(function(s){s!==dragEl$1&&css(s,"position","absolute")});var r=getRect(dragEl$1,!1,!0,!0);multiDragElements.forEach(function(s){s!==dragEl$1&&setRect(s,r)}),folding=!0,initialFolding=!0}n.animateAll(function(){folding=!1,initialFolding=!1,i.options.animation&&multiDragElements.forEach(function(s){unsetRect(s)}),i.options.sort&&removeMultiDragElements()})}},dragOver:function(t){var i=t.target,n=t.completed,r=t.cancel;folding&&~multiDragElements.indexOf(i)&&(n(!1),r())},revert:function(t){var i=t.fromSortable,n=t.rootEl,r=t.sortable,s=t.dragRect;multiDragElements.length>1&&(multiDragElements.forEach(function(a){r.addAnimationState({target:a,rect:folding?getRect(a):s}),unsetRect(a),a.fromRect=s,i.removeAnimationState(a)}),folding=!1,insertMultiDragElements(!this.options.removeCloneOnHide,n))},dragOverCompleted:function(t){var i=t.sortable,n=t.isOwner,r=t.insertion,s=t.activeSortable,a=t.parentEl,l=t.putSortable,d=this.options;if(r){if(n&&s._hideClone(),initialFolding=!1,d.animation&&multiDragElements.length>1&&(folding||!n&&!s.options.sort&&!l)){var c=getRect(dragEl$1,!1,!0,!0);multiDragElements.forEach(function(g){g!==dragEl$1&&(setRect(g,c),a.appendChild(g))}),folding=!0}if(!n)if(folding||removeMultiDragElements(),multiDragElements.length>1){var u=clonesHidden;s._showClone(i),s.options.animation&&!clonesHidden&&u&&multiDragClones.forEach(function(g){s.addAnimationState({target:g,rect:clonesFromRect}),g.fromRect=clonesFromRect,g.thisAnimationDuration=null})}else s._showClone(i)}},dragOverAnimationCapture:function(t){var i=t.dragRect,n=t.isOwner,r=t.activeSortable;if(multiDragElements.forEach(function(a){a.thisAnimationDuration=null}),r.options.animation&&!n&&r.multiDrag.isMultiDrag){clonesFromRect=_extends({},i);var s=matrix(dragEl$1,!0);clonesFromRect.top-=s.f,clonesFromRect.left-=s.e}},dragOverAnimationComplete:function(){folding&&(folding=!1,removeMultiDragElements())},drop:function(t){var i=t.originalEvent,n=t.rootEl,r=t.parentEl,s=t.sortable,a=t.dispatchSortableEvent,l=t.oldIndex,d=t.putSortable,c=d||this.sortable;if(i){var u=this.options,g=r.children;if(!dragStarted)if(u.multiDragKey&&!this.multiDragKeyDown&&this._deselectMultiDrag(),toggleClass(dragEl$1,u.selectedClass,!~multiDragElements.indexOf(dragEl$1)),~multiDragElements.indexOf(dragEl$1))multiDragElements.splice(multiDragElements.indexOf(dragEl$1),1),lastMultiDragSelect=null,dispatchEvent({sortable:s,rootEl:n,name:"deselect",targetEl:dragEl$1});else{if(multiDragElements.push(dragEl$1),dispatchEvent({sortable:s,rootEl:n,name:"select",targetEl:dragEl$1}),i.shiftKey&&lastMultiDragSelect&&s.el.contains(lastMultiDragSelect)){var f=index$2(lastMultiDragSelect),p=index$2(dragEl$1);if(~f&&~p&&f!==p){var m,b;for(p>f?(b=f,m=p):(b=p,m=f+1);b<m;b++)~multiDragElements.indexOf(g[b])||(toggleClass(g[b],u.selectedClass,!0),multiDragElements.push(g[b]),dispatchEvent({sortable:s,rootEl:n,name:"select",targetEl:g[b]}))}}else lastMultiDragSelect=dragEl$1;multiDragSortable=c}if(dragStarted&&this.isMultiDrag){if(folding=!1,(r[expando].options.sort||r!==n)&&multiDragElements.length>1){var _=getRect(dragEl$1),C=index$2(dragEl$1,":not(."+this.options.selectedClass+")");if(!initialFolding&&u.animation&&(dragEl$1.thisAnimationDuration=null),c.captureAnimationState(),!initialFolding&&(u.animation&&(dragEl$1.fromRect=_,multiDragElements.forEach(function(y){if(y.thisAnimationDuration=null,y!==dragEl$1){var E=folding?getRect(y):_;y.fromRect=E,c.addAnimationState({target:y,rect:E})}})),removeMultiDragElements(),multiDragElements.forEach(function(y){g[C]?r.insertBefore(y,g[C]):r.appendChild(y),C++}),l===index$2(dragEl$1))){var S=!1;multiDragElements.forEach(function(y){if(y.sortableIndex!==index$2(y)){S=!0;return}}),S&&a("update")}multiDragElements.forEach(function(y){unsetRect(y)}),c.animateAll()}multiDragSortable=c}(n===r||d&&d.lastPutMode!=="clone")&&multiDragClones.forEach(function(y){y.parentNode&&y.parentNode.removeChild(y)})}},nullingGlobal:function(){this.isMultiDrag=dragStarted=!1,multiDragClones.length=0},destroyGlobal:function(){this._deselectMultiDrag(),off(document,"pointerup",this._deselectMultiDrag),off(document,"mouseup",this._deselectMultiDrag),off(document,"touchend",this._deselectMultiDrag),off(document,"keydown",this._checkKeyDown),off(document,"keyup",this._checkKeyUp)},_deselectMultiDrag:function(t){if(!(typeof dragStarted<"u"&&dragStarted)&&multiDragSortable===this.sortable&&!(t&&closest(t.target,this.options.draggable,this.sortable.el,!1))&&!(t&&t.button!==0))for(;multiDragElements.length;){var i=multiDragElements[0];toggleClass(i,this.options.selectedClass,!1),multiDragElements.shift(),dispatchEvent({sortable:this.sortable,rootEl:this.sortable.el,name:"deselect",targetEl:i})}},_checkKeyDown:function(t){t.key===this.options.multiDragKey&&(this.multiDragKeyDown=!0)},_checkKeyUp:function(t){t.key===this.options.multiDragKey&&(this.multiDragKeyDown=!1)}},_extends(o,{pluginName:"multiDrag",utils:{select:function(t){var i=t.parentNode[expando];!i||!i.options.multiDrag||~multiDragElements.indexOf(t)||(multiDragSortable&&multiDragSortable!==i&&(multiDragSortable.multiDrag._deselectMultiDrag(),multiDragSortable=i),toggleClass(t,i.options.selectedClass,!0),multiDragElements.push(t))},deselect:function(t){var i=t.parentNode[expando],n=multiDragElements.indexOf(t);!i||!i.options.multiDrag||!~n||(toggleClass(t,i.options.selectedClass,!1),multiDragElements.splice(n,1))}},eventProperties:function(){var t=this,i=[],n=[];return multiDragElements.forEach(function(r){i.push({multiDragElement:r,index:r.sortableIndex});var s;folding&&r!==dragEl$1?s=-1:folding?s=index$2(r,":not(."+t.options.selectedClass+")"):s=index$2(r),n.push({multiDragElement:r,index:s})}),{items:_toConsumableArray(multiDragElements),clones:[].concat(multiDragClones),oldIndicies:i,newIndicies:n}},optionListeners:{multiDragKey:function(t){return t=t.toLowerCase(),t==="ctrl"?t="Control":t.length>1&&(t=t.charAt(0).toUpperCase()+t.substr(1)),t}}})}function insertMultiDragElements(o,e){multiDragElements.forEach(function(t,i){var n=e.children[t.sortableIndex+(o?Number(i):0)];n?e.insertBefore(t,n):e.appendChild(t)})}function insertMultiDragClones(o,e){multiDragClones.forEach(function(t,i){var n=e.children[t.sortableIndex+(o?Number(i):0)];n?e.insertBefore(t,n):e.appendChild(t)})}function removeMultiDragElements(){multiDragElements.forEach(function(o){o!==dragEl$1&&o.parentNode&&o.parentNode.removeChild(o)})}Sortable.mount(new AutoScrollPlugin);Sortable.mount(Remove,Revert);const sortable_esm=Object.freeze(Object.defineProperty({__proto__:null,MultiDrag:MultiDragPlugin,Sortable,Swap:SwapPlugin,default:Sortable},Symbol.toStringTag,{value:"Module"})),require$$1=getAugmentedNamespace(sortable_esm);var vuedraggable_umd=vuedraggable_umd$1.exports,hasRequiredVuedraggable_umd;function requireVuedraggable_umd(){return hasRequiredVuedraggable_umd||(hasRequiredVuedraggable_umd=1,function(o,e){(function(i,n){o.exports=n(requireVue(),require$$1)})(typeof self<"u"?self:vuedraggable_umd,function(t,i){return function(n){var r={};function s(a){if(r[a])return r[a].exports;var l=r[a]={i:a,l:!1,exports:{}};return n[a].call(l.exports,l,l.exports,s),l.l=!0,l.exports}return s.m=n,s.c=r,s.d=function(a,l,d){s.o(a,l)||Object.defineProperty(a,l,{enumerable:!0,get:d})},s.r=function(a){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})},s.t=function(a,l){if(l&1&&(a=s(a)),l&8||l&4&&typeof a=="object"&&a&&a.__esModule)return a;var d=Object.create(null);if(s.r(d),Object.defineProperty(d,"default",{enumerable:!0,value:a}),l&2&&typeof a!="string")for(var c in a)s.d(d,c,(function(u){return a[u]}).bind(null,c));return d},s.n=function(a){var l=a&&a.__esModule?function(){return a.default}:function(){return a};return s.d(l,"a",l),l},s.o=function(a,l){return Object.prototype.hasOwnProperty.call(a,l)},s.p="",s(s.s="fb15")}({"00ee":function(n,r,s){var a=s("b622"),l=a("toStringTag"),d={};d[l]="z",n.exports=String(d)==="[object z]"},"0366":function(n,r,s){var a=s("1c0b");n.exports=function(l,d,c){if(a(l),d===void 0)return l;switch(c){case 0:return function(){return l.call(d)};case 1:return function(u){return l.call(d,u)};case 2:return function(u,g){return l.call(d,u,g)};case 3:return function(u,g,f){return l.call(d,u,g,f)}}return function(){return l.apply(d,arguments)}}},"057f":function(n,r,s){var a=s("fc6a"),l=s("241c").f,d={}.toString,c=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],u=function(g){try{return l(g)}catch{return c.slice()}};n.exports.f=function(f){return c&&d.call(f)=="[object Window]"?u(f):l(a(f))}},"06cf":function(n,r,s){var a=s("83ab"),l=s("d1e7"),d=s("5c6c"),c=s("fc6a"),u=s("c04e"),g=s("5135"),f=s("0cfb"),p=Object.getOwnPropertyDescriptor;r.f=a?p:function(b,_){if(b=c(b),_=u(_,!0),f)try{return p(b,_)}catch{}if(g(b,_))return d(!l.f.call(b,_),b[_])}},"0cfb":function(n,r,s){var a=s("83ab"),l=s("d039"),d=s("cc12");n.exports=!a&&!l(function(){return Object.defineProperty(d("div"),"a",{get:function(){return 7}}).a!=7})},"13d5":function(n,r,s){var a=s("23e7"),l=s("d58f").left,d=s("a640"),c=s("ae40"),u=d("reduce"),g=c("reduce",{1:0});a({target:"Array",proto:!0,forced:!u||!g},{reduce:function(p){return l(this,p,arguments.length,arguments.length>1?arguments[1]:void 0)}})},"14c3":function(n,r,s){var a=s("c6b6"),l=s("9263");n.exports=function(d,c){var u=d.exec;if(typeof u=="function"){var g=u.call(d,c);if(typeof g!="object")throw TypeError("RegExp exec method returned something other than an Object or null");return g}if(a(d)!=="RegExp")throw TypeError("RegExp#exec called on incompatible receiver");return l.call(d,c)}},"159b":function(n,r,s){var a=s("da84"),l=s("fdbc"),d=s("17c2"),c=s("9112");for(var u in l){var g=a[u],f=g&&g.prototype;if(f&&f.forEach!==d)try{c(f,"forEach",d)}catch{f.forEach=d}}},"17c2":function(n,r,s){var a=s("b727").forEach,l=s("a640"),d=s("ae40"),c=l("forEach"),u=d("forEach");n.exports=!c||!u?function(f){return a(this,f,arguments.length>1?arguments[1]:void 0)}:[].forEach},"1be4":function(n,r,s){var a=s("d066");n.exports=a("document","documentElement")},"1c0b":function(n,r){n.exports=function(s){if(typeof s!="function")throw TypeError(String(s)+" is not a function");return s}},"1c7e":function(n,r,s){var a=s("b622"),l=a("iterator"),d=!1;try{var c=0,u={next:function(){return{done:!!c++}},return:function(){d=!0}};u[l]=function(){return this},Array.from(u,function(){throw 2})}catch{}n.exports=function(g,f){if(!f&&!d)return!1;var p=!1;try{var m={};m[l]=function(){return{next:function(){return{done:p=!0}}}},g(m)}catch{}return p}},"1d80":function(n,r){n.exports=function(s){if(s==null)throw TypeError("Can't call method on "+s);return s}},"1dde":function(n,r,s){var a=s("d039"),l=s("b622"),d=s("2d00"),c=l("species");n.exports=function(u){return d>=51||!a(function(){var g=[],f=g.constructor={};return f[c]=function(){return{foo:1}},g[u](Boolean).foo!==1})}},"23cb":function(n,r,s){var a=s("a691"),l=Math.max,d=Math.min;n.exports=function(c,u){var g=a(c);return g<0?l(g+u,0):d(g,u)}},"23e7":function(n,r,s){var a=s("da84"),l=s("06cf").f,d=s("9112"),c=s("6eeb"),u=s("ce4e"),g=s("e893"),f=s("94ca");n.exports=function(p,m){var b=p.target,_=p.global,C=p.stat,S,y,E,x,L,I;if(_?y=a:C?y=a[b]||u(b,{}):y=(a[b]||{}).prototype,y)for(E in m){if(L=m[E],p.noTargetGet?(I=l(y,E),x=I&&I.value):x=y[E],S=f(_?E:b+(C?".":"#")+E,p.forced),!S&&x!==void 0){if(typeof L==typeof x)continue;g(L,x)}(p.sham||x&&x.sham)&&d(L,"sham",!0),c(y,E,L,p)}}},"241c":function(n,r,s){var a=s("ca84"),l=s("7839"),d=l.concat("length","prototype");r.f=Object.getOwnPropertyNames||function(u){return a(u,d)}},"25f0":function(n,r,s){var a=s("6eeb"),l=s("825a"),d=s("d039"),c=s("ad6d"),u="toString",g=RegExp.prototype,f=g[u],p=d(function(){return f.call({source:"a",flags:"b"})!="/a/b"}),m=f.name!=u;(p||m)&&a(RegExp.prototype,u,function(){var _=l(this),C=String(_.source),S=_.flags,y=String(S===void 0&&_ instanceof RegExp&&!("flags"in g)?c.call(_):S);return"/"+C+"/"+y},{unsafe:!0})},"2ca0":function(n,r,s){var a=s("23e7"),l=s("06cf").f,d=s("50c4"),c=s("5a34"),u=s("1d80"),g=s("ab13"),f=s("c430"),p="".startsWith,m=Math.min,b=g("startsWith"),_=!f&&!b&&!!function(){var C=l(String.prototype,"startsWith");return C&&!C.writable}();a({target:"String",proto:!0,forced:!_&&!b},{startsWith:function(S){var y=String(u(this));c(S);var E=d(m(arguments.length>1?arguments[1]:void 0,y.length)),x=String(S);return p?p.call(y,x,E):y.slice(E,E+x.length)===x}})},"2d00":function(n,r,s){var a=s("da84"),l=s("342f"),d=a.process,c=d&&d.versions,u=c&&c.v8,g,f;u?(g=u.split("."),f=g[0]+g[1]):l&&(g=l.match(/Edge\/(\d+)/),(!g||g[1]>=74)&&(g=l.match(/Chrome\/(\d+)/),g&&(f=g[1]))),n.exports=f&&+f},"342f":function(n,r,s){var a=s("d066");n.exports=a("navigator","userAgent")||""},"35a1":function(n,r,s){var a=s("f5df"),l=s("3f8c"),d=s("b622"),c=d("iterator");n.exports=function(u){if(u!=null)return u[c]||u["@@iterator"]||l[a(u)]}},"37e8":function(n,r,s){var a=s("83ab"),l=s("9bf2"),d=s("825a"),c=s("df75");n.exports=a?Object.defineProperties:function(g,f){d(g);for(var p=c(f),m=p.length,b=0,_;m>b;)l.f(g,_=p[b++],f[_]);return g}},"3bbe":function(n,r,s){var a=s("861d");n.exports=function(l){if(!a(l)&&l!==null)throw TypeError("Can't set "+String(l)+" as a prototype");return l}},"3ca3":function(n,r,s){var a=s("6547").charAt,l=s("69f3"),d=s("7dd0"),c="String Iterator",u=l.set,g=l.getterFor(c);d(String,"String",function(f){u(this,{type:c,string:String(f),index:0})},function(){var p=g(this),m=p.string,b=p.index,_;return b>=m.length?{value:void 0,done:!0}:(_=a(m,b),p.index+=_.length,{value:_,done:!1})})},"3f8c":function(n,r){n.exports={}},4160:function(n,r,s){var a=s("23e7"),l=s("17c2");a({target:"Array",proto:!0,forced:[].forEach!=l},{forEach:l})},"428f":function(n,r,s){var a=s("da84");n.exports=a},"44ad":function(n,r,s){var a=s("d039"),l=s("c6b6"),d="".split;n.exports=a(function(){return!Object("z").propertyIsEnumerable(0)})?function(c){return l(c)=="String"?d.call(c,""):Object(c)}:Object},"44d2":function(n,r,s){var a=s("b622"),l=s("7c73"),d=s("9bf2"),c=a("unscopables"),u=Array.prototype;u[c]==null&&d.f(u,c,{configurable:!0,value:l(null)}),n.exports=function(g){u[c][g]=!0}},"44e7":function(n,r,s){var a=s("861d"),l=s("c6b6"),d=s("b622"),c=d("match");n.exports=function(u){var g;return a(u)&&((g=u[c])!==void 0?!!g:l(u)=="RegExp")}},4930:function(n,r,s){var a=s("d039");n.exports=!!Object.getOwnPropertySymbols&&!a(function(){return!String(Symbol())})},"4d64":function(n,r,s){var a=s("fc6a"),l=s("50c4"),d=s("23cb"),c=function(u){return function(g,f,p){var m=a(g),b=l(m.length),_=d(p,b),C;if(u&&f!=f){for(;b>_;)if(C=m[_++],C!=C)return!0}else for(;b>_;_++)if((u||_ in m)&&m[_]===f)return u||_||0;return!u&&-1}};n.exports={includes:c(!0),indexOf:c(!1)}},"4de4":function(n,r,s){var a=s("23e7"),l=s("b727").filter,d=s("1dde"),c=s("ae40"),u=d("filter"),g=c("filter");a({target:"Array",proto:!0,forced:!u||!g},{filter:function(p){return l(this,p,arguments.length>1?arguments[1]:void 0)}})},"4df4":function(n,r,s){var a=s("0366"),l=s("7b0b"),d=s("9bdd"),c=s("e95a"),u=s("50c4"),g=s("8418"),f=s("35a1");n.exports=function(m){var b=l(m),_=typeof this=="function"?this:Array,C=arguments.length,S=C>1?arguments[1]:void 0,y=S!==void 0,E=f(b),x=0,L,I,D,N,F,R;if(y&&(S=a(S,C>2?arguments[2]:void 0,2)),E!=null&&!(_==Array&&c(E)))for(N=E.call(b),F=N.next,I=new _;!(D=F.call(N)).done;x++)R=y?d(N,S,[D.value,x],!0):D.value,g(I,x,R);else for(L=u(b.length),I=new _(L);L>x;x++)R=y?S(b[x],x):b[x],g(I,x,R);return I.length=x,I}},"4fad":function(n,r,s){var a=s("23e7"),l=s("6f53").entries;a({target:"Object",stat:!0},{entries:function(c){return l(c)}})},"50c4":function(n,r,s){var a=s("a691"),l=Math.min;n.exports=function(d){return d>0?l(a(d),9007199254740991):0}},5135:function(n,r){var s={}.hasOwnProperty;n.exports=function(a,l){return s.call(a,l)}},5319:function(n,r,s){var a=s("d784"),l=s("825a"),d=s("7b0b"),c=s("50c4"),u=s("a691"),g=s("1d80"),f=s("8aa5"),p=s("14c3"),m=Math.max,b=Math.min,_=Math.floor,C=/\$([$&'`]|\d\d?|<[^>]*>)/g,S=/\$([$&'`]|\d\d?)/g,y=function(E){return E===void 0?E:String(E)};a("replace",2,function(E,x,L,I){var D=I.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,N=I.REPLACE_KEEPS_$0,F=D?"$":"$0";return[function(W,V){var A=g(this),P=W==null?void 0:W[E];return P!==void 0?P.call(W,A,V):x.call(String(A),W,V)},function(M,W){if(!D&&N||typeof W=="string"&&W.indexOf(F)===-1){var V=L(x,M,this,W);if(V.done)return V.value}var A=l(M),P=String(this),k=typeof W=="function";k||(W=String(W));var T=A.global;if(T){var U=A.unicode;A.lastIndex=0}for(var z=[];;){var J=p(A,P);if(J===null||(z.push(J),!T))break;var X=String(J[0]);X===""&&(A.lastIndex=f(P,c(A.lastIndex),U))}for(var ae="",ve=0,me=0;me<z.length;me++){J=z[me];for(var fe=String(J[0]),xe=m(b(u(J.index),P.length),0),Ie=[],De=1;De<J.length;De++)Ie.push(y(J[De]));var he=J.groups;if(k){var Me=[fe].concat(Ie,xe,P);he!==void 0&&Me.push(he);var we=String(W.apply(void 0,Me))}else we=R(fe,P,xe,Ie,he,W);xe>=ve&&(ae+=P.slice(ve,xe)+we,ve=xe+fe.length)}return ae+P.slice(ve)}];function R(M,W,V,A,P,k){var T=V+M.length,U=A.length,z=S;return P!==void 0&&(P=d(P),z=C),x.call(k,z,function(J,X){var ae;switch(X.charAt(0)){case"$":return"$";case"&":return M;case"`":return W.slice(0,V);case"'":return W.slice(T);case"<":ae=P[X.slice(1,-1)];break;default:var ve=+X;if(ve===0)return J;if(ve>U){var me=_(ve/10);return me===0?J:me<=U?A[me-1]===void 0?X.charAt(1):A[me-1]+X.charAt(1):J}ae=A[ve-1]}return ae===void 0?"":ae})}})},5692:function(n,r,s){var a=s("c430"),l=s("c6cd");(n.exports=function(d,c){return l[d]||(l[d]=c!==void 0?c:{})})("versions",[]).push({version:"3.6.5",mode:a?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},"56ef":function(n,r,s){var a=s("d066"),l=s("241c"),d=s("7418"),c=s("825a");n.exports=a("Reflect","ownKeys")||function(g){var f=l.f(c(g)),p=d.f;return p?f.concat(p(g)):f}},"5a34":function(n,r,s){var a=s("44e7");n.exports=function(l){if(a(l))throw TypeError("The method doesn't accept regular expressions");return l}},"5c6c":function(n,r){n.exports=function(s,a){return{enumerable:!(s&1),configurable:!(s&2),writable:!(s&4),value:a}}},"5db7":function(n,r,s){var a=s("23e7"),l=s("a2bf"),d=s("7b0b"),c=s("50c4"),u=s("1c0b"),g=s("65f0");a({target:"Array",proto:!0},{flatMap:function(p){var m=d(this),b=c(m.length),_;return u(p),_=g(m,0),_.length=l(_,m,m,b,0,1,p,arguments.length>1?arguments[1]:void 0),_}})},6547:function(n,r,s){var a=s("a691"),l=s("1d80"),d=function(c){return function(u,g){var f=String(l(u)),p=a(g),m=f.length,b,_;return p<0||p>=m?c?"":void 0:(b=f.charCodeAt(p),b<55296||b>56319||p+1===m||(_=f.charCodeAt(p+1))<56320||_>57343?c?f.charAt(p):b:c?f.slice(p,p+2):(b-55296<<10)+(_-56320)+65536)}};n.exports={codeAt:d(!1),charAt:d(!0)}},"65f0":function(n,r,s){var a=s("861d"),l=s("e8b5"),d=s("b622"),c=d("species");n.exports=function(u,g){var f;return l(u)&&(f=u.constructor,typeof f=="function"&&(f===Array||l(f.prototype))?f=void 0:a(f)&&(f=f[c],f===null&&(f=void 0))),new(f===void 0?Array:f)(g===0?0:g)}},"69f3":function(n,r,s){var a=s("7f9a"),l=s("da84"),d=s("861d"),c=s("9112"),u=s("5135"),g=s("f772"),f=s("d012"),p=l.WeakMap,m,b,_,C=function(D){return _(D)?b(D):m(D,{})},S=function(D){return function(N){var F;if(!d(N)||(F=b(N)).type!==D)throw TypeError("Incompatible receiver, "+D+" required");return F}};if(a){var y=new p,E=y.get,x=y.has,L=y.set;m=function(D,N){return L.call(y,D,N),N},b=function(D){return E.call(y,D)||{}},_=function(D){return x.call(y,D)}}else{var I=g("state");f[I]=!0,m=function(D,N){return c(D,I,N),N},b=function(D){return u(D,I)?D[I]:{}},_=function(D){return u(D,I)}}n.exports={set:m,get:b,has:_,enforce:C,getterFor:S}},"6eeb":function(n,r,s){var a=s("da84"),l=s("9112"),d=s("5135"),c=s("ce4e"),u=s("8925"),g=s("69f3"),f=g.get,p=g.enforce,m=String(String).split("String");(n.exports=function(b,_,C,S){var y=S?!!S.unsafe:!1,E=S?!!S.enumerable:!1,x=S?!!S.noTargetGet:!1;if(typeof C=="function"&&(typeof _=="string"&&!d(C,"name")&&l(C,"name",_),p(C).source=m.join(typeof _=="string"?_:"")),b===a){E?b[_]=C:c(_,C);return}else y?!x&&b[_]&&(E=!0):delete b[_];E?b[_]=C:l(b,_,C)})(Function.prototype,"toString",function(){return typeof this=="function"&&f(this).source||u(this)})},"6f53":function(n,r,s){var a=s("83ab"),l=s("df75"),d=s("fc6a"),c=s("d1e7").f,u=function(g){return function(f){for(var p=d(f),m=l(p),b=m.length,_=0,C=[],S;b>_;)S=m[_++],(!a||c.call(p,S))&&C.push(g?[S,p[S]]:p[S]);return C}};n.exports={entries:u(!0),values:u(!1)}},"73d9":function(n,r,s){var a=s("44d2");a("flatMap")},7418:function(n,r){r.f=Object.getOwnPropertySymbols},"746f":function(n,r,s){var a=s("428f"),l=s("5135"),d=s("e538"),c=s("9bf2").f;n.exports=function(u){var g=a.Symbol||(a.Symbol={});l(g,u)||c(g,u,{value:d.f(u)})}},7839:function(n,r){n.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},"7b0b":function(n,r,s){var a=s("1d80");n.exports=function(l){return Object(a(l))}},"7c73":function(n,r,s){var a=s("825a"),l=s("37e8"),d=s("7839"),c=s("d012"),u=s("1be4"),g=s("cc12"),f=s("f772"),p=">",m="<",b="prototype",_="script",C=f("IE_PROTO"),S=function(){},y=function(D){return m+_+p+D+m+"/"+_+p},E=function(D){D.write(y("")),D.close();var N=D.parentWindow.Object;return D=null,N},x=function(){var D=g("iframe"),N="java"+_+":",F;return D.style.display="none",u.appendChild(D),D.src=String(N),F=D.contentWindow.document,F.open(),F.write(y("document.F=Object")),F.close(),F.F},L,I=function(){try{L=document.domain&&new ActiveXObject("htmlfile")}catch{}I=L?E(L):x();for(var D=d.length;D--;)delete I[b][d[D]];return I()};c[C]=!0,n.exports=Object.create||function(N,F){var R;return N!==null?(S[b]=a(N),R=new S,S[b]=null,R[C]=N):R=I(),F===void 0?R:l(R,F)}},"7dd0":function(n,r,s){var a=s("23e7"),l=s("9ed3"),d=s("e163"),c=s("d2bb"),u=s("d44e"),g=s("9112"),f=s("6eeb"),p=s("b622"),m=s("c430"),b=s("3f8c"),_=s("ae93"),C=_.IteratorPrototype,S=_.BUGGY_SAFARI_ITERATORS,y=p("iterator"),E="keys",x="values",L="entries",I=function(){return this};n.exports=function(D,N,F,R,M,W,V){l(F,N,R);var A=function(me){if(me===M&&z)return z;if(!S&&me in T)return T[me];switch(me){case E:return function(){return new F(this,me)};case x:return function(){return new F(this,me)};case L:return function(){return new F(this,me)}}return function(){return new F(this)}},P=N+" Iterator",k=!1,T=D.prototype,U=T[y]||T["@@iterator"]||M&&T[M],z=!S&&U||A(M),J=N=="Array"&&T.entries||U,X,ae,ve;if(J&&(X=d(J.call(new D)),C!==Object.prototype&&X.next&&(!m&&d(X)!==C&&(c?c(X,C):typeof X[y]!="function"&&g(X,y,I)),u(X,P,!0,!0),m&&(b[P]=I))),M==x&&U&&U.name!==x&&(k=!0,z=function(){return U.call(this)}),(!m||V)&&T[y]!==z&&g(T,y,z),b[N]=z,M)if(ae={values:A(x),keys:W?z:A(E),entries:A(L)},V)for(ve in ae)(S||k||!(ve in T))&&f(T,ve,ae[ve]);else a({target:N,proto:!0,forced:S||k},ae);return ae}},"7f9a":function(n,r,s){var a=s("da84"),l=s("8925"),d=a.WeakMap;n.exports=typeof d=="function"&&/native code/.test(l(d))},"825a":function(n,r,s){var a=s("861d");n.exports=function(l){if(!a(l))throw TypeError(String(l)+" is not an object");return l}},"83ab":function(n,r,s){var a=s("d039");n.exports=!a(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})},8418:function(n,r,s){var a=s("c04e"),l=s("9bf2"),d=s("5c6c");n.exports=function(c,u,g){var f=a(u);f in c?l.f(c,f,d(0,g)):c[f]=g}},"861d":function(n,r){n.exports=function(s){return typeof s=="object"?s!==null:typeof s=="function"}},8875:function(n,r,s){var a,l,d;(function(c,u){l=[],a=u,d=typeof a=="function"?a.apply(r,l):a,d!==void 0&&(n.exports=d)})(typeof self<"u"?self:this,function(){function c(){var u=Object.getOwnPropertyDescriptor(document,"currentScript");if(!u&&"currentScript"in document&&document.currentScript||u&&u.get!==c&&document.currentScript)return document.currentScript;try{throw new Error}catch(L){var g=/.*at [^(]*\((.*):(.+):(.+)\)$/ig,f=/@([^@]*):(\d+):(\d+)\s*$/ig,p=g.exec(L.stack)||f.exec(L.stack),m=p&&p[1]||!1,b=p&&p[2]||!1,_=document.location.href.replace(document.location.hash,""),C,S,y,E=document.getElementsByTagName("script");m===_&&(C=document.documentElement.outerHTML,S=new RegExp("(?:[^\\n]+?\\n){0,"+(b-2)+"}[^<]*<script>([\\d\\D]*?)<\\/script>[\\d\\D]*","i"),y=C.replace(S,"$1").trim());for(var x=0;x<E.length;x++)if(E[x].readyState==="interactive"||E[x].src===m||m===_&&E[x].innerHTML&&E[x].innerHTML.trim()===y)return E[x];return null}}return c})},8925:function(n,r,s){var a=s("c6cd"),l=Function.toString;typeof a.inspectSource!="function"&&(a.inspectSource=function(d){return l.call(d)}),n.exports=a.inspectSource},"8aa5":function(n,r,s){var a=s("6547").charAt;n.exports=function(l,d,c){return d+(c?a(l,d).length:1)}},"8bbf":function(n,r){n.exports=t},"90e3":function(n,r){var s=0,a=Math.random();n.exports=function(l){return"Symbol("+String(l===void 0?"":l)+")_"+(++s+a).toString(36)}},9112:function(n,r,s){var a=s("83ab"),l=s("9bf2"),d=s("5c6c");n.exports=a?function(c,u,g){return l.f(c,u,d(1,g))}:function(c,u,g){return c[u]=g,c}},9263:function(n,r,s){var a=s("ad6d"),l=s("9f7f"),d=RegExp.prototype.exec,c=String.prototype.replace,u=d,g=function(){var b=/a/,_=/b*/g;return d.call(b,"a"),d.call(_,"a"),b.lastIndex!==0||_.lastIndex!==0}(),f=l.UNSUPPORTED_Y||l.BROKEN_CARET,p=/()??/.exec("")[1]!==void 0,m=g||p||f;m&&(u=function(_){var C=this,S,y,E,x,L=f&&C.sticky,I=a.call(C),D=C.source,N=0,F=_;return L&&(I=I.replace("y",""),I.indexOf("g")===-1&&(I+="g"),F=String(_).slice(C.lastIndex),C.lastIndex>0&&(!C.multiline||C.multiline&&_[C.lastIndex-1]!==`
- `)&&(D="(?: "+D+")",F=" "+F,N++),y=new RegExp("^(?:"+D+")",I)),p&&(y=new RegExp("^"+D+"$(?!\\s)",I)),g&&(S=C.lastIndex),E=d.call(L?y:C,F),L?E?(E.input=E.input.slice(N),E[0]=E[0].slice(N),E.index=C.lastIndex,C.lastIndex+=E[0].length):C.lastIndex=0:g&&E&&(C.lastIndex=C.global?E.index+E[0].length:S),p&&E&&E.length>1&&c.call(E[0],y,function(){for(x=1;x<arguments.length-2;x++)arguments[x]===void 0&&(E[x]=void 0)}),E}),n.exports=u},"94ca":function(n,r,s){var a=s("d039"),l=/#|\.prototype\./,d=function(p,m){var b=u[c(p)];return b==f?!0:b==g?!1:typeof m=="function"?a(m):!!m},c=d.normalize=function(p){return String(p).replace(l,".").toLowerCase()},u=d.data={},g=d.NATIVE="N",f=d.POLYFILL="P";n.exports=d},"99af":function(n,r,s){var a=s("23e7"),l=s("d039"),d=s("e8b5"),c=s("861d"),u=s("7b0b"),g=s("50c4"),f=s("8418"),p=s("65f0"),m=s("1dde"),b=s("b622"),_=s("2d00"),C=b("isConcatSpreadable"),S=9007199254740991,y="Maximum allowed index exceeded",E=_>=51||!l(function(){var D=[];return D[C]=!1,D.concat()[0]!==D}),x=m("concat"),L=function(D){if(!c(D))return!1;var N=D[C];return N!==void 0?!!N:d(D)},I=!E||!x;a({target:"Array",proto:!0,forced:I},{concat:function(N){var F=u(this),R=p(F,0),M=0,W,V,A,P,k;for(W=-1,A=arguments.length;W<A;W++)if(k=W===-1?F:arguments[W],L(k)){if(P=g(k.length),M+P>S)throw TypeError(y);for(V=0;V<P;V++,M++)V in k&&f(R,M,k[V])}else{if(M>=S)throw TypeError(y);f(R,M++,k)}return R.length=M,R}})},"9bdd":function(n,r,s){var a=s("825a");n.exports=function(l,d,c,u){try{return u?d(a(c)[0],c[1]):d(c)}catch(f){var g=l.return;throw g!==void 0&&a(g.call(l)),f}}},"9bf2":function(n,r,s){var a=s("83ab"),l=s("0cfb"),d=s("825a"),c=s("c04e"),u=Object.defineProperty;r.f=a?u:function(f,p,m){if(d(f),p=c(p,!0),d(m),l)try{return u(f,p,m)}catch{}if("get"in m||"set"in m)throw TypeError("Accessors not supported");return"value"in m&&(f[p]=m.value),f}},"9ed3":function(n,r,s){var a=s("ae93").IteratorPrototype,l=s("7c73"),d=s("5c6c"),c=s("d44e"),u=s("3f8c"),g=function(){return this};n.exports=function(f,p,m){var b=p+" Iterator";return f.prototype=l(a,{next:d(1,m)}),c(f,b,!1,!0),u[b]=g,f}},"9f7f":function(n,r,s){var a=s("d039");function l(d,c){return RegExp(d,c)}r.UNSUPPORTED_Y=a(function(){var d=l("a","y");return d.lastIndex=2,d.exec("abcd")!=null}),r.BROKEN_CARET=a(function(){var d=l("^r","gy");return d.lastIndex=2,d.exec("str")!=null})},a2bf:function(n,r,s){var a=s("e8b5"),l=s("50c4"),d=s("0366"),c=function(u,g,f,p,m,b,_,C){for(var S=m,y=0,E=_?d(_,C,3):!1,x;y<p;){if(y in f){if(x=E?E(f[y],y,g):f[y],b>0&&a(x))S=c(u,g,x,l(x.length),S,b-1)-1;else{if(S>=9007199254740991)throw TypeError("Exceed the acceptable array length");u[S]=x}S++}y++}return S};n.exports=c},a352:function(n,r){n.exports=i},a434:function(n,r,s){var a=s("23e7"),l=s("23cb"),d=s("a691"),c=s("50c4"),u=s("7b0b"),g=s("65f0"),f=s("8418"),p=s("1dde"),m=s("ae40"),b=p("splice"),_=m("splice",{ACCESSORS:!0,0:0,1:2}),C=Math.max,S=Math.min,y=9007199254740991,E="Maximum allowed length exceeded";a({target:"Array",proto:!0,forced:!b||!_},{splice:function(L,I){var D=u(this),N=c(D.length),F=l(L,N),R=arguments.length,M,W,V,A,P,k;if(R===0?M=W=0:R===1?(M=0,W=N-F):(M=R-2,W=S(C(d(I),0),N-F)),N+M-W>y)throw TypeError(E);for(V=g(D,W),A=0;A<W;A++)P=F+A,P in D&&f(V,A,D[P]);if(V.length=W,M<W){for(A=F;A<N-W;A++)P=A+W,k=A+M,P in D?D[k]=D[P]:delete D[k];for(A=N;A>N-W+M;A--)delete D[A-1]}else if(M>W)for(A=N-W;A>F;A--)P=A+W-1,k=A+M-1,P in D?D[k]=D[P]:delete D[k];for(A=0;A<M;A++)D[A+F]=arguments[A+2];return D.length=N-W+M,V}})},a4d3:function(n,r,s){var a=s("23e7"),l=s("da84"),d=s("d066"),c=s("c430"),u=s("83ab"),g=s("4930"),f=s("fdbf"),p=s("d039"),m=s("5135"),b=s("e8b5"),_=s("861d"),C=s("825a"),S=s("7b0b"),y=s("fc6a"),E=s("c04e"),x=s("5c6c"),L=s("7c73"),I=s("df75"),D=s("241c"),N=s("057f"),F=s("7418"),R=s("06cf"),M=s("9bf2"),W=s("d1e7"),V=s("9112"),A=s("6eeb"),P=s("5692"),k=s("f772"),T=s("d012"),U=s("90e3"),z=s("b622"),J=s("e538"),X=s("746f"),ae=s("d44e"),ve=s("69f3"),me=s("b727").forEach,fe=k("hidden"),xe="Symbol",Ie="prototype",De=z("toPrimitive"),he=ve.set,Me=ve.getterFor(xe),we=Object[Ie],ue=l.Symbol,ke=d("JSON","stringify"),Re=R.f,Pe=M.f,$e=N.f,He=W.f,ie=P("symbols"),q=P("op-symbols"),Z=P("string-to-symbol-registry"),O=P("symbol-to-string-registry"),B=P("wks"),j=l.QObject,H=!j||!j[Ie]||!j[Ie].findChild,ne=u&&p(function(){return L(Pe({},"a",{get:function(){return Pe(this,"a",{value:7}).a}})).a!=7})?function(Se,ee,Y){var de=Re(we,ee);de&&delete we[ee],Pe(Se,ee,Y),de&&Se!==we&&Pe(we,ee,de)}:Pe,re=function(Se,ee){var Y=ie[Se]=L(ue[Ie]);return he(Y,{type:xe,tag:Se,description:ee}),u||(Y.description=ee),Y},K=f?function(Se){return typeof Se=="symbol"}:function(Se){return Object(Se)instanceof ue},G=function(ee,Y,de){ee===we&&G(q,Y,de),C(ee);var ce=E(Y,!0);return C(de),m(ie,ce)?(de.enumerable?(m(ee,fe)&&ee[fe][ce]&&(ee[fe][ce]=!1),de=L(de,{enumerable:x(0,!1)})):(m(ee,fe)||Pe(ee,fe,x(1,{})),ee[fe][ce]=!0),ne(ee,ce,de)):Pe(ee,ce,de)},Q=function(ee,Y){C(ee);var de=y(Y),ce=I(de).concat(ye(de));return me(ce,function(be){(!u||le.call(de,be))&&G(ee,be,de[be])}),ee},oe=function(ee,Y){return Y===void 0?L(ee):Q(L(ee),Y)},le=function(ee){var Y=E(ee,!0),de=He.call(this,Y);return this===we&&m(ie,Y)&&!m(q,Y)?!1:de||!m(this,Y)||!m(ie,Y)||m(this,fe)&&this[fe][Y]?de:!0},pe=function(ee,Y){var de=y(ee),ce=E(Y,!0);if(!(de===we&&m(ie,ce)&&!m(q,ce))){var be=Re(de,ce);return be&&m(ie,ce)&&!(m(de,fe)&&de[fe][ce])&&(be.enumerable=!0),be}},se=function(ee){var Y=$e(y(ee)),de=[];return me(Y,function(ce){!m(ie,ce)&&!m(T,ce)&&de.push(ce)}),de},ye=function(ee){var Y=ee===we,de=$e(Y?q:y(ee)),ce=[];return me(de,function(be){m(ie,be)&&(!Y||m(we,be))&&ce.push(ie[be])}),ce};if(g||(ue=function(){if(this instanceof ue)throw TypeError("Symbol is not a constructor");var ee=!arguments.length||arguments[0]===void 0?void 0:String(arguments[0]),Y=U(ee),de=function(ce){this===we&&de.call(q,ce),m(this,fe)&&m(this[fe],Y)&&(this[fe][Y]=!1),ne(this,Y,x(1,ce))};return u&&H&&ne(we,Y,{configurable:!0,set:de}),re(Y,ee)},A(ue[Ie],"toString",function(){return Me(this).tag}),A(ue,"withoutSetter",function(Se){return re(U(Se),Se)}),W.f=le,M.f=G,R.f=pe,D.f=N.f=se,F.f=ye,J.f=function(Se){return re(z(Se),Se)},u&&(Pe(ue[Ie],"description",{configurable:!0,get:function(){return Me(this).description}}),c||A(we,"propertyIsEnumerable",le,{unsafe:!0}))),a({global:!0,wrap:!0,forced:!g,sham:!g},{Symbol:ue}),me(I(B),function(Se){X(Se)}),a({target:xe,stat:!0,forced:!g},{for:function(Se){var ee=String(Se);if(m(Z,ee))return Z[ee];var Y=ue(ee);return Z[ee]=Y,O[Y]=ee,Y},keyFor:function(ee){if(!K(ee))throw TypeError(ee+" is not a symbol");if(m(O,ee))return O[ee]},useSetter:function(){H=!0},useSimple:function(){H=!1}}),a({target:"Object",stat:!0,forced:!g,sham:!u},{create:oe,defineProperty:G,defineProperties:Q,getOwnPropertyDescriptor:pe}),a({target:"Object",stat:!0,forced:!g},{getOwnPropertyNames:se,getOwnPropertySymbols:ye}),a({target:"Object",stat:!0,forced:p(function(){F.f(1)})},{getOwnPropertySymbols:function(ee){return F.f(S(ee))}}),ke){var Le=!g||p(function(){var Se=ue();return ke([Se])!="[null]"||ke({a:Se})!="{}"||ke(Object(Se))!="{}"});a({target:"JSON",stat:!0,forced:Le},{stringify:function(ee,Y,de){for(var ce=[ee],be=1,Ae;arguments.length>be;)ce.push(arguments[be++]);if(Ae=Y,!(!_(Y)&&ee===void 0||K(ee)))return b(Y)||(Y=function(Ne,Be){if(typeof Ae=="function"&&(Be=Ae.call(this,Ne,Be)),!K(Be))return Be}),ce[1]=Y,ke.apply(null,ce)}})}ue[Ie][De]||V(ue[Ie],De,ue[Ie].valueOf),ae(ue,xe),T[fe]=!0},a630:function(n,r,s){var a=s("23e7"),l=s("4df4"),d=s("1c7e"),c=!d(function(u){Array.from(u)});a({target:"Array",stat:!0,forced:c},{from:l})},a640:function(n,r,s){var a=s("d039");n.exports=function(l,d){var c=[][l];return!!c&&a(function(){c.call(null,d||function(){throw 1},1)})}},a691:function(n,r){var s=Math.ceil,a=Math.floor;n.exports=function(l){return isNaN(l=+l)?0:(l>0?a:s)(l)}},ab13:function(n,r,s){var a=s("b622"),l=a("match");n.exports=function(d){var c=/./;try{"/./"[d](c)}catch{try{return c[l]=!1,"/./"[d](c)}catch{}}return!1}},ac1f:function(n,r,s){var a=s("23e7"),l=s("9263");a({target:"RegExp",proto:!0,forced:/./.exec!==l},{exec:l})},ad6d:function(n,r,s){var a=s("825a");n.exports=function(){var l=a(this),d="";return l.global&&(d+="g"),l.ignoreCase&&(d+="i"),l.multiline&&(d+="m"),l.dotAll&&(d+="s"),l.unicode&&(d+="u"),l.sticky&&(d+="y"),d}},ae40:function(n,r,s){var a=s("83ab"),l=s("d039"),d=s("5135"),c=Object.defineProperty,u={},g=function(f){throw f};n.exports=function(f,p){if(d(u,f))return u[f];p||(p={});var m=[][f],b=d(p,"ACCESSORS")?p.ACCESSORS:!1,_=d(p,0)?p[0]:g,C=d(p,1)?p[1]:void 0;return u[f]=!!m&&!l(function(){if(b&&!a)return!0;var S={length:-1};b?c(S,1,{enumerable:!0,get:g}):S[1]=1,m.call(S,_,C)})}},ae93:function(n,r,s){var a=s("e163"),l=s("9112"),d=s("5135"),c=s("b622"),u=s("c430"),g=c("iterator"),f=!1,p=function(){return this},m,b,_;[].keys&&(_=[].keys(),"next"in _?(b=a(a(_)),b!==Object.prototype&&(m=b)):f=!0),m==null&&(m={}),!u&&!d(m,g)&&l(m,g,p),n.exports={IteratorPrototype:m,BUGGY_SAFARI_ITERATORS:f}},b041:function(n,r,s){var a=s("00ee"),l=s("f5df");n.exports=a?{}.toString:function(){return"[object "+l(this)+"]"}},b0c0:function(n,r,s){var a=s("83ab"),l=s("9bf2").f,d=Function.prototype,c=d.toString,u=/^\s*function ([^ (]*)/,g="name";a&&!(g in d)&&l(d,g,{configurable:!0,get:function(){try{return c.call(this).match(u)[1]}catch{return""}}})},b622:function(n,r,s){var a=s("da84"),l=s("5692"),d=s("5135"),c=s("90e3"),u=s("4930"),g=s("fdbf"),f=l("wks"),p=a.Symbol,m=g?p:p&&p.withoutSetter||c;n.exports=function(b){return d(f,b)||(u&&d(p,b)?f[b]=p[b]:f[b]=m("Symbol."+b)),f[b]}},b64b:function(n,r,s){var a=s("23e7"),l=s("7b0b"),d=s("df75"),c=s("d039"),u=c(function(){d(1)});a({target:"Object",stat:!0,forced:u},{keys:function(f){return d(l(f))}})},b727:function(n,r,s){var a=s("0366"),l=s("44ad"),d=s("7b0b"),c=s("50c4"),u=s("65f0"),g=[].push,f=function(p){var m=p==1,b=p==2,_=p==3,C=p==4,S=p==6,y=p==5||S;return function(E,x,L,I){for(var D=d(E),N=l(D),F=a(x,L,3),R=c(N.length),M=0,W=I||u,V=m?W(E,R):b?W(E,0):void 0,A,P;R>M;M++)if((y||M in N)&&(A=N[M],P=F(A,M,D),p)){if(m)V[M]=P;else if(P)switch(p){case 3:return!0;case 5:return A;case 6:return M;case 2:g.call(V,A)}else if(C)return!1}return S?-1:_||C?C:V}};n.exports={forEach:f(0),map:f(1),filter:f(2),some:f(3),every:f(4),find:f(5),findIndex:f(6)}},c04e:function(n,r,s){var a=s("861d");n.exports=function(l,d){if(!a(l))return l;var c,u;if(d&&typeof(c=l.toString)=="function"&&!a(u=c.call(l))||typeof(c=l.valueOf)=="function"&&!a(u=c.call(l))||!d&&typeof(c=l.toString)=="function"&&!a(u=c.call(l)))return u;throw TypeError("Can't convert object to primitive value")}},c430:function(n,r){n.exports=!1},c6b6:function(n,r){var s={}.toString;n.exports=function(a){return s.call(a).slice(8,-1)}},c6cd:function(n,r,s){var a=s("da84"),l=s("ce4e"),d="__core-js_shared__",c=a[d]||l(d,{});n.exports=c},c740:function(n,r,s){var a=s("23e7"),l=s("b727").findIndex,d=s("44d2"),c=s("ae40"),u="findIndex",g=!0,f=c(u);u in[]&&Array(1)[u](function(){g=!1}),a({target:"Array",proto:!0,forced:g||!f},{findIndex:function(m){return l(this,m,arguments.length>1?arguments[1]:void 0)}}),d(u)},c8ba:function(n,r){var s;s=function(){return this}();try{s=s||new Function("return this")()}catch{typeof window=="object"&&(s=window)}n.exports=s},c975:function(n,r,s){var a=s("23e7"),l=s("4d64").indexOf,d=s("a640"),c=s("ae40"),u=[].indexOf,g=!!u&&1/[1].indexOf(1,-0)<0,f=d("indexOf"),p=c("indexOf",{ACCESSORS:!0,1:0});a({target:"Array",proto:!0,forced:g||!f||!p},{indexOf:function(b){return g?u.apply(this,arguments)||0:l(this,b,arguments.length>1?arguments[1]:void 0)}})},ca84:function(n,r,s){var a=s("5135"),l=s("fc6a"),d=s("4d64").indexOf,c=s("d012");n.exports=function(u,g){var f=l(u),p=0,m=[],b;for(b in f)!a(c,b)&&a(f,b)&&m.push(b);for(;g.length>p;)a(f,b=g[p++])&&(~d(m,b)||m.push(b));return m}},caad:function(n,r,s){var a=s("23e7"),l=s("4d64").includes,d=s("44d2"),c=s("ae40"),u=c("indexOf",{ACCESSORS:!0,1:0});a({target:"Array",proto:!0,forced:!u},{includes:function(f){return l(this,f,arguments.length>1?arguments[1]:void 0)}}),d("includes")},cc12:function(n,r,s){var a=s("da84"),l=s("861d"),d=a.document,c=l(d)&&l(d.createElement);n.exports=function(u){return c?d.createElement(u):{}}},ce4e:function(n,r,s){var a=s("da84"),l=s("9112");n.exports=function(d,c){try{l(a,d,c)}catch{a[d]=c}return c}},d012:function(n,r){n.exports={}},d039:function(n,r){n.exports=function(s){try{return!!s()}catch{return!0}}},d066:function(n,r,s){var a=s("428f"),l=s("da84"),d=function(c){return typeof c=="function"?c:void 0};n.exports=function(c,u){return arguments.length<2?d(a[c])||d(l[c]):a[c]&&a[c][u]||l[c]&&l[c][u]}},d1e7:function(n,r,s){var a={}.propertyIsEnumerable,l=Object.getOwnPropertyDescriptor,d=l&&!a.call({1:2},1);r.f=d?function(u){var g=l(this,u);return!!g&&g.enumerable}:a},d28b:function(n,r,s){var a=s("746f");a("iterator")},d2bb:function(n,r,s){var a=s("825a"),l=s("3bbe");n.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var d=!1,c={},u;try{u=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set,u.call(c,[]),d=c instanceof Array}catch{}return function(f,p){return a(f),l(p),d?u.call(f,p):f.__proto__=p,f}}():void 0)},d3b7:function(n,r,s){var a=s("00ee"),l=s("6eeb"),d=s("b041");a||l(Object.prototype,"toString",d,{unsafe:!0})},d44e:function(n,r,s){var a=s("9bf2").f,l=s("5135"),d=s("b622"),c=d("toStringTag");n.exports=function(u,g,f){u&&!l(u=f?u:u.prototype,c)&&a(u,c,{configurable:!0,value:g})}},d58f:function(n,r,s){var a=s("1c0b"),l=s("7b0b"),d=s("44ad"),c=s("50c4"),u=function(g){return function(f,p,m,b){a(p);var _=l(f),C=d(_),S=c(_.length),y=g?S-1:0,E=g?-1:1;if(m<2)for(;;){if(y in C){b=C[y],y+=E;break}if(y+=E,g?y<0:S<=y)throw TypeError("Reduce of empty array with no initial value")}for(;g?y>=0:S>y;y+=E)y in C&&(b=p(b,C[y],y,_));return b}};n.exports={left:u(!1),right:u(!0)}},d784:function(n,r,s){s("ac1f");var a=s("6eeb"),l=s("d039"),d=s("b622"),c=s("9263"),u=s("9112"),g=d("species"),f=!l(function(){var C=/./;return C.exec=function(){var S=[];return S.groups={a:"7"},S},"".replace(C,"$<a>")!=="7"}),p=function(){return"a".replace(/./,"$0")==="$0"}(),m=d("replace"),b=function(){return/./[m]?/./[m]("a","$0")==="":!1}(),_=!l(function(){var C=/(?:)/,S=C.exec;C.exec=function(){return S.apply(this,arguments)};var y="ab".split(C);return y.length!==2||y[0]!=="a"||y[1]!=="b"});n.exports=function(C,S,y,E){var x=d(C),L=!l(function(){var M={};return M[x]=function(){return 7},""[C](M)!=7}),I=L&&!l(function(){var M=!1,W=/a/;return C==="split"&&(W={},W.constructor={},W.constructor[g]=function(){return W},W.flags="",W[x]=/./[x]),W.exec=function(){return M=!0,null},W[x](""),!M});if(!L||!I||C==="replace"&&!(f&&p&&!b)||C==="split"&&!_){var D=/./[x],N=y(x,""[C],function(M,W,V,A,P){return W.exec===c?L&&!P?{done:!0,value:D.call(W,V,A)}:{done:!0,value:M.call(V,W,A)}:{done:!1}},{REPLACE_KEEPS_$0:p,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:b}),F=N[0],R=N[1];a(String.prototype,C,F),a(RegExp.prototype,x,S==2?function(M,W){return R.call(M,this,W)}:function(M){return R.call(M,this)})}E&&u(RegExp.prototype[x],"sham",!0)}},d81d:function(n,r,s){var a=s("23e7"),l=s("b727").map,d=s("1dde"),c=s("ae40"),u=d("map"),g=c("map");a({target:"Array",proto:!0,forced:!u||!g},{map:function(p){return l(this,p,arguments.length>1?arguments[1]:void 0)}})},da84:function(n,r,s){(function(a){var l=function(d){return d&&d.Math==Math&&d};n.exports=l(typeof globalThis=="object"&&globalThis)||l(typeof window=="object"&&window)||l(typeof self=="object"&&self)||l(typeof a=="object"&&a)||Function("return this")()}).call(this,s("c8ba"))},dbb4:function(n,r,s){var a=s("23e7"),l=s("83ab"),d=s("56ef"),c=s("fc6a"),u=s("06cf"),g=s("8418");a({target:"Object",stat:!0,sham:!l},{getOwnPropertyDescriptors:function(p){for(var m=c(p),b=u.f,_=d(m),C={},S=0,y,E;_.length>S;)E=b(m,y=_[S++]),E!==void 0&&g(C,y,E);return C}})},dbf1:function(n,r,s){(function(a){s.d(r,"a",function(){return d});function l(){return typeof window<"u"?window.console:a.console}var d=l()}).call(this,s("c8ba"))},ddb0:function(n,r,s){var a=s("da84"),l=s("fdbc"),d=s("e260"),c=s("9112"),u=s("b622"),g=u("iterator"),f=u("toStringTag"),p=d.values;for(var m in l){var b=a[m],_=b&&b.prototype;if(_){if(_[g]!==p)try{c(_,g,p)}catch{_[g]=p}if(_[f]||c(_,f,m),l[m]){for(var C in d)if(_[C]!==d[C])try{c(_,C,d[C])}catch{_[C]=d[C]}}}}},df75:function(n,r,s){var a=s("ca84"),l=s("7839");n.exports=Object.keys||function(c){return a(c,l)}},e01a:function(n,r,s){var a=s("23e7"),l=s("83ab"),d=s("da84"),c=s("5135"),u=s("861d"),g=s("9bf2").f,f=s("e893"),p=d.Symbol;if(l&&typeof p=="function"&&(!("description"in p.prototype)||p().description!==void 0)){var m={},b=function(){var x=arguments.length<1||arguments[0]===void 0?void 0:String(arguments[0]),L=this instanceof b?new p(x):x===void 0?p():p(x);return x===""&&(m[L]=!0),L};f(b,p);var _=b.prototype=p.prototype;_.constructor=b;var C=_.toString,S=String(p("test"))=="Symbol(test)",y=/^Symbol\((.*)\)[^)]+$/;g(_,"description",{configurable:!0,get:function(){var x=u(this)?this.valueOf():this,L=C.call(x);if(c(m,x))return"";var I=S?L.slice(7,-1):L.replace(y,"$1");return I===""?void 0:I}}),a({global:!0,forced:!0},{Symbol:b})}},e163:function(n,r,s){var a=s("5135"),l=s("7b0b"),d=s("f772"),c=s("e177"),u=d("IE_PROTO"),g=Object.prototype;n.exports=c?Object.getPrototypeOf:function(f){return f=l(f),a(f,u)?f[u]:typeof f.constructor=="function"&&f instanceof f.constructor?f.constructor.prototype:f instanceof Object?g:null}},e177:function(n,r,s){var a=s("d039");n.exports=!a(function(){function l(){}return l.prototype.constructor=null,Object.getPrototypeOf(new l)!==l.prototype})},e260:function(n,r,s){var a=s("fc6a"),l=s("44d2"),d=s("3f8c"),c=s("69f3"),u=s("7dd0"),g="Array Iterator",f=c.set,p=c.getterFor(g);n.exports=u(Array,"Array",function(m,b){f(this,{type:g,target:a(m),index:0,kind:b})},function(){var m=p(this),b=m.target,_=m.kind,C=m.index++;return!b||C>=b.length?(m.target=void 0,{value:void 0,done:!0}):_=="keys"?{value:C,done:!1}:_=="values"?{value:b[C],done:!1}:{value:[C,b[C]],done:!1}},"values"),d.Arguments=d.Array,l("keys"),l("values"),l("entries")},e439:function(n,r,s){var a=s("23e7"),l=s("d039"),d=s("fc6a"),c=s("06cf").f,u=s("83ab"),g=l(function(){c(1)}),f=!u||g;a({target:"Object",stat:!0,forced:f,sham:!u},{getOwnPropertyDescriptor:function(m,b){return c(d(m),b)}})},e538:function(n,r,s){var a=s("b622");r.f=a},e893:function(n,r,s){var a=s("5135"),l=s("56ef"),d=s("06cf"),c=s("9bf2");n.exports=function(u,g){for(var f=l(g),p=c.f,m=d.f,b=0;b<f.length;b++){var _=f[b];a(u,_)||p(u,_,m(g,_))}}},e8b5:function(n,r,s){var a=s("c6b6");n.exports=Array.isArray||function(d){return a(d)=="Array"}},e95a:function(n,r,s){var a=s("b622"),l=s("3f8c"),d=a("iterator"),c=Array.prototype;n.exports=function(u){return u!==void 0&&(l.Array===u||c[d]===u)}},f5df:function(n,r,s){var a=s("00ee"),l=s("c6b6"),d=s("b622"),c=d("toStringTag"),u=l(function(){return arguments}())=="Arguments",g=function(f,p){try{return f[p]}catch{}};n.exports=a?l:function(f){var p,m,b;return f===void 0?"Undefined":f===null?"Null":typeof(m=g(p=Object(f),c))=="string"?m:u?l(p):(b=l(p))=="Object"&&typeof p.callee=="function"?"Arguments":b}},f772:function(n,r,s){var a=s("5692"),l=s("90e3"),d=a("keys");n.exports=function(c){return d[c]||(d[c]=l(c))}},fb15:function(n,r,s){if(s.r(r),typeof window<"u"){var a=window.document.currentScript;{var l=s("8875");a=l(),"currentScript"in document||Object.defineProperty(document,"currentScript",{get:l})}var d=a&&a.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);d&&(s.p=d[1])}s("99af"),s("4de4"),s("4160"),s("c975"),s("d81d"),s("a434"),s("159b"),s("a4d3"),s("e439"),s("dbb4"),s("b64b");function c(K,G,Q){return G in K?Object.defineProperty(K,G,{value:Q,enumerable:!0,configurable:!0,writable:!0}):K[G]=Q,K}function u(K,G){var Q=Object.keys(K);if(Object.getOwnPropertySymbols){var oe=Object.getOwnPropertySymbols(K);G&&(oe=oe.filter(function(le){return Object.getOwnPropertyDescriptor(K,le).enumerable})),Q.push.apply(Q,oe)}return Q}function g(K){for(var G=1;G<arguments.length;G++){var Q=arguments[G]!=null?arguments[G]:{};G%2?u(Object(Q),!0).forEach(function(oe){c(K,oe,Q[oe])}):Object.getOwnPropertyDescriptors?Object.defineProperties(K,Object.getOwnPropertyDescriptors(Q)):u(Object(Q)).forEach(function(oe){Object.defineProperty(K,oe,Object.getOwnPropertyDescriptor(Q,oe))})}return K}function f(K){if(Array.isArray(K))return K}s("e01a"),s("d28b"),s("e260"),s("d3b7"),s("3ca3"),s("ddb0");function p(K,G){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(K)))){var Q=[],oe=!0,le=!1,pe=void 0;try{for(var se=K[Symbol.iterator](),ye;!(oe=(ye=se.next()).done)&&(Q.push(ye.value),!(G&&Q.length===G));oe=!0);}catch(Le){le=!0,pe=Le}finally{try{!oe&&se.return!=null&&se.return()}finally{if(le)throw pe}}return Q}}s("a630"),s("fb6a"),s("b0c0"),s("25f0");function m(K,G){(G==null||G>K.length)&&(G=K.length);for(var Q=0,oe=new Array(G);Q<G;Q++)oe[Q]=K[Q];return oe}function b(K,G){if(K){if(typeof K=="string")return m(K,G);var Q=Object.prototype.toString.call(K).slice(8,-1);if(Q==="Object"&&K.constructor&&(Q=K.constructor.name),Q==="Map"||Q==="Set")return Array.from(K);if(Q==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(Q))return m(K,G)}}function _(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function C(K,G){return f(K)||p(K,G)||b(K,G)||_()}function S(K){if(Array.isArray(K))return m(K)}function y(K){if(typeof Symbol<"u"&&Symbol.iterator in Object(K))return Array.from(K)}function E(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function x(K){return S(K)||y(K)||b(K)||E()}var L=s("a352"),I=s.n(L);function D(K){K.parentElement!==null&&K.parentElement.removeChild(K)}function N(K,G,Q){var oe=Q===0?K.children[0]:K.children[Q-1].nextSibling;K.insertBefore(G,oe)}var F=s("dbf1");s("13d5"),s("4fad"),s("ac1f"),s("5319");function R(K){var G=Object.create(null);return function(oe){var le=G[oe];return le||(G[oe]=K(oe))}}var M=/-(\w)/g,W=R(function(K){return K.replace(M,function(G,Q){return Q.toUpperCase()})});s("5db7"),s("73d9");var V=["Start","Add","Remove","Update","End"],A=["Choose","Unchoose","Sort","Filter","Clone"],P=["Move"],k=[P,V,A].flatMap(function(K){return K}).map(function(K){return"on".concat(K)}),T={manage:P,manageAndEmit:V,emit:A};function U(K){return k.indexOf(K)!==-1}s("caad"),s("2ca0");var z=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","link","main","map","mark","math","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rb","rp","rt","rtc","ruby","s","samp","script","section","select","slot","small","source","span","strong","style","sub","summary","sup","svg","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"];function J(K){return z.includes(K)}function X(K){return["transition-group","TransitionGroup"].includes(K)}function ae(K){return["id","class","role","style"].includes(K)||K.startsWith("data-")||K.startsWith("aria-")||K.startsWith("on")}function ve(K){return K.reduce(function(G,Q){var oe=C(Q,2),le=oe[0],pe=oe[1];return G[le]=pe,G},{})}function me(K){var G=K.$attrs,Q=K.componentData,oe=Q===void 0?{}:Q,le=ve(Object.entries(G).filter(function(pe){var se=C(pe,2),ye=se[0];return se[1],ae(ye)}));return g(g({},le),oe)}function fe(K){var G=K.$attrs,Q=K.callBackBuilder,oe=ve(xe(G));Object.entries(Q).forEach(function(pe){var se=C(pe,2),ye=se[0],Le=se[1];T[ye].forEach(function(Se){oe["on".concat(Se)]=Le(Se)})});var le="[data-draggable]".concat(oe.draggable||"");return g(g({},oe),{},{draggable:le})}function xe(K){return Object.entries(K).filter(function(G){var Q=C(G,2),oe=Q[0];return Q[1],!ae(oe)}).map(function(G){var Q=C(G,2),oe=Q[0],le=Q[1];return[W(oe),le]}).filter(function(G){var Q=C(G,2),oe=Q[0];return Q[1],!U(oe)})}s("c740");function Ie(K,G){if(!(K instanceof G))throw new TypeError("Cannot call a class as a function")}function De(K,G){for(var Q=0;Q<G.length;Q++){var oe=G[Q];oe.enumerable=oe.enumerable||!1,oe.configurable=!0,"value"in oe&&(oe.writable=!0),Object.defineProperty(K,oe.key,oe)}}function he(K,G,Q){return G&&De(K.prototype,G),K}var Me=function(G){var Q=G.el;return Q},we=function(G,Q){return G.__draggable_context=Q},ue=function(G){return G.__draggable_context},ke=function(){function K(G){var Q=G.nodes,oe=Q.header,le=Q.default,pe=Q.footer,se=G.root,ye=G.realList;Ie(this,K),this.defaultNodes=le,this.children=[].concat(x(oe),x(le),x(pe)),this.externalComponent=se.externalComponent,this.rootTransition=se.transition,this.tag=se.tag,this.realList=ye}return he(K,[{key:"render",value:function(Q,oe){var le=this.tag,pe=this.children,se=this._isRootComponent,ye=se?{default:function(){return pe}}:pe;return Q(le,oe,ye)}},{key:"updated",value:function(){var Q=this.defaultNodes,oe=this.realList;Q.forEach(function(le,pe){we(Me(le),{element:oe[pe],index:pe})})}},{key:"getUnderlyingVm",value:function(Q){return ue(Q)}},{key:"getVmIndexFromDomIndex",value:function(Q,oe){var le=this.defaultNodes,pe=le.length,se=oe.children,ye=se.item(Q);if(ye===null)return pe;var Le=ue(ye);if(Le)return Le.index;if(pe===0)return 0;var Se=Me(le[0]),ee=x(se).findIndex(function(Y){return Y===Se});return Q<ee?0:pe}},{key:"_isRootComponent",get:function(){return this.externalComponent||this.rootTransition}}]),K}(),Re=s("8bbf");function Pe(K,G){var Q=K[G];return Q?Q():[]}function $e(K){var G=K.$slots,Q=K.realList,oe=K.getKey,le=Q||[],pe=["header","footer"].map(function(Y){return Pe(G,Y)}),se=C(pe,2),ye=se[0],Le=se[1],Se=G.item;if(!Se)throw new Error("draggable element must have an item slot");var ee=le.flatMap(function(Y,de){return Se({element:Y,index:de}).map(function(ce){return ce.key=oe(Y),ce.props=g(g({},ce.props||{}),{},{"data-draggable":!0}),ce})});if(ee.length!==le.length)throw new Error("Item slot must have only one child");return{header:ye,footer:Le,default:ee}}function He(K){var G=X(K),Q=!J(K)&&!G;return{transition:G,externalComponent:Q,tag:Q?Object(Re.resolveComponent)(K):G?Re.TransitionGroup:K}}function ie(K){var G=K.$slots,Q=K.tag,oe=K.realList,le=K.getKey,pe=$e({$slots:G,realList:oe,getKey:le}),se=He(Q);return new ke({nodes:pe,root:se,realList:oe})}function q(K,G){var Q=this;Object(Re.nextTick)(function(){return Q.$emit(K.toLowerCase(),G)})}function Z(K){var G=this;return function(Q,oe){if(G.realList!==null)return G["onDrag".concat(K)](Q,oe)}}function O(K){var G=this,Q=Z.call(this,K);return function(oe,le){Q.call(G,oe,le),q.call(G,K,oe)}}var B=null,j={list:{type:Array,required:!1,default:null},modelValue:{type:Array,required:!1,default:null},itemKey:{type:[String,Function],required:!0},clone:{type:Function,default:function(G){return G}},tag:{type:String,default:"div"},move:{type:Function,default:null},componentData:{type:Object,required:!1,default:null}},H=["update:modelValue","change"].concat(x([].concat(x(T.manageAndEmit),x(T.emit)).map(function(K){return K.toLowerCase()}))),ne=Object(Re.defineComponent)({name:"draggable",inheritAttrs:!1,props:j,emits:H,data:function(){return{error:!1}},render:function(){try{this.error=!1;var G=this.$slots,Q=this.$attrs,oe=this.tag,le=this.componentData,pe=this.realList,se=this.getKey,ye=ie({$slots:G,tag:oe,realList:pe,getKey:se});this.componentStructure=ye;var Le=me({$attrs:Q,componentData:le});return ye.render(Re.h,Le)}catch(Se){return this.error=!0,Object(Re.h)("pre",{style:{color:"red"}},Se.stack)}},created:function(){this.list!==null&&this.modelValue!==null&&F.a.error("modelValue and list props are mutually exclusive! Please set one or another.")},mounted:function(){var G=this;if(!this.error){var Q=this.$attrs,oe=this.$el,le=this.componentStructure;le.updated();var pe=fe({$attrs:Q,callBackBuilder:{manageAndEmit:function(Le){return O.call(G,Le)},emit:function(Le){return q.bind(G,Le)},manage:function(Le){return Z.call(G,Le)}}}),se=oe.nodeType===1?oe:oe.parentElement;this._sortable=new I.a(se,pe),this.targetDomElement=se,se.__draggable_component__=this}},updated:function(){this.componentStructure.updated()},beforeUnmount:function(){this._sortable!==void 0&&this._sortable.destroy()},computed:{realList:function(){var G=this.list;return G||this.modelValue},getKey:function(){var G=this.itemKey;return typeof G=="function"?G:function(Q){return Q[G]}}},watch:{$attrs:{handler:function(G){var Q=this._sortable;Q&&xe(G).forEach(function(oe){var le=C(oe,2),pe=le[0],se=le[1];Q.option(pe,se)})},deep:!0}},methods:{getUnderlyingVm:function(G){return this.componentStructure.getUnderlyingVm(G)||null},getUnderlyingPotencialDraggableComponent:function(G){return G.__draggable_component__},emitChanges:function(G){var Q=this;Object(Re.nextTick)(function(){return Q.$emit("change",G)})},alterList:function(G){if(this.list){G(this.list);return}var Q=x(this.modelValue);G(Q),this.$emit("update:modelValue",Q)},spliceList:function(){var G=arguments,Q=function(le){return le.splice.apply(le,x(G))};this.alterList(Q)},updatePosition:function(G,Q){var oe=function(pe){return pe.splice(Q,0,pe.splice(G,1)[0])};this.alterList(oe)},getRelatedContextFromMoveEvent:function(G){var Q=G.to,oe=G.related,le=this.getUnderlyingPotencialDraggableComponent(Q);if(!le)return{component:le};var pe=le.realList,se={list:pe,component:le};if(Q!==oe&&pe){var ye=le.getUnderlyingVm(oe)||{};return g(g({},ye),se)}return se},getVmIndexFromDomIndex:function(G){return this.componentStructure.getVmIndexFromDomIndex(G,this.targetDomElement)},onDragStart:function(G){this.context=this.getUnderlyingVm(G.item),G.item._underlying_vm_=this.clone(this.context.element),B=G.item},onDragAdd:function(G){var Q=G.item._underlying_vm_;if(Q!==void 0){D(G.item);var oe=this.getVmIndexFromDomIndex(G.newIndex);this.spliceList(oe,0,Q);var le={element:Q,newIndex:oe};this.emitChanges({added:le})}},onDragRemove:function(G){if(N(this.$el,G.item,G.oldIndex),G.pullMode==="clone"){D(G.clone);return}var Q=this.context,oe=Q.index,le=Q.element;this.spliceList(oe,1);var pe={element:le,oldIndex:oe};this.emitChanges({removed:pe})},onDragUpdate:function(G){D(G.item),N(G.from,G.item,G.oldIndex);var Q=this.context.index,oe=this.getVmIndexFromDomIndex(G.newIndex);this.updatePosition(Q,oe);var le={element:this.context.element,oldIndex:Q,newIndex:oe};this.emitChanges({moved:le})},computeFutureIndex:function(G,Q){if(!G.element)return 0;var oe=x(Q.to.children).filter(function(ye){return ye.style.display!=="none"}),le=oe.indexOf(Q.related),pe=G.component.getVmIndexFromDomIndex(le),se=oe.indexOf(B)!==-1;return se||!Q.willInsertAfter?pe:pe+1},onDragMove:function(G,Q){var oe=this.move,le=this.realList;if(!oe||!le)return!0;var pe=this.getRelatedContextFromMoveEvent(G),se=this.computeFutureIndex(pe,G),ye=g(g({},this.context),{},{futureIndex:se}),Le=g(g({},G),{},{relatedContext:pe,draggedContext:ye});return oe(Le,Q)},onDragEnd:function(){B=null}}}),re=ne;r.default=re},fb6a:function(n,r,s){var a=s("23e7"),l=s("861d"),d=s("e8b5"),c=s("23cb"),u=s("50c4"),g=s("fc6a"),f=s("8418"),p=s("b622"),m=s("1dde"),b=s("ae40"),_=m("slice"),C=b("slice",{ACCESSORS:!0,0:0,1:2}),S=p("species"),y=[].slice,E=Math.max;a({target:"Array",proto:!0,forced:!_||!C},{slice:function(L,I){var D=g(this),N=u(D.length),F=c(L,N),R=c(I===void 0?N:I,N),M,W,V;if(d(D)&&(M=D.constructor,typeof M=="function"&&(M===Array||d(M.prototype))?M=void 0:l(M)&&(M=M[S],M===null&&(M=void 0)),M===Array||M===void 0))return y.call(D,F,R);for(W=new(M===void 0?Array:M)(E(R-F,0)),V=0;F<R;F++,V++)F in D&&f(W,V,D[F]);return W.length=V,W}})},fc6a:function(n,r,s){var a=s("44ad"),l=s("1d80");n.exports=function(d){return a(l(d))}},fdbc:function(n,r){n.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},fdbf:function(n,r,s){var a=s("4930");n.exports=a&&!Symbol.sham&&typeof Symbol.iterator=="symbol"}}).default})}(vuedraggable_umd$1)),vuedraggable_umd$1.exports}var vuedraggable_umdExports=requireVuedraggable_umd();const draggable=getDefaultExportFromCjs(vuedraggable_umdExports);function filesMer(o){return service({url:"/mgr/document/util/merge",method:"post",data:o})}function ocrRecognition(o){return service({url:"/mgr/document/util/ocr",method:"post",data:o})}function fileTransition(o){return service({url:"/mgr/document/util/file/transition",method:"post",data:o})}function fileBlob(o){return service({url:"/mgr/document/util/file/transition2",method:"post",responseType:"blob",data:o})}function fileBlob2(o){return service({url:"/mgr/document/util/file/transition3",method:"post",responseType:"blob",data:o})}function getFileMenuTree(o){return service({url:"/mgr/document/dcLibrary/tree/folder",method:"get",params:o})}function getDcLibraryList(o){return service({url:"/mgr/document/dcLibrary/knowledges",method:"get",params:o})}function getLibTree(o){let e=getStore({name:"userInfo"});return service({url:e?"/mgr/document/dcLibrary/tree":"/mgr/document/no/auth/tree",method:"get",params:o,headers:{documentId:o.id}})}function getTemplateReplace(){return service({url:"/mgr/document/template/replace/get/library",method:"get"})}function getFileNameUrl(o){return service({url:`/mgr/document/file/link/${o.bucketName}`,method:"get",params:o})}function fileTransSave(o,e){return service({url:`/mgr/document/util/transition/save/file/${o}`,method:"post",headers:{serialize:!1,type:"FormData","Content-Type":"multipart/form-data"},data:e})}function ocrSaveContent(o,e){return service({url:`/mgr/document/util/ocr/save/${o}`,method:"post",headers:{serialize:!1,type:"FormData","Content-Type":"multipart/form-data"},data:e})}function serverCompareFile(o){return service({url:"/mgr/document/util/file/compare",method:"post",data:o})}const _hoisted_1$5=["src"],_sfc_main$5={__name:"fileRPng",props:{type:{type:String,default:""},nameSuffix:{type:String,default:""}},emits:[""],setup(o,{emit:e}){const t=(n="")=>n.indexOf("office_")!=-1;function i(n,r){let s="";if(t(n)||n=="document_upload"){if(["cda","wav","mp3","aif","aiff","mid","wma","ra","vqf","ape"].indexOf(r)!=-1)return mp3Png;if(["avi","wmv","mpg","mpeg","mov","rm","ram","swf","flv","mp4","avi","rm","rmvb","flv","mpg","mkv"].indexOf(r)!=-1)return videoPng;switch((r||"").toLocaleLowerCase()){case"directory":s=flodericon;break;case"doc":case"docx":s=wordicon;break;case"xls":case"xlsx":s=excelicon;break;case"document_map":s=mapPng;break;case"document_flow":s=flowPng;break;case"gif":s=gifPng;break;case"png":case"jpg":case"jpeg":s=imagePng;break;case"txt":s=textPng;break;case"ppt":case"pptx":s=ppticon;break;case"csv":s=csvicon;break;case"pdf":s=pdficon;break;case"epub":s=epubPng;break;case"svg":s=svgPng;break;case"rar":case"arj":case"z":case"7z":case"cab":case"zip":s=zipPng;break;case"dwg":case"dxf":case"dws":case"dwt":s=cadPng;break;case"psd":s=psPng;break;case"vsdx":s=visPng;break;case"ofd":s=ofdPng;break;default:s=nonePng;break}}else switch(n){case"document_html":s=htmlPng;break;case"document_xlsx":s=luckysheetPng;break;case"document_map":s=mapPng;break;case"document_flow":s=flowPng;break;case"document_image":s=imagePng;break;case"document_txt":s=textPng;break;case"document_ppt":s=ppticon;break;case"document_unrecognized":s=nonePng;break;case"url_address":s=urlPng;break;case"md":s=mdPng;break;case"xmind":s=xmindPng;break;default:s=flodericon;break}return s}return(n,r)=>(openBlock(),createElementBlock("img",{src:i(o.type,o.nameSuffix)},null,8,_hoisted_1$5))}},_hoisted_1$4={class:"select-know-header"},_hoisted_2$4={class:"title-tips"},_hoisted_3$4={class:"title"},_hoisted_4$3={class:"select-know-body"},_hoisted_5$3={class:"know-search-box"},_hoisted_6$3={class:"know-tree-box"},_hoisted_7$3={class:"label"},_hoisted_8$3={key:0,class:"custom-tree-arrow-box"},_hoisted_9$3={class:"know-footer"},_sfc_main$4={__name:"selectKnow",props:{width:{type:String,default:"416px"},remove:Function,callBack:Function,title:{type:String,default:""},modalClose:{type:Boolean,default:!1},isTemplate:{type:Boolean,default:!1},selectKnowType:{type:String,default:"folder"},checkFileType:{type:[String,Array]}},emits:["callBack","close"],setup(o,{expose:e,emit:t}){useRouter();const i=t,n=o,r=ref("");toRefs(reactive({}));const s=ref([]),a=ref(!1),l=ref(!1),d=ref({id:""}),c=ref();function u(){a.value=!0,l.value=!0;let C;n.selectKnowType==="folder"?(C=getFileMenuTree,n.isTemplate&&(C=getTemplateReplace)):C=getDcLibraryList,C({size:1e3,current:1}).then(S=>{S.code===0&&(n.selectKnowType==="folder"?s.value=S.data||[]:(s.value=S.data.records||[],s.value.forEach(y=>{y.level=0})),l.value=!1)}).catch(S=>{l.value=!1})}function g(C){return n.selectKnowType==="file"?C.parentId==="0"||["knowledge","directory"].includes(C.type):!1}function f(){r.value="",d.value={id:""},s.value=[],a.value=!1,i("close")}function p(){r.value=""}watch(r,C=>{c.value&&c.value.filter(C)});function m(C,S){return C?S.name.includes(C):!0}function b(C,S){if(n.selectKnowType==="folder")d.value=C;else if(["knowledge","directory"].includes(C.type)){if(C.isLoad)return;C.loading=!0,getLibTree({id:C.id}).then(y=>{if(y.code===0){const E=y.data.data.filter(x=>x.type==="directory"?!0:isArray(n.checkFileType)?n.checkFileType.length<=0?!0:n.checkFileType.includes(x.nameSuffix):typeof n.checkFileType=="string"?n.checkFileType===""||n.checkFileType==="*"?!0:n.checkFileType.includes(x.nameSuffix):!1);E.forEach(x=>{x.level=C.level+1}),C.children=E,C.isLoad=!0,S.expanded=!0,nextTick(()=>{c.value&&c.value.filter(r.value)})}C.loading=!1}).catch(y=>{C.loading=!1})}else d.value=C}function _(){i("callBack",d.value),f()}return e({init:u}),(C,S)=>{const y=resolveComponent("el-input"),E=resolveComponent("el-icon"),x=resolveComponent("el-tree"),L=resolveComponent("el-scrollbar"),I=resolveComponent("el-empty"),D=resolveComponent("el-button"),N=resolveComponent("el-dialog"),F=resolveDirective("loading");return openBlock(),createBlock(N,{modelValue:a.value,"onUpdate:modelValue":S[1]||(S[1]=R=>a.value=R),width:o.width,class:"custom-dialog select-know-dialog","show-close":!1,"close-on-click-modal":o.modalClose,"modal-class":"dialog-center","before-close":f},{footer:withCtx(()=>[createBaseVNode("div",_hoisted_9$3,[createVNode(D,{onClick:f},{default:withCtx(()=>S[3]||(S[3]=[createTextVNode("取消")])),_:1}),createVNode(D,{type:"primary",disabled:!d.value.id,onClick:_},{default:withCtx(()=>S[4]||(S[4]=[createTextVNode(" 确认 ")])),_:1},8,["disabled"])])]),default:withCtx(()=>[createBaseVNode("div",_hoisted_1$4,[createBaseVNode("div",_hoisted_2$4,[createBaseVNode("div",_hoisted_3$4,toDisplayString(n.title||"新建文档"),1),S[2]||(S[2]=createBaseVNode("div",{class:"tips"},"请先选择一个文库或文件夹",-1))]),createVNode(unref(close_default),{class:"close-icon",onClick:f})]),createBaseVNode("div",_hoisted_4$3,[createBaseVNode("div",_hoisted_5$3,[createVNode(unref(search_default),{class:"search-icon"}),createVNode(y,{modelValue:r.value,"onUpdate:modelValue":S[0]||(S[0]=R=>r.value=R),placeholder:"请输入文库名称进行搜索"},null,8,["modelValue"]),r.value?(openBlock(),createBlock(unref(close_default),{key:0,class:"clear-icon",onClick:p})):createCommentVNode("",!0)]),withDirectives((openBlock(),createElementBlock("div",_hoisted_6$3,[s.value.length!==0?(openBlock(),createBlock(L,{key:0},{default:withCtx(()=>[createVNode(x,{data:s.value,"node-key":"id",ref_key:"elTreeRef",ref:c,"expand-on-click-node":!0,onNodeClick:b,"filter-node-method":m,props:{children:"children",label:"name"}},{default:withCtx(({node:R,data:M})=>[createBaseVNode("span",{class:normalizeClass(["custom-tree-node",[g(M)&&"file-node",g(M)&&!M.isLoad&&"arrow-node",d.value.id===M.id&&"custom-tree-node-active"]])},[createVNode(_sfc_main$5,{class:"file-icon",type:M.type,nameSuffix:M.nameSuffix},null,8,["type","nameSuffix"]),createBaseVNode("span",{class:"label-content",style:normalizeStyle({width:`calc(280px - ${M.level*24}px)`})},[createBaseVNode("span",_hoisted_7$3,toDisplayString(R.label),1)],4),g(M)&&!M.isLoad?(openBlock(),createElementBlock("span",_hoisted_8$3)):createCommentVNode("",!0),M.loading?(openBlock(),createBlock(E,{key:1,class:"circular custo-tree-loading",style:normalizeStyle({right:`calc(-14px - ${M.level*4}px)`})},null,8,["style"])):createCommentVNode("",!0)],2)]),_:1},8,["data"])]),_:1})):createCommentVNode("",!0),s.value.length===0?(openBlock(),createBlock(I,{key:1})):createCommentVNode("",!0)])),[[F,l.value]])])]),_:1},8,["modelValue","width","close-on-click-modal"])}}},_hoisted_1$3={class:"darggableUpload"},_hoisted_2$3={class:"draggable-item-box"},_hoisted_3$3={class:"draggable-item"},_hoisted_4$2={class:"file-name-box"},_hoisted_5$2={class:"file-name"},_hoisted_6$2={class:"draggable-item-tips"},_hoisted_7$2={class:"draggable-item-box"},_hoisted_8$2={class:"add-button"},_hoisted_9$2={class:"add-button"},_hoisted_10$2={class:"add-file-text"},_hoisted_11$2={class:"draggable-item-tips"},__default__$3=defineComponent({name:"DarggableUpload"}),_sfc_main$3=Object.assign(__default__$3,{props:mergeModels({action:{type:String,required:!0},limit:{type:Number,default:5},multiple:{type:Boolean,default:!1},uploadHeaders:{type:Object,default:()=>({})},uploadData:{type:Object,default:()=>({})},accept:{type:String,default:"*"},showIndex:{type:Boolean,default:!0}},{modelValue:{type:Array,default:()=>[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:e}){const{proxy:t}=getCurrentInstance(),i=useModel(o,"modelValue"),n=ref(),r=ref("local");function s(){r.value=r.value==="local"?"cloud":"local"}const a=()=>{t.$notify({title:"提示",message:`合并操作最多支持5个文件,您已选择了${localhostSuccessFile.value.length}个,还能选${5-localhostSuccessFile.value.length}个文件`,type:"warning",position:"bottom-right"})},l=b=>{console.log(n.value,b),n.value&&n.value.handleRemove(b)},d=()=>{ElMessage.error("服务器异常:上传失败")},c=()=>!0,u=ref(null),g=ref("选择文档"),f=()=>{r.value==="cloud"&&u.value.init()},p=b=>{i.value.push({name:b.name,size:b.size||0,uid:b.id,response:{data:{bucketName:b.bucketName,fileLink:null,fileName:b.filePath,originalFileName:b.name}}})};return e({clearFileList:()=>{n.value&&n.value.clearFiles()}}),(b,_)=>{const C=resolveComponent("Delete"),S=resolveComponent("el-icon"),y=resolveComponent("el-tooltip"),E=__unplugin_components_0,x=resolveComponent("el-upload"),L=resolveDirective("tooltip-auto-show");return openBlock(),createElementBlock("div",_hoisted_1$3,[createVNode(unref(draggable),{modelValue:i.value,"onUpdate:modelValue":_[0]||(_[0]=I=>i.value=I),class:"draggable-box"},{item:withCtx(({element:I,index:D})=>[createBaseVNode("div",_hoisted_2$3,[createBaseVNode("div",_hoisted_3$3,[createVNode(_sfc_main$5,{class:"file-icon",type:"document_upload",nameSuffix:"docx"}),createBaseVNode("div",{class:normalizeClass(["file-index",o.showIndex?"showIndex":""])},[createBaseVNode("span",null,toDisplayString(D+1),1),createVNode(S,{onClick:N=>l(I)},{default:withCtx(()=>[createVNode(C)]),_:2},1032,["onClick"])],2),withDirectives((openBlock(),createElementBlock("div",_hoisted_4$2,[createVNode(y,{content:I.name,effect:"light"},{default:withCtx(()=>[createBaseVNode("div",_hoisted_5$2,toDisplayString(I.name),1)]),_:2},1032,["content"])])),[[L]])]),createBaseVNode("div",_hoisted_6$2,[renderSlot(b.$slots,"tips",{element:I,index:D,type:"list"},void 0,!0)])])]),_:3},8,["modelValue"]),withDirectives(createBaseVNode("div",_hoisted_7$2,[createBaseVNode("div",{class:"draggable-item",onClick:f},[withDirectives(createVNode(x,{ref_key:"uploadRef",ref:n,class:"drag-upload-box","file-list":i.value,"onUpdate:fileList":_[1]||(_[1]=I=>i.value=I),action:o.action,multiple:o.multiple,headers:o.uploadHeaders,data:o.uploadData,"show-file-list":!1,accept:o.accept,limit:o.limit,"before-upload":c,"on-exceed":a,"on-error":d},{default:withCtx(()=>[createBaseVNode("div",_hoisted_8$2,[createVNode(E,{"class-name":"icon-plus","icon-class":"plus"})])]),_:1},8,["file-list","action","multiple","headers","data","accept","limit"]),[[vShow,r.value=="local"]]),createBaseVNode("div",{class:"change-file-box",onClick:withModifiers(s,["stop"])},[createVNode(E,{"class-name":"icon-qiehuan","icon-class":"qiehuan"})]),createBaseVNode("div",_hoisted_9$2,[b.mergeFileType!=="local"?(openBlock(),createBlock(E,{key:0,"class-name":"icon-plus","icon-class":"plus"})):createCommentVNode("",!0)]),createBaseVNode("div",_hoisted_10$2,toDisplayString(r.value=="local"?"上传本地文档":"上传云端文档"),1)]),createBaseVNode("div",_hoisted_11$2,[renderSlot(b.$slots,"tips",{element:null,index:0,type:"upload"},void 0,!0)])],512),[[vShow,o.limit-i.value.length>0]]),createVNode(_sfc_main$4,{ref_key:"saveKnowRef",ref:u,title:g.value,selectKnowType:"file",checkFileType:o.accept,onCallBack:p},null,8,["title","checkFileType"])])}}}),DarggableUpload=_export_sfc(_sfc_main$3,[["__scopeId","data-v-cecde0fb"]]),v="5.9.4",fr=25,ip=0,op=56,w=720,h$1=720,nm="loading-color 5",ddd=0,assets=[],layers=[{ddd:0,ind:1,ty:4,nm:"形状图层 1",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:1,k:[{i:{x:.035,y:1},o:{x:.314,y:0},t:0,s:[220,360,0],to:[13.333,0,0],ti:[-13.333,0,0]},{i:{x:.667,y:.667},o:{x:.333,y:.333},t:10,s:[300,360,0],to:[0,0,0],ti:[0,0,0]},{i:{x:.035,y:1},o:{x:.314,y:0},t:15,s:[300,360,0],to:[11.667,0,0],ti:[-11.667,0,0]},{i:{x:.667,y:.667},o:{x:.333,y:.333},t:25,s:[370,360,0],to:[0,0,0],ti:[0,0,0]},{i:{x:.035,y:1},o:{x:.314,y:0},t:30,s:[370,360,0],to:[11.667,0,0],ti:[-11.667,0,0]},{i:{x:.667,y:.667},o:{x:.333,y:.333},t:40,s:[440,360,0],to:[0,0,0],ti:[0,0,0]},{i:{x:.035,y:1},o:{x:.314,y:0},t:45,s:[440,360,0],to:[11.667,0,0],ti:[-11.667,0,0]},{t:55,s:[510,360,0]}],ix:2,l:2},a:{a:0,k:[-136,-18,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{d:1,ty:"el",s:{a:0,k:[45,45],ix:2},p:{a:0,k:[0,0],ix:3},nm:"椭圆路径 1",mn:"ADBE Vector Shape - Ellipse",hd:!1},{ty:"fl",c:{a:0,k:[.145098039216,.423529411765,1,1],ix:4},o:{a:0,k:100,ix:5},r:1,bm:0,nm:"填充 1",mn:"ADBE Vector Graphic - Fill",hd:!1},{ty:"tr",p:{a:0,k:[-136,-18],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"变换"}],nm:"椭圆 2",np:3,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:!1},{ty:"gr",it:[{d:1,ty:"el",s:{a:0,k:[45,45],ix:2},p:{a:0,k:[0,0],ix:3},nm:"椭圆路径 1",mn:"ADBE Vector Shape - Ellipse",hd:!1},{ty:"fl",c:{a:0,k:[.145098039216,.423529411765,1,1],ix:4},o:{a:0,k:100,ix:5},r:1,bm:0,nm:"填充 1",mn:"ADBE Vector Graphic - Fill",hd:!1},{ty:"tr",p:{a:0,k:[-136,-18],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"变换"}],nm:"椭圆 1",np:3,cix:2,bm:0,ix:2,mn:"ADBE Vector Group",hd:!1}],ip:0,op:56,st:0,ct:1,bm:0},{ddd:0,ind:2,ty:4,nm:"形状图层 6",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:1,k:[{i:{x:.209,y:1},o:{x:.118,y:0},t:45,s:[510,360,0],to:[-15.167,-76.25,0],ti:[21.167,-75.5,0]},{t:55,s:[440,360,0]}],ix:2,l:2},a:{a:0,k:[-136,-18,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{d:1,ty:"el",s:{a:0,k:[45,45],ix:2},p:{a:0,k:[0,0],ix:3},nm:"椭圆路径 1",mn:"ADBE Vector Shape - Ellipse",hd:!1},{ty:"fl",c:{a:0,k:[.145098039216,.423529411765,1,1],ix:4},o:{a:0,k:100,ix:5},r:1,bm:0,nm:"填充 1",mn:"ADBE Vector Graphic - Fill",hd:!1},{ty:"tr",p:{a:0,k:[-136,-18],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"变换"}],nm:"椭圆 2",np:3,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:!1},{ty:"gr",it:[{d:1,ty:"el",s:{a:0,k:[45,45],ix:2},p:{a:0,k:[0,0],ix:3},nm:"椭圆路径 1",mn:"ADBE Vector Shape - Ellipse",hd:!1},{ty:"fl",c:{a:0,k:[.145098039216,.423529411765,1,1],ix:4},o:{a:0,k:100,ix:5},r:1,bm:0,nm:"填充 1",mn:"ADBE Vector Graphic - Fill",hd:!1},{ty:"tr",p:{a:0,k:[-136,-18],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"变换"}],nm:"椭圆 1",np:3,cix:2,bm:0,ix:2,mn:"ADBE Vector Group",hd:!1}],ip:0,op:56,st:0,ct:1,bm:0},{ddd:0,ind:3,ty:4,nm:"形状图层 4",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:1,k:[{i:{x:.312,y:1},o:{x:.117,y:0},t:30,s:[440,360,0],to:[-34.167,-127.75,0],ti:[0,0,0]},{t:40,s:[370,360,0]}],ix:2,l:2},a:{a:0,k:[-136,-18,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{d:1,ty:"el",s:{a:0,k:[45,45],ix:2},p:{a:0,k:[0,0],ix:3},nm:"椭圆路径 1",mn:"ADBE Vector Shape - Ellipse",hd:!1},{ty:"fl",c:{a:0,k:[.145098039216,.423529411765,1,1],ix:4},o:{a:0,k:100,ix:5},r:1,bm:0,nm:"填充 1",mn:"ADBE Vector Graphic - Fill",hd:!1},{ty:"tr",p:{a:0,k:[-136,-18],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"变换"}],nm:"椭圆 2",np:3,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:!1},{ty:"gr",it:[{d:1,ty:"el",s:{a:0,k:[45,45],ix:2},p:{a:0,k:[0,0],ix:3},nm:"椭圆路径 1",mn:"ADBE Vector Shape - Ellipse",hd:!1},{ty:"fl",c:{a:0,k:[.145098039216,.423529411765,1,1],ix:4},o:{a:0,k:100,ix:5},r:1,bm:0,nm:"填充 1",mn:"ADBE Vector Graphic - Fill",hd:!1},{ty:"tr",p:{a:0,k:[-136,-18],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"变换"}],nm:"椭圆 1",np:3,cix:2,bm:0,ix:2,mn:"ADBE Vector Group",hd:!1}],ip:0,op:56,st:0,ct:1,bm:0},{ddd:0,ind:4,ty:4,nm:"形状图层 3",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:1,k:[{i:{x:.214,y:1},o:{x:.173,y:0},t:15,s:[370,360,0],to:[-41.917,-127.5,0],ti:[0,0,0]},{t:25,s:[300,360,0]}],ix:2,l:2},a:{a:0,k:[-136,-18,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{d:1,ty:"el",s:{a:0,k:[45,45],ix:2},p:{a:0,k:[0,0],ix:3},nm:"椭圆路径 1",mn:"ADBE Vector Shape - Ellipse",hd:!1},{ty:"fl",c:{a:0,k:[.145098039216,.423529411765,1,1],ix:4},o:{a:0,k:100,ix:5},r:1,bm:0,nm:"填充 1",mn:"ADBE Vector Graphic - Fill",hd:!1},{ty:"tr",p:{a:0,k:[-136,-18],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"变换"}],nm:"椭圆 2",np:3,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:!1},{ty:"gr",it:[{d:1,ty:"el",s:{a:0,k:[45,45],ix:2},p:{a:0,k:[0,0],ix:3},nm:"椭圆路径 1",mn:"ADBE Vector Shape - Ellipse",hd:!1},{ty:"fl",c:{a:0,k:[.145098039216,.423529411765,1,1],ix:4},o:{a:0,k:100,ix:5},r:1,bm:0,nm:"填充 1",mn:"ADBE Vector Graphic - Fill",hd:!1},{ty:"tr",p:{a:0,k:[-136,-18],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"变换"}],nm:"椭圆 1",np:3,cix:2,bm:0,ix:2,mn:"ADBE Vector Group",hd:!1}],ip:0,op:56,st:0,ct:1,bm:0},{ddd:0,ind:5,ty:4,nm:"形状图层 2",sr:1,ks:{o:{a:0,k:100,ix:11},r:{a:0,k:0,ix:10},p:{a:1,k:[{i:{x:.342,y:1},o:{x:.138,y:0},t:0,s:[300,360,0],to:[-40.083,-127.25,0],ti:[0,0,0]},{t:10,s:[220,360,0]}],ix:2,l:2},a:{a:0,k:[-136,-18,0],ix:1,l:2},s:{a:0,k:[100,100,100],ix:6,l:2}},ao:0,shapes:[{ty:"gr",it:[{d:1,ty:"el",s:{a:0,k:[45,45],ix:2},p:{a:0,k:[0,0],ix:3},nm:"椭圆路径 1",mn:"ADBE Vector Shape - Ellipse",hd:!1},{ty:"fl",c:{a:0,k:[.145098039216,.423529411765,1,1],ix:4},o:{a:0,k:100,ix:5},r:1,bm:0,nm:"填充 1",mn:"ADBE Vector Graphic - Fill",hd:!1},{ty:"tr",p:{a:0,k:[-136,-18],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"变换"}],nm:"椭圆 2",np:3,cix:2,bm:0,ix:1,mn:"ADBE Vector Group",hd:!1},{ty:"gr",it:[{d:1,ty:"el",s:{a:0,k:[45,45],ix:2},p:{a:0,k:[0,0],ix:3},nm:"椭圆路径 1",mn:"ADBE Vector Shape - Ellipse",hd:!1},{ty:"fl",c:{a:0,k:[.145098039216,.423529411765,1,1],ix:4},o:{a:0,k:100,ix:5},r:1,bm:0,nm:"填充 1",mn:"ADBE Vector Graphic - Fill",hd:!1},{ty:"tr",p:{a:0,k:[-136,-18],ix:2},a:{a:0,k:[0,0],ix:1},s:{a:0,k:[100,100],ix:3},r:{a:0,k:0,ix:6},o:{a:0,k:100,ix:7},sk:{a:0,k:0,ix:4},sa:{a:0,k:0,ix:5},nm:"变换"}],nm:"椭圆 1",np:3,cix:2,bm:0,ix:2,mn:"ADBE Vector Group",hd:!1}],ip:0,op:56,st:0,ct:1,bm:0}],markers=[],loading5Data={v,fr,ip,op,w,h:h$1,nm,ddd,assets,layers,markers};var lottie$2={exports:{}},lottie$1=lottie$2.exports,hasRequiredLottie;function requireLottie(){return hasRequiredLottie||(hasRequiredLottie=1,function(module,exports){typeof document<"u"&&typeof navigator<"u"&&function(o,e){module.exports=e()}(lottie$1,function(){var svgNS="http://www.w3.org/2000/svg",locationHref="",_useWebWorker=!1,initialDefaultFrame=-999999,setWebWorker=function(e){_useWebWorker=!!e},getWebWorker=function(){return _useWebWorker},setLocationHref=function(e){locationHref=e},getLocationHref=function(){return locationHref};function createTag(o){return document.createElement(o)}function extendPrototype(o,e){var t,i=o.length,n;for(t=0;t<i;t+=1){n=o[t].prototype;for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e.prototype[r]=n[r])}}function getDescriptor(o,e){return Object.getOwnPropertyDescriptor(o,e)}function createProxyFunction(o){function e(){}return e.prototype=o,e}var audioControllerFactory=function(){function o(e){this.audios=[],this.audioFactory=e,this._volume=1,this._isMuted=!1}return o.prototype={addAudio:function(t){this.audios.push(t)},pause:function(){var t,i=this.audios.length;for(t=0;t<i;t+=1)this.audios[t].pause()},resume:function(){var t,i=this.audios.length;for(t=0;t<i;t+=1)this.audios[t].resume()},setRate:function(t){var i,n=this.audios.length;for(i=0;i<n;i+=1)this.audios[i].setRate(t)},createAudio:function(t){return this.audioFactory?this.audioFactory(t):window.Howl?new window.Howl({src:[t]}):{isPlaying:!1,play:function(){this.isPlaying=!0},seek:function(){this.isPlaying=!1},playing:function(){},rate:function(){},setVolume:function(){}}},setAudioFactory:function(t){this.audioFactory=t},setVolume:function(t){this._volume=t,this._updateVolume()},mute:function(){this._isMuted=!0,this._updateVolume()},unmute:function(){this._isMuted=!1,this._updateVolume()},getVolume:function(){return this._volume},_updateVolume:function(){var t,i=this.audios.length;for(t=0;t<i;t+=1)this.audios[t].volume(this._volume*(this._isMuted?0:1))}},function(){return new o}}(),createTypedArray=function(){function o(t,i){var n=0,r=[],s;switch(t){case"int16":case"uint8c":s=1;break;default:s=1.1;break}for(n=0;n<i;n+=1)r.push(s);return r}function e(t,i){return t==="float32"?new Float32Array(i):t==="int16"?new Int16Array(i):t==="uint8c"?new Uint8ClampedArray(i):o(t,i)}return typeof Uint8ClampedArray=="function"&&typeof Float32Array=="function"?e:o}();function createSizedArray(o){return Array.apply(null,{length:o})}function _typeof$6(o){"@babel/helpers - typeof";return _typeof$6=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof$6(o)}var subframeEnabled=!0,expressionsPlugin=null,expressionsInterfaces=null,idPrefix$1="",isSafari=/^((?!chrome|android).)*safari/i.test(navigator.userAgent),bmPow=Math.pow,bmSqrt=Math.sqrt,bmFloor=Math.floor,bmMax=Math.max,bmMin=Math.min,BMMath={};(function(){var o=["abs","acos","acosh","asin","asinh","atan","atanh","atan2","ceil","cbrt","expm1","clz32","cos","cosh","exp","floor","fround","hypot","imul","log","log1p","log2","log10","max","min","pow","random","round","sign","sin","sinh","sqrt","tan","tanh","trunc","E","LN10","LN2","LOG10E","LOG2E","PI","SQRT1_2","SQRT2"],e,t=o.length;for(e=0;e<t;e+=1)BMMath[o[e]]=Math[o[e]]})(),BMMath.random=Math.random,BMMath.abs=function(o){var e=_typeof$6(o);if(e==="object"&&o.length){var t=createSizedArray(o.length),i,n=o.length;for(i=0;i<n;i+=1)t[i]=Math.abs(o[i]);return t}return Math.abs(o)};var defaultCurveSegments=150,degToRads=Math.PI/180,roundCorner=.5519;function styleDiv(o){o.style.position="absolute",o.style.top=0,o.style.left=0,o.style.display="block",o.style.transformOrigin="0 0",o.style.webkitTransformOrigin="0 0",o.style.backfaceVisibility="visible",o.style.webkitBackfaceVisibility="visible",o.style.transformStyle="preserve-3d",o.style.webkitTransformStyle="preserve-3d",o.style.mozTransformStyle="preserve-3d"}function BMEnterFrameEvent(o,e,t,i){this.type=o,this.currentTime=e,this.totalTime=t,this.direction=i<0?-1:1}function BMCompleteEvent(o,e){this.type=o,this.direction=e<0?-1:1}function BMCompleteLoopEvent(o,e,t,i){this.type=o,this.currentLoop=t,this.totalLoops=e,this.direction=i<0?-1:1}function BMSegmentStartEvent(o,e,t){this.type=o,this.firstFrame=e,this.totalFrames=t}function BMDestroyEvent(o,e){this.type=o,this.target=e}function BMRenderFrameErrorEvent(o,e){this.type="renderFrameError",this.nativeError=o,this.currentTime=e}function BMConfigErrorEvent(o){this.type="configError",this.nativeError=o}var createElementID=function(){var o=0;return function(){return o+=1,idPrefix$1+"__lottie_element_"+o}}();function HSVtoRGB(o,e,t){var i,n,r,s,a,l,d,c;switch(s=Math.floor(o*6),a=o*6-s,l=t*(1-e),d=t*(1-a*e),c=t*(1-(1-a)*e),s%6){case 0:i=t,n=c,r=l;break;case 1:i=d,n=t,r=l;break;case 2:i=l,n=t,r=c;break;case 3:i=l,n=d,r=t;break;case 4:i=c,n=l,r=t;break;case 5:i=t,n=l,r=d;break}return[i,n,r]}function RGBtoHSV(o,e,t){var i=Math.max(o,e,t),n=Math.min(o,e,t),r=i-n,s,a=i===0?0:r/i,l=i/255;switch(i){case n:s=0;break;case o:s=e-t+r*(e<t?6:0),s/=6*r;break;case e:s=t-o+r*2,s/=6*r;break;case t:s=o-e+r*4,s/=6*r;break}return[s,a,l]}function addSaturationToRGB(o,e){var t=RGBtoHSV(o[0]*255,o[1]*255,o[2]*255);return t[1]+=e,t[1]>1?t[1]=1:t[1]<=0&&(t[1]=0),HSVtoRGB(t[0],t[1],t[2])}function addBrightnessToRGB(o,e){var t=RGBtoHSV(o[0]*255,o[1]*255,o[2]*255);return t[2]+=e,t[2]>1?t[2]=1:t[2]<0&&(t[2]=0),HSVtoRGB(t[0],t[1],t[2])}function addHueToRGB(o,e){var t=RGBtoHSV(o[0]*255,o[1]*255,o[2]*255);return t[0]+=e/360,t[0]>1?t[0]-=1:t[0]<0&&(t[0]+=1),HSVtoRGB(t[0],t[1],t[2])}var rgbToHex=function(){var o=[],e,t;for(e=0;e<256;e+=1)t=e.toString(16),o[e]=t.length===1?"0"+t:t;return function(i,n,r){return i<0&&(i=0),n<0&&(n=0),r<0&&(r=0),"#"+o[i]+o[n]+o[r]}}(),setSubframeEnabled=function(e){subframeEnabled=!!e},getSubframeEnabled=function(){return subframeEnabled},setExpressionsPlugin=function(e){expressionsPlugin=e},getExpressionsPlugin=function(){return expressionsPlugin},setExpressionInterfaces=function(e){expressionsInterfaces=e},getExpressionInterfaces=function(){return expressionsInterfaces},setDefaultCurveSegments=function(e){defaultCurveSegments=e},getDefaultCurveSegments=function(){return defaultCurveSegments},setIdPrefix=function(e){idPrefix$1=e};function createNS(o){return document.createElementNS(svgNS,o)}function _typeof$5(o){"@babel/helpers - typeof";return _typeof$5=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof$5(o)}var dataManager=function(){var o=1,e=[],t,i,n={onmessage:function(){},postMessage:function(f){t({data:f})}},r={postMessage:function(f){n.onmessage({data:f})}};function s(g){if(window.Worker&&window.Blob&&getWebWorker()){var f=new Blob(["var _workerSelf = self; self.onmessage = ",g.toString()],{type:"text/javascript"}),p=URL.createObjectURL(f);return new Worker(p)}return t=g,n}function a(){i||(i=s(function(f){function p(){function b(V,A){var P,k,T=V.length,U,z,J,X;for(k=0;k<T;k+=1)if(P=V[k],"ks"in P&&!P.completed){if(P.completed=!0,P.hasMask){var ae=P.masksProperties;for(z=ae.length,U=0;U<z;U+=1)if(ae[U].pt.k.i)E(ae[U].pt.k);else for(X=ae[U].pt.k.length,J=0;J<X;J+=1)ae[U].pt.k[J].s&&E(ae[U].pt.k[J].s[0]),ae[U].pt.k[J].e&&E(ae[U].pt.k[J].e[0])}P.ty===0?(P.layers=S(P.refId,A),b(P.layers,A)):P.ty===4?y(P.shapes):P.ty===5&&M(P)}}function _(V,A){if(V){var P=0,k=V.length;for(P=0;P<k;P+=1)V[P].t===1&&(V[P].data.layers=S(V[P].data.refId,A),b(V[P].data.layers,A))}}function C(V,A){for(var P=0,k=A.length;P<k;){if(A[P].id===V)return A[P];P+=1}return null}function S(V,A){var P=C(V,A);return P?P.layers.__used?JSON.parse(JSON.stringify(P.layers)):(P.layers.__used=!0,P.layers):null}function y(V){var A,P=V.length,k,T;for(A=P-1;A>=0;A-=1)if(V[A].ty==="sh")if(V[A].ks.k.i)E(V[A].ks.k);else for(T=V[A].ks.k.length,k=0;k<T;k+=1)V[A].ks.k[k].s&&E(V[A].ks.k[k].s[0]),V[A].ks.k[k].e&&E(V[A].ks.k[k].e[0]);else V[A].ty==="gr"&&y(V[A].it)}function E(V){var A,P=V.i.length;for(A=0;A<P;A+=1)V.i[A][0]+=V.v[A][0],V.i[A][1]+=V.v[A][1],V.o[A][0]+=V.v[A][0],V.o[A][1]+=V.v[A][1]}function x(V,A){var P=A?A.split("."):[100,100,100];return V[0]>P[0]?!0:P[0]>V[0]?!1:V[1]>P[1]?!0:P[1]>V[1]?!1:V[2]>P[2]?!0:P[2]>V[2]?!1:null}var L=function(){var V=[4,4,14];function A(k){var T=k.t.d;k.t.d={k:[{s:T,t:0}]}}function P(k){var T,U=k.length;for(T=0;T<U;T+=1)k[T].ty===5&&A(k[T])}return function(k){if(x(V,k.v)&&(P(k.layers),k.assets)){var T,U=k.assets.length;for(T=0;T<U;T+=1)k.assets[T].layers&&P(k.assets[T].layers)}}}(),I=function(){var V=[4,7,99];return function(A){if(A.chars&&!x(V,A.v)){var P,k=A.chars.length;for(P=0;P<k;P+=1){var T=A.chars[P];T.data&&T.data.shapes&&(y(T.data.shapes),T.data.ip=0,T.data.op=99999,T.data.st=0,T.data.sr=1,T.data.ks={p:{k:[0,0],a:0},s:{k:[100,100],a:0},a:{k:[0,0],a:0},r:{k:0,a:0},o:{k:100,a:0}},A.chars[P].t||(T.data.shapes.push({ty:"no"}),T.data.shapes[0].it.push({p:{k:[0,0],a:0},s:{k:[100,100],a:0},a:{k:[0,0],a:0},r:{k:0,a:0},o:{k:100,a:0},sk:{k:0,a:0},sa:{k:0,a:0},ty:"tr"})))}}}}(),D=function(){var V=[5,7,15];function A(k){var T=k.t.p;typeof T.a=="number"&&(T.a={a:0,k:T.a}),typeof T.p=="number"&&(T.p={a:0,k:T.p}),typeof T.r=="number"&&(T.r={a:0,k:T.r})}function P(k){var T,U=k.length;for(T=0;T<U;T+=1)k[T].ty===5&&A(k[T])}return function(k){if(x(V,k.v)&&(P(k.layers),k.assets)){var T,U=k.assets.length;for(T=0;T<U;T+=1)k.assets[T].layers&&P(k.assets[T].layers)}}}(),N=function(){var V=[4,1,9];function A(k){var T,U=k.length,z,J;for(T=0;T<U;T+=1)if(k[T].ty==="gr")A(k[T].it);else if(k[T].ty==="fl"||k[T].ty==="st")if(k[T].c.k&&k[T].c.k[0].i)for(J=k[T].c.k.length,z=0;z<J;z+=1)k[T].c.k[z].s&&(k[T].c.k[z].s[0]/=255,k[T].c.k[z].s[1]/=255,k[T].c.k[z].s[2]/=255,k[T].c.k[z].s[3]/=255),k[T].c.k[z].e&&(k[T].c.k[z].e[0]/=255,k[T].c.k[z].e[1]/=255,k[T].c.k[z].e[2]/=255,k[T].c.k[z].e[3]/=255);else k[T].c.k[0]/=255,k[T].c.k[1]/=255,k[T].c.k[2]/=255,k[T].c.k[3]/=255}function P(k){var T,U=k.length;for(T=0;T<U;T+=1)k[T].ty===4&&A(k[T].shapes)}return function(k){if(x(V,k.v)&&(P(k.layers),k.assets)){var T,U=k.assets.length;for(T=0;T<U;T+=1)k.assets[T].layers&&P(k.assets[T].layers)}}}(),F=function(){var V=[4,4,18];function A(k){var T,U=k.length,z,J;for(T=U-1;T>=0;T-=1)if(k[T].ty==="sh")if(k[T].ks.k.i)k[T].ks.k.c=k[T].closed;else for(J=k[T].ks.k.length,z=0;z<J;z+=1)k[T].ks.k[z].s&&(k[T].ks.k[z].s[0].c=k[T].closed),k[T].ks.k[z].e&&(k[T].ks.k[z].e[0].c=k[T].closed);else k[T].ty==="gr"&&A(k[T].it)}function P(k){var T,U,z=k.length,J,X,ae,ve;for(U=0;U<z;U+=1){if(T=k[U],T.hasMask){var me=T.masksProperties;for(X=me.length,J=0;J<X;J+=1)if(me[J].pt.k.i)me[J].pt.k.c=me[J].cl;else for(ve=me[J].pt.k.length,ae=0;ae<ve;ae+=1)me[J].pt.k[ae].s&&(me[J].pt.k[ae].s[0].c=me[J].cl),me[J].pt.k[ae].e&&(me[J].pt.k[ae].e[0].c=me[J].cl)}T.ty===4&&A(T.shapes)}}return function(k){if(x(V,k.v)&&(P(k.layers),k.assets)){var T,U=k.assets.length;for(T=0;T<U;T+=1)k.assets[T].layers&&P(k.assets[T].layers)}}}();function R(V){V.__complete||(N(V),L(V),I(V),D(V),F(V),b(V.layers,V.assets),_(V.chars,V.assets),V.__complete=!0)}function M(V){V.t.a.length===0&&"m"in V.t.p}var W={};return W.completeData=R,W.checkColors=N,W.checkChars=I,W.checkPathProperties=D,W.checkShapes=F,W.completeLayers=b,W}if(r.dataManager||(r.dataManager=p()),r.assetLoader||(r.assetLoader=function(){function b(C){var S=C.getResponseHeader("content-type");return S&&C.responseType==="json"&&S.indexOf("json")!==-1||C.response&&_typeof$5(C.response)==="object"?C.response:C.response&&typeof C.response=="string"?JSON.parse(C.response):C.responseText?JSON.parse(C.responseText):null}function _(C,S,y,E){var x,L=new XMLHttpRequest;try{L.responseType="json"}catch{}L.onreadystatechange=function(){if(L.readyState===4)if(L.status===200)x=b(L),y(x);else try{x=b(L),y(x)}catch(I){E&&E(I)}};try{L.open(["G","E","T"].join(""),C,!0)}catch{L.open(["G","E","T"].join(""),S+"/"+C,!0)}L.send()}return{load:_}}()),f.data.type==="loadAnimation")r.assetLoader.load(f.data.path,f.data.fullPath,function(b){r.dataManager.completeData(b),r.postMessage({id:f.data.id,payload:b,status:"success"})},function(){r.postMessage({id:f.data.id,status:"error"})});else if(f.data.type==="complete"){var m=f.data.animation;r.dataManager.completeData(m),r.postMessage({id:f.data.id,payload:m,status:"success"})}else f.data.type==="loadData"&&r.assetLoader.load(f.data.path,f.data.fullPath,function(b){r.postMessage({id:f.data.id,payload:b,status:"success"})},function(){r.postMessage({id:f.data.id,status:"error"})})}),i.onmessage=function(g){var f=g.data,p=f.id,m=e[p];e[p]=null,f.status==="success"?m.onComplete(f.payload):m.onError&&m.onError()})}function l(g,f){o+=1;var p="processId_"+o;return e[p]={onComplete:g,onError:f},p}function d(g,f,p){a();var m=l(f,p);i.postMessage({type:"loadAnimation",path:g,fullPath:window.location.origin+window.location.pathname,id:m})}function c(g,f,p){a();var m=l(f,p);i.postMessage({type:"loadData",path:g,fullPath:window.location.origin+window.location.pathname,id:m})}function u(g,f,p){a();var m=l(f,p);i.postMessage({type:"complete",animation:g,id:m})}return{loadAnimation:d,loadData:c,completeAnimation:u}}(),ImagePreloader=function(){var o=function(){var _=createTag("canvas");_.width=1,_.height=1;var C=_.getContext("2d");return C.fillStyle="rgba(0,0,0,0)",C.fillRect(0,0,1,1),_}();function e(){this.loadedAssets+=1,this.loadedAssets===this.totalImages&&this.loadedFootagesCount===this.totalFootages&&this.imagesLoadedCb&&this.imagesLoadedCb(null)}function t(){this.loadedFootagesCount+=1,this.loadedAssets===this.totalImages&&this.loadedFootagesCount===this.totalFootages&&this.imagesLoadedCb&&this.imagesLoadedCb(null)}function i(_,C,S){var y="";if(_.e)y=_.p;else if(C){var E=_.p;E.indexOf("images/")!==-1&&(E=E.split("/")[1]),y=C+E}else y=S,y+=_.u?_.u:"",y+=_.p;return y}function n(_){var C=0,S=setInterval((function(){var y=_.getBBox();(y.width||C>500)&&(this._imageLoaded(),clearInterval(S)),C+=1}).bind(this),50)}function r(_){var C=i(_,this.assetsPath,this.path),S=createNS("image");isSafari?this.testImageLoaded(S):S.addEventListener("load",this._imageLoaded,!1),S.addEventListener("error",(function(){y.img=o,this._imageLoaded()}).bind(this),!1),S.setAttributeNS("http://www.w3.org/1999/xlink","href",C),this._elementHelper.append?this._elementHelper.append(S):this._elementHelper.appendChild(S);var y={img:S,assetData:_};return y}function s(_){var C=i(_,this.assetsPath,this.path),S=createTag("img");S.crossOrigin="anonymous",S.addEventListener("load",this._imageLoaded,!1),S.addEventListener("error",(function(){y.img=o,this._imageLoaded()}).bind(this),!1),S.src=C;var y={img:S,assetData:_};return y}function a(_){var C={assetData:_},S=i(_,this.assetsPath,this.path);return dataManager.loadData(S,(function(y){C.img=y,this._footageLoaded()}).bind(this),(function(){C.img={},this._footageLoaded()}).bind(this)),C}function l(_,C){this.imagesLoadedCb=C;var S,y=_.length;for(S=0;S<y;S+=1)_[S].layers||(!_[S].t||_[S].t==="seq"?(this.totalImages+=1,this.images.push(this._createImageData(_[S]))):_[S].t===3&&(this.totalFootages+=1,this.images.push(this.createFootageData(_[S]))))}function d(_){this.path=_||""}function c(_){this.assetsPath=_||""}function u(_){for(var C=0,S=this.images.length;C<S;){if(this.images[C].assetData===_)return this.images[C].img;C+=1}return null}function g(){this.imagesLoadedCb=null,this.images.length=0}function f(){return this.totalImages===this.loadedAssets}function p(){return this.totalFootages===this.loadedFootagesCount}function m(_,C){_==="svg"?(this._elementHelper=C,this._createImageData=this.createImageData.bind(this)):this._createImageData=this.createImgData.bind(this)}function b(){this._imageLoaded=e.bind(this),this._footageLoaded=t.bind(this),this.testImageLoaded=n.bind(this),this.createFootageData=a.bind(this),this.assetsPath="",this.path="",this.totalImages=0,this.totalFootages=0,this.loadedAssets=0,this.loadedFootagesCount=0,this.imagesLoadedCb=null,this.images=[]}return b.prototype={loadAssets:l,setAssetsPath:c,setPath:d,loadedImages:f,loadedFootages:p,destroy:g,getAsset:u,createImgData:s,createImageData:r,imageLoaded:e,footageLoaded:t,setCacheType:m},b}();function BaseEvent(){}BaseEvent.prototype={triggerEvent:function(e,t){if(this._cbs[e])for(var i=this._cbs[e],n=0;n<i.length;n+=1)i[n](t)},addEventListener:function(e,t){return this._cbs[e]||(this._cbs[e]=[]),this._cbs[e].push(t),(function(){this.removeEventListener(e,t)}).bind(this)},removeEventListener:function(e,t){if(!t)this._cbs[e]=null;else if(this._cbs[e]){for(var i=0,n=this._cbs[e].length;i<n;)this._cbs[e][i]===t&&(this._cbs[e].splice(i,1),i-=1,n-=1),i+=1;this._cbs[e].length||(this._cbs[e]=null)}}};var markerParser=function(){function o(e){for(var t=e.split(`\r
- `),i={},n,r=0,s=0;s<t.length;s+=1)n=t[s].split(":"),n.length===2&&(i[n[0]]=n[1].trim(),r+=1);if(r===0)throw new Error;return i}return function(e){for(var t=[],i=0;i<e.length;i+=1){var n=e[i],r={time:n.tm,duration:n.dr};try{r.payload=JSON.parse(e[i].cm)}catch{try{r.payload=o(e[i].cm)}catch{r.payload={name:e[i].cm}}}t.push(r)}return t}}(),ProjectInterface=function(){function o(e){this.compositions.push(e)}return function(){function e(t){for(var i=0,n=this.compositions.length;i<n;){if(this.compositions[i].data&&this.compositions[i].data.nm===t)return this.compositions[i].prepareFrame&&this.compositions[i].data.xt&&this.compositions[i].prepareFrame(this.currentFrame),this.compositions[i].compInterface;i+=1}return null}return e.compositions=[],e.currentFrame=0,e.registerComposition=o,e}}(),renderers={},registerRenderer=function(e,t){renderers[e]=t};function getRenderer(o){return renderers[o]}function getRegisteredRenderer(){if(renderers.canvas)return"canvas";for(var o in renderers)if(renderers[o])return o;return""}function _typeof$4(o){"@babel/helpers - typeof";return _typeof$4=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof$4(o)}var AnimationItem=function(){this._cbs=[],this.name="",this.path="",this.isLoaded=!1,this.currentFrame=0,this.currentRawFrame=0,this.firstFrame=0,this.totalFrames=0,this.frameRate=0,this.frameMult=0,this.playSpeed=1,this.playDirection=1,this.playCount=0,this.animationData={},this.assets=[],this.isPaused=!0,this.autoplay=!1,this.loop=!0,this.renderer=null,this.animationID=createElementID(),this.assetsPath="",this.timeCompleted=0,this.segmentPos=0,this.isSubframeEnabled=getSubframeEnabled(),this.segments=[],this._idle=!0,this._completedLoop=!1,this.projectInterface=ProjectInterface(),this.imagePreloader=new ImagePreloader,this.audioController=audioControllerFactory(),this.markers=[],this.configAnimation=this.configAnimation.bind(this),this.onSetupError=this.onSetupError.bind(this),this.onSegmentComplete=this.onSegmentComplete.bind(this),this.drawnFrameEvent=new BMEnterFrameEvent("drawnFrame",0,0,0),this.expressionsPlugin=getExpressionsPlugin()};extendPrototype([BaseEvent],AnimationItem),AnimationItem.prototype.setParams=function(o){(o.wrapper||o.container)&&(this.wrapper=o.wrapper||o.container);var e="svg";o.animType?e=o.animType:o.renderer&&(e=o.renderer);var t=getRenderer(e);this.renderer=new t(this,o.rendererSettings),this.imagePreloader.setCacheType(e,this.renderer.globalData.defs),this.renderer.setProjectInterface(this.projectInterface),this.animType=e,o.loop===""||o.loop===null||o.loop===void 0||o.loop===!0?this.loop=!0:o.loop===!1?this.loop=!1:this.loop=parseInt(o.loop,10),this.autoplay="autoplay"in o?o.autoplay:!0,this.name=o.name?o.name:"",this.autoloadSegments=Object.prototype.hasOwnProperty.call(o,"autoloadSegments")?o.autoloadSegments:!0,this.assetsPath=o.assetsPath,this.initialSegment=o.initialSegment,o.audioFactory&&this.audioController.setAudioFactory(o.audioFactory),o.animationData?this.setupAnimation(o.animationData):o.path&&(o.path.lastIndexOf("\\")!==-1?this.path=o.path.substr(0,o.path.lastIndexOf("\\")+1):this.path=o.path.substr(0,o.path.lastIndexOf("/")+1),this.fileName=o.path.substr(o.path.lastIndexOf("/")+1),this.fileName=this.fileName.substr(0,this.fileName.lastIndexOf(".json")),dataManager.loadAnimation(o.path,this.configAnimation,this.onSetupError))},AnimationItem.prototype.onSetupError=function(){this.trigger("data_failed")},AnimationItem.prototype.setupAnimation=function(o){dataManager.completeAnimation(o,this.configAnimation)},AnimationItem.prototype.setData=function(o,e){e&&_typeof$4(e)!=="object"&&(e=JSON.parse(e));var t={wrapper:o,animationData:e},i=o.attributes;t.path=i.getNamedItem("data-animation-path")?i.getNamedItem("data-animation-path").value:i.getNamedItem("data-bm-path")?i.getNamedItem("data-bm-path").value:i.getNamedItem("bm-path")?i.getNamedItem("bm-path").value:"",t.animType=i.getNamedItem("data-anim-type")?i.getNamedItem("data-anim-type").value:i.getNamedItem("data-bm-type")?i.getNamedItem("data-bm-type").value:i.getNamedItem("bm-type")?i.getNamedItem("bm-type").value:i.getNamedItem("data-bm-renderer")?i.getNamedItem("data-bm-renderer").value:i.getNamedItem("bm-renderer")?i.getNamedItem("bm-renderer").value:getRegisteredRenderer()||"canvas";var n=i.getNamedItem("data-anim-loop")?i.getNamedItem("data-anim-loop").value:i.getNamedItem("data-bm-loop")?i.getNamedItem("data-bm-loop").value:i.getNamedItem("bm-loop")?i.getNamedItem("bm-loop").value:"";n==="false"?t.loop=!1:n==="true"?t.loop=!0:n!==""&&(t.loop=parseInt(n,10));var r=i.getNamedItem("data-anim-autoplay")?i.getNamedItem("data-anim-autoplay").value:i.getNamedItem("data-bm-autoplay")?i.getNamedItem("data-bm-autoplay").value:i.getNamedItem("bm-autoplay")?i.getNamedItem("bm-autoplay").value:!0;t.autoplay=r!=="false",t.name=i.getNamedItem("data-name")?i.getNamedItem("data-name").value:i.getNamedItem("data-bm-name")?i.getNamedItem("data-bm-name").value:i.getNamedItem("bm-name")?i.getNamedItem("bm-name").value:"";var s=i.getNamedItem("data-anim-prerender")?i.getNamedItem("data-anim-prerender").value:i.getNamedItem("data-bm-prerender")?i.getNamedItem("data-bm-prerender").value:i.getNamedItem("bm-prerender")?i.getNamedItem("bm-prerender").value:"";s==="false"&&(t.prerender=!1),t.path?this.setParams(t):this.trigger("destroy")},AnimationItem.prototype.includeLayers=function(o){o.op>this.animationData.op&&(this.animationData.op=o.op,this.totalFrames=Math.floor(o.op-this.animationData.ip));var e=this.animationData.layers,t,i=e.length,n=o.layers,r,s=n.length;for(r=0;r<s;r+=1)for(t=0;t<i;){if(e[t].id===n[r].id){e[t]=n[r];break}t+=1}if((o.chars||o.fonts)&&(this.renderer.globalData.fontManager.addChars(o.chars),this.renderer.globalData.fontManager.addFonts(o.fonts,this.renderer.globalData.defs)),o.assets)for(i=o.assets.length,t=0;t<i;t+=1)this.animationData.assets.push(o.assets[t]);this.animationData.__complete=!1,dataManager.completeAnimation(this.animationData,this.onSegmentComplete)},AnimationItem.prototype.onSegmentComplete=function(o){this.animationData=o;var e=getExpressionsPlugin();e&&e.initExpressions(this),this.loadNextSegment()},AnimationItem.prototype.loadNextSegment=function(){var o=this.animationData.segments;if(!o||o.length===0||!this.autoloadSegments){this.trigger("data_ready"),this.timeCompleted=this.totalFrames;return}var e=o.shift();this.timeCompleted=e.time*this.frameRate;var t=this.path+this.fileName+"_"+this.segmentPos+".json";this.segmentPos+=1,dataManager.loadData(t,this.includeLayers.bind(this),(function(){this.trigger("data_failed")}).bind(this))},AnimationItem.prototype.loadSegments=function(){var o=this.animationData.segments;o||(this.timeCompleted=this.totalFrames),this.loadNextSegment()},AnimationItem.prototype.imagesLoaded=function(){this.trigger("loaded_images"),this.checkLoaded()},AnimationItem.prototype.preloadImages=function(){this.imagePreloader.setAssetsPath(this.assetsPath),this.imagePreloader.setPath(this.path),this.imagePreloader.loadAssets(this.animationData.assets,this.imagesLoaded.bind(this))},AnimationItem.prototype.configAnimation=function(o){if(this.renderer)try{this.animationData=o,this.initialSegment?(this.totalFrames=Math.floor(this.initialSegment[1]-this.initialSegment[0]),this.firstFrame=Math.round(this.initialSegment[0])):(this.totalFrames=Math.floor(this.animationData.op-this.animationData.ip),this.firstFrame=Math.round(this.animationData.ip)),this.renderer.configAnimation(o),o.assets||(o.assets=[]),this.assets=this.animationData.assets,this.frameRate=this.animationData.fr,this.frameMult=this.animationData.fr/1e3,this.renderer.searchExtraCompositions(o.assets),this.markers=markerParser(o.markers||[]),this.trigger("config_ready"),this.preloadImages(),this.loadSegments(),this.updaFrameModifier(),this.waitForFontsLoaded(),this.isPaused&&this.audioController.pause()}catch(e){this.triggerConfigError(e)}},AnimationItem.prototype.waitForFontsLoaded=function(){this.renderer&&(this.renderer.globalData.fontManager.isLoaded?this.checkLoaded():setTimeout(this.waitForFontsLoaded.bind(this),20))},AnimationItem.prototype.checkLoaded=function(){if(!this.isLoaded&&this.renderer.globalData.fontManager.isLoaded&&(this.imagePreloader.loadedImages()||this.renderer.rendererType!=="canvas")&&this.imagePreloader.loadedFootages()){this.isLoaded=!0;var o=getExpressionsPlugin();o&&o.initExpressions(this),this.renderer.initItems(),setTimeout((function(){this.trigger("DOMLoaded")}).bind(this),0),this.gotoFrame(),this.autoplay&&this.play()}},AnimationItem.prototype.resize=function(o,e){var t=typeof o=="number"?o:void 0,i=typeof e=="number"?e:void 0;this.renderer.updateContainerSize(t,i)},AnimationItem.prototype.setSubframe=function(o){this.isSubframeEnabled=!!o},AnimationItem.prototype.gotoFrame=function(){this.currentFrame=this.isSubframeEnabled?this.currentRawFrame:~~this.currentRawFrame,this.timeCompleted!==this.totalFrames&&this.currentFrame>this.timeCompleted&&(this.currentFrame=this.timeCompleted),this.trigger("enterFrame"),this.renderFrame(),this.trigger("drawnFrame")},AnimationItem.prototype.renderFrame=function(){if(!(this.isLoaded===!1||!this.renderer))try{this.expressionsPlugin&&this.expressionsPlugin.resetFrame(),this.renderer.renderFrame(this.currentFrame+this.firstFrame)}catch(o){this.triggerRenderFrameError(o)}},AnimationItem.prototype.play=function(o){o&&this.name!==o||this.isPaused===!0&&(this.isPaused=!1,this.trigger("_play"),this.audioController.resume(),this._idle&&(this._idle=!1,this.trigger("_active")))},AnimationItem.prototype.pause=function(o){o&&this.name!==o||this.isPaused===!1&&(this.isPaused=!0,this.trigger("_pause"),this._idle=!0,this.trigger("_idle"),this.audioController.pause())},AnimationItem.prototype.togglePause=function(o){o&&this.name!==o||(this.isPaused===!0?this.play():this.pause())},AnimationItem.prototype.stop=function(o){o&&this.name!==o||(this.pause(),this.playCount=0,this._completedLoop=!1,this.setCurrentRawFrameValue(0))},AnimationItem.prototype.getMarkerData=function(o){for(var e,t=0;t<this.markers.length;t+=1)if(e=this.markers[t],e.payload&&e.payload.name===o)return e;return null},AnimationItem.prototype.goToAndStop=function(o,e,t){if(!(t&&this.name!==t)){var i=Number(o);if(isNaN(i)){var n=this.getMarkerData(o);n&&this.goToAndStop(n.time,!0)}else e?this.setCurrentRawFrameValue(o):this.setCurrentRawFrameValue(o*this.frameModifier);this.pause()}},AnimationItem.prototype.goToAndPlay=function(o,e,t){if(!(t&&this.name!==t)){var i=Number(o);if(isNaN(i)){var n=this.getMarkerData(o);n&&(n.duration?this.playSegments([n.time,n.time+n.duration],!0):this.goToAndStop(n.time,!0))}else this.goToAndStop(i,e,t);this.play()}},AnimationItem.prototype.advanceTime=function(o){if(!(this.isPaused===!0||this.isLoaded===!1)){var e=this.currentRawFrame+o*this.frameModifier,t=!1;e>=this.totalFrames-1&&this.frameModifier>0?!this.loop||this.playCount===this.loop?this.checkSegments(e>this.totalFrames?e%this.totalFrames:0)||(t=!0,e=this.totalFrames-1):e>=this.totalFrames?(this.playCount+=1,this.checkSegments(e%this.totalFrames)||(this.setCurrentRawFrameValue(e%this.totalFrames),this._completedLoop=!0,this.trigger("loopComplete"))):this.setCurrentRawFrameValue(e):e<0?this.checkSegments(e%this.totalFrames)||(this.loop&&!(this.playCount--<=0&&this.loop!==!0)?(this.setCurrentRawFrameValue(this.totalFrames+e%this.totalFrames),this._completedLoop?this.trigger("loopComplete"):this._completedLoop=!0):(t=!0,e=0)):this.setCurrentRawFrameValue(e),t&&(this.setCurrentRawFrameValue(e),this.pause(),this.trigger("complete"))}},AnimationItem.prototype.adjustSegment=function(o,e){this.playCount=0,o[1]<o[0]?(this.frameModifier>0&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(-1)),this.totalFrames=o[0]-o[1],this.timeCompleted=this.totalFrames,this.firstFrame=o[1],this.setCurrentRawFrameValue(this.totalFrames-.001-e)):o[1]>o[0]&&(this.frameModifier<0&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(1)),this.totalFrames=o[1]-o[0],this.timeCompleted=this.totalFrames,this.firstFrame=o[0],this.setCurrentRawFrameValue(.001+e)),this.trigger("segmentStart")},AnimationItem.prototype.setSegment=function(o,e){var t=-1;this.isPaused&&(this.currentRawFrame+this.firstFrame<o?t=o:this.currentRawFrame+this.firstFrame>e&&(t=e-o)),this.firstFrame=o,this.totalFrames=e-o,this.timeCompleted=this.totalFrames,t!==-1&&this.goToAndStop(t,!0)},AnimationItem.prototype.playSegments=function(o,e){if(e&&(this.segments.length=0),_typeof$4(o[0])==="object"){var t,i=o.length;for(t=0;t<i;t+=1)this.segments.push(o[t])}else this.segments.push(o);this.segments.length&&e&&this.adjustSegment(this.segments.shift(),0),this.isPaused&&this.play()},AnimationItem.prototype.resetSegments=function(o){this.segments.length=0,this.segments.push([this.animationData.ip,this.animationData.op]),o&&this.checkSegments(0)},AnimationItem.prototype.checkSegments=function(o){return this.segments.length?(this.adjustSegment(this.segments.shift(),o),!0):!1},AnimationItem.prototype.destroy=function(o){o&&this.name!==o||!this.renderer||(this.renderer.destroy(),this.imagePreloader.destroy(),this.trigger("destroy"),this._cbs=null,this.onEnterFrame=null,this.onLoopComplete=null,this.onComplete=null,this.onSegmentStart=null,this.onDestroy=null,this.renderer=null,this.expressionsPlugin=null,this.imagePreloader=null,this.projectInterface=null)},AnimationItem.prototype.setCurrentRawFrameValue=function(o){this.currentRawFrame=o,this.gotoFrame()},AnimationItem.prototype.setSpeed=function(o){this.playSpeed=o,this.updaFrameModifier()},AnimationItem.prototype.setDirection=function(o){this.playDirection=o<0?-1:1,this.updaFrameModifier()},AnimationItem.prototype.setLoop=function(o){this.loop=o},AnimationItem.prototype.setVolume=function(o,e){e&&this.name!==e||this.audioController.setVolume(o)},AnimationItem.prototype.getVolume=function(){return this.audioController.getVolume()},AnimationItem.prototype.mute=function(o){o&&this.name!==o||this.audioController.mute()},AnimationItem.prototype.unmute=function(o){o&&this.name!==o||this.audioController.unmute()},AnimationItem.prototype.updaFrameModifier=function(){this.frameModifier=this.frameMult*this.playSpeed*this.playDirection,this.audioController.setRate(this.playSpeed*this.playDirection)},AnimationItem.prototype.getPath=function(){return this.path},AnimationItem.prototype.getAssetsPath=function(o){var e="";if(o.e)e=o.p;else if(this.assetsPath){var t=o.p;t.indexOf("images/")!==-1&&(t=t.split("/")[1]),e=this.assetsPath+t}else e=this.path,e+=o.u?o.u:"",e+=o.p;return e},AnimationItem.prototype.getAssetData=function(o){for(var e=0,t=this.assets.length;e<t;){if(o===this.assets[e].id)return this.assets[e];e+=1}return null},AnimationItem.prototype.hide=function(){this.renderer.hide()},AnimationItem.prototype.show=function(){this.renderer.show()},AnimationItem.prototype.getDuration=function(o){return o?this.totalFrames:this.totalFrames/this.frameRate},AnimationItem.prototype.updateDocumentData=function(o,e,t){try{var i=this.renderer.getElementByPath(o);i.updateDocumentData(e,t)}catch{}},AnimationItem.prototype.trigger=function(o){if(this._cbs&&this._cbs[o])switch(o){case"enterFrame":this.triggerEvent(o,new BMEnterFrameEvent(o,this.currentFrame,this.totalFrames,this.frameModifier));break;case"drawnFrame":this.drawnFrameEvent.currentTime=this.currentFrame,this.drawnFrameEvent.totalTime=this.totalFrames,this.drawnFrameEvent.direction=this.frameModifier,this.triggerEvent(o,this.drawnFrameEvent);break;case"loopComplete":this.triggerEvent(o,new BMCompleteLoopEvent(o,this.loop,this.playCount,this.frameMult));break;case"complete":this.triggerEvent(o,new BMCompleteEvent(o,this.frameMult));break;case"segmentStart":this.triggerEvent(o,new BMSegmentStartEvent(o,this.firstFrame,this.totalFrames));break;case"destroy":this.triggerEvent(o,new BMDestroyEvent(o,this));break;default:this.triggerEvent(o)}o==="enterFrame"&&this.onEnterFrame&&this.onEnterFrame.call(this,new BMEnterFrameEvent(o,this.currentFrame,this.totalFrames,this.frameMult)),o==="loopComplete"&&this.onLoopComplete&&this.onLoopComplete.call(this,new BMCompleteLoopEvent(o,this.loop,this.playCount,this.frameMult)),o==="complete"&&this.onComplete&&this.onComplete.call(this,new BMCompleteEvent(o,this.frameMult)),o==="segmentStart"&&this.onSegmentStart&&this.onSegmentStart.call(this,new BMSegmentStartEvent(o,this.firstFrame,this.totalFrames)),o==="destroy"&&this.onDestroy&&this.onDestroy.call(this,new BMDestroyEvent(o,this))},AnimationItem.prototype.triggerRenderFrameError=function(o){var e=new BMRenderFrameErrorEvent(o,this.currentFrame);this.triggerEvent("error",e),this.onError&&this.onError.call(this,e)},AnimationItem.prototype.triggerConfigError=function(o){var e=new BMConfigErrorEvent(o,this.currentFrame);this.triggerEvent("error",e),this.onError&&this.onError.call(this,e)};var animationManager=function(){var o={},e=[],t=0,i=0,n=0,r=!0,s=!1;function a(A){for(var P=0,k=A.target;P<i;)e[P].animation===k&&(e.splice(P,1),P-=1,i-=1,k.isPaused||u()),P+=1}function l(A,P){if(!A)return null;for(var k=0;k<i;){if(e[k].elem===A&&e[k].elem!==null)return e[k].animation;k+=1}var T=new AnimationItem;return g(T,A),T.setData(A,P),T}function d(){var A,P=e.length,k=[];for(A=0;A<P;A+=1)k.push(e[A].animation);return k}function c(){n+=1,N()}function u(){n-=1}function g(A,P){A.addEventListener("destroy",a),A.addEventListener("_active",c),A.addEventListener("_idle",u),e.push({elem:P,animation:A}),i+=1}function f(A){var P=new AnimationItem;return g(P,null),P.setParams(A),P}function p(A,P){var k;for(k=0;k<i;k+=1)e[k].animation.setSpeed(A,P)}function m(A,P){var k;for(k=0;k<i;k+=1)e[k].animation.setDirection(A,P)}function b(A){var P;for(P=0;P<i;P+=1)e[P].animation.play(A)}function _(A){var P=A-t,k;for(k=0;k<i;k+=1)e[k].animation.advanceTime(P);t=A,n&&!s?window.requestAnimationFrame(_):r=!0}function C(A){t=A,window.requestAnimationFrame(_)}function S(A){var P;for(P=0;P<i;P+=1)e[P].animation.pause(A)}function y(A,P,k){var T;for(T=0;T<i;T+=1)e[T].animation.goToAndStop(A,P,k)}function E(A){var P;for(P=0;P<i;P+=1)e[P].animation.stop(A)}function x(A){var P;for(P=0;P<i;P+=1)e[P].animation.togglePause(A)}function L(A){var P;for(P=i-1;P>=0;P-=1)e[P].animation.destroy(A)}function I(A,P,k){var T=[].concat([].slice.call(document.getElementsByClassName("lottie")),[].slice.call(document.getElementsByClassName("bodymovin"))),U,z=T.length;for(U=0;U<z;U+=1)k&&T[U].setAttribute("data-bm-type",k),l(T[U],A);if(P&&z===0){k||(k="svg");var J=document.getElementsByTagName("body")[0];J.innerText="";var X=createTag("div");X.style.width="100%",X.style.height="100%",X.setAttribute("data-bm-type",k),J.appendChild(X),l(X,A)}}function D(){var A;for(A=0;A<i;A+=1)e[A].animation.resize()}function N(){!s&&n&&r&&(window.requestAnimationFrame(C),r=!1)}function F(){s=!0}function R(){s=!1,N()}function M(A,P){var k;for(k=0;k<i;k+=1)e[k].animation.setVolume(A,P)}function W(A){var P;for(P=0;P<i;P+=1)e[P].animation.mute(A)}function V(A){var P;for(P=0;P<i;P+=1)e[P].animation.unmute(A)}return o.registerAnimation=l,o.loadAnimation=f,o.setSpeed=p,o.setDirection=m,o.play=b,o.pause=S,o.stop=E,o.togglePause=x,o.searchAnimations=I,o.resize=D,o.goToAndStop=y,o.destroy=L,o.freeze=F,o.unfreeze=R,o.setVolume=M,o.mute=W,o.unmute=V,o.getRegisteredAnimations=d,o}(),BezierFactory=function(){var o={};o.getBezierEasing=t;var e={};function t(C,S,y,E,x){var L=x||("bez_"+C+"_"+S+"_"+y+"_"+E).replace(/\./g,"p");if(e[L])return e[L];var I=new _([C,S,y,E]);return e[L]=I,I}var i=4,n=.001,r=1e-7,s=10,a=11,l=1/(a-1),d=typeof Float32Array=="function";function c(C,S){return 1-3*S+3*C}function u(C,S){return 3*S-6*C}function g(C){return 3*C}function f(C,S,y){return((c(S,y)*C+u(S,y))*C+g(S))*C}function p(C,S,y){return 3*c(S,y)*C*C+2*u(S,y)*C+g(S)}function m(C,S,y,E,x){var L,I,D=0;do I=S+(y-S)/2,L=f(I,E,x)-C,L>0?y=I:S=I;while(Math.abs(L)>r&&++D<s);return I}function b(C,S,y,E){for(var x=0;x<i;++x){var L=p(S,y,E);if(L===0)return S;var I=f(S,y,E)-C;S-=I/L}return S}function _(C){this._p=C,this._mSampleValues=d?new Float32Array(a):new Array(a),this._precomputed=!1,this.get=this.get.bind(this)}return _.prototype={get:function(S){var y=this._p[0],E=this._p[1],x=this._p[2],L=this._p[3];return this._precomputed||this._precompute(),y===E&&x===L?S:S===0?0:S===1?1:f(this._getTForX(S),E,L)},_precompute:function(){var S=this._p[0],y=this._p[1],E=this._p[2],x=this._p[3];this._precomputed=!0,(S!==y||E!==x)&&this._calcSampleValues()},_calcSampleValues:function(){for(var S=this._p[0],y=this._p[2],E=0;E<a;++E)this._mSampleValues[E]=f(E*l,S,y)},_getTForX:function(S){for(var y=this._p[0],E=this._p[2],x=this._mSampleValues,L=0,I=1,D=a-1;I!==D&&x[I]<=S;++I)L+=l;--I;var N=(S-x[I])/(x[I+1]-x[I]),F=L+N*l,R=p(F,y,E);return R>=n?b(S,F,y,E):R===0?F:m(S,L,L+l,y,E)}},o}(),pooling=function(){function o(e){return e.concat(createSizedArray(e.length))}return{double:o}}(),poolFactory=function(){return function(o,e,t){var i=0,n=o,r=createSizedArray(n),s={newElement:a,release:l};function a(){var d;return i?(i-=1,d=r[i]):d=e(),d}function l(d){i===n&&(r=pooling.double(r),n*=2),t&&t(d),r[i]=d,i+=1}return s}}(),bezierLengthPool=function(){function o(){return{addedLength:0,percents:createTypedArray("float32",getDefaultCurveSegments()),lengths:createTypedArray("float32",getDefaultCurveSegments())}}return poolFactory(8,o)}(),segmentsLengthPool=function(){function o(){return{lengths:[],totalLength:0}}function e(t){var i,n=t.lengths.length;for(i=0;i<n;i+=1)bezierLengthPool.release(t.lengths[i]);t.lengths.length=0}return poolFactory(8,o,e)}();function bezFunction(){var o=Math;function e(g,f,p,m,b,_){var C=g*m+f*b+p*_-b*m-_*g-p*f;return C>-.001&&C<.001}function t(g,f,p,m,b,_,C,S,y){if(p===0&&_===0&&y===0)return e(g,f,m,b,C,S);var E=o.sqrt(o.pow(m-g,2)+o.pow(b-f,2)+o.pow(_-p,2)),x=o.sqrt(o.pow(C-g,2)+o.pow(S-f,2)+o.pow(y-p,2)),L=o.sqrt(o.pow(C-m,2)+o.pow(S-b,2)+o.pow(y-_,2)),I;return E>x?E>L?I=E-x-L:I=L-x-E:L>x?I=L-x-E:I=x-E-L,I>-1e-4&&I<1e-4}var i=function(){return function(g,f,p,m){var b=getDefaultCurveSegments(),_,C,S,y,E,x=0,L,I=[],D=[],N=bezierLengthPool.newElement();for(S=p.length,_=0;_<b;_+=1){for(E=_/(b-1),L=0,C=0;C<S;C+=1)y=bmPow(1-E,3)*g[C]+3*bmPow(1-E,2)*E*p[C]+3*(1-E)*bmPow(E,2)*m[C]+bmPow(E,3)*f[C],I[C]=y,D[C]!==null&&(L+=bmPow(I[C]-D[C],2)),D[C]=I[C];L&&(L=bmSqrt(L),x+=L),N.percents[_]=E,N.lengths[_]=x}return N.addedLength=x,N}}();function n(g){var f=segmentsLengthPool.newElement(),p=g.c,m=g.v,b=g.o,_=g.i,C,S=g._length,y=f.lengths,E=0;for(C=0;C<S-1;C+=1)y[C]=i(m[C],m[C+1],b[C],_[C+1]),E+=y[C].addedLength;return p&&S&&(y[C]=i(m[C],m[0],b[C],_[0]),E+=y[C].addedLength),f.totalLength=E,f}function r(g){this.segmentLength=0,this.points=new Array(g)}function s(g,f){this.partialLength=g,this.point=f}var a=function(){var g={};return function(f,p,m,b){var _=(f[0]+"_"+f[1]+"_"+p[0]+"_"+p[1]+"_"+m[0]+"_"+m[1]+"_"+b[0]+"_"+b[1]).replace(/\./g,"p");if(!g[_]){var C=getDefaultCurveSegments(),S,y,E,x,L,I=0,D,N,F=null;f.length===2&&(f[0]!==p[0]||f[1]!==p[1])&&e(f[0],f[1],p[0],p[1],f[0]+m[0],f[1]+m[1])&&e(f[0],f[1],p[0],p[1],p[0]+b[0],p[1]+b[1])&&(C=2);var R=new r(C);for(E=m.length,S=0;S<C;S+=1){for(N=createSizedArray(E),L=S/(C-1),D=0,y=0;y<E;y+=1)x=bmPow(1-L,3)*f[y]+3*bmPow(1-L,2)*L*(f[y]+m[y])+3*(1-L)*bmPow(L,2)*(p[y]+b[y])+bmPow(L,3)*p[y],N[y]=x,F!==null&&(D+=bmPow(N[y]-F[y],2));D=bmSqrt(D),I+=D,R.points[S]=new s(D,N),F=N}R.segmentLength=I,g[_]=R}return g[_]}}();function l(g,f){var p=f.percents,m=f.lengths,b=p.length,_=bmFloor((b-1)*g),C=g*f.addedLength,S=0;if(_===b-1||_===0||C===m[_])return p[_];for(var y=m[_]>C?-1:1,E=!0;E;)if(m[_]<=C&&m[_+1]>C?(S=(C-m[_])/(m[_+1]-m[_]),E=!1):_+=y,_<0||_>=b-1){if(_===b-1)return p[_];E=!1}return p[_]+(p[_+1]-p[_])*S}function d(g,f,p,m,b,_){var C=l(b,_),S=1-C,y=o.round((S*S*S*g[0]+(C*S*S+S*C*S+S*S*C)*p[0]+(C*C*S+S*C*C+C*S*C)*m[0]+C*C*C*f[0])*1e3)/1e3,E=o.round((S*S*S*g[1]+(C*S*S+S*C*S+S*S*C)*p[1]+(C*C*S+S*C*C+C*S*C)*m[1]+C*C*C*f[1])*1e3)/1e3;return[y,E]}var c=createTypedArray("float32",8);function u(g,f,p,m,b,_,C){b<0?b=0:b>1&&(b=1);var S=l(b,C);_=_>1?1:_;var y=l(_,C),E,x=g.length,L=1-S,I=1-y,D=L*L*L,N=S*L*L*3,F=S*S*L*3,R=S*S*S,M=L*L*I,W=S*L*I+L*S*I+L*L*y,V=S*S*I+L*S*y+S*L*y,A=S*S*y,P=L*I*I,k=S*I*I+L*y*I+L*I*y,T=S*y*I+L*y*y+S*I*y,U=S*y*y,z=I*I*I,J=y*I*I+I*y*I+I*I*y,X=y*y*I+I*y*y+y*I*y,ae=y*y*y;for(E=0;E<x;E+=1)c[E*4]=o.round((D*g[E]+N*p[E]+F*m[E]+R*f[E])*1e3)/1e3,c[E*4+1]=o.round((M*g[E]+W*p[E]+V*m[E]+A*f[E])*1e3)/1e3,c[E*4+2]=o.round((P*g[E]+k*p[E]+T*m[E]+U*f[E])*1e3)/1e3,c[E*4+3]=o.round((z*g[E]+J*p[E]+X*m[E]+ae*f[E])*1e3)/1e3;return c}return{getSegmentsLength:n,getNewSegment:u,getPointInSegment:d,buildBezierData:a,pointOnLine2D:e,pointOnLine3D:t}}var bez=bezFunction(),initFrame=initialDefaultFrame,mathAbs=Math.abs;function interpolateValue(o,e){var t=this.offsetTime,i;this.propType==="multidimensional"&&(i=createTypedArray("float32",this.pv.length));for(var n=e.lastIndex,r=n,s=this.keyframes.length-1,a=!0,l,d,c;a;){if(l=this.keyframes[r],d=this.keyframes[r+1],r===s-1&&o>=d.t-t){l.h&&(l=d),n=0;break}if(d.t-t>o){n=r;break}r<s-1?r+=1:(n=0,a=!1)}c=this.keyframesMetadata[r]||{};var u,g,f,p,m,b,_=d.t-t,C=l.t-t,S;if(l.to){c.bezierData||(c.bezierData=bez.buildBezierData(l.s,d.s||l.e,l.to,l.ti));var y=c.bezierData;if(o>=_||o<C){var E=o>=_?y.points.length-1:0;for(g=y.points[E].point.length,u=0;u<g;u+=1)i[u]=y.points[E].point[u]}else{c.__fnct?b=c.__fnct:(b=BezierFactory.getBezierEasing(l.o.x,l.o.y,l.i.x,l.i.y,l.n).get,c.__fnct=b),f=b((o-C)/(_-C));var x=y.segmentLength*f,L,I=e.lastFrame<o&&e._lastKeyframeIndex===r?e._lastAddedLength:0;for(m=e.lastFrame<o&&e._lastKeyframeIndex===r?e._lastPoint:0,a=!0,p=y.points.length;a;){if(I+=y.points[m].partialLength,x===0||f===0||m===y.points.length-1){for(g=y.points[m].point.length,u=0;u<g;u+=1)i[u]=y.points[m].point[u];break}else if(x>=I&&x<I+y.points[m+1].partialLength){for(L=(x-I)/y.points[m+1].partialLength,g=y.points[m].point.length,u=0;u<g;u+=1)i[u]=y.points[m].point[u]+(y.points[m+1].point[u]-y.points[m].point[u])*L;break}m<p-1?m+=1:a=!1}e._lastPoint=m,e._lastAddedLength=I-y.points[m].partialLength,e._lastKeyframeIndex=r}}else{var D,N,F,R,M;if(s=l.s.length,S=d.s||l.e,this.sh&&l.h!==1)if(o>=_)i[0]=S[0],i[1]=S[1],i[2]=S[2];else if(o<=C)i[0]=l.s[0],i[1]=l.s[1],i[2]=l.s[2];else{var W=createQuaternion(l.s),V=createQuaternion(S),A=(o-C)/(_-C);quaternionToEuler(i,slerp(W,V,A))}else for(r=0;r<s;r+=1)l.h!==1&&(o>=_?f=1:o<C?f=0:(l.o.x.constructor===Array?(c.__fnct||(c.__fnct=[]),c.__fnct[r]?b=c.__fnct[r]:(D=l.o.x[r]===void 0?l.o.x[0]:l.o.x[r],N=l.o.y[r]===void 0?l.o.y[0]:l.o.y[r],F=l.i.x[r]===void 0?l.i.x[0]:l.i.x[r],R=l.i.y[r]===void 0?l.i.y[0]:l.i.y[r],b=BezierFactory.getBezierEasing(D,N,F,R).get,c.__fnct[r]=b)):c.__fnct?b=c.__fnct:(D=l.o.x,N=l.o.y,F=l.i.x,R=l.i.y,b=BezierFactory.getBezierEasing(D,N,F,R).get,l.keyframeMetadata=b),f=b((o-C)/(_-C)))),S=d.s||l.e,M=l.h===1?l.s[r]:l.s[r]+(S[r]-l.s[r])*f,this.propType==="multidimensional"?i[r]=M:i=M}return e.lastIndex=n,i}function slerp(o,e,t){var i=[],n=o[0],r=o[1],s=o[2],a=o[3],l=e[0],d=e[1],c=e[2],u=e[3],g,f,p,m,b;return f=n*l+r*d+s*c+a*u,f<0&&(f=-f,l=-l,d=-d,c=-c,u=-u),1-f>1e-6?(g=Math.acos(f),p=Math.sin(g),m=Math.sin((1-t)*g)/p,b=Math.sin(t*g)/p):(m=1-t,b=t),i[0]=m*n+b*l,i[1]=m*r+b*d,i[2]=m*s+b*c,i[3]=m*a+b*u,i}function quaternionToEuler(o,e){var t=e[0],i=e[1],n=e[2],r=e[3],s=Math.atan2(2*i*r-2*t*n,1-2*i*i-2*n*n),a=Math.asin(2*t*i+2*n*r),l=Math.atan2(2*t*r-2*i*n,1-2*t*t-2*n*n);o[0]=s/degToRads,o[1]=a/degToRads,o[2]=l/degToRads}function createQuaternion(o){var e=o[0]*degToRads,t=o[1]*degToRads,i=o[2]*degToRads,n=Math.cos(e/2),r=Math.cos(t/2),s=Math.cos(i/2),a=Math.sin(e/2),l=Math.sin(t/2),d=Math.sin(i/2),c=n*r*s-a*l*d,u=a*l*s+n*r*d,g=a*r*s+n*l*d,f=n*l*s-a*r*d;return[u,g,f,c]}function getValueAtCurrentTime(){var o=this.comp.renderedFrame-this.offsetTime,e=this.keyframes[0].t-this.offsetTime,t=this.keyframes[this.keyframes.length-1].t-this.offsetTime;if(!(o===this._caching.lastFrame||this._caching.lastFrame!==initFrame&&(this._caching.lastFrame>=t&&o>=t||this._caching.lastFrame<e&&o<e))){this._caching.lastFrame>=o&&(this._caching._lastKeyframeIndex=-1,this._caching.lastIndex=0);var i=this.interpolateValue(o,this._caching);this.pv=i}return this._caching.lastFrame=o,this.pv}function setVValue(o){var e;if(this.propType==="unidimensional")e=o*this.mult,mathAbs(this.v-e)>1e-5&&(this.v=e,this._mdf=!0);else for(var t=0,i=this.v.length;t<i;)e=o[t]*this.mult,mathAbs(this.v[t]-e)>1e-5&&(this.v[t]=e,this._mdf=!0),t+=1}function processEffectsSequence(){if(!(this.elem.globalData.frameId===this.frameId||!this.effectsSequence.length)){if(this.lock){this.setVValue(this.pv);return}this.lock=!0,this._mdf=this._isFirstFrame;var o,e=this.effectsSequence.length,t=this.kf?this.pv:this.data.k;for(o=0;o<e;o+=1)t=this.effectsSequence[o](t);this.setVValue(t),this._isFirstFrame=!1,this.lock=!1,this.frameId=this.elem.globalData.frameId}}function addEffect(o){this.effectsSequence.push(o),this.container.addDynamicProperty(this)}function ValueProperty(o,e,t,i){this.propType="unidimensional",this.mult=t||1,this.data=e,this.v=t?e.k*t:e.k,this.pv=e.k,this._mdf=!1,this.elem=o,this.container=i,this.comp=o.comp,this.k=!1,this.kf=!1,this.vel=0,this.effectsSequence=[],this._isFirstFrame=!0,this.getValue=processEffectsSequence,this.setVValue=setVValue,this.addEffect=addEffect}function MultiDimensionalProperty(o,e,t,i){this.propType="multidimensional",this.mult=t||1,this.data=e,this._mdf=!1,this.elem=o,this.container=i,this.comp=o.comp,this.k=!1,this.kf=!1,this.frameId=-1;var n,r=e.k.length;for(this.v=createTypedArray("float32",r),this.pv=createTypedArray("float32",r),this.vel=createTypedArray("float32",r),n=0;n<r;n+=1)this.v[n]=e.k[n]*this.mult,this.pv[n]=e.k[n];this._isFirstFrame=!0,this.effectsSequence=[],this.getValue=processEffectsSequence,this.setVValue=setVValue,this.addEffect=addEffect}function KeyframedValueProperty(o,e,t,i){this.propType="unidimensional",this.keyframes=e.k,this.keyframesMetadata=[],this.offsetTime=o.data.st,this.frameId=-1,this._caching={lastFrame:initFrame,lastIndex:0,value:0,_lastKeyframeIndex:-1},this.k=!0,this.kf=!0,this.data=e,this.mult=t||1,this.elem=o,this.container=i,this.comp=o.comp,this.v=initFrame,this.pv=initFrame,this._isFirstFrame=!0,this.getValue=processEffectsSequence,this.setVValue=setVValue,this.interpolateValue=interpolateValue,this.effectsSequence=[getValueAtCurrentTime.bind(this)],this.addEffect=addEffect}function KeyframedMultidimensionalProperty(o,e,t,i){this.propType="multidimensional";var n,r=e.k.length,s,a,l,d;for(n=0;n<r-1;n+=1)e.k[n].to&&e.k[n].s&&e.k[n+1]&&e.k[n+1].s&&(s=e.k[n].s,a=e.k[n+1].s,l=e.k[n].to,d=e.k[n].ti,(s.length===2&&!(s[0]===a[0]&&s[1]===a[1])&&bez.pointOnLine2D(s[0],s[1],a[0],a[1],s[0]+l[0],s[1]+l[1])&&bez.pointOnLine2D(s[0],s[1],a[0],a[1],a[0]+d[0],a[1]+d[1])||s.length===3&&!(s[0]===a[0]&&s[1]===a[1]&&s[2]===a[2])&&bez.pointOnLine3D(s[0],s[1],s[2],a[0],a[1],a[2],s[0]+l[0],s[1]+l[1],s[2]+l[2])&&bez.pointOnLine3D(s[0],s[1],s[2],a[0],a[1],a[2],a[0]+d[0],a[1]+d[1],a[2]+d[2]))&&(e.k[n].to=null,e.k[n].ti=null),s[0]===a[0]&&s[1]===a[1]&&l[0]===0&&l[1]===0&&d[0]===0&&d[1]===0&&(s.length===2||s[2]===a[2]&&l[2]===0&&d[2]===0)&&(e.k[n].to=null,e.k[n].ti=null));this.effectsSequence=[getValueAtCurrentTime.bind(this)],this.data=e,this.keyframes=e.k,this.keyframesMetadata=[],this.offsetTime=o.data.st,this.k=!0,this.kf=!0,this._isFirstFrame=!0,this.mult=t||1,this.elem=o,this.container=i,this.comp=o.comp,this.getValue=processEffectsSequence,this.setVValue=setVValue,this.interpolateValue=interpolateValue,this.frameId=-1;var c=e.k[0].s.length;for(this.v=createTypedArray("float32",c),this.pv=createTypedArray("float32",c),n=0;n<c;n+=1)this.v[n]=initFrame,this.pv[n]=initFrame;this._caching={lastFrame:initFrame,lastIndex:0,value:createTypedArray("float32",c)},this.addEffect=addEffect}var PropertyFactory=function(){function o(t,i,n,r,s){i.sid&&(i=t.globalData.slotManager.getProp(i));var a;if(!i.k.length)a=new ValueProperty(t,i,r,s);else if(typeof i.k[0]=="number")a=new MultiDimensionalProperty(t,i,r,s);else switch(n){case 0:a=new KeyframedValueProperty(t,i,r,s);break;case 1:a=new KeyframedMultidimensionalProperty(t,i,r,s);break}return a.effectsSequence.length&&s.addDynamicProperty(a),a}var e={getProp:o};return e}();function DynamicPropertyContainer(){}DynamicPropertyContainer.prototype={addDynamicProperty:function(e){this.dynamicProperties.indexOf(e)===-1&&(this.dynamicProperties.push(e),this.container.addDynamicProperty(this),this._isAnimated=!0)},iterateDynamicProperties:function(){this._mdf=!1;var e,t=this.dynamicProperties.length;for(e=0;e<t;e+=1)this.dynamicProperties[e].getValue(),this.dynamicProperties[e]._mdf&&(this._mdf=!0)},initDynamicPropertyContainer:function(e){this.container=e,this.dynamicProperties=[],this._mdf=!1,this._isAnimated=!1}};var pointPool=function(){function o(){return createTypedArray("float32",2)}return poolFactory(8,o)}();function ShapePath(){this.c=!1,this._length=0,this._maxLength=8,this.v=createSizedArray(this._maxLength),this.o=createSizedArray(this._maxLength),this.i=createSizedArray(this._maxLength)}ShapePath.prototype.setPathData=function(o,e){this.c=o,this.setLength(e);for(var t=0;t<e;)this.v[t]=pointPool.newElement(),this.o[t]=pointPool.newElement(),this.i[t]=pointPool.newElement(),t+=1},ShapePath.prototype.setLength=function(o){for(;this._maxLength<o;)this.doubleArrayLength();this._length=o},ShapePath.prototype.doubleArrayLength=function(){this.v=this.v.concat(createSizedArray(this._maxLength)),this.i=this.i.concat(createSizedArray(this._maxLength)),this.o=this.o.concat(createSizedArray(this._maxLength)),this._maxLength*=2},ShapePath.prototype.setXYAt=function(o,e,t,i,n){var r;switch(this._length=Math.max(this._length,i+1),this._length>=this._maxLength&&this.doubleArrayLength(),t){case"v":r=this.v;break;case"i":r=this.i;break;case"o":r=this.o;break;default:r=[];break}(!r[i]||r[i]&&!n)&&(r[i]=pointPool.newElement()),r[i][0]=o,r[i][1]=e},ShapePath.prototype.setTripleAt=function(o,e,t,i,n,r,s,a){this.setXYAt(o,e,"v",s,a),this.setXYAt(t,i,"o",s,a),this.setXYAt(n,r,"i",s,a)},ShapePath.prototype.reverse=function(){var o=new ShapePath;o.setPathData(this.c,this._length);var e=this.v,t=this.o,i=this.i,n=0;this.c&&(o.setTripleAt(e[0][0],e[0][1],i[0][0],i[0][1],t[0][0],t[0][1],0,!1),n=1);var r=this._length-1,s=this._length,a;for(a=n;a<s;a+=1)o.setTripleAt(e[r][0],e[r][1],i[r][0],i[r][1],t[r][0],t[r][1],a,!1),r-=1;return o},ShapePath.prototype.length=function(){return this._length};var shapePool=function(){function o(){return new ShapePath}function e(n){var r=n._length,s;for(s=0;s<r;s+=1)pointPool.release(n.v[s]),pointPool.release(n.i[s]),pointPool.release(n.o[s]),n.v[s]=null,n.i[s]=null,n.o[s]=null;n._length=0,n.c=!1}function t(n){var r=i.newElement(),s,a=n._length===void 0?n.v.length:n._length;for(r.setLength(a),r.c=n.c,s=0;s<a;s+=1)r.setTripleAt(n.v[s][0],n.v[s][1],n.o[s][0],n.o[s][1],n.i[s][0],n.i[s][1],s);return r}var i=poolFactory(4,o,e);return i.clone=t,i}();function ShapeCollection(){this._length=0,this._maxLength=4,this.shapes=createSizedArray(this._maxLength)}ShapeCollection.prototype.addShape=function(o){this._length===this._maxLength&&(this.shapes=this.shapes.concat(createSizedArray(this._maxLength)),this._maxLength*=2),this.shapes[this._length]=o,this._length+=1},ShapeCollection.prototype.releaseShapes=function(){var o;for(o=0;o<this._length;o+=1)shapePool.release(this.shapes[o]);this._length=0};var shapeCollectionPool=function(){var o={newShapeCollection:n,release:r},e=0,t=4,i=createSizedArray(t);function n(){var s;return e?(e-=1,s=i[e]):s=new ShapeCollection,s}function r(s){var a,l=s._length;for(a=0;a<l;a+=1)shapePool.release(s.shapes[a]);s._length=0,e===t&&(i=pooling.double(i),t*=2),i[e]=s,e+=1}return o}(),ShapePropertyFactory=function(){var o=-999999;function e(_,C,S){var y=S.lastIndex,E,x,L,I,D,N,F,R,M,W=this.keyframes;if(_<W[0].t-this.offsetTime)E=W[0].s[0],L=!0,y=0;else if(_>=W[W.length-1].t-this.offsetTime)E=W[W.length-1].s?W[W.length-1].s[0]:W[W.length-2].e[0],L=!0;else{for(var V=y,A=W.length-1,P=!0,k,T,U;P&&(k=W[V],T=W[V+1],!(T.t-this.offsetTime>_));)V<A-1?V+=1:P=!1;if(U=this.keyframesMetadata[V]||{},L=k.h===1,y=V,!L){if(_>=T.t-this.offsetTime)R=1;else if(_<k.t-this.offsetTime)R=0;else{var z;U.__fnct?z=U.__fnct:(z=BezierFactory.getBezierEasing(k.o.x,k.o.y,k.i.x,k.i.y).get,U.__fnct=z),R=z((_-(k.t-this.offsetTime))/(T.t-this.offsetTime-(k.t-this.offsetTime)))}x=T.s?T.s[0]:k.e[0]}E=k.s[0]}for(N=C._length,F=E.i[0].length,S.lastIndex=y,I=0;I<N;I+=1)for(D=0;D<F;D+=1)M=L?E.i[I][D]:E.i[I][D]+(x.i[I][D]-E.i[I][D])*R,C.i[I][D]=M,M=L?E.o[I][D]:E.o[I][D]+(x.o[I][D]-E.o[I][D])*R,C.o[I][D]=M,M=L?E.v[I][D]:E.v[I][D]+(x.v[I][D]-E.v[I][D])*R,C.v[I][D]=M}function t(){var _=this.comp.renderedFrame-this.offsetTime,C=this.keyframes[0].t-this.offsetTime,S=this.keyframes[this.keyframes.length-1].t-this.offsetTime,y=this._caching.lastFrame;return y!==o&&(y<C&&_<C||y>S&&_>S)||(this._caching.lastIndex=y<_?this._caching.lastIndex:0,this.interpolateShape(_,this.pv,this._caching)),this._caching.lastFrame=_,this.pv}function i(){this.paths=this.localShapeCollection}function n(_,C){if(_._length!==C._length||_.c!==C.c)return!1;var S,y=_._length;for(S=0;S<y;S+=1)if(_.v[S][0]!==C.v[S][0]||_.v[S][1]!==C.v[S][1]||_.o[S][0]!==C.o[S][0]||_.o[S][1]!==C.o[S][1]||_.i[S][0]!==C.i[S][0]||_.i[S][1]!==C.i[S][1])return!1;return!0}function r(_){n(this.v,_)||(this.v=shapePool.clone(_),this.localShapeCollection.releaseShapes(),this.localShapeCollection.addShape(this.v),this._mdf=!0,this.paths=this.localShapeCollection)}function s(){if(this.elem.globalData.frameId!==this.frameId){if(!this.effectsSequence.length){this._mdf=!1;return}if(this.lock){this.setVValue(this.pv);return}this.lock=!0,this._mdf=!1;var _;this.kf?_=this.pv:this.data.ks?_=this.data.ks.k:_=this.data.pt.k;var C,S=this.effectsSequence.length;for(C=0;C<S;C+=1)_=this.effectsSequence[C](_);this.setVValue(_),this.lock=!1,this.frameId=this.elem.globalData.frameId}}function a(_,C,S){this.propType="shape",this.comp=_.comp,this.container=_,this.elem=_,this.data=C,this.k=!1,this.kf=!1,this._mdf=!1;var y=S===3?C.pt.k:C.ks.k;this.v=shapePool.clone(y),this.pv=shapePool.clone(this.v),this.localShapeCollection=shapeCollectionPool.newShapeCollection(),this.paths=this.localShapeCollection,this.paths.addShape(this.v),this.reset=i,this.effectsSequence=[]}function l(_){this.effectsSequence.push(_),this.container.addDynamicProperty(this)}a.prototype.interpolateShape=e,a.prototype.getValue=s,a.prototype.setVValue=r,a.prototype.addEffect=l;function d(_,C,S){this.propType="shape",this.comp=_.comp,this.elem=_,this.container=_,this.offsetTime=_.data.st,this.keyframes=S===3?C.pt.k:C.ks.k,this.keyframesMetadata=[],this.k=!0,this.kf=!0;var y=this.keyframes[0].s[0].i.length;this.v=shapePool.newElement(),this.v.setPathData(this.keyframes[0].s[0].c,y),this.pv=shapePool.clone(this.v),this.localShapeCollection=shapeCollectionPool.newShapeCollection(),this.paths=this.localShapeCollection,this.paths.addShape(this.v),this.lastFrame=o,this.reset=i,this._caching={lastFrame:o,lastIndex:0},this.effectsSequence=[t.bind(this)]}d.prototype.getValue=s,d.prototype.interpolateShape=e,d.prototype.setVValue=r,d.prototype.addEffect=l;var c=function(){var _=roundCorner;function C(S,y){this.v=shapePool.newElement(),this.v.setPathData(!0,4),this.localShapeCollection=shapeCollectionPool.newShapeCollection(),this.paths=this.localShapeCollection,this.localShapeCollection.addShape(this.v),this.d=y.d,this.elem=S,this.comp=S.comp,this.frameId=-1,this.initDynamicPropertyContainer(S),this.p=PropertyFactory.getProp(S,y.p,1,0,this),this.s=PropertyFactory.getProp(S,y.s,1,0,this),this.dynamicProperties.length?this.k=!0:(this.k=!1,this.convertEllToPath())}return C.prototype={reset:i,getValue:function(){this.elem.globalData.frameId!==this.frameId&&(this.frameId=this.elem.globalData.frameId,this.iterateDynamicProperties(),this._mdf&&this.convertEllToPath())},convertEllToPath:function(){var y=this.p.v[0],E=this.p.v[1],x=this.s.v[0]/2,L=this.s.v[1]/2,I=this.d!==3,D=this.v;D.v[0][0]=y,D.v[0][1]=E-L,D.v[1][0]=I?y+x:y-x,D.v[1][1]=E,D.v[2][0]=y,D.v[2][1]=E+L,D.v[3][0]=I?y-x:y+x,D.v[3][1]=E,D.i[0][0]=I?y-x*_:y+x*_,D.i[0][1]=E-L,D.i[1][0]=I?y+x:y-x,D.i[1][1]=E-L*_,D.i[2][0]=I?y+x*_:y-x*_,D.i[2][1]=E+L,D.i[3][0]=I?y-x:y+x,D.i[3][1]=E+L*_,D.o[0][0]=I?y+x*_:y-x*_,D.o[0][1]=E-L,D.o[1][0]=I?y+x:y-x,D.o[1][1]=E+L*_,D.o[2][0]=I?y-x*_:y+x*_,D.o[2][1]=E+L,D.o[3][0]=I?y-x:y+x,D.o[3][1]=E-L*_}},extendPrototype([DynamicPropertyContainer],C),C}(),u=function(){function _(C,S){this.v=shapePool.newElement(),this.v.setPathData(!0,0),this.elem=C,this.comp=C.comp,this.data=S,this.frameId=-1,this.d=S.d,this.initDynamicPropertyContainer(C),S.sy===1?(this.ir=PropertyFactory.getProp(C,S.ir,0,0,this),this.is=PropertyFactory.getProp(C,S.is,0,.01,this),this.convertToPath=this.convertStarToPath):this.convertToPath=this.convertPolygonToPath,this.pt=PropertyFactory.getProp(C,S.pt,0,0,this),this.p=PropertyFactory.getProp(C,S.p,1,0,this),this.r=PropertyFactory.getProp(C,S.r,0,degToRads,this),this.or=PropertyFactory.getProp(C,S.or,0,0,this),this.os=PropertyFactory.getProp(C,S.os,0,.01,this),this.localShapeCollection=shapeCollectionPool.newShapeCollection(),this.localShapeCollection.addShape(this.v),this.paths=this.localShapeCollection,this.dynamicProperties.length?this.k=!0:(this.k=!1,this.convertToPath())}return _.prototype={reset:i,getValue:function(){this.elem.globalData.frameId!==this.frameId&&(this.frameId=this.elem.globalData.frameId,this.iterateDynamicProperties(),this._mdf&&this.convertToPath())},convertStarToPath:function(){var S=Math.floor(this.pt.v)*2,y=Math.PI*2/S,E=!0,x=this.or.v,L=this.ir.v,I=this.os.v,D=this.is.v,N=2*Math.PI*x/(S*2),F=2*Math.PI*L/(S*2),R,M,W,V,A=-Math.PI/2;A+=this.r.v;var P=this.data.d===3?-1:1;for(this.v._length=0,R=0;R<S;R+=1){M=E?x:L,W=E?I:D,V=E?N:F;var k=M*Math.cos(A),T=M*Math.sin(A),U=k===0&&T===0?0:T/Math.sqrt(k*k+T*T),z=k===0&&T===0?0:-k/Math.sqrt(k*k+T*T);k+=+this.p.v[0],T+=+this.p.v[1],this.v.setTripleAt(k,T,k-U*V*W*P,T-z*V*W*P,k+U*V*W*P,T+z*V*W*P,R,!0),E=!E,A+=y*P}},convertPolygonToPath:function(){var S=Math.floor(this.pt.v),y=Math.PI*2/S,E=this.or.v,x=this.os.v,L=2*Math.PI*E/(S*4),I,D=-Math.PI*.5,N=this.data.d===3?-1:1;for(D+=this.r.v,this.v._length=0,I=0;I<S;I+=1){var F=E*Math.cos(D),R=E*Math.sin(D),M=F===0&&R===0?0:R/Math.sqrt(F*F+R*R),W=F===0&&R===0?0:-F/Math.sqrt(F*F+R*R);F+=+this.p.v[0],R+=+this.p.v[1],this.v.setTripleAt(F,R,F-M*L*x*N,R-W*L*x*N,F+M*L*x*N,R+W*L*x*N,I,!0),D+=y*N}this.paths.length=0,this.paths[0]=this.v}},extendPrototype([DynamicPropertyContainer],_),_}(),g=function(){function _(C,S){this.v=shapePool.newElement(),this.v.c=!0,this.localShapeCollection=shapeCollectionPool.newShapeCollection(),this.localShapeCollection.addShape(this.v),this.paths=this.localShapeCollection,this.elem=C,this.comp=C.comp,this.frameId=-1,this.d=S.d,this.initDynamicPropertyContainer(C),this.p=PropertyFactory.getProp(C,S.p,1,0,this),this.s=PropertyFactory.getProp(C,S.s,1,0,this),this.r=PropertyFactory.getProp(C,S.r,0,0,this),this.dynamicProperties.length?this.k=!0:(this.k=!1,this.convertRectToPath())}return _.prototype={convertRectToPath:function(){var S=this.p.v[0],y=this.p.v[1],E=this.s.v[0]/2,x=this.s.v[1]/2,L=bmMin(E,x,this.r.v),I=L*(1-roundCorner);this.v._length=0,this.d===2||this.d===1?(this.v.setTripleAt(S+E,y-x+L,S+E,y-x+L,S+E,y-x+I,0,!0),this.v.setTripleAt(S+E,y+x-L,S+E,y+x-I,S+E,y+x-L,1,!0),L!==0?(this.v.setTripleAt(S+E-L,y+x,S+E-L,y+x,S+E-I,y+x,2,!0),this.v.setTripleAt(S-E+L,y+x,S-E+I,y+x,S-E+L,y+x,3,!0),this.v.setTripleAt(S-E,y+x-L,S-E,y+x-L,S-E,y+x-I,4,!0),this.v.setTripleAt(S-E,y-x+L,S-E,y-x+I,S-E,y-x+L,5,!0),this.v.setTripleAt(S-E+L,y-x,S-E+L,y-x,S-E+I,y-x,6,!0),this.v.setTripleAt(S+E-L,y-x,S+E-I,y-x,S+E-L,y-x,7,!0)):(this.v.setTripleAt(S-E,y+x,S-E+I,y+x,S-E,y+x,2),this.v.setTripleAt(S-E,y-x,S-E,y-x+I,S-E,y-x,3))):(this.v.setTripleAt(S+E,y-x+L,S+E,y-x+I,S+E,y-x+L,0,!0),L!==0?(this.v.setTripleAt(S+E-L,y-x,S+E-L,y-x,S+E-I,y-x,1,!0),this.v.setTripleAt(S-E+L,y-x,S-E+I,y-x,S-E+L,y-x,2,!0),this.v.setTripleAt(S-E,y-x+L,S-E,y-x+L,S-E,y-x+I,3,!0),this.v.setTripleAt(S-E,y+x-L,S-E,y+x-I,S-E,y+x-L,4,!0),this.v.setTripleAt(S-E+L,y+x,S-E+L,y+x,S-E+I,y+x,5,!0),this.v.setTripleAt(S+E-L,y+x,S+E-I,y+x,S+E-L,y+x,6,!0),this.v.setTripleAt(S+E,y+x-L,S+E,y+x-L,S+E,y+x-I,7,!0)):(this.v.setTripleAt(S-E,y-x,S-E+I,y-x,S-E,y-x,1,!0),this.v.setTripleAt(S-E,y+x,S-E,y+x-I,S-E,y+x,2,!0),this.v.setTripleAt(S+E,y+x,S+E-I,y+x,S+E,y+x,3,!0)))},getValue:function(){this.elem.globalData.frameId!==this.frameId&&(this.frameId=this.elem.globalData.frameId,this.iterateDynamicProperties(),this._mdf&&this.convertRectToPath())},reset:i},extendPrototype([DynamicPropertyContainer],_),_}();function f(_,C,S){var y;if(S===3||S===4){var E=S===3?C.pt:C.ks,x=E.k;x.length?y=new d(_,C,S):y=new a(_,C,S)}else S===5?y=new g(_,C):S===6?y=new c(_,C):S===7&&(y=new u(_,C));return y.k&&_.addDynamicProperty(y),y}function p(){return a}function m(){return d}var b={};return b.getShapeProp=f,b.getConstructorFunction=p,b.getKeyframedConstructorFunction=m,b}();/*!
- Transformation Matrix v2.0
- (c) Epistemex 2014-2015
- www.epistemex.com
- By Ken Fyrstenberg
- Contributions by leeoniya.
- License: MIT, header required.
- */var Matrix=function(){var o=Math.cos,e=Math.sin,t=Math.tan,i=Math.round;function n(){return this.props[0]=1,this.props[1]=0,this.props[2]=0,this.props[3]=0,this.props[4]=0,this.props[5]=1,this.props[6]=0,this.props[7]=0,this.props[8]=0,this.props[9]=0,this.props[10]=1,this.props[11]=0,this.props[12]=0,this.props[13]=0,this.props[14]=0,this.props[15]=1,this}function r(k){if(k===0)return this;var T=o(k),U=e(k);return this._t(T,-U,0,0,U,T,0,0,0,0,1,0,0,0,0,1)}function s(k){if(k===0)return this;var T=o(k),U=e(k);return this._t(1,0,0,0,0,T,-U,0,0,U,T,0,0,0,0,1)}function a(k){if(k===0)return this;var T=o(k),U=e(k);return this._t(T,0,U,0,0,1,0,0,-U,0,T,0,0,0,0,1)}function l(k){if(k===0)return this;var T=o(k),U=e(k);return this._t(T,-U,0,0,U,T,0,0,0,0,1,0,0,0,0,1)}function d(k,T){return this._t(1,T,k,1,0,0)}function c(k,T){return this.shear(t(k),t(T))}function u(k,T){var U=o(T),z=e(T);return this._t(U,z,0,0,-z,U,0,0,0,0,1,0,0,0,0,1)._t(1,0,0,0,t(k),1,0,0,0,0,1,0,0,0,0,1)._t(U,-z,0,0,z,U,0,0,0,0,1,0,0,0,0,1)}function g(k,T,U){return!U&&U!==0&&(U=1),k===1&&T===1&&U===1?this:this._t(k,0,0,0,0,T,0,0,0,0,U,0,0,0,0,1)}function f(k,T,U,z,J,X,ae,ve,me,fe,xe,Ie,De,he,Me,we){return this.props[0]=k,this.props[1]=T,this.props[2]=U,this.props[3]=z,this.props[4]=J,this.props[5]=X,this.props[6]=ae,this.props[7]=ve,this.props[8]=me,this.props[9]=fe,this.props[10]=xe,this.props[11]=Ie,this.props[12]=De,this.props[13]=he,this.props[14]=Me,this.props[15]=we,this}function p(k,T,U){return U=U||0,k!==0||T!==0||U!==0?this._t(1,0,0,0,0,1,0,0,0,0,1,0,k,T,U,1):this}function m(k,T,U,z,J,X,ae,ve,me,fe,xe,Ie,De,he,Me,we){var ue=this.props;if(k===1&&T===0&&U===0&&z===0&&J===0&&X===1&&ae===0&&ve===0&&me===0&&fe===0&&xe===1&&Ie===0)return ue[12]=ue[12]*k+ue[15]*De,ue[13]=ue[13]*X+ue[15]*he,ue[14]=ue[14]*xe+ue[15]*Me,ue[15]*=we,this._identityCalculated=!1,this;var ke=ue[0],Re=ue[1],Pe=ue[2],$e=ue[3],He=ue[4],ie=ue[5],q=ue[6],Z=ue[7],O=ue[8],B=ue[9],j=ue[10],H=ue[11],ne=ue[12],re=ue[13],K=ue[14],G=ue[15];return ue[0]=ke*k+Re*J+Pe*me+$e*De,ue[1]=ke*T+Re*X+Pe*fe+$e*he,ue[2]=ke*U+Re*ae+Pe*xe+$e*Me,ue[3]=ke*z+Re*ve+Pe*Ie+$e*we,ue[4]=He*k+ie*J+q*me+Z*De,ue[5]=He*T+ie*X+q*fe+Z*he,ue[6]=He*U+ie*ae+q*xe+Z*Me,ue[7]=He*z+ie*ve+q*Ie+Z*we,ue[8]=O*k+B*J+j*me+H*De,ue[9]=O*T+B*X+j*fe+H*he,ue[10]=O*U+B*ae+j*xe+H*Me,ue[11]=O*z+B*ve+j*Ie+H*we,ue[12]=ne*k+re*J+K*me+G*De,ue[13]=ne*T+re*X+K*fe+G*he,ue[14]=ne*U+re*ae+K*xe+G*Me,ue[15]=ne*z+re*ve+K*Ie+G*we,this._identityCalculated=!1,this}function b(k){var T=k.props;return this.transform(T[0],T[1],T[2],T[3],T[4],T[5],T[6],T[7],T[8],T[9],T[10],T[11],T[12],T[13],T[14],T[15])}function _(){return this._identityCalculated||(this._identity=!(this.props[0]!==1||this.props[1]!==0||this.props[2]!==0||this.props[3]!==0||this.props[4]!==0||this.props[5]!==1||this.props[6]!==0||this.props[7]!==0||this.props[8]!==0||this.props[9]!==0||this.props[10]!==1||this.props[11]!==0||this.props[12]!==0||this.props[13]!==0||this.props[14]!==0||this.props[15]!==1),this._identityCalculated=!0),this._identity}function C(k){for(var T=0;T<16;){if(k.props[T]!==this.props[T])return!1;T+=1}return!0}function S(k){var T;for(T=0;T<16;T+=1)k.props[T]=this.props[T];return k}function y(k){var T;for(T=0;T<16;T+=1)this.props[T]=k[T]}function E(k,T,U){return{x:k*this.props[0]+T*this.props[4]+U*this.props[8]+this.props[12],y:k*this.props[1]+T*this.props[5]+U*this.props[9]+this.props[13],z:k*this.props[2]+T*this.props[6]+U*this.props[10]+this.props[14]}}function x(k,T,U){return k*this.props[0]+T*this.props[4]+U*this.props[8]+this.props[12]}function L(k,T,U){return k*this.props[1]+T*this.props[5]+U*this.props[9]+this.props[13]}function I(k,T,U){return k*this.props[2]+T*this.props[6]+U*this.props[10]+this.props[14]}function D(){var k=this.props[0]*this.props[5]-this.props[1]*this.props[4],T=this.props[5]/k,U=-this.props[1]/k,z=-this.props[4]/k,J=this.props[0]/k,X=(this.props[4]*this.props[13]-this.props[5]*this.props[12])/k,ae=-(this.props[0]*this.props[13]-this.props[1]*this.props[12])/k,ve=new Matrix;return ve.props[0]=T,ve.props[1]=U,ve.props[4]=z,ve.props[5]=J,ve.props[12]=X,ve.props[13]=ae,ve}function N(k){var T=this.getInverseMatrix();return T.applyToPointArray(k[0],k[1],k[2]||0)}function F(k){var T,U=k.length,z=[];for(T=0;T<U;T+=1)z[T]=N(k[T]);return z}function R(k,T,U){var z=createTypedArray("float32",6);if(this.isIdentity())z[0]=k[0],z[1]=k[1],z[2]=T[0],z[3]=T[1],z[4]=U[0],z[5]=U[1];else{var J=this.props[0],X=this.props[1],ae=this.props[4],ve=this.props[5],me=this.props[12],fe=this.props[13];z[0]=k[0]*J+k[1]*ae+me,z[1]=k[0]*X+k[1]*ve+fe,z[2]=T[0]*J+T[1]*ae+me,z[3]=T[0]*X+T[1]*ve+fe,z[4]=U[0]*J+U[1]*ae+me,z[5]=U[0]*X+U[1]*ve+fe}return z}function M(k,T,U){var z;return this.isIdentity()?z=[k,T,U]:z=[k*this.props[0]+T*this.props[4]+U*this.props[8]+this.props[12],k*this.props[1]+T*this.props[5]+U*this.props[9]+this.props[13],k*this.props[2]+T*this.props[6]+U*this.props[10]+this.props[14]],z}function W(k,T){if(this.isIdentity())return k+","+T;var U=this.props;return Math.round((k*U[0]+T*U[4]+U[12])*100)/100+","+Math.round((k*U[1]+T*U[5]+U[13])*100)/100}function V(){for(var k=0,T=this.props,U="matrix3d(",z=1e4;k<16;)U+=i(T[k]*z)/z,U+=k===15?")":",",k+=1;return U}function A(k){var T=1e4;return k<1e-6&&k>0||k>-1e-6&&k<0?i(k*T)/T:k}function P(){var k=this.props,T=A(k[0]),U=A(k[1]),z=A(k[4]),J=A(k[5]),X=A(k[12]),ae=A(k[13]);return"matrix("+T+","+U+","+z+","+J+","+X+","+ae+")"}return function(){this.reset=n,this.rotate=r,this.rotateX=s,this.rotateY=a,this.rotateZ=l,this.skew=c,this.skewFromAxis=u,this.shear=d,this.scale=g,this.setTransform=f,this.translate=p,this.transform=m,this.multiply=b,this.applyToPoint=E,this.applyToX=x,this.applyToY=L,this.applyToZ=I,this.applyToPointArray=M,this.applyToTriplePoints=R,this.applyToPointStringified=W,this.toCSS=V,this.to2dCSS=P,this.clone=S,this.cloneFromProps=y,this.equals=C,this.inversePoints=F,this.inversePoint=N,this.getInverseMatrix=D,this._t=this.transform,this.isIdentity=_,this._identity=!0,this._identityCalculated=!1,this.props=createTypedArray("float32",16),this.reset()}}();function _typeof$3(o){"@babel/helpers - typeof";return _typeof$3=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof$3(o)}var lottie={};function setLocation(o){setLocationHref(o)}function searchAnimations(){animationManager.searchAnimations()}function setSubframeRendering(o){setSubframeEnabled(o)}function setPrefix(o){setIdPrefix(o)}function loadAnimation(o){return animationManager.loadAnimation(o)}function setQuality(o){if(typeof o=="string")switch(o){case"high":setDefaultCurveSegments(200);break;default:case"medium":setDefaultCurveSegments(50);break;case"low":setDefaultCurveSegments(10);break}else!isNaN(o)&&o>1&&setDefaultCurveSegments(o)}function inBrowser(){return typeof navigator<"u"}function installPlugin(o,e){o==="expressions"&&setExpressionsPlugin(e)}function getFactory(o){switch(o){case"propertyFactory":return PropertyFactory;case"shapePropertyFactory":return ShapePropertyFactory;case"matrix":return Matrix;default:return null}}lottie.play=animationManager.play,lottie.pause=animationManager.pause,lottie.setLocationHref=setLocation,lottie.togglePause=animationManager.togglePause,lottie.setSpeed=animationManager.setSpeed,lottie.setDirection=animationManager.setDirection,lottie.stop=animationManager.stop,lottie.searchAnimations=searchAnimations,lottie.registerAnimation=animationManager.registerAnimation,lottie.loadAnimation=loadAnimation,lottie.setSubframeRendering=setSubframeRendering,lottie.resize=animationManager.resize,lottie.goToAndStop=animationManager.goToAndStop,lottie.destroy=animationManager.destroy,lottie.setQuality=setQuality,lottie.inBrowser=inBrowser,lottie.installPlugin=installPlugin,lottie.freeze=animationManager.freeze,lottie.unfreeze=animationManager.unfreeze,lottie.setVolume=animationManager.setVolume,lottie.mute=animationManager.mute,lottie.unmute=animationManager.unmute,lottie.getRegisteredAnimations=animationManager.getRegisteredAnimations,lottie.useWebWorker=setWebWorker,lottie.setIDPrefix=setPrefix,lottie.__getFactory=getFactory,lottie.version="5.13.0";function checkReady(){document.readyState==="complete"&&(clearInterval(readyStateCheckInterval),searchAnimations())}function getQueryVariable(o){for(var e=queryString.split("&"),t=0;t<e.length;t+=1){var i=e[t].split("=");if(decodeURIComponent(i[0])==o)return decodeURIComponent(i[1])}return null}var queryString="";{var scripts=document.getElementsByTagName("script"),index=scripts.length-1,myScript=scripts[index]||{src:""};queryString=myScript.src?myScript.src.replace(/^[^\?]+\??/,""):"",getQueryVariable("renderer")}var readyStateCheckInterval=setInterval(checkReady,100);try{_typeof$3(exports)!=="object"&&(window.bodymovin=lottie)}catch(o){}var ShapeModifiers=function(){var o={},e={};o.registerModifier=t,o.getModifier=i;function t(n,r){e[n]||(e[n]=r)}function i(n,r,s){return new e[n](r,s)}return o}();function ShapeModifier(){}ShapeModifier.prototype.initModifierProperties=function(){},ShapeModifier.prototype.addShapeToModifier=function(){},ShapeModifier.prototype.addShape=function(o){if(!this.closed){o.sh.container.addDynamicProperty(o.sh);var e={shape:o.sh,data:o,localShapeCollection:shapeCollectionPool.newShapeCollection()};this.shapes.push(e),this.addShapeToModifier(e),this._isAnimated&&o.setAsAnimated()}},ShapeModifier.prototype.init=function(o,e){this.shapes=[],this.elem=o,this.initDynamicPropertyContainer(o),this.initModifierProperties(o,e),this.frameId=initialDefaultFrame,this.closed=!1,this.k=!1,this.dynamicProperties.length?this.k=!0:this.getValue(!0)},ShapeModifier.prototype.processKeys=function(){this.elem.globalData.frameId!==this.frameId&&(this.frameId=this.elem.globalData.frameId,this.iterateDynamicProperties())},extendPrototype([DynamicPropertyContainer],ShapeModifier);function TrimModifier(){}extendPrototype([ShapeModifier],TrimModifier),TrimModifier.prototype.initModifierProperties=function(o,e){this.s=PropertyFactory.getProp(o,e.s,0,.01,this),this.e=PropertyFactory.getProp(o,e.e,0,.01,this),this.o=PropertyFactory.getProp(o,e.o,0,0,this),this.sValue=0,this.eValue=0,this.getValue=this.processKeys,this.m=e.m,this._isAnimated=!!this.s.effectsSequence.length||!!this.e.effectsSequence.length||!!this.o.effectsSequence.length},TrimModifier.prototype.addShapeToModifier=function(o){o.pathsData=[]},TrimModifier.prototype.calculateShapeEdges=function(o,e,t,i,n){var r=[];e<=1?r.push({s:o,e}):o>=1?r.push({s:o-1,e:e-1}):(r.push({s:o,e:1}),r.push({s:0,e:e-1}));var s=[],a,l=r.length,d;for(a=0;a<l;a+=1)if(d=r[a],!(d.e*n<i||d.s*n>i+t)){var c,u;d.s*n<=i?c=0:c=(d.s*n-i)/t,d.e*n>=i+t?u=1:u=(d.e*n-i)/t,s.push([c,u])}return s.length||s.push([0,0]),s},TrimModifier.prototype.releasePathsData=function(o){var e,t=o.length;for(e=0;e<t;e+=1)segmentsLengthPool.release(o[e]);return o.length=0,o},TrimModifier.prototype.processShapes=function(o){var e,t;if(this._mdf||o){var i=this.o.v%360/360;if(i<0&&(i+=1),this.s.v>1?e=1+i:this.s.v<0?e=0+i:e=this.s.v+i,this.e.v>1?t=1+i:this.e.v<0?t=0+i:t=this.e.v+i,e>t){var n=e;e=t,t=n}e=Math.round(e*1e4)*1e-4,t=Math.round(t*1e4)*1e-4,this.sValue=e,this.eValue=t}else e=this.sValue,t=this.eValue;var r,s,a=this.shapes.length,l,d,c,u,g,f=0;if(t===e)for(s=0;s<a;s+=1)this.shapes[s].localShapeCollection.releaseShapes(),this.shapes[s].shape._mdf=!0,this.shapes[s].shape.paths=this.shapes[s].localShapeCollection,this._mdf&&(this.shapes[s].pathsData.length=0);else if(t===1&&e===0||t===0&&e===1){if(this._mdf)for(s=0;s<a;s+=1)this.shapes[s].pathsData.length=0,this.shapes[s].shape._mdf=!0}else{var p=[],m,b;for(s=0;s<a;s+=1)if(m=this.shapes[s],!m.shape._mdf&&!this._mdf&&!o&&this.m!==2)m.shape.paths=m.localShapeCollection;else{if(r=m.shape.paths,d=r._length,g=0,!m.shape._mdf&&m.pathsData.length)g=m.totalShapeLength;else{for(c=this.releasePathsData(m.pathsData),l=0;l<d;l+=1)u=bez.getSegmentsLength(r.shapes[l]),c.push(u),g+=u.totalLength;m.totalShapeLength=g,m.pathsData=c}f+=g,m.shape._mdf=!0}var _=e,C=t,S=0,y;for(s=a-1;s>=0;s-=1)if(m=this.shapes[s],m.shape._mdf){for(b=m.localShapeCollection,b.releaseShapes(),this.m===2&&a>1?(y=this.calculateShapeEdges(e,t,m.totalShapeLength,S,f),S+=m.totalShapeLength):y=[[_,C]],d=y.length,l=0;l<d;l+=1){_=y[l][0],C=y[l][1],p.length=0,C<=1?p.push({s:m.totalShapeLength*_,e:m.totalShapeLength*C}):_>=1?p.push({s:m.totalShapeLength*(_-1),e:m.totalShapeLength*(C-1)}):(p.push({s:m.totalShapeLength*_,e:m.totalShapeLength}),p.push({s:0,e:m.totalShapeLength*(C-1)}));var E=this.addShapes(m,p[0]);if(p[0].s!==p[0].e){if(p.length>1){var x=m.shape.paths.shapes[m.shape.paths._length-1];if(x.c){var L=E.pop();this.addPaths(E,b),E=this.addShapes(m,p[1],L)}else this.addPaths(E,b),E=this.addShapes(m,p[1])}this.addPaths(E,b)}}m.shape.paths=b}}},TrimModifier.prototype.addPaths=function(o,e){var t,i=o.length;for(t=0;t<i;t+=1)e.addShape(o[t])},TrimModifier.prototype.addSegment=function(o,e,t,i,n,r,s){n.setXYAt(e[0],e[1],"o",r),n.setXYAt(t[0],t[1],"i",r+1),s&&n.setXYAt(o[0],o[1],"v",r),n.setXYAt(i[0],i[1],"v",r+1)},TrimModifier.prototype.addSegmentFromArray=function(o,e,t,i){e.setXYAt(o[1],o[5],"o",t),e.setXYAt(o[2],o[6],"i",t+1),i&&e.setXYAt(o[0],o[4],"v",t),e.setXYAt(o[3],o[7],"v",t+1)},TrimModifier.prototype.addShapes=function(o,e,t){var i=o.pathsData,n=o.shape.paths.shapes,r,s=o.shape.paths._length,a,l,d=0,c,u,g,f,p=[],m,b=!0;for(t?(u=t._length,m=t._length):(t=shapePool.newElement(),u=0,m=0),p.push(t),r=0;r<s;r+=1){for(g=i[r].lengths,t.c=n[r].c,l=n[r].c?g.length:g.length+1,a=1;a<l;a+=1)if(c=g[a-1],d+c.addedLength<e.s)d+=c.addedLength,t.c=!1;else if(d>e.e){t.c=!1;break}else e.s<=d&&e.e>=d+c.addedLength?(this.addSegment(n[r].v[a-1],n[r].o[a-1],n[r].i[a],n[r].v[a],t,u,b),b=!1):(f=bez.getNewSegment(n[r].v[a-1],n[r].v[a],n[r].o[a-1],n[r].i[a],(e.s-d)/c.addedLength,(e.e-d)/c.addedLength,g[a-1]),this.addSegmentFromArray(f,t,u,b),b=!1,t.c=!1),d+=c.addedLength,u+=1;if(n[r].c&&g.length){if(c=g[a-1],d<=e.e){var _=g[a-1].addedLength;e.s<=d&&e.e>=d+_?(this.addSegment(n[r].v[a-1],n[r].o[a-1],n[r].i[0],n[r].v[0],t,u,b),b=!1):(f=bez.getNewSegment(n[r].v[a-1],n[r].v[0],n[r].o[a-1],n[r].i[0],(e.s-d)/_,(e.e-d)/_,g[a-1]),this.addSegmentFromArray(f,t,u,b),b=!1,t.c=!1)}else t.c=!1;d+=c.addedLength,u+=1}if(t._length&&(t.setXYAt(t.v[m][0],t.v[m][1],"i",m),t.setXYAt(t.v[t._length-1][0],t.v[t._length-1][1],"o",t._length-1)),d>e.e)break;r<s-1&&(t=shapePool.newElement(),b=!0,p.push(t),u=0)}return p};function PuckerAndBloatModifier(){}extendPrototype([ShapeModifier],PuckerAndBloatModifier),PuckerAndBloatModifier.prototype.initModifierProperties=function(o,e){this.getValue=this.processKeys,this.amount=PropertyFactory.getProp(o,e.a,0,null,this),this._isAnimated=!!this.amount.effectsSequence.length},PuckerAndBloatModifier.prototype.processPath=function(o,e){var t=e/100,i=[0,0],n=o._length,r=0;for(r=0;r<n;r+=1)i[0]+=o.v[r][0],i[1]+=o.v[r][1];i[0]/=n,i[1]/=n;var s=shapePool.newElement();s.c=o.c;var a,l,d,c,u,g;for(r=0;r<n;r+=1)a=o.v[r][0]+(i[0]-o.v[r][0])*t,l=o.v[r][1]+(i[1]-o.v[r][1])*t,d=o.o[r][0]+(i[0]-o.o[r][0])*-t,c=o.o[r][1]+(i[1]-o.o[r][1])*-t,u=o.i[r][0]+(i[0]-o.i[r][0])*-t,g=o.i[r][1]+(i[1]-o.i[r][1])*-t,s.setTripleAt(a,l,d,c,u,g,r);return s},PuckerAndBloatModifier.prototype.processShapes=function(o){var e,t,i=this.shapes.length,n,r,s=this.amount.v;if(s!==0){var a,l;for(t=0;t<i;t+=1){if(a=this.shapes[t],l=a.localShapeCollection,!(!a.shape._mdf&&!this._mdf&&!o))for(l.releaseShapes(),a.shape._mdf=!0,e=a.shape.paths.shapes,r=a.shape.paths._length,n=0;n<r;n+=1)l.addShape(this.processPath(e[n],s));a.shape.paths=a.localShapeCollection}}this.dynamicProperties.length||(this._mdf=!1)};var TransformPropertyFactory=function(){var o=[0,0];function e(l){var d=this._mdf;this.iterateDynamicProperties(),this._mdf=this._mdf||d,this.a&&l.translate(-this.a.v[0],-this.a.v[1],this.a.v[2]),this.s&&l.scale(this.s.v[0],this.s.v[1],this.s.v[2]),this.sk&&l.skewFromAxis(-this.sk.v,this.sa.v),this.r?l.rotate(-this.r.v):l.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]),this.data.p.s?this.data.p.z?l.translate(this.px.v,this.py.v,-this.pz.v):l.translate(this.px.v,this.py.v,0):l.translate(this.p.v[0],this.p.v[1],-this.p.v[2])}function t(l){if(this.elem.globalData.frameId!==this.frameId){if(this._isDirty&&(this.precalculateMatrix(),this._isDirty=!1),this.iterateDynamicProperties(),this._mdf||l){var d;if(this.v.cloneFromProps(this.pre.props),this.appliedTransformations<1&&this.v.translate(-this.a.v[0],-this.a.v[1],this.a.v[2]),this.appliedTransformations<2&&this.v.scale(this.s.v[0],this.s.v[1],this.s.v[2]),this.sk&&this.appliedTransformations<3&&this.v.skewFromAxis(-this.sk.v,this.sa.v),this.r&&this.appliedTransformations<4?this.v.rotate(-this.r.v):!this.r&&this.appliedTransformations<4&&this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]),this.autoOriented){var c,u;if(d=this.elem.globalData.frameRate,this.p&&this.p.keyframes&&this.p.getValueAtTime)this.p._caching.lastFrame+this.p.offsetTime<=this.p.keyframes[0].t?(c=this.p.getValueAtTime((this.p.keyframes[0].t+.01)/d,0),u=this.p.getValueAtTime(this.p.keyframes[0].t/d,0)):this.p._caching.lastFrame+this.p.offsetTime>=this.p.keyframes[this.p.keyframes.length-1].t?(c=this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length-1].t/d,0),u=this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length-1].t-.05)/d,0)):(c=this.p.pv,u=this.p.getValueAtTime((this.p._caching.lastFrame+this.p.offsetTime-.01)/d,this.p.offsetTime));else if(this.px&&this.px.keyframes&&this.py.keyframes&&this.px.getValueAtTime&&this.py.getValueAtTime){c=[],u=[];var g=this.px,f=this.py;g._caching.lastFrame+g.offsetTime<=g.keyframes[0].t?(c[0]=g.getValueAtTime((g.keyframes[0].t+.01)/d,0),c[1]=f.getValueAtTime((f.keyframes[0].t+.01)/d,0),u[0]=g.getValueAtTime(g.keyframes[0].t/d,0),u[1]=f.getValueAtTime(f.keyframes[0].t/d,0)):g._caching.lastFrame+g.offsetTime>=g.keyframes[g.keyframes.length-1].t?(c[0]=g.getValueAtTime(g.keyframes[g.keyframes.length-1].t/d,0),c[1]=f.getValueAtTime(f.keyframes[f.keyframes.length-1].t/d,0),u[0]=g.getValueAtTime((g.keyframes[g.keyframes.length-1].t-.01)/d,0),u[1]=f.getValueAtTime((f.keyframes[f.keyframes.length-1].t-.01)/d,0)):(c=[g.pv,f.pv],u[0]=g.getValueAtTime((g._caching.lastFrame+g.offsetTime-.01)/d,g.offsetTime),u[1]=f.getValueAtTime((f._caching.lastFrame+f.offsetTime-.01)/d,f.offsetTime))}else u=o,c=u;this.v.rotate(-Math.atan2(c[1]-u[1],c[0]-u[0]))}this.data.p&&this.data.p.s?this.data.p.z?this.v.translate(this.px.v,this.py.v,-this.pz.v):this.v.translate(this.px.v,this.py.v,0):this.v.translate(this.p.v[0],this.p.v[1],-this.p.v[2])}this.frameId=this.elem.globalData.frameId}}function i(){if(this.appliedTransformations=0,this.pre.reset(),!this.a.effectsSequence.length)this.pre.translate(-this.a.v[0],-this.a.v[1],this.a.v[2]),this.appliedTransformations=1;else return;if(!this.s.effectsSequence.length)this.pre.scale(this.s.v[0],this.s.v[1],this.s.v[2]),this.appliedTransformations=2;else return;if(this.sk)if(!this.sk.effectsSequence.length&&!this.sa.effectsSequence.length)this.pre.skewFromAxis(-this.sk.v,this.sa.v),this.appliedTransformations=3;else return;this.r?this.r.effectsSequence.length||(this.pre.rotate(-this.r.v),this.appliedTransformations=4):!this.rz.effectsSequence.length&&!this.ry.effectsSequence.length&&!this.rx.effectsSequence.length&&!this.or.effectsSequence.length&&(this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]),this.appliedTransformations=4)}function n(){}function r(l){this._addDynamicProperty(l),this.elem.addDynamicProperty(l),this._isDirty=!0}function s(l,d,c){if(this.elem=l,this.frameId=-1,this.propType="transform",this.data=d,this.v=new Matrix,this.pre=new Matrix,this.appliedTransformations=0,this.initDynamicPropertyContainer(c||l),d.p&&d.p.s?(this.px=PropertyFactory.getProp(l,d.p.x,0,0,this),this.py=PropertyFactory.getProp(l,d.p.y,0,0,this),d.p.z&&(this.pz=PropertyFactory.getProp(l,d.p.z,0,0,this))):this.p=PropertyFactory.getProp(l,d.p||{k:[0,0,0]},1,0,this),d.rx){if(this.rx=PropertyFactory.getProp(l,d.rx,0,degToRads,this),this.ry=PropertyFactory.getProp(l,d.ry,0,degToRads,this),this.rz=PropertyFactory.getProp(l,d.rz,0,degToRads,this),d.or.k[0].ti){var u,g=d.or.k.length;for(u=0;u<g;u+=1)d.or.k[u].to=null,d.or.k[u].ti=null}this.or=PropertyFactory.getProp(l,d.or,1,degToRads,this),this.or.sh=!0}else this.r=PropertyFactory.getProp(l,d.r||{k:0},0,degToRads,this);d.sk&&(this.sk=PropertyFactory.getProp(l,d.sk,0,degToRads,this),this.sa=PropertyFactory.getProp(l,d.sa,0,degToRads,this)),this.a=PropertyFactory.getProp(l,d.a||{k:[0,0,0]},1,0,this),this.s=PropertyFactory.getProp(l,d.s||{k:[100,100,100]},1,.01,this),d.o?this.o=PropertyFactory.getProp(l,d.o,0,.01,l):this.o={_mdf:!1,v:1},this._isDirty=!0,this.dynamicProperties.length||this.getValue(!0)}s.prototype={applyToMatrix:e,getValue:t,precalculateMatrix:i,autoOrient:n},extendPrototype([DynamicPropertyContainer],s),s.prototype.addDynamicProperty=r,s.prototype._addDynamicProperty=DynamicPropertyContainer.prototype.addDynamicProperty;function a(l,d,c){return new s(l,d,c)}return{getTransformProperty:a}}();function RepeaterModifier(){}extendPrototype([ShapeModifier],RepeaterModifier),RepeaterModifier.prototype.initModifierProperties=function(o,e){this.getValue=this.processKeys,this.c=PropertyFactory.getProp(o,e.c,0,null,this),this.o=PropertyFactory.getProp(o,e.o,0,null,this),this.tr=TransformPropertyFactory.getTransformProperty(o,e.tr,this),this.so=PropertyFactory.getProp(o,e.tr.so,0,.01,this),this.eo=PropertyFactory.getProp(o,e.tr.eo,0,.01,this),this.data=e,this.dynamicProperties.length||this.getValue(!0),this._isAnimated=!!this.dynamicProperties.length,this.pMatrix=new Matrix,this.rMatrix=new Matrix,this.sMatrix=new Matrix,this.tMatrix=new Matrix,this.matrix=new Matrix},RepeaterModifier.prototype.applyTransforms=function(o,e,t,i,n,r){var s=r?-1:1,a=i.s.v[0]+(1-i.s.v[0])*(1-n),l=i.s.v[1]+(1-i.s.v[1])*(1-n);o.translate(i.p.v[0]*s*n,i.p.v[1]*s*n,i.p.v[2]),e.translate(-i.a.v[0],-i.a.v[1],i.a.v[2]),e.rotate(-i.r.v*s*n),e.translate(i.a.v[0],i.a.v[1],i.a.v[2]),t.translate(-i.a.v[0],-i.a.v[1],i.a.v[2]),t.scale(r?1/a:a,r?1/l:l),t.translate(i.a.v[0],i.a.v[1],i.a.v[2])},RepeaterModifier.prototype.init=function(o,e,t,i){for(this.elem=o,this.arr=e,this.pos=t,this.elemsData=i,this._currentCopies=0,this._elements=[],this._groups=[],this.frameId=-1,this.initDynamicPropertyContainer(o),this.initModifierProperties(o,e[t]);t>0;)t-=1,this._elements.unshift(e[t]);this.dynamicProperties.length?this.k=!0:this.getValue(!0)},RepeaterModifier.prototype.resetElements=function(o){var e,t=o.length;for(e=0;e<t;e+=1)o[e]._processed=!1,o[e].ty==="gr"&&this.resetElements(o[e].it)},RepeaterModifier.prototype.cloneElements=function(o){var e=JSON.parse(JSON.stringify(o));return this.resetElements(e),e},RepeaterModifier.prototype.changeGroupRender=function(o,e){var t,i=o.length;for(t=0;t<i;t+=1)o[t]._render=e,o[t].ty==="gr"&&this.changeGroupRender(o[t].it,e)},RepeaterModifier.prototype.processShapes=function(o){var e,t,i,n,r,s=!1;if(this._mdf||o){var a=Math.ceil(this.c.v);if(this._groups.length<a){for(;this._groups.length<a;){var l={it:this.cloneElements(this._elements),ty:"gr"};l.it.push({a:{a:0,ix:1,k:[0,0]},nm:"Transform",o:{a:0,ix:7,k:100},p:{a:0,ix:2,k:[0,0]},r:{a:1,ix:6,k:[{s:0,e:0,t:0},{s:0,e:0,t:1}]},s:{a:0,ix:3,k:[100,100]},sa:{a:0,ix:5,k:0},sk:{a:0,ix:4,k:0},ty:"tr"}),this.arr.splice(0,0,l),this._groups.splice(0,0,l),this._currentCopies+=1}this.elem.reloadShapes(),s=!0}r=0;var d;for(i=0;i<=this._groups.length-1;i+=1){if(d=r<a,this._groups[i]._render=d,this.changeGroupRender(this._groups[i].it,d),!d){var c=this.elemsData[i].it,u=c[c.length-1];u.transform.op.v!==0?(u.transform.op._mdf=!0,u.transform.op.v=0):u.transform.op._mdf=!1}r+=1}this._currentCopies=a;var g=this.o.v,f=g%1,p=g>0?Math.floor(g):Math.ceil(g),m=this.pMatrix.props,b=this.rMatrix.props,_=this.sMatrix.props;this.pMatrix.reset(),this.rMatrix.reset(),this.sMatrix.reset(),this.tMatrix.reset(),this.matrix.reset();var C=0;if(g>0){for(;C<p;)this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!1),C+=1;f&&(this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,f,!1),C+=f)}else if(g<0){for(;C>p;)this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!0),C-=1;f&&(this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,-f,!0),C-=f)}i=this.data.m===1?0:this._currentCopies-1,n=this.data.m===1?1:-1,r=this._currentCopies;for(var S,y;r;){if(e=this.elemsData[i].it,t=e[e.length-1].transform.mProps.v.props,y=t.length,e[e.length-1].transform.mProps._mdf=!0,e[e.length-1].transform.op._mdf=!0,e[e.length-1].transform.op.v=this._currentCopies===1?this.so.v:this.so.v+(this.eo.v-this.so.v)*(i/(this._currentCopies-1)),C!==0){for((i!==0&&n===1||i!==this._currentCopies-1&&n===-1)&&this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!1),this.matrix.transform(b[0],b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8],b[9],b[10],b[11],b[12],b[13],b[14],b[15]),this.matrix.transform(_[0],_[1],_[2],_[3],_[4],_[5],_[6],_[7],_[8],_[9],_[10],_[11],_[12],_[13],_[14],_[15]),this.matrix.transform(m[0],m[1],m[2],m[3],m[4],m[5],m[6],m[7],m[8],m[9],m[10],m[11],m[12],m[13],m[14],m[15]),S=0;S<y;S+=1)t[S]=this.matrix.props[S];this.matrix.reset()}else for(this.matrix.reset(),S=0;S<y;S+=1)t[S]=this.matrix.props[S];C+=1,r-=1,i+=n}}else for(r=this._currentCopies,i=0,n=1;r;)e=this.elemsData[i].it,t=e[e.length-1].transform.mProps.v.props,e[e.length-1].transform.mProps._mdf=!1,e[e.length-1].transform.op._mdf=!1,r-=1,i+=n;return s},RepeaterModifier.prototype.addShape=function(){};function RoundCornersModifier(){}extendPrototype([ShapeModifier],RoundCornersModifier),RoundCornersModifier.prototype.initModifierProperties=function(o,e){this.getValue=this.processKeys,this.rd=PropertyFactory.getProp(o,e.r,0,null,this),this._isAnimated=!!this.rd.effectsSequence.length},RoundCornersModifier.prototype.processPath=function(o,e){var t=shapePool.newElement();t.c=o.c;var i,n=o._length,r,s,a,l,d,c,u=0,g,f,p,m,b,_;for(i=0;i<n;i+=1)r=o.v[i],a=o.o[i],s=o.i[i],r[0]===a[0]&&r[1]===a[1]&&r[0]===s[0]&&r[1]===s[1]?(i===0||i===n-1)&&!o.c?(t.setTripleAt(r[0],r[1],a[0],a[1],s[0],s[1],u),u+=1):(i===0?l=o.v[n-1]:l=o.v[i-1],d=Math.sqrt(Math.pow(r[0]-l[0],2)+Math.pow(r[1]-l[1],2)),c=d?Math.min(d/2,e)/d:0,b=r[0]+(l[0]-r[0])*c,g=b,_=r[1]-(r[1]-l[1])*c,f=_,p=g-(g-r[0])*roundCorner,m=f-(f-r[1])*roundCorner,t.setTripleAt(g,f,p,m,b,_,u),u+=1,i===n-1?l=o.v[0]:l=o.v[i+1],d=Math.sqrt(Math.pow(r[0]-l[0],2)+Math.pow(r[1]-l[1],2)),c=d?Math.min(d/2,e)/d:0,p=r[0]+(l[0]-r[0])*c,g=p,m=r[1]+(l[1]-r[1])*c,f=m,b=g-(g-r[0])*roundCorner,_=f-(f-r[1])*roundCorner,t.setTripleAt(g,f,p,m,b,_,u),u+=1):(t.setTripleAt(o.v[i][0],o.v[i][1],o.o[i][0],o.o[i][1],o.i[i][0],o.i[i][1],u),u+=1);return t},RoundCornersModifier.prototype.processShapes=function(o){var e,t,i=this.shapes.length,n,r,s=this.rd.v;if(s!==0){var a,l;for(t=0;t<i;t+=1){if(a=this.shapes[t],l=a.localShapeCollection,!(!a.shape._mdf&&!this._mdf&&!o))for(l.releaseShapes(),a.shape._mdf=!0,e=a.shape.paths.shapes,r=a.shape.paths._length,n=0;n<r;n+=1)l.addShape(this.processPath(e[n],s));a.shape.paths=a.localShapeCollection}}this.dynamicProperties.length||(this._mdf=!1)};function floatEqual(o,e){return Math.abs(o-e)*1e5<=Math.min(Math.abs(o),Math.abs(e))}function floatZero(o){return Math.abs(o)<=1e-5}function lerp(o,e,t){return o*(1-t)+e*t}function lerpPoint(o,e,t){return[lerp(o[0],e[0],t),lerp(o[1],e[1],t)]}function quadRoots(o,e,t){if(o===0)return[];var i=e*e-4*o*t;if(i<0)return[];var n=-e/(2*o);if(i===0)return[n];var r=Math.sqrt(i)/(2*o);return[n-r,n+r]}function polynomialCoefficients(o,e,t,i){return[-o+3*e-3*t+i,3*o-6*e+3*t,-3*o+3*e,o]}function singlePoint(o){return new PolynomialBezier(o,o,o,o,!1)}function PolynomialBezier(o,e,t,i,n){n&&pointEqual(o,e)&&(e=lerpPoint(o,i,1/3)),n&&pointEqual(t,i)&&(t=lerpPoint(o,i,2/3));var r=polynomialCoefficients(o[0],e[0],t[0],i[0]),s=polynomialCoefficients(o[1],e[1],t[1],i[1]);this.a=[r[0],s[0]],this.b=[r[1],s[1]],this.c=[r[2],s[2]],this.d=[r[3],s[3]],this.points=[o,e,t,i]}PolynomialBezier.prototype.point=function(o){return[((this.a[0]*o+this.b[0])*o+this.c[0])*o+this.d[0],((this.a[1]*o+this.b[1])*o+this.c[1])*o+this.d[1]]},PolynomialBezier.prototype.derivative=function(o){return[(3*o*this.a[0]+2*this.b[0])*o+this.c[0],(3*o*this.a[1]+2*this.b[1])*o+this.c[1]]},PolynomialBezier.prototype.tangentAngle=function(o){var e=this.derivative(o);return Math.atan2(e[1],e[0])},PolynomialBezier.prototype.normalAngle=function(o){var e=this.derivative(o);return Math.atan2(e[0],e[1])},PolynomialBezier.prototype.inflectionPoints=function(){var o=this.a[1]*this.b[0]-this.a[0]*this.b[1];if(floatZero(o))return[];var e=-.5*(this.a[1]*this.c[0]-this.a[0]*this.c[1])/o,t=e*e-1/3*(this.b[1]*this.c[0]-this.b[0]*this.c[1])/o;if(t<0)return[];var i=Math.sqrt(t);return floatZero(i)?i>0&&i<1?[e]:[]:[e-i,e+i].filter(function(n){return n>0&&n<1})},PolynomialBezier.prototype.split=function(o){if(o<=0)return[singlePoint(this.points[0]),this];if(o>=1)return[this,singlePoint(this.points[this.points.length-1])];var e=lerpPoint(this.points[0],this.points[1],o),t=lerpPoint(this.points[1],this.points[2],o),i=lerpPoint(this.points[2],this.points[3],o),n=lerpPoint(e,t,o),r=lerpPoint(t,i,o),s=lerpPoint(n,r,o);return[new PolynomialBezier(this.points[0],e,n,s,!0),new PolynomialBezier(s,r,i,this.points[3],!0)]};function extrema(o,e){var t=o.points[0][e],i=o.points[o.points.length-1][e];if(t>i){var n=i;i=t,t=n}for(var r=quadRoots(3*o.a[e],2*o.b[e],o.c[e]),s=0;s<r.length;s+=1)if(r[s]>0&&r[s]<1){var a=o.point(r[s])[e];a<t?t=a:a>i&&(i=a)}return{min:t,max:i}}PolynomialBezier.prototype.bounds=function(){return{x:extrema(this,0),y:extrema(this,1)}},PolynomialBezier.prototype.boundingBox=function(){var o=this.bounds();return{left:o.x.min,right:o.x.max,top:o.y.min,bottom:o.y.max,width:o.x.max-o.x.min,height:o.y.max-o.y.min,cx:(o.x.max+o.x.min)/2,cy:(o.y.max+o.y.min)/2}};function intersectData(o,e,t){var i=o.boundingBox();return{cx:i.cx,cy:i.cy,width:i.width,height:i.height,bez:o,t:(e+t)/2,t1:e,t2:t}}function splitData(o){var e=o.bez.split(.5);return[intersectData(e[0],o.t1,o.t),intersectData(e[1],o.t,o.t2)]}function boxIntersect(o,e){return Math.abs(o.cx-e.cx)*2<o.width+e.width&&Math.abs(o.cy-e.cy)*2<o.height+e.height}function intersectsImpl(o,e,t,i,n,r){if(boxIntersect(o,e)){if(t>=r||o.width<=i&&o.height<=i&&e.width<=i&&e.height<=i){n.push([o.t,e.t]);return}var s=splitData(o),a=splitData(e);intersectsImpl(s[0],a[0],t+1,i,n,r),intersectsImpl(s[0],a[1],t+1,i,n,r),intersectsImpl(s[1],a[0],t+1,i,n,r),intersectsImpl(s[1],a[1],t+1,i,n,r)}}PolynomialBezier.prototype.intersections=function(o,e,t){e===void 0&&(e=2),t===void 0&&(t=7);var i=[];return intersectsImpl(intersectData(this,0,1),intersectData(o,0,1),0,e,i,t),i},PolynomialBezier.shapeSegment=function(o,e){var t=(e+1)%o.length();return new PolynomialBezier(o.v[e],o.o[e],o.i[t],o.v[t],!0)},PolynomialBezier.shapeSegmentInverted=function(o,e){var t=(e+1)%o.length();return new PolynomialBezier(o.v[t],o.i[t],o.o[e],o.v[e],!0)};function crossProduct(o,e){return[o[1]*e[2]-o[2]*e[1],o[2]*e[0]-o[0]*e[2],o[0]*e[1]-o[1]*e[0]]}function lineIntersection(o,e,t,i){var n=[o[0],o[1],1],r=[e[0],e[1],1],s=[t[0],t[1],1],a=[i[0],i[1],1],l=crossProduct(crossProduct(n,r),crossProduct(s,a));return floatZero(l[2])?null:[l[0]/l[2],l[1]/l[2]]}function polarOffset(o,e,t){return[o[0]+Math.cos(e)*t,o[1]-Math.sin(e)*t]}function pointDistance(o,e){return Math.hypot(o[0]-e[0],o[1]-e[1])}function pointEqual(o,e){return floatEqual(o[0],e[0])&&floatEqual(o[1],e[1])}function ZigZagModifier(){}extendPrototype([ShapeModifier],ZigZagModifier),ZigZagModifier.prototype.initModifierProperties=function(o,e){this.getValue=this.processKeys,this.amplitude=PropertyFactory.getProp(o,e.s,0,null,this),this.frequency=PropertyFactory.getProp(o,e.r,0,null,this),this.pointsType=PropertyFactory.getProp(o,e.pt,0,null,this),this._isAnimated=this.amplitude.effectsSequence.length!==0||this.frequency.effectsSequence.length!==0||this.pointsType.effectsSequence.length!==0};function setPoint(o,e,t,i,n,r,s){var a=t-Math.PI/2,l=t+Math.PI/2,d=e[0]+Math.cos(t)*i*n,c=e[1]-Math.sin(t)*i*n;o.setTripleAt(d,c,d+Math.cos(a)*r,c-Math.sin(a)*r,d+Math.cos(l)*s,c-Math.sin(l)*s,o.length())}function getPerpendicularVector(o,e){var t=[e[0]-o[0],e[1]-o[1]],i=-Math.PI*.5,n=[Math.cos(i)*t[0]-Math.sin(i)*t[1],Math.sin(i)*t[0]+Math.cos(i)*t[1]];return n}function getProjectingAngle(o,e){var t=e===0?o.length()-1:e-1,i=(e+1)%o.length(),n=o.v[t],r=o.v[i],s=getPerpendicularVector(n,r);return Math.atan2(0,1)-Math.atan2(s[1],s[0])}function zigZagCorner(o,e,t,i,n,r,s){var a=getProjectingAngle(e,t),l=e.v[t%e._length],d=e.v[t===0?e._length-1:t-1],c=e.v[(t+1)%e._length],u=r===2?Math.sqrt(Math.pow(l[0]-d[0],2)+Math.pow(l[1]-d[1],2)):0,g=r===2?Math.sqrt(Math.pow(l[0]-c[0],2)+Math.pow(l[1]-c[1],2)):0;setPoint(o,e.v[t%e._length],a,s,i,g/((n+1)*2),u/((n+1)*2))}function zigZagSegment(o,e,t,i,n,r){for(var s=0;s<i;s+=1){var a=(s+1)/(i+1),l=n===2?Math.sqrt(Math.pow(e.points[3][0]-e.points[0][0],2)+Math.pow(e.points[3][1]-e.points[0][1],2)):0,d=e.normalAngle(a),c=e.point(a);setPoint(o,c,d,r,t,l/((i+1)*2),l/((i+1)*2)),r=-r}return r}ZigZagModifier.prototype.processPath=function(o,e,t,i){var n=o._length,r=shapePool.newElement();if(r.c=o.c,o.c||(n-=1),n===0)return r;var s=-1,a=PolynomialBezier.shapeSegment(o,0);zigZagCorner(r,o,0,e,t,i,s);for(var l=0;l<n;l+=1)s=zigZagSegment(r,a,e,t,i,-s),l===n-1&&!o.c?a=null:a=PolynomialBezier.shapeSegment(o,(l+1)%n),zigZagCorner(r,o,l+1,e,t,i,s);return r},ZigZagModifier.prototype.processShapes=function(o){var e,t,i=this.shapes.length,n,r,s=this.amplitude.v,a=Math.max(0,Math.round(this.frequency.v)),l=this.pointsType.v;if(s!==0){var d,c;for(t=0;t<i;t+=1){if(d=this.shapes[t],c=d.localShapeCollection,!(!d.shape._mdf&&!this._mdf&&!o))for(c.releaseShapes(),d.shape._mdf=!0,e=d.shape.paths.shapes,r=d.shape.paths._length,n=0;n<r;n+=1)c.addShape(this.processPath(e[n],s,a,l));d.shape.paths=d.localShapeCollection}}this.dynamicProperties.length||(this._mdf=!1)};function linearOffset(o,e,t){var i=Math.atan2(e[0]-o[0],e[1]-o[1]);return[polarOffset(o,i,t),polarOffset(e,i,t)]}function offsetSegment(o,e){var t,i,n,r,s,a,l;l=linearOffset(o.points[0],o.points[1],e),t=l[0],i=l[1],l=linearOffset(o.points[1],o.points[2],e),n=l[0],r=l[1],l=linearOffset(o.points[2],o.points[3],e),s=l[0],a=l[1];var d=lineIntersection(t,i,n,r);d===null&&(d=i);var c=lineIntersection(s,a,n,r);return c===null&&(c=s),new PolynomialBezier(t,d,c,a)}function joinLines(o,e,t,i,n){var r=e.points[3],s=t.points[0];if(i===3||pointEqual(r,s))return r;if(i===2){var a=-e.tangentAngle(1),l=-t.tangentAngle(0)+Math.PI,d=lineIntersection(r,polarOffset(r,a+Math.PI/2,100),s,polarOffset(s,a+Math.PI/2,100)),c=d?pointDistance(d,r):pointDistance(r,s)/2,u=polarOffset(r,a,2*c*roundCorner);return o.setXYAt(u[0],u[1],"o",o.length()-1),u=polarOffset(s,l,2*c*roundCorner),o.setTripleAt(s[0],s[1],s[0],s[1],u[0],u[1],o.length()),s}var g=pointEqual(r,e.points[2])?e.points[0]:e.points[2],f=pointEqual(s,t.points[1])?t.points[3]:t.points[1],p=lineIntersection(g,r,s,f);return p&&pointDistance(p,r)<n?(o.setTripleAt(p[0],p[1],p[0],p[1],p[0],p[1],o.length()),p):r}function getIntersection(o,e){var t=o.intersections(e);return t.length&&floatEqual(t[0][0],1)&&t.shift(),t.length?t[0]:null}function pruneSegmentIntersection(o,e){var t=o.slice(),i=e.slice(),n=getIntersection(o[o.length-1],e[0]);return n&&(t[o.length-1]=o[o.length-1].split(n[0])[0],i[0]=e[0].split(n[1])[1]),o.length>1&&e.length>1&&(n=getIntersection(o[0],e[e.length-1]),n)?[[o[0].split(n[0])[0]],[e[e.length-1].split(n[1])[1]]]:[t,i]}function pruneIntersections(o){for(var e,t=1;t<o.length;t+=1)e=pruneSegmentIntersection(o[t-1],o[t]),o[t-1]=e[0],o[t]=e[1];return o.length>1&&(e=pruneSegmentIntersection(o[o.length-1],o[0]),o[o.length-1]=e[0],o[0]=e[1]),o}function offsetSegmentSplit(o,e){var t=o.inflectionPoints(),i,n,r,s;if(t.length===0)return[offsetSegment(o,e)];if(t.length===1||floatEqual(t[1],1))return r=o.split(t[0]),i=r[0],n=r[1],[offsetSegment(i,e),offsetSegment(n,e)];r=o.split(t[0]),i=r[0];var a=(t[1]-t[0])/(1-t[0]);return r=r[1].split(a),s=r[0],n=r[1],[offsetSegment(i,e),offsetSegment(s,e),offsetSegment(n,e)]}function OffsetPathModifier(){}extendPrototype([ShapeModifier],OffsetPathModifier),OffsetPathModifier.prototype.initModifierProperties=function(o,e){this.getValue=this.processKeys,this.amount=PropertyFactory.getProp(o,e.a,0,null,this),this.miterLimit=PropertyFactory.getProp(o,e.ml,0,null,this),this.lineJoin=e.lj,this._isAnimated=this.amount.effectsSequence.length!==0},OffsetPathModifier.prototype.processPath=function(o,e,t,i){var n=shapePool.newElement();n.c=o.c;var r=o.length();o.c||(r-=1);var s,a,l,d=[];for(s=0;s<r;s+=1)l=PolynomialBezier.shapeSegment(o,s),d.push(offsetSegmentSplit(l,e));if(!o.c)for(s=r-1;s>=0;s-=1)l=PolynomialBezier.shapeSegmentInverted(o,s),d.push(offsetSegmentSplit(l,e));d=pruneIntersections(d);var c=null,u=null;for(s=0;s<d.length;s+=1){var g=d[s];for(u&&(c=joinLines(n,u,g[0],t,i)),u=g[g.length-1],a=0;a<g.length;a+=1)l=g[a],c&&pointEqual(l.points[0],c)?n.setXYAt(l.points[1][0],l.points[1][1],"o",n.length()-1):n.setTripleAt(l.points[0][0],l.points[0][1],l.points[1][0],l.points[1][1],l.points[0][0],l.points[0][1],n.length()),n.setTripleAt(l.points[3][0],l.points[3][1],l.points[3][0],l.points[3][1],l.points[2][0],l.points[2][1],n.length()),c=l.points[3]}return d.length&&joinLines(n,u,d[0][0],t,i),n},OffsetPathModifier.prototype.processShapes=function(o){var e,t,i=this.shapes.length,n,r,s=this.amount.v,a=this.miterLimit.v,l=this.lineJoin;if(s!==0){var d,c;for(t=0;t<i;t+=1){if(d=this.shapes[t],c=d.localShapeCollection,!(!d.shape._mdf&&!this._mdf&&!o))for(c.releaseShapes(),d.shape._mdf=!0,e=d.shape.paths.shapes,r=d.shape.paths._length,n=0;n<r;n+=1)c.addShape(this.processPath(e[n],s,l,a));d.shape.paths=d.localShapeCollection}}this.dynamicProperties.length||(this._mdf=!1)};function getFontProperties(o){for(var e=o.fStyle?o.fStyle.split(" "):[],t="normal",i="normal",n=e.length,r,s=0;s<n;s+=1)switch(r=e[s].toLowerCase(),r){case"italic":i="italic";break;case"bold":t="700";break;case"black":t="900";break;case"medium":t="500";break;case"regular":case"normal":t="400";break;case"light":case"thin":t="200";break}return{style:i,weight:o.fWeight||t}}var FontManager=function(){var o=5e3,e={w:0,size:0,shapes:[],data:{shapes:[]}},t=[];t=t.concat([2304,2305,2306,2307,2362,2363,2364,2364,2366,2367,2368,2369,2370,2371,2372,2373,2374,2375,2376,2377,2378,2379,2380,2381,2382,2383,2387,2388,2389,2390,2391,2402,2403]);var i=127988,n=917631,r=917601,s=917626,a=65039,l=8205,d=127462,c=127487,u=["d83cdffb","d83cdffc","d83cdffd","d83cdffe","d83cdfff"];function g(A){var P=A.split(","),k,T=P.length,U=[];for(k=0;k<T;k+=1)P[k]!=="sans-serif"&&P[k]!=="monospace"&&U.push(P[k]);return U.join(",")}function f(A,P){var k=createTag("span");k.setAttribute("aria-hidden",!0),k.style.fontFamily=P;var T=createTag("span");T.innerText="giItT1WQy@!-/#",k.style.position="absolute",k.style.left="-10000px",k.style.top="-10000px",k.style.fontSize="300px",k.style.fontVariant="normal",k.style.fontStyle="normal",k.style.fontWeight="normal",k.style.letterSpacing="0",k.appendChild(T),document.body.appendChild(k);var U=T.offsetWidth;return T.style.fontFamily=g(A)+", "+P,{node:T,w:U,parent:k}}function p(){var A,P=this.fonts.length,k,T,U=P;for(A=0;A<P;A+=1)this.fonts[A].loaded?U-=1:this.fonts[A].fOrigin==="n"||this.fonts[A].origin===0?this.fonts[A].loaded=!0:(k=this.fonts[A].monoCase.node,T=this.fonts[A].monoCase.w,k.offsetWidth!==T?(U-=1,this.fonts[A].loaded=!0):(k=this.fonts[A].sansCase.node,T=this.fonts[A].sansCase.w,k.offsetWidth!==T&&(U-=1,this.fonts[A].loaded=!0)),this.fonts[A].loaded&&(this.fonts[A].sansCase.parent.parentNode.removeChild(this.fonts[A].sansCase.parent),this.fonts[A].monoCase.parent.parentNode.removeChild(this.fonts[A].monoCase.parent)));U!==0&&Date.now()-this.initTime<o?setTimeout(this.checkLoadedFontsBinded,20):setTimeout(this.setIsLoadedBinded,10)}function m(A,P){var k=document.body&&P?"svg":"canvas",T,U=getFontProperties(A);if(k==="svg"){var z=createNS("text");z.style.fontSize="100px",z.setAttribute("font-family",A.fFamily),z.setAttribute("font-style",U.style),z.setAttribute("font-weight",U.weight),z.textContent="1",A.fClass?(z.style.fontFamily="inherit",z.setAttribute("class",A.fClass)):z.style.fontFamily=A.fFamily,P.appendChild(z),T=z}else{var J=new OffscreenCanvas(500,500).getContext("2d");J.font=U.style+" "+U.weight+" 100px "+A.fFamily,T=J}function X(ae){return k==="svg"?(T.textContent=ae,T.getComputedTextLength()):T.measureText(ae).width}return{measureText:X}}function b(A,P){if(!A){this.isLoaded=!0;return}if(this.chars){this.isLoaded=!0,this.fonts=A.list;return}if(!document.body){this.isLoaded=!0,A.list.forEach(function(xe){xe.helper=m(xe),xe.cache={}}),this.fonts=A.list;return}var k=A.list,T,U=k.length,z=U;for(T=0;T<U;T+=1){var J=!0,X,ae;if(k[T].loaded=!1,k[T].monoCase=f(k[T].fFamily,"monospace"),k[T].sansCase=f(k[T].fFamily,"sans-serif"),!k[T].fPath)k[T].loaded=!0,z-=1;else if(k[T].fOrigin==="p"||k[T].origin===3){if(X=document.querySelectorAll('style[f-forigin="p"][f-family="'+k[T].fFamily+'"], style[f-origin="3"][f-family="'+k[T].fFamily+'"]'),X.length>0&&(J=!1),J){var ve=createTag("style");ve.setAttribute("f-forigin",k[T].fOrigin),ve.setAttribute("f-origin",k[T].origin),ve.setAttribute("f-family",k[T].fFamily),ve.type="text/css",ve.innerText="@font-face {font-family: "+k[T].fFamily+"; font-style: normal; src: url('"+k[T].fPath+"');}",P.appendChild(ve)}}else if(k[T].fOrigin==="g"||k[T].origin===1){for(X=document.querySelectorAll('link[f-forigin="g"], link[f-origin="1"]'),ae=0;ae<X.length;ae+=1)X[ae].href.indexOf(k[T].fPath)!==-1&&(J=!1);if(J){var me=createTag("link");me.setAttribute("f-forigin",k[T].fOrigin),me.setAttribute("f-origin",k[T].origin),me.type="text/css",me.rel="stylesheet",me.href=k[T].fPath,document.body.appendChild(me)}}else if(k[T].fOrigin==="t"||k[T].origin===2){for(X=document.querySelectorAll('script[f-forigin="t"], script[f-origin="2"]'),ae=0;ae<X.length;ae+=1)k[T].fPath===X[ae].src&&(J=!1);if(J){var fe=createTag("link");fe.setAttribute("f-forigin",k[T].fOrigin),fe.setAttribute("f-origin",k[T].origin),fe.setAttribute("rel","stylesheet"),fe.setAttribute("href",k[T].fPath),P.appendChild(fe)}}k[T].helper=m(k[T],P),k[T].cache={},this.fonts.push(k[T])}z===0?this.isLoaded=!0:setTimeout(this.checkLoadedFonts.bind(this),100)}function _(A){if(A){this.chars||(this.chars=[]);var P,k=A.length,T,U=this.chars.length,z;for(P=0;P<k;P+=1){for(T=0,z=!1;T<U;)this.chars[T].style===A[P].style&&this.chars[T].fFamily===A[P].fFamily&&this.chars[T].ch===A[P].ch&&(z=!0),T+=1;z||(this.chars.push(A[P]),U+=1)}}}function C(A,P,k){for(var T=0,U=this.chars.length;T<U;){if(this.chars[T].ch===A&&this.chars[T].style===P&&this.chars[T].fFamily===k)return this.chars[T];T+=1}return(typeof A=="string"&&A.charCodeAt(0)!==13||!A)&&console&&console.warn&&!this._warned&&(this._warned=!0,console.warn("Missing character from exported characters list: ",A,P,k)),e}function S(A,P,k){var T=this.getFontByName(P),U=A;if(!T.cache[U]){var z=T.helper;if(A===" "){var J=z.measureText("|"+A+"|"),X=z.measureText("||");T.cache[U]=(J-X)/100}else T.cache[U]=z.measureText(A)/100}return T.cache[U]*k}function y(A){for(var P=0,k=this.fonts.length;P<k;){if(this.fonts[P].fName===A)return this.fonts[P];P+=1}return this.fonts[0]}function E(A){var P=0,k=A.charCodeAt(0);if(k>=55296&&k<=56319){var T=A.charCodeAt(1);T>=56320&&T<=57343&&(P=(k-55296)*1024+T-56320+65536)}return P}function x(A,P){var k=A.toString(16)+P.toString(16);return u.indexOf(k)!==-1}function L(A){return A===l}function I(A){return A===a}function D(A){var P=E(A);return P>=d&&P<=c}function N(A){return D(A.substr(0,2))&&D(A.substr(2,2))}function F(A){return t.indexOf(A)!==-1}function R(A,P){var k=E(A.substr(P,2));if(k!==i)return!1;var T=0;for(P+=2;T<5;){if(k=E(A.substr(P,2)),k<r||k>s)return!1;T+=1,P+=2}return E(A.substr(P,2))===n}function M(){this.isLoaded=!0}var W=function(){this.fonts=[],this.chars=null,this.typekitLoaded=0,this.isLoaded=!1,this._warned=!1,this.initTime=Date.now(),this.setIsLoadedBinded=this.setIsLoaded.bind(this),this.checkLoadedFontsBinded=this.checkLoadedFonts.bind(this)};W.isModifier=x,W.isZeroWidthJoiner=L,W.isFlagEmoji=N,W.isRegionalCode=D,W.isCombinedCharacter=F,W.isRegionalFlag=R,W.isVariationSelector=I,W.BLACK_FLAG_CODE_POINT=i;var V={addChars:_,addFonts:b,getCharData:C,getFontByName:y,measureText:S,checkLoadedFonts:p,setIsLoaded:M};return W.prototype=V,W}();function SlotManager(o){this.animationData=o}SlotManager.prototype.getProp=function(o){return this.animationData.slots&&this.animationData.slots[o.sid]?Object.assign(o,this.animationData.slots[o.sid].p):o};function slotFactory(o){return new SlotManager(o)}function RenderableElement(){}RenderableElement.prototype={initRenderable:function(){this.isInRange=!1,this.hidden=!1,this.isTransparent=!1,this.renderableComponents=[]},addRenderableComponent:function(e){this.renderableComponents.indexOf(e)===-1&&this.renderableComponents.push(e)},removeRenderableComponent:function(e){this.renderableComponents.indexOf(e)!==-1&&this.renderableComponents.splice(this.renderableComponents.indexOf(e),1)},prepareRenderableFrame:function(e){this.checkLayerLimits(e)},checkTransparency:function(){this.finalTransform.mProp.o.v<=0?!this.isTransparent&&this.globalData.renderConfig.hideOnTransparent&&(this.isTransparent=!0,this.hide()):this.isTransparent&&(this.isTransparent=!1,this.show())},checkLayerLimits:function(e){this.data.ip-this.data.st<=e&&this.data.op-this.data.st>e?this.isInRange!==!0&&(this.globalData._mdf=!0,this._mdf=!0,this.isInRange=!0,this.show()):this.isInRange!==!1&&(this.globalData._mdf=!0,this.isInRange=!1,this.hide())},renderRenderable:function(){var e,t=this.renderableComponents.length;for(e=0;e<t;e+=1)this.renderableComponents[e].renderFrame(this._isFirstFrame)},sourceRectAtTime:function(){return{top:0,left:0,width:100,height:100}},getLayerSize:function(){return this.data.ty===5?{w:this.data.textData.width,h:this.data.textData.height}:{w:this.data.width,h:this.data.height}}};var getBlendMode=function(){var o={0:"source-over",1:"multiply",2:"screen",3:"overlay",4:"darken",5:"lighten",6:"color-dodge",7:"color-burn",8:"hard-light",9:"soft-light",10:"difference",11:"exclusion",12:"hue",13:"saturation",14:"color",15:"luminosity"};return function(e){return o[e]||""}}();function SliderEffect(o,e,t){this.p=PropertyFactory.getProp(e,o.v,0,0,t)}function AngleEffect(o,e,t){this.p=PropertyFactory.getProp(e,o.v,0,0,t)}function ColorEffect(o,e,t){this.p=PropertyFactory.getProp(e,o.v,1,0,t)}function PointEffect(o,e,t){this.p=PropertyFactory.getProp(e,o.v,1,0,t)}function LayerIndexEffect(o,e,t){this.p=PropertyFactory.getProp(e,o.v,0,0,t)}function MaskIndexEffect(o,e,t){this.p=PropertyFactory.getProp(e,o.v,0,0,t)}function CheckboxEffect(o,e,t){this.p=PropertyFactory.getProp(e,o.v,0,0,t)}function NoValueEffect(){this.p={}}function EffectsManager(o,e){var t=o.ef||[];this.effectElements=[];var i,n=t.length,r;for(i=0;i<n;i+=1)r=new GroupEffect(t[i],e),this.effectElements.push(r)}function GroupEffect(o,e){this.init(o,e)}extendPrototype([DynamicPropertyContainer],GroupEffect),GroupEffect.prototype.getValue=GroupEffect.prototype.iterateDynamicProperties,GroupEffect.prototype.init=function(o,e){this.data=o,this.effectElements=[],this.initDynamicPropertyContainer(e);var t,i=this.data.ef.length,n,r=this.data.ef;for(t=0;t<i;t+=1){switch(n=null,r[t].ty){case 0:n=new SliderEffect(r[t],e,this);break;case 1:n=new AngleEffect(r[t],e,this);break;case 2:n=new ColorEffect(r[t],e,this);break;case 3:n=new PointEffect(r[t],e,this);break;case 4:case 7:n=new CheckboxEffect(r[t],e,this);break;case 10:n=new LayerIndexEffect(r[t],e,this);break;case 11:n=new MaskIndexEffect(r[t],e,this);break;case 5:n=new EffectsManager(r[t],e);break;default:n=new NoValueEffect(r[t]);break}n&&this.effectElements.push(n)}};function BaseElement(){}BaseElement.prototype={checkMasks:function(){if(!this.data.hasMask)return!1;for(var e=0,t=this.data.masksProperties.length;e<t;){if(this.data.masksProperties[e].mode!=="n"&&this.data.masksProperties[e].cl!==!1)return!0;e+=1}return!1},initExpressions:function(){var e=getExpressionInterfaces();if(e){var t=e("layer"),i=e("effects"),n=e("shape"),r=e("text"),s=e("comp");this.layerInterface=t(this),this.data.hasMask&&this.maskManager&&this.layerInterface.registerMaskInterface(this.maskManager);var a=i.createEffectsInterface(this,this.layerInterface);this.layerInterface.registerEffectsInterface(a),this.data.ty===0||this.data.xt?this.compInterface=s(this):this.data.ty===4?(this.layerInterface.shapeInterface=n(this.shapesData,this.itemsData,this.layerInterface),this.layerInterface.content=this.layerInterface.shapeInterface):this.data.ty===5&&(this.layerInterface.textInterface=r(this),this.layerInterface.text=this.layerInterface.textInterface)}},setBlendMode:function(){var e=getBlendMode(this.data.bm),t=this.baseElement||this.layerElement;t.style["mix-blend-mode"]=e},initBaseData:function(e,t,i){this.globalData=t,this.comp=i,this.data=e,this.layerId=createElementID(),this.data.sr||(this.data.sr=1),this.effectsManager=new EffectsManager(this.data,this,this.dynamicProperties)},getType:function(){return this.type},sourceRectAtTime:function(){}};function FrameElement(){}FrameElement.prototype={initFrame:function(){this._isFirstFrame=!1,this.dynamicProperties=[],this._mdf=!1},prepareProperties:function(e,t){var i,n=this.dynamicProperties.length;for(i=0;i<n;i+=1)(t||this._isParent&&this.dynamicProperties[i].propType==="transform")&&(this.dynamicProperties[i].getValue(),this.dynamicProperties[i]._mdf&&(this.globalData._mdf=!0,this._mdf=!0))},addDynamicProperty:function(e){this.dynamicProperties.indexOf(e)===-1&&this.dynamicProperties.push(e)}};function FootageElement(o,e,t){this.initFrame(),this.initRenderable(),this.assetData=e.getAssetData(o.refId),this.footageData=e.imageLoader.getAsset(this.assetData),this.initBaseData(o,e,t)}FootageElement.prototype.prepareFrame=function(){},extendPrototype([RenderableElement,BaseElement,FrameElement],FootageElement),FootageElement.prototype.getBaseElement=function(){return null},FootageElement.prototype.renderFrame=function(){},FootageElement.prototype.destroy=function(){},FootageElement.prototype.initExpressions=function(){var o=getExpressionInterfaces();if(o){var e=o("footage");this.layerInterface=e(this)}},FootageElement.prototype.getFootageData=function(){return this.footageData};function AudioElement(o,e,t){this.initFrame(),this.initRenderable(),this.assetData=e.getAssetData(o.refId),this.initBaseData(o,e,t),this._isPlaying=!1,this._canPlay=!1;var i=this.globalData.getAssetsPath(this.assetData);this.audio=this.globalData.audioController.createAudio(i),this._currentTime=0,this.globalData.audioController.addAudio(this),this._volumeMultiplier=1,this._volume=1,this._previousVolume=null,this.tm=o.tm?PropertyFactory.getProp(this,o.tm,0,e.frameRate,this):{_placeholder:!0},this.lv=PropertyFactory.getProp(this,o.au&&o.au.lv?o.au.lv:{k:[100]},1,.01,this)}AudioElement.prototype.prepareFrame=function(o){if(this.prepareRenderableFrame(o,!0),this.prepareProperties(o,!0),this.tm._placeholder)this._currentTime=o/this.data.sr;else{var e=this.tm.v;this._currentTime=e}this._volume=this.lv.v[0];var t=this._volume*this._volumeMultiplier;this._previousVolume!==t&&(this._previousVolume=t,this.audio.volume(t))},extendPrototype([RenderableElement,BaseElement,FrameElement],AudioElement),AudioElement.prototype.renderFrame=function(){this.isInRange&&this._canPlay&&(this._isPlaying?(!this.audio.playing()||Math.abs(this._currentTime/this.globalData.frameRate-this.audio.seek())>.1)&&this.audio.seek(this._currentTime/this.globalData.frameRate):(this.audio.play(),this.audio.seek(this._currentTime/this.globalData.frameRate),this._isPlaying=!0))},AudioElement.prototype.show=function(){},AudioElement.prototype.hide=function(){this.audio.pause(),this._isPlaying=!1},AudioElement.prototype.pause=function(){this.audio.pause(),this._isPlaying=!1,this._canPlay=!1},AudioElement.prototype.resume=function(){this._canPlay=!0},AudioElement.prototype.setRate=function(o){this.audio.rate(o)},AudioElement.prototype.volume=function(o){this._volumeMultiplier=o,this._previousVolume=o*this._volume,this.audio.volume(this._previousVolume)},AudioElement.prototype.getBaseElement=function(){return null},AudioElement.prototype.destroy=function(){},AudioElement.prototype.sourceRectAtTime=function(){},AudioElement.prototype.initExpressions=function(){};function BaseRenderer(){}BaseRenderer.prototype.checkLayers=function(o){var e,t=this.layers.length,i;for(this.completeLayers=!0,e=t-1;e>=0;e-=1)this.elements[e]||(i=this.layers[e],i.ip-i.st<=o-this.layers[e].st&&i.op-i.st>o-this.layers[e].st&&this.buildItem(e)),this.completeLayers=this.elements[e]?this.completeLayers:!1;this.checkPendingElements()},BaseRenderer.prototype.createItem=function(o){switch(o.ty){case 2:return this.createImage(o);case 0:return this.createComp(o);case 1:return this.createSolid(o);case 3:return this.createNull(o);case 4:return this.createShape(o);case 5:return this.createText(o);case 6:return this.createAudio(o);case 13:return this.createCamera(o);case 15:return this.createFootage(o);default:return this.createNull(o)}},BaseRenderer.prototype.createCamera=function(){throw new Error("You're using a 3d camera. Try the html renderer.")},BaseRenderer.prototype.createAudio=function(o){return new AudioElement(o,this.globalData,this)},BaseRenderer.prototype.createFootage=function(o){return new FootageElement(o,this.globalData,this)},BaseRenderer.prototype.buildAllItems=function(){var o,e=this.layers.length;for(o=0;o<e;o+=1)this.buildItem(o);this.checkPendingElements()},BaseRenderer.prototype.includeLayers=function(o){this.completeLayers=!1;var e,t=o.length,i,n=this.layers.length;for(e=0;e<t;e+=1)for(i=0;i<n;){if(this.layers[i].id===o[e].id){this.layers[i]=o[e];break}i+=1}},BaseRenderer.prototype.setProjectInterface=function(o){this.globalData.projectInterface=o},BaseRenderer.prototype.initItems=function(){this.globalData.progressiveLoad||this.buildAllItems()},BaseRenderer.prototype.buildElementParenting=function(o,e,t){for(var i=this.elements,n=this.layers,r=0,s=n.length;r<s;)n[r].ind==e&&(!i[r]||i[r]===!0?(this.buildItem(r),this.addPendingElement(o)):(t.push(i[r]),i[r].setAsParent(),n[r].parent!==void 0?this.buildElementParenting(o,n[r].parent,t):o.setHierarchy(t))),r+=1},BaseRenderer.prototype.addPendingElement=function(o){this.pendingElements.push(o)},BaseRenderer.prototype.searchExtraCompositions=function(o){var e,t=o.length;for(e=0;e<t;e+=1)if(o[e].xt){var i=this.createComp(o[e]);i.initExpressions(),this.globalData.projectInterface.registerComposition(i)}},BaseRenderer.prototype.getElementById=function(o){var e,t=this.elements.length;for(e=0;e<t;e+=1)if(this.elements[e].data.ind===o)return this.elements[e];return null},BaseRenderer.prototype.getElementByPath=function(o){var e=o.shift(),t;if(typeof e=="number")t=this.elements[e];else{var i,n=this.elements.length;for(i=0;i<n;i+=1)if(this.elements[i].data.nm===e){t=this.elements[i];break}}return o.length===0?t:t.getElementByPath(o)},BaseRenderer.prototype.setupGlobalData=function(o,e){this.globalData.fontManager=new FontManager,this.globalData.slotManager=slotFactory(o),this.globalData.fontManager.addChars(o.chars),this.globalData.fontManager.addFonts(o.fonts,e),this.globalData.getAssetData=this.animationItem.getAssetData.bind(this.animationItem),this.globalData.getAssetsPath=this.animationItem.getAssetsPath.bind(this.animationItem),this.globalData.imageLoader=this.animationItem.imagePreloader,this.globalData.audioController=this.animationItem.audioController,this.globalData.frameId=0,this.globalData.frameRate=o.fr,this.globalData.nm=o.nm,this.globalData.compSize={w:o.w,h:o.h}};var effectTypes={TRANSFORM_EFFECT:"transformEFfect"};function TransformElement(){}TransformElement.prototype={initTransform:function(){var e=new Matrix;this.finalTransform={mProp:this.data.ks?TransformPropertyFactory.getTransformProperty(this,this.data.ks,this):{o:0},_matMdf:!1,_localMatMdf:!1,_opMdf:!1,mat:e,localMat:e,localOpacity:1},this.data.ao&&(this.finalTransform.mProp.autoOriented=!0),this.data.ty},renderTransform:function(){if(this.finalTransform._opMdf=this.finalTransform.mProp.o._mdf||this._isFirstFrame,this.finalTransform._matMdf=this.finalTransform.mProp._mdf||this._isFirstFrame,this.hierarchy){var e,t=this.finalTransform.mat,i=0,n=this.hierarchy.length;if(!this.finalTransform._matMdf)for(;i<n;){if(this.hierarchy[i].finalTransform.mProp._mdf){this.finalTransform._matMdf=!0;break}i+=1}if(this.finalTransform._matMdf)for(e=this.finalTransform.mProp.v.props,t.cloneFromProps(e),i=0;i<n;i+=1)t.multiply(this.hierarchy[i].finalTransform.mProp.v)}(!this.localTransforms||this.finalTransform._matMdf)&&(this.finalTransform._localMatMdf=this.finalTransform._matMdf),this.finalTransform._opMdf&&(this.finalTransform.localOpacity=this.finalTransform.mProp.o.v)},renderLocalTransform:function(){if(this.localTransforms){var e=0,t=this.localTransforms.length;if(this.finalTransform._localMatMdf=this.finalTransform._matMdf,!this.finalTransform._localMatMdf||!this.finalTransform._opMdf)for(;e<t;)this.localTransforms[e]._mdf&&(this.finalTransform._localMatMdf=!0),this.localTransforms[e]._opMdf&&!this.finalTransform._opMdf&&(this.finalTransform.localOpacity=this.finalTransform.mProp.o.v,this.finalTransform._opMdf=!0),e+=1;if(this.finalTransform._localMatMdf){var i=this.finalTransform.localMat;for(this.localTransforms[0].matrix.clone(i),e=1;e<t;e+=1){var n=this.localTransforms[e].matrix;i.multiply(n)}i.multiply(this.finalTransform.mat)}if(this.finalTransform._opMdf){var r=this.finalTransform.localOpacity;for(e=0;e<t;e+=1)r*=this.localTransforms[e].opacity*.01;this.finalTransform.localOpacity=r}}},searchEffectTransforms:function(){if(this.renderableEffectsManager){var e=this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);if(e.length){this.localTransforms=[],this.finalTransform.localMat=new Matrix;var t=0,i=e.length;for(t=0;t<i;t+=1)this.localTransforms.push(e[t])}}},globalToLocal:function(e){var t=[];t.push(this.finalTransform);for(var i=!0,n=this.comp;i;)n.finalTransform?(n.data.hasMask&&t.splice(0,0,n.finalTransform),n=n.comp):i=!1;var r,s=t.length,a;for(r=0;r<s;r+=1)a=t[r].mat.applyToPointArray(0,0,0),e=[e[0]-a[0],e[1]-a[1],0];return e},mHelper:new Matrix};function MaskElement(o,e,t){this.data=o,this.element=e,this.globalData=t,this.storedData=[],this.masksProperties=this.data.masksProperties||[],this.maskElement=null;var i=this.globalData.defs,n,r=this.masksProperties?this.masksProperties.length:0;this.viewData=createSizedArray(r),this.solidPath="";var s,a=this.masksProperties,l=0,d=[],c,u,g=createElementID(),f,p,m,b,_="clipPath",C="clip-path";for(n=0;n<r;n+=1)if((a[n].mode!=="a"&&a[n].mode!=="n"||a[n].inv||a[n].o.k!==100||a[n].o.x)&&(_="mask",C="mask"),(a[n].mode==="s"||a[n].mode==="i")&&l===0?(f=createNS("rect"),f.setAttribute("fill","#ffffff"),f.setAttribute("width",this.element.comp.data.w||0),f.setAttribute("height",this.element.comp.data.h||0),d.push(f)):f=null,s=createNS("path"),a[n].mode==="n")this.viewData[n]={op:PropertyFactory.getProp(this.element,a[n].o,0,.01,this.element),prop:ShapePropertyFactory.getShapeProp(this.element,a[n],3),elem:s,lastPath:""},i.appendChild(s);else{l+=1,s.setAttribute("fill",a[n].mode==="s"?"#000000":"#ffffff"),s.setAttribute("clip-rule","nonzero");var S;if(a[n].x.k!==0?(_="mask",C="mask",b=PropertyFactory.getProp(this.element,a[n].x,0,null,this.element),S=createElementID(),p=createNS("filter"),p.setAttribute("id",S),m=createNS("feMorphology"),m.setAttribute("operator","erode"),m.setAttribute("in","SourceGraphic"),m.setAttribute("radius","0"),p.appendChild(m),i.appendChild(p),s.setAttribute("stroke",a[n].mode==="s"?"#000000":"#ffffff")):(m=null,b=null),this.storedData[n]={elem:s,x:b,expan:m,lastPath:"",lastOperator:"",filterId:S,lastRadius:0},a[n].mode==="i"){u=d.length;var y=createNS("g");for(c=0;c<u;c+=1)y.appendChild(d[c]);var E=createNS("mask");E.setAttribute("mask-type","alpha"),E.setAttribute("id",g+"_"+l),E.appendChild(s),i.appendChild(E),y.setAttribute("mask","url("+getLocationHref()+"#"+g+"_"+l+")"),d.length=0,d.push(y)}else d.push(s);a[n].inv&&!this.solidPath&&(this.solidPath=this.createLayerSolidPath()),this.viewData[n]={elem:s,lastPath:"",op:PropertyFactory.getProp(this.element,a[n].o,0,.01,this.element),prop:ShapePropertyFactory.getShapeProp(this.element,a[n],3),invRect:f},this.viewData[n].prop.k||this.drawPath(a[n],this.viewData[n].prop.v,this.viewData[n])}for(this.maskElement=createNS(_),r=d.length,n=0;n<r;n+=1)this.maskElement.appendChild(d[n]);l>0&&(this.maskElement.setAttribute("id",g),this.element.maskedElement.setAttribute(C,"url("+getLocationHref()+"#"+g+")"),i.appendChild(this.maskElement)),this.viewData.length&&this.element.addRenderableComponent(this)}MaskElement.prototype.getMaskProperty=function(o){return this.viewData[o].prop},MaskElement.prototype.renderFrame=function(o){var e=this.element.finalTransform.mat,t,i=this.masksProperties.length;for(t=0;t<i;t+=1)if((this.viewData[t].prop._mdf||o)&&this.drawPath(this.masksProperties[t],this.viewData[t].prop.v,this.viewData[t]),(this.viewData[t].op._mdf||o)&&this.viewData[t].elem.setAttribute("fill-opacity",this.viewData[t].op.v),this.masksProperties[t].mode!=="n"&&(this.viewData[t].invRect&&(this.element.finalTransform.mProp._mdf||o)&&this.viewData[t].invRect.setAttribute("transform",e.getInverseMatrix().to2dCSS()),this.storedData[t].x&&(this.storedData[t].x._mdf||o))){var n=this.storedData[t].expan;this.storedData[t].x.v<0?(this.storedData[t].lastOperator!=="erode"&&(this.storedData[t].lastOperator="erode",this.storedData[t].elem.setAttribute("filter","url("+getLocationHref()+"#"+this.storedData[t].filterId+")")),n.setAttribute("radius",-this.storedData[t].x.v)):(this.storedData[t].lastOperator!=="dilate"&&(this.storedData[t].lastOperator="dilate",this.storedData[t].elem.setAttribute("filter",null)),this.storedData[t].elem.setAttribute("stroke-width",this.storedData[t].x.v*2))}},MaskElement.prototype.getMaskelement=function(){return this.maskElement},MaskElement.prototype.createLayerSolidPath=function(){var o="M0,0 ";return o+=" h"+this.globalData.compSize.w,o+=" v"+this.globalData.compSize.h,o+=" h-"+this.globalData.compSize.w,o+=" v-"+this.globalData.compSize.h+" ",o},MaskElement.prototype.drawPath=function(o,e,t){var i=" M"+e.v[0][0]+","+e.v[0][1],n,r;for(r=e._length,n=1;n<r;n+=1)i+=" C"+e.o[n-1][0]+","+e.o[n-1][1]+" "+e.i[n][0]+","+e.i[n][1]+" "+e.v[n][0]+","+e.v[n][1];if(e.c&&r>1&&(i+=" C"+e.o[n-1][0]+","+e.o[n-1][1]+" "+e.i[0][0]+","+e.i[0][1]+" "+e.v[0][0]+","+e.v[0][1]),t.lastPath!==i){var s="";t.elem&&(e.c&&(s=o.inv?this.solidPath+i:i),t.elem.setAttribute("d",s)),t.lastPath=i}},MaskElement.prototype.destroy=function(){this.element=null,this.globalData=null,this.maskElement=null,this.data=null,this.masksProperties=null};var filtersFactory=function(){var o={};o.createFilter=e,o.createAlphaToLuminanceFilter=t;function e(i,n){var r=createNS("filter");return r.setAttribute("id",i),n!==!0&&(r.setAttribute("filterUnits","objectBoundingBox"),r.setAttribute("x","0%"),r.setAttribute("y","0%"),r.setAttribute("width","100%"),r.setAttribute("height","100%")),r}function t(){var i=createNS("feColorMatrix");return i.setAttribute("type","matrix"),i.setAttribute("color-interpolation-filters","sRGB"),i.setAttribute("values","0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1"),i}return o}(),featureSupport=function(){var o={maskType:!0,svgLumaHidden:!0,offscreenCanvas:typeof OffscreenCanvas<"u"};return(/MSIE 10/i.test(navigator.userAgent)||/MSIE 9/i.test(navigator.userAgent)||/rv:11.0/i.test(navigator.userAgent)||/Edge\/\d./i.test(navigator.userAgent))&&(o.maskType=!1),/firefox/i.test(navigator.userAgent)&&(o.svgLumaHidden=!1),o}(),registeredEffects$1={},idPrefix="filter_result_";function SVGEffects(o){var e,t="SourceGraphic",i=o.data.ef?o.data.ef.length:0,n=createElementID(),r=filtersFactory.createFilter(n,!0),s=0;this.filters=[];var a;for(e=0;e<i;e+=1){a=null;var l=o.data.ef[e].ty;if(registeredEffects$1[l]){var d=registeredEffects$1[l].effect;a=new d(r,o.effectsManager.effectElements[e],o,idPrefix+s,t),t=idPrefix+s,registeredEffects$1[l].countsAsEffect&&(s+=1)}a&&this.filters.push(a)}s&&(o.globalData.defs.appendChild(r),o.layerElement.setAttribute("filter","url("+getLocationHref()+"#"+n+")")),this.filters.length&&o.addRenderableComponent(this)}SVGEffects.prototype.renderFrame=function(o){var e,t=this.filters.length;for(e=0;e<t;e+=1)this.filters[e].renderFrame(o)},SVGEffects.prototype.getEffects=function(o){var e,t=this.filters.length,i=[];for(e=0;e<t;e+=1)this.filters[e].type===o&&i.push(this.filters[e]);return i};function registerEffect$1(o,e,t){registeredEffects$1[o]={effect:e,countsAsEffect:t}}function SVGBaseElement(){}SVGBaseElement.prototype={initRendererElement:function(){this.layerElement=createNS("g")},createContainerElements:function(){this.matteElement=createNS("g"),this.transformedElement=this.layerElement,this.maskedElement=this.layerElement,this._sizeChanged=!1;var e=null;if(this.data.td){this.matteMasks={};var t=createNS("g");t.setAttribute("id",this.layerId),t.appendChild(this.layerElement),e=t,this.globalData.defs.appendChild(t)}else this.data.tt?(this.matteElement.appendChild(this.layerElement),e=this.matteElement,this.baseElement=this.matteElement):this.baseElement=this.layerElement;if(this.data.ln&&this.layerElement.setAttribute("id",this.data.ln),this.data.cl&&this.layerElement.setAttribute("class",this.data.cl),this.data.ty===0&&!this.data.hd){var i=createNS("clipPath"),n=createNS("path");n.setAttribute("d","M0,0 L"+this.data.w+",0 L"+this.data.w+","+this.data.h+" L0,"+this.data.h+"z");var r=createElementID();if(i.setAttribute("id",r),i.appendChild(n),this.globalData.defs.appendChild(i),this.checkMasks()){var s=createNS("g");s.setAttribute("clip-path","url("+getLocationHref()+"#"+r+")"),s.appendChild(this.layerElement),this.transformedElement=s,e?e.appendChild(this.transformedElement):this.baseElement=this.transformedElement}else this.layerElement.setAttribute("clip-path","url("+getLocationHref()+"#"+r+")")}this.data.bm!==0&&this.setBlendMode()},renderElement:function(){this.finalTransform._localMatMdf&&this.transformedElement.setAttribute("transform",this.finalTransform.localMat.to2dCSS()),this.finalTransform._opMdf&&this.transformedElement.setAttribute("opacity",this.finalTransform.localOpacity)},destroyBaseElement:function(){this.layerElement=null,this.matteElement=null,this.maskManager.destroy()},getBaseElement:function(){return this.data.hd?null:this.baseElement},createRenderableComponents:function(){this.maskManager=new MaskElement(this.data,this,this.globalData),this.renderableEffectsManager=new SVGEffects(this),this.searchEffectTransforms()},getMatte:function(e){if(this.matteMasks||(this.matteMasks={}),!this.matteMasks[e]){var t=this.layerId+"_"+e,i,n,r,s;if(e===1||e===3){var a=createNS("mask");a.setAttribute("id",t),a.setAttribute("mask-type",e===3?"luminance":"alpha"),r=createNS("use"),r.setAttributeNS("http://www.w3.org/1999/xlink","href","#"+this.layerId),a.appendChild(r),this.globalData.defs.appendChild(a),!featureSupport.maskType&&e===1&&(a.setAttribute("mask-type","luminance"),i=createElementID(),n=filtersFactory.createFilter(i),this.globalData.defs.appendChild(n),n.appendChild(filtersFactory.createAlphaToLuminanceFilter()),s=createNS("g"),s.appendChild(r),a.appendChild(s),s.setAttribute("filter","url("+getLocationHref()+"#"+i+")"))}else if(e===2){var l=createNS("mask");l.setAttribute("id",t),l.setAttribute("mask-type","alpha");var d=createNS("g");l.appendChild(d),i=createElementID(),n=filtersFactory.createFilter(i);var c=createNS("feComponentTransfer");c.setAttribute("in","SourceGraphic"),n.appendChild(c);var u=createNS("feFuncA");u.setAttribute("type","table"),u.setAttribute("tableValues","1.0 0.0"),c.appendChild(u),this.globalData.defs.appendChild(n);var g=createNS("rect");g.setAttribute("width",this.comp.data.w),g.setAttribute("height",this.comp.data.h),g.setAttribute("x","0"),g.setAttribute("y","0"),g.setAttribute("fill","#ffffff"),g.setAttribute("opacity","0"),d.setAttribute("filter","url("+getLocationHref()+"#"+i+")"),d.appendChild(g),r=createNS("use"),r.setAttributeNS("http://www.w3.org/1999/xlink","href","#"+this.layerId),d.appendChild(r),featureSupport.maskType||(l.setAttribute("mask-type","luminance"),n.appendChild(filtersFactory.createAlphaToLuminanceFilter()),s=createNS("g"),d.appendChild(g),s.appendChild(this.layerElement),d.appendChild(s)),this.globalData.defs.appendChild(l)}this.matteMasks[e]=t}return this.matteMasks[e]},setMatte:function(e){this.matteElement&&this.matteElement.setAttribute("mask","url("+getLocationHref()+"#"+e+")")}};function HierarchyElement(){}HierarchyElement.prototype={initHierarchy:function(){this.hierarchy=[],this._isParent=!1,this.checkParenting()},setHierarchy:function(e){this.hierarchy=e},setAsParent:function(){this._isParent=!0},checkParenting:function(){this.data.parent!==void 0&&this.comp.buildElementParenting(this,this.data.parent,[])}};function RenderableDOMElement(){}(function(){var o={initElement:function(t,i,n){this.initFrame(),this.initBaseData(t,i,n),this.initTransform(t,i,n),this.initHierarchy(),this.initRenderable(),this.initRendererElement(),this.createContainerElements(),this.createRenderableComponents(),this.createContent(),this.hide()},hide:function(){if(!this.hidden&&(!this.isInRange||this.isTransparent)){var t=this.baseElement||this.layerElement;t.style.display="none",this.hidden=!0}},show:function(){if(this.isInRange&&!this.isTransparent){if(!this.data.hd){var t=this.baseElement||this.layerElement;t.style.display="block"}this.hidden=!1,this._isFirstFrame=!0}},renderFrame:function(){this.data.hd||this.hidden||(this.renderTransform(),this.renderRenderable(),this.renderLocalTransform(),this.renderElement(),this.renderInnerContent(),this._isFirstFrame&&(this._isFirstFrame=!1))},renderInnerContent:function(){},prepareFrame:function(t){this._mdf=!1,this.prepareRenderableFrame(t),this.prepareProperties(t,this.isInRange),this.checkTransparency()},destroy:function(){this.innerElem=null,this.destroyBaseElement()}};extendPrototype([RenderableElement,createProxyFunction(o)],RenderableDOMElement)})();function IImageElement(o,e,t){this.assetData=e.getAssetData(o.refId),this.assetData&&this.assetData.sid&&(this.assetData=e.slotManager.getProp(this.assetData)),this.initElement(o,e,t),this.sourceRect={top:0,left:0,width:this.assetData.w,height:this.assetData.h}}extendPrototype([BaseElement,TransformElement,SVGBaseElement,HierarchyElement,FrameElement,RenderableDOMElement],IImageElement),IImageElement.prototype.createContent=function(){var o=this.globalData.getAssetsPath(this.assetData);this.innerElem=createNS("image"),this.innerElem.setAttribute("width",this.assetData.w+"px"),this.innerElem.setAttribute("height",this.assetData.h+"px"),this.innerElem.setAttribute("preserveAspectRatio",this.assetData.pr||this.globalData.renderConfig.imagePreserveAspectRatio),this.innerElem.setAttributeNS("http://www.w3.org/1999/xlink","href",o),this.layerElement.appendChild(this.innerElem)},IImageElement.prototype.sourceRectAtTime=function(){return this.sourceRect};function ProcessedElement(o,e){this.elem=o,this.pos=e}function IShapeElement(){}IShapeElement.prototype={addShapeToModifiers:function(e){var t,i=this.shapeModifiers.length;for(t=0;t<i;t+=1)this.shapeModifiers[t].addShape(e)},isShapeInAnimatedModifiers:function(e){for(var t=0,i=this.shapeModifiers.length;t<i;)if(this.shapeModifiers[t].isAnimatedWithShape(e))return!0;return!1},renderModifiers:function(){if(this.shapeModifiers.length){var e,t=this.shapes.length;for(e=0;e<t;e+=1)this.shapes[e].sh.reset();t=this.shapeModifiers.length;var i;for(e=t-1;e>=0&&(i=this.shapeModifiers[e].processShapes(this._isFirstFrame),!i);e-=1);}},searchProcessedElement:function(e){for(var t=this.processedElements,i=0,n=t.length;i<n;){if(t[i].elem===e)return t[i].pos;i+=1}return 0},addProcessedElement:function(e,t){for(var i=this.processedElements,n=i.length;n;)if(n-=1,i[n].elem===e){i[n].pos=t;return}i.push(new ProcessedElement(e,t))},prepareFrame:function(e){this.prepareRenderableFrame(e),this.prepareProperties(e,this.isInRange)}};var lineCapEnum={1:"butt",2:"round",3:"square"},lineJoinEnum={1:"miter",2:"round",3:"bevel"};function SVGShapeData(o,e,t){this.caches=[],this.styles=[],this.transformers=o,this.lStr="",this.sh=t,this.lvl=e,this._isAnimated=!!t.k;for(var i=0,n=o.length;i<n;){if(o[i].mProps.dynamicProperties.length){this._isAnimated=!0;break}i+=1}}SVGShapeData.prototype.setAsAnimated=function(){this._isAnimated=!0};function SVGStyleData(o,e){this.data=o,this.type=o.ty,this.d="",this.lvl=e,this._mdf=!1,this.closed=o.hd===!0,this.pElem=createNS("path"),this.msElem=null}SVGStyleData.prototype.reset=function(){this.d="",this._mdf=!1};function DashProperty(o,e,t,i){this.elem=o,this.frameId=-1,this.dataProps=createSizedArray(e.length),this.renderer=t,this.k=!1,this.dashStr="",this.dashArray=createTypedArray("float32",e.length?e.length-1:0),this.dashoffset=createTypedArray("float32",1),this.initDynamicPropertyContainer(i);var n,r=e.length||0,s;for(n=0;n<r;n+=1)s=PropertyFactory.getProp(o,e[n].v,0,0,this),this.k=s.k||this.k,this.dataProps[n]={n:e[n].n,p:s};this.k||this.getValue(!0),this._isAnimated=this.k}DashProperty.prototype.getValue=function(o){if(!(this.elem.globalData.frameId===this.frameId&&!o)&&(this.frameId=this.elem.globalData.frameId,this.iterateDynamicProperties(),this._mdf=this._mdf||o,this._mdf)){var e=0,t=this.dataProps.length;for(this.renderer==="svg"&&(this.dashStr=""),e=0;e<t;e+=1)this.dataProps[e].n!=="o"?this.renderer==="svg"?this.dashStr+=" "+this.dataProps[e].p.v:this.dashArray[e]=this.dataProps[e].p.v:this.dashoffset[0]=this.dataProps[e].p.v}},extendPrototype([DynamicPropertyContainer],DashProperty);function SVGStrokeStyleData(o,e,t){this.initDynamicPropertyContainer(o),this.getValue=this.iterateDynamicProperties,this.o=PropertyFactory.getProp(o,e.o,0,.01,this),this.w=PropertyFactory.getProp(o,e.w,0,null,this),this.d=new DashProperty(o,e.d||{},"svg",this),this.c=PropertyFactory.getProp(o,e.c,1,255,this),this.style=t,this._isAnimated=!!this._isAnimated}extendPrototype([DynamicPropertyContainer],SVGStrokeStyleData);function SVGFillStyleData(o,e,t){this.initDynamicPropertyContainer(o),this.getValue=this.iterateDynamicProperties,this.o=PropertyFactory.getProp(o,e.o,0,.01,this),this.c=PropertyFactory.getProp(o,e.c,1,255,this),this.style=t}extendPrototype([DynamicPropertyContainer],SVGFillStyleData);function SVGNoStyleData(o,e,t){this.initDynamicPropertyContainer(o),this.getValue=this.iterateDynamicProperties,this.style=t}extendPrototype([DynamicPropertyContainer],SVGNoStyleData);function GradientProperty(o,e,t){this.data=e,this.c=createTypedArray("uint8c",e.p*4);var i=e.k.k[0].s?e.k.k[0].s.length-e.p*4:e.k.k.length-e.p*4;this.o=createTypedArray("float32",i),this._cmdf=!1,this._omdf=!1,this._collapsable=this.checkCollapsable(),this._hasOpacity=i,this.initDynamicPropertyContainer(t),this.prop=PropertyFactory.getProp(o,e.k,1,null,this),this.k=this.prop.k,this.getValue(!0)}GradientProperty.prototype.comparePoints=function(o,e){for(var t=0,i=this.o.length/2,n;t<i;){if(n=Math.abs(o[t*4]-o[e*4+t*2]),n>.01)return!1;t+=1}return!0},GradientProperty.prototype.checkCollapsable=function(){if(this.o.length/2!==this.c.length/4)return!1;if(this.data.k.k[0].s)for(var o=0,e=this.data.k.k.length;o<e;){if(!this.comparePoints(this.data.k.k[o].s,this.data.p))return!1;o+=1}else if(!this.comparePoints(this.data.k.k,this.data.p))return!1;return!0},GradientProperty.prototype.getValue=function(o){if(this.prop.getValue(),this._mdf=!1,this._cmdf=!1,this._omdf=!1,this.prop._mdf||o){var e,t=this.data.p*4,i,n;for(e=0;e<t;e+=1)i=e%4===0?100:255,n=Math.round(this.prop.v[e]*i),this.c[e]!==n&&(this.c[e]=n,this._cmdf=!o);if(this.o.length)for(t=this.prop.v.length,e=this.data.p*4;e<t;e+=1)i=e%2===0?100:1,n=e%2===0?Math.round(this.prop.v[e]*100):this.prop.v[e],this.o[e-this.data.p*4]!==n&&(this.o[e-this.data.p*4]=n,this._omdf=!o);this._mdf=!o}},extendPrototype([DynamicPropertyContainer],GradientProperty);function SVGGradientFillStyleData(o,e,t){this.initDynamicPropertyContainer(o),this.getValue=this.iterateDynamicProperties,this.initGradientData(o,e,t)}SVGGradientFillStyleData.prototype.initGradientData=function(o,e,t){this.o=PropertyFactory.getProp(o,e.o,0,.01,this),this.s=PropertyFactory.getProp(o,e.s,1,null,this),this.e=PropertyFactory.getProp(o,e.e,1,null,this),this.h=PropertyFactory.getProp(o,e.h||{k:0},0,.01,this),this.a=PropertyFactory.getProp(o,e.a||{k:0},0,degToRads,this),this.g=new GradientProperty(o,e.g,this),this.style=t,this.stops=[],this.setGradientData(t.pElem,e),this.setGradientOpacity(e,t),this._isAnimated=!!this._isAnimated},SVGGradientFillStyleData.prototype.setGradientData=function(o,e){var t=createElementID(),i=createNS(e.t===1?"linearGradient":"radialGradient");i.setAttribute("id",t),i.setAttribute("spreadMethod","pad"),i.setAttribute("gradientUnits","userSpaceOnUse");var n=[],r,s,a;for(a=e.g.p*4,s=0;s<a;s+=4)r=createNS("stop"),i.appendChild(r),n.push(r);o.setAttribute(e.ty==="gf"?"fill":"stroke","url("+getLocationHref()+"#"+t+")"),this.gf=i,this.cst=n},SVGGradientFillStyleData.prototype.setGradientOpacity=function(o,e){if(this.g._hasOpacity&&!this.g._collapsable){var t,i,n,r=createNS("mask"),s=createNS("path");r.appendChild(s);var a=createElementID(),l=createElementID();r.setAttribute("id",l);var d=createNS(o.t===1?"linearGradient":"radialGradient");d.setAttribute("id",a),d.setAttribute("spreadMethod","pad"),d.setAttribute("gradientUnits","userSpaceOnUse"),n=o.g.k.k[0].s?o.g.k.k[0].s.length:o.g.k.k.length;var c=this.stops;for(i=o.g.p*4;i<n;i+=2)t=createNS("stop"),t.setAttribute("stop-color","rgb(255,255,255)"),d.appendChild(t),c.push(t);s.setAttribute(o.ty==="gf"?"fill":"stroke","url("+getLocationHref()+"#"+a+")"),o.ty==="gs"&&(s.setAttribute("stroke-linecap",lineCapEnum[o.lc||2]),s.setAttribute("stroke-linejoin",lineJoinEnum[o.lj||2]),o.lj===1&&s.setAttribute("stroke-miterlimit",o.ml)),this.of=d,this.ms=r,this.ost=c,this.maskId=l,e.msElem=s}},extendPrototype([DynamicPropertyContainer],SVGGradientFillStyleData);function SVGGradientStrokeStyleData(o,e,t){this.initDynamicPropertyContainer(o),this.getValue=this.iterateDynamicProperties,this.w=PropertyFactory.getProp(o,e.w,0,null,this),this.d=new DashProperty(o,e.d||{},"svg",this),this.initGradientData(o,e,t),this._isAnimated=!!this._isAnimated}extendPrototype([SVGGradientFillStyleData,DynamicPropertyContainer],SVGGradientStrokeStyleData);function ShapeGroupData(){this.it=[],this.prevViewData=[],this.gr=createNS("g")}function SVGTransformData(o,e,t){this.transform={mProps:o,op:e,container:t},this.elements=[],this._isAnimated=this.transform.mProps.dynamicProperties.length||this.transform.op.effectsSequence.length}var buildShapeString=function(e,t,i,n){if(t===0)return"";var r=e.o,s=e.i,a=e.v,l,d=" M"+n.applyToPointStringified(a[0][0],a[0][1]);for(l=1;l<t;l+=1)d+=" C"+n.applyToPointStringified(r[l-1][0],r[l-1][1])+" "+n.applyToPointStringified(s[l][0],s[l][1])+" "+n.applyToPointStringified(a[l][0],a[l][1]);return i&&t&&(d+=" C"+n.applyToPointStringified(r[l-1][0],r[l-1][1])+" "+n.applyToPointStringified(s[0][0],s[0][1])+" "+n.applyToPointStringified(a[0][0],a[0][1]),d+="z"),d},SVGElementsRenderer=function(){var o=new Matrix,e=new Matrix,t={createRenderFunction:i};function i(u){switch(u.ty){case"fl":return a;case"gf":return d;case"gs":return l;case"st":return c;case"sh":case"el":case"rc":case"sr":return s;case"tr":return n;case"no":return r;default:return null}}function n(u,g,f){(f||g.transform.op._mdf)&&g.transform.container.setAttribute("opacity",g.transform.op.v),(f||g.transform.mProps._mdf)&&g.transform.container.setAttribute("transform",g.transform.mProps.v.to2dCSS())}function r(){}function s(u,g,f){var p,m,b,_,C,S,y=g.styles.length,E=g.lvl,x,L,I,D;for(S=0;S<y;S+=1){if(_=g.sh._mdf||f,g.styles[S].lvl<E){for(L=e.reset(),I=E-g.styles[S].lvl,D=g.transformers.length-1;!_&&I>0;)_=g.transformers[D].mProps._mdf||_,I-=1,D-=1;if(_)for(I=E-g.styles[S].lvl,D=g.transformers.length-1;I>0;)L.multiply(g.transformers[D].mProps.v),I-=1,D-=1}else L=o;if(x=g.sh.paths,m=x._length,_){for(b="",p=0;p<m;p+=1)C=x.shapes[p],C&&C._length&&(b+=buildShapeString(C,C._length,C.c,L));g.caches[S]=b}else b=g.caches[S];g.styles[S].d+=u.hd===!0?"":b,g.styles[S]._mdf=_||g.styles[S]._mdf}}function a(u,g,f){var p=g.style;(g.c._mdf||f)&&p.pElem.setAttribute("fill","rgb("+bmFloor(g.c.v[0])+","+bmFloor(g.c.v[1])+","+bmFloor(g.c.v[2])+")"),(g.o._mdf||f)&&p.pElem.setAttribute("fill-opacity",g.o.v)}function l(u,g,f){d(u,g,f),c(u,g,f)}function d(u,g,f){var p=g.gf,m=g.g._hasOpacity,b=g.s.v,_=g.e.v;if(g.o._mdf||f){var C=u.ty==="gf"?"fill-opacity":"stroke-opacity";g.style.pElem.setAttribute(C,g.o.v)}if(g.s._mdf||f){var S=u.t===1?"x1":"cx",y=S==="x1"?"y1":"cy";p.setAttribute(S,b[0]),p.setAttribute(y,b[1]),m&&!g.g._collapsable&&(g.of.setAttribute(S,b[0]),g.of.setAttribute(y,b[1]))}var E,x,L,I;if(g.g._cmdf||f){E=g.cst;var D=g.g.c;for(L=E.length,x=0;x<L;x+=1)I=E[x],I.setAttribute("offset",D[x*4]+"%"),I.setAttribute("stop-color","rgb("+D[x*4+1]+","+D[x*4+2]+","+D[x*4+3]+")")}if(m&&(g.g._omdf||f)){var N=g.g.o;for(g.g._collapsable?E=g.cst:E=g.ost,L=E.length,x=0;x<L;x+=1)I=E[x],g.g._collapsable||I.setAttribute("offset",N[x*2]+"%"),I.setAttribute("stop-opacity",N[x*2+1])}if(u.t===1)(g.e._mdf||f)&&(p.setAttribute("x2",_[0]),p.setAttribute("y2",_[1]),m&&!g.g._collapsable&&(g.of.setAttribute("x2",_[0]),g.of.setAttribute("y2",_[1])));else{var F;if((g.s._mdf||g.e._mdf||f)&&(F=Math.sqrt(Math.pow(b[0]-_[0],2)+Math.pow(b[1]-_[1],2)),p.setAttribute("r",F),m&&!g.g._collapsable&&g.of.setAttribute("r",F)),g.s._mdf||g.e._mdf||g.h._mdf||g.a._mdf||f){F||(F=Math.sqrt(Math.pow(b[0]-_[0],2)+Math.pow(b[1]-_[1],2)));var R=Math.atan2(_[1]-b[1],_[0]-b[0]),M=g.h.v;M>=1?M=.99:M<=-1&&(M=-.99);var W=F*M,V=Math.cos(R+g.a.v)*W+b[0],A=Math.sin(R+g.a.v)*W+b[1];p.setAttribute("fx",V),p.setAttribute("fy",A),m&&!g.g._collapsable&&(g.of.setAttribute("fx",V),g.of.setAttribute("fy",A))}}}function c(u,g,f){var p=g.style,m=g.d;m&&(m._mdf||f)&&m.dashStr&&(p.pElem.setAttribute("stroke-dasharray",m.dashStr),p.pElem.setAttribute("stroke-dashoffset",m.dashoffset[0])),g.c&&(g.c._mdf||f)&&p.pElem.setAttribute("stroke","rgb("+bmFloor(g.c.v[0])+","+bmFloor(g.c.v[1])+","+bmFloor(g.c.v[2])+")"),(g.o._mdf||f)&&p.pElem.setAttribute("stroke-opacity",g.o.v),(g.w._mdf||f)&&(p.pElem.setAttribute("stroke-width",g.w.v),p.msElem&&p.msElem.setAttribute("stroke-width",g.w.v))}return t}();function SVGShapeElement(o,e,t){this.shapes=[],this.shapesData=o.shapes,this.stylesList=[],this.shapeModifiers=[],this.itemsData=[],this.processedElements=[],this.animatedContents=[],this.initElement(o,e,t),this.prevViewData=[]}extendPrototype([BaseElement,TransformElement,SVGBaseElement,IShapeElement,HierarchyElement,FrameElement,RenderableDOMElement],SVGShapeElement),SVGShapeElement.prototype.initSecondaryElement=function(){},SVGShapeElement.prototype.identityMatrix=new Matrix,SVGShapeElement.prototype.buildExpressionInterface=function(){},SVGShapeElement.prototype.createContent=function(){this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.layerElement,0,[],!0),this.filterUniqueShapes()},SVGShapeElement.prototype.filterUniqueShapes=function(){var o,e=this.shapes.length,t,i,n=this.stylesList.length,r,s=[],a=!1;for(i=0;i<n;i+=1){for(r=this.stylesList[i],a=!1,s.length=0,o=0;o<e;o+=1)t=this.shapes[o],t.styles.indexOf(r)!==-1&&(s.push(t),a=t._isAnimated||a);s.length>1&&a&&this.setShapesAsAnimated(s)}},SVGShapeElement.prototype.setShapesAsAnimated=function(o){var e,t=o.length;for(e=0;e<t;e+=1)o[e].setAsAnimated()},SVGShapeElement.prototype.createStyleElement=function(o,e){var t,i=new SVGStyleData(o,e),n=i.pElem;if(o.ty==="st")t=new SVGStrokeStyleData(this,o,i);else if(o.ty==="fl")t=new SVGFillStyleData(this,o,i);else if(o.ty==="gf"||o.ty==="gs"){var r=o.ty==="gf"?SVGGradientFillStyleData:SVGGradientStrokeStyleData;t=new r(this,o,i),this.globalData.defs.appendChild(t.gf),t.maskId&&(this.globalData.defs.appendChild(t.ms),this.globalData.defs.appendChild(t.of),n.setAttribute("mask","url("+getLocationHref()+"#"+t.maskId+")"))}else o.ty==="no"&&(t=new SVGNoStyleData(this,o,i));return(o.ty==="st"||o.ty==="gs")&&(n.setAttribute("stroke-linecap",lineCapEnum[o.lc||2]),n.setAttribute("stroke-linejoin",lineJoinEnum[o.lj||2]),n.setAttribute("fill-opacity","0"),o.lj===1&&n.setAttribute("stroke-miterlimit",o.ml)),o.r===2&&n.setAttribute("fill-rule","evenodd"),o.ln&&n.setAttribute("id",o.ln),o.cl&&n.setAttribute("class",o.cl),o.bm&&(n.style["mix-blend-mode"]=getBlendMode(o.bm)),this.stylesList.push(i),this.addToAnimatedContents(o,t),t},SVGShapeElement.prototype.createGroupElement=function(o){var e=new ShapeGroupData;return o.ln&&e.gr.setAttribute("id",o.ln),o.cl&&e.gr.setAttribute("class",o.cl),o.bm&&(e.gr.style["mix-blend-mode"]=getBlendMode(o.bm)),e},SVGShapeElement.prototype.createTransformElement=function(o,e){var t=TransformPropertyFactory.getTransformProperty(this,o,this),i=new SVGTransformData(t,t.o,e);return this.addToAnimatedContents(o,i),i},SVGShapeElement.prototype.createShapeElement=function(o,e,t){var i=4;o.ty==="rc"?i=5:o.ty==="el"?i=6:o.ty==="sr"&&(i=7);var n=ShapePropertyFactory.getShapeProp(this,o,i,this),r=new SVGShapeData(e,t,n);return this.shapes.push(r),this.addShapeToModifiers(r),this.addToAnimatedContents(o,r),r},SVGShapeElement.prototype.addToAnimatedContents=function(o,e){for(var t=0,i=this.animatedContents.length;t<i;){if(this.animatedContents[t].element===e)return;t+=1}this.animatedContents.push({fn:SVGElementsRenderer.createRenderFunction(o),element:e,data:o})},SVGShapeElement.prototype.setElementStyles=function(o){var e=o.styles,t,i=this.stylesList.length;for(t=0;t<i;t+=1)e.indexOf(this.stylesList[t])===-1&&!this.stylesList[t].closed&&e.push(this.stylesList[t])},SVGShapeElement.prototype.reloadShapes=function(){this._isFirstFrame=!0;var o,e=this.itemsData.length;for(o=0;o<e;o+=1)this.prevViewData[o]=this.itemsData[o];for(this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.layerElement,0,[],!0),this.filterUniqueShapes(),e=this.dynamicProperties.length,o=0;o<e;o+=1)this.dynamicProperties[o].getValue();this.renderModifiers()},SVGShapeElement.prototype.searchShapes=function(o,e,t,i,n,r,s){var a=[].concat(r),l,d=o.length-1,c,u,g=[],f=[],p,m,b;for(l=d;l>=0;l-=1){if(b=this.searchProcessedElement(o[l]),b?e[l]=t[b-1]:o[l]._render=s,o[l].ty==="fl"||o[l].ty==="st"||o[l].ty==="gf"||o[l].ty==="gs"||o[l].ty==="no")b?e[l].style.closed=o[l].hd:e[l]=this.createStyleElement(o[l],n),o[l]._render&&e[l].style.pElem.parentNode!==i&&i.appendChild(e[l].style.pElem),g.push(e[l].style);else if(o[l].ty==="gr"){if(!b)e[l]=this.createGroupElement(o[l]);else for(u=e[l].it.length,c=0;c<u;c+=1)e[l].prevViewData[c]=e[l].it[c];this.searchShapes(o[l].it,e[l].it,e[l].prevViewData,e[l].gr,n+1,a,s),o[l]._render&&e[l].gr.parentNode!==i&&i.appendChild(e[l].gr)}else o[l].ty==="tr"?(b||(e[l]=this.createTransformElement(o[l],i)),p=e[l].transform,a.push(p)):o[l].ty==="sh"||o[l].ty==="rc"||o[l].ty==="el"||o[l].ty==="sr"?(b||(e[l]=this.createShapeElement(o[l],a,n)),this.setElementStyles(e[l])):o[l].ty==="tm"||o[l].ty==="rd"||o[l].ty==="ms"||o[l].ty==="pb"||o[l].ty==="zz"||o[l].ty==="op"?(b?(m=e[l],m.closed=!1):(m=ShapeModifiers.getModifier(o[l].ty),m.init(this,o[l]),e[l]=m,this.shapeModifiers.push(m)),f.push(m)):o[l].ty==="rp"&&(b?(m=e[l],m.closed=!0):(m=ShapeModifiers.getModifier(o[l].ty),e[l]=m,m.init(this,o,l,e),this.shapeModifiers.push(m),s=!1),f.push(m));this.addProcessedElement(o[l],l+1)}for(d=g.length,l=0;l<d;l+=1)g[l].closed=!0;for(d=f.length,l=0;l<d;l+=1)f[l].closed=!0},SVGShapeElement.prototype.renderInnerContent=function(){this.renderModifiers();var o,e=this.stylesList.length;for(o=0;o<e;o+=1)this.stylesList[o].reset();for(this.renderShape(),o=0;o<e;o+=1)(this.stylesList[o]._mdf||this._isFirstFrame)&&(this.stylesList[o].msElem&&(this.stylesList[o].msElem.setAttribute("d",this.stylesList[o].d),this.stylesList[o].d="M0 0"+this.stylesList[o].d),this.stylesList[o].pElem.setAttribute("d",this.stylesList[o].d||"M0 0"))},SVGShapeElement.prototype.renderShape=function(){var o,e=this.animatedContents.length,t;for(o=0;o<e;o+=1)t=this.animatedContents[o],(this._isFirstFrame||t.element._isAnimated)&&t.data!==!0&&t.fn(t.data,t.element,this._isFirstFrame)},SVGShapeElement.prototype.destroy=function(){this.destroyBaseElement(),this.shapesData=null,this.itemsData=null};function LetterProps(o,e,t,i,n,r){this.o=o,this.sw=e,this.sc=t,this.fc=i,this.m=n,this.p=r,this._mdf={o:!0,sw:!!e,sc:!!t,fc:!!i,m:!0,p:!0}}LetterProps.prototype.update=function(o,e,t,i,n,r){this._mdf.o=!1,this._mdf.sw=!1,this._mdf.sc=!1,this._mdf.fc=!1,this._mdf.m=!1,this._mdf.p=!1;var s=!1;return this.o!==o&&(this.o=o,this._mdf.o=!0,s=!0),this.sw!==e&&(this.sw=e,this._mdf.sw=!0,s=!0),this.sc!==t&&(this.sc=t,this._mdf.sc=!0,s=!0),this.fc!==i&&(this.fc=i,this._mdf.fc=!0,s=!0),this.m!==n&&(this.m=n,this._mdf.m=!0,s=!0),r.length&&(this.p[0]!==r[0]||this.p[1]!==r[1]||this.p[4]!==r[4]||this.p[5]!==r[5]||this.p[12]!==r[12]||this.p[13]!==r[13])&&(this.p=r,this._mdf.p=!0,s=!0),s};function TextProperty(o,e){this._frameId=initialDefaultFrame,this.pv="",this.v="",this.kf=!1,this._isFirstFrame=!0,this._mdf=!1,e.d&&e.d.sid&&(e.d=o.globalData.slotManager.getProp(e.d)),this.data=e,this.elem=o,this.comp=this.elem.comp,this.keysIndex=0,this.canResize=!1,this.minimumFontSize=1,this.effectsSequence=[],this.currentData={ascent:0,boxWidth:this.defaultBoxWidth,f:"",fStyle:"",fWeight:"",fc:"",j:"",justifyOffset:"",l:[],lh:0,lineWidths:[],ls:"",of:"",s:"",sc:"",sw:0,t:0,tr:0,sz:0,ps:null,fillColorAnim:!1,strokeColorAnim:!1,strokeWidthAnim:!1,yOffset:0,finalSize:0,finalText:[],finalLineHeight:0,__complete:!1},this.copyData(this.currentData,this.data.d.k[0].s),this.searchProperty()||this.completeTextData(this.currentData)}TextProperty.prototype.defaultBoxWidth=[0,0],TextProperty.prototype.copyData=function(o,e){for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(o[t]=e[t]);return o},TextProperty.prototype.setCurrentData=function(o){o.__complete||this.completeTextData(o),this.currentData=o,this.currentData.boxWidth=this.currentData.boxWidth||this.defaultBoxWidth,this._mdf=!0},TextProperty.prototype.searchProperty=function(){return this.searchKeyframes()},TextProperty.prototype.searchKeyframes=function(){return this.kf=this.data.d.k.length>1,this.kf&&this.addEffect(this.getKeyframeValue.bind(this)),this.kf},TextProperty.prototype.addEffect=function(o){this.effectsSequence.push(o),this.elem.addDynamicProperty(this)},TextProperty.prototype.getValue=function(o){if(!((this.elem.globalData.frameId===this.frameId||!this.effectsSequence.length)&&!o)){this.currentData.t=this.data.d.k[this.keysIndex].s.t;var e=this.currentData,t=this.keysIndex;if(this.lock){this.setCurrentData(this.currentData);return}this.lock=!0,this._mdf=!1;var i,n=this.effectsSequence.length,r=o||this.data.d.k[this.keysIndex].s;for(i=0;i<n;i+=1)t!==this.keysIndex?r=this.effectsSequence[i](r,r.t):r=this.effectsSequence[i](this.currentData,r.t);e!==r&&this.setCurrentData(r),this.v=this.currentData,this.pv=this.v,this.lock=!1,this.frameId=this.elem.globalData.frameId}},TextProperty.prototype.getKeyframeValue=function(){for(var o=this.data.d.k,e=this.elem.comp.renderedFrame,t=0,i=o.length;t<=i-1&&!(t===i-1||o[t+1].t>e);)t+=1;return this.keysIndex!==t&&(this.keysIndex=t),this.data.d.k[this.keysIndex].s},TextProperty.prototype.buildFinalText=function(o){for(var e=[],t=0,i=o.length,n,r,s=!1,a=!1,l="";t<i;)s=a,a=!1,n=o.charCodeAt(t),l=o.charAt(t),FontManager.isCombinedCharacter(n)?s=!0:n>=55296&&n<=56319?FontManager.isRegionalFlag(o,t)?l=o.substr(t,14):(r=o.charCodeAt(t+1),r>=56320&&r<=57343&&(FontManager.isModifier(n,r)?(l=o.substr(t,2),s=!0):FontManager.isFlagEmoji(o.substr(t,4))?l=o.substr(t,4):l=o.substr(t,2))):n>56319?(r=o.charCodeAt(t+1),FontManager.isVariationSelector(n)&&(s=!0)):FontManager.isZeroWidthJoiner(n)&&(s=!0,a=!0),s?(e[e.length-1]+=l,s=!1):e.push(l),t+=l.length;return e},TextProperty.prototype.completeTextData=function(o){o.__complete=!0;var e=this.elem.globalData.fontManager,t=this.data,i=[],n,r,s,a=0,l,d=t.m.g,c=0,u=0,g=0,f=[],p=0,m=0,b,_,C=e.getFontByName(o.f),S,y=0,E=getFontProperties(C);o.fWeight=E.weight,o.fStyle=E.style,o.finalSize=o.s,o.finalText=this.buildFinalText(o.t),r=o.finalText.length,o.finalLineHeight=o.lh;var x=o.tr/1e3*o.finalSize,L;if(o.sz)for(var I=!0,D=o.sz[0],N=o.sz[1],F,R;I;){R=this.buildFinalText(o.t),F=0,p=0,r=R.length,x=o.tr/1e3*o.finalSize;var M=-1;for(n=0;n<r;n+=1)L=R[n].charCodeAt(0),s=!1,R[n]===" "?M=n:(L===13||L===3)&&(p=0,s=!0,F+=o.finalLineHeight||o.finalSize*1.2),e.chars?(S=e.getCharData(R[n],C.fStyle,C.fFamily),y=s?0:S.w*o.finalSize/100):y=e.measureText(R[n],o.f,o.finalSize),p+y>D&&R[n]!==" "?(M===-1?r+=1:n=M,F+=o.finalLineHeight||o.finalSize*1.2,R.splice(n,M===n?1:0,"\r"),M=-1,p=0):(p+=y,p+=x);F+=C.ascent*o.finalSize/100,this.canResize&&o.finalSize>this.minimumFontSize&&N<F?(o.finalSize-=1,o.finalLineHeight=o.finalSize*o.lh/o.s):(o.finalText=R,r=o.finalText.length,I=!1)}p=-x,y=0;var W=0,V;for(n=0;n<r;n+=1)if(s=!1,V=o.finalText[n],L=V.charCodeAt(0),L===13||L===3?(W=0,f.push(p),m=p>m?p:m,p=-2*x,l="",s=!0,g+=1):l=V,e.chars?(S=e.getCharData(V,C.fStyle,e.getFontByName(o.f).fFamily),y=s?0:S.w*o.finalSize/100):y=e.measureText(l,o.f,o.finalSize),V===" "?W+=y+x:(p+=y+x+W,W=0),i.push({l:y,an:y,add:c,n:s,anIndexes:[],val:l,line:g,animatorJustifyOffset:0}),d==2){if(c+=y,l===""||l===" "||n===r-1){for((l===""||l===" ")&&(c-=y);u<=n;)i[u].an=c,i[u].ind=a,i[u].extra=y,u+=1;a+=1,c=0}}else if(d==3){if(c+=y,l===""||n===r-1){for(l===""&&(c-=y);u<=n;)i[u].an=c,i[u].ind=a,i[u].extra=y,u+=1;c=0,a+=1}}else i[a].ind=a,i[a].extra=0,a+=1;if(o.l=i,m=p>m?p:m,f.push(p),o.sz)o.boxWidth=o.sz[0],o.justifyOffset=0;else switch(o.boxWidth=m,o.j){case 1:o.justifyOffset=-o.boxWidth;break;case 2:o.justifyOffset=-o.boxWidth/2;break;default:o.justifyOffset=0}o.lineWidths=f;var A=t.a,P,k;_=A.length;var T,U,z=[];for(b=0;b<_;b+=1){for(P=A[b],P.a.sc&&(o.strokeColorAnim=!0),P.a.sw&&(o.strokeWidthAnim=!0),(P.a.fc||P.a.fh||P.a.fs||P.a.fb)&&(o.fillColorAnim=!0),U=0,T=P.s.b,n=0;n<r;n+=1)k=i[n],k.anIndexes[b]=U,(T==1&&k.val!==""||T==2&&k.val!==""&&k.val!==" "||T==3&&(k.n||k.val==" "||n==r-1)||T==4&&(k.n||n==r-1))&&(P.s.rn===1&&z.push(U),U+=1);t.a[b].s.totalChars=U;var J=-1,X;if(P.s.rn===1)for(n=0;n<r;n+=1)k=i[n],J!=k.anIndexes[b]&&(J=k.anIndexes[b],X=z.splice(Math.floor(Math.random()*z.length),1)[0]),k.anIndexes[b]=X}o.yOffset=o.finalLineHeight||o.finalSize*1.2,o.ls=o.ls||0,o.ascent=C.ascent*o.finalSize/100},TextProperty.prototype.updateDocumentData=function(o,e){e=e===void 0?this.keysIndex:e;var t=this.copyData({},this.data.d.k[e].s);t=this.copyData(t,o),this.data.d.k[e].s=t,this.recalculate(e),this.setCurrentData(t),this.elem.addDynamicProperty(this)},TextProperty.prototype.recalculate=function(o){var e=this.data.d.k[o].s;e.__complete=!1,this.keysIndex=0,this._isFirstFrame=!0,this.getValue(e)},TextProperty.prototype.canResizeFont=function(o){this.canResize=o,this.recalculate(this.keysIndex),this.elem.addDynamicProperty(this)},TextProperty.prototype.setMinimumFontSize=function(o){this.minimumFontSize=Math.floor(o)||1,this.recalculate(this.keysIndex),this.elem.addDynamicProperty(this)};var TextSelectorProp=function(){var o=Math.max,e=Math.min,t=Math.floor;function i(r,s){this._currentTextLength=-1,this.k=!1,this.data=s,this.elem=r,this.comp=r.comp,this.finalS=0,this.finalE=0,this.initDynamicPropertyContainer(r),this.s=PropertyFactory.getProp(r,s.s||{k:0},0,0,this),"e"in s?this.e=PropertyFactory.getProp(r,s.e,0,0,this):this.e={v:100},this.o=PropertyFactory.getProp(r,s.o||{k:0},0,0,this),this.xe=PropertyFactory.getProp(r,s.xe||{k:0},0,0,this),this.ne=PropertyFactory.getProp(r,s.ne||{k:0},0,0,this),this.sm=PropertyFactory.getProp(r,s.sm||{k:100},0,0,this),this.a=PropertyFactory.getProp(r,s.a,0,.01,this),this.dynamicProperties.length||this.getValue()}i.prototype={getMult:function(s){this._currentTextLength!==this.elem.textProperty.currentData.l.length&&this.getValue();var a=0,l=0,d=1,c=1;this.ne.v>0?a=this.ne.v/100:l=-this.ne.v/100,this.xe.v>0?d=1-this.xe.v/100:c=1+this.xe.v/100;var u=BezierFactory.getBezierEasing(a,l,d,c).get,g=0,f=this.finalS,p=this.finalE,m=this.data.sh;if(m===2)p===f?g=s>=p?1:0:g=o(0,e(.5/(p-f)+(s-f)/(p-f),1)),g=u(g);else if(m===3)p===f?g=s>=p?0:1:g=1-o(0,e(.5/(p-f)+(s-f)/(p-f),1)),g=u(g);else if(m===4)p===f?g=0:(g=o(0,e(.5/(p-f)+(s-f)/(p-f),1)),g<.5?g*=2:g=1-2*(g-.5)),g=u(g);else if(m===5){if(p===f)g=0;else{var b=p-f;s=e(o(0,s+.5-f),p-f);var _=-b/2+s,C=b/2;g=Math.sqrt(1-_*_/(C*C))}g=u(g)}else m===6?(p===f?g=0:(s=e(o(0,s+.5-f),p-f),g=(1+Math.cos(Math.PI+Math.PI*2*s/(p-f)))/2),g=u(g)):(s>=t(f)&&(s-f<0?g=o(0,e(e(p,1)-(f-s),1)):g=o(0,e(p-s,1))),g=u(g));if(this.sm.v!==100){var S=this.sm.v*.01;S===0&&(S=1e-8);var y=.5-S*.5;g<y?g=0:(g=(g-y)/S,g>1&&(g=1))}return g*this.a.v},getValue:function(s){this.iterateDynamicProperties(),this._mdf=s||this._mdf,this._currentTextLength=this.elem.textProperty.currentData.l.length||0,s&&this.data.r===2&&(this.e.v=this._currentTextLength);var a=this.data.r===2?1:100/this.data.totalChars,l=this.o.v/a,d=this.s.v/a+l,c=this.e.v/a+l;if(d>c){var u=d;d=c,c=u}this.finalS=d,this.finalE=c}},extendPrototype([DynamicPropertyContainer],i);function n(r,s,a){return new i(r,s)}return{getTextSelectorProp:n}}();function TextAnimatorDataProperty(o,e,t){var i={propType:!1},n=PropertyFactory.getProp,r=e.a;this.a={r:r.r?n(o,r.r,0,degToRads,t):i,rx:r.rx?n(o,r.rx,0,degToRads,t):i,ry:r.ry?n(o,r.ry,0,degToRads,t):i,sk:r.sk?n(o,r.sk,0,degToRads,t):i,sa:r.sa?n(o,r.sa,0,degToRads,t):i,s:r.s?n(o,r.s,1,.01,t):i,a:r.a?n(o,r.a,1,0,t):i,o:r.o?n(o,r.o,0,.01,t):i,p:r.p?n(o,r.p,1,0,t):i,sw:r.sw?n(o,r.sw,0,0,t):i,sc:r.sc?n(o,r.sc,1,0,t):i,fc:r.fc?n(o,r.fc,1,0,t):i,fh:r.fh?n(o,r.fh,0,0,t):i,fs:r.fs?n(o,r.fs,0,.01,t):i,fb:r.fb?n(o,r.fb,0,.01,t):i,t:r.t?n(o,r.t,0,0,t):i},this.s=TextSelectorProp.getTextSelectorProp(o,e.s,t),this.s.t=e.s.t}function TextAnimatorProperty(o,e,t){this._isFirstFrame=!0,this._hasMaskedPath=!1,this._frameId=-1,this._textData=o,this._renderType=e,this._elem=t,this._animatorsData=createSizedArray(this._textData.a.length),this._pathData={},this._moreOptions={alignment:{}},this.renderedLetters=[],this.lettersChangedFlag=!1,this.initDynamicPropertyContainer(t)}TextAnimatorProperty.prototype.searchProperties=function(){var o,e=this._textData.a.length,t,i=PropertyFactory.getProp;for(o=0;o<e;o+=1)t=this._textData.a[o],this._animatorsData[o]=new TextAnimatorDataProperty(this._elem,t,this);this._textData.p&&"m"in this._textData.p?(this._pathData={a:i(this._elem,this._textData.p.a,0,0,this),f:i(this._elem,this._textData.p.f,0,0,this),l:i(this._elem,this._textData.p.l,0,0,this),r:i(this._elem,this._textData.p.r,0,0,this),p:i(this._elem,this._textData.p.p,0,0,this),m:this._elem.maskManager.getMaskProperty(this._textData.p.m)},this._hasMaskedPath=!0):this._hasMaskedPath=!1,this._moreOptions.alignment=i(this._elem,this._textData.m.a,1,0,this)},TextAnimatorProperty.prototype.getMeasures=function(o,e){if(this.lettersChangedFlag=e,!(!this._mdf&&!this._isFirstFrame&&!e&&(!this._hasMaskedPath||!this._pathData.m._mdf))){this._isFirstFrame=!1;var t=this._moreOptions.alignment.v,i=this._animatorsData,n=this._textData,r=this.mHelper,s=this._renderType,a=this.renderedLetters.length,l,d,c,u,g=o.l,f,p,m,b,_,C,S,y,E,x,L,I,D,N,F;if(this._hasMaskedPath){if(F=this._pathData.m,!this._pathData.n||this._pathData._mdf){var R=F.v;this._pathData.r.v&&(R=R.reverse()),f={tLength:0,segments:[]},u=R._length-1;var M;for(I=0,c=0;c<u;c+=1)M=bez.buildBezierData(R.v[c],R.v[c+1],[R.o[c][0]-R.v[c][0],R.o[c][1]-R.v[c][1]],[R.i[c+1][0]-R.v[c+1][0],R.i[c+1][1]-R.v[c+1][1]]),f.tLength+=M.segmentLength,f.segments.push(M),I+=M.segmentLength;c=u,F.v.c&&(M=bez.buildBezierData(R.v[c],R.v[0],[R.o[c][0]-R.v[c][0],R.o[c][1]-R.v[c][1]],[R.i[0][0]-R.v[0][0],R.i[0][1]-R.v[0][1]]),f.tLength+=M.segmentLength,f.segments.push(M),I+=M.segmentLength),this._pathData.pi=f}if(f=this._pathData.pi,p=this._pathData.f.v,S=0,C=1,b=0,_=!0,x=f.segments,p<0&&F.v.c)for(f.tLength<Math.abs(p)&&(p=-Math.abs(p)%f.tLength),S=x.length-1,E=x[S].points,C=E.length-1;p<0;)p+=E[C].partialLength,C-=1,C<0&&(S-=1,E=x[S].points,C=E.length-1);E=x[S].points,y=E[C-1],m=E[C],L=m.partialLength}u=g.length,l=0,d=0;var W=o.finalSize*1.2*.714,V=!0,A,P,k,T,U;T=i.length;var z,J=-1,X,ae,ve,me=p,fe=S,xe=C,Ie=-1,De,he,Me,we,ue,ke,Re,Pe,$e="",He=this.defaultPropsArray,ie;if(o.j===2||o.j===1){var q=0,Z=0,O=o.j===2?-.5:-1,B=0,j=!0;for(c=0;c<u;c+=1)if(g[c].n){for(q&&(q+=Z);B<c;)g[B].animatorJustifyOffset=q,B+=1;q=0,j=!0}else{for(k=0;k<T;k+=1)A=i[k].a,A.t.propType&&(j&&o.j===2&&(Z+=A.t.v*O),P=i[k].s,z=P.getMult(g[c].anIndexes[k],n.a[k].s.totalChars),z.length?q+=A.t.v*z[0]*O:q+=A.t.v*z*O);j=!1}for(q&&(q+=Z);B<c;)g[B].animatorJustifyOffset=q,B+=1}for(c=0;c<u;c+=1){if(r.reset(),De=1,g[c].n)l=0,d+=o.yOffset,d+=V?1:0,p=me,V=!1,this._hasMaskedPath&&(S=fe,C=xe,E=x[S].points,y=E[C-1],m=E[C],L=m.partialLength,b=0),$e="",Pe="",ke="",ie="",He=this.defaultPropsArray;else{if(this._hasMaskedPath){if(Ie!==g[c].line){switch(o.j){case 1:p+=I-o.lineWidths[g[c].line];break;case 2:p+=(I-o.lineWidths[g[c].line])/2;break}Ie=g[c].line}J!==g[c].ind&&(g[J]&&(p+=g[J].extra),p+=g[c].an/2,J=g[c].ind),p+=t[0]*g[c].an*.005;var H=0;for(k=0;k<T;k+=1)A=i[k].a,A.p.propType&&(P=i[k].s,z=P.getMult(g[c].anIndexes[k],n.a[k].s.totalChars),z.length?H+=A.p.v[0]*z[0]:H+=A.p.v[0]*z),A.a.propType&&(P=i[k].s,z=P.getMult(g[c].anIndexes[k],n.a[k].s.totalChars),z.length?H+=A.a.v[0]*z[0]:H+=A.a.v[0]*z);for(_=!0,this._pathData.a.v&&(p=g[0].an*.5+(I-this._pathData.f.v-g[0].an*.5-g[g.length-1].an*.5)*J/(u-1),p+=this._pathData.f.v);_;)b+L>=p+H||!E?(D=(p+H-b)/m.partialLength,ae=y.point[0]+(m.point[0]-y.point[0])*D,ve=y.point[1]+(m.point[1]-y.point[1])*D,r.translate(-t[0]*g[c].an*.005,-(t[1]*W)*.01),_=!1):E&&(b+=m.partialLength,C+=1,C>=E.length&&(C=0,S+=1,x[S]?E=x[S].points:F.v.c?(C=0,S=0,E=x[S].points):(b-=m.partialLength,E=null)),E&&(y=m,m=E[C],L=m.partialLength));X=g[c].an/2-g[c].add,r.translate(-X,0,0)}else X=g[c].an/2-g[c].add,r.translate(-X,0,0),r.translate(-t[0]*g[c].an*.005,-t[1]*W*.01,0);for(k=0;k<T;k+=1)A=i[k].a,A.t.propType&&(P=i[k].s,z=P.getMult(g[c].anIndexes[k],n.a[k].s.totalChars),(l!==0||o.j!==0)&&(this._hasMaskedPath?z.length?p+=A.t.v*z[0]:p+=A.t.v*z:z.length?l+=A.t.v*z[0]:l+=A.t.v*z));for(o.strokeWidthAnim&&(Me=o.sw||0),o.strokeColorAnim&&(o.sc?he=[o.sc[0],o.sc[1],o.sc[2]]:he=[0,0,0]),o.fillColorAnim&&o.fc&&(we=[o.fc[0],o.fc[1],o.fc[2]]),k=0;k<T;k+=1)A=i[k].a,A.a.propType&&(P=i[k].s,z=P.getMult(g[c].anIndexes[k],n.a[k].s.totalChars),z.length?r.translate(-A.a.v[0]*z[0],-A.a.v[1]*z[1],A.a.v[2]*z[2]):r.translate(-A.a.v[0]*z,-A.a.v[1]*z,A.a.v[2]*z));for(k=0;k<T;k+=1)A=i[k].a,A.s.propType&&(P=i[k].s,z=P.getMult(g[c].anIndexes[k],n.a[k].s.totalChars),z.length?r.scale(1+(A.s.v[0]-1)*z[0],1+(A.s.v[1]-1)*z[1],1):r.scale(1+(A.s.v[0]-1)*z,1+(A.s.v[1]-1)*z,1));for(k=0;k<T;k+=1){if(A=i[k].a,P=i[k].s,z=P.getMult(g[c].anIndexes[k],n.a[k].s.totalChars),A.sk.propType&&(z.length?r.skewFromAxis(-A.sk.v*z[0],A.sa.v*z[1]):r.skewFromAxis(-A.sk.v*z,A.sa.v*z)),A.r.propType&&(z.length?r.rotateZ(-A.r.v*z[2]):r.rotateZ(-A.r.v*z)),A.ry.propType&&(z.length?r.rotateY(A.ry.v*z[1]):r.rotateY(A.ry.v*z)),A.rx.propType&&(z.length?r.rotateX(A.rx.v*z[0]):r.rotateX(A.rx.v*z)),A.o.propType&&(z.length?De+=(A.o.v*z[0]-De)*z[0]:De+=(A.o.v*z-De)*z),o.strokeWidthAnim&&A.sw.propType&&(z.length?Me+=A.sw.v*z[0]:Me+=A.sw.v*z),o.strokeColorAnim&&A.sc.propType)for(ue=0;ue<3;ue+=1)z.length?he[ue]+=(A.sc.v[ue]-he[ue])*z[0]:he[ue]+=(A.sc.v[ue]-he[ue])*z;if(o.fillColorAnim&&o.fc){if(A.fc.propType)for(ue=0;ue<3;ue+=1)z.length?we[ue]+=(A.fc.v[ue]-we[ue])*z[0]:we[ue]+=(A.fc.v[ue]-we[ue])*z;A.fh.propType&&(z.length?we=addHueToRGB(we,A.fh.v*z[0]):we=addHueToRGB(we,A.fh.v*z)),A.fs.propType&&(z.length?we=addSaturationToRGB(we,A.fs.v*z[0]):we=addSaturationToRGB(we,A.fs.v*z)),A.fb.propType&&(z.length?we=addBrightnessToRGB(we,A.fb.v*z[0]):we=addBrightnessToRGB(we,A.fb.v*z))}}for(k=0;k<T;k+=1)A=i[k].a,A.p.propType&&(P=i[k].s,z=P.getMult(g[c].anIndexes[k],n.a[k].s.totalChars),this._hasMaskedPath?z.length?r.translate(0,A.p.v[1]*z[0],-A.p.v[2]*z[1]):r.translate(0,A.p.v[1]*z,-A.p.v[2]*z):z.length?r.translate(A.p.v[0]*z[0],A.p.v[1]*z[1],-A.p.v[2]*z[2]):r.translate(A.p.v[0]*z,A.p.v[1]*z,-A.p.v[2]*z));if(o.strokeWidthAnim&&(ke=Me<0?0:Me),o.strokeColorAnim&&(Re="rgb("+Math.round(he[0]*255)+","+Math.round(he[1]*255)+","+Math.round(he[2]*255)+")"),o.fillColorAnim&&o.fc&&(Pe="rgb("+Math.round(we[0]*255)+","+Math.round(we[1]*255)+","+Math.round(we[2]*255)+")"),this._hasMaskedPath){if(r.translate(0,-o.ls),r.translate(0,t[1]*W*.01+d,0),this._pathData.p.v){N=(m.point[1]-y.point[1])/(m.point[0]-y.point[0]);var ne=Math.atan(N)*180/Math.PI;m.point[0]<y.point[0]&&(ne+=180),r.rotate(-ne*Math.PI/180)}r.translate(ae,ve,0),p-=t[0]*g[c].an*.005,g[c+1]&&J!==g[c+1].ind&&(p+=g[c].an/2,p+=o.tr*.001*o.finalSize)}else{switch(r.translate(l,d,0),o.ps&&r.translate(o.ps[0],o.ps[1]+o.ascent,0),o.j){case 1:r.translate(g[c].animatorJustifyOffset+o.justifyOffset+(o.boxWidth-o.lineWidths[g[c].line]),0,0);break;case 2:r.translate(g[c].animatorJustifyOffset+o.justifyOffset+(o.boxWidth-o.lineWidths[g[c].line])/2,0,0);break}r.translate(0,-o.ls),r.translate(X,0,0),r.translate(t[0]*g[c].an*.005,t[1]*W*.01,0),l+=g[c].l+o.tr*.001*o.finalSize}s==="html"?$e=r.toCSS():s==="svg"?$e=r.to2dCSS():He=[r.props[0],r.props[1],r.props[2],r.props[3],r.props[4],r.props[5],r.props[6],r.props[7],r.props[8],r.props[9],r.props[10],r.props[11],r.props[12],r.props[13],r.props[14],r.props[15]],ie=De}a<=c?(U=new LetterProps(ie,ke,Re,Pe,$e,He),this.renderedLetters.push(U),a+=1,this.lettersChangedFlag=!0):(U=this.renderedLetters[c],this.lettersChangedFlag=U.update(ie,ke,Re,Pe,$e,He)||this.lettersChangedFlag)}}},TextAnimatorProperty.prototype.getValue=function(){this._elem.globalData.frameId!==this._frameId&&(this._frameId=this._elem.globalData.frameId,this.iterateDynamicProperties())},TextAnimatorProperty.prototype.mHelper=new Matrix,TextAnimatorProperty.prototype.defaultPropsArray=[],extendPrototype([DynamicPropertyContainer],TextAnimatorProperty);function ITextElement(){}ITextElement.prototype.initElement=function(o,e,t){this.lettersChangedFlag=!0,this.initFrame(),this.initBaseData(o,e,t),this.textProperty=new TextProperty(this,o.t,this.dynamicProperties),this.textAnimator=new TextAnimatorProperty(o.t,this.renderType,this),this.initTransform(o,e,t),this.initHierarchy(),this.initRenderable(),this.initRendererElement(),this.createContainerElements(),this.createRenderableComponents(),this.createContent(),this.hide(),this.textAnimator.searchProperties(this.dynamicProperties)},ITextElement.prototype.prepareFrame=function(o){this._mdf=!1,this.prepareRenderableFrame(o),this.prepareProperties(o,this.isInRange)},ITextElement.prototype.createPathShape=function(o,e){var t,i=e.length,n,r="";for(t=0;t<i;t+=1)e[t].ty==="sh"&&(n=e[t].ks.k,r+=buildShapeString(n,n.i.length,!0,o));return r},ITextElement.prototype.updateDocumentData=function(o,e){this.textProperty.updateDocumentData(o,e)},ITextElement.prototype.canResizeFont=function(o){this.textProperty.canResizeFont(o)},ITextElement.prototype.setMinimumFontSize=function(o){this.textProperty.setMinimumFontSize(o)},ITextElement.prototype.applyTextPropertiesToMatrix=function(o,e,t,i,n){switch(o.ps&&e.translate(o.ps[0],o.ps[1]+o.ascent,0),e.translate(0,-o.ls,0),o.j){case 1:e.translate(o.justifyOffset+(o.boxWidth-o.lineWidths[t]),0,0);break;case 2:e.translate(o.justifyOffset+(o.boxWidth-o.lineWidths[t])/2,0,0);break}e.translate(i,n,0)},ITextElement.prototype.buildColor=function(o){return"rgb("+Math.round(o[0]*255)+","+Math.round(o[1]*255)+","+Math.round(o[2]*255)+")"},ITextElement.prototype.emptyProp=new LetterProps,ITextElement.prototype.destroy=function(){},ITextElement.prototype.validateText=function(){(this.textProperty._mdf||this.textProperty._isFirstFrame)&&(this.buildNewText(),this.textProperty._isFirstFrame=!1,this.textProperty._mdf=!1)};var emptyShapeData={shapes:[]};function SVGTextLottieElement(o,e,t){this.textSpans=[],this.renderType="svg",this.initElement(o,e,t)}extendPrototype([BaseElement,TransformElement,SVGBaseElement,HierarchyElement,FrameElement,RenderableDOMElement,ITextElement],SVGTextLottieElement),SVGTextLottieElement.prototype.createContent=function(){this.data.singleShape&&!this.globalData.fontManager.chars&&(this.textContainer=createNS("text"))},SVGTextLottieElement.prototype.buildTextContents=function(o){for(var e=0,t=o.length,i=[],n="";e<t;)o[e]==="\r"||o[e]===""?(i.push(n),n=""):n+=o[e],e+=1;return i.push(n),i},SVGTextLottieElement.prototype.buildShapeData=function(o,e){if(o.shapes&&o.shapes.length){var t=o.shapes[0];if(t.it){var i=t.it[t.it.length-1];i.s&&(i.s.k[0]=e,i.s.k[1]=e)}}return o},SVGTextLottieElement.prototype.buildNewText=function(){this.addDynamicProperty(this);var o,e,t=this.textProperty.currentData;this.renderedLetters=createSizedArray(t?t.l.length:0),t.fc?this.layerElement.setAttribute("fill",this.buildColor(t.fc)):this.layerElement.setAttribute("fill","rgba(0,0,0,0)"),t.sc&&(this.layerElement.setAttribute("stroke",this.buildColor(t.sc)),this.layerElement.setAttribute("stroke-width",t.sw)),this.layerElement.setAttribute("font-size",t.finalSize);var i=this.globalData.fontManager.getFontByName(t.f);if(i.fClass)this.layerElement.setAttribute("class",i.fClass);else{this.layerElement.setAttribute("font-family",i.fFamily);var n=t.fWeight,r=t.fStyle;this.layerElement.setAttribute("font-style",r),this.layerElement.setAttribute("font-weight",n)}this.layerElement.setAttribute("aria-label",t.t);var s=t.l||[],a=!!this.globalData.fontManager.chars;e=s.length;var l,d=this.mHelper,c="",u=this.data.singleShape,g=0,f=0,p=!0,m=t.tr*.001*t.finalSize;if(u&&!a&&!t.sz){var b=this.textContainer,_="start";switch(t.j){case 1:_="end";break;case 2:_="middle";break;default:_="start";break}b.setAttribute("text-anchor",_),b.setAttribute("letter-spacing",m);var C=this.buildTextContents(t.finalText);for(e=C.length,f=t.ps?t.ps[1]+t.ascent:0,o=0;o<e;o+=1)l=this.textSpans[o].span||createNS("tspan"),l.textContent=C[o],l.setAttribute("x",0),l.setAttribute("y",f),l.style.display="inherit",b.appendChild(l),this.textSpans[o]||(this.textSpans[o]={span:null,glyph:null}),this.textSpans[o].span=l,f+=t.finalLineHeight;this.layerElement.appendChild(b)}else{var S=this.textSpans.length,y;for(o=0;o<e;o+=1){if(this.textSpans[o]||(this.textSpans[o]={span:null,childSpan:null,glyph:null}),!a||!u||o===0){if(l=S>o?this.textSpans[o].span:createNS(a?"g":"text"),S<=o){if(l.setAttribute("stroke-linecap","butt"),l.setAttribute("stroke-linejoin","round"),l.setAttribute("stroke-miterlimit","4"),this.textSpans[o].span=l,a){var E=createNS("g");l.appendChild(E),this.textSpans[o].childSpan=E}this.textSpans[o].span=l,this.layerElement.appendChild(l)}l.style.display="inherit"}if(d.reset(),u&&(s[o].n&&(g=-m,f+=t.yOffset,f+=p?1:0,p=!1),this.applyTextPropertiesToMatrix(t,d,s[o].line,g,f),g+=s[o].l||0,g+=m),a){y=this.globalData.fontManager.getCharData(t.finalText[o],i.fStyle,this.globalData.fontManager.getFontByName(t.f).fFamily);var x;if(y.t===1)x=new SVGCompElement(y.data,this.globalData,this);else{var L=emptyShapeData;y.data&&y.data.shapes&&(L=this.buildShapeData(y.data,t.finalSize)),x=new SVGShapeElement(L,this.globalData,this)}if(this.textSpans[o].glyph){var I=this.textSpans[o].glyph;this.textSpans[o].childSpan.removeChild(I.layerElement),I.destroy()}this.textSpans[o].glyph=x,x._debug=!0,x.prepareFrame(0),x.renderFrame(),this.textSpans[o].childSpan.appendChild(x.layerElement),y.t===1&&this.textSpans[o].childSpan.setAttribute("transform","scale("+t.finalSize/100+","+t.finalSize/100+")")}else u&&l.setAttribute("transform","translate("+d.props[12]+","+d.props[13]+")"),l.textContent=s[o].val,l.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve")}u&&l&&l.setAttribute("d",c)}for(;o<this.textSpans.length;)this.textSpans[o].span.style.display="none",o+=1;this._sizeChanged=!0},SVGTextLottieElement.prototype.sourceRectAtTime=function(){if(this.prepareFrame(this.comp.renderedFrame-this.data.st),this.renderInnerContent(),this._sizeChanged){this._sizeChanged=!1;var o=this.layerElement.getBBox();this.bbox={top:o.y,left:o.x,width:o.width,height:o.height}}return this.bbox},SVGTextLottieElement.prototype.getValue=function(){var o,e=this.textSpans.length,t;for(this.renderedFrame=this.comp.renderedFrame,o=0;o<e;o+=1)t=this.textSpans[o].glyph,t&&(t.prepareFrame(this.comp.renderedFrame-this.data.st),t._mdf&&(this._mdf=!0))},SVGTextLottieElement.prototype.renderInnerContent=function(){if(this.validateText(),(!this.data.singleShape||this._mdf)&&(this.textAnimator.getMeasures(this.textProperty.currentData,this.lettersChangedFlag),this.lettersChangedFlag||this.textAnimator.lettersChangedFlag)){this._sizeChanged=!0;var o,e,t=this.textAnimator.renderedLetters,i=this.textProperty.currentData.l;e=i.length;var n,r,s;for(o=0;o<e;o+=1)i[o].n||(n=t[o],r=this.textSpans[o].span,s=this.textSpans[o].glyph,s&&s.renderFrame(),n._mdf.m&&r.setAttribute("transform",n.m),n._mdf.o&&r.setAttribute("opacity",n.o),n._mdf.sw&&r.setAttribute("stroke-width",n.sw),n._mdf.sc&&r.setAttribute("stroke",n.sc),n._mdf.fc&&r.setAttribute("fill",n.fc))}};function ISolidElement(o,e,t){this.initElement(o,e,t)}extendPrototype([IImageElement],ISolidElement),ISolidElement.prototype.createContent=function(){var o=createNS("rect");o.setAttribute("width",this.data.sw),o.setAttribute("height",this.data.sh),o.setAttribute("fill",this.data.sc),this.layerElement.appendChild(o)};function NullElement(o,e,t){this.initFrame(),this.initBaseData(o,e,t),this.initFrame(),this.initTransform(o,e,t),this.initHierarchy()}NullElement.prototype.prepareFrame=function(o){this.prepareProperties(o,!0)},NullElement.prototype.renderFrame=function(){},NullElement.prototype.getBaseElement=function(){return null},NullElement.prototype.destroy=function(){},NullElement.prototype.sourceRectAtTime=function(){},NullElement.prototype.hide=function(){},extendPrototype([BaseElement,TransformElement,HierarchyElement,FrameElement],NullElement);function SVGRendererBase(){}extendPrototype([BaseRenderer],SVGRendererBase),SVGRendererBase.prototype.createNull=function(o){return new NullElement(o,this.globalData,this)},SVGRendererBase.prototype.createShape=function(o){return new SVGShapeElement(o,this.globalData,this)},SVGRendererBase.prototype.createText=function(o){return new SVGTextLottieElement(o,this.globalData,this)},SVGRendererBase.prototype.createImage=function(o){return new IImageElement(o,this.globalData,this)},SVGRendererBase.prototype.createSolid=function(o){return new ISolidElement(o,this.globalData,this)},SVGRendererBase.prototype.configAnimation=function(o){this.svgElement.setAttribute("xmlns","http://www.w3.org/2000/svg"),this.svgElement.setAttribute("xmlns:xlink","http://www.w3.org/1999/xlink"),this.renderConfig.viewBoxSize?this.svgElement.setAttribute("viewBox",this.renderConfig.viewBoxSize):this.svgElement.setAttribute("viewBox","0 0 "+o.w+" "+o.h),this.renderConfig.viewBoxOnly||(this.svgElement.setAttribute("width",o.w),this.svgElement.setAttribute("height",o.h),this.svgElement.style.width="100%",this.svgElement.style.height="100%",this.svgElement.style.transform="translate3d(0,0,0)",this.svgElement.style.contentVisibility=this.renderConfig.contentVisibility),this.renderConfig.width&&this.svgElement.setAttribute("width",this.renderConfig.width),this.renderConfig.height&&this.svgElement.setAttribute("height",this.renderConfig.height),this.renderConfig.className&&this.svgElement.setAttribute("class",this.renderConfig.className),this.renderConfig.id&&this.svgElement.setAttribute("id",this.renderConfig.id),this.renderConfig.focusable!==void 0&&this.svgElement.setAttribute("focusable",this.renderConfig.focusable),this.svgElement.setAttribute("preserveAspectRatio",this.renderConfig.preserveAspectRatio),this.animationItem.wrapper.appendChild(this.svgElement);var e=this.globalData.defs;this.setupGlobalData(o,e),this.globalData.progressiveLoad=this.renderConfig.progressiveLoad,this.data=o;var t=createNS("clipPath"),i=createNS("rect");i.setAttribute("width",o.w),i.setAttribute("height",o.h),i.setAttribute("x",0),i.setAttribute("y",0);var n=createElementID();t.setAttribute("id",n),t.appendChild(i),this.layerElement.setAttribute("clip-path","url("+getLocationHref()+"#"+n+")"),e.appendChild(t),this.layers=o.layers,this.elements=createSizedArray(o.layers.length)},SVGRendererBase.prototype.destroy=function(){this.animationItem.wrapper&&(this.animationItem.wrapper.innerText=""),this.layerElement=null,this.globalData.defs=null;var o,e=this.layers?this.layers.length:0;for(o=0;o<e;o+=1)this.elements[o]&&this.elements[o].destroy&&this.elements[o].destroy();this.elements.length=0,this.destroyed=!0,this.animationItem=null},SVGRendererBase.prototype.updateContainerSize=function(){},SVGRendererBase.prototype.findIndexByInd=function(o){var e=0,t=this.layers.length;for(e=0;e<t;e+=1)if(this.layers[e].ind===o)return e;return-1},SVGRendererBase.prototype.buildItem=function(o){var e=this.elements;if(!(e[o]||this.layers[o].ty===99)){e[o]=!0;var t=this.createItem(this.layers[o]);if(e[o]=t,getExpressionsPlugin()&&(this.layers[o].ty===0&&this.globalData.projectInterface.registerComposition(t),t.initExpressions()),this.appendElementInPos(t,o),this.layers[o].tt){var i="tp"in this.layers[o]?this.findIndexByInd(this.layers[o].tp):o-1;if(i===-1)return;if(!this.elements[i]||this.elements[i]===!0)this.buildItem(i),this.addPendingElement(t);else{var n=e[i],r=n.getMatte(this.layers[o].tt);t.setMatte(r)}}}},SVGRendererBase.prototype.checkPendingElements=function(){for(;this.pendingElements.length;){var o=this.pendingElements.pop();if(o.checkParenting(),o.data.tt)for(var e=0,t=this.elements.length;e<t;){if(this.elements[e]===o){var i="tp"in o.data?this.findIndexByInd(o.data.tp):e-1,n=this.elements[i],r=n.getMatte(this.layers[e].tt);o.setMatte(r);break}e+=1}}},SVGRendererBase.prototype.renderFrame=function(o){if(!(this.renderedFrame===o||this.destroyed)){o===null?o=this.renderedFrame:this.renderedFrame=o,this.globalData.frameNum=o,this.globalData.frameId+=1,this.globalData.projectInterface.currentFrame=o,this.globalData._mdf=!1;var e,t=this.layers.length;for(this.completeLayers||this.checkLayers(o),e=t-1;e>=0;e-=1)(this.completeLayers||this.elements[e])&&this.elements[e].prepareFrame(o-this.layers[e].st);if(this.globalData._mdf)for(e=0;e<t;e+=1)(this.completeLayers||this.elements[e])&&this.elements[e].renderFrame()}},SVGRendererBase.prototype.appendElementInPos=function(o,e){var t=o.getBaseElement();if(t){for(var i=0,n;i<e;)this.elements[i]&&this.elements[i]!==!0&&this.elements[i].getBaseElement()&&(n=this.elements[i].getBaseElement()),i+=1;n?this.layerElement.insertBefore(t,n):this.layerElement.appendChild(t)}},SVGRendererBase.prototype.hide=function(){this.layerElement.style.display="none"},SVGRendererBase.prototype.show=function(){this.layerElement.style.display="block"};function ICompElement(){}extendPrototype([BaseElement,TransformElement,HierarchyElement,FrameElement,RenderableDOMElement],ICompElement),ICompElement.prototype.initElement=function(o,e,t){this.initFrame(),this.initBaseData(o,e,t),this.initTransform(o,e,t),this.initRenderable(),this.initHierarchy(),this.initRendererElement(),this.createContainerElements(),this.createRenderableComponents(),(this.data.xt||!e.progressiveLoad)&&this.buildAllItems(),this.hide()},ICompElement.prototype.prepareFrame=function(o){if(this._mdf=!1,this.prepareRenderableFrame(o),this.prepareProperties(o,this.isInRange),!(!this.isInRange&&!this.data.xt)){if(this.tm._placeholder)this.renderedFrame=o/this.data.sr;else{var e=this.tm.v;e===this.data.op&&(e=this.data.op-1),this.renderedFrame=e}var t,i=this.elements.length;for(this.completeLayers||this.checkLayers(this.renderedFrame),t=i-1;t>=0;t-=1)(this.completeLayers||this.elements[t])&&(this.elements[t].prepareFrame(this.renderedFrame-this.layers[t].st),this.elements[t]._mdf&&(this._mdf=!0))}},ICompElement.prototype.renderInnerContent=function(){var o,e=this.layers.length;for(o=0;o<e;o+=1)(this.completeLayers||this.elements[o])&&this.elements[o].renderFrame()},ICompElement.prototype.setElements=function(o){this.elements=o},ICompElement.prototype.getElements=function(){return this.elements},ICompElement.prototype.destroyElements=function(){var o,e=this.layers.length;for(o=0;o<e;o+=1)this.elements[o]&&this.elements[o].destroy()},ICompElement.prototype.destroy=function(){this.destroyElements(),this.destroyBaseElement()};function SVGCompElement(o,e,t){this.layers=o.layers,this.supports3d=!0,this.completeLayers=!1,this.pendingElements=[],this.elements=this.layers?createSizedArray(this.layers.length):[],this.initElement(o,e,t),this.tm=o.tm?PropertyFactory.getProp(this,o.tm,0,e.frameRate,this):{_placeholder:!0}}extendPrototype([SVGRendererBase,ICompElement,SVGBaseElement],SVGCompElement),SVGCompElement.prototype.createComp=function(o){return new SVGCompElement(o,this.globalData,this)};function SVGRenderer(o,e){this.animationItem=o,this.layers=null,this.renderedFrame=-1,this.svgElement=createNS("svg");var t="";if(e&&e.title){var i=createNS("title"),n=createElementID();i.setAttribute("id",n),i.textContent=e.title,this.svgElement.appendChild(i),t+=n}if(e&&e.description){var r=createNS("desc"),s=createElementID();r.setAttribute("id",s),r.textContent=e.description,this.svgElement.appendChild(r),t+=" "+s}t&&this.svgElement.setAttribute("aria-labelledby",t);var a=createNS("defs");this.svgElement.appendChild(a);var l=createNS("g");this.svgElement.appendChild(l),this.layerElement=l,this.renderConfig={preserveAspectRatio:e&&e.preserveAspectRatio||"xMidYMid meet",imagePreserveAspectRatio:e&&e.imagePreserveAspectRatio||"xMidYMid slice",contentVisibility:e&&e.contentVisibility||"visible",progressiveLoad:e&&e.progressiveLoad||!1,hideOnTransparent:!(e&&e.hideOnTransparent===!1),viewBoxOnly:e&&e.viewBoxOnly||!1,viewBoxSize:e&&e.viewBoxSize||!1,className:e&&e.className||"",id:e&&e.id||"",focusable:e&&e.focusable,filterSize:{width:e&&e.filterSize&&e.filterSize.width||"100%",height:e&&e.filterSize&&e.filterSize.height||"100%",x:e&&e.filterSize&&e.filterSize.x||"0%",y:e&&e.filterSize&&e.filterSize.y||"0%"},width:e&&e.width,height:e&&e.height,runExpressions:!e||e.runExpressions===void 0||e.runExpressions},this.globalData={_mdf:!1,frameNum:-1,defs:a,renderConfig:this.renderConfig},this.elements=[],this.pendingElements=[],this.destroyed=!1,this.rendererType="svg"}extendPrototype([SVGRendererBase],SVGRenderer),SVGRenderer.prototype.createComp=function(o){return new SVGCompElement(o,this.globalData,this)};function ShapeTransformManager(){this.sequences={},this.sequenceList=[],this.transform_key_count=0}ShapeTransformManager.prototype={addTransformSequence:function(e){var t,i=e.length,n="_";for(t=0;t<i;t+=1)n+=e[t].transform.key+"_";var r=this.sequences[n];return r||(r={transforms:[].concat(e),finalTransform:new Matrix,_mdf:!1},this.sequences[n]=r,this.sequenceList.push(r)),r},processSequence:function(e,t){for(var i=0,n=e.transforms.length,r=t;i<n&&!t;){if(e.transforms[i].transform.mProps._mdf){r=!0;break}i+=1}if(r)for(e.finalTransform.reset(),i=n-1;i>=0;i-=1)e.finalTransform.multiply(e.transforms[i].transform.mProps.v);e._mdf=r},processSequences:function(e){var t,i=this.sequenceList.length;for(t=0;t<i;t+=1)this.processSequence(this.sequenceList[t],e)},getNewKey:function(){return this.transform_key_count+=1,"_"+this.transform_key_count}};var lumaLoader=function(){var e="__lottie_element_luma_buffer",t=null,i=null,n=null;function r(){var l=createNS("svg"),d=createNS("filter"),c=createNS("feColorMatrix");return d.setAttribute("id",e),c.setAttribute("type","matrix"),c.setAttribute("color-interpolation-filters","sRGB"),c.setAttribute("values","0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0"),d.appendChild(c),l.appendChild(d),l.setAttribute("id",e+"_svg"),featureSupport.svgLumaHidden&&(l.style.display="none"),l}function s(){t||(n=r(),document.body.appendChild(n),t=createTag("canvas"),i=t.getContext("2d"),i.filter="url(#"+e+")",i.fillStyle="rgba(0,0,0,0)",i.fillRect(0,0,1,1))}function a(l){return t||s(),t.width=l.width,t.height=l.height,i.filter="url(#"+e+")",t}return{load:s,get:a}};function createCanvas(o,e){if(featureSupport.offscreenCanvas)return new OffscreenCanvas(o,e);var t=createTag("canvas");return t.width=o,t.height=e,t}var assetLoader=function(){return{loadLumaCanvas:lumaLoader.load,getLumaCanvas:lumaLoader.get,createCanvas}}(),registeredEffects={};function CVEffects(o){var e,t=o.data.ef?o.data.ef.length:0;this.filters=[];var i;for(e=0;e<t;e+=1){i=null;var n=o.data.ef[e].ty;if(registeredEffects[n]){var r=registeredEffects[n].effect;i=new r(o.effectsManager.effectElements[e],o)}i&&this.filters.push(i)}this.filters.length&&o.addRenderableComponent(this)}CVEffects.prototype.renderFrame=function(o){var e,t=this.filters.length;for(e=0;e<t;e+=1)this.filters[e].renderFrame(o)},CVEffects.prototype.getEffects=function(o){var e,t=this.filters.length,i=[];for(e=0;e<t;e+=1)this.filters[e].type===o&&i.push(this.filters[e]);return i};function registerEffect(o,e){registeredEffects[o]={effect:e}}function CVMaskElement(o,e){this.data=o,this.element=e,this.masksProperties=this.data.masksProperties||[],this.viewData=createSizedArray(this.masksProperties.length);var t,i=this.masksProperties.length,n=!1;for(t=0;t<i;t+=1)this.masksProperties[t].mode!=="n"&&(n=!0),this.viewData[t]=ShapePropertyFactory.getShapeProp(this.element,this.masksProperties[t],3);this.hasMasks=n,n&&this.element.addRenderableComponent(this)}CVMaskElement.prototype.renderFrame=function(){if(this.hasMasks){var o=this.element.finalTransform.mat,e=this.element.canvasContext,t,i=this.masksProperties.length,n,r,s;for(e.beginPath(),t=0;t<i;t+=1)if(this.masksProperties[t].mode!=="n"){this.masksProperties[t].inv&&(e.moveTo(0,0),e.lineTo(this.element.globalData.compSize.w,0),e.lineTo(this.element.globalData.compSize.w,this.element.globalData.compSize.h),e.lineTo(0,this.element.globalData.compSize.h),e.lineTo(0,0)),s=this.viewData[t].v,n=o.applyToPointArray(s.v[0][0],s.v[0][1],0),e.moveTo(n[0],n[1]);var a,l=s._length;for(a=1;a<l;a+=1)r=o.applyToTriplePoints(s.o[a-1],s.i[a],s.v[a]),e.bezierCurveTo(r[0],r[1],r[2],r[3],r[4],r[5]);r=o.applyToTriplePoints(s.o[a-1],s.i[0],s.v[0]),e.bezierCurveTo(r[0],r[1],r[2],r[3],r[4],r[5])}this.element.globalData.renderer.save(!0),e.clip()}},CVMaskElement.prototype.getMaskProperty=MaskElement.prototype.getMaskProperty,CVMaskElement.prototype.destroy=function(){this.element=null};function CVBaseElement(){}var operationsMap={1:"source-in",2:"source-out",3:"source-in",4:"source-out"};CVBaseElement.prototype={createElements:function(){},initRendererElement:function(){},createContainerElements:function(){if(this.data.tt>=1){this.buffers=[];var e=this.globalData.canvasContext,t=assetLoader.createCanvas(e.canvas.width,e.canvas.height);this.buffers.push(t);var i=assetLoader.createCanvas(e.canvas.width,e.canvas.height);this.buffers.push(i),this.data.tt>=3&&!document._isProxy&&assetLoader.loadLumaCanvas()}this.canvasContext=this.globalData.canvasContext,this.transformCanvas=this.globalData.transformCanvas,this.renderableEffectsManager=new CVEffects(this),this.searchEffectTransforms()},createContent:function(){},setBlendMode:function(){var e=this.globalData;if(e.blendMode!==this.data.bm){e.blendMode=this.data.bm;var t=getBlendMode(this.data.bm);e.canvasContext.globalCompositeOperation=t}},createRenderableComponents:function(){this.maskManager=new CVMaskElement(this.data,this),this.transformEffects=this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT)},hideElement:function(){!this.hidden&&(!this.isInRange||this.isTransparent)&&(this.hidden=!0)},showElement:function(){this.isInRange&&!this.isTransparent&&(this.hidden=!1,this._isFirstFrame=!0,this.maskManager._isFirstFrame=!0)},clearCanvas:function(e){e.clearRect(this.transformCanvas.tx,this.transformCanvas.ty,this.transformCanvas.w*this.transformCanvas.sx,this.transformCanvas.h*this.transformCanvas.sy)},prepareLayer:function(){if(this.data.tt>=1){var e=this.buffers[0],t=e.getContext("2d");this.clearCanvas(t),t.drawImage(this.canvasContext.canvas,0,0),this.currentTransform=this.canvasContext.getTransform(),this.canvasContext.setTransform(1,0,0,1,0,0),this.clearCanvas(this.canvasContext),this.canvasContext.setTransform(this.currentTransform)}},exitLayer:function(){if(this.data.tt>=1){var e=this.buffers[1],t=e.getContext("2d");this.clearCanvas(t),t.drawImage(this.canvasContext.canvas,0,0),this.canvasContext.setTransform(1,0,0,1,0,0),this.clearCanvas(this.canvasContext),this.canvasContext.setTransform(this.currentTransform);var i=this.comp.getElementById("tp"in this.data?this.data.tp:this.data.ind-1);if(i.renderFrame(!0),this.canvasContext.setTransform(1,0,0,1,0,0),this.data.tt>=3&&!document._isProxy){var n=assetLoader.getLumaCanvas(this.canvasContext.canvas),r=n.getContext("2d");r.drawImage(this.canvasContext.canvas,0,0),this.clearCanvas(this.canvasContext),this.canvasContext.drawImage(n,0,0)}this.canvasContext.globalCompositeOperation=operationsMap[this.data.tt],this.canvasContext.drawImage(e,0,0),this.canvasContext.globalCompositeOperation="destination-over",this.canvasContext.drawImage(this.buffers[0],0,0),this.canvasContext.setTransform(this.currentTransform),this.canvasContext.globalCompositeOperation="source-over"}},renderFrame:function(e){if(!(this.hidden||this.data.hd)&&!(this.data.td===1&&!e)){this.renderTransform(),this.renderRenderable(),this.renderLocalTransform(),this.setBlendMode();var t=this.data.ty===0;this.prepareLayer(),this.globalData.renderer.save(t),this.globalData.renderer.ctxTransform(this.finalTransform.localMat.props),this.globalData.renderer.ctxOpacity(this.finalTransform.localOpacity),this.renderInnerContent(),this.globalData.renderer.restore(t),this.exitLayer(),this.maskManager.hasMasks&&this.globalData.renderer.restore(!0),this._isFirstFrame&&(this._isFirstFrame=!1)}},destroy:function(){this.canvasContext=null,this.data=null,this.globalData=null,this.maskManager.destroy()},mHelper:new Matrix},CVBaseElement.prototype.hide=CVBaseElement.prototype.hideElement,CVBaseElement.prototype.show=CVBaseElement.prototype.showElement;function CVShapeData(o,e,t,i){this.styledShapes=[],this.tr=[0,0,0,0,0,0];var n=4;e.ty==="rc"?n=5:e.ty==="el"?n=6:e.ty==="sr"&&(n=7),this.sh=ShapePropertyFactory.getShapeProp(o,e,n,o);var r,s=t.length,a;for(r=0;r<s;r+=1)t[r].closed||(a={transforms:i.addTransformSequence(t[r].transforms),trNodes:[]},this.styledShapes.push(a),t[r].elements.push(a))}CVShapeData.prototype.setAsAnimated=SVGShapeData.prototype.setAsAnimated;function CVShapeElement(o,e,t){this.shapes=[],this.shapesData=o.shapes,this.stylesList=[],this.itemsData=[],this.prevViewData=[],this.shapeModifiers=[],this.processedElements=[],this.transformsManager=new ShapeTransformManager,this.initElement(o,e,t)}extendPrototype([BaseElement,TransformElement,CVBaseElement,IShapeElement,HierarchyElement,FrameElement,RenderableElement],CVShapeElement),CVShapeElement.prototype.initElement=RenderableDOMElement.prototype.initElement,CVShapeElement.prototype.transformHelper={opacity:1,_opMdf:!1},CVShapeElement.prototype.dashResetter=[],CVShapeElement.prototype.createContent=function(){this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,!0,[])},CVShapeElement.prototype.createStyleElement=function(o,e){var t={data:o,type:o.ty,preTransforms:this.transformsManager.addTransformSequence(e),transforms:[],elements:[],closed:o.hd===!0},i={};if(o.ty==="fl"||o.ty==="st"?(i.c=PropertyFactory.getProp(this,o.c,1,255,this),i.c.k||(t.co="rgb("+bmFloor(i.c.v[0])+","+bmFloor(i.c.v[1])+","+bmFloor(i.c.v[2])+")")):(o.ty==="gf"||o.ty==="gs")&&(i.s=PropertyFactory.getProp(this,o.s,1,null,this),i.e=PropertyFactory.getProp(this,o.e,1,null,this),i.h=PropertyFactory.getProp(this,o.h||{k:0},0,.01,this),i.a=PropertyFactory.getProp(this,o.a||{k:0},0,degToRads,this),i.g=new GradientProperty(this,o.g,this)),i.o=PropertyFactory.getProp(this,o.o,0,.01,this),o.ty==="st"||o.ty==="gs"){if(t.lc=lineCapEnum[o.lc||2],t.lj=lineJoinEnum[o.lj||2],o.lj==1&&(t.ml=o.ml),i.w=PropertyFactory.getProp(this,o.w,0,null,this),i.w.k||(t.wi=i.w.v),o.d){var n=new DashProperty(this,o.d,"canvas",this);i.d=n,i.d.k||(t.da=i.d.dashArray,t.do=i.d.dashoffset[0])}}else t.r=o.r===2?"evenodd":"nonzero";return this.stylesList.push(t),i.style=t,i},CVShapeElement.prototype.createGroupElement=function(){var o={it:[],prevViewData:[]};return o},CVShapeElement.prototype.createTransformElement=function(o){var e={transform:{opacity:1,_opMdf:!1,key:this.transformsManager.getNewKey(),op:PropertyFactory.getProp(this,o.o,0,.01,this),mProps:TransformPropertyFactory.getTransformProperty(this,o,this)}};return e},CVShapeElement.prototype.createShapeElement=function(o){var e=new CVShapeData(this,o,this.stylesList,this.transformsManager);return this.shapes.push(e),this.addShapeToModifiers(e),e},CVShapeElement.prototype.reloadShapes=function(){this._isFirstFrame=!0;var o,e=this.itemsData.length;for(o=0;o<e;o+=1)this.prevViewData[o]=this.itemsData[o];for(this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,!0,[]),e=this.dynamicProperties.length,o=0;o<e;o+=1)this.dynamicProperties[o].getValue();this.renderModifiers(),this.transformsManager.processSequences(this._isFirstFrame)},CVShapeElement.prototype.addTransformToStyleList=function(o){var e,t=this.stylesList.length;for(e=0;e<t;e+=1)this.stylesList[e].closed||this.stylesList[e].transforms.push(o)},CVShapeElement.prototype.removeTransformFromStyleList=function(){var o,e=this.stylesList.length;for(o=0;o<e;o+=1)this.stylesList[o].closed||this.stylesList[o].transforms.pop()},CVShapeElement.prototype.closeStyles=function(o){var e,t=o.length;for(e=0;e<t;e+=1)o[e].closed=!0},CVShapeElement.prototype.searchShapes=function(o,e,t,i,n){var r,s=o.length-1,a,l,d=[],c=[],u,g,f,p=[].concat(n);for(r=s;r>=0;r-=1){if(u=this.searchProcessedElement(o[r]),u?e[r]=t[u-1]:o[r]._shouldRender=i,o[r].ty==="fl"||o[r].ty==="st"||o[r].ty==="gf"||o[r].ty==="gs")u?e[r].style.closed=!1:e[r]=this.createStyleElement(o[r],p),d.push(e[r].style);else if(o[r].ty==="gr"){if(!u)e[r]=this.createGroupElement(o[r]);else for(l=e[r].it.length,a=0;a<l;a+=1)e[r].prevViewData[a]=e[r].it[a];this.searchShapes(o[r].it,e[r].it,e[r].prevViewData,i,p)}else o[r].ty==="tr"?(u||(f=this.createTransformElement(o[r]),e[r]=f),p.push(e[r]),this.addTransformToStyleList(e[r])):o[r].ty==="sh"||o[r].ty==="rc"||o[r].ty==="el"||o[r].ty==="sr"?u||(e[r]=this.createShapeElement(o[r])):o[r].ty==="tm"||o[r].ty==="rd"||o[r].ty==="pb"||o[r].ty==="zz"||o[r].ty==="op"?(u?(g=e[r],g.closed=!1):(g=ShapeModifiers.getModifier(o[r].ty),g.init(this,o[r]),e[r]=g,this.shapeModifiers.push(g)),c.push(g)):o[r].ty==="rp"&&(u?(g=e[r],g.closed=!0):(g=ShapeModifiers.getModifier(o[r].ty),e[r]=g,g.init(this,o,r,e),this.shapeModifiers.push(g),i=!1),c.push(g));this.addProcessedElement(o[r],r+1)}for(this.removeTransformFromStyleList(),this.closeStyles(d),s=c.length,r=0;r<s;r+=1)c[r].closed=!0},CVShapeElement.prototype.renderInnerContent=function(){this.transformHelper.opacity=1,this.transformHelper._opMdf=!1,this.renderModifiers(),this.transformsManager.processSequences(this._isFirstFrame),this.renderShape(this.transformHelper,this.shapesData,this.itemsData,!0)},CVShapeElement.prototype.renderShapeTransform=function(o,e){(o._opMdf||e.op._mdf||this._isFirstFrame)&&(e.opacity=o.opacity,e.opacity*=e.op.v,e._opMdf=!0)},CVShapeElement.prototype.drawLayer=function(){var o,e=this.stylesList.length,t,i,n,r,s,a,l=this.globalData.renderer,d=this.globalData.canvasContext,c,u;for(o=0;o<e;o+=1)if(u=this.stylesList[o],c=u.type,!((c==="st"||c==="gs")&&u.wi===0||!u.data._shouldRender||u.coOp===0||this.globalData.currentGlobalAlpha===0)){for(l.save(),s=u.elements,c==="st"||c==="gs"?(l.ctxStrokeStyle(c==="st"?u.co:u.grd),l.ctxLineWidth(u.wi),l.ctxLineCap(u.lc),l.ctxLineJoin(u.lj),l.ctxMiterLimit(u.ml||0)):l.ctxFillStyle(c==="fl"?u.co:u.grd),l.ctxOpacity(u.coOp),c!=="st"&&c!=="gs"&&d.beginPath(),l.ctxTransform(u.preTransforms.finalTransform.props),i=s.length,t=0;t<i;t+=1){for((c==="st"||c==="gs")&&(d.beginPath(),u.da&&(d.setLineDash(u.da),d.lineDashOffset=u.do)),a=s[t].trNodes,r=a.length,n=0;n<r;n+=1)a[n].t==="m"?d.moveTo(a[n].p[0],a[n].p[1]):a[n].t==="c"?d.bezierCurveTo(a[n].pts[0],a[n].pts[1],a[n].pts[2],a[n].pts[3],a[n].pts[4],a[n].pts[5]):d.closePath();(c==="st"||c==="gs")&&(l.ctxStroke(),u.da&&d.setLineDash(this.dashResetter))}c!=="st"&&c!=="gs"&&this.globalData.renderer.ctxFill(u.r),l.restore()}},CVShapeElement.prototype.renderShape=function(o,e,t,i){var n,r=e.length-1,s;for(s=o,n=r;n>=0;n-=1)e[n].ty==="tr"?(s=t[n].transform,this.renderShapeTransform(o,s)):e[n].ty==="sh"||e[n].ty==="el"||e[n].ty==="rc"||e[n].ty==="sr"?this.renderPath(e[n],t[n]):e[n].ty==="fl"?this.renderFill(e[n],t[n],s):e[n].ty==="st"?this.renderStroke(e[n],t[n],s):e[n].ty==="gf"||e[n].ty==="gs"?this.renderGradientFill(e[n],t[n],s):e[n].ty==="gr"?this.renderShape(s,e[n].it,t[n].it):e[n].ty;i&&this.drawLayer()},CVShapeElement.prototype.renderStyledShape=function(o,e){if(this._isFirstFrame||e._mdf||o.transforms._mdf){var t=o.trNodes,i=e.paths,n,r,s,a=i._length;t.length=0;var l=o.transforms.finalTransform;for(s=0;s<a;s+=1){var d=i.shapes[s];if(d&&d.v){for(r=d._length,n=1;n<r;n+=1)n===1&&t.push({t:"m",p:l.applyToPointArray(d.v[0][0],d.v[0][1],0)}),t.push({t:"c",pts:l.applyToTriplePoints(d.o[n-1],d.i[n],d.v[n])});r===1&&t.push({t:"m",p:l.applyToPointArray(d.v[0][0],d.v[0][1],0)}),d.c&&r&&(t.push({t:"c",pts:l.applyToTriplePoints(d.o[n-1],d.i[0],d.v[0])}),t.push({t:"z"}))}}o.trNodes=t}},CVShapeElement.prototype.renderPath=function(o,e){if(o.hd!==!0&&o._shouldRender){var t,i=e.styledShapes.length;for(t=0;t<i;t+=1)this.renderStyledShape(e.styledShapes[t],e.sh)}},CVShapeElement.prototype.renderFill=function(o,e,t){var i=e.style;(e.c._mdf||this._isFirstFrame)&&(i.co="rgb("+bmFloor(e.c.v[0])+","+bmFloor(e.c.v[1])+","+bmFloor(e.c.v[2])+")"),(e.o._mdf||t._opMdf||this._isFirstFrame)&&(i.coOp=e.o.v*t.opacity)},CVShapeElement.prototype.renderGradientFill=function(o,e,t){var i=e.style,n;if(!i.grd||e.g._mdf||e.s._mdf||e.e._mdf||o.t!==1&&(e.h._mdf||e.a._mdf)){var r=this.globalData.canvasContext,s=e.s.v,a=e.e.v;if(o.t===1)n=r.createLinearGradient(s[0],s[1],a[0],a[1]);else{var l=Math.sqrt(Math.pow(s[0]-a[0],2)+Math.pow(s[1]-a[1],2)),d=Math.atan2(a[1]-s[1],a[0]-s[0]),c=e.h.v;c>=1?c=.99:c<=-1&&(c=-.99);var u=l*c,g=Math.cos(d+e.a.v)*u+s[0],f=Math.sin(d+e.a.v)*u+s[1];n=r.createRadialGradient(g,f,0,s[0],s[1],l)}var p,m=o.g.p,b=e.g.c,_=1;for(p=0;p<m;p+=1)e.g._hasOpacity&&e.g._collapsable&&(_=e.g.o[p*2+1]),n.addColorStop(b[p*4]/100,"rgba("+b[p*4+1]+","+b[p*4+2]+","+b[p*4+3]+","+_+")");i.grd=n}i.coOp=e.o.v*t.opacity},CVShapeElement.prototype.renderStroke=function(o,e,t){var i=e.style,n=e.d;n&&(n._mdf||this._isFirstFrame)&&(i.da=n.dashArray,i.do=n.dashoffset[0]),(e.c._mdf||this._isFirstFrame)&&(i.co="rgb("+bmFloor(e.c.v[0])+","+bmFloor(e.c.v[1])+","+bmFloor(e.c.v[2])+")"),(e.o._mdf||t._opMdf||this._isFirstFrame)&&(i.coOp=e.o.v*t.opacity),(e.w._mdf||this._isFirstFrame)&&(i.wi=e.w.v)},CVShapeElement.prototype.destroy=function(){this.shapesData=null,this.globalData=null,this.canvasContext=null,this.stylesList.length=0,this.itemsData.length=0};function CVTextElement(o,e,t){this.textSpans=[],this.yOffset=0,this.fillColorAnim=!1,this.strokeColorAnim=!1,this.strokeWidthAnim=!1,this.stroke=!1,this.fill=!1,this.justifyOffset=0,this.currentRender=null,this.renderType="canvas",this.values={fill:"rgba(0,0,0,0)",stroke:"rgba(0,0,0,0)",sWidth:0,fValue:""},this.initElement(o,e,t)}extendPrototype([BaseElement,TransformElement,CVBaseElement,HierarchyElement,FrameElement,RenderableElement,ITextElement],CVTextElement),CVTextElement.prototype.tHelper=createTag("canvas").getContext("2d"),CVTextElement.prototype.buildNewText=function(){var o=this.textProperty.currentData;this.renderedLetters=createSizedArray(o.l?o.l.length:0);var e=!1;o.fc?(e=!0,this.values.fill=this.buildColor(o.fc)):this.values.fill="rgba(0,0,0,0)",this.fill=e;var t=!1;o.sc&&(t=!0,this.values.stroke=this.buildColor(o.sc),this.values.sWidth=o.sw);var i=this.globalData.fontManager.getFontByName(o.f),n,r,s=o.l,a=this.mHelper;this.stroke=t,this.values.fValue=o.finalSize+"px "+this.globalData.fontManager.getFontByName(o.f).fFamily,r=o.finalText.length;var l,d,c,u,g,f,p,m,b,_,C=this.data.singleShape,S=o.tr*.001*o.finalSize,y=0,E=0,x=!0,L=0;for(n=0;n<r;n+=1){l=this.globalData.fontManager.getCharData(o.finalText[n],i.fStyle,this.globalData.fontManager.getFontByName(o.f).fFamily),d=l&&l.data||{},a.reset(),C&&s[n].n&&(y=-S,E+=o.yOffset,E+=x?1:0,x=!1),g=d.shapes?d.shapes[0].it:[],p=g.length,a.scale(o.finalSize/100,o.finalSize/100),C&&this.applyTextPropertiesToMatrix(o,a,s[n].line,y,E),b=createSizedArray(p-1);var I=0;for(f=0;f<p;f+=1)if(g[f].ty==="sh"){for(u=g[f].ks.k.i.length,m=g[f].ks.k,_=[],c=1;c<u;c+=1)c===1&&_.push(a.applyToX(m.v[0][0],m.v[0][1],0),a.applyToY(m.v[0][0],m.v[0][1],0)),_.push(a.applyToX(m.o[c-1][0],m.o[c-1][1],0),a.applyToY(m.o[c-1][0],m.o[c-1][1],0),a.applyToX(m.i[c][0],m.i[c][1],0),a.applyToY(m.i[c][0],m.i[c][1],0),a.applyToX(m.v[c][0],m.v[c][1],0),a.applyToY(m.v[c][0],m.v[c][1],0));_.push(a.applyToX(m.o[c-1][0],m.o[c-1][1],0),a.applyToY(m.o[c-1][0],m.o[c-1][1],0),a.applyToX(m.i[0][0],m.i[0][1],0),a.applyToY(m.i[0][0],m.i[0][1],0),a.applyToX(m.v[0][0],m.v[0][1],0),a.applyToY(m.v[0][0],m.v[0][1],0)),b[I]=_,I+=1}C&&(y+=s[n].l,y+=S),this.textSpans[L]?this.textSpans[L].elem=b:this.textSpans[L]={elem:b},L+=1}},CVTextElement.prototype.renderInnerContent=function(){this.validateText();var o=this.canvasContext;o.font=this.values.fValue,this.globalData.renderer.ctxLineCap("butt"),this.globalData.renderer.ctxLineJoin("miter"),this.globalData.renderer.ctxMiterLimit(4),this.data.singleShape||this.textAnimator.getMeasures(this.textProperty.currentData,this.lettersChangedFlag);var e,t,i,n,r,s,a=this.textAnimator.renderedLetters,l=this.textProperty.currentData.l;t=l.length;var d,c=null,u=null,g=null,f,p,m=this.globalData.renderer;for(e=0;e<t;e+=1)if(!l[e].n){if(d=a[e],d&&(m.save(),m.ctxTransform(d.p),m.ctxOpacity(d.o)),this.fill){for(d&&d.fc?c!==d.fc&&(m.ctxFillStyle(d.fc),c=d.fc):c!==this.values.fill&&(c=this.values.fill,m.ctxFillStyle(this.values.fill)),f=this.textSpans[e].elem,n=f.length,this.globalData.canvasContext.beginPath(),i=0;i<n;i+=1)for(p=f[i],s=p.length,this.globalData.canvasContext.moveTo(p[0],p[1]),r=2;r<s;r+=6)this.globalData.canvasContext.bezierCurveTo(p[r],p[r+1],p[r+2],p[r+3],p[r+4],p[r+5]);this.globalData.canvasContext.closePath(),m.ctxFill()}if(this.stroke){for(d&&d.sw?g!==d.sw&&(g=d.sw,m.ctxLineWidth(d.sw)):g!==this.values.sWidth&&(g=this.values.sWidth,m.ctxLineWidth(this.values.sWidth)),d&&d.sc?u!==d.sc&&(u=d.sc,m.ctxStrokeStyle(d.sc)):u!==this.values.stroke&&(u=this.values.stroke,m.ctxStrokeStyle(this.values.stroke)),f=this.textSpans[e].elem,n=f.length,this.globalData.canvasContext.beginPath(),i=0;i<n;i+=1)for(p=f[i],s=p.length,this.globalData.canvasContext.moveTo(p[0],p[1]),r=2;r<s;r+=6)this.globalData.canvasContext.bezierCurveTo(p[r],p[r+1],p[r+2],p[r+3],p[r+4],p[r+5]);this.globalData.canvasContext.closePath(),m.ctxStroke()}d&&this.globalData.renderer.restore()}};function CVImageElement(o,e,t){this.assetData=e.getAssetData(o.refId),this.img=e.imageLoader.getAsset(this.assetData),this.initElement(o,e,t)}extendPrototype([BaseElement,TransformElement,CVBaseElement,HierarchyElement,FrameElement,RenderableElement],CVImageElement),CVImageElement.prototype.initElement=SVGShapeElement.prototype.initElement,CVImageElement.prototype.prepareFrame=IImageElement.prototype.prepareFrame,CVImageElement.prototype.createContent=function(){if(this.img.width&&(this.assetData.w!==this.img.width||this.assetData.h!==this.img.height)){var o=createTag("canvas");o.width=this.assetData.w,o.height=this.assetData.h;var e=o.getContext("2d"),t=this.img.width,i=this.img.height,n=t/i,r=this.assetData.w/this.assetData.h,s,a,l=this.assetData.pr||this.globalData.renderConfig.imagePreserveAspectRatio;n>r&&l==="xMidYMid slice"||n<r&&l!=="xMidYMid slice"?(a=i,s=a*r):(s=t,a=s/r),e.drawImage(this.img,(t-s)/2,(i-a)/2,s,a,0,0,this.assetData.w,this.assetData.h),this.img=o}},CVImageElement.prototype.renderInnerContent=function(){this.canvasContext.drawImage(this.img,0,0)},CVImageElement.prototype.destroy=function(){this.img=null};function CVSolidElement(o,e,t){this.initElement(o,e,t)}extendPrototype([BaseElement,TransformElement,CVBaseElement,HierarchyElement,FrameElement,RenderableElement],CVSolidElement),CVSolidElement.prototype.initElement=SVGShapeElement.prototype.initElement,CVSolidElement.prototype.prepareFrame=IImageElement.prototype.prepareFrame,CVSolidElement.prototype.renderInnerContent=function(){this.globalData.renderer.ctxFillStyle(this.data.sc),this.globalData.renderer.ctxFillRect(0,0,this.data.sw,this.data.sh)};function CanvasRendererBase(){}extendPrototype([BaseRenderer],CanvasRendererBase),CanvasRendererBase.prototype.createShape=function(o){return new CVShapeElement(o,this.globalData,this)},CanvasRendererBase.prototype.createText=function(o){return new CVTextElement(o,this.globalData,this)},CanvasRendererBase.prototype.createImage=function(o){return new CVImageElement(o,this.globalData,this)},CanvasRendererBase.prototype.createSolid=function(o){return new CVSolidElement(o,this.globalData,this)},CanvasRendererBase.prototype.createNull=SVGRenderer.prototype.createNull,CanvasRendererBase.prototype.ctxTransform=function(o){o[0]===1&&o[1]===0&&o[4]===0&&o[5]===1&&o[12]===0&&o[13]===0||this.canvasContext.transform(o[0],o[1],o[4],o[5],o[12],o[13])},CanvasRendererBase.prototype.ctxOpacity=function(o){this.canvasContext.globalAlpha*=o<0?0:o},CanvasRendererBase.prototype.ctxFillStyle=function(o){this.canvasContext.fillStyle=o},CanvasRendererBase.prototype.ctxStrokeStyle=function(o){this.canvasContext.strokeStyle=o},CanvasRendererBase.prototype.ctxLineWidth=function(o){this.canvasContext.lineWidth=o},CanvasRendererBase.prototype.ctxLineCap=function(o){this.canvasContext.lineCap=o},CanvasRendererBase.prototype.ctxLineJoin=function(o){this.canvasContext.lineJoin=o},CanvasRendererBase.prototype.ctxMiterLimit=function(o){this.canvasContext.miterLimit=o},CanvasRendererBase.prototype.ctxFill=function(o){this.canvasContext.fill(o)},CanvasRendererBase.prototype.ctxFillRect=function(o,e,t,i){this.canvasContext.fillRect(o,e,t,i)},CanvasRendererBase.prototype.ctxStroke=function(){this.canvasContext.stroke()},CanvasRendererBase.prototype.reset=function(){if(!this.renderConfig.clearCanvas){this.canvasContext.restore();return}this.contextData.reset()},CanvasRendererBase.prototype.save=function(){this.canvasContext.save()},CanvasRendererBase.prototype.restore=function(o){if(!this.renderConfig.clearCanvas){this.canvasContext.restore();return}o&&(this.globalData.blendMode="source-over"),this.contextData.restore(o)},CanvasRendererBase.prototype.configAnimation=function(o){if(this.animationItem.wrapper){this.animationItem.container=createTag("canvas");var e=this.animationItem.container.style;e.width="100%",e.height="100%";var t="0px 0px 0px";e.transformOrigin=t,e.mozTransformOrigin=t,e.webkitTransformOrigin=t,e["-webkit-transform"]=t,e.contentVisibility=this.renderConfig.contentVisibility,this.animationItem.wrapper.appendChild(this.animationItem.container),this.canvasContext=this.animationItem.container.getContext("2d"),this.renderConfig.className&&this.animationItem.container.setAttribute("class",this.renderConfig.className),this.renderConfig.id&&this.animationItem.container.setAttribute("id",this.renderConfig.id)}else this.canvasContext=this.renderConfig.context;this.contextData.setContext(this.canvasContext),this.data=o,this.layers=o.layers,this.transformCanvas={w:o.w,h:o.h,sx:0,sy:0,tx:0,ty:0},this.setupGlobalData(o,document.body),this.globalData.canvasContext=this.canvasContext,this.globalData.renderer=this,this.globalData.isDashed=!1,this.globalData.progressiveLoad=this.renderConfig.progressiveLoad,this.globalData.transformCanvas=this.transformCanvas,this.elements=createSizedArray(o.layers.length),this.updateContainerSize()},CanvasRendererBase.prototype.updateContainerSize=function(o,e){this.reset();var t,i;o?(t=o,i=e,this.canvasContext.canvas.width=t,this.canvasContext.canvas.height=i):(this.animationItem.wrapper&&this.animationItem.container?(t=this.animationItem.wrapper.offsetWidth,i=this.animationItem.wrapper.offsetHeight):(t=this.canvasContext.canvas.width,i=this.canvasContext.canvas.height),this.canvasContext.canvas.width=t*this.renderConfig.dpr,this.canvasContext.canvas.height=i*this.renderConfig.dpr);var n,r;if(this.renderConfig.preserveAspectRatio.indexOf("meet")!==-1||this.renderConfig.preserveAspectRatio.indexOf("slice")!==-1){var s=this.renderConfig.preserveAspectRatio.split(" "),a=s[1]||"meet",l=s[0]||"xMidYMid",d=l.substr(0,4),c=l.substr(4);n=t/i,r=this.transformCanvas.w/this.transformCanvas.h,r>n&&a==="meet"||r<n&&a==="slice"?(this.transformCanvas.sx=t/(this.transformCanvas.w/this.renderConfig.dpr),this.transformCanvas.sy=t/(this.transformCanvas.w/this.renderConfig.dpr)):(this.transformCanvas.sx=i/(this.transformCanvas.h/this.renderConfig.dpr),this.transformCanvas.sy=i/(this.transformCanvas.h/this.renderConfig.dpr)),d==="xMid"&&(r<n&&a==="meet"||r>n&&a==="slice")?this.transformCanvas.tx=(t-this.transformCanvas.w*(i/this.transformCanvas.h))/2*this.renderConfig.dpr:d==="xMax"&&(r<n&&a==="meet"||r>n&&a==="slice")?this.transformCanvas.tx=(t-this.transformCanvas.w*(i/this.transformCanvas.h))*this.renderConfig.dpr:this.transformCanvas.tx=0,c==="YMid"&&(r>n&&a==="meet"||r<n&&a==="slice")?this.transformCanvas.ty=(i-this.transformCanvas.h*(t/this.transformCanvas.w))/2*this.renderConfig.dpr:c==="YMax"&&(r>n&&a==="meet"||r<n&&a==="slice")?this.transformCanvas.ty=(i-this.transformCanvas.h*(t/this.transformCanvas.w))*this.renderConfig.dpr:this.transformCanvas.ty=0}else this.renderConfig.preserveAspectRatio==="none"?(this.transformCanvas.sx=t/(this.transformCanvas.w/this.renderConfig.dpr),this.transformCanvas.sy=i/(this.transformCanvas.h/this.renderConfig.dpr),this.transformCanvas.tx=0,this.transformCanvas.ty=0):(this.transformCanvas.sx=this.renderConfig.dpr,this.transformCanvas.sy=this.renderConfig.dpr,this.transformCanvas.tx=0,this.transformCanvas.ty=0);this.transformCanvas.props=[this.transformCanvas.sx,0,0,0,0,this.transformCanvas.sy,0,0,0,0,1,0,this.transformCanvas.tx,this.transformCanvas.ty,0,1],this.ctxTransform(this.transformCanvas.props),this.canvasContext.beginPath(),this.canvasContext.rect(0,0,this.transformCanvas.w,this.transformCanvas.h),this.canvasContext.closePath(),this.canvasContext.clip(),this.renderFrame(this.renderedFrame,!0)},CanvasRendererBase.prototype.destroy=function(){this.renderConfig.clearCanvas&&this.animationItem.wrapper&&(this.animationItem.wrapper.innerText="");var o,e=this.layers?this.layers.length:0;for(o=e-1;o>=0;o-=1)this.elements[o]&&this.elements[o].destroy&&this.elements[o].destroy();this.elements.length=0,this.globalData.canvasContext=null,this.animationItem.container=null,this.destroyed=!0},CanvasRendererBase.prototype.renderFrame=function(o,e){if(!(this.renderedFrame===o&&this.renderConfig.clearCanvas===!0&&!e||this.destroyed||o===-1)){this.renderedFrame=o,this.globalData.frameNum=o-this.animationItem._isFirstFrame,this.globalData.frameId+=1,this.globalData._mdf=!this.renderConfig.clearCanvas||e,this.globalData.projectInterface.currentFrame=o;var t,i=this.layers.length;for(this.completeLayers||this.checkLayers(o),t=i-1;t>=0;t-=1)(this.completeLayers||this.elements[t])&&this.elements[t].prepareFrame(o-this.layers[t].st);if(this.globalData._mdf){for(this.renderConfig.clearCanvas===!0?this.canvasContext.clearRect(0,0,this.transformCanvas.w,this.transformCanvas.h):this.save(),t=i-1;t>=0;t-=1)(this.completeLayers||this.elements[t])&&this.elements[t].renderFrame();this.renderConfig.clearCanvas!==!0&&this.restore()}}},CanvasRendererBase.prototype.buildItem=function(o){var e=this.elements;if(!(e[o]||this.layers[o].ty===99)){var t=this.createItem(this.layers[o],this,this.globalData);e[o]=t,t.initExpressions()}},CanvasRendererBase.prototype.checkPendingElements=function(){for(;this.pendingElements.length;){var o=this.pendingElements.pop();o.checkParenting()}},CanvasRendererBase.prototype.hide=function(){this.animationItem.container.style.display="none"},CanvasRendererBase.prototype.show=function(){this.animationItem.container.style.display="block"};function CanvasContext(){this.opacity=-1,this.transform=createTypedArray("float32",16),this.fillStyle="",this.strokeStyle="",this.lineWidth="",this.lineCap="",this.lineJoin="",this.miterLimit="",this.id=Math.random()}function CVContextData(){this.stack=[],this.cArrPos=0,this.cTr=new Matrix;var o,e=15;for(o=0;o<e;o+=1){var t=new CanvasContext;this.stack[o]=t}this._length=e,this.nativeContext=null,this.transformMat=new Matrix,this.currentOpacity=1,this.currentFillStyle="",this.appliedFillStyle="",this.currentStrokeStyle="",this.appliedStrokeStyle="",this.currentLineWidth="",this.appliedLineWidth="",this.currentLineCap="",this.appliedLineCap="",this.currentLineJoin="",this.appliedLineJoin="",this.appliedMiterLimit="",this.currentMiterLimit=""}CVContextData.prototype.duplicate=function(){var o=this._length*2,e=0;for(e=this._length;e<o;e+=1)this.stack[e]=new CanvasContext;this._length=o},CVContextData.prototype.reset=function(){this.cArrPos=0,this.cTr.reset(),this.stack[this.cArrPos].opacity=1},CVContextData.prototype.restore=function(o){this.cArrPos-=1;var e=this.stack[this.cArrPos],t=e.transform,i,n=this.cTr.props;for(i=0;i<16;i+=1)n[i]=t[i];if(o){this.nativeContext.restore();var r=this.stack[this.cArrPos+1];this.appliedFillStyle=r.fillStyle,this.appliedStrokeStyle=r.strokeStyle,this.appliedLineWidth=r.lineWidth,this.appliedLineCap=r.lineCap,this.appliedLineJoin=r.lineJoin,this.appliedMiterLimit=r.miterLimit}this.nativeContext.setTransform(t[0],t[1],t[4],t[5],t[12],t[13]),(o||e.opacity!==-1&&this.currentOpacity!==e.opacity)&&(this.nativeContext.globalAlpha=e.opacity,this.currentOpacity=e.opacity),this.currentFillStyle=e.fillStyle,this.currentStrokeStyle=e.strokeStyle,this.currentLineWidth=e.lineWidth,this.currentLineCap=e.lineCap,this.currentLineJoin=e.lineJoin,this.currentMiterLimit=e.miterLimit},CVContextData.prototype.save=function(o){o&&this.nativeContext.save();var e=this.cTr.props;this._length<=this.cArrPos&&this.duplicate();var t=this.stack[this.cArrPos],i;for(i=0;i<16;i+=1)t.transform[i]=e[i];this.cArrPos+=1;var n=this.stack[this.cArrPos];n.opacity=t.opacity,n.fillStyle=t.fillStyle,n.strokeStyle=t.strokeStyle,n.lineWidth=t.lineWidth,n.lineCap=t.lineCap,n.lineJoin=t.lineJoin,n.miterLimit=t.miterLimit},CVContextData.prototype.setOpacity=function(o){this.stack[this.cArrPos].opacity=o},CVContextData.prototype.setContext=function(o){this.nativeContext=o},CVContextData.prototype.fillStyle=function(o){this.stack[this.cArrPos].fillStyle!==o&&(this.currentFillStyle=o,this.stack[this.cArrPos].fillStyle=o)},CVContextData.prototype.strokeStyle=function(o){this.stack[this.cArrPos].strokeStyle!==o&&(this.currentStrokeStyle=o,this.stack[this.cArrPos].strokeStyle=o)},CVContextData.prototype.lineWidth=function(o){this.stack[this.cArrPos].lineWidth!==o&&(this.currentLineWidth=o,this.stack[this.cArrPos].lineWidth=o)},CVContextData.prototype.lineCap=function(o){this.stack[this.cArrPos].lineCap!==o&&(this.currentLineCap=o,this.stack[this.cArrPos].lineCap=o)},CVContextData.prototype.lineJoin=function(o){this.stack[this.cArrPos].lineJoin!==o&&(this.currentLineJoin=o,this.stack[this.cArrPos].lineJoin=o)},CVContextData.prototype.miterLimit=function(o){this.stack[this.cArrPos].miterLimit!==o&&(this.currentMiterLimit=o,this.stack[this.cArrPos].miterLimit=o)},CVContextData.prototype.transform=function(o){this.transformMat.cloneFromProps(o);var e=this.cTr;this.transformMat.multiply(e),e.cloneFromProps(this.transformMat.props);var t=e.props;this.nativeContext.setTransform(t[0],t[1],t[4],t[5],t[12],t[13])},CVContextData.prototype.opacity=function(o){var e=this.stack[this.cArrPos].opacity;e*=o<0?0:o,this.stack[this.cArrPos].opacity!==e&&(this.currentOpacity!==o&&(this.nativeContext.globalAlpha=o,this.currentOpacity=o),this.stack[this.cArrPos].opacity=e)},CVContextData.prototype.fill=function(o){this.appliedFillStyle!==this.currentFillStyle&&(this.appliedFillStyle=this.currentFillStyle,this.nativeContext.fillStyle=this.appliedFillStyle),this.nativeContext.fill(o)},CVContextData.prototype.fillRect=function(o,e,t,i){this.appliedFillStyle!==this.currentFillStyle&&(this.appliedFillStyle=this.currentFillStyle,this.nativeContext.fillStyle=this.appliedFillStyle),this.nativeContext.fillRect(o,e,t,i)},CVContextData.prototype.stroke=function(){this.appliedStrokeStyle!==this.currentStrokeStyle&&(this.appliedStrokeStyle=this.currentStrokeStyle,this.nativeContext.strokeStyle=this.appliedStrokeStyle),this.appliedLineWidth!==this.currentLineWidth&&(this.appliedLineWidth=this.currentLineWidth,this.nativeContext.lineWidth=this.appliedLineWidth),this.appliedLineCap!==this.currentLineCap&&(this.appliedLineCap=this.currentLineCap,this.nativeContext.lineCap=this.appliedLineCap),this.appliedLineJoin!==this.currentLineJoin&&(this.appliedLineJoin=this.currentLineJoin,this.nativeContext.lineJoin=this.appliedLineJoin),this.appliedMiterLimit!==this.currentMiterLimit&&(this.appliedMiterLimit=this.currentMiterLimit,this.nativeContext.miterLimit=this.appliedMiterLimit),this.nativeContext.stroke()};function CVCompElement(o,e,t){this.completeLayers=!1,this.layers=o.layers,this.pendingElements=[],this.elements=createSizedArray(this.layers.length),this.initElement(o,e,t),this.tm=o.tm?PropertyFactory.getProp(this,o.tm,0,e.frameRate,this):{_placeholder:!0}}extendPrototype([CanvasRendererBase,ICompElement,CVBaseElement],CVCompElement),CVCompElement.prototype.renderInnerContent=function(){var o=this.canvasContext;o.beginPath(),o.moveTo(0,0),o.lineTo(this.data.w,0),o.lineTo(this.data.w,this.data.h),o.lineTo(0,this.data.h),o.lineTo(0,0),o.clip();var e,t=this.layers.length;for(e=t-1;e>=0;e-=1)(this.completeLayers||this.elements[e])&&this.elements[e].renderFrame()},CVCompElement.prototype.destroy=function(){var o,e=this.layers.length;for(o=e-1;o>=0;o-=1)this.elements[o]&&this.elements[o].destroy();this.layers=null,this.elements=null},CVCompElement.prototype.createComp=function(o){return new CVCompElement(o,this.globalData,this)};function CanvasRenderer(o,e){this.animationItem=o,this.renderConfig={clearCanvas:e&&e.clearCanvas!==void 0?e.clearCanvas:!0,context:e&&e.context||null,progressiveLoad:e&&e.progressiveLoad||!1,preserveAspectRatio:e&&e.preserveAspectRatio||"xMidYMid meet",imagePreserveAspectRatio:e&&e.imagePreserveAspectRatio||"xMidYMid slice",contentVisibility:e&&e.contentVisibility||"visible",className:e&&e.className||"",id:e&&e.id||"",runExpressions:!e||e.runExpressions===void 0||e.runExpressions},this.renderConfig.dpr=e&&e.dpr||1,this.animationItem.wrapper&&(this.renderConfig.dpr=e&&e.dpr||window.devicePixelRatio||1),this.renderedFrame=-1,this.globalData={frameNum:-1,_mdf:!1,renderConfig:this.renderConfig,currentGlobalAlpha:-1},this.contextData=new CVContextData,this.elements=[],this.pendingElements=[],this.transformMat=new Matrix,this.completeLayers=!1,this.rendererType="canvas",this.renderConfig.clearCanvas&&(this.ctxTransform=this.contextData.transform.bind(this.contextData),this.ctxOpacity=this.contextData.opacity.bind(this.contextData),this.ctxFillStyle=this.contextData.fillStyle.bind(this.contextData),this.ctxStrokeStyle=this.contextData.strokeStyle.bind(this.contextData),this.ctxLineWidth=this.contextData.lineWidth.bind(this.contextData),this.ctxLineCap=this.contextData.lineCap.bind(this.contextData),this.ctxLineJoin=this.contextData.lineJoin.bind(this.contextData),this.ctxMiterLimit=this.contextData.miterLimit.bind(this.contextData),this.ctxFill=this.contextData.fill.bind(this.contextData),this.ctxFillRect=this.contextData.fillRect.bind(this.contextData),this.ctxStroke=this.contextData.stroke.bind(this.contextData),this.save=this.contextData.save.bind(this.contextData))}extendPrototype([CanvasRendererBase],CanvasRenderer),CanvasRenderer.prototype.createComp=function(o){return new CVCompElement(o,this.globalData,this)};function HBaseElement(){}HBaseElement.prototype={checkBlendMode:function(){},initRendererElement:function(){this.baseElement=createTag(this.data.tg||"div"),this.data.hasMask?(this.svgElement=createNS("svg"),this.layerElement=createNS("g"),this.maskedElement=this.layerElement,this.svgElement.appendChild(this.layerElement),this.baseElement.appendChild(this.svgElement)):this.layerElement=this.baseElement,styleDiv(this.baseElement)},createContainerElements:function(){this.renderableEffectsManager=new CVEffects(this),this.transformedElement=this.baseElement,this.maskedElement=this.layerElement,this.data.ln&&this.layerElement.setAttribute("id",this.data.ln),this.data.cl&&this.layerElement.setAttribute("class",this.data.cl),this.data.bm!==0&&this.setBlendMode()},renderElement:function(){var e=this.transformedElement?this.transformedElement.style:{};if(this.finalTransform._matMdf){var t=this.finalTransform.mat.toCSS();e.transform=t,e.webkitTransform=t}this.finalTransform._opMdf&&(e.opacity=this.finalTransform.mProp.o.v)},renderFrame:function(){this.data.hd||this.hidden||(this.renderTransform(),this.renderRenderable(),this.renderElement(),this.renderInnerContent(),this._isFirstFrame&&(this._isFirstFrame=!1))},destroy:function(){this.layerElement=null,this.transformedElement=null,this.matteElement&&(this.matteElement=null),this.maskManager&&(this.maskManager.destroy(),this.maskManager=null)},createRenderableComponents:function(){this.maskManager=new MaskElement(this.data,this,this.globalData)},addEffects:function(){},setMatte:function(){}},HBaseElement.prototype.getBaseElement=SVGBaseElement.prototype.getBaseElement,HBaseElement.prototype.destroyBaseElement=HBaseElement.prototype.destroy,HBaseElement.prototype.buildElementParenting=BaseRenderer.prototype.buildElementParenting;function HSolidElement(o,e,t){this.initElement(o,e,t)}extendPrototype([BaseElement,TransformElement,HBaseElement,HierarchyElement,FrameElement,RenderableDOMElement],HSolidElement),HSolidElement.prototype.createContent=function(){var o;this.data.hasMask?(o=createNS("rect"),o.setAttribute("width",this.data.sw),o.setAttribute("height",this.data.sh),o.setAttribute("fill",this.data.sc),this.svgElement.setAttribute("width",this.data.sw),this.svgElement.setAttribute("height",this.data.sh)):(o=createTag("div"),o.style.width=this.data.sw+"px",o.style.height=this.data.sh+"px",o.style.backgroundColor=this.data.sc),this.layerElement.appendChild(o)};function HShapeElement(o,e,t){this.shapes=[],this.shapesData=o.shapes,this.stylesList=[],this.shapeModifiers=[],this.itemsData=[],this.processedElements=[],this.animatedContents=[],this.shapesContainer=createNS("g"),this.initElement(o,e,t),this.prevViewData=[],this.currentBBox={x:999999,y:-999999,h:0,w:0}}extendPrototype([BaseElement,TransformElement,HSolidElement,SVGShapeElement,HBaseElement,HierarchyElement,FrameElement,RenderableElement],HShapeElement),HShapeElement.prototype._renderShapeFrame=HShapeElement.prototype.renderInnerContent,HShapeElement.prototype.createContent=function(){var o;if(this.baseElement.style.fontSize=0,this.data.hasMask)this.layerElement.appendChild(this.shapesContainer),o=this.svgElement;else{o=createNS("svg");var e=this.comp.data?this.comp.data:this.globalData.compSize;o.setAttribute("width",e.w),o.setAttribute("height",e.h),o.appendChild(this.shapesContainer),this.layerElement.appendChild(o)}this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.shapesContainer,0,[],!0),this.filterUniqueShapes(),this.shapeCont=o},HShapeElement.prototype.getTransformedPoint=function(o,e){var t,i=o.length;for(t=0;t<i;t+=1)e=o[t].mProps.v.applyToPointArray(e[0],e[1],0);return e},HShapeElement.prototype.calculateShapeBoundingBox=function(o,e){var t=o.sh.v,i=o.transformers,n,r=t._length,s,a,l,d;if(!(r<=1)){for(n=0;n<r-1;n+=1)s=this.getTransformedPoint(i,t.v[n]),a=this.getTransformedPoint(i,t.o[n]),l=this.getTransformedPoint(i,t.i[n+1]),d=this.getTransformedPoint(i,t.v[n+1]),this.checkBounds(s,a,l,d,e);t.c&&(s=this.getTransformedPoint(i,t.v[n]),a=this.getTransformedPoint(i,t.o[n]),l=this.getTransformedPoint(i,t.i[0]),d=this.getTransformedPoint(i,t.v[0]),this.checkBounds(s,a,l,d,e))}},HShapeElement.prototype.checkBounds=function(o,e,t,i,n){this.getBoundsOfCurve(o,e,t,i);var r=this.shapeBoundingBox;n.x=bmMin(r.left,n.x),n.xMax=bmMax(r.right,n.xMax),n.y=bmMin(r.top,n.y),n.yMax=bmMax(r.bottom,n.yMax)},HShapeElement.prototype.shapeBoundingBox={left:0,right:0,top:0,bottom:0},HShapeElement.prototype.tempBoundingBox={x:0,xMax:0,y:0,yMax:0,width:0,height:0},HShapeElement.prototype.getBoundsOfCurve=function(o,e,t,i){for(var n=[[o[0],i[0]],[o[1],i[1]]],r,s,a,l,d,c,u,g=0;g<2;++g)s=6*o[g]-12*e[g]+6*t[g],r=-3*o[g]+9*e[g]-9*t[g]+3*i[g],a=3*e[g]-3*o[g],s|=0,r|=0,a|=0,r===0&&s===0||(r===0?(l=-a/s,l>0&&l<1&&n[g].push(this.calculateF(l,o,e,t,i,g))):(d=s*s-4*a*r,d>=0&&(c=(-s+bmSqrt(d))/(2*r),c>0&&c<1&&n[g].push(this.calculateF(c,o,e,t,i,g)),u=(-s-bmSqrt(d))/(2*r),u>0&&u<1&&n[g].push(this.calculateF(u,o,e,t,i,g)))));this.shapeBoundingBox.left=bmMin.apply(null,n[0]),this.shapeBoundingBox.top=bmMin.apply(null,n[1]),this.shapeBoundingBox.right=bmMax.apply(null,n[0]),this.shapeBoundingBox.bottom=bmMax.apply(null,n[1])},HShapeElement.prototype.calculateF=function(o,e,t,i,n,r){return bmPow(1-o,3)*e[r]+3*bmPow(1-o,2)*o*t[r]+3*(1-o)*bmPow(o,2)*i[r]+bmPow(o,3)*n[r]},HShapeElement.prototype.calculateBoundingBox=function(o,e){var t,i=o.length;for(t=0;t<i;t+=1)o[t]&&o[t].sh?this.calculateShapeBoundingBox(o[t],e):o[t]&&o[t].it?this.calculateBoundingBox(o[t].it,e):o[t]&&o[t].style&&o[t].w&&this.expandStrokeBoundingBox(o[t].w,e)},HShapeElement.prototype.expandStrokeBoundingBox=function(o,e){var t=0;if(o.keyframes){for(var i=0;i<o.keyframes.length;i+=1){var n=o.keyframes[i].s;n>t&&(t=n)}t*=o.mult}else t=o.v*o.mult;e.x-=t,e.xMax+=t,e.y-=t,e.yMax+=t},HShapeElement.prototype.currentBoxContains=function(o){return this.currentBBox.x<=o.x&&this.currentBBox.y<=o.y&&this.currentBBox.width+this.currentBBox.x>=o.x+o.width&&this.currentBBox.height+this.currentBBox.y>=o.y+o.height},HShapeElement.prototype.renderInnerContent=function(){if(this._renderShapeFrame(),!this.hidden&&(this._isFirstFrame||this._mdf)){var o=this.tempBoundingBox,e=999999;if(o.x=e,o.xMax=-e,o.y=e,o.yMax=-e,this.calculateBoundingBox(this.itemsData,o),o.width=o.xMax<o.x?0:o.xMax-o.x,o.height=o.yMax<o.y?0:o.yMax-o.y,this.currentBoxContains(o))return;var t=!1;if(this.currentBBox.w!==o.width&&(this.currentBBox.w=o.width,this.shapeCont.setAttribute("width",o.width),t=!0),this.currentBBox.h!==o.height&&(this.currentBBox.h=o.height,this.shapeCont.setAttribute("height",o.height),t=!0),t||this.currentBBox.x!==o.x||this.currentBBox.y!==o.y){this.currentBBox.w=o.width,this.currentBBox.h=o.height,this.currentBBox.x=o.x,this.currentBBox.y=o.y,this.shapeCont.setAttribute("viewBox",this.currentBBox.x+" "+this.currentBBox.y+" "+this.currentBBox.w+" "+this.currentBBox.h);var i=this.shapeCont.style,n="translate("+this.currentBBox.x+"px,"+this.currentBBox.y+"px)";i.transform=n,i.webkitTransform=n}}};function HTextElement(o,e,t){this.textSpans=[],this.textPaths=[],this.currentBBox={x:999999,y:-999999,h:0,w:0},this.renderType="svg",this.isMasked=!1,this.initElement(o,e,t)}extendPrototype([BaseElement,TransformElement,HBaseElement,HierarchyElement,FrameElement,RenderableDOMElement,ITextElement],HTextElement),HTextElement.prototype.createContent=function(){if(this.isMasked=this.checkMasks(),this.isMasked){this.renderType="svg",this.compW=this.comp.data.w,this.compH=this.comp.data.h,this.svgElement.setAttribute("width",this.compW),this.svgElement.setAttribute("height",this.compH);var o=createNS("g");this.maskedElement.appendChild(o),this.innerElem=o}else this.renderType="html",this.innerElem=this.layerElement;this.checkParenting()},HTextElement.prototype.buildNewText=function(){var o=this.textProperty.currentData;this.renderedLetters=createSizedArray(o.l?o.l.length:0);var e=this.innerElem.style,t=o.fc?this.buildColor(o.fc):"rgba(0,0,0,0)";e.fill=t,e.color=t,o.sc&&(e.stroke=this.buildColor(o.sc),e.strokeWidth=o.sw+"px");var i=this.globalData.fontManager.getFontByName(o.f);if(!this.globalData.fontManager.chars)if(e.fontSize=o.finalSize+"px",e.lineHeight=o.finalSize+"px",i.fClass)this.innerElem.className=i.fClass;else{e.fontFamily=i.fFamily;var n=o.fWeight,r=o.fStyle;e.fontStyle=r,e.fontWeight=n}var s,a,l=o.l;a=l.length;var d,c,u,g=this.mHelper,f,p="",m=0;for(s=0;s<a;s+=1){if(this.globalData.fontManager.chars?(this.textPaths[m]?d=this.textPaths[m]:(d=createNS("path"),d.setAttribute("stroke-linecap",lineCapEnum[1]),d.setAttribute("stroke-linejoin",lineJoinEnum[2]),d.setAttribute("stroke-miterlimit","4")),this.isMasked||(this.textSpans[m]?(c=this.textSpans[m],u=c.children[0]):(c=createTag("div"),c.style.lineHeight=0,u=createNS("svg"),u.appendChild(d),styleDiv(c)))):this.isMasked?d=this.textPaths[m]?this.textPaths[m]:createNS("text"):this.textSpans[m]?(c=this.textSpans[m],d=this.textPaths[m]):(c=createTag("span"),styleDiv(c),d=createTag("span"),styleDiv(d),c.appendChild(d)),this.globalData.fontManager.chars){var b=this.globalData.fontManager.getCharData(o.finalText[s],i.fStyle,this.globalData.fontManager.getFontByName(o.f).fFamily),_;if(b?_=b.data:_=null,g.reset(),_&&_.shapes&&_.shapes.length&&(f=_.shapes[0].it,g.scale(o.finalSize/100,o.finalSize/100),p=this.createPathShape(g,f),d.setAttribute("d",p)),this.isMasked)this.innerElem.appendChild(d);else{if(this.innerElem.appendChild(c),_&&_.shapes){document.body.appendChild(u);var C=u.getBBox();u.setAttribute("width",C.width+2),u.setAttribute("height",C.height+2),u.setAttribute("viewBox",C.x-1+" "+(C.y-1)+" "+(C.width+2)+" "+(C.height+2));var S=u.style,y="translate("+(C.x-1)+"px,"+(C.y-1)+"px)";S.transform=y,S.webkitTransform=y,l[s].yOffset=C.y-1}else u.setAttribute("width",1),u.setAttribute("height",1);c.appendChild(u)}}else if(d.textContent=l[s].val,d.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),this.isMasked)this.innerElem.appendChild(d);else{this.innerElem.appendChild(c);var E=d.style,x="translate3d(0,"+-o.finalSize/1.2+"px,0)";E.transform=x,E.webkitTransform=x}this.isMasked?this.textSpans[m]=d:this.textSpans[m]=c,this.textSpans[m].style.display="block",this.textPaths[m]=d,m+=1}for(;m<this.textSpans.length;)this.textSpans[m].style.display="none",m+=1},HTextElement.prototype.renderInnerContent=function(){this.validateText();var o;if(this.data.singleShape){if(!this._isFirstFrame&&!this.lettersChangedFlag)return;if(this.isMasked&&this.finalTransform._matMdf){this.svgElement.setAttribute("viewBox",-this.finalTransform.mProp.p.v[0]+" "+-this.finalTransform.mProp.p.v[1]+" "+this.compW+" "+this.compH),o=this.svgElement.style;var e="translate("+-this.finalTransform.mProp.p.v[0]+"px,"+-this.finalTransform.mProp.p.v[1]+"px)";o.transform=e,o.webkitTransform=e}}if(this.textAnimator.getMeasures(this.textProperty.currentData,this.lettersChangedFlag),!(!this.lettersChangedFlag&&!this.textAnimator.lettersChangedFlag)){var t,i,n=0,r=this.textAnimator.renderedLetters,s=this.textProperty.currentData.l;i=s.length;var a,l,d;for(t=0;t<i;t+=1)s[t].n?n+=1:(l=this.textSpans[t],d=this.textPaths[t],a=r[n],n+=1,a._mdf.m&&(this.isMasked?l.setAttribute("transform",a.m):(l.style.webkitTransform=a.m,l.style.transform=a.m)),l.style.opacity=a.o,a.sw&&a._mdf.sw&&d.setAttribute("stroke-width",a.sw),a.sc&&a._mdf.sc&&d.setAttribute("stroke",a.sc),a.fc&&a._mdf.fc&&(d.setAttribute("fill",a.fc),d.style.color=a.fc));if(this.innerElem.getBBox&&!this.hidden&&(this._isFirstFrame||this._mdf)){var c=this.innerElem.getBBox();this.currentBBox.w!==c.width&&(this.currentBBox.w=c.width,this.svgElement.setAttribute("width",c.width)),this.currentBBox.h!==c.height&&(this.currentBBox.h=c.height,this.svgElement.setAttribute("height",c.height));var u=1;if(this.currentBBox.w!==c.width+u*2||this.currentBBox.h!==c.height+u*2||this.currentBBox.x!==c.x-u||this.currentBBox.y!==c.y-u){this.currentBBox.w=c.width+u*2,this.currentBBox.h=c.height+u*2,this.currentBBox.x=c.x-u,this.currentBBox.y=c.y-u,this.svgElement.setAttribute("viewBox",this.currentBBox.x+" "+this.currentBBox.y+" "+this.currentBBox.w+" "+this.currentBBox.h),o=this.svgElement.style;var g="translate("+this.currentBBox.x+"px,"+this.currentBBox.y+"px)";o.transform=g,o.webkitTransform=g}}}};function HCameraElement(o,e,t){this.initFrame(),this.initBaseData(o,e,t),this.initHierarchy();var i=PropertyFactory.getProp;if(this.pe=i(this,o.pe,0,0,this),o.ks.p.s?(this.px=i(this,o.ks.p.x,1,0,this),this.py=i(this,o.ks.p.y,1,0,this),this.pz=i(this,o.ks.p.z,1,0,this)):this.p=i(this,o.ks.p,1,0,this),o.ks.a&&(this.a=i(this,o.ks.a,1,0,this)),o.ks.or.k.length&&o.ks.or.k[0].to){var n,r=o.ks.or.k.length;for(n=0;n<r;n+=1)o.ks.or.k[n].to=null,o.ks.or.k[n].ti=null}this.or=i(this,o.ks.or,1,degToRads,this),this.or.sh=!0,this.rx=i(this,o.ks.rx,0,degToRads,this),this.ry=i(this,o.ks.ry,0,degToRads,this),this.rz=i(this,o.ks.rz,0,degToRads,this),this.mat=new Matrix,this._prevMat=new Matrix,this._isFirstFrame=!0,this.finalTransform={mProp:this}}extendPrototype([BaseElement,FrameElement,HierarchyElement],HCameraElement),HCameraElement.prototype.setup=function(){var o,e=this.comp.threeDElements.length,t,i,n;for(o=0;o<e;o+=1)if(t=this.comp.threeDElements[o],t.type==="3d"){i=t.perspectiveElem.style,n=t.container.style;var r=this.pe.v+"px",s="0px 0px 0px",a="matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)";i.perspective=r,i.webkitPerspective=r,n.transformOrigin=s,n.mozTransformOrigin=s,n.webkitTransformOrigin=s,i.transform=a,i.webkitTransform=a}},HCameraElement.prototype.createElements=function(){},HCameraElement.prototype.hide=function(){},HCameraElement.prototype.renderFrame=function(){var o=this._isFirstFrame,e,t;if(this.hierarchy)for(t=this.hierarchy.length,e=0;e<t;e+=1)o=this.hierarchy[e].finalTransform.mProp._mdf||o;if(o||this.pe._mdf||this.p&&this.p._mdf||this.px&&(this.px._mdf||this.py._mdf||this.pz._mdf)||this.rx._mdf||this.ry._mdf||this.rz._mdf||this.or._mdf||this.a&&this.a._mdf){if(this.mat.reset(),this.hierarchy)for(t=this.hierarchy.length-1,e=t;e>=0;e-=1){var i=this.hierarchy[e].finalTransform.mProp;this.mat.translate(-i.p.v[0],-i.p.v[1],i.p.v[2]),this.mat.rotateX(-i.or.v[0]).rotateY(-i.or.v[1]).rotateZ(i.or.v[2]),this.mat.rotateX(-i.rx.v).rotateY(-i.ry.v).rotateZ(i.rz.v),this.mat.scale(1/i.s.v[0],1/i.s.v[1],1/i.s.v[2]),this.mat.translate(i.a.v[0],i.a.v[1],i.a.v[2])}if(this.p?this.mat.translate(-this.p.v[0],-this.p.v[1],this.p.v[2]):this.mat.translate(-this.px.v,-this.py.v,this.pz.v),this.a){var n;this.p?n=[this.p.v[0]-this.a.v[0],this.p.v[1]-this.a.v[1],this.p.v[2]-this.a.v[2]]:n=[this.px.v-this.a.v[0],this.py.v-this.a.v[1],this.pz.v-this.a.v[2]];var r=Math.sqrt(Math.pow(n[0],2)+Math.pow(n[1],2)+Math.pow(n[2],2)),s=[n[0]/r,n[1]/r,n[2]/r],a=Math.sqrt(s[2]*s[2]+s[0]*s[0]),l=Math.atan2(s[1],a),d=Math.atan2(s[0],-s[2]);this.mat.rotateY(d).rotateX(-l)}this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v),this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]),this.mat.translate(this.globalData.compSize.w/2,this.globalData.compSize.h/2,0),this.mat.translate(0,0,this.pe.v);var c=!this._prevMat.equals(this.mat);if((c||this.pe._mdf)&&this.comp.threeDElements){t=this.comp.threeDElements.length;var u,g,f;for(e=0;e<t;e+=1)if(u=this.comp.threeDElements[e],u.type==="3d"){if(c){var p=this.mat.toCSS();f=u.container.style,f.transform=p,f.webkitTransform=p}this.pe._mdf&&(g=u.perspectiveElem.style,g.perspective=this.pe.v+"px",g.webkitPerspective=this.pe.v+"px")}this.mat.clone(this._prevMat)}}this._isFirstFrame=!1},HCameraElement.prototype.prepareFrame=function(o){this.prepareProperties(o,!0)},HCameraElement.prototype.destroy=function(){},HCameraElement.prototype.getBaseElement=function(){return null};function HImageElement(o,e,t){this.assetData=e.getAssetData(o.refId),this.initElement(o,e,t)}extendPrototype([BaseElement,TransformElement,HBaseElement,HSolidElement,HierarchyElement,FrameElement,RenderableElement],HImageElement),HImageElement.prototype.createContent=function(){var o=this.globalData.getAssetsPath(this.assetData),e=new Image;this.data.hasMask?(this.imageElem=createNS("image"),this.imageElem.setAttribute("width",this.assetData.w+"px"),this.imageElem.setAttribute("height",this.assetData.h+"px"),this.imageElem.setAttributeNS("http://www.w3.org/1999/xlink","href",o),this.layerElement.appendChild(this.imageElem),this.baseElement.setAttribute("width",this.assetData.w),this.baseElement.setAttribute("height",this.assetData.h)):this.layerElement.appendChild(e),e.crossOrigin="anonymous",e.src=o,this.data.ln&&this.baseElement.setAttribute("id",this.data.ln)};function HybridRendererBase(o,e){this.animationItem=o,this.layers=null,this.renderedFrame=-1,this.renderConfig={className:e&&e.className||"",imagePreserveAspectRatio:e&&e.imagePreserveAspectRatio||"xMidYMid slice",hideOnTransparent:!(e&&e.hideOnTransparent===!1),filterSize:{width:e&&e.filterSize&&e.filterSize.width||"400%",height:e&&e.filterSize&&e.filterSize.height||"400%",x:e&&e.filterSize&&e.filterSize.x||"-100%",y:e&&e.filterSize&&e.filterSize.y||"-100%"}},this.globalData={_mdf:!1,frameNum:-1,renderConfig:this.renderConfig},this.pendingElements=[],this.elements=[],this.threeDElements=[],this.destroyed=!1,this.camera=null,this.supports3d=!0,this.rendererType="html"}extendPrototype([BaseRenderer],HybridRendererBase),HybridRendererBase.prototype.buildItem=SVGRenderer.prototype.buildItem,HybridRendererBase.prototype.checkPendingElements=function(){for(;this.pendingElements.length;){var o=this.pendingElements.pop();o.checkParenting()}},HybridRendererBase.prototype.appendElementInPos=function(o,e){var t=o.getBaseElement();if(t){var i=this.layers[e];if(!i.ddd||!this.supports3d)if(this.threeDElements)this.addTo3dContainer(t,e);else{for(var n=0,r,s,a;n<e;)this.elements[n]&&this.elements[n]!==!0&&this.elements[n].getBaseElement&&(s=this.elements[n],a=this.layers[n].ddd?this.getThreeDContainerByPos(n):s.getBaseElement(),r=a||r),n+=1;r?(!i.ddd||!this.supports3d)&&this.layerElement.insertBefore(t,r):(!i.ddd||!this.supports3d)&&this.layerElement.appendChild(t)}else this.addTo3dContainer(t,e)}},HybridRendererBase.prototype.createShape=function(o){return this.supports3d?new HShapeElement(o,this.globalData,this):new SVGShapeElement(o,this.globalData,this)},HybridRendererBase.prototype.createText=function(o){return this.supports3d?new HTextElement(o,this.globalData,this):new SVGTextLottieElement(o,this.globalData,this)},HybridRendererBase.prototype.createCamera=function(o){return this.camera=new HCameraElement(o,this.globalData,this),this.camera},HybridRendererBase.prototype.createImage=function(o){return this.supports3d?new HImageElement(o,this.globalData,this):new IImageElement(o,this.globalData,this)},HybridRendererBase.prototype.createSolid=function(o){return this.supports3d?new HSolidElement(o,this.globalData,this):new ISolidElement(o,this.globalData,this)},HybridRendererBase.prototype.createNull=SVGRenderer.prototype.createNull,HybridRendererBase.prototype.getThreeDContainerByPos=function(o){for(var e=0,t=this.threeDElements.length;e<t;){if(this.threeDElements[e].startPos<=o&&this.threeDElements[e].endPos>=o)return this.threeDElements[e].perspectiveElem;e+=1}return null},HybridRendererBase.prototype.createThreeDContainer=function(o,e){var t=createTag("div"),i,n;styleDiv(t);var r=createTag("div");if(styleDiv(r),e==="3d"){i=t.style,i.width=this.globalData.compSize.w+"px",i.height=this.globalData.compSize.h+"px";var s="50% 50%";i.webkitTransformOrigin=s,i.mozTransformOrigin=s,i.transformOrigin=s,n=r.style;var a="matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)";n.transform=a,n.webkitTransform=a}t.appendChild(r);var l={container:r,perspectiveElem:t,startPos:o,endPos:o,type:e};return this.threeDElements.push(l),l},HybridRendererBase.prototype.build3dContainers=function(){var o,e=this.layers.length,t,i="";for(o=0;o<e;o+=1)this.layers[o].ddd&&this.layers[o].ty!==3?(i!=="3d"&&(i="3d",t=this.createThreeDContainer(o,"3d")),t.endPos=Math.max(t.endPos,o)):(i!=="2d"&&(i="2d",t=this.createThreeDContainer(o,"2d")),t.endPos=Math.max(t.endPos,o));for(e=this.threeDElements.length,o=e-1;o>=0;o-=1)this.resizerElem.appendChild(this.threeDElements[o].perspectiveElem)},HybridRendererBase.prototype.addTo3dContainer=function(o,e){for(var t=0,i=this.threeDElements.length;t<i;){if(e<=this.threeDElements[t].endPos){for(var n=this.threeDElements[t].startPos,r;n<e;)this.elements[n]&&this.elements[n].getBaseElement&&(r=this.elements[n].getBaseElement()),n+=1;r?this.threeDElements[t].container.insertBefore(o,r):this.threeDElements[t].container.appendChild(o);break}t+=1}},HybridRendererBase.prototype.configAnimation=function(o){var e=createTag("div"),t=this.animationItem.wrapper,i=e.style;i.width=o.w+"px",i.height=o.h+"px",this.resizerElem=e,styleDiv(e),i.transformStyle="flat",i.mozTransformStyle="flat",i.webkitTransformStyle="flat",this.renderConfig.className&&e.setAttribute("class",this.renderConfig.className),t.appendChild(e),i.overflow="hidden";var n=createNS("svg");n.setAttribute("width","1"),n.setAttribute("height","1"),styleDiv(n),this.resizerElem.appendChild(n);var r=createNS("defs");n.appendChild(r),this.data=o,this.setupGlobalData(o,n),this.globalData.defs=r,this.layers=o.layers,this.layerElement=this.resizerElem,this.build3dContainers(),this.updateContainerSize()},HybridRendererBase.prototype.destroy=function(){this.animationItem.wrapper&&(this.animationItem.wrapper.innerText=""),this.animationItem.container=null,this.globalData.defs=null;var o,e=this.layers?this.layers.length:0;for(o=0;o<e;o+=1)this.elements[o]&&this.elements[o].destroy&&this.elements[o].destroy();this.elements.length=0,this.destroyed=!0,this.animationItem=null},HybridRendererBase.prototype.updateContainerSize=function(){var o=this.animationItem.wrapper.offsetWidth,e=this.animationItem.wrapper.offsetHeight,t=o/e,i=this.globalData.compSize.w/this.globalData.compSize.h,n,r,s,a;i>t?(n=o/this.globalData.compSize.w,r=o/this.globalData.compSize.w,s=0,a=(e-this.globalData.compSize.h*(o/this.globalData.compSize.w))/2):(n=e/this.globalData.compSize.h,r=e/this.globalData.compSize.h,s=(o-this.globalData.compSize.w*(e/this.globalData.compSize.h))/2,a=0);var l=this.resizerElem.style;l.webkitTransform="matrix3d("+n+",0,0,0,0,"+r+",0,0,0,0,1,0,"+s+","+a+",0,1)",l.transform=l.webkitTransform},HybridRendererBase.prototype.renderFrame=SVGRenderer.prototype.renderFrame,HybridRendererBase.prototype.hide=function(){this.resizerElem.style.display="none"},HybridRendererBase.prototype.show=function(){this.resizerElem.style.display="block"},HybridRendererBase.prototype.initItems=function(){if(this.buildAllItems(),this.camera)this.camera.setup();else{var o=this.globalData.compSize.w,e=this.globalData.compSize.h,t,i=this.threeDElements.length;for(t=0;t<i;t+=1){var n=this.threeDElements[t].perspectiveElem.style;n.webkitPerspective=Math.sqrt(Math.pow(o,2)+Math.pow(e,2))+"px",n.perspective=n.webkitPerspective}}},HybridRendererBase.prototype.searchExtraCompositions=function(o){var e,t=o.length,i=createTag("div");for(e=0;e<t;e+=1)if(o[e].xt){var n=this.createComp(o[e],i,this.globalData.comp,null);n.initExpressions(),this.globalData.projectInterface.registerComposition(n)}};function HCompElement(o,e,t){this.layers=o.layers,this.supports3d=!o.hasMask,this.completeLayers=!1,this.pendingElements=[],this.elements=this.layers?createSizedArray(this.layers.length):[],this.initElement(o,e,t),this.tm=o.tm?PropertyFactory.getProp(this,o.tm,0,e.frameRate,this):{_placeholder:!0}}extendPrototype([HybridRendererBase,ICompElement,HBaseElement],HCompElement),HCompElement.prototype._createBaseContainerElements=HCompElement.prototype.createContainerElements,HCompElement.prototype.createContainerElements=function(){this._createBaseContainerElements(),this.data.hasMask?(this.svgElement.setAttribute("width",this.data.w),this.svgElement.setAttribute("height",this.data.h),this.transformedElement=this.baseElement):this.transformedElement=this.layerElement},HCompElement.prototype.addTo3dContainer=function(o,e){for(var t=0,i;t<e;)this.elements[t]&&this.elements[t].getBaseElement&&(i=this.elements[t].getBaseElement()),t+=1;i?this.layerElement.insertBefore(o,i):this.layerElement.appendChild(o)},HCompElement.prototype.createComp=function(o){return this.supports3d?new HCompElement(o,this.globalData,this):new SVGCompElement(o,this.globalData,this)};function HybridRenderer(o,e){this.animationItem=o,this.layers=null,this.renderedFrame=-1,this.renderConfig={className:e&&e.className||"",imagePreserveAspectRatio:e&&e.imagePreserveAspectRatio||"xMidYMid slice",hideOnTransparent:!(e&&e.hideOnTransparent===!1),filterSize:{width:e&&e.filterSize&&e.filterSize.width||"400%",height:e&&e.filterSize&&e.filterSize.height||"400%",x:e&&e.filterSize&&e.filterSize.x||"-100%",y:e&&e.filterSize&&e.filterSize.y||"-100%"},runExpressions:!e||e.runExpressions===void 0||e.runExpressions},this.globalData={_mdf:!1,frameNum:-1,renderConfig:this.renderConfig},this.pendingElements=[],this.elements=[],this.threeDElements=[],this.destroyed=!1,this.camera=null,this.supports3d=!0,this.rendererType="html"}extendPrototype([HybridRendererBase],HybridRenderer),HybridRenderer.prototype.createComp=function(o){return this.supports3d?new HCompElement(o,this.globalData,this):new SVGCompElement(o,this.globalData,this)};var CompExpressionInterface=function(){return function(o){function e(t){for(var i=0,n=o.layers.length;i<n;){if(o.layers[i].nm===t||o.layers[i].ind===t)return o.elements[i].layerInterface;i+=1}return null}return Object.defineProperty(e,"_name",{value:o.data.nm}),e.layer=e,e.pixelAspect=1,e.height=o.data.h||o.globalData.compSize.h,e.width=o.data.w||o.globalData.compSize.w,e.pixelAspect=1,e.frameDuration=1/o.globalData.frameRate,e.displayStartTime=0,e.numLayers=o.layers.length,e}}();function _typeof$2(o){"@babel/helpers - typeof";return _typeof$2=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof$2(o)}function seedRandom(o,e){var t=this,i=256,n=6,r=52,s="random",a=e.pow(i,n),l=e.pow(2,r),d=l*2,c=i-1,u;function g(S,y,E){var x=[];y=y===!0?{entropy:!0}:y||{};var L=b(m(y.entropy?[S,C(o)]:S===null?_():S,3),x),I=new f(x),D=function(){for(var F=I.g(n),R=a,M=0;F<l;)F=(F+M)*i,R*=i,M=I.g(1);for(;F>=d;)F/=2,R/=2,M>>>=1;return(F+M)/R};return D.int32=function(){return I.g(4)|0},D.quick=function(){return I.g(4)/4294967296},D.double=D,b(C(I.S),o),(y.pass||E||function(N,F,R,M){return M&&(M.S&&p(M,I),N.state=function(){return p(I,{})}),R?(e[s]=N,F):N})(D,L,"global"in y?y.global:this==e,y.state)}e["seed"+s]=g;function f(S){var y,E=S.length,x=this,L=0,I=x.i=x.j=0,D=x.S=[];for(E||(S=[E++]);L<i;)D[L]=L++;for(L=0;L<i;L++)D[L]=D[I=c&I+S[L%E]+(y=D[L])],D[I]=y;x.g=function(N){for(var F,R=0,M=x.i,W=x.j,V=x.S;N--;)F=V[M=c&M+1],R=R*i+V[c&(V[M]=V[W=c&W+F])+(V[W]=F)];return x.i=M,x.j=W,R}}function p(S,y){return y.i=S.i,y.j=S.j,y.S=S.S.slice(),y}function m(S,y){var E=[],x=_typeof$2(S),L;if(y&&x=="object")for(L in S)try{E.push(m(S[L],y-1))}catch{}return E.length?E:x=="string"?S:S+"\0"}function b(S,y){for(var E=S+"",x,L=0;L<E.length;)y[c&L]=c&(x^=y[c&L]*19)+E.charCodeAt(L++);return C(y)}function _(){try{var S=new Uint8Array(i);return(t.crypto||t.msCrypto).getRandomValues(S),C(S)}catch{var y=t.navigator,E=y&&y.plugins;return[+new Date,t,E,t.screen,C(o)]}}function C(S){return String.fromCharCode.apply(0,S)}b(e.random(),o)}function initialize$2(o){seedRandom([],o)}var propTypes={SHAPE:"shape"};function _typeof$1(o){"@babel/helpers - typeof";return _typeof$1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof$1(o)}var ExpressionManager=function(){var ob={},Math=BMMath,window=null,document=null,XMLHttpRequest=null,fetch=null,frames=null,_lottieGlobal={};initialize$2(BMMath);function resetFrame(){_lottieGlobal={}}function $bm_isInstanceOfArray(o){return o.constructor===Array||o.constructor===Float32Array}function isNumerable(o,e){return o==="number"||e instanceof Number||o==="boolean"||o==="string"}function $bm_neg(o){var e=_typeof$1(o);if(e==="number"||o instanceof Number||e==="boolean")return-o;if($bm_isInstanceOfArray(o)){var t,i=o.length,n=[];for(t=0;t<i;t+=1)n[t]=-o[t];return n}return o.propType?o.v:-o}var easeInBez=BezierFactory.getBezierEasing(.333,0,.833,.833,"easeIn").get,easeOutBez=BezierFactory.getBezierEasing(.167,.167,.667,1,"easeOut").get,easeInOutBez=BezierFactory.getBezierEasing(.33,0,.667,1,"easeInOut").get;function sum(o,e){var t=_typeof$1(o),i=_typeof$1(e);if(isNumerable(t,o)&&isNumerable(i,e)||t==="string"||i==="string")return o+e;if($bm_isInstanceOfArray(o)&&isNumerable(i,e))return o=o.slice(0),o[0]+=e,o;if(isNumerable(t,o)&&$bm_isInstanceOfArray(e))return e=e.slice(0),e[0]=o+e[0],e;if($bm_isInstanceOfArray(o)&&$bm_isInstanceOfArray(e)){for(var n=0,r=o.length,s=e.length,a=[];n<r||n<s;)(typeof o[n]=="number"||o[n]instanceof Number)&&(typeof e[n]=="number"||e[n]instanceof Number)?a[n]=o[n]+e[n]:a[n]=e[n]===void 0?o[n]:o[n]||e[n],n+=1;return a}return 0}var add=sum;function sub(o,e){var t=_typeof$1(o),i=_typeof$1(e);if(isNumerable(t,o)&&isNumerable(i,e))return t==="string"&&(o=parseInt(o,10)),i==="string"&&(e=parseInt(e,10)),o-e;if($bm_isInstanceOfArray(o)&&isNumerable(i,e))return o=o.slice(0),o[0]-=e,o;if(isNumerable(t,o)&&$bm_isInstanceOfArray(e))return e=e.slice(0),e[0]=o-e[0],e;if($bm_isInstanceOfArray(o)&&$bm_isInstanceOfArray(e)){for(var n=0,r=o.length,s=e.length,a=[];n<r||n<s;)(typeof o[n]=="number"||o[n]instanceof Number)&&(typeof e[n]=="number"||e[n]instanceof Number)?a[n]=o[n]-e[n]:a[n]=e[n]===void 0?o[n]:o[n]||e[n],n+=1;return a}return 0}function mul(o,e){var t=_typeof$1(o),i=_typeof$1(e),n;if(isNumerable(t,o)&&isNumerable(i,e))return o*e;var r,s;if($bm_isInstanceOfArray(o)&&isNumerable(i,e)){for(s=o.length,n=createTypedArray("float32",s),r=0;r<s;r+=1)n[r]=o[r]*e;return n}if(isNumerable(t,o)&&$bm_isInstanceOfArray(e)){for(s=e.length,n=createTypedArray("float32",s),r=0;r<s;r+=1)n[r]=o*e[r];return n}return 0}function div(o,e){var t=_typeof$1(o),i=_typeof$1(e),n;if(isNumerable(t,o)&&isNumerable(i,e))return o/e;var r,s;if($bm_isInstanceOfArray(o)&&isNumerable(i,e)){for(s=o.length,n=createTypedArray("float32",s),r=0;r<s;r+=1)n[r]=o[r]/e;return n}if(isNumerable(t,o)&&$bm_isInstanceOfArray(e)){for(s=e.length,n=createTypedArray("float32",s),r=0;r<s;r+=1)n[r]=o/e[r];return n}return 0}function mod(o,e){return typeof o=="string"&&(o=parseInt(o,10)),typeof e=="string"&&(e=parseInt(e,10)),o%e}var $bm_sum=sum,$bm_sub=sub,$bm_mul=mul,$bm_div=div,$bm_mod=mod;function clamp(o,e,t){if(e>t){var i=t;t=e,e=i}return Math.min(Math.max(o,e),t)}function radiansToDegrees(o){return o/degToRads}var radians_to_degrees=radiansToDegrees;function degreesToRadians(o){return o*degToRads}var degrees_to_radians=radiansToDegrees,helperLengthArray=[0,0,0,0,0,0];function length(o,e){if(typeof o=="number"||o instanceof Number)return e=e||0,Math.abs(o-e);e||(e=helperLengthArray);var t,i=Math.min(o.length,e.length),n=0;for(t=0;t<i;t+=1)n+=Math.pow(e[t]-o[t],2);return Math.sqrt(n)}function normalize(o){return div(o,length(o))}function rgbToHsl(o){var e=o[0],t=o[1],i=o[2],n=Math.max(e,t,i),r=Math.min(e,t,i),s,a,l=(n+r)/2;if(n===r)s=0,a=0;else{var d=n-r;switch(a=l>.5?d/(2-n-r):d/(n+r),n){case e:s=(t-i)/d+(t<i?6:0);break;case t:s=(i-e)/d+2;break;case i:s=(e-t)/d+4;break}s/=6}return[s,a,l,o[3]]}function hue2rgb(o,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?o+(e-o)*6*t:t<1/2?e:t<2/3?o+(e-o)*(2/3-t)*6:o}function hslToRgb(o){var e=o[0],t=o[1],i=o[2],n,r,s;if(t===0)n=i,s=i,r=i;else{var a=i<.5?i*(1+t):i+t-i*t,l=2*i-a;n=hue2rgb(l,a,e+1/3),r=hue2rgb(l,a,e),s=hue2rgb(l,a,e-1/3)}return[n,r,s,o[3]]}function linear(o,e,t,i,n){if((i===void 0||n===void 0)&&(i=e,n=t,e=0,t=1),t<e){var r=t;t=e,e=r}if(o<=e)return i;if(o>=t)return n;var s=t===e?0:(o-e)/(t-e);if(!i.length)return i+(n-i)*s;var a,l=i.length,d=createTypedArray("float32",l);for(a=0;a<l;a+=1)d[a]=i[a]+(n[a]-i[a])*s;return d}function random(o,e){if(e===void 0&&(o===void 0?(o=0,e=1):(e=o,o=void 0)),e.length){var t,i=e.length;o||(o=createTypedArray("float32",i));var n=createTypedArray("float32",i),r=BMMath.random();for(t=0;t<i;t+=1)n[t]=o[t]+r*(e[t]-o[t]);return n}o===void 0&&(o=0);var s=BMMath.random();return o+s*(e-o)}function createPath(o,e,t,i){var n,r=o.length,s=shapePool.newElement();s.setPathData(!!i,r);var a=[0,0],l,d;for(n=0;n<r;n+=1)l=e&&e[n]?e[n]:a,d=t&&t[n]?t[n]:a,s.setTripleAt(o[n][0],o[n][1],d[0]+o[n][0],d[1]+o[n][1],l[0]+o[n][0],l[1]+o[n][1],n,!0);return s}function initiateExpression(elem,data,property){function noOp(o){return o}if(!elem.globalData.renderConfig.runExpressions)return noOp;var val=data.x,needsVelocity=/velocity(?![\w\d])/.test(val),_needsRandom=val.indexOf("random")!==-1,elemType=elem.data.ty,transform,$bm_transform,content,effect,thisProperty=property;thisProperty._name=elem.data.nm,thisProperty.valueAtTime=thisProperty.getValueAtTime,Object.defineProperty(thisProperty,"value",{get:function(){return thisProperty.v}}),elem.comp.frameDuration=1/elem.comp.globalData.frameRate,elem.comp.displayStartTime=0;var inPoint=elem.data.ip/elem.comp.globalData.frameRate,outPoint=elem.data.op/elem.comp.globalData.frameRate,width=elem.data.sw?elem.data.sw:0,height=elem.data.sh?elem.data.sh:0,name=elem.data.nm,loopIn,loop_in,loopOut,loop_out,smooth,toWorld,fromWorld,fromComp,toComp,fromCompToSurface,position,rotation,anchorPoint,scale,thisLayer,thisComp,mask,valueAtTime,velocityAtTime,scoped_bm_rt,expression_function=eval("[function _expression_function(){"+val+";scoped_bm_rt=$bm_rt}]")[0],numKeys=property.kf?data.k.length:0,active=!this.data||this.data.hd!==!0,wiggle=(function o(e,t){var i,n,r=this.pv.length?this.pv.length:1,s=createTypedArray("float32",r);e=5;var a=Math.floor(time*e);for(i=0,n=0;i<a;){for(n=0;n<r;n+=1)s[n]+=-t+t*2*BMMath.random();i+=1}var l=time*e,d=l-Math.floor(l),c=createTypedArray("float32",r);if(r>1){for(n=0;n<r;n+=1)c[n]=this.pv[n]+s[n]+(-t+t*2*BMMath.random())*d;return c}return this.pv+s[0]+(-t+t*2*BMMath.random())*d}).bind(this);thisProperty.loopIn&&(loopIn=thisProperty.loopIn.bind(thisProperty),loop_in=loopIn),thisProperty.loopOut&&(loopOut=thisProperty.loopOut.bind(thisProperty),loop_out=loopOut),thisProperty.smooth&&(smooth=thisProperty.smooth.bind(thisProperty));function loopInDuration(o,e){return loopIn(o,e,!0)}function loopOutDuration(o,e){return loopOut(o,e,!0)}this.getValueAtTime&&(valueAtTime=this.getValueAtTime.bind(this)),this.getVelocityAtTime&&(velocityAtTime=this.getVelocityAtTime.bind(this));var comp=elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);function lookAt(o,e){var t=[e[0]-o[0],e[1]-o[1],e[2]-o[2]],i=Math.atan2(t[0],Math.sqrt(t[1]*t[1]+t[2]*t[2]))/degToRads,n=-Math.atan2(t[1],t[2])/degToRads;return[n,i,0]}function easeOut(o,e,t,i,n){return applyEase(easeOutBez,o,e,t,i,n)}function easeIn(o,e,t,i,n){return applyEase(easeInBez,o,e,t,i,n)}function ease(o,e,t,i,n){return applyEase(easeInOutBez,o,e,t,i,n)}function applyEase(o,e,t,i,n,r){n===void 0?(n=t,r=i):e=(e-t)/(i-t),e>1?e=1:e<0&&(e=0);var s=o(e);if($bm_isInstanceOfArray(n)){var a,l=n.length,d=createTypedArray("float32",l);for(a=0;a<l;a+=1)d[a]=(r[a]-n[a])*s+n[a];return d}return(r-n)*s+n}function nearestKey(o){var e,t=data.k.length,i,n;if(!data.k.length||typeof data.k[0]=="number")i=0,n=0;else if(i=-1,o*=elem.comp.globalData.frameRate,o<data.k[0].t)i=1,n=data.k[0].t;else{for(e=0;e<t-1;e+=1)if(o===data.k[e].t){i=e+1,n=data.k[e].t;break}else if(o>data.k[e].t&&o<data.k[e+1].t){o-data.k[e].t>data.k[e+1].t-o?(i=e+2,n=data.k[e+1].t):(i=e+1,n=data.k[e].t);break}i===-1&&(i=e+1,n=data.k[e].t)}var r={};return r.index=i,r.time=n/elem.comp.globalData.frameRate,r}function key(o){var e,t,i;if(!data.k.length||typeof data.k[0]=="number")throw new Error("The property has no keyframe at index "+o);o-=1,e={time:data.k[o].t/elem.comp.globalData.frameRate,value:[]};var n=Object.prototype.hasOwnProperty.call(data.k[o],"s")?data.k[o].s:data.k[o-1].e;for(i=n.length,t=0;t<i;t+=1)e[t]=n[t],e.value[t]=n[t];return e}function framesToTime(o,e){return e||(e=elem.comp.globalData.frameRate),o/e}function timeToFrames(o,e){return!o&&o!==0&&(o=time),e||(e=elem.comp.globalData.frameRate),o*e}function seedRandom(o){BMMath.seedrandom(randSeed+o)}function sourceRectAtTime(){return elem.sourceRectAtTime()}function substring(o,e){return typeof value=="string"?e===void 0?value.substring(o):value.substring(o,e):""}function substr(o,e){return typeof value=="string"?e===void 0?value.substr(o):value.substr(o,e):""}function posterizeTime(o){time=o===0?0:Math.floor(time*o)/o,value=valueAtTime(time)}var time,velocity,value,text,textIndex,textTotal,selectorValue,index=elem.data.ind,hasParent=!!(elem.hierarchy&&elem.hierarchy.length),parent,randSeed=Math.floor(Math.random()*1e6),globalData=elem.globalData;function executeExpression(o){return value=o,this.frameExpressionId===elem.globalData.frameId&&this.propType!=="textSelector"?value:(this.propType==="textSelector"&&(textIndex=this.textIndex,textTotal=this.textTotal,selectorValue=this.selectorValue),thisLayer||(text=elem.layerInterface.text,thisLayer=elem.layerInterface,thisComp=elem.comp.compInterface,toWorld=thisLayer.toWorld.bind(thisLayer),fromWorld=thisLayer.fromWorld.bind(thisLayer),fromComp=thisLayer.fromComp.bind(thisLayer),toComp=thisLayer.toComp.bind(thisLayer),mask=thisLayer.mask?thisLayer.mask.bind(thisLayer):null,fromCompToSurface=fromComp),transform||(transform=elem.layerInterface("ADBE Transform Group"),$bm_transform=transform,transform&&(anchorPoint=transform.anchorPoint)),elemType===4&&!content&&(content=thisLayer("ADBE Root Vectors Group")),effect||(effect=thisLayer(4)),hasParent=!!(elem.hierarchy&&elem.hierarchy.length),hasParent&&!parent&&(parent=elem.hierarchy[0].layerInterface),time=this.comp.renderedFrame/this.comp.globalData.frameRate,_needsRandom&&seedRandom(randSeed+time),needsVelocity&&(velocity=velocityAtTime(time)),expression_function(),this.frameExpressionId=elem.globalData.frameId,scoped_bm_rt=scoped_bm_rt.propType===propTypes.SHAPE?scoped_bm_rt.v:scoped_bm_rt,scoped_bm_rt)}return executeExpression.__preventDeadCodeRemoval=[$bm_transform,anchorPoint,time,velocity,inPoint,outPoint,width,height,name,loop_in,loop_out,smooth,toComp,fromCompToSurface,toWorld,fromWorld,mask,position,rotation,scale,thisComp,numKeys,active,wiggle,loopInDuration,loopOutDuration,comp,lookAt,easeOut,easeIn,ease,nearestKey,key,text,textIndex,textTotal,selectorValue,framesToTime,timeToFrames,sourceRectAtTime,substring,substr,posterizeTime,index,globalData],executeExpression}return ob.initiateExpression=initiateExpression,ob.__preventDeadCodeRemoval=[window,document,XMLHttpRequest,fetch,frames,$bm_neg,add,$bm_sum,$bm_sub,$bm_mul,$bm_div,$bm_mod,clamp,radians_to_degrees,degreesToRadians,degrees_to_radians,normalize,rgbToHsl,hslToRgb,linear,random,createPath,_lottieGlobal],ob.resetFrame=resetFrame,ob}(),Expressions=function(){var o={};o.initExpressions=e,o.resetFrame=ExpressionManager.resetFrame;function e(t){var i=0,n=[];function r(){i+=1}function s(){i-=1,i===0&&l()}function a(d){n.indexOf(d)===-1&&n.push(d)}function l(){var d,c=n.length;for(d=0;d<c;d+=1)n[d].release();n.length=0}t.renderer.compInterface=CompExpressionInterface(t.renderer),t.renderer.globalData.projectInterface.registerComposition(t.renderer),t.renderer.globalData.pushExpression=r,t.renderer.globalData.popExpression=s,t.renderer.globalData.registerExpressionProperty=a}return o}(),MaskManagerInterface=function(){function o(t,i){this._mask=t,this._data=i}Object.defineProperty(o.prototype,"maskPath",{get:function(){return this._mask.prop.k&&this._mask.prop.getValue(),this._mask.prop}}),Object.defineProperty(o.prototype,"maskOpacity",{get:function(){return this._mask.op.k&&this._mask.op.getValue(),this._mask.op.v*100}});var e=function(i){var n=createSizedArray(i.viewData.length),r,s=i.viewData.length;for(r=0;r<s;r+=1)n[r]=new o(i.viewData[r],i.masksProperties[r]);var a=function(d){for(r=0;r<s;){if(i.masksProperties[r].nm===d)return n[r];r+=1}return null};return a};return e}(),ExpressionPropertyInterface=function(){var o={pv:0,v:0,mult:1},e={pv:[0,0,0],v:[0,0,0],mult:1};function t(s,a,l){Object.defineProperty(s,"velocity",{get:function(){return a.getVelocityAtTime(a.comp.currentFrame)}}),s.numKeys=a.keyframes?a.keyframes.length:0,s.key=function(d){if(!s.numKeys)return 0;var c="";"s"in a.keyframes[d-1]?c=a.keyframes[d-1].s:"e"in a.keyframes[d-2]?c=a.keyframes[d-2].e:c=a.keyframes[d-2].s;var u=l==="unidimensional"?new Number(c):Object.assign({},c);return u.time=a.keyframes[d-1].t/a.elem.comp.globalData.frameRate,u.value=l==="unidimensional"?c[0]:c,u},s.valueAtTime=a.getValueAtTime,s.speedAtTime=a.getSpeedAtTime,s.velocityAtTime=a.getVelocityAtTime,s.propertyGroup=a.propertyGroup}function i(s){(!s||!("pv"in s))&&(s=o);var a=1/s.mult,l=s.pv*a,d=new Number(l);return d.value=l,t(d,s,"unidimensional"),function(){return s.k&&s.getValue(),l=s.v*a,d.value!==l&&(d=new Number(l),d.value=l,d[0]=l,t(d,s,"unidimensional")),d}}function n(s){(!s||!("pv"in s))&&(s=e);var a=1/s.mult,l=s.data&&s.data.l||s.pv.length,d=createTypedArray("float32",l),c=createTypedArray("float32",l);return d.value=c,t(d,s,"multidimensional"),function(){s.k&&s.getValue();for(var u=0;u<l;u+=1)c[u]=s.v[u]*a,d[u]=c[u];return d}}function r(){return o}return function(s){return s?s.propType==="unidimensional"?i(s):n(s):r}}(),TransformExpressionInterface=function(){return function(o){function e(s){switch(s){case"scale":case"Scale":case"ADBE Scale":case 6:return e.scale;case"rotation":case"Rotation":case"ADBE Rotation":case"ADBE Rotate Z":case 10:return e.rotation;case"ADBE Rotate X":return e.xRotation;case"ADBE Rotate Y":return e.yRotation;case"position":case"Position":case"ADBE Position":case 2:return e.position;case"ADBE Position_0":return e.xPosition;case"ADBE Position_1":return e.yPosition;case"ADBE Position_2":return e.zPosition;case"anchorPoint":case"AnchorPoint":case"Anchor Point":case"ADBE AnchorPoint":case 1:return e.anchorPoint;case"opacity":case"Opacity":case 11:return e.opacity;default:return null}}Object.defineProperty(e,"rotation",{get:ExpressionPropertyInterface(o.r||o.rz)}),Object.defineProperty(e,"zRotation",{get:ExpressionPropertyInterface(o.rz||o.r)}),Object.defineProperty(e,"xRotation",{get:ExpressionPropertyInterface(o.rx)}),Object.defineProperty(e,"yRotation",{get:ExpressionPropertyInterface(o.ry)}),Object.defineProperty(e,"scale",{get:ExpressionPropertyInterface(o.s)});var t,i,n,r;return o.p?r=ExpressionPropertyInterface(o.p):(t=ExpressionPropertyInterface(o.px),i=ExpressionPropertyInterface(o.py),o.pz&&(n=ExpressionPropertyInterface(o.pz))),Object.defineProperty(e,"position",{get:function(){return o.p?r():[t(),i(),n?n():0]}}),Object.defineProperty(e,"xPosition",{get:ExpressionPropertyInterface(o.px)}),Object.defineProperty(e,"yPosition",{get:ExpressionPropertyInterface(o.py)}),Object.defineProperty(e,"zPosition",{get:ExpressionPropertyInterface(o.pz)}),Object.defineProperty(e,"anchorPoint",{get:ExpressionPropertyInterface(o.a)}),Object.defineProperty(e,"opacity",{get:ExpressionPropertyInterface(o.o)}),Object.defineProperty(e,"skew",{get:ExpressionPropertyInterface(o.sk)}),Object.defineProperty(e,"skewAxis",{get:ExpressionPropertyInterface(o.sa)}),Object.defineProperty(e,"orientation",{get:ExpressionPropertyInterface(o.or)}),e}}(),LayerExpressionInterface=function(){function o(d){var c=new Matrix;if(d!==void 0){var u=this._elem.finalTransform.mProp.getValueAtTime(d);u.clone(c)}else{var g=this._elem.finalTransform.mProp;g.applyToMatrix(c)}return c}function e(d,c){var u=this.getMatrix(c);return u.props[12]=0,u.props[13]=0,u.props[14]=0,this.applyPoint(u,d)}function t(d,c){var u=this.getMatrix(c);return this.applyPoint(u,d)}function i(d,c){var u=this.getMatrix(c);return u.props[12]=0,u.props[13]=0,u.props[14]=0,this.invertPoint(u,d)}function n(d,c){var u=this.getMatrix(c);return this.invertPoint(u,d)}function r(d,c){if(this._elem.hierarchy&&this._elem.hierarchy.length){var u,g=this._elem.hierarchy.length;for(u=0;u<g;u+=1)this._elem.hierarchy[u].finalTransform.mProp.applyToMatrix(d)}return d.applyToPointArray(c[0],c[1],c[2]||0)}function s(d,c){if(this._elem.hierarchy&&this._elem.hierarchy.length){var u,g=this._elem.hierarchy.length;for(u=0;u<g;u+=1)this._elem.hierarchy[u].finalTransform.mProp.applyToMatrix(d)}return d.inversePoint(c)}function a(d){var c=new Matrix;if(c.reset(),this._elem.finalTransform.mProp.applyToMatrix(c),this._elem.hierarchy&&this._elem.hierarchy.length){var u,g=this._elem.hierarchy.length;for(u=0;u<g;u+=1)this._elem.hierarchy[u].finalTransform.mProp.applyToMatrix(c);return c.inversePoint(d)}return c.inversePoint(d)}function l(){return[1,1,1,1]}return function(d){var c;function u(m){f.mask=new MaskManagerInterface(m,d)}function g(m){f.effect=m}function f(m){switch(m){case"ADBE Root Vectors Group":case"Contents":case 2:return f.shapeInterface;case 1:case 6:case"Transform":case"transform":case"ADBE Transform Group":return c;case 4:case"ADBE Effect Parade":case"effects":case"Effects":return f.effect;case"ADBE Text Properties":return f.textInterface;default:return null}}f.getMatrix=o,f.invertPoint=s,f.applyPoint=r,f.toWorld=t,f.toWorldVec=e,f.fromWorld=n,f.fromWorldVec=i,f.toComp=t,f.fromComp=a,f.sampleImage=l,f.sourceRectAtTime=d.sourceRectAtTime.bind(d),f._elem=d,c=TransformExpressionInterface(d.finalTransform.mProp);var p=getDescriptor(c,"anchorPoint");return Object.defineProperties(f,{hasParent:{get:function(){return d.hierarchy.length}},parent:{get:function(){return d.hierarchy[0].layerInterface}},rotation:getDescriptor(c,"rotation"),scale:getDescriptor(c,"scale"),position:getDescriptor(c,"position"),opacity:getDescriptor(c,"opacity"),anchorPoint:p,anchor_point:p,transform:{get:function(){return c}},active:{get:function(){return d.isInRange}}}),f.startTime=d.data.st,f.index=d.data.ind,f.source=d.data.refId,f.height=d.data.ty===0?d.data.h:100,f.width=d.data.ty===0?d.data.w:100,f.inPoint=d.data.ip/d.comp.globalData.frameRate,f.outPoint=d.data.op/d.comp.globalData.frameRate,f._name=d.data.nm,f.registerMaskInterface=u,f.registerEffectsInterface=g,f}}(),propertyGroupFactory=function(){return function(o,e){return function(t){return t=t===void 0?1:t,t<=0?o:e(t-1)}}}(),PropertyInterface=function(){return function(o,e){var t={_name:o};function i(n){return n=n===void 0?1:n,n<=0?t:e(n-1)}return i}}(),EffectsExpressionInterface=function(){var o={createEffectsInterface:e};function e(n,r){if(n.effectsManager){var s=[],a=n.data.ef,l,d=n.effectsManager.effectElements.length;for(l=0;l<d;l+=1)s.push(t(a[l],n.effectsManager.effectElements[l],r,n));var c=n.data.ef||[],u=function(f){for(l=0,d=c.length;l<d;){if(f===c[l].nm||f===c[l].mn||f===c[l].ix)return s[l];l+=1}return null};return Object.defineProperty(u,"numProperties",{get:function(){return c.length}}),u}return null}function t(n,r,s,a){function l(f){for(var p=n.ef,m=0,b=p.length;m<b;){if(f===p[m].nm||f===p[m].mn||f===p[m].ix)return p[m].ty===5?c[m]:c[m]();m+=1}throw new Error}var d=propertyGroupFactory(l,s),c=[],u,g=n.ef.length;for(u=0;u<g;u+=1)n.ef[u].ty===5?c.push(t(n.ef[u],r.effectElements[u],r.effectElements[u].propertyGroup,a)):c.push(i(r.effectElements[u],n.ef[u].ty,a,d));return n.mn==="ADBE Color Control"&&Object.defineProperty(l,"color",{get:function(){return c[0]()}}),Object.defineProperties(l,{numProperties:{get:function(){return n.np}},_name:{value:n.nm},propertyGroup:{value:d}}),l.enabled=n.en!==0,l.active=l.enabled,l}function i(n,r,s,a){var l=ExpressionPropertyInterface(n.p);function d(){return r===10?s.comp.compInterface(n.p.v):l()}return n.p.setGroupProperty&&n.p.setGroupProperty(PropertyInterface("",a)),d}return o}(),ShapePathInterface=function(){return function(e,t,i){var n=t.sh;function r(a){return a==="Shape"||a==="shape"||a==="Path"||a==="path"||a==="ADBE Vector Shape"||a===2?r.path:null}var s=propertyGroupFactory(r,i);return n.setGroupProperty(PropertyInterface("Path",s)),Object.defineProperties(r,{path:{get:function(){return n.k&&n.getValue(),n}},shape:{get:function(){return n.k&&n.getValue(),n}},_name:{value:e.nm},ix:{value:e.ix},propertyIndex:{value:e.ix},mn:{value:e.mn},propertyGroup:{value:i}}),r}}(),ShapeExpressionInterface=function(){function o(p,m,b){var _=[],C,S=p?p.length:0;for(C=0;C<S;C+=1)p[C].ty==="gr"?_.push(t(p[C],m[C],b)):p[C].ty==="fl"?_.push(i(p[C],m[C],b)):p[C].ty==="st"?_.push(s(p[C],m[C],b)):p[C].ty==="tm"?_.push(a(p[C],m[C],b)):p[C].ty==="tr"||(p[C].ty==="el"?_.push(d(p[C],m[C],b)):p[C].ty==="sr"?_.push(c(p[C],m[C],b)):p[C].ty==="sh"?_.push(ShapePathInterface(p[C],m[C],b)):p[C].ty==="rc"?_.push(u(p[C],m[C],b)):p[C].ty==="rd"?_.push(g(p[C],m[C],b)):p[C].ty==="rp"?_.push(f(p[C],m[C],b)):p[C].ty==="gf"?_.push(n(p[C],m[C],b)):_.push(r(p[C],m[C])));return _}function e(p,m,b){var _,C=function(E){for(var x=0,L=_.length;x<L;){if(_[x]._name===E||_[x].mn===E||_[x].propertyIndex===E||_[x].ix===E||_[x].ind===E)return _[x];x+=1}return typeof E=="number"?_[E-1]:null};C.propertyGroup=propertyGroupFactory(C,b),_=o(p.it,m.it,C.propertyGroup),C.numProperties=_.length;var S=l(p.it[p.it.length-1],m.it[m.it.length-1],C.propertyGroup);return C.transform=S,C.propertyIndex=p.cix,C._name=p.nm,C}function t(p,m,b){var _=function(E){switch(E){case"ADBE Vectors Group":case"Contents":case 2:return _.content;default:return _.transform}};_.propertyGroup=propertyGroupFactory(_,b);var C=e(p,m,_.propertyGroup),S=l(p.it[p.it.length-1],m.it[m.it.length-1],_.propertyGroup);return _.content=C,_.transform=S,Object.defineProperty(_,"_name",{get:function(){return p.nm}}),_.numProperties=p.np,_.propertyIndex=p.ix,_.nm=p.nm,_.mn=p.mn,_}function i(p,m,b){function _(C){return C==="Color"||C==="color"?_.color:C==="Opacity"||C==="opacity"?_.opacity:null}return Object.defineProperties(_,{color:{get:ExpressionPropertyInterface(m.c)},opacity:{get:ExpressionPropertyInterface(m.o)},_name:{value:p.nm},mn:{value:p.mn}}),m.c.setGroupProperty(PropertyInterface("Color",b)),m.o.setGroupProperty(PropertyInterface("Opacity",b)),_}function n(p,m,b){function _(C){return C==="Start Point"||C==="start point"?_.startPoint:C==="End Point"||C==="end point"?_.endPoint:C==="Opacity"||C==="opacity"?_.opacity:null}return Object.defineProperties(_,{startPoint:{get:ExpressionPropertyInterface(m.s)},endPoint:{get:ExpressionPropertyInterface(m.e)},opacity:{get:ExpressionPropertyInterface(m.o)},type:{get:function(){return"a"}},_name:{value:p.nm},mn:{value:p.mn}}),m.s.setGroupProperty(PropertyInterface("Start Point",b)),m.e.setGroupProperty(PropertyInterface("End Point",b)),m.o.setGroupProperty(PropertyInterface("Opacity",b)),_}function r(){function p(){return null}return p}function s(p,m,b){var _=propertyGroupFactory(L,b),C=propertyGroupFactory(x,_);function S(I){Object.defineProperty(x,p.d[I].nm,{get:ExpressionPropertyInterface(m.d.dataProps[I].p)})}var y,E=p.d?p.d.length:0,x={};for(y=0;y<E;y+=1)S(y),m.d.dataProps[y].p.setGroupProperty(C);function L(I){return I==="Color"||I==="color"?L.color:I==="Opacity"||I==="opacity"?L.opacity:I==="Stroke Width"||I==="stroke width"?L.strokeWidth:null}return Object.defineProperties(L,{color:{get:ExpressionPropertyInterface(m.c)},opacity:{get:ExpressionPropertyInterface(m.o)},strokeWidth:{get:ExpressionPropertyInterface(m.w)},dash:{get:function(){return x}},_name:{value:p.nm},mn:{value:p.mn}}),m.c.setGroupProperty(PropertyInterface("Color",_)),m.o.setGroupProperty(PropertyInterface("Opacity",_)),m.w.setGroupProperty(PropertyInterface("Stroke Width",_)),L}function a(p,m,b){function _(S){return S===p.e.ix||S==="End"||S==="end"?_.end:S===p.s.ix?_.start:S===p.o.ix?_.offset:null}var C=propertyGroupFactory(_,b);return _.propertyIndex=p.ix,m.s.setGroupProperty(PropertyInterface("Start",C)),m.e.setGroupProperty(PropertyInterface("End",C)),m.o.setGroupProperty(PropertyInterface("Offset",C)),_.propertyIndex=p.ix,_.propertyGroup=b,Object.defineProperties(_,{start:{get:ExpressionPropertyInterface(m.s)},end:{get:ExpressionPropertyInterface(m.e)},offset:{get:ExpressionPropertyInterface(m.o)},_name:{value:p.nm}}),_.mn=p.mn,_}function l(p,m,b){function _(S){return p.a.ix===S||S==="Anchor Point"?_.anchorPoint:p.o.ix===S||S==="Opacity"?_.opacity:p.p.ix===S||S==="Position"?_.position:p.r.ix===S||S==="Rotation"||S==="ADBE Vector Rotation"?_.rotation:p.s.ix===S||S==="Scale"?_.scale:p.sk&&p.sk.ix===S||S==="Skew"?_.skew:p.sa&&p.sa.ix===S||S==="Skew Axis"?_.skewAxis:null}var C=propertyGroupFactory(_,b);return m.transform.mProps.o.setGroupProperty(PropertyInterface("Opacity",C)),m.transform.mProps.p.setGroupProperty(PropertyInterface("Position",C)),m.transform.mProps.a.setGroupProperty(PropertyInterface("Anchor Point",C)),m.transform.mProps.s.setGroupProperty(PropertyInterface("Scale",C)),m.transform.mProps.r.setGroupProperty(PropertyInterface("Rotation",C)),m.transform.mProps.sk&&(m.transform.mProps.sk.setGroupProperty(PropertyInterface("Skew",C)),m.transform.mProps.sa.setGroupProperty(PropertyInterface("Skew Angle",C))),m.transform.op.setGroupProperty(PropertyInterface("Opacity",C)),Object.defineProperties(_,{opacity:{get:ExpressionPropertyInterface(m.transform.mProps.o)},position:{get:ExpressionPropertyInterface(m.transform.mProps.p)},anchorPoint:{get:ExpressionPropertyInterface(m.transform.mProps.a)},scale:{get:ExpressionPropertyInterface(m.transform.mProps.s)},rotation:{get:ExpressionPropertyInterface(m.transform.mProps.r)},skew:{get:ExpressionPropertyInterface(m.transform.mProps.sk)},skewAxis:{get:ExpressionPropertyInterface(m.transform.mProps.sa)},_name:{value:p.nm}}),_.ty="tr",_.mn=p.mn,_.propertyGroup=b,_}function d(p,m,b){function _(y){return p.p.ix===y?_.position:p.s.ix===y?_.size:null}var C=propertyGroupFactory(_,b);_.propertyIndex=p.ix;var S=m.sh.ty==="tm"?m.sh.prop:m.sh;return S.s.setGroupProperty(PropertyInterface("Size",C)),S.p.setGroupProperty(PropertyInterface("Position",C)),Object.defineProperties(_,{size:{get:ExpressionPropertyInterface(S.s)},position:{get:ExpressionPropertyInterface(S.p)},_name:{value:p.nm}}),_.mn=p.mn,_}function c(p,m,b){function _(y){return p.p.ix===y?_.position:p.r.ix===y?_.rotation:p.pt.ix===y?_.points:p.or.ix===y||y==="ADBE Vector Star Outer Radius"?_.outerRadius:p.os.ix===y?_.outerRoundness:p.ir&&(p.ir.ix===y||y==="ADBE Vector Star Inner Radius")?_.innerRadius:p.is&&p.is.ix===y?_.innerRoundness:null}var C=propertyGroupFactory(_,b),S=m.sh.ty==="tm"?m.sh.prop:m.sh;return _.propertyIndex=p.ix,S.or.setGroupProperty(PropertyInterface("Outer Radius",C)),S.os.setGroupProperty(PropertyInterface("Outer Roundness",C)),S.pt.setGroupProperty(PropertyInterface("Points",C)),S.p.setGroupProperty(PropertyInterface("Position",C)),S.r.setGroupProperty(PropertyInterface("Rotation",C)),p.ir&&(S.ir.setGroupProperty(PropertyInterface("Inner Radius",C)),S.is.setGroupProperty(PropertyInterface("Inner Roundness",C))),Object.defineProperties(_,{position:{get:ExpressionPropertyInterface(S.p)},rotation:{get:ExpressionPropertyInterface(S.r)},points:{get:ExpressionPropertyInterface(S.pt)},outerRadius:{get:ExpressionPropertyInterface(S.or)},outerRoundness:{get:ExpressionPropertyInterface(S.os)},innerRadius:{get:ExpressionPropertyInterface(S.ir)},innerRoundness:{get:ExpressionPropertyInterface(S.is)},_name:{value:p.nm}}),_.mn=p.mn,_}function u(p,m,b){function _(y){return p.p.ix===y?_.position:p.r.ix===y?_.roundness:p.s.ix===y||y==="Size"||y==="ADBE Vector Rect Size"?_.size:null}var C=propertyGroupFactory(_,b),S=m.sh.ty==="tm"?m.sh.prop:m.sh;return _.propertyIndex=p.ix,S.p.setGroupProperty(PropertyInterface("Position",C)),S.s.setGroupProperty(PropertyInterface("Size",C)),S.r.setGroupProperty(PropertyInterface("Rotation",C)),Object.defineProperties(_,{position:{get:ExpressionPropertyInterface(S.p)},roundness:{get:ExpressionPropertyInterface(S.r)},size:{get:ExpressionPropertyInterface(S.s)},_name:{value:p.nm}}),_.mn=p.mn,_}function g(p,m,b){function _(y){return p.r.ix===y||y==="Round Corners 1"?_.radius:null}var C=propertyGroupFactory(_,b),S=m;return _.propertyIndex=p.ix,S.rd.setGroupProperty(PropertyInterface("Radius",C)),Object.defineProperties(_,{radius:{get:ExpressionPropertyInterface(S.rd)},_name:{value:p.nm}}),_.mn=p.mn,_}function f(p,m,b){function _(y){return p.c.ix===y||y==="Copies"?_.copies:p.o.ix===y||y==="Offset"?_.offset:null}var C=propertyGroupFactory(_,b),S=m;return _.propertyIndex=p.ix,S.c.setGroupProperty(PropertyInterface("Copies",C)),S.o.setGroupProperty(PropertyInterface("Offset",C)),Object.defineProperties(_,{copies:{get:ExpressionPropertyInterface(S.c)},offset:{get:ExpressionPropertyInterface(S.o)},_name:{value:p.nm}}),_.mn=p.mn,_}return function(p,m,b){var _;function C(y){if(typeof y=="number")return y=y===void 0?1:y,y===0?b:_[y-1];for(var E=0,x=_.length;E<x;){if(_[E]._name===y)return _[E];E+=1}return null}function S(){return b}return C.propertyGroup=propertyGroupFactory(C,S),_=o(p,m,C.propertyGroup),C.numProperties=_.length,C._name="Contents",C}}(),TextExpressionInterface=function(){return function(o){var e;function t(i){switch(i){case"ADBE Text Document":return t.sourceText;default:return null}}return Object.defineProperty(t,"sourceText",{get:function(){o.textProperty.getValue();var n=o.textProperty.currentData.t;return(!e||n!==e.value)&&(e=new String(n),e.value=n||new String(n),Object.defineProperty(e,"style",{get:function(){return{fillColor:o.textProperty.currentData.fc}}})),e}}),t}}();function _typeof(o){"@babel/helpers - typeof";return _typeof=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof(o)}var FootageInterface=function(){var o=function(i){var n="",r=i.getFootageData();function s(){return n="",r=i.getFootageData(),a}function a(l){if(r[l])return n=l,r=r[l],_typeof(r)==="object"?a:r;var d=l.indexOf(n);if(d!==-1){var c=parseInt(l.substr(d+n.length),10);return r=r[c],_typeof(r)==="object"?a:r}return""}return s},e=function(i){function n(r){return r==="Outline"?n.outlineInterface():null}return n._name="Outline",n.outlineInterface=o(i),n};return function(t){function i(n){return n==="Data"?i.dataInterface:null}return i._name="Data",i.dataInterface=e(t),i}}(),interfaces={layer:LayerExpressionInterface,effects:EffectsExpressionInterface,comp:CompExpressionInterface,shape:ShapeExpressionInterface,text:TextExpressionInterface,footage:FootageInterface};function getInterface(o){return interfaces[o]||null}var expressionHelpers=function(){function o(s,a,l){a.x&&(l.k=!0,l.x=!0,l.initiateExpression=ExpressionManager.initiateExpression,l.effectsSequence.push(l.initiateExpression(s,a,l).bind(l)))}function e(s){return s*=this.elem.globalData.frameRate,s-=this.offsetTime,s!==this._cachingAtTime.lastFrame&&(this._cachingAtTime.lastIndex=this._cachingAtTime.lastFrame<s?this._cachingAtTime.lastIndex:0,this._cachingAtTime.value=this.interpolateValue(s,this._cachingAtTime),this._cachingAtTime.lastFrame=s),this._cachingAtTime.value}function t(s){var a=-.01,l=this.getValueAtTime(s),d=this.getValueAtTime(s+a),c=0;if(l.length){var u;for(u=0;u<l.length;u+=1)c+=Math.pow(d[u]-l[u],2);c=Math.sqrt(c)*100}else c=0;return c}function i(s){if(this.vel!==void 0)return this.vel;var a=-.001,l=this.getValueAtTime(s),d=this.getValueAtTime(s+a),c;if(l.length){c=createTypedArray("float32",l.length);var u;for(u=0;u<l.length;u+=1)c[u]=(d[u]-l[u])/a}else c=(d-l)/a;return c}function n(){return this.pv}function r(s){this.propertyGroup=s}return{searchExpressions:o,getSpeedAtTime:t,getVelocityAtTime:i,getValueAtTime:e,getStaticValueAtTime:n,setGroupProperty:r}}();function addPropertyDecorator(){function o(g,f,p){if(!this.k||!this.keyframes)return this.pv;g=g?g.toLowerCase():"";var m=this.comp.renderedFrame,b=this.keyframes,_=b[b.length-1].t;if(m<=_)return this.pv;var C,S;p?(f?C=Math.abs(_-this.elem.comp.globalData.frameRate*f):C=Math.max(0,_-this.elem.data.ip),S=_-C):((!f||f>b.length-1)&&(f=b.length-1),S=b[b.length-1-f].t,C=_-S);var y,E,x;if(g==="pingpong"){var L=Math.floor((m-S)/C);if(L%2!==0)return this.getValueAtTime((C-(m-S)%C+S)/this.comp.globalData.frameRate,0)}else if(g==="offset"){var I=this.getValueAtTime(S/this.comp.globalData.frameRate,0),D=this.getValueAtTime(_/this.comp.globalData.frameRate,0),N=this.getValueAtTime(((m-S)%C+S)/this.comp.globalData.frameRate,0),F=Math.floor((m-S)/C);if(this.pv.length){for(x=new Array(I.length),E=x.length,y=0;y<E;y+=1)x[y]=(D[y]-I[y])*F+N[y];return x}return(D-I)*F+N}else if(g==="continue"){var R=this.getValueAtTime(_/this.comp.globalData.frameRate,0),M=this.getValueAtTime((_-.001)/this.comp.globalData.frameRate,0);if(this.pv.length){for(x=new Array(R.length),E=x.length,y=0;y<E;y+=1)x[y]=R[y]+(R[y]-M[y])*((m-_)/this.comp.globalData.frameRate)/5e-4;return x}return R+(R-M)*((m-_)/.001)}return this.getValueAtTime(((m-S)%C+S)/this.comp.globalData.frameRate,0)}function e(g,f,p){if(!this.k)return this.pv;g=g?g.toLowerCase():"";var m=this.comp.renderedFrame,b=this.keyframes,_=b[0].t;if(m>=_)return this.pv;var C,S;p?(f?C=Math.abs(this.elem.comp.globalData.frameRate*f):C=Math.max(0,this.elem.data.op-_),S=_+C):((!f||f>b.length-1)&&(f=b.length-1),S=b[f].t,C=S-_);var y,E,x;if(g==="pingpong"){var L=Math.floor((_-m)/C);if(L%2===0)return this.getValueAtTime(((_-m)%C+_)/this.comp.globalData.frameRate,0)}else if(g==="offset"){var I=this.getValueAtTime(_/this.comp.globalData.frameRate,0),D=this.getValueAtTime(S/this.comp.globalData.frameRate,0),N=this.getValueAtTime((C-(_-m)%C+_)/this.comp.globalData.frameRate,0),F=Math.floor((_-m)/C)+1;if(this.pv.length){for(x=new Array(I.length),E=x.length,y=0;y<E;y+=1)x[y]=N[y]-(D[y]-I[y])*F;return x}return N-(D-I)*F}else if(g==="continue"){var R=this.getValueAtTime(_/this.comp.globalData.frameRate,0),M=this.getValueAtTime((_+.001)/this.comp.globalData.frameRate,0);if(this.pv.length){for(x=new Array(R.length),E=x.length,y=0;y<E;y+=1)x[y]=R[y]+(R[y]-M[y])*(_-m)/.001;return x}return R+(R-M)*(_-m)/.001}return this.getValueAtTime((C-((_-m)%C+_))/this.comp.globalData.frameRate,0)}function t(g,f){if(!this.k)return this.pv;if(g=(g||.4)*.5,f=Math.floor(f||5),f<=1)return this.pv;var p=this.comp.renderedFrame/this.comp.globalData.frameRate,m=p-g,b=p+g,_=f>1?(b-m)/(f-1):1,C=0,S=0,y;this.pv.length?y=createTypedArray("float32",this.pv.length):y=0;for(var E;C<f;){if(E=this.getValueAtTime(m+C*_),this.pv.length)for(S=0;S<this.pv.length;S+=1)y[S]+=E[S];else y+=E;C+=1}if(this.pv.length)for(S=0;S<this.pv.length;S+=1)y[S]/=f;else y/=f;return y}function i(g){this._transformCachingAtTime||(this._transformCachingAtTime={v:new Matrix});var f=this._transformCachingAtTime.v;if(f.cloneFromProps(this.pre.props),this.appliedTransformations<1){var p=this.a.getValueAtTime(g);f.translate(-p[0]*this.a.mult,-p[1]*this.a.mult,p[2]*this.a.mult)}if(this.appliedTransformations<2){var m=this.s.getValueAtTime(g);f.scale(m[0]*this.s.mult,m[1]*this.s.mult,m[2]*this.s.mult)}if(this.sk&&this.appliedTransformations<3){var b=this.sk.getValueAtTime(g),_=this.sa.getValueAtTime(g);f.skewFromAxis(-b*this.sk.mult,_*this.sa.mult)}if(this.r&&this.appliedTransformations<4){var C=this.r.getValueAtTime(g);f.rotate(-C*this.r.mult)}else if(!this.r&&this.appliedTransformations<4){var S=this.rz.getValueAtTime(g),y=this.ry.getValueAtTime(g),E=this.rx.getValueAtTime(g),x=this.or.getValueAtTime(g);f.rotateZ(-S*this.rz.mult).rotateY(y*this.ry.mult).rotateX(E*this.rx.mult).rotateZ(-x[2]*this.or.mult).rotateY(x[1]*this.or.mult).rotateX(x[0]*this.or.mult)}if(this.data.p&&this.data.p.s){var L=this.px.getValueAtTime(g),I=this.py.getValueAtTime(g);if(this.data.p.z){var D=this.pz.getValueAtTime(g);f.translate(L*this.px.mult,I*this.py.mult,-D*this.pz.mult)}else f.translate(L*this.px.mult,I*this.py.mult,0)}else{var N=this.p.getValueAtTime(g);f.translate(N[0]*this.p.mult,N[1]*this.p.mult,-N[2]*this.p.mult)}return f}function n(){return this.v.clone(new Matrix)}var r=TransformPropertyFactory.getTransformProperty;TransformPropertyFactory.getTransformProperty=function(g,f,p){var m=r(g,f,p);return m.dynamicProperties.length?m.getValueAtTime=i.bind(m):m.getValueAtTime=n.bind(m),m.setGroupProperty=expressionHelpers.setGroupProperty,m};var s=PropertyFactory.getProp;PropertyFactory.getProp=function(g,f,p,m,b){var _=s(g,f,p,m,b);_.kf?_.getValueAtTime=expressionHelpers.getValueAtTime.bind(_):_.getValueAtTime=expressionHelpers.getStaticValueAtTime.bind(_),_.setGroupProperty=expressionHelpers.setGroupProperty,_.loopOut=o,_.loopIn=e,_.smooth=t,_.getVelocityAtTime=expressionHelpers.getVelocityAtTime.bind(_),_.getSpeedAtTime=expressionHelpers.getSpeedAtTime.bind(_),_.numKeys=f.a===1?f.k.length:0,_.propertyIndex=f.ix;var C=0;return p!==0&&(C=createTypedArray("float32",f.a===1?f.k[0].s.length:f.k.length)),_._cachingAtTime={lastFrame:initialDefaultFrame,lastIndex:0,value:C},expressionHelpers.searchExpressions(g,f,_),_.k&&b.addDynamicProperty(_),_};function a(g){return this._cachingAtTime||(this._cachingAtTime={shapeValue:shapePool.clone(this.pv),lastIndex:0,lastTime:initialDefaultFrame}),g*=this.elem.globalData.frameRate,g-=this.offsetTime,g!==this._cachingAtTime.lastTime&&(this._cachingAtTime.lastIndex=this._cachingAtTime.lastTime<g?this._caching.lastIndex:0,this._cachingAtTime.lastTime=g,this.interpolateShape(g,this._cachingAtTime.shapeValue,this._cachingAtTime)),this._cachingAtTime.shapeValue}var l=ShapePropertyFactory.getConstructorFunction(),d=ShapePropertyFactory.getKeyframedConstructorFunction();function c(){}c.prototype={vertices:function(f,p){this.k&&this.getValue();var m=this.v;p!==void 0&&(m=this.getValueAtTime(p,0));var b,_=m._length,C=m[f],S=m.v,y=createSizedArray(_);for(b=0;b<_;b+=1)f==="i"||f==="o"?y[b]=[C[b][0]-S[b][0],C[b][1]-S[b][1]]:y[b]=[C[b][0],C[b][1]];return y},points:function(f){return this.vertices("v",f)},inTangents:function(f){return this.vertices("i",f)},outTangents:function(f){return this.vertices("o",f)},isClosed:function(){return this.v.c},pointOnPath:function(f,p){var m=this.v;p!==void 0&&(m=this.getValueAtTime(p,0)),this._segmentsLength||(this._segmentsLength=bez.getSegmentsLength(m));for(var b=this._segmentsLength,_=b.lengths,C=b.totalLength*f,S=0,y=_.length,E=0,x;S<y;){if(E+_[S].addedLength>C){var L=S,I=m.c&&S===y-1?0:S+1,D=(C-E)/_[S].addedLength;x=bez.getPointInSegment(m.v[L],m.v[I],m.o[L],m.i[I],D,_[S]);break}else E+=_[S].addedLength;S+=1}return x||(x=m.c?[m.v[0][0],m.v[0][1]]:[m.v[m._length-1][0],m.v[m._length-1][1]]),x},vectorOnPath:function(f,p,m){f==1?f=this.v.c:f==0&&(f=.999);var b=this.pointOnPath(f,p),_=this.pointOnPath(f+.001,p),C=_[0]-b[0],S=_[1]-b[1],y=Math.sqrt(Math.pow(C,2)+Math.pow(S,2));if(y===0)return[0,0];var E=m==="tangent"?[C/y,S/y]:[-S/y,C/y];return E},tangentOnPath:function(f,p){return this.vectorOnPath(f,p,"tangent")},normalOnPath:function(f,p){return this.vectorOnPath(f,p,"normal")},setGroupProperty:expressionHelpers.setGroupProperty,getValueAtTime:expressionHelpers.getStaticValueAtTime},extendPrototype([c],l),extendPrototype([c],d),d.prototype.getValueAtTime=a,d.prototype.initiateExpression=ExpressionManager.initiateExpression;var u=ShapePropertyFactory.getShapeProp;ShapePropertyFactory.getShapeProp=function(g,f,p,m,b){var _=u(g,f,p,m,b);return _.propertyIndex=f.ix,_.lock=!1,p===3?expressionHelpers.searchExpressions(g,f.pt,_):p===4&&expressionHelpers.searchExpressions(g,f.ks,_),_.k&&g.addDynamicProperty(_),_}}function initialize$1(){addPropertyDecorator()}function addDecorator(){function o(){return this.data.d.x?(this.calculateExpression=ExpressionManager.initiateExpression.bind(this)(this.elem,this.data.d,this),this.addEffect(this.getExpressionValue.bind(this)),!0):null}TextProperty.prototype.getExpressionValue=function(e,t){var i=this.calculateExpression(t);if(e.t!==i){var n={};return this.copyData(n,e),n.t=i.toString(),n.__complete=!1,n}return e},TextProperty.prototype.searchProperty=function(){var e=this.searchKeyframes(),t=this.searchExpressions();return this.kf=e||t,this.kf},TextProperty.prototype.searchExpressions=o}function initialize(){addDecorator()}function SVGComposableEffect(){}SVGComposableEffect.prototype={createMergeNode:function o(e,t){var i=createNS("feMerge");i.setAttribute("result",e);var n,r;for(r=0;r<t.length;r+=1)n=createNS("feMergeNode"),n.setAttribute("in",t[r]),i.appendChild(n),i.appendChild(n);return i}};var linearFilterValue="0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0";function SVGTintFilter(o,e,t,i,n){this.filterManager=e;var r=createNS("feColorMatrix");r.setAttribute("type","matrix"),r.setAttribute("color-interpolation-filters","linearRGB"),r.setAttribute("values",linearFilterValue+" 1 0"),this.linearFilter=r,r.setAttribute("result",i+"_tint_1"),o.appendChild(r),r=createNS("feColorMatrix"),r.setAttribute("type","matrix"),r.setAttribute("color-interpolation-filters","sRGB"),r.setAttribute("values","1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"),r.setAttribute("result",i+"_tint_2"),o.appendChild(r),this.matrixFilter=r;var s=this.createMergeNode(i,[n,i+"_tint_1",i+"_tint_2"]);o.appendChild(s)}extendPrototype([SVGComposableEffect],SVGTintFilter),SVGTintFilter.prototype.renderFrame=function(o){if(o||this.filterManager._mdf){var e=this.filterManager.effectElements[0].p.v,t=this.filterManager.effectElements[1].p.v,i=this.filterManager.effectElements[2].p.v/100;this.linearFilter.setAttribute("values",linearFilterValue+" "+i+" 0"),this.matrixFilter.setAttribute("values",t[0]-e[0]+" 0 0 0 "+e[0]+" "+(t[1]-e[1])+" 0 0 0 "+e[1]+" "+(t[2]-e[2])+" 0 0 0 "+e[2]+" 0 0 0 1 0")}};function SVGFillFilter(o,e,t,i){this.filterManager=e;var n=createNS("feColorMatrix");n.setAttribute("type","matrix"),n.setAttribute("color-interpolation-filters","sRGB"),n.setAttribute("values","1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"),n.setAttribute("result",i),o.appendChild(n),this.matrixFilter=n}SVGFillFilter.prototype.renderFrame=function(o){if(o||this.filterManager._mdf){var e=this.filterManager.effectElements[2].p.v,t=this.filterManager.effectElements[6].p.v;this.matrixFilter.setAttribute("values","0 0 0 0 "+e[0]+" 0 0 0 0 "+e[1]+" 0 0 0 0 "+e[2]+" 0 0 0 "+t+" 0")}};function SVGStrokeEffect(o,e,t){this.initialized=!1,this.filterManager=e,this.elem=t,this.paths=[]}SVGStrokeEffect.prototype.initialize=function(){var o=this.elem.layerElement.children||this.elem.layerElement.childNodes,e,t,i,n;for(this.filterManager.effectElements[1].p.v===1?(n=this.elem.maskManager.masksProperties.length,i=0):(i=this.filterManager.effectElements[0].p.v-1,n=i+1),t=createNS("g"),t.setAttribute("fill","none"),t.setAttribute("stroke-linecap","round"),t.setAttribute("stroke-dashoffset",1),i;i<n;i+=1)e=createNS("path"),t.appendChild(e),this.paths.push({p:e,m:i});if(this.filterManager.effectElements[10].p.v===3){var r=createNS("mask"),s=createElementID();r.setAttribute("id",s),r.setAttribute("mask-type","alpha"),r.appendChild(t),this.elem.globalData.defs.appendChild(r);var a=createNS("g");for(a.setAttribute("mask","url("+getLocationHref()+"#"+s+")");o[0];)a.appendChild(o[0]);this.elem.layerElement.appendChild(a),this.masker=r,t.setAttribute("stroke","#fff")}else if(this.filterManager.effectElements[10].p.v===1||this.filterManager.effectElements[10].p.v===2){if(this.filterManager.effectElements[10].p.v===2)for(o=this.elem.layerElement.children||this.elem.layerElement.childNodes;o.length;)this.elem.layerElement.removeChild(o[0]);this.elem.layerElement.appendChild(t),this.elem.layerElement.removeAttribute("mask"),t.setAttribute("stroke","#fff")}this.initialized=!0,this.pathMasker=t},SVGStrokeEffect.prototype.renderFrame=function(o){this.initialized||this.initialize();var e,t=this.paths.length,i,n;for(e=0;e<t;e+=1)if(this.paths[e].m!==-1&&(i=this.elem.maskManager.viewData[this.paths[e].m],n=this.paths[e].p,(o||this.filterManager._mdf||i.prop._mdf)&&n.setAttribute("d",i.lastPath),o||this.filterManager.effectElements[9].p._mdf||this.filterManager.effectElements[4].p._mdf||this.filterManager.effectElements[7].p._mdf||this.filterManager.effectElements[8].p._mdf||i.prop._mdf)){var r;if(this.filterManager.effectElements[7].p.v!==0||this.filterManager.effectElements[8].p.v!==100){var s=Math.min(this.filterManager.effectElements[7].p.v,this.filterManager.effectElements[8].p.v)*.01,a=Math.max(this.filterManager.effectElements[7].p.v,this.filterManager.effectElements[8].p.v)*.01,l=n.getTotalLength();r="0 0 0 "+l*s+" ";var d=l*(a-s),c=1+this.filterManager.effectElements[4].p.v*2*this.filterManager.effectElements[9].p.v*.01,u=Math.floor(d/c),g;for(g=0;g<u;g+=1)r+="1 "+this.filterManager.effectElements[4].p.v*2*this.filterManager.effectElements[9].p.v*.01+" ";r+="0 "+l*10+" 0 0"}else r="1 "+this.filterManager.effectElements[4].p.v*2*this.filterManager.effectElements[9].p.v*.01;n.setAttribute("stroke-dasharray",r)}if((o||this.filterManager.effectElements[4].p._mdf)&&this.pathMasker.setAttribute("stroke-width",this.filterManager.effectElements[4].p.v*2),(o||this.filterManager.effectElements[6].p._mdf)&&this.pathMasker.setAttribute("opacity",this.filterManager.effectElements[6].p.v),(this.filterManager.effectElements[10].p.v===1||this.filterManager.effectElements[10].p.v===2)&&(o||this.filterManager.effectElements[3].p._mdf)){var f=this.filterManager.effectElements[3].p.v;this.pathMasker.setAttribute("stroke","rgb("+bmFloor(f[0]*255)+","+bmFloor(f[1]*255)+","+bmFloor(f[2]*255)+")")}};function SVGTritoneFilter(o,e,t,i){this.filterManager=e;var n=createNS("feColorMatrix");n.setAttribute("type","matrix"),n.setAttribute("color-interpolation-filters","linearRGB"),n.setAttribute("values","0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0"),o.appendChild(n);var r=createNS("feComponentTransfer");r.setAttribute("color-interpolation-filters","sRGB"),r.setAttribute("result",i),this.matrixFilter=r;var s=createNS("feFuncR");s.setAttribute("type","table"),r.appendChild(s),this.feFuncR=s;var a=createNS("feFuncG");a.setAttribute("type","table"),r.appendChild(a),this.feFuncG=a;var l=createNS("feFuncB");l.setAttribute("type","table"),r.appendChild(l),this.feFuncB=l,o.appendChild(r)}SVGTritoneFilter.prototype.renderFrame=function(o){if(o||this.filterManager._mdf){var e=this.filterManager.effectElements[0].p.v,t=this.filterManager.effectElements[1].p.v,i=this.filterManager.effectElements[2].p.v,n=i[0]+" "+t[0]+" "+e[0],r=i[1]+" "+t[1]+" "+e[1],s=i[2]+" "+t[2]+" "+e[2];this.feFuncR.setAttribute("tableValues",n),this.feFuncG.setAttribute("tableValues",r),this.feFuncB.setAttribute("tableValues",s)}};function SVGProLevelsFilter(o,e,t,i){this.filterManager=e;var n=this.filterManager.effectElements,r=createNS("feComponentTransfer");(n[10].p.k||n[10].p.v!==0||n[11].p.k||n[11].p.v!==1||n[12].p.k||n[12].p.v!==1||n[13].p.k||n[13].p.v!==0||n[14].p.k||n[14].p.v!==1)&&(this.feFuncR=this.createFeFunc("feFuncR",r)),(n[17].p.k||n[17].p.v!==0||n[18].p.k||n[18].p.v!==1||n[19].p.k||n[19].p.v!==1||n[20].p.k||n[20].p.v!==0||n[21].p.k||n[21].p.v!==1)&&(this.feFuncG=this.createFeFunc("feFuncG",r)),(n[24].p.k||n[24].p.v!==0||n[25].p.k||n[25].p.v!==1||n[26].p.k||n[26].p.v!==1||n[27].p.k||n[27].p.v!==0||n[28].p.k||n[28].p.v!==1)&&(this.feFuncB=this.createFeFunc("feFuncB",r)),(n[31].p.k||n[31].p.v!==0||n[32].p.k||n[32].p.v!==1||n[33].p.k||n[33].p.v!==1||n[34].p.k||n[34].p.v!==0||n[35].p.k||n[35].p.v!==1)&&(this.feFuncA=this.createFeFunc("feFuncA",r)),(this.feFuncR||this.feFuncG||this.feFuncB||this.feFuncA)&&(r.setAttribute("color-interpolation-filters","sRGB"),o.appendChild(r)),(n[3].p.k||n[3].p.v!==0||n[4].p.k||n[4].p.v!==1||n[5].p.k||n[5].p.v!==1||n[6].p.k||n[6].p.v!==0||n[7].p.k||n[7].p.v!==1)&&(r=createNS("feComponentTransfer"),r.setAttribute("color-interpolation-filters","sRGB"),r.setAttribute("result",i),o.appendChild(r),this.feFuncRComposed=this.createFeFunc("feFuncR",r),this.feFuncGComposed=this.createFeFunc("feFuncG",r),this.feFuncBComposed=this.createFeFunc("feFuncB",r))}SVGProLevelsFilter.prototype.createFeFunc=function(o,e){var t=createNS(o);return t.setAttribute("type","table"),e.appendChild(t),t},SVGProLevelsFilter.prototype.getTableValue=function(o,e,t,i,n){for(var r=0,s=256,a,l=Math.min(o,e),d=Math.max(o,e),c=Array.call(null,{length:s}),u,g=0,f=n-i,p=e-o;r<=256;)a=r/256,a<=l?u=p<0?n:i:a>=d?u=p<0?i:n:u=i+f*Math.pow((a-o)/p,1/t),c[g]=u,g+=1,r+=256/(s-1);return c.join(" ")},SVGProLevelsFilter.prototype.renderFrame=function(o){if(o||this.filterManager._mdf){var e,t=this.filterManager.effectElements;this.feFuncRComposed&&(o||t[3].p._mdf||t[4].p._mdf||t[5].p._mdf||t[6].p._mdf||t[7].p._mdf)&&(e=this.getTableValue(t[3].p.v,t[4].p.v,t[5].p.v,t[6].p.v,t[7].p.v),this.feFuncRComposed.setAttribute("tableValues",e),this.feFuncGComposed.setAttribute("tableValues",e),this.feFuncBComposed.setAttribute("tableValues",e)),this.feFuncR&&(o||t[10].p._mdf||t[11].p._mdf||t[12].p._mdf||t[13].p._mdf||t[14].p._mdf)&&(e=this.getTableValue(t[10].p.v,t[11].p.v,t[12].p.v,t[13].p.v,t[14].p.v),this.feFuncR.setAttribute("tableValues",e)),this.feFuncG&&(o||t[17].p._mdf||t[18].p._mdf||t[19].p._mdf||t[20].p._mdf||t[21].p._mdf)&&(e=this.getTableValue(t[17].p.v,t[18].p.v,t[19].p.v,t[20].p.v,t[21].p.v),this.feFuncG.setAttribute("tableValues",e)),this.feFuncB&&(o||t[24].p._mdf||t[25].p._mdf||t[26].p._mdf||t[27].p._mdf||t[28].p._mdf)&&(e=this.getTableValue(t[24].p.v,t[25].p.v,t[26].p.v,t[27].p.v,t[28].p.v),this.feFuncB.setAttribute("tableValues",e)),this.feFuncA&&(o||t[31].p._mdf||t[32].p._mdf||t[33].p._mdf||t[34].p._mdf||t[35].p._mdf)&&(e=this.getTableValue(t[31].p.v,t[32].p.v,t[33].p.v,t[34].p.v,t[35].p.v),this.feFuncA.setAttribute("tableValues",e))}};function SVGDropShadowEffect(o,e,t,i,n){var r=e.container.globalData.renderConfig.filterSize,s=e.data.fs||r;o.setAttribute("x",s.x||r.x),o.setAttribute("y",s.y||r.y),o.setAttribute("width",s.width||r.width),o.setAttribute("height",s.height||r.height),this.filterManager=e;var a=createNS("feGaussianBlur");a.setAttribute("in","SourceAlpha"),a.setAttribute("result",i+"_drop_shadow_1"),a.setAttribute("stdDeviation","0"),this.feGaussianBlur=a,o.appendChild(a);var l=createNS("feOffset");l.setAttribute("dx","25"),l.setAttribute("dy","0"),l.setAttribute("in",i+"_drop_shadow_1"),l.setAttribute("result",i+"_drop_shadow_2"),this.feOffset=l,o.appendChild(l);var d=createNS("feFlood");d.setAttribute("flood-color","#00ff00"),d.setAttribute("flood-opacity","1"),d.setAttribute("result",i+"_drop_shadow_3"),this.feFlood=d,o.appendChild(d);var c=createNS("feComposite");c.setAttribute("in",i+"_drop_shadow_3"),c.setAttribute("in2",i+"_drop_shadow_2"),c.setAttribute("operator","in"),c.setAttribute("result",i+"_drop_shadow_4"),o.appendChild(c);var u=this.createMergeNode(i,[i+"_drop_shadow_4",n]);o.appendChild(u)}extendPrototype([SVGComposableEffect],SVGDropShadowEffect),SVGDropShadowEffect.prototype.renderFrame=function(o){if(o||this.filterManager._mdf){if((o||this.filterManager.effectElements[4].p._mdf)&&this.feGaussianBlur.setAttribute("stdDeviation",this.filterManager.effectElements[4].p.v/4),o||this.filterManager.effectElements[0].p._mdf){var e=this.filterManager.effectElements[0].p.v;this.feFlood.setAttribute("flood-color",rgbToHex(Math.round(e[0]*255),Math.round(e[1]*255),Math.round(e[2]*255)))}if((o||this.filterManager.effectElements[1].p._mdf)&&this.feFlood.setAttribute("flood-opacity",this.filterManager.effectElements[1].p.v/255),o||this.filterManager.effectElements[2].p._mdf||this.filterManager.effectElements[3].p._mdf){var t=this.filterManager.effectElements[3].p.v,i=(this.filterManager.effectElements[2].p.v-90)*degToRads,n=t*Math.cos(i),r=t*Math.sin(i);this.feOffset.setAttribute("dx",n),this.feOffset.setAttribute("dy",r)}}};var _svgMatteSymbols=[];function SVGMatte3Effect(o,e,t){this.initialized=!1,this.filterManager=e,this.filterElem=o,this.elem=t,t.matteElement=createNS("g"),t.matteElement.appendChild(t.layerElement),t.matteElement.appendChild(t.transformedElement),t.baseElement=t.matteElement}SVGMatte3Effect.prototype.findSymbol=function(o){for(var e=0,t=_svgMatteSymbols.length;e<t;){if(_svgMatteSymbols[e]===o)return _svgMatteSymbols[e];e+=1}return null},SVGMatte3Effect.prototype.replaceInParent=function(o,e){var t=o.layerElement.parentNode;if(t){for(var i=t.children,n=0,r=i.length;n<r&&i[n]!==o.layerElement;)n+=1;var s;n<=r-2&&(s=i[n+1]);var a=createNS("use");a.setAttribute("href","#"+e),s?t.insertBefore(a,s):t.appendChild(a)}},SVGMatte3Effect.prototype.setElementAsMask=function(o,e){if(!this.findSymbol(e)){var t=createElementID(),i=createNS("mask");i.setAttribute("id",e.layerId),i.setAttribute("mask-type","alpha"),_svgMatteSymbols.push(e);var n=o.globalData.defs;n.appendChild(i);var r=createNS("symbol");r.setAttribute("id",t),this.replaceInParent(e,t),r.appendChild(e.layerElement),n.appendChild(r);var s=createNS("use");s.setAttribute("href","#"+t),i.appendChild(s),e.data.hd=!1,e.show()}o.setMatte(e.layerId)},SVGMatte3Effect.prototype.initialize=function(){for(var o=this.filterManager.effectElements[0].p.v,e=this.elem.comp.elements,t=0,i=e.length;t<i;)e[t]&&e[t].data.ind===o&&this.setElementAsMask(this.elem,e[t]),t+=1;this.initialized=!0},SVGMatte3Effect.prototype.renderFrame=function(){this.initialized||this.initialize()};function SVGGaussianBlurEffect(o,e,t,i){o.setAttribute("x","-100%"),o.setAttribute("y","-100%"),o.setAttribute("width","300%"),o.setAttribute("height","300%"),this.filterManager=e;var n=createNS("feGaussianBlur");n.setAttribute("result",i),o.appendChild(n),this.feGaussianBlur=n}SVGGaussianBlurEffect.prototype.renderFrame=function(o){if(o||this.filterManager._mdf){var e=.3,t=this.filterManager.effectElements[0].p.v*e,i=this.filterManager.effectElements[1].p.v,n=i==3?0:t,r=i==2?0:t;this.feGaussianBlur.setAttribute("stdDeviation",n+" "+r);var s=this.filterManager.effectElements[2].p.v==1?"wrap":"duplicate";this.feGaussianBlur.setAttribute("edgeMode",s)}};function TransformEffect(){}TransformEffect.prototype.init=function(o){this.effectsManager=o,this.type=effectTypes.TRANSFORM_EFFECT,this.matrix=new Matrix,this.opacity=-1,this._mdf=!1,this._opMdf=!1},TransformEffect.prototype.renderFrame=function(o){if(this._opMdf=!1,this._mdf=!1,o||this.effectsManager._mdf){var e=this.effectsManager.effectElements,t=e[0].p.v,i=e[1].p.v,n=e[2].p.v===1,r=e[3].p.v,s=n?r:e[4].p.v,a=e[5].p.v,l=e[6].p.v,d=e[7].p.v;this.matrix.reset(),this.matrix.translate(-t[0],-t[1],t[2]),this.matrix.scale(s*.01,r*.01,1),this.matrix.rotate(-d*degToRads),this.matrix.skewFromAxis(-a*degToRads,(l+90)*degToRads),this.matrix.translate(i[0],i[1],0),this._mdf=!0,this.opacity!==e[8].p.v&&(this.opacity=e[8].p.v,this._opMdf=!0)}};function SVGTransformEffect(o,e){this.init(e)}extendPrototype([TransformEffect],SVGTransformEffect);function CVTransformEffect(o){this.init(o)}return extendPrototype([TransformEffect],CVTransformEffect),registerRenderer("canvas",CanvasRenderer),registerRenderer("html",HybridRenderer),registerRenderer("svg",SVGRenderer),ShapeModifiers.registerModifier("tm",TrimModifier),ShapeModifiers.registerModifier("pb",PuckerAndBloatModifier),ShapeModifiers.registerModifier("rp",RepeaterModifier),ShapeModifiers.registerModifier("rd",RoundCornersModifier),ShapeModifiers.registerModifier("zz",ZigZagModifier),ShapeModifiers.registerModifier("op",OffsetPathModifier),setExpressionsPlugin(Expressions),setExpressionInterfaces(getInterface),initialize$1(),initialize(),registerEffect$1(20,SVGTintFilter,!0),registerEffect$1(21,SVGFillFilter,!0),registerEffect$1(22,SVGStrokeEffect,!1),registerEffect$1(23,SVGTritoneFilter,!0),registerEffect$1(24,SVGProLevelsFilter,!0),registerEffect$1(25,SVGDropShadowEffect,!0),registerEffect$1(28,SVGMatte3Effect,!1),registerEffect$1(29,SVGGaussianBlurEffect,!0),registerEffect$1(35,SVGTransformEffect,!1),registerEffect(35,CVTransformEffect),lottie})}(lottie$2,lottie$2.exports)),lottie$2.exports}var lottieExports=requireLottie();const lottie=getDefaultExportFromCjs(lottieExports),_hoisted_1$2={class:"uploadLoading"},_hoisted_2$2=["id"],_hoisted_3$2={class:"loading-text"},__default__$2=defineComponent({name:"UploadLoading"}),_sfc_main$2=Object.assign(__default__$2,{props:{text:{type:String,defautl:""}},setup(o){const e=computed(()=>"loaidng-animiate_"+new Date().getTime()),t=ref(null),i=()=>{nextTick(()=>{t.value||(t.value=lottie.loadAnimation({container:document.getElementById(e.value),renderer:"svg",loop:!0,autoplay:!0,animationData:loading5Data,rendererSettings:{scaleMode:"noScale",clearCanvas:!1,progressiveLoad:!1,hideOnTransparent:!0}}))})};return onUnmounted(()=>{t.value.destroy(),t.value=null}),onMounted(()=>{i()}),(n,r)=>(openBlock(),createElementBlock("div",_hoisted_1$2,[createBaseVNode("div",{ref:"loadingRef",class:"loaidng-animiate",id:e.value},null,8,_hoisted_2$2),createBaseVNode("div",_hoisted_3$2,toDisplayString(o.text),1)]))}}),UploadLoading=_export_sfc(_sfc_main$2,[["__scopeId","data-v-31952c3f"]]),_hoisted_1$1={class:"fileCompare"},_hoisted_2$1={class:"fileCompare-upload-box"},_hoisted_3$1={style:{"font-weight":"600","margin-top":"4px"}},_hoisted_4$1={class:"actions-box"},_hoisted_5$1={key:2,class:"trans-file-status-box"},_hoisted_6$1={class:"trans-status"},_hoisted_7$1=["xlink:href"],_hoisted_8$1={class:"status-text"},_hoisted_9$1={key:0,class:"status-tips"},_hoisted_10$1={key:1,class:"trans-name-box"},_hoisted_11$1={class:"trans-actions-box"},__default__$1=defineComponent({name:"FileCompare"}),_sfc_main$1=Object.assign(__default__$1,{props:{fileList:{type:Array,default:()=>[]},fileListModifiers:{}},emits:["update:fileList"],setup(o){const e=useUserStore(),t=useModel(o,"fileList"),i={Authorization:"Bearer "+e.access_token},n={module:"/jvs-knowledge/jvs-tool/"},r=ref("upload"),s=ref(""),a=()=>{var C,S,y,E;if(t.value.length<=0)return ElMessage.warning("请选择文件");const m=((S=(C=t.value[0])==null?void 0:C.response)==null?void 0:S.data)||{},b=((E=(y=t.value[1])==null?void 0:y.response)==null?void 0:E.data)||{},_={originBucketName:m.bucketName,originFileName:m.fileName,targetBucketName:b.bucketName,targetFileName:b.fileName};r.value="camparing",serverCompareFile(_).then(x=>{console.log(x),x.code===0?(s.value=x.data,r.value="camparedSuccess"):r.value="camparedFail"}).catch(()=>{r.value="camparedFail"})},l=()=>{r.value="upload",t.value=[]},d=ref(!1),c=ref(!1),u=()=>{d.value=!0,c.value=!0},g=()=>{console.log("渲染完成"),c.value=!1},f=m=>{console.log("渲染失败",m),ElMessage.error("渲染失败"),c.value=!1},p=(m,b)=>{if(m==="upload")return t.value.length>0?"比对文档":"源文档";if(m==="list")return b===0?"源文档":"比对文档"};return(m,b)=>{const _=resolveComponent("el-button"),C=resolveComponent("el-tooltip"),S=resolveComponent("el-dialog"),y=resolveDirective("tooltip-auto-show");return openBlock(),createElementBlock("div",_hoisted_1$1,[r.value==="upload"?(openBlock(),createElementBlock(Fragment,{key:0},[b[5]||(b[5]=createBaseVNode("div",{class:"first-title"},"文档比对",-1)),b[6]||(b[6]=createBaseVNode("div",{class:"second-title"},"比对将不超过1-2分钟,这取决于文件的大小和内容",-1)),createBaseVNode("div",_hoisted_2$1,[createVNode(DarggableUpload,{modelValue:t.value,"onUpdate:modelValue":b[0]||(b[0]=E=>t.value=E),action:"/mgr/jvs-auth/upload/jvs-public",limit:2,multiple:!0,uploadHeaders:i,uploadData:n,showIndex:!1,accept:".docx,.doc"},{tips:withCtx(({element:E,index:x,type:L})=>[createBaseVNode("div",_hoisted_3$1,toDisplayString(p(L,x)),1)]),_:1},8,["modelValue"])]),createBaseVNode("div",_hoisted_4$1,[createVNode(_,{class:"button",type:"primary",onClick:a},{default:withCtx(()=>b[3]||(b[3]=[createTextVNode("比对文档")])),_:1}),createVNode(_,{class:"button default",onClick:l},{default:withCtx(()=>b[4]||(b[4]=[createTextVNode("取消")])),_:1})])],64)):r.value==="camparing"?(openBlock(),createBlock(UploadLoading,{key:1,text:"文档正在比对"})):(openBlock(),createElementBlock("div",_hoisted_5$1,[(openBlock(),createElementBlock("svg",_hoisted_6$1,[createBaseVNode("use",{"xlink:href":`${r.value==="camparedSuccess"?"#keowledge-zhengque":"#keowledge-cuowu"}`},null,8,_hoisted_7$1)])),createBaseVNode("div",_hoisted_8$1," 文档比对"+toDisplayString(r.value==="camparedSuccess"?"完成":"失败"),1),r.value==="camparedSuccess"?(openBlock(),createElementBlock("div",_hoisted_9$1," 你可以选择去预览或者下载文档 ")):createCommentVNode("",!0),r.value==="camparedSuccess"?withDirectives((openBlock(),createElementBlock("div",_hoisted_10$1,[createVNode(_sfc_main$5,{class:"file-icon",type:"document_upload",nameSuffix:"docx"}),createVNode(C,{content:"比较文档.docx",effect:"light"},{default:withCtx(()=>b[7]||(b[7]=[createBaseVNode("div",{class:"doc-name"},"比较文档.docx",-1)])),_:1})])),[[y]]):createCommentVNode("",!0),createBaseVNode("div",_hoisted_11$1,[r.value==="camparedSuccess"?(openBlock(),createBlock(_,{key:0,class:"button",type:"primary",onClick:u},{default:withCtx(()=>b[8]||(b[8]=[createTextVNode(" 预览 ")])),_:1})):createCommentVNode("",!0),r.value==="camparedSuccess"?(openBlock(),createElementBlock("div",{key:1,class:"button other-button",onClick:b[1]||(b[1]=E=>unref(downLoadFileByPath)(s.value,"对比文件.docx",!0))}," 下载 ")):createCommentVNode("",!0),r.value==="camparedFail"?(openBlock(),createBlock(_,{key:2,class:"button",type:"primary",onClick:a},{default:withCtx(()=>b[9]||(b[9]=[createTextVNode(" 重试 ")])),_:1})):createCommentVNode("",!0),createBaseVNode("div",{class:"button other-button",onClick:l},"取消")])])),createVNode(S,{top:"8vh",modelValue:d.value,"onUpdate:modelValue":b[2]||(b[2]=E=>d.value=E),title:"文件预览",width:"800"},{default:withCtx(()=>[createVNode(unref(VueOfficeDocx),{src:s.value,onRendered:g,onError:f,style:{height:"680px"}},null,8,["src"])]),_:1},8,["modelValue"])])}}}),FileCompare=_export_sfc(_sfc_main$1,[["__scopeId","data-v-b5745dae"]]),_imports_0=""+new URL("uploadImg-CApFro1s.png",import.meta.url).href,_imports_1=""+new URL("uploadImg1-DTE_kabr.png",import.meta.url).href,_imports_2=""+new URL("mergePDF-C6OW3DbA.png",import.meta.url).href,_imports_3=""+new URL("mergeWord-BM4Fqowh.png",import.meta.url).href;function WorkerWrapper$1(o){return new Worker(""+new URL("editor.worker-CDU2Z2yo.js",import.meta.url).href,{name:o==null?void 0:o.name})}function WorkerWrapper(o){return new Worker(""+new URL("html.worker-ujR1sCIh.js",import.meta.url).href,{name:o==null?void 0:o.name})}function tail(o,e=0){return o[o.length-(1+e)]}function tail2(o){if(o.length===0)throw new Error("Invalid tail call");return[o.slice(0,o.length-1),o[o.length-1]]}function equals$2(o,e,t=(i,n)=>i===n){if(o===e)return!0;if(!o||!e||o.length!==e.length)return!1;for(let i=0,n=o.length;i<n;i++)if(!t(o[i],e[i]))return!1;return!0}function removeFastWithoutKeepingOrder(o,e){const t=o.length-1;e<t&&(o[e]=o[t]),o.pop()}function binarySearch(o,e,t){return binarySearch2(o.length,i=>t(o[i],e))}function binarySearch2(o,e){let t=0,i=o-1;for(;t<=i;){const n=(t+i)/2|0,r=e(n);if(r<0)t=n+1;else if(r>0)i=n-1;else return n}return-(t+1)}function quickSelect(o,e,t){if(o=o|0,o>=e.length)throw new TypeError("invalid index");const i=e[Math.floor(e.length*Math.random())],n=[],r=[],s=[];for(const a of e){const l=t(a,i);l<0?n.push(a):l>0?r.push(a):s.push(a)}return o<n.length?quickSelect(o,n,t):o<n.length+s.length?s[0]:quickSelect(o-(n.length+s.length),r,t)}function groupBy(o,e){const t=[];let i;for(const n of o.slice(0).sort(e))!i||e(i[0],n)!==0?(i=[n],t.push(i)):i.push(n);return t}function*groupAdjacentBy(o,e){let t,i;for(const n of o)i!==void 0&&e(i,n)?t.push(n):(t&&(yield t),t=[n]),i=n;t&&(yield t)}function forEachAdjacent(o,e){for(let t=0;t<=o.length;t++)e(t===0?void 0:o[t-1],t===o.length?void 0:o[t])}function forEachWithNeighbors(o,e){for(let t=0;t<o.length;t++)e(t===0?void 0:o[t-1],o[t],t+1===o.length?void 0:o[t+1])}function coalesce(o){return o.filter(e=>!!e)}function coalesceInPlace(o){let e=0;for(let t=0;t<o.length;t++)o[t]&&(o[e]=o[t],e+=1);o.length=e}function isFalsyOrEmpty(o){return!Array.isArray(o)||o.length===0}function isNonEmptyArray(o){return Array.isArray(o)&&o.length>0}function distinct(o,e=t=>t){const t=new Set;return o.filter(i=>{const n=e(i);return t.has(n)?!1:(t.add(n),!0)})}function firstOrDefault(o,e){return o.length>0?o[0]:e}function range(o,e){let t=typeof e=="number"?o:0;typeof e=="number"?t=o:(t=0,e=o);const i=[];if(t<=e)for(let n=t;n<e;n++)i.push(n);else for(let n=t;n>e;n--)i.push(n);return i}function arrayInsert(o,e,t){const i=o.slice(0,e),n=o.slice(e);return i.concat(t,n)}function pushToStart(o,e){const t=o.indexOf(e);t>-1&&(o.splice(t,1),o.unshift(e))}function pushToEnd(o,e){const t=o.indexOf(e);t>-1&&(o.splice(t,1),o.push(e))}function pushMany(o,e){for(const t of e)o.push(t)}function asArray(o){return Array.isArray(o)?o:[o]}function insertInto(o,e,t){const i=getActualStartIndex(o,e),n=o.length,r=t.length;o.length=n+r;for(let s=n-1;s>=i;s--)o[s+r]=o[s];for(let s=0;s<r;s++)o[s+i]=t[s]}function splice$1(o,e,t,i){const n=getActualStartIndex(o,e);let r=o.splice(n,t);return r===void 0&&(r=[]),insertInto(o,n,i),r}function getActualStartIndex(o,e){return e<0?Math.max(e+o.length,0):Math.min(e,o.length)}var CompareResult;(function(o){function e(r){return r<0}o.isLessThan=e;function t(r){return r<=0}o.isLessThanOrEqual=t;function i(r){return r>0}o.isGreaterThan=i;function n(r){return r===0}o.isNeitherLessOrGreaterThan=n,o.greaterThan=1,o.lessThan=-1,o.neitherLessOrGreaterThan=0})(CompareResult||(CompareResult={}));function compareBy(o,e){return(t,i)=>e(o(t),o(i))}function tieBreakComparators(...o){return(e,t)=>{for(const i of o){const n=i(e,t);if(!CompareResult.isNeitherLessOrGreaterThan(n))return n}return CompareResult.neitherLessOrGreaterThan}}const numberComparator=(o,e)=>o-e,booleanComparator=(o,e)=>numberComparator(o?1:0,e?1:0);function reverseOrder(o){return(e,t)=>-o(e,t)}class ArrayQueue{constructor(e){this.items=e,this.firstIdx=0,this.lastIdx=this.items.length-1}get length(){return this.lastIdx-this.firstIdx+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}peek(){if(this.length!==0)return this.items[this.firstIdx]}dequeue(){const e=this.items[this.firstIdx];return this.firstIdx++,e}takeCount(e){const t=this.items.slice(this.firstIdx,this.firstIdx+e);return this.firstIdx+=e,t}}class CallbackIterable{constructor(e){this.iterate=e}toArray(){const e=[];return this.iterate(t=>(e.push(t),!0)),e}filter(e){return new CallbackIterable(t=>this.iterate(i=>e(i)?t(i):!0))}map(e){return new CallbackIterable(t=>this.iterate(i=>t(e(i))))}findLast(e){let t;return this.iterate(i=>(e(i)&&(t=i),!0)),t}findLastMaxBy(e){let t,i=!0;return this.iterate(n=>((i||CompareResult.isGreaterThan(e(n,t)))&&(i=!1,t=n),!0)),t}}CallbackIterable.empty=new CallbackIterable(o=>{});function isString$1(o){return typeof o=="string"}function isObject(o){return typeof o=="object"&&o!==null&&!Array.isArray(o)&&!(o instanceof RegExp)&&!(o instanceof Date)}function isTypedArray(o){const e=Object.getPrototypeOf(Uint8Array);return typeof o=="object"&&o instanceof e}function isNumber$1(o){return typeof o=="number"&&!isNaN(o)}function isIterable(o){return!!o&&typeof o[Symbol.iterator]=="function"}function isBoolean(o){return o===!0||o===!1}function isUndefined(o){return typeof o>"u"}function isDefined(o){return!isUndefinedOrNull(o)}function isUndefinedOrNull(o){return isUndefined(o)||o===null}function assertType(o,e){if(!o)throw new Error("Unexpected type")}function assertIsDefined(o){if(isUndefinedOrNull(o))throw new Error("Assertion Failed: argument is undefined or null");return o}function isFunction(o){return typeof o=="function"}function validateConstraints(o,e){const t=Math.min(o.length,e.length);for(let i=0;i<t;i++)validateConstraint(o[i],e[i])}function validateConstraint(o,e){if(isString$1(e)){if(typeof o!==e)throw new Error(`argument does not match constraint: typeof ${e}`)}else if(isFunction(e)){try{if(o instanceof e)return}catch{}if(!isUndefinedOrNull(o)&&o.constructor===e||e.length===1&&e.call(void 0,o)===!0)return;throw new Error("argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true")}}function deepClone(o){if(!o||typeof o!="object"||o instanceof RegExp)return o;const e=Array.isArray(o)?[]:{};return Object.entries(o).forEach(([t,i])=>{e[t]=i&&typeof i=="object"?deepClone(i):i}),e}function deepFreeze(o){if(!o||typeof o!="object")return o;const e=[o];for(;e.length>0;){const t=e.shift();Object.freeze(t);for(const i in t)if(_hasOwnProperty.call(t,i)){const n=t[i];typeof n=="object"&&!Object.isFrozen(n)&&!isTypedArray(n)&&e.push(n)}}return o}const _hasOwnProperty=Object.prototype.hasOwnProperty;function cloneAndChange(o,e){return _cloneAndChange(o,e,new Set)}function _cloneAndChange(o,e,t){if(isUndefinedOrNull(o))return o;const i=e(o);if(typeof i<"u")return i;if(Array.isArray(o)){const n=[];for(const r of o)n.push(_cloneAndChange(r,e,t));return n}if(isObject(o)){if(t.has(o))throw new Error("Cannot clone recursive data-structure");t.add(o);const n={};for(const r in o)_hasOwnProperty.call(o,r)&&(n[r]=_cloneAndChange(o[r],e,t));return t.delete(o),n}return o}function mixin(o,e,t=!0){return isObject(o)?(isObject(e)&&Object.keys(e).forEach(i=>{i in o?t&&(isObject(o[i])&&isObject(e[i])?mixin(o[i],e[i],t):o[i]=e[i]):o[i]=e[i]}),o):e}function equals$1(o,e){if(o===e)return!0;if(o==null||e===null||e===void 0||typeof o!=typeof e||typeof o!="object"||Array.isArray(o)!==Array.isArray(e))return!1;let t,i;if(Array.isArray(o)){if(o.length!==e.length)return!1;for(t=0;t<o.length;t++)if(!equals$1(o[t],e[t]))return!1}else{const n=[];for(i in o)n.push(i);n.sort();const r=[];for(i in e)r.push(i);if(r.sort(),!equals$1(n,r))return!1;for(t=0;t<n.length;t++)if(!equals$1(o[n[t]],e[n[t]]))return!1}return!0}function getAllPropertyNames(o){let e=[];for(;Object.prototype!==o;)e=e.concat(Object.getOwnPropertyNames(o)),o=Object.getPrototypeOf(o);return e}function getAllMethodNames(o){const e=[];for(const t of getAllPropertyNames(o))typeof o[t]=="function"&&e.push(t);return e}function createProxyObject$1(o,e){const t=n=>function(){const r=Array.prototype.slice.call(arguments,0);return e(n,r)},i={};for(const n of o)i[n]=t(n);return i}let isPseudo=typeof document<"u"&&document.location&&document.location.hash.indexOf("pseudo=true")>=0;function _format$1(o,e){let t;return e.length===0?t=o:t=o.replace(/\{(\d+)\}/g,(i,n)=>{const r=n[0],s=e[r];let a=i;return typeof s=="string"?a=s:(typeof s=="number"||typeof s=="boolean"||s===void 0||s===null)&&(a=String(s)),a}),isPseudo&&(t="["+t.replace(/[aouei]/g,"$&$&")+"]"),t}function localize(o,e,...t){return _format$1(e,t)}function getConfiguredDefaultLocale(o){}var _a$4;const LANGUAGE_DEFAULT="en";let _isWindows=!1,_isMacintosh=!1,_isLinux=!1,_isNative=!1,_isWeb=!1,_isIOS=!1,_isMobile=!1,_locale,_language=LANGUAGE_DEFAULT,_platformLocale=LANGUAGE_DEFAULT,_translationsConfigFile,_userAgent;const globals=typeof self=="object"?self:typeof global=="object"?global:{};let nodeProcess;typeof globals.vscode<"u"&&typeof globals.vscode.process<"u"?nodeProcess=globals.vscode.process:typeof process<"u"&&(nodeProcess=process);const isElectronProcess=typeof((_a$4=nodeProcess==null?void 0:nodeProcess.versions)===null||_a$4===void 0?void 0:_a$4.electron)=="string",isElectronRenderer=isElectronProcess&&(nodeProcess==null?void 0:nodeProcess.type)==="renderer";if(typeof navigator=="object"&&!isElectronRenderer)_userAgent=navigator.userAgent,_isWindows=_userAgent.indexOf("Windows")>=0,_isMacintosh=_userAgent.indexOf("Macintosh")>=0,_isIOS=(_userAgent.indexOf("Macintosh")>=0||_userAgent.indexOf("iPad")>=0||_userAgent.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,_isLinux=_userAgent.indexOf("Linux")>=0,_isMobile=(_userAgent==null?void 0:_userAgent.indexOf("Mobi"))>=0,_isWeb=!0,localize({},"_"),_locale=LANGUAGE_DEFAULT,_language=_locale,_platformLocale=navigator.language;else if(typeof nodeProcess=="object"){_isWindows=nodeProcess.platform==="win32",_isMacintosh=nodeProcess.platform==="darwin",_isLinux=nodeProcess.platform==="linux",_isLinux&&nodeProcess.env.SNAP&&nodeProcess.env.SNAP_REVISION,nodeProcess.env.CI||nodeProcess.env.BUILD_ARTIFACTSTAGINGDIRECTORY,_locale=LANGUAGE_DEFAULT,_language=LANGUAGE_DEFAULT;const o=nodeProcess.env.VSCODE_NLS_CONFIG;if(o)try{const e=JSON.parse(o),t=e.availableLanguages["*"];_locale=e.locale,_platformLocale=e.osLocale,_language=t||LANGUAGE_DEFAULT,_translationsConfigFile=e._translationsConfigFile}catch{}_isNative=!0}else console.error("Unable to resolve platform.");const isWindows=_isWindows,isMacintosh=_isMacintosh,isLinux=_isLinux,isNative=_isNative,isWeb=_isWeb,isWebWorker=_isWeb&&typeof globals.importScripts=="function",isIOS=_isIOS,isMobile=_isMobile,userAgent$1=_userAgent,language=_language,setTimeout0IsFaster=typeof globals.postMessage=="function"&&!globals.importScripts,setTimeout0=(()=>{if(setTimeout0IsFaster){const o=[];globals.addEventListener("message",t=>{if(t.data&&t.data.vscodeScheduleAsyncWork)for(let i=0,n=o.length;i<n;i++){const r=o[i];if(r.id===t.data.vscodeScheduleAsyncWork){o.splice(i,1),r.callback();return}}});let e=0;return t=>{const i=++e;o.push({id:i,callback:t}),globals.postMessage({vscodeScheduleAsyncWork:i},"*")}}return o=>setTimeout(o)})(),OS=_isMacintosh||_isIOS?2:_isWindows?1:3;let _isLittleEndian=!0,_isLittleEndianComputed=!1;function isLittleEndian(){if(!_isLittleEndianComputed){_isLittleEndianComputed=!0;const o=new Uint8Array(2);o[0]=1,o[1]=2,_isLittleEndian=new Uint16Array(o.buffer)[0]===513}return _isLittleEndian}const isChrome$1=!!(userAgent$1&&userAgent$1.indexOf("Chrome")>=0),isFirefox$1=!!(userAgent$1&&userAgent$1.indexOf("Firefox")>=0),isSafari$1=!!(!isChrome$1&&userAgent$1&&userAgent$1.indexOf("Safari")>=0),isEdge=!!(userAgent$1&&userAgent$1.indexOf("Edg/")>=0);userAgent$1&&userAgent$1.indexOf("Android")>=0;const EDITOR_MODEL_DEFAULTS={tabSize:4,indentSize:4,insertSpaces:!0,detectIndentation:!0,trimAutoWhitespace:!0,largeFileOptimizations:!0,bracketPairColorizationOptions:{enabled:!0,independentColorPoolPerBracketType:!1}};var Iterable;(function(o){function e(C){return C&&typeof C=="object"&&typeof C[Symbol.iterator]=="function"}o.is=e;const t=Object.freeze([]);function i(){return t}o.empty=i;function*n(C){yield C}o.single=n;function r(C){return e(C)?C:n(C)}o.wrap=r;function s(C){return C||t}o.from=s;function*a(C){for(let S=C.length-1;S>=0;S--)yield C[S]}o.reverse=a;function l(C){return!C||C[Symbol.iterator]().next().done===!0}o.isEmpty=l;function d(C){return C[Symbol.iterator]().next().value}o.first=d;function c(C,S){for(const y of C)if(S(y))return!0;return!1}o.some=c;function u(C,S){for(const y of C)if(S(y))return y}o.find=u;function*g(C,S){for(const y of C)S(y)&&(yield y)}o.filter=g;function*f(C,S){let y=0;for(const E of C)yield S(E,y++)}o.map=f;function*p(...C){for(const S of C)for(const y of S)yield y}o.concat=p;function m(C,S,y){let E=y;for(const x of C)E=S(E,x);return E}o.reduce=m;function*b(C,S,y=C.length){for(S<0&&(S+=C.length),y<0?y+=C.length:y>C.length&&(y=C.length);S<y;S++)yield C[S]}o.slice=b;function _(C,S=Number.POSITIVE_INFINITY){const y=[];if(S===0)return[y,C];const E=C[Symbol.iterator]();for(let x=0;x<S;x++){const L=E.next();if(L.done)return[y,o.empty()];y.push(L.value)}return[y,{[Symbol.iterator](){return E}}]}o.consume=_})(Iterable||(Iterable={}));let Node$2=class at{constructor(e){this.element=e,this.next=at.Undefined,this.prev=at.Undefined}};Node$2.Undefined=new Node$2(void 0);class LinkedList{constructor(){this._first=Node$2.Undefined,this._last=Node$2.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===Node$2.Undefined}clear(){let e=this._first;for(;e!==Node$2.Undefined;){const t=e.next;e.prev=Node$2.Undefined,e.next=Node$2.Undefined,e=t}this._first=Node$2.Undefined,this._last=Node$2.Undefined,this._size=0}unshift(e){return this._insert(e,!1)}push(e){return this._insert(e,!0)}_insert(e,t){const i=new Node$2(e);if(this._first===Node$2.Undefined)this._first=i,this._last=i;else if(t){const r=this._last;this._last=i,i.prev=r,r.next=i}else{const r=this._first;this._first=i,i.next=r,r.prev=i}this._size+=1;let n=!1;return()=>{n||(n=!0,this._remove(i))}}shift(){if(this._first!==Node$2.Undefined){const e=this._first.element;return this._remove(this._first),e}}pop(){if(this._last!==Node$2.Undefined){const e=this._last.element;return this._remove(this._last),e}}_remove(e){if(e.prev!==Node$2.Undefined&&e.next!==Node$2.Undefined){const t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===Node$2.Undefined&&e.next===Node$2.Undefined?(this._first=Node$2.Undefined,this._last=Node$2.Undefined):e.next===Node$2.Undefined?(this._last=this._last.prev,this._last.next=Node$2.Undefined):e.prev===Node$2.Undefined&&(this._first=this._first.next,this._first.prev=Node$2.Undefined);this._size-=1}*[Symbol.iterator](){let e=this._first;for(;e!==Node$2.Undefined;)yield e.element,e=e.next}}const USUAL_WORD_SEPARATORS="`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?";function createWordRegExp(o=""){let e="(-?\\d*\\.\\d\\w*)|([^";for(const t of USUAL_WORD_SEPARATORS)o.indexOf(t)>=0||(e+="\\"+t);return e+="\\s]+)",new RegExp(e,"g")}const DEFAULT_WORD_REGEXP=createWordRegExp();function ensureValidWordDefinition(o){let e=DEFAULT_WORD_REGEXP;if(o&&o instanceof RegExp)if(o.global)e=o;else{let t="g";o.ignoreCase&&(t+="i"),o.multiline&&(t+="m"),o.unicode&&(t+="u"),e=new RegExp(o.source,t)}return e.lastIndex=0,e}const _defaultConfig=new LinkedList;_defaultConfig.unshift({maxLen:1e3,windowSize:15,timeBudget:150});function getWordAtText(o,e,t,i,n){if(n||(n=Iterable.first(_defaultConfig)),t.length>n.maxLen){let d=o-n.maxLen/2;return d<0?d=0:i+=d,t=t.substring(d,o+n.maxLen/2),getWordAtText(o,e,t,i,n)}const r=Date.now(),s=o-1-i;let a=-1,l=null;for(let d=1;!(Date.now()-r>=n.timeBudget);d++){const c=s-n.windowSize*d;e.lastIndex=Math.max(0,c);const u=_findRegexMatchEnclosingPosition(e,t,s,a);if(!u&&l||(l=u,c<=0))break;a=c}if(l){const d={word:l[0],startColumn:i+1+l.index,endColumn:i+1+l.index+l[0].length};return e.lastIndex=0,d}return null}function _findRegexMatchEnclosingPosition(o,e,t,i){let n;for(;n=o.exec(e);){const r=n.index||0;if(r<=t&&o.lastIndex>=t)return n;if(i>0&&r>i)return null}return null}const MINIMAP_GUTTER_WIDTH=8;class ConfigurationChangedEvent{constructor(e){this._values=e}hasChanged(e){return this._values[e]}}class ComputeOptionsMemory{constructor(){this.stableMinimapLayoutInput=null,this.stableFitMaxMinimapScale=0,this.stableFitRemainingWidth=0}}class BaseEditorOption{constructor(e,t,i,n){this.id=e,this.name=t,this.defaultValue=i,this.schema=n}applyUpdate(e,t){return applyUpdate(e,t)}compute(e,t,i){return i}}class ApplyUpdateResult{constructor(e,t){this.newValue=e,this.didChange=t}}function applyUpdate(o,e){if(typeof o!="object"||typeof e!="object"||!o||!e)return new ApplyUpdateResult(e,o!==e);if(Array.isArray(o)||Array.isArray(e)){const i=Array.isArray(o)&&Array.isArray(e)&&equals$2(o,e);return new ApplyUpdateResult(e,!i)}let t=!1;for(const i in e)if(e.hasOwnProperty(i)){const n=applyUpdate(o[i],e[i]);n.didChange&&(o[i]=n.newValue,t=!0)}return new ApplyUpdateResult(o,t)}class ComputedEditorOption{constructor(e){this.schema=void 0,this.id=e,this.name="_never_",this.defaultValue=void 0}applyUpdate(e,t){return applyUpdate(e,t)}validate(e){return this.defaultValue}}class SimpleEditorOption{constructor(e,t,i,n){this.id=e,this.name=t,this.defaultValue=i,this.schema=n}applyUpdate(e,t){return applyUpdate(e,t)}validate(e){return typeof e>"u"?this.defaultValue:e}compute(e,t,i){return i}}function boolean(o,e){return typeof o>"u"?e:o==="false"?!1:!!o}class EditorBooleanOption extends SimpleEditorOption{constructor(e,t,i,n=void 0){typeof n<"u"&&(n.type="boolean",n.default=i),super(e,t,i,n)}validate(e){return boolean(e,this.defaultValue)}}function clampedInt(o,e,t,i){if(typeof o>"u")return e;let n=parseInt(o,10);return isNaN(n)?e:(n=Math.max(t,n),n=Math.min(i,n),n|0)}class EditorIntOption extends SimpleEditorOption{static clampedInt(e,t,i,n){return clampedInt(e,t,i,n)}constructor(e,t,i,n,r,s=void 0){typeof s<"u"&&(s.type="integer",s.default=i,s.minimum=n,s.maximum=r),super(e,t,i,s),this.minimum=n,this.maximum=r}validate(e){return EditorIntOption.clampedInt(e,this.defaultValue,this.minimum,this.maximum)}}function clampedFloat(o,e,t,i){if(typeof o>"u")return e;const n=EditorFloatOption.float(o,e);return EditorFloatOption.clamp(n,t,i)}class EditorFloatOption extends SimpleEditorOption{static clamp(e,t,i){return e<t?t:e>i?i:e}static float(e,t){if(typeof e=="number")return e;if(typeof e>"u")return t;const i=parseFloat(e);return isNaN(i)?t:i}constructor(e,t,i,n,r){typeof r<"u"&&(r.type="number",r.default=i),super(e,t,i,r),this.validationFn=n}validate(e){return this.validationFn(EditorFloatOption.float(e,this.defaultValue))}}class EditorStringOption extends SimpleEditorOption{static string(e,t){return typeof e!="string"?t:e}constructor(e,t,i,n=void 0){typeof n<"u"&&(n.type="string",n.default=i),super(e,t,i,n)}validate(e){return EditorStringOption.string(e,this.defaultValue)}}function stringSet(o,e,t,i){return typeof o!="string"?e:i&&o in i?i[o]:t.indexOf(o)===-1?e:o}class EditorStringEnumOption extends SimpleEditorOption{constructor(e,t,i,n,r=void 0){typeof r<"u"&&(r.type="string",r.enum=n,r.default=i),super(e,t,i,r),this._allowedValues=n}validate(e){return stringSet(e,this.defaultValue,this._allowedValues)}}class EditorEnumOption extends BaseEditorOption{constructor(e,t,i,n,r,s,a=void 0){typeof a<"u"&&(a.type="string",a.enum=r,a.default=n),super(e,t,i,a),this._allowedValues=r,this._convert=s}validate(e){return typeof e!="string"?this.defaultValue:this._allowedValues.indexOf(e)===-1?this.defaultValue:this._convert(e)}}function _autoIndentFromString(o){switch(o){case"none":return 0;case"keep":return 1;case"brackets":return 2;case"advanced":return 3;case"full":return 4}}class EditorAccessibilitySupport extends BaseEditorOption{constructor(){super(2,"accessibilitySupport",0,{type:"string",enum:["auto","on","off"],enumDescriptions:[localize("accessibilitySupport.auto","Use platform APIs to detect when a Screen Reader is attached"),localize("accessibilitySupport.on","Optimize for usage with a Screen Reader"),localize("accessibilitySupport.off","Assume a screen reader is not attached")],default:"auto",tags:["accessibility"],description:localize("accessibilitySupport","Controls if the UI should run in a mode where it is optimized for screen readers.")})}validate(e){switch(e){case"auto":return 0;case"off":return 1;case"on":return 2}return this.defaultValue}compute(e,t,i){return i===0?e.accessibilitySupport:i}}class EditorComments extends BaseEditorOption{constructor(){const e={insertSpace:!0,ignoreEmptyLines:!0};super(23,"comments",e,{"editor.comments.insertSpace":{type:"boolean",default:e.insertSpace,description:localize("comments.insertSpace","Controls whether a space character is inserted when commenting.")},"editor.comments.ignoreEmptyLines":{type:"boolean",default:e.ignoreEmptyLines,description:localize("comments.ignoreEmptyLines","Controls if empty lines should be ignored with toggle, add or remove actions for line comments.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{insertSpace:boolean(t.insertSpace,this.defaultValue.insertSpace),ignoreEmptyLines:boolean(t.ignoreEmptyLines,this.defaultValue.ignoreEmptyLines)}}}function _cursorBlinkingStyleFromString(o){switch(o){case"blink":return 1;case"smooth":return 2;case"phase":return 3;case"expand":return 4;case"solid":return 5}}var TextEditorCursorStyle$1;(function(o){o[o.Line=1]="Line",o[o.Block=2]="Block",o[o.Underline=3]="Underline",o[o.LineThin=4]="LineThin",o[o.BlockOutline=5]="BlockOutline",o[o.UnderlineThin=6]="UnderlineThin"})(TextEditorCursorStyle$1||(TextEditorCursorStyle$1={}));function _cursorStyleFromString(o){switch(o){case"line":return TextEditorCursorStyle$1.Line;case"block":return TextEditorCursorStyle$1.Block;case"underline":return TextEditorCursorStyle$1.Underline;case"line-thin":return TextEditorCursorStyle$1.LineThin;case"block-outline":return TextEditorCursorStyle$1.BlockOutline;case"underline-thin":return TextEditorCursorStyle$1.UnderlineThin}}class EditorClassName extends ComputedEditorOption{constructor(){super(140)}compute(e,t,i){const n=["monaco-editor"];return t.get(39)&&n.push(t.get(39)),e.extraEditorClassName&&n.push(e.extraEditorClassName),t.get(73)==="default"?n.push("mouse-default"):t.get(73)==="copy"&&n.push("mouse-copy"),t.get(110)&&n.push("showUnused"),t.get(138)&&n.push("showDeprecated"),n.join(" ")}}class EditorEmptySelectionClipboard extends EditorBooleanOption{constructor(){super(37,"emptySelectionClipboard",!0,{description:localize("emptySelectionClipboard","Controls whether copying without a selection copies the current line.")})}compute(e,t,i){return i&&e.emptySelectionClipboard}}class EditorFind extends BaseEditorOption{constructor(){const e={cursorMoveOnType:!0,seedSearchStringFromSelection:"always",autoFindInSelection:"never",globalFindClipboard:!1,addExtraSpaceOnTop:!0,loop:!0};super(41,"find",e,{"editor.find.cursorMoveOnType":{type:"boolean",default:e.cursorMoveOnType,description:localize("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:[localize("editor.find.seedSearchStringFromSelection.never","Never seed search string from the editor selection."),localize("editor.find.seedSearchStringFromSelection.always","Always seed search string from the editor selection, including word at cursor position."),localize("editor.find.seedSearchStringFromSelection.selection","Only seed search string from the editor selection.")],description:localize("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:[localize("editor.find.autoFindInSelection.never","Never turn on Find in Selection automatically (default)."),localize("editor.find.autoFindInSelection.always","Always turn on Find in Selection automatically."),localize("editor.find.autoFindInSelection.multiline","Turn on Find in Selection automatically when multiple lines of content are selected.")],description:localize("find.autoFindInSelection","Controls the condition for turning on Find in Selection automatically.")},"editor.find.globalFindClipboard":{type:"boolean",default:e.globalFindClipboard,description:localize("find.globalFindClipboard","Controls whether the Find Widget should read or modify the shared find clipboard on macOS."),included:isMacintosh},"editor.find.addExtraSpaceOnTop":{type:"boolean",default:e.addExtraSpaceOnTop,description:localize("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:localize("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||typeof e!="object")return this.defaultValue;const t=e;return{cursorMoveOnType:boolean(t.cursorMoveOnType,this.defaultValue.cursorMoveOnType),seedSearchStringFromSelection:typeof e.seedSearchStringFromSelection=="boolean"?e.seedSearchStringFromSelection?"always":"never":stringSet(t.seedSearchStringFromSelection,this.defaultValue.seedSearchStringFromSelection,["never","always","selection"]),autoFindInSelection:typeof e.autoFindInSelection=="boolean"?e.autoFindInSelection?"always":"never":stringSet(t.autoFindInSelection,this.defaultValue.autoFindInSelection,["never","always","multiline"]),globalFindClipboard:boolean(t.globalFindClipboard,this.defaultValue.globalFindClipboard),addExtraSpaceOnTop:boolean(t.addExtraSpaceOnTop,this.defaultValue.addExtraSpaceOnTop),loop:boolean(t.loop,this.defaultValue.loop)}}}class EditorFontLigatures extends BaseEditorOption{constructor(){super(51,"fontLigatures",EditorFontLigatures.OFF,{anyOf:[{type:"boolean",description:localize("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:localize("fontFeatureSettings","Explicit 'font-feature-settings' CSS property. A boolean can be passed instead if one only needs to turn on/off ligatures.")}],description:localize("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 typeof e>"u"?this.defaultValue:typeof e=="string"?e==="false"?EditorFontLigatures.OFF:e==="true"?EditorFontLigatures.ON:e:e?EditorFontLigatures.ON:EditorFontLigatures.OFF}}EditorFontLigatures.OFF='"liga" off, "calt" off';EditorFontLigatures.ON='"liga" on, "calt" on';class EditorFontVariations extends BaseEditorOption{constructor(){super(54,"fontVariations",EditorFontVariations.OFF,{anyOf:[{type:"boolean",description:localize("fontVariations","Enables/Disables the translation from font-weight to font-variation-settings. Change this to a string for fine-grained control of the 'font-variation-settings' CSS property.")},{type:"string",description:localize("fontVariationSettings","Explicit 'font-variation-settings' CSS property. A boolean can be passed instead if one only needs to translate font-weight to font-variation-settings.")}],description:localize("fontVariationsGeneral","Configures font variations. Can be either a boolean to enable/disable the translation from font-weight to font-variation-settings or a string for the value of the CSS 'font-variation-settings' property."),default:!1})}validate(e){return typeof e>"u"?this.defaultValue:typeof e=="string"?e==="false"?EditorFontVariations.OFF:e==="true"?EditorFontVariations.TRANSLATE:e:e?EditorFontVariations.TRANSLATE:EditorFontVariations.OFF}compute(e,t,i){return e.fontInfo.fontVariationSettings}}EditorFontVariations.OFF="normal";EditorFontVariations.TRANSLATE="translate";class EditorFontInfo extends ComputedEditorOption{constructor(){super(50)}compute(e,t,i){return e.fontInfo}}class EditorFontSize extends SimpleEditorOption{constructor(){super(52,"fontSize",EDITOR_FONT_DEFAULTS.fontSize,{type:"number",minimum:6,maximum:100,default:EDITOR_FONT_DEFAULTS.fontSize,description:localize("fontSize","Controls the font size in pixels.")})}validate(e){const t=EditorFloatOption.float(e,this.defaultValue);return t===0?EDITOR_FONT_DEFAULTS.fontSize:EditorFloatOption.clamp(t,6,100)}compute(e,t,i){return e.fontInfo.fontSize}}class EditorFontWeight extends BaseEditorOption{constructor(){super(53,"fontWeight",EDITOR_FONT_DEFAULTS.fontWeight,{anyOf:[{type:"number",minimum:EditorFontWeight.MINIMUM_VALUE,maximum:EditorFontWeight.MAXIMUM_VALUE,errorMessage:localize("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:EditorFontWeight.SUGGESTION_VALUES}],default:EDITOR_FONT_DEFAULTS.fontWeight,description:localize("fontWeight",'Controls the font weight. Accepts "normal" and "bold" keywords or numbers between 1 and 1000.')})}validate(e){return e==="normal"||e==="bold"?e:String(EditorIntOption.clampedInt(e,EDITOR_FONT_DEFAULTS.fontWeight,EditorFontWeight.MINIMUM_VALUE,EditorFontWeight.MAXIMUM_VALUE))}}EditorFontWeight.SUGGESTION_VALUES=["normal","bold","100","200","300","400","500","600","700","800","900"];EditorFontWeight.MINIMUM_VALUE=1;EditorFontWeight.MAXIMUM_VALUE=1e3;class EditorGoToLocation extends BaseEditorOption{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:[localize("editor.gotoLocation.multiple.peek","Show Peek view of the results (default)"),localize("editor.gotoLocation.multiple.gotoAndPeek","Go to the primary result and show a Peek view"),localize("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(58,"gotoLocation",e,{"editor.gotoLocation.multiple":{deprecationMessage:localize("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:localize("editor.editor.gotoLocation.multipleDefinitions","Controls the behavior the 'Go to Definition'-command when multiple target locations exist.")},t),"editor.gotoLocation.multipleTypeDefinitions":Object.assign({description:localize("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:localize("editor.editor.gotoLocation.multipleDeclarations","Controls the behavior the 'Go to Declaration'-command when multiple target locations exist.")},t),"editor.gotoLocation.multipleImplementations":Object.assign({description:localize("editor.editor.gotoLocation.multipleImplemenattions","Controls the behavior the 'Go to Implementations'-command when multiple target locations exist.")},t),"editor.gotoLocation.multipleReferences":Object.assign({description:localize("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:localize("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:localize("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:localize("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:localize("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:localize("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,r,s;if(!e||typeof e!="object")return this.defaultValue;const a=e;return{multiple:stringSet(a.multiple,this.defaultValue.multiple,["peek","gotoAndPeek","goto"]),multipleDefinitions:(t=a.multipleDefinitions)!==null&&t!==void 0?t:stringSet(a.multipleDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleTypeDefinitions:(i=a.multipleTypeDefinitions)!==null&&i!==void 0?i:stringSet(a.multipleTypeDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleDeclarations:(n=a.multipleDeclarations)!==null&&n!==void 0?n:stringSet(a.multipleDeclarations,"peek",["peek","gotoAndPeek","goto"]),multipleImplementations:(r=a.multipleImplementations)!==null&&r!==void 0?r:stringSet(a.multipleImplementations,"peek",["peek","gotoAndPeek","goto"]),multipleReferences:(s=a.multipleReferences)!==null&&s!==void 0?s:stringSet(a.multipleReferences,"peek",["peek","gotoAndPeek","goto"]),alternativeDefinitionCommand:EditorStringOption.string(a.alternativeDefinitionCommand,this.defaultValue.alternativeDefinitionCommand),alternativeTypeDefinitionCommand:EditorStringOption.string(a.alternativeTypeDefinitionCommand,this.defaultValue.alternativeTypeDefinitionCommand),alternativeDeclarationCommand:EditorStringOption.string(a.alternativeDeclarationCommand,this.defaultValue.alternativeDeclarationCommand),alternativeImplementationCommand:EditorStringOption.string(a.alternativeImplementationCommand,this.defaultValue.alternativeImplementationCommand),alternativeReferenceCommand:EditorStringOption.string(a.alternativeReferenceCommand,this.defaultValue.alternativeReferenceCommand)}}}class EditorHover extends BaseEditorOption{constructor(){const e={enabled:!0,delay:300,hidingDelay:300,sticky:!0,above:!0};super(60,"hover",e,{"editor.hover.enabled":{type:"boolean",default:e.enabled,description:localize("hover.enabled","Controls whether the hover is shown.")},"editor.hover.delay":{type:"number",default:e.delay,minimum:0,maximum:1e4,description:localize("hover.delay","Controls the delay in milliseconds after which the hover is shown.")},"editor.hover.sticky":{type:"boolean",default:e.sticky,description:localize("hover.sticky","Controls whether the hover should remain visible when mouse is moved over it.")},"editor.hover.hidingDelay":{type:"integer",minimum:0,default:e.hidingDelay,description:localize("hover.hidingDelay","Controls the delay in milliseconds after thich the hover is hidden. Requires `editor.hover.sticky` to be enabled.")},"editor.hover.above":{type:"boolean",default:e.above,description:localize("hover.above","Prefer showing hovers above the line, if there's space.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:boolean(t.enabled,this.defaultValue.enabled),delay:EditorIntOption.clampedInt(t.delay,this.defaultValue.delay,0,1e4),sticky:boolean(t.sticky,this.defaultValue.sticky),hidingDelay:EditorIntOption.clampedInt(t.hidingDelay,this.defaultValue.hidingDelay,0,6e5),above:boolean(t.above,this.defaultValue.above)}}}class EditorLayoutInfoComputer extends ComputedEditorOption{constructor(){super(143)}compute(e,t,i){return EditorLayoutInfoComputer.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,glyphMarginDecorationLaneCount:e.glyphMarginDecorationLaneCount})}static computeContainedMinimapLineCount(e){const t=e.height/e.lineHeight,i=Math.floor(e.paddingTop/e.lineHeight);let n=Math.floor(e.paddingBottom/e.lineHeight);e.scrollBeyondLastLine&&(n=Math.max(n,t-1));const r=(i+e.viewLineCount+n)/(e.pixelRatio*e.height),s=Math.floor(e.viewLineCount/r);return{typicalViewportLineCount:t,extraLinesBeforeFirstLine:i,extraLinesBeyondLastLine:n,desiredRatio:r,minimapLineCount:s}}static _computeMinimapLayout(e,t){const i=e.outerWidth,n=e.outerHeight,r=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(r*n),minimapCanvasOuterWidth:0,minimapCanvasOuterHeight:n};const s=t.stableMinimapLayoutInput,a=s&&e.outerHeight===s.outerHeight&&e.lineHeight===s.lineHeight&&e.typicalHalfwidthCharacterWidth===s.typicalHalfwidthCharacterWidth&&e.pixelRatio===s.pixelRatio&&e.scrollBeyondLastLine===s.scrollBeyondLastLine&&e.paddingTop===s.paddingTop&&e.paddingBottom===s.paddingBottom&&e.minimap.enabled===s.minimap.enabled&&e.minimap.side===s.minimap.side&&e.minimap.size===s.minimap.size&&e.minimap.showSlider===s.minimap.showSlider&&e.minimap.renderCharacters===s.minimap.renderCharacters&&e.minimap.maxColumn===s.minimap.maxColumn&&e.minimap.scale===s.minimap.scale&&e.verticalScrollbarWidth===s.verticalScrollbarWidth&&e.isViewportWrapping===s.isViewportWrapping,l=e.lineHeight,d=e.typicalHalfwidthCharacterWidth,c=e.scrollBeyondLastLine,u=e.minimap.renderCharacters;let g=r>=2?Math.round(e.minimap.scale*2):e.minimap.scale;const f=e.minimap.maxColumn,p=e.minimap.size,m=e.minimap.side,b=e.verticalScrollbarWidth,_=e.viewLineCount,C=e.remainingWidth,S=e.isViewportWrapping,y=u?2:3;let E=Math.floor(r*n);const x=E/r;let L=!1,I=!1,D=y*g,N=g/r,F=1;if(p==="fill"||p==="fit"){const{typicalViewportLineCount:k,extraLinesBeforeFirstLine:T,extraLinesBeyondLastLine:U,desiredRatio:z,minimapLineCount:J}=EditorLayoutInfoComputer.computeContainedMinimapLineCount({viewLineCount:_,scrollBeyondLastLine:c,paddingTop:e.paddingTop,paddingBottom:e.paddingBottom,height:n,lineHeight:l,pixelRatio:r});if(_/J>1)L=!0,I=!0,g=1,D=1,N=g/r;else{let ae=!1,ve=g+1;if(p==="fit"){const me=Math.ceil((T+_+U)*D);S&&a&&C<=t.stableFitRemainingWidth?(ae=!0,ve=t.stableFitMaxMinimapScale):ae=me>E}if(p==="fill"||ae){L=!0;const me=g;D=Math.min(l*r,Math.max(1,Math.floor(1/z))),S&&a&&C<=t.stableFitRemainingWidth&&(ve=t.stableFitMaxMinimapScale),g=Math.min(ve,Math.max(1,Math.floor(D/y))),g>me&&(F=Math.min(2,g/me)),N=g/r/F,E=Math.ceil(Math.max(k,T+_+U)*D),S?(t.stableMinimapLayoutInput=e,t.stableFitRemainingWidth=C,t.stableFitMaxMinimapScale=g):(t.stableMinimapLayoutInput=null,t.stableFitRemainingWidth=0)}}}const R=Math.floor(f*N),M=Math.min(R,Math.max(0,Math.floor((C-b-2)*N/(d+N)))+MINIMAP_GUTTER_WIDTH);let W=Math.floor(r*M);const V=W/r;W=Math.floor(W*F);const A=u?1:2,P=m==="left"?0:i-M-b;return{renderMinimap:A,minimapLeft:P,minimapWidth:M,minimapHeightIsEditorHeight:L,minimapIsSampling:I,minimapScale:g,minimapLineHeight:D,minimapCanvasInnerWidth:W,minimapCanvasInnerHeight:E,minimapCanvasOuterWidth:V,minimapCanvasOuterHeight:x}}static computeLayout(e,t){const i=t.outerWidth|0,n=t.outerHeight|0,r=t.lineHeight|0,s=t.lineNumbersDigitCount|0,a=t.typicalHalfwidthCharacterWidth,l=t.maxDigitWidth,d=t.pixelRatio,c=t.viewLineCount,u=e.get(135),g=u==="inherit"?e.get(134):u,f=g==="inherit"?e.get(130):g,p=e.get(133),m=t.isDominatedByLongLines,b=e.get(57),_=e.get(67).renderType!==0,C=e.get(68),S=e.get(104),y=e.get(83),E=e.get(72),x=e.get(102),L=x.verticalScrollbarSize,I=x.verticalHasArrows,D=x.arrowSize,N=x.horizontalScrollbarSize,F=e.get(43),R=e.get(109)!=="never";let M=e.get(65);F&&R&&(M+=16);let W=0;if(_){const xe=Math.max(s,C);W=Math.round(xe*l)}let V=0;b&&(V=r*t.glyphMarginDecorationLaneCount);let A=0,P=A+V,k=P+W,T=k+M;const U=i-V-W-M;let z=!1,J=!1,X=-1;g==="inherit"&&m?(z=!0,J=!0):f==="on"||f==="bounded"?J=!0:f==="wordWrapColumn"&&(X=p);const ae=EditorLayoutInfoComputer._computeMinimapLayout({outerWidth:i,outerHeight:n,lineHeight:r,typicalHalfwidthCharacterWidth:a,pixelRatio:d,scrollBeyondLastLine:S,paddingTop:y.top,paddingBottom:y.bottom,minimap:E,verticalScrollbarWidth:L,viewLineCount:c,remainingWidth:U,isViewportWrapping:J},t.memory||new ComputeOptionsMemory);ae.renderMinimap!==0&&ae.minimapLeft===0&&(A+=ae.minimapWidth,P+=ae.minimapWidth,k+=ae.minimapWidth,T+=ae.minimapWidth);const ve=U-ae.minimapWidth,me=Math.max(1,Math.floor((ve-L-2)/a)),fe=I?D:0;return J&&(X=Math.max(1,me),f==="bounded"&&(X=Math.min(X,p))),{width:i,height:n,glyphMarginLeft:A,glyphMarginWidth:V,glyphMarginDecorationLaneCount:t.glyphMarginDecorationLaneCount,lineNumbersLeft:P,lineNumbersWidth:W,decorationsLeft:k,decorationsWidth:M,contentLeft:T,contentWidth:ve,minimap:ae,viewportColumn:me,isWordWrapMinified:z,isViewportWrapping:J,wrappingColumn:X,verticalScrollbarWidth:L,horizontalScrollbarHeight:N,overviewRuler:{top:fe,width:L,height:n-2*fe,right:0}}}}class WrappingStrategy extends BaseEditorOption{constructor(){super(137,"wrappingStrategy","simple",{"editor.wrappingStrategy":{enumDescriptions:[localize("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."),localize("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.")],type:"string",enum:["simple","advanced"],default:"simple",description:localize("wrappingStrategy","Controls the algorithm that computes wrapping points. Note that when in accessibility mode, advanced will be used for the best experience.")}})}validate(e){return stringSet(e,"simple",["simple","advanced"])}compute(e,t,i){return t.get(2)===2?"advanced":i}}class EditorLightbulb extends BaseEditorOption{constructor(){const e={enabled:!0};super(64,"lightbulb",e,{"editor.lightbulb.enabled":{type:"boolean",default:e.enabled,description:localize("codeActions","Enables the Code Action lightbulb in the editor.")}})}validate(e){return!e||typeof e!="object"?this.defaultValue:{enabled:boolean(e.enabled,this.defaultValue.enabled)}}}class EditorStickyScroll extends BaseEditorOption{constructor(){const e={enabled:!1,maxLineCount:5,defaultModel:"outlineModel",scrollWithEditor:!0};super(114,"stickyScroll",e,{"editor.stickyScroll.enabled":{type:"boolean",default:e.enabled,description:localize("editor.stickyScroll.enabled","Shows the nested current scopes during the scroll at the top of the editor.")},"editor.stickyScroll.maxLineCount":{type:"number",default:e.maxLineCount,minimum:1,maximum:10,description:localize("editor.stickyScroll.maxLineCount","Defines the maximum number of sticky lines to show.")},"editor.stickyScroll.defaultModel":{type:"string",enum:["outlineModel","foldingProviderModel","indentationModel"],default:e.defaultModel,description:localize("editor.stickyScroll.defaultModel","Defines the model to use for determining which lines to stick. If the outline model does not exist, it will fall back on the folding provider model which falls back on the indentation model. This order is respected in all three cases.")},"editor.stickyScroll.scrollWithEditor":{type:"boolean",default:e.scrollWithEditor,description:localize("editor.stickyScroll.scrollWithEditor","Enable scrolling of the sticky scroll widget with the editor's horizontal scrollbar.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:boolean(t.enabled,this.defaultValue.enabled),maxLineCount:EditorIntOption.clampedInt(t.maxLineCount,this.defaultValue.maxLineCount,1,10),defaultModel:stringSet(t.defaultModel,this.defaultValue.defaultModel,["outlineModel","foldingProviderModel","indentationModel"]),scrollWithEditor:boolean(t.scrollWithEditor,this.defaultValue.scrollWithEditor)}}}class EditorInlayHints extends BaseEditorOption{constructor(){const e={enabled:"on",fontSize:0,fontFamily:"",padding:!1};super(139,"inlayHints",e,{"editor.inlayHints.enabled":{type:"string",default:e.enabled,description:localize("inlayHints.enable","Enables the inlay hints in the editor."),enum:["on","onUnlessPressed","offUnlessPressed","off"],markdownEnumDescriptions:[localize("editor.inlayHints.on","Inlay hints are enabled"),localize("editor.inlayHints.onUnlessPressed","Inlay hints are showing by default and hide when holding {0}",isMacintosh?"Ctrl+Option":"Ctrl+Alt"),localize("editor.inlayHints.offUnlessPressed","Inlay hints are hidden by default and show when holding {0}",isMacintosh?"Ctrl+Option":"Ctrl+Alt"),localize("editor.inlayHints.off","Inlay hints are disabled")]},"editor.inlayHints.fontSize":{type:"number",default:e.fontSize,markdownDescription:localize("inlayHints.fontSize","Controls font size of inlay hints in the editor. As default the {0} is used when the configured value is less than {1} or greater than the editor font size.","`#editor.fontSize#`","`5`")},"editor.inlayHints.fontFamily":{type:"string",default:e.fontFamily,markdownDescription:localize("inlayHints.fontFamily","Controls font family of inlay hints in the editor. When set to empty, the {0} is used.","`#editor.fontFamily#`")},"editor.inlayHints.padding":{type:"boolean",default:e.padding,description:localize("inlayHints.padding","Enables the padding around the inlay hints in the editor.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return typeof t.enabled=="boolean"&&(t.enabled=t.enabled?"on":"off"),{enabled:stringSet(t.enabled,this.defaultValue.enabled,["on","off","offUnlessPressed","onUnlessPressed"]),fontSize:EditorIntOption.clampedInt(t.fontSize,this.defaultValue.fontSize,0,100),fontFamily:EditorStringOption.string(t.fontFamily,this.defaultValue.fontFamily),padding:boolean(t.padding,this.defaultValue.padding)}}}class EditorLineDecorationsWidth extends BaseEditorOption{constructor(){super(65,"lineDecorationsWidth",10)}validate(e){return typeof e=="string"&&/^\d+(\.\d+)?ch$/.test(e)?-parseFloat(e.substring(0,e.length-2)):EditorIntOption.clampedInt(e,this.defaultValue,0,1e3)}compute(e,t,i){return i<0?EditorIntOption.clampedInt(-i*e.fontInfo.typicalHalfwidthCharacterWidth,this.defaultValue,0,1e3):i}}class EditorLineHeight extends EditorFloatOption{constructor(){super(66,"lineHeight",EDITOR_FONT_DEFAULTS.lineHeight,e=>EditorFloatOption.clamp(e,0,150),{markdownDescription:localize("lineHeight",`Controls the line height.
- - Use 0 to automatically compute the line height from the font size.
- - Values between 0 and 8 will be used as a multiplier with the font size.
- - Values greater than or equal to 8 will be used as effective values.`)})}compute(e,t,i){return e.fontInfo.lineHeight}}class EditorMinimap extends BaseEditorOption{constructor(){const e={enabled:!0,size:"proportional",side:"right",showSlider:"mouseover",autohide:!1,renderCharacters:!0,maxColumn:120,scale:1};super(72,"minimap",e,{"editor.minimap.enabled":{type:"boolean",default:e.enabled,description:localize("minimap.enabled","Controls whether the minimap is shown.")},"editor.minimap.autohide":{type:"boolean",default:e.autohide,description:localize("minimap.autohide","Controls whether the minimap is hidden automatically.")},"editor.minimap.size":{type:"string",enum:["proportional","fill","fit"],enumDescriptions:[localize("minimap.size.proportional","The minimap has the same size as the editor contents (and might scroll)."),localize("minimap.size.fill","The minimap will stretch or shrink as necessary to fill the height of the editor (no scrolling)."),localize("minimap.size.fit","The minimap will shrink as necessary to never be larger than the editor (no scrolling).")],default:e.size,description:localize("minimap.size","Controls the size of the minimap.")},"editor.minimap.side":{type:"string",enum:["left","right"],default:e.side,description:localize("minimap.side","Controls the side where to render the minimap.")},"editor.minimap.showSlider":{type:"string",enum:["always","mouseover"],default:e.showSlider,description:localize("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:localize("minimap.scale","Scale of content drawn in the minimap: 1, 2 or 3.")},"editor.minimap.renderCharacters":{type:"boolean",default:e.renderCharacters,description:localize("minimap.renderCharacters","Render the actual characters on a line as opposed to color blocks.")},"editor.minimap.maxColumn":{type:"number",default:e.maxColumn,description:localize("minimap.maxColumn","Limit the width of the minimap to render at most a certain number of columns.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:boolean(t.enabled,this.defaultValue.enabled),autohide:boolean(t.autohide,this.defaultValue.autohide),size:stringSet(t.size,this.defaultValue.size,["proportional","fill","fit"]),side:stringSet(t.side,this.defaultValue.side,["right","left"]),showSlider:stringSet(t.showSlider,this.defaultValue.showSlider,["always","mouseover"]),renderCharacters:boolean(t.renderCharacters,this.defaultValue.renderCharacters),scale:EditorIntOption.clampedInt(t.scale,1,1,3),maxColumn:EditorIntOption.clampedInt(t.maxColumn,this.defaultValue.maxColumn,1,1e4)}}}function _multiCursorModifierFromString(o){return o==="ctrlCmd"?isMacintosh?"metaKey":"ctrlKey":"altKey"}class EditorPadding extends BaseEditorOption{constructor(){super(83,"padding",{top:0,bottom:0},{"editor.padding.top":{type:"number",default:0,minimum:0,maximum:1e3,description:localize("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:localize("padding.bottom","Controls the amount of space between the bottom edge of the editor and the last line.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{top:EditorIntOption.clampedInt(t.top,0,0,1e3),bottom:EditorIntOption.clampedInt(t.bottom,0,0,1e3)}}}class EditorParameterHints extends BaseEditorOption{constructor(){const e={enabled:!0,cycle:!0};super(85,"parameterHints",e,{"editor.parameterHints.enabled":{type:"boolean",default:e.enabled,description:localize("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:localize("parameterHints.cycle","Controls whether the parameter hints menu cycles or closes when reaching the end of the list.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:boolean(t.enabled,this.defaultValue.enabled),cycle:boolean(t.cycle,this.defaultValue.cycle)}}}class EditorPixelRatio extends ComputedEditorOption{constructor(){super(141)}compute(e,t,i){return e.pixelRatio}}class EditorQuickSuggestions extends BaseEditorOption{constructor(){const e={other:"on",comments:"off",strings:"off"},t=[{type:"boolean"},{type:"string",enum:["on","inline","off"],enumDescriptions:[localize("on","Quick suggestions show inside the suggest widget"),localize("inline","Quick suggestions show as ghost text"),localize("off","Quick suggestions are disabled")]}];super(88,"quickSuggestions",e,{type:"object",additionalProperties:!1,properties:{strings:{anyOf:t,default:e.strings,description:localize("quickSuggestions.strings","Enable quick suggestions inside strings.")},comments:{anyOf:t,default:e.comments,description:localize("quickSuggestions.comments","Enable quick suggestions inside comments.")},other:{anyOf:t,default:e.other,description:localize("quickSuggestions.other","Enable quick suggestions outside of strings and comments.")}},default:e,markdownDescription:localize("quickSuggestions","Controls whether suggestions should automatically show up while typing. This can be controlled for typing in comments, strings, and other code. Quick suggestion can be configured to show as ghost text or with the suggest widget. Also be aware of the '{0}'-setting which controls if suggestions are triggered by special characters.","#editor.suggestOnTriggerCharacters#")}),this.defaultValue=e}validate(e){if(typeof e=="boolean"){const d=e?"on":"off";return{comments:d,strings:d,other:d}}if(!e||typeof e!="object")return this.defaultValue;const{other:t,comments:i,strings:n}=e,r=["on","inline","off"];let s,a,l;return typeof t=="boolean"?s=t?"on":"off":s=stringSet(t,this.defaultValue.other,r),typeof i=="boolean"?a=i?"on":"off":a=stringSet(i,this.defaultValue.comments,r),typeof n=="boolean"?l=n?"on":"off":l=stringSet(n,this.defaultValue.strings,r),{other:s,comments:a,strings:l}}}class EditorRenderLineNumbersOption extends BaseEditorOption{constructor(){super(67,"lineNumbers",{renderType:1,renderFn:null},{type:"string",enum:["off","on","relative","interval"],enumDescriptions:[localize("lineNumbers.off","Line numbers are not rendered."),localize("lineNumbers.on","Line numbers are rendered as absolute number."),localize("lineNumbers.relative","Line numbers are rendered as distance in lines to cursor position."),localize("lineNumbers.interval","Line numbers are rendered every 10 lines.")],default:"on",description:localize("lineNumbers","Controls the display of line numbers.")})}validate(e){let t=this.defaultValue.renderType,i=this.defaultValue.renderFn;return typeof e<"u"&&(typeof e=="function"?(t=4,i=e):e==="interval"?t=3:e==="relative"?t=2:e==="on"?t=1:t=0),{renderType:t,renderFn:i}}}function filterValidationDecorations(o){const e=o.get(97);return e==="editable"?o.get(90):e!=="on"}class EditorRulers extends BaseEditorOption{constructor(){const e=[],t={type:"number",description:localize("rulers.size","Number of monospace characters at which this editor ruler will render.")};super(101,"rulers",e,{type:"array",items:{anyOf:[t,{type:["object"],properties:{column:t,color:{type:"string",description:localize("rulers.color","Color of this editor ruler."),format:"color-hex"}}}]},default:e,description:localize("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)){const t=[];for(const i of e)if(typeof i=="number")t.push({column:EditorIntOption.clampedInt(i,0,0,1e4),color:null});else if(i&&typeof i=="object"){const n=i;t.push({column:EditorIntOption.clampedInt(n.column,0,0,1e4),color:n.color})}return t.sort((i,n)=>i.column-n.column),t}return this.defaultValue}}class ReadonlyMessage extends BaseEditorOption{constructor(){super(91,"readOnlyMessage",void 0)}validate(e){return!e||typeof e!="object"?this.defaultValue:e}}function _scrollbarVisibilityFromString(o,e){if(typeof o!="string")return e;switch(o){case"hidden":return 2;case"visible":return 3;default:return 1}}let EditorScrollbar$1=class extends BaseEditorOption{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(102,"scrollbar",e,{"editor.scrollbar.vertical":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[localize("scrollbar.vertical.auto","The vertical scrollbar will be visible only when necessary."),localize("scrollbar.vertical.visible","The vertical scrollbar will always be visible."),localize("scrollbar.vertical.fit","The vertical scrollbar will always be hidden.")],default:"auto",description:localize("scrollbar.vertical","Controls the visibility of the vertical scrollbar.")},"editor.scrollbar.horizontal":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[localize("scrollbar.horizontal.auto","The horizontal scrollbar will be visible only when necessary."),localize("scrollbar.horizontal.visible","The horizontal scrollbar will always be visible."),localize("scrollbar.horizontal.fit","The horizontal scrollbar will always be hidden.")],default:"auto",description:localize("scrollbar.horizontal","Controls the visibility of the horizontal scrollbar.")},"editor.scrollbar.verticalScrollbarSize":{type:"number",default:e.verticalScrollbarSize,description:localize("scrollbar.verticalScrollbarSize","The width of the vertical scrollbar.")},"editor.scrollbar.horizontalScrollbarSize":{type:"number",default:e.horizontalScrollbarSize,description:localize("scrollbar.horizontalScrollbarSize","The height of the horizontal scrollbar.")},"editor.scrollbar.scrollByPage":{type:"boolean",default:e.scrollByPage,description:localize("scrollbar.scrollByPage","Controls whether clicks scroll by page or jump to click position.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e,i=EditorIntOption.clampedInt(t.horizontalScrollbarSize,this.defaultValue.horizontalScrollbarSize,0,1e3),n=EditorIntOption.clampedInt(t.verticalScrollbarSize,this.defaultValue.verticalScrollbarSize,0,1e3);return{arrowSize:EditorIntOption.clampedInt(t.arrowSize,this.defaultValue.arrowSize,0,1e3),vertical:_scrollbarVisibilityFromString(t.vertical,this.defaultValue.vertical),horizontal:_scrollbarVisibilityFromString(t.horizontal,this.defaultValue.horizontal),useShadows:boolean(t.useShadows,this.defaultValue.useShadows),verticalHasArrows:boolean(t.verticalHasArrows,this.defaultValue.verticalHasArrows),horizontalHasArrows:boolean(t.horizontalHasArrows,this.defaultValue.horizontalHasArrows),handleMouseWheel:boolean(t.handleMouseWheel,this.defaultValue.handleMouseWheel),alwaysConsumeMouseWheel:boolean(t.alwaysConsumeMouseWheel,this.defaultValue.alwaysConsumeMouseWheel),horizontalScrollbarSize:i,horizontalSliderSize:EditorIntOption.clampedInt(t.horizontalSliderSize,i,0,1e3),verticalScrollbarSize:n,verticalSliderSize:EditorIntOption.clampedInt(t.verticalSliderSize,n,0,1e3),scrollByPage:boolean(t.scrollByPage,this.defaultValue.scrollByPage)}}};const inUntrustedWorkspace="inUntrustedWorkspace",unicodeHighlightConfigKeys={allowedCharacters:"editor.unicodeHighlight.allowedCharacters",invisibleCharacters:"editor.unicodeHighlight.invisibleCharacters",nonBasicASCII:"editor.unicodeHighlight.nonBasicASCII",ambiguousCharacters:"editor.unicodeHighlight.ambiguousCharacters",includeComments:"editor.unicodeHighlight.includeComments",includeStrings:"editor.unicodeHighlight.includeStrings",allowedLocales:"editor.unicodeHighlight.allowedLocales"};class UnicodeHighlight extends BaseEditorOption{constructor(){const e={nonBasicASCII:inUntrustedWorkspace,invisibleCharacters:!0,ambiguousCharacters:!0,includeComments:inUntrustedWorkspace,includeStrings:!0,allowedCharacters:{},allowedLocales:{_os:!0,_vscode:!0}};super(124,"unicodeHighlight",e,{[unicodeHighlightConfigKeys.nonBasicASCII]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,inUntrustedWorkspace],default:e.nonBasicASCII,description:localize("unicodeHighlight.nonBasicASCII","Controls whether all non-basic ASCII characters are highlighted. Only characters between U+0020 and U+007E, tab, line-feed and carriage-return are considered basic ASCII.")},[unicodeHighlightConfigKeys.invisibleCharacters]:{restricted:!0,type:"boolean",default:e.invisibleCharacters,description:localize("unicodeHighlight.invisibleCharacters","Controls whether characters that just reserve space or have no width at all are highlighted.")},[unicodeHighlightConfigKeys.ambiguousCharacters]:{restricted:!0,type:"boolean",default:e.ambiguousCharacters,description:localize("unicodeHighlight.ambiguousCharacters","Controls whether characters are highlighted that can be confused with basic ASCII characters, except those that are common in the current user locale.")},[unicodeHighlightConfigKeys.includeComments]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,inUntrustedWorkspace],default:e.includeComments,description:localize("unicodeHighlight.includeComments","Controls whether characters in comments should also be subject to Unicode highlighting.")},[unicodeHighlightConfigKeys.includeStrings]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,inUntrustedWorkspace],default:e.includeStrings,description:localize("unicodeHighlight.includeStrings","Controls whether characters in strings should also be subject to Unicode highlighting.")},[unicodeHighlightConfigKeys.allowedCharacters]:{restricted:!0,type:"object",default:e.allowedCharacters,description:localize("unicodeHighlight.allowedCharacters","Defines allowed characters that are not being highlighted."),additionalProperties:{type:"boolean"}},[unicodeHighlightConfigKeys.allowedLocales]:{restricted:!0,type:"object",additionalProperties:{type:"boolean"},default:e.allowedLocales,description:localize("unicodeHighlight.allowedLocales","Unicode characters that are common in allowed locales are not being highlighted.")}})}applyUpdate(e,t){let i=!1;t.allowedCharacters&&e&&(equals$1(e.allowedCharacters,t.allowedCharacters)||(e=Object.assign(Object.assign({},e),{allowedCharacters:t.allowedCharacters}),i=!0)),t.allowedLocales&&e&&(equals$1(e.allowedLocales,t.allowedLocales)||(e=Object.assign(Object.assign({},e),{allowedLocales:t.allowedLocales}),i=!0));const n=super.applyUpdate(e,t);return i?new ApplyUpdateResult(n.newValue,!0):n}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{nonBasicASCII:primitiveSet(t.nonBasicASCII,inUntrustedWorkspace,[!0,!1,inUntrustedWorkspace]),invisibleCharacters:boolean(t.invisibleCharacters,this.defaultValue.invisibleCharacters),ambiguousCharacters:boolean(t.ambiguousCharacters,this.defaultValue.ambiguousCharacters),includeComments:primitiveSet(t.includeComments,inUntrustedWorkspace,[!0,!1,inUntrustedWorkspace]),includeStrings:primitiveSet(t.includeStrings,inUntrustedWorkspace,[!0,!1,inUntrustedWorkspace]),allowedCharacters:this.validateBooleanMap(e.allowedCharacters,this.defaultValue.allowedCharacters),allowedLocales:this.validateBooleanMap(e.allowedLocales,this.defaultValue.allowedLocales)}}validateBooleanMap(e,t){if(typeof e!="object"||!e)return t;const i={};for(const[n,r]of Object.entries(e))r===!0&&(i[n]=!0);return i}}class InlineEditorSuggest extends BaseEditorOption{constructor(){const e={enabled:!0,mode:"subwordSmart",showToolbar:"onHover",suppressSuggestions:!1,keepOnBlur:!1};super(62,"inlineSuggest",e,{"editor.inlineSuggest.enabled":{type:"boolean",default:e.enabled,description:localize("inlineSuggest.enabled","Controls whether to automatically show inline suggestions in the editor.")},"editor.inlineSuggest.showToolbar":{type:"string",default:e.showToolbar,enum:["always","onHover"],enumDescriptions:[localize("inlineSuggest.showToolbar.always","Show the inline suggestion toolbar whenever an inline suggestion is shown."),localize("inlineSuggest.showToolbar.onHover","Show the inline suggestion toolbar when hovering over an inline suggestion.")],description:localize("inlineSuggest.showToolbar","Controls when to show the inline suggestion toolbar.")},"editor.inlineSuggest.suppressSuggestions":{type:"boolean",default:e.suppressSuggestions,description:localize("inlineSuggest.suppressSuggestions","Controls how inline suggestions interact with the suggest widget. If enabled, the suggest widget is not shown automatically when inline suggestions are available.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:boolean(t.enabled,this.defaultValue.enabled),mode:stringSet(t.mode,this.defaultValue.mode,["prefix","subword","subwordSmart"]),showToolbar:stringSet(t.showToolbar,this.defaultValue.showToolbar,["always","onHover"]),suppressSuggestions:boolean(t.suppressSuggestions,this.defaultValue.suppressSuggestions),keepOnBlur:boolean(t.keepOnBlur,this.defaultValue.keepOnBlur)}}}class BracketPairColorization extends BaseEditorOption{constructor(){const e={enabled:EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions.enabled,independentColorPoolPerBracketType:EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions.independentColorPoolPerBracketType};super(15,"bracketPairColorization",e,{"editor.bracketPairColorization.enabled":{type:"boolean",default:e.enabled,markdownDescription:localize("bracketPairColorization.enabled","Controls whether bracket pair colorization is enabled or not. Use {0} to override the bracket highlight colors.","`#workbench.colorCustomizations#`")},"editor.bracketPairColorization.independentColorPoolPerBracketType":{type:"boolean",default:e.independentColorPoolPerBracketType,description:localize("bracketPairColorization.independentColorPoolPerBracketType","Controls whether each bracket type has its own independent color pool.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:boolean(t.enabled,this.defaultValue.enabled),independentColorPoolPerBracketType:boolean(t.independentColorPoolPerBracketType,this.defaultValue.independentColorPoolPerBracketType)}}}class GuideOptions extends BaseEditorOption{constructor(){const e={bracketPairs:!1,bracketPairsHorizontal:"active",highlightActiveBracketPair:!0,indentation:!0,highlightActiveIndentation:!0};super(16,"guides",e,{"editor.guides.bracketPairs":{type:["boolean","string"],enum:[!0,"active",!1],enumDescriptions:[localize("editor.guides.bracketPairs.true","Enables bracket pair guides."),localize("editor.guides.bracketPairs.active","Enables bracket pair guides only for the active bracket pair."),localize("editor.guides.bracketPairs.false","Disables bracket pair guides.")],default:e.bracketPairs,description:localize("editor.guides.bracketPairs","Controls whether bracket pair guides are enabled or not.")},"editor.guides.bracketPairsHorizontal":{type:["boolean","string"],enum:[!0,"active",!1],enumDescriptions:[localize("editor.guides.bracketPairsHorizontal.true","Enables horizontal guides as addition to vertical bracket pair guides."),localize("editor.guides.bracketPairsHorizontal.active","Enables horizontal guides only for the active bracket pair."),localize("editor.guides.bracketPairsHorizontal.false","Disables horizontal bracket pair guides.")],default:e.bracketPairsHorizontal,description:localize("editor.guides.bracketPairsHorizontal","Controls whether horizontal bracket pair guides are enabled or not.")},"editor.guides.highlightActiveBracketPair":{type:"boolean",default:e.highlightActiveBracketPair,description:localize("editor.guides.highlightActiveBracketPair","Controls whether the editor should highlight the active bracket pair.")},"editor.guides.indentation":{type:"boolean",default:e.indentation,description:localize("editor.guides.indentation","Controls whether the editor should render indent guides.")},"editor.guides.highlightActiveIndentation":{type:["boolean","string"],enum:[!0,"always",!1],enumDescriptions:[localize("editor.guides.highlightActiveIndentation.true","Highlights the active indent guide."),localize("editor.guides.highlightActiveIndentation.always","Highlights the active indent guide even if bracket guides are highlighted."),localize("editor.guides.highlightActiveIndentation.false","Do not highlight the active indent guide.")],default:e.highlightActiveIndentation,description:localize("editor.guides.highlightActiveIndentation","Controls whether the editor should highlight the active indent guide.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{bracketPairs:primitiveSet(t.bracketPairs,this.defaultValue.bracketPairs,[!0,!1,"active"]),bracketPairsHorizontal:primitiveSet(t.bracketPairsHorizontal,this.defaultValue.bracketPairsHorizontal,[!0,!1,"active"]),highlightActiveBracketPair:boolean(t.highlightActiveBracketPair,this.defaultValue.highlightActiveBracketPair),indentation:boolean(t.indentation,this.defaultValue.indentation),highlightActiveIndentation:primitiveSet(t.highlightActiveIndentation,this.defaultValue.highlightActiveIndentation,[!0,!1,"always"])}}}function primitiveSet(o,e,t){const i=t.indexOf(o);return i===-1?e:t[i]}class EditorSuggest extends BaseEditorOption{constructor(){const e={insertMode:"insert",filterGraceful:!0,snippetsPreventQuickSuggestions:!1,localityBonus:!1,shareSuggestSelections:!1,selectionMode:"always",showIcons:!0,showStatusBar:!1,preview:!1,previewMode:"subwordSmart",showInlineDetails:!0,showMethods:!0,showFunctions:!0,showConstructors:!0,showDeprecated:!0,matchOnWordStartOnly:!0,showFields:!0,showVariables:!0,showClasses:!0,showStructs:!0,showInterfaces:!0,showModules:!0,showProperties:!0,showEvents:!0,showOperators:!0,showUnits:!0,showValues:!0,showConstants:!0,showEnums:!0,showEnumMembers:!0,showKeywords:!0,showWords:!0,showColors:!0,showFiles:!0,showReferences:!0,showFolders:!0,showTypeParameters:!0,showSnippets:!0,showUsers:!0,showIssues:!0};super(117,"suggest",e,{"editor.suggest.insertMode":{type:"string",enum:["insert","replace"],enumDescriptions:[localize("suggest.insertMode.insert","Insert suggestion without overwriting text right of the cursor."),localize("suggest.insertMode.replace","Insert suggestion and overwrite text right of the cursor.")],default:e.insertMode,description:localize("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:localize("suggest.filterGraceful","Controls whether filtering and sorting suggestions accounts for small typos.")},"editor.suggest.localityBonus":{type:"boolean",default:e.localityBonus,description:localize("suggest.localityBonus","Controls whether sorting favors words that appear close to the cursor.")},"editor.suggest.shareSuggestSelections":{type:"boolean",default:e.shareSuggestSelections,markdownDescription:localize("suggest.shareSuggestSelections","Controls whether remembered suggestion selections are shared between multiple workspaces and windows (needs `#editor.suggestSelection#`).")},"editor.suggest.selectionMode":{type:"string",enum:["always","never","whenTriggerCharacter","whenQuickSuggestion"],enumDescriptions:[localize("suggest.insertMode.always","Always select a suggestion when automatically triggering IntelliSense."),localize("suggest.insertMode.never","Never select a suggestion when automatically triggering IntelliSense."),localize("suggest.insertMode.whenTriggerCharacter","Select a suggestion only when triggering IntelliSense from a trigger character."),localize("suggest.insertMode.whenQuickSuggestion","Select a suggestion only when triggering IntelliSense as you type.")],default:e.selectionMode,markdownDescription:localize("suggest.selectionMode","Controls whether a suggestion is selected when the widget shows. Note that this only applies to automatically triggered suggestions (`#editor.quickSuggestions#` and `#editor.suggestOnTriggerCharacters#`) and that a suggestion is always selected when explicitly invoked, e.g via `Ctrl+Space`.")},"editor.suggest.snippetsPreventQuickSuggestions":{type:"boolean",default:e.snippetsPreventQuickSuggestions,description:localize("suggest.snippetsPreventQuickSuggestions","Controls whether an active snippet prevents quick suggestions.")},"editor.suggest.showIcons":{type:"boolean",default:e.showIcons,description:localize("suggest.showIcons","Controls whether to show or hide icons in suggestions.")},"editor.suggest.showStatusBar":{type:"boolean",default:e.showStatusBar,description:localize("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:localize("suggest.preview","Controls whether to preview the suggestion outcome in the editor.")},"editor.suggest.showInlineDetails":{type:"boolean",default:e.showInlineDetails,description:localize("suggest.showInlineDetails","Controls whether suggest details show inline with the label or only in the details widget.")},"editor.suggest.maxVisibleSuggestions":{type:"number",deprecationMessage:localize("suggest.maxVisibleSuggestions.dep","This setting is deprecated. The suggest widget can now be resized.")},"editor.suggest.filteredTypes":{type:"object",deprecationMessage:localize("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:localize("editor.suggest.showMethods","When enabled IntelliSense shows `method`-suggestions.")},"editor.suggest.showFunctions":{type:"boolean",default:!0,markdownDescription:localize("editor.suggest.showFunctions","When enabled IntelliSense shows `function`-suggestions.")},"editor.suggest.showConstructors":{type:"boolean",default:!0,markdownDescription:localize("editor.suggest.showConstructors","When enabled IntelliSense shows `constructor`-suggestions.")},"editor.suggest.showDeprecated":{type:"boolean",default:!0,markdownDescription:localize("editor.suggest.showDeprecated","When enabled IntelliSense shows `deprecated`-suggestions.")},"editor.suggest.matchOnWordStartOnly":{type:"boolean",default:!0,markdownDescription:localize("editor.suggest.matchOnWordStartOnly","When enabled IntelliSense filtering requires that the first character matches on a word start. For example, `c` on `Console` or `WebContext` but _not_ on `description`. When disabled IntelliSense will show more results but still sorts them by match quality.")},"editor.suggest.showFields":{type:"boolean",default:!0,markdownDescription:localize("editor.suggest.showFields","When enabled IntelliSense shows `field`-suggestions.")},"editor.suggest.showVariables":{type:"boolean",default:!0,markdownDescription:localize("editor.suggest.showVariables","When enabled IntelliSense shows `variable`-suggestions.")},"editor.suggest.showClasses":{type:"boolean",default:!0,markdownDescription:localize("editor.suggest.showClasss","When enabled IntelliSense shows `class`-suggestions.")},"editor.suggest.showStructs":{type:"boolean",default:!0,markdownDescription:localize("editor.suggest.showStructs","When enabled IntelliSense shows `struct`-suggestions.")},"editor.suggest.showInterfaces":{type:"boolean",default:!0,markdownDescription:localize("editor.suggest.showInterfaces","When enabled IntelliSense shows `interface`-suggestions.")},"editor.suggest.showModules":{type:"boolean",default:!0,markdownDescription:localize("editor.suggest.showModules","When enabled IntelliSense shows `module`-suggestions.")},"editor.suggest.showProperties":{type:"boolean",default:!0,markdownDescription:localize("editor.suggest.showPropertys","When enabled IntelliSense shows `property`-suggestions.")},"editor.suggest.showEvents":{type:"boolean",default:!0,markdownDescription:localize("editor.suggest.showEvents","When enabled IntelliSense shows `event`-suggestions.")},"editor.suggest.showOperators":{type:"boolean",default:!0,markdownDescription:localize("editor.suggest.showOperators","When enabled IntelliSense shows `operator`-suggestions.")},"editor.suggest.showUnits":{type:"boolean",default:!0,markdownDescription:localize("editor.suggest.showUnits","When enabled IntelliSense shows `unit`-suggestions.")},"editor.suggest.showValues":{type:"boolean",default:!0,markdownDescription:localize("editor.suggest.showValues","When enabled IntelliSense shows `value`-suggestions.")},"editor.suggest.showConstants":{type:"boolean",default:!0,markdownDescription:localize("editor.suggest.showConstants","When enabled IntelliSense shows `constant`-suggestions.")},"editor.suggest.showEnums":{type:"boolean",default:!0,markdownDescription:localize("editor.suggest.showEnums","When enabled IntelliSense shows `enum`-suggestions.")},"editor.suggest.showEnumMembers":{type:"boolean",default:!0,markdownDescription:localize("editor.suggest.showEnumMembers","When enabled IntelliSense shows `enumMember`-suggestions.")},"editor.suggest.showKeywords":{type:"boolean",default:!0,markdownDescription:localize("editor.suggest.showKeywords","When enabled IntelliSense shows `keyword`-suggestions.")},"editor.suggest.showWords":{type:"boolean",default:!0,markdownDescription:localize("editor.suggest.showTexts","When enabled IntelliSense shows `text`-suggestions.")},"editor.suggest.showColors":{type:"boolean",default:!0,markdownDescription:localize("editor.suggest.showColors","When enabled IntelliSense shows `color`-suggestions.")},"editor.suggest.showFiles":{type:"boolean",default:!0,markdownDescription:localize("editor.suggest.showFiles","When enabled IntelliSense shows `file`-suggestions.")},"editor.suggest.showReferences":{type:"boolean",default:!0,markdownDescription:localize("editor.suggest.showReferences","When enabled IntelliSense shows `reference`-suggestions.")},"editor.suggest.showCustomcolors":{type:"boolean",default:!0,markdownDescription:localize("editor.suggest.showCustomcolors","When enabled IntelliSense shows `customcolor`-suggestions.")},"editor.suggest.showFolders":{type:"boolean",default:!0,markdownDescription:localize("editor.suggest.showFolders","When enabled IntelliSense shows `folder`-suggestions.")},"editor.suggest.showTypeParameters":{type:"boolean",default:!0,markdownDescription:localize("editor.suggest.showTypeParameters","When enabled IntelliSense shows `typeParameter`-suggestions.")},"editor.suggest.showSnippets":{type:"boolean",default:!0,markdownDescription:localize("editor.suggest.showSnippets","When enabled IntelliSense shows `snippet`-suggestions.")},"editor.suggest.showUsers":{type:"boolean",default:!0,markdownDescription:localize("editor.suggest.showUsers","When enabled IntelliSense shows `user`-suggestions.")},"editor.suggest.showIssues":{type:"boolean",default:!0,markdownDescription:localize("editor.suggest.showIssues","When enabled IntelliSense shows `issues`-suggestions.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{insertMode:stringSet(t.insertMode,this.defaultValue.insertMode,["insert","replace"]),filterGraceful:boolean(t.filterGraceful,this.defaultValue.filterGraceful),snippetsPreventQuickSuggestions:boolean(t.snippetsPreventQuickSuggestions,this.defaultValue.filterGraceful),localityBonus:boolean(t.localityBonus,this.defaultValue.localityBonus),shareSuggestSelections:boolean(t.shareSuggestSelections,this.defaultValue.shareSuggestSelections),selectionMode:stringSet(t.selectionMode,this.defaultValue.selectionMode,["always","never","whenQuickSuggestion","whenTriggerCharacter"]),showIcons:boolean(t.showIcons,this.defaultValue.showIcons),showStatusBar:boolean(t.showStatusBar,this.defaultValue.showStatusBar),preview:boolean(t.preview,this.defaultValue.preview),previewMode:stringSet(t.previewMode,this.defaultValue.previewMode,["prefix","subword","subwordSmart"]),showInlineDetails:boolean(t.showInlineDetails,this.defaultValue.showInlineDetails),showMethods:boolean(t.showMethods,this.defaultValue.showMethods),showFunctions:boolean(t.showFunctions,this.defaultValue.showFunctions),showConstructors:boolean(t.showConstructors,this.defaultValue.showConstructors),showDeprecated:boolean(t.showDeprecated,this.defaultValue.showDeprecated),matchOnWordStartOnly:boolean(t.matchOnWordStartOnly,this.defaultValue.matchOnWordStartOnly),showFields:boolean(t.showFields,this.defaultValue.showFields),showVariables:boolean(t.showVariables,this.defaultValue.showVariables),showClasses:boolean(t.showClasses,this.defaultValue.showClasses),showStructs:boolean(t.showStructs,this.defaultValue.showStructs),showInterfaces:boolean(t.showInterfaces,this.defaultValue.showInterfaces),showModules:boolean(t.showModules,this.defaultValue.showModules),showProperties:boolean(t.showProperties,this.defaultValue.showProperties),showEvents:boolean(t.showEvents,this.defaultValue.showEvents),showOperators:boolean(t.showOperators,this.defaultValue.showOperators),showUnits:boolean(t.showUnits,this.defaultValue.showUnits),showValues:boolean(t.showValues,this.defaultValue.showValues),showConstants:boolean(t.showConstants,this.defaultValue.showConstants),showEnums:boolean(t.showEnums,this.defaultValue.showEnums),showEnumMembers:boolean(t.showEnumMembers,this.defaultValue.showEnumMembers),showKeywords:boolean(t.showKeywords,this.defaultValue.showKeywords),showWords:boolean(t.showWords,this.defaultValue.showWords),showColors:boolean(t.showColors,this.defaultValue.showColors),showFiles:boolean(t.showFiles,this.defaultValue.showFiles),showReferences:boolean(t.showReferences,this.defaultValue.showReferences),showFolders:boolean(t.showFolders,this.defaultValue.showFolders),showTypeParameters:boolean(t.showTypeParameters,this.defaultValue.showTypeParameters),showSnippets:boolean(t.showSnippets,this.defaultValue.showSnippets),showUsers:boolean(t.showUsers,this.defaultValue.showUsers),showIssues:boolean(t.showIssues,this.defaultValue.showIssues)}}}class SmartSelect extends BaseEditorOption{constructor(){super(112,"smartSelect",{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},{"editor.smartSelect.selectLeadingAndTrailingWhitespace":{description:localize("selectLeadingAndTrailingWhitespace","Whether leading and trailing whitespace should always be selected."),default:!0,type:"boolean"},"editor.smartSelect.selectSubwords":{description:localize("selectSubwords","Whether subwords (like 'foo' in 'fooBar' or 'foo_bar') should be selected."),default:!0,type:"boolean"}})}validate(e){return!e||typeof e!="object"?this.defaultValue:{selectLeadingAndTrailingWhitespace:boolean(e.selectLeadingAndTrailingWhitespace,this.defaultValue.selectLeadingAndTrailingWhitespace),selectSubwords:boolean(e.selectSubwords,this.defaultValue.selectSubwords)}}}class WrappingIndentOption extends BaseEditorOption{constructor(){super(136,"wrappingIndent",1,{"editor.wrappingIndent":{type:"string",enum:["none","same","indent","deepIndent"],enumDescriptions:[localize("wrappingIndent.none","No indentation. Wrapped lines begin at column 1."),localize("wrappingIndent.same","Wrapped lines get the same indentation as the parent."),localize("wrappingIndent.indent","Wrapped lines get +1 indentation toward the parent."),localize("wrappingIndent.deepIndent","Wrapped lines get +2 indentation toward the parent.")],description:localize("wrappingIndent","Controls the indentation of wrapped lines."),default:"same"}})}validate(e){switch(e){case"none":return 0;case"same":return 1;case"indent":return 2;case"deepIndent":return 3}return 1}compute(e,t,i){return t.get(2)===2?0:i}}class EditorWrappingInfoComputer extends ComputedEditorOption{constructor(){super(144)}compute(e,t,i){const n=t.get(143);return{isDominatedByLongLines:e.isDominatedByLongLines,isWordWrapMinified:n.isWordWrapMinified,isViewportWrapping:n.isViewportWrapping,wrappingColumn:n.wrappingColumn}}}class EditorDropIntoEditor extends BaseEditorOption{constructor(){const e={enabled:!0,showDropSelector:"afterDrop"};super(36,"dropIntoEditor",e,{"editor.dropIntoEditor.enabled":{type:"boolean",default:e.enabled,markdownDescription:localize("dropIntoEditor.enabled","Controls whether you can drag and drop a file into a text editor by holding down `shift` (instead of opening the file in an editor).")},"editor.dropIntoEditor.showDropSelector":{type:"string",markdownDescription:localize("dropIntoEditor.showDropSelector","Controls if a widget is shown when dropping files into the editor. This widget lets you control how the file is dropped."),enum:["afterDrop","never"],enumDescriptions:[localize("dropIntoEditor.showDropSelector.afterDrop","Show the drop selector widget after a file is dropped into the editor."),localize("dropIntoEditor.showDropSelector.never","Never show the drop selector widget. Instead the default drop provider is always used.")],default:"afterDrop"}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:boolean(t.enabled,this.defaultValue.enabled),showDropSelector:stringSet(t.showDropSelector,this.defaultValue.showDropSelector,["afterDrop","never"])}}}class EditorPasteAs extends BaseEditorOption{constructor(){const e={enabled:!0,showPasteSelector:"afterPaste"};super(84,"pasteAs",e,{"editor.pasteAs.enabled":{type:"boolean",default:e.enabled,markdownDescription:localize("pasteAs.enabled","Controls whether you can paste content in different ways.")},"editor.pasteAs.showPasteSelector":{type:"string",markdownDescription:localize("pasteAs.showPasteSelector","Controls if a widget is shown when pasting content in to the editor. This widget lets you control how the file is pasted."),enum:["afterPaste","never"],enumDescriptions:[localize("pasteAs.showPasteSelector.afterPaste","Show the paste selector widget after content is pasted into the editor."),localize("pasteAs.showPasteSelector.never","Never show the paste selector widget. Instead the default pasting behavior is always used.")],default:"afterPaste"}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:boolean(t.enabled,this.defaultValue.enabled),showPasteSelector:stringSet(t.showPasteSelector,this.defaultValue.showPasteSelector,["afterPaste","never"])}}}const DEFAULT_WINDOWS_FONT_FAMILY="Consolas, 'Courier New', monospace",DEFAULT_MAC_FONT_FAMILY="Menlo, Monaco, 'Courier New', monospace",DEFAULT_LINUX_FONT_FAMILY="'Droid Sans Mono', 'monospace', monospace",EDITOR_FONT_DEFAULTS={fontFamily:isMacintosh?DEFAULT_MAC_FONT_FAMILY:isLinux?DEFAULT_LINUX_FONT_FAMILY:DEFAULT_WINDOWS_FONT_FAMILY,fontWeight:"normal",fontSize:isMacintosh?12:14,lineHeight:0,letterSpacing:0},editorOptionsRegistry=[];function register$2(o){return editorOptionsRegistry[o.id]=o,o}const EditorOptions={acceptSuggestionOnCommitCharacter:register$2(new EditorBooleanOption(0,"acceptSuggestionOnCommitCharacter",!0,{markdownDescription:localize("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:register$2(new EditorStringEnumOption(1,"acceptSuggestionOnEnter","on",["on","smart","off"],{markdownEnumDescriptions:["",localize("acceptSuggestionOnEnterSmart","Only accept a suggestion with `Enter` when it makes a textual change."),""],markdownDescription:localize("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:register$2(new EditorAccessibilitySupport),accessibilityPageSize:register$2(new EditorIntOption(3,"accessibilityPageSize",10,1,1073741824,{description:localize("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."),tags:["accessibility"]})),ariaLabel:register$2(new EditorStringOption(4,"ariaLabel",localize("editorViewAccessibleLabel","Editor content"))),ariaRequired:register$2(new EditorBooleanOption(5,"ariaRequired",!1,void 0)),screenReaderAnnounceInlineSuggestion:register$2(new EditorBooleanOption(8,"screenReaderAnnounceInlineSuggestion",!0,{description:localize("screenReaderAnnounceInlineSuggestion","Control whether inline suggestions are announced by a screen reader."),tags:["accessibility"]})),autoClosingBrackets:register$2(new EditorStringEnumOption(6,"autoClosingBrackets","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",localize("editor.autoClosingBrackets.languageDefined","Use language configurations to determine when to autoclose brackets."),localize("editor.autoClosingBrackets.beforeWhitespace","Autoclose brackets only when the cursor is to the left of whitespace."),""],description:localize("autoClosingBrackets","Controls whether the editor should automatically close brackets after the user adds an opening bracket.")})),autoClosingComments:register$2(new EditorStringEnumOption(7,"autoClosingComments","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",localize("editor.autoClosingComments.languageDefined","Use language configurations to determine when to autoclose comments."),localize("editor.autoClosingComments.beforeWhitespace","Autoclose comments only when the cursor is to the left of whitespace."),""],description:localize("autoClosingComments","Controls whether the editor should automatically close comments after the user adds an opening comment.")})),autoClosingDelete:register$2(new EditorStringEnumOption(9,"autoClosingDelete","auto",["always","auto","never"],{enumDescriptions:["",localize("editor.autoClosingDelete.auto","Remove adjacent closing quotes or brackets only if they were automatically inserted."),""],description:localize("autoClosingDelete","Controls whether the editor should remove adjacent closing quotes or brackets when deleting.")})),autoClosingOvertype:register$2(new EditorStringEnumOption(10,"autoClosingOvertype","auto",["always","auto","never"],{enumDescriptions:["",localize("editor.autoClosingOvertype.auto","Type over closing quotes or brackets only if they were automatically inserted."),""],description:localize("autoClosingOvertype","Controls whether the editor should type over closing quotes or brackets.")})),autoClosingQuotes:register$2(new EditorStringEnumOption(11,"autoClosingQuotes","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",localize("editor.autoClosingQuotes.languageDefined","Use language configurations to determine when to autoclose quotes."),localize("editor.autoClosingQuotes.beforeWhitespace","Autoclose quotes only when the cursor is to the left of whitespace."),""],description:localize("autoClosingQuotes","Controls whether the editor should automatically close quotes after the user adds an opening quote.")})),autoIndent:register$2(new EditorEnumOption(12,"autoIndent",4,"full",["none","keep","brackets","advanced","full"],_autoIndentFromString,{enumDescriptions:[localize("editor.autoIndent.none","The editor will not insert indentation automatically."),localize("editor.autoIndent.keep","The editor will keep the current line's indentation."),localize("editor.autoIndent.brackets","The editor will keep the current line's indentation and honor language defined brackets."),localize("editor.autoIndent.advanced","The editor will keep the current line's indentation, honor language defined brackets and invoke special onEnterRules defined by languages."),localize("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:localize("autoIndent","Controls whether the editor should automatically adjust the indentation when users type, paste, move or indent lines.")})),automaticLayout:register$2(new EditorBooleanOption(13,"automaticLayout",!1)),autoSurround:register$2(new EditorStringEnumOption(14,"autoSurround","languageDefined",["languageDefined","quotes","brackets","never"],{enumDescriptions:[localize("editor.autoSurround.languageDefined","Use language configurations to determine when to automatically surround selections."),localize("editor.autoSurround.quotes","Surround with quotes but not brackets."),localize("editor.autoSurround.brackets","Surround with brackets but not quotes."),""],description:localize("autoSurround","Controls whether the editor should automatically surround selections when typing quotes or brackets.")})),bracketPairColorization:register$2(new BracketPairColorization),bracketPairGuides:register$2(new GuideOptions),stickyTabStops:register$2(new EditorBooleanOption(115,"stickyTabStops",!1,{description:localize("stickyTabStops","Emulate selection behavior of tab characters when using spaces for indentation. Selection will stick to tab stops.")})),codeLens:register$2(new EditorBooleanOption(17,"codeLens",!0,{description:localize("codeLens","Controls whether the editor shows CodeLens.")})),codeLensFontFamily:register$2(new EditorStringOption(18,"codeLensFontFamily","",{description:localize("codeLensFontFamily","Controls the font family for CodeLens.")})),codeLensFontSize:register$2(new EditorIntOption(19,"codeLensFontSize",0,0,100,{type:"number",default:0,minimum:0,maximum:100,markdownDescription:localize("codeLensFontSize","Controls the font size in pixels for CodeLens. When set to 0, 90% of `#editor.fontSize#` is used.")})),colorDecorators:register$2(new EditorBooleanOption(20,"colorDecorators",!0,{description:localize("colorDecorators","Controls whether the editor should render the inline color decorators and color picker.")})),colorDecoratorActivatedOn:register$2(new EditorStringEnumOption(146,"colorDecoratorsActivatedOn","clickAndHover",["clickAndHover","hover","click"],{enumDescriptions:[localize("editor.colorDecoratorActivatedOn.clickAndHover","Make the color picker appear both on click and hover of the color decorator"),localize("editor.colorDecoratorActivatedOn.hover","Make the color picker appear on hover of the color decorator"),localize("editor.colorDecoratorActivatedOn.click","Make the color picker appear on click of the color decorator")],description:localize("colorDecoratorActivatedOn","Controls the condition to make a color picker appear from a color decorator")})),colorDecoratorsLimit:register$2(new EditorIntOption(21,"colorDecoratorsLimit",500,1,1e6,{markdownDescription:localize("colorDecoratorsLimit","Controls the max number of color decorators that can be rendered in an editor at once.")})),columnSelection:register$2(new EditorBooleanOption(22,"columnSelection",!1,{description:localize("columnSelection","Enable that the selection with the mouse and keys is doing column selection.")})),comments:register$2(new EditorComments),contextmenu:register$2(new EditorBooleanOption(24,"contextmenu",!0)),copyWithSyntaxHighlighting:register$2(new EditorBooleanOption(25,"copyWithSyntaxHighlighting",!0,{description:localize("copyWithSyntaxHighlighting","Controls whether syntax highlighting should be copied into the clipboard.")})),cursorBlinking:register$2(new EditorEnumOption(26,"cursorBlinking",1,"blink",["blink","smooth","phase","expand","solid"],_cursorBlinkingStyleFromString,{description:localize("cursorBlinking","Control the cursor animation style.")})),cursorSmoothCaretAnimation:register$2(new EditorStringEnumOption(27,"cursorSmoothCaretAnimation","off",["off","explicit","on"],{enumDescriptions:[localize("cursorSmoothCaretAnimation.off","Smooth caret animation is disabled."),localize("cursorSmoothCaretAnimation.explicit","Smooth caret animation is enabled only when the user moves the cursor with an explicit gesture."),localize("cursorSmoothCaretAnimation.on","Smooth caret animation is always enabled.")],description:localize("cursorSmoothCaretAnimation","Controls whether the smooth caret animation should be enabled.")})),cursorStyle:register$2(new EditorEnumOption(28,"cursorStyle",TextEditorCursorStyle$1.Line,"line",["line","block","underline","line-thin","block-outline","underline-thin"],_cursorStyleFromString,{description:localize("cursorStyle","Controls the cursor style.")})),cursorSurroundingLines:register$2(new EditorIntOption(29,"cursorSurroundingLines",0,0,1073741824,{description:localize("cursorSurroundingLines","Controls the minimal number of visible leading lines (minimum 0) and trailing lines (minimum 1) surrounding the cursor. Known as 'scrollOff' or 'scrollOffset' in some other editors.")})),cursorSurroundingLinesStyle:register$2(new EditorStringEnumOption(30,"cursorSurroundingLinesStyle","default",["default","all"],{enumDescriptions:[localize("cursorSurroundingLinesStyle.default","`cursorSurroundingLines` is enforced only when triggered via the keyboard or API."),localize("cursorSurroundingLinesStyle.all","`cursorSurroundingLines` is enforced always.")],markdownDescription:localize("cursorSurroundingLinesStyle","Controls when `#cursorSurroundingLines#` should be enforced.")})),cursorWidth:register$2(new EditorIntOption(31,"cursorWidth",0,0,1073741824,{markdownDescription:localize("cursorWidth","Controls the width of the cursor when `#editor.cursorStyle#` is set to `line`.")})),disableLayerHinting:register$2(new EditorBooleanOption(32,"disableLayerHinting",!1)),disableMonospaceOptimizations:register$2(new EditorBooleanOption(33,"disableMonospaceOptimizations",!1)),domReadOnly:register$2(new EditorBooleanOption(34,"domReadOnly",!1)),dragAndDrop:register$2(new EditorBooleanOption(35,"dragAndDrop",!0,{description:localize("dragAndDrop","Controls whether the editor should allow moving selections via drag and drop.")})),emptySelectionClipboard:register$2(new EditorEmptySelectionClipboard),dropIntoEditor:register$2(new EditorDropIntoEditor),stickyScroll:register$2(new EditorStickyScroll),experimentalWhitespaceRendering:register$2(new EditorStringEnumOption(38,"experimentalWhitespaceRendering","svg",["svg","font","off"],{enumDescriptions:[localize("experimentalWhitespaceRendering.svg","Use a new rendering method with svgs."),localize("experimentalWhitespaceRendering.font","Use a new rendering method with font characters."),localize("experimentalWhitespaceRendering.off","Use the stable rendering method.")],description:localize("experimentalWhitespaceRendering","Controls whether whitespace is rendered with a new, experimental method.")})),extraEditorClassName:register$2(new EditorStringOption(39,"extraEditorClassName","")),fastScrollSensitivity:register$2(new EditorFloatOption(40,"fastScrollSensitivity",5,o=>o<=0?5:o,{markdownDescription:localize("fastScrollSensitivity","Scrolling speed multiplier when pressing `Alt`.")})),find:register$2(new EditorFind),fixedOverflowWidgets:register$2(new EditorBooleanOption(42,"fixedOverflowWidgets",!1)),folding:register$2(new EditorBooleanOption(43,"folding",!0,{description:localize("folding","Controls whether the editor has code folding enabled.")})),foldingStrategy:register$2(new EditorStringEnumOption(44,"foldingStrategy","auto",["auto","indentation"],{enumDescriptions:[localize("foldingStrategy.auto","Use a language-specific folding strategy if available, else the indentation-based one."),localize("foldingStrategy.indentation","Use the indentation-based folding strategy.")],description:localize("foldingStrategy","Controls the strategy for computing folding ranges.")})),foldingHighlight:register$2(new EditorBooleanOption(45,"foldingHighlight",!0,{description:localize("foldingHighlight","Controls whether the editor should highlight folded ranges.")})),foldingImportsByDefault:register$2(new EditorBooleanOption(46,"foldingImportsByDefault",!1,{description:localize("foldingImportsByDefault","Controls whether the editor automatically collapses import ranges.")})),foldingMaximumRegions:register$2(new EditorIntOption(47,"foldingMaximumRegions",5e3,10,65e3,{description:localize("foldingMaximumRegions","The maximum number of foldable regions. Increasing this value may result in the editor becoming less responsive when the current source has a large number of foldable regions.")})),unfoldOnClickAfterEndOfLine:register$2(new EditorBooleanOption(48,"unfoldOnClickAfterEndOfLine",!1,{description:localize("unfoldOnClickAfterEndOfLine","Controls whether clicking on the empty content after a folded line will unfold the line.")})),fontFamily:register$2(new EditorStringOption(49,"fontFamily",EDITOR_FONT_DEFAULTS.fontFamily,{description:localize("fontFamily","Controls the font family.")})),fontInfo:register$2(new EditorFontInfo),fontLigatures2:register$2(new EditorFontLigatures),fontSize:register$2(new EditorFontSize),fontWeight:register$2(new EditorFontWeight),fontVariations:register$2(new EditorFontVariations),formatOnPaste:register$2(new EditorBooleanOption(55,"formatOnPaste",!1,{description:localize("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:register$2(new EditorBooleanOption(56,"formatOnType",!1,{description:localize("formatOnType","Controls whether the editor should automatically format the line after typing.")})),glyphMargin:register$2(new EditorBooleanOption(57,"glyphMargin",!0,{description:localize("glyphMargin","Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.")})),gotoLocation:register$2(new EditorGoToLocation),hideCursorInOverviewRuler:register$2(new EditorBooleanOption(59,"hideCursorInOverviewRuler",!1,{description:localize("hideCursorInOverviewRuler","Controls whether the cursor should be hidden in the overview ruler.")})),hover:register$2(new EditorHover),inDiffEditor:register$2(new EditorBooleanOption(61,"inDiffEditor",!1)),letterSpacing:register$2(new EditorFloatOption(63,"letterSpacing",EDITOR_FONT_DEFAULTS.letterSpacing,o=>EditorFloatOption.clamp(o,-5,20),{description:localize("letterSpacing","Controls the letter spacing in pixels.")})),lightbulb:register$2(new EditorLightbulb),lineDecorationsWidth:register$2(new EditorLineDecorationsWidth),lineHeight:register$2(new EditorLineHeight),lineNumbers:register$2(new EditorRenderLineNumbersOption),lineNumbersMinChars:register$2(new EditorIntOption(68,"lineNumbersMinChars",5,1,300)),linkedEditing:register$2(new EditorBooleanOption(69,"linkedEditing",!1,{description:localize("linkedEditing","Controls whether the editor has linked editing enabled. Depending on the language, related symbols such as HTML tags, are updated while editing.")})),links:register$2(new EditorBooleanOption(70,"links",!0,{description:localize("links","Controls whether the editor should detect links and make them clickable.")})),matchBrackets:register$2(new EditorStringEnumOption(71,"matchBrackets","always",["always","near","never"],{description:localize("matchBrackets","Highlight matching brackets.")})),minimap:register$2(new EditorMinimap),mouseStyle:register$2(new EditorStringEnumOption(73,"mouseStyle","text",["text","default","copy"])),mouseWheelScrollSensitivity:register$2(new EditorFloatOption(74,"mouseWheelScrollSensitivity",1,o=>o===0?1:o,{markdownDescription:localize("mouseWheelScrollSensitivity","A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.")})),mouseWheelZoom:register$2(new EditorBooleanOption(75,"mouseWheelZoom",!1,{markdownDescription:localize("mouseWheelZoom","Zoom the font of the editor when using mouse wheel and holding `Ctrl`.")})),multiCursorMergeOverlapping:register$2(new EditorBooleanOption(76,"multiCursorMergeOverlapping",!0,{description:localize("multiCursorMergeOverlapping","Merge multiple cursors when they are overlapping.")})),multiCursorModifier:register$2(new EditorEnumOption(77,"multiCursorModifier","altKey","alt",["ctrlCmd","alt"],_multiCursorModifierFromString,{markdownEnumDescriptions:[localize("multiCursorModifier.ctrlCmd","Maps to `Control` on Windows and Linux and to `Command` on macOS."),localize("multiCursorModifier.alt","Maps to `Alt` on Windows and Linux and to `Option` on macOS.")],markdownDescription:localize({},"The modifier to be used to add multiple cursors with the mouse. The Go to Definition and Open Link mouse gestures will adapt such that they do not conflict with the [multicursor modifier](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).")})),multiCursorPaste:register$2(new EditorStringEnumOption(78,"multiCursorPaste","spread",["spread","full"],{markdownEnumDescriptions:[localize("multiCursorPaste.spread","Each cursor pastes a single line of the text."),localize("multiCursorPaste.full","Each cursor pastes the full text.")],markdownDescription:localize("multiCursorPaste","Controls pasting when the line count of the pasted text matches the cursor count.")})),multiCursorLimit:register$2(new EditorIntOption(79,"multiCursorLimit",1e4,1,1e5,{markdownDescription:localize("multiCursorLimit","Controls the max number of cursors that can be in an active editor at once.")})),occurrencesHighlight:register$2(new EditorBooleanOption(80,"occurrencesHighlight",!0,{description:localize("occurrencesHighlight","Controls whether the editor should highlight semantic symbol occurrences.")})),overviewRulerBorder:register$2(new EditorBooleanOption(81,"overviewRulerBorder",!0,{description:localize("overviewRulerBorder","Controls whether a border should be drawn around the overview ruler.")})),overviewRulerLanes:register$2(new EditorIntOption(82,"overviewRulerLanes",3,0,3)),padding:register$2(new EditorPadding),pasteAs:register$2(new EditorPasteAs),parameterHints:register$2(new EditorParameterHints),peekWidgetDefaultFocus:register$2(new EditorStringEnumOption(86,"peekWidgetDefaultFocus","tree",["tree","editor"],{enumDescriptions:[localize("peekWidgetDefaultFocus.tree","Focus the tree when opening peek"),localize("peekWidgetDefaultFocus.editor","Focus the editor when opening peek")],description:localize("peekWidgetDefaultFocus","Controls whether to focus the inline editor or the tree in the peek widget.")})),definitionLinkOpensInPeek:register$2(new EditorBooleanOption(87,"definitionLinkOpensInPeek",!1,{description:localize("definitionLinkOpensInPeek","Controls whether the Go to Definition mouse gesture always opens the peek widget.")})),quickSuggestions:register$2(new EditorQuickSuggestions),quickSuggestionsDelay:register$2(new EditorIntOption(89,"quickSuggestionsDelay",10,0,1073741824,{description:localize("quickSuggestionsDelay","Controls the delay in milliseconds after which quick suggestions will show up.")})),readOnly:register$2(new EditorBooleanOption(90,"readOnly",!1)),readOnlyMessage:register$2(new ReadonlyMessage),renameOnType:register$2(new EditorBooleanOption(92,"renameOnType",!1,{description:localize("renameOnType","Controls whether the editor auto renames on type."),markdownDeprecationMessage:localize("renameOnTypeDeprecate","Deprecated, use `editor.linkedEditing` instead.")})),renderControlCharacters:register$2(new EditorBooleanOption(93,"renderControlCharacters",!0,{description:localize("renderControlCharacters","Controls whether the editor should render control characters."),restricted:!0})),renderFinalNewline:register$2(new EditorStringEnumOption(94,"renderFinalNewline",isLinux?"dimmed":"on",["off","on","dimmed"],{description:localize("renderFinalNewline","Render last line number when the file ends with a newline.")})),renderLineHighlight:register$2(new EditorStringEnumOption(95,"renderLineHighlight","line",["none","gutter","line","all"],{enumDescriptions:["","","",localize("renderLineHighlight.all","Highlights both the gutter and the current line.")],description:localize("renderLineHighlight","Controls how the editor should render the current line highlight.")})),renderLineHighlightOnlyWhenFocus:register$2(new EditorBooleanOption(96,"renderLineHighlightOnlyWhenFocus",!1,{description:localize("renderLineHighlightOnlyWhenFocus","Controls if the editor should render the current line highlight only when the editor is focused.")})),renderValidationDecorations:register$2(new EditorStringEnumOption(97,"renderValidationDecorations","editable",["editable","on","off"])),renderWhitespace:register$2(new EditorStringEnumOption(98,"renderWhitespace","selection",["none","boundary","selection","trailing","all"],{enumDescriptions:["",localize("renderWhitespace.boundary","Render whitespace characters except for single spaces between words."),localize("renderWhitespace.selection","Render whitespace characters only on selected text."),localize("renderWhitespace.trailing","Render only trailing whitespace characters."),""],description:localize("renderWhitespace","Controls how the editor should render whitespace characters.")})),revealHorizontalRightPadding:register$2(new EditorIntOption(99,"revealHorizontalRightPadding",15,0,1e3)),roundedSelection:register$2(new EditorBooleanOption(100,"roundedSelection",!0,{description:localize("roundedSelection","Controls whether selections should have rounded corners.")})),rulers:register$2(new EditorRulers),scrollbar:register$2(new EditorScrollbar$1),scrollBeyondLastColumn:register$2(new EditorIntOption(103,"scrollBeyondLastColumn",4,0,1073741824,{description:localize("scrollBeyondLastColumn","Controls the number of extra characters beyond which the editor will scroll horizontally.")})),scrollBeyondLastLine:register$2(new EditorBooleanOption(104,"scrollBeyondLastLine",!0,{description:localize("scrollBeyondLastLine","Controls whether the editor will scroll beyond the last line.")})),scrollPredominantAxis:register$2(new EditorBooleanOption(105,"scrollPredominantAxis",!0,{description:localize("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:register$2(new EditorBooleanOption(106,"selectionClipboard",!0,{description:localize("selectionClipboard","Controls whether the Linux primary clipboard should be supported."),included:isLinux})),selectionHighlight:register$2(new EditorBooleanOption(107,"selectionHighlight",!0,{description:localize("selectionHighlight","Controls whether the editor should highlight matches similar to the selection.")})),selectOnLineNumbers:register$2(new EditorBooleanOption(108,"selectOnLineNumbers",!0)),showFoldingControls:register$2(new EditorStringEnumOption(109,"showFoldingControls","mouseover",["always","never","mouseover"],{enumDescriptions:[localize("showFoldingControls.always","Always show the folding controls."),localize("showFoldingControls.never","Never show the folding controls and reduce the gutter size."),localize("showFoldingControls.mouseover","Only show the folding controls when the mouse is over the gutter.")],description:localize("showFoldingControls","Controls when the folding controls on the gutter are shown.")})),showUnused:register$2(new EditorBooleanOption(110,"showUnused",!0,{description:localize("showUnused","Controls fading out of unused code.")})),showDeprecated:register$2(new EditorBooleanOption(138,"showDeprecated",!0,{description:localize("showDeprecated","Controls strikethrough deprecated variables.")})),inlayHints:register$2(new EditorInlayHints),snippetSuggestions:register$2(new EditorStringEnumOption(111,"snippetSuggestions","inline",["top","bottom","inline","none"],{enumDescriptions:[localize("snippetSuggestions.top","Show snippet suggestions on top of other suggestions."),localize("snippetSuggestions.bottom","Show snippet suggestions below other suggestions."),localize("snippetSuggestions.inline","Show snippets suggestions with other suggestions."),localize("snippetSuggestions.none","Do not show snippet suggestions.")],description:localize("snippetSuggestions","Controls whether snippets are shown with other suggestions and how they are sorted.")})),smartSelect:register$2(new SmartSelect),smoothScrolling:register$2(new EditorBooleanOption(113,"smoothScrolling",!1,{description:localize("smoothScrolling","Controls whether the editor will scroll using an animation.")})),stopRenderingLineAfter:register$2(new EditorIntOption(116,"stopRenderingLineAfter",1e4,-1,1073741824)),suggest:register$2(new EditorSuggest),inlineSuggest:register$2(new InlineEditorSuggest),inlineCompletionsAccessibilityVerbose:register$2(new EditorBooleanOption(147,"inlineCompletionsAccessibilityVerbose",!1,{description:localize("inlineCompletionsAccessibilityVerbose","Controls whether the accessibility hint should be provided to screen reader users when an inline completion is shown.")})),suggestFontSize:register$2(new EditorIntOption(118,"suggestFontSize",0,0,1e3,{markdownDescription:localize("suggestFontSize","Font size for the suggest widget. When set to {0}, the value of {1} is used.","`0`","`#editor.fontSize#`")})),suggestLineHeight:register$2(new EditorIntOption(119,"suggestLineHeight",0,0,1e3,{markdownDescription:localize("suggestLineHeight","Line height for the suggest widget. When set to {0}, the value of {1} is used. The minimum value is 8.","`0`","`#editor.lineHeight#`")})),suggestOnTriggerCharacters:register$2(new EditorBooleanOption(120,"suggestOnTriggerCharacters",!0,{description:localize("suggestOnTriggerCharacters","Controls whether suggestions should automatically show up when typing trigger characters.")})),suggestSelection:register$2(new EditorStringEnumOption(121,"suggestSelection","first",["first","recentlyUsed","recentlyUsedByPrefix"],{markdownEnumDescriptions:[localize("suggestSelection.first","Always select the first suggestion."),localize("suggestSelection.recentlyUsed","Select recent suggestions unless further typing selects one, e.g. `console.| -> console.log` because `log` has been completed recently."),localize("suggestSelection.recentlyUsedByPrefix","Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`.")],description:localize("suggestSelection","Controls how suggestions are pre-selected when showing the suggest list.")})),tabCompletion:register$2(new EditorStringEnumOption(122,"tabCompletion","off",["on","off","onlySnippets"],{enumDescriptions:[localize("tabCompletion.on","Tab complete will insert the best matching suggestion when pressing tab."),localize("tabCompletion.off","Disable tab completions."),localize("tabCompletion.onlySnippets","Tab complete snippets when their prefix match. Works best when 'quickSuggestions' aren't enabled.")],description:localize("tabCompletion","Enables tab completions.")})),tabIndex:register$2(new EditorIntOption(123,"tabIndex",0,-1,1073741824)),unicodeHighlight:register$2(new UnicodeHighlight),unusualLineTerminators:register$2(new EditorStringEnumOption(125,"unusualLineTerminators","prompt",["auto","off","prompt"],{enumDescriptions:[localize("unusualLineTerminators.auto","Unusual line terminators are automatically removed."),localize("unusualLineTerminators.off","Unusual line terminators are ignored."),localize("unusualLineTerminators.prompt","Unusual line terminators prompt to be removed.")],description:localize("unusualLineTerminators","Remove unusual line terminators that might cause problems.")})),useShadowDOM:register$2(new EditorBooleanOption(126,"useShadowDOM",!0)),useTabStops:register$2(new EditorBooleanOption(127,"useTabStops",!0,{description:localize("useTabStops","Inserting and deleting whitespace follows tab stops.")})),wordBreak:register$2(new EditorStringEnumOption(128,"wordBreak","normal",["normal","keepAll"],{markdownEnumDescriptions:[localize("wordBreak.normal","Use the default line break rule."),localize("wordBreak.keepAll","Word breaks should not be used for Chinese/Japanese/Korean (CJK) text. Non-CJK text behavior is the same as for normal.")],description:localize("wordBreak","Controls the word break rules used for Chinese/Japanese/Korean (CJK) text.")})),wordSeparators:register$2(new EditorStringOption(129,"wordSeparators",USUAL_WORD_SEPARATORS,{description:localize("wordSeparators","Characters that will be used as word separators when doing word related navigations or operations.")})),wordWrap:register$2(new EditorStringEnumOption(130,"wordWrap","off",["off","on","wordWrapColumn","bounded"],{markdownEnumDescriptions:[localize("wordWrap.off","Lines will never wrap."),localize("wordWrap.on","Lines will wrap at the viewport width."),localize({},"Lines will wrap at `#editor.wordWrapColumn#`."),localize({},"Lines will wrap at the minimum of viewport and `#editor.wordWrapColumn#`.")],description:localize({},"Controls how lines should wrap.")})),wordWrapBreakAfterCharacters:register$2(new EditorStringOption(131,"wordWrapBreakAfterCharacters"," })]?|/&.,;¢°′″‰℃、。。、¢,.:;?!%・・ゝゞヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻ァィゥェォャュョッー”〉》」』】〕)]}」")),wordWrapBreakBeforeCharacters:register$2(new EditorStringOption(132,"wordWrapBreakBeforeCharacters","([{‘“〈《「『【〔([{「£¥$£¥++")),wordWrapColumn:register$2(new EditorIntOption(133,"wordWrapColumn",80,1,1073741824,{markdownDescription:localize({},"Controls the wrapping column of the editor when `#editor.wordWrap#` is `wordWrapColumn` or `bounded`.")})),wordWrapOverride1:register$2(new EditorStringEnumOption(134,"wordWrapOverride1","inherit",["off","on","inherit"])),wordWrapOverride2:register$2(new EditorStringEnumOption(135,"wordWrapOverride2","inherit",["off","on","inherit"])),editorClassName:register$2(new EditorClassName),defaultColorDecorators:register$2(new EditorBooleanOption(145,"defaultColorDecorators",!1,{markdownDescription:localize("defaultColorDecorators","Controls whether inline color decorations should be shown using the default document color provider")})),pixelRatio:register$2(new EditorPixelRatio),tabFocusMode:register$2(new EditorBooleanOption(142,"tabFocusMode",!1,{markdownDescription:localize("tabFocusMode","Controls whether the editor receives tabs or defers them to the workbench for navigation.")})),layoutInfo:register$2(new EditorLayoutInfoComputer),wrappingInfo:register$2(new EditorWrappingInfoComputer),wrappingIndent:register$2(new WrappingIndentOption),wrappingStrategy:register$2(new WrappingStrategy)};class ErrorHandler{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?ErrorNoTelemetry.isErrorNoTelemetry(e)?new ErrorNoTelemetry(e.message+`
- `+e.stack):new Error(e.message+`
- `+e.stack):e},0)}}emit(e){this.listeners.forEach(t=>{t(e)})}onUnexpectedError(e){this.unexpectedErrorHandler(e),this.emit(e)}onUnexpectedExternalError(e){this.unexpectedErrorHandler(e)}}const errorHandler=new ErrorHandler;function onUnexpectedError(o){isCancellationError(o)||errorHandler.onUnexpectedError(o)}function onUnexpectedExternalError(o){isCancellationError(o)||errorHandler.onUnexpectedExternalError(o)}function transformErrorForSerialization(o){if(o instanceof Error){const{name:e,message:t}=o,i=o.stacktrace||o.stack;return{$isError:!0,name:e,message:t,stack:i,noTelemetry:ErrorNoTelemetry.isErrorNoTelemetry(o)}}return o}const canceledName="Canceled";function isCancellationError(o){return o instanceof CancellationError?!0:o instanceof Error&&o.name===canceledName&&o.message===canceledName}class CancellationError extends Error{constructor(){super(canceledName),this.name=this.message}}function canceled(){const o=new Error(canceledName);return o.name=o.message,o}function illegalArgument(o){return o?new Error(`Illegal argument: ${o}`):new Error("Illegal argument")}function illegalState(o){return o?new Error(`Illegal state: ${o}`):new Error("Illegal state")}class NotSupportedError extends Error{constructor(e){super("NotSupported"),e&&(this.message=e)}}class ErrorNoTelemetry extends Error{constructor(e){super(e),this.name="CodeExpectedError"}static fromError(e){if(e instanceof ErrorNoTelemetry)return e;const t=new ErrorNoTelemetry;return t.message=e.message,t.stack=e.stack,t}static isErrorNoTelemetry(e){return e.name==="CodeExpectedError"}}class BugIndicatingError extends Error{constructor(e){super(e||"An unexpected bug occurred."),Object.setPrototypeOf(this,BugIndicatingError.prototype)}}function createSingleCallFunction(o){const e=this;let t=!1,i;return function(){return t||(t=!0,i=o.apply(e,arguments)),i}}function trackDisposable(o){return o}function setParentOfDisposable(o,e){}function markAsSingleton(o){return o}function isDisposable(o){return typeof o.dispose=="function"&&o.dispose.length===0}function dispose(o){if(Iterable.is(o)){const e=[];for(const t of o)if(t)try{t.dispose()}catch(i){e.push(i)}if(e.length===1)throw e[0];if(e.length>1)throw new AggregateError(e,"Encountered errors while disposing of store");return Array.isArray(o)?[]:o}else if(o)return o.dispose(),o}function combinedDisposable(...o){return toDisposable(()=>dispose(o))}function toDisposable(o){return{dispose:createSingleCallFunction(()=>{o()})}}class DisposableStore{constructor(){this._toDispose=new Set,this._isDisposed=!1}dispose(){this._isDisposed||(this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{dispose(this._toDispose)}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?DisposableStore.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}deleteAndLeak(e){e&&this._toDispose.has(e)&&this._toDispose.delete(e)}}DisposableStore.DISABLE_DISPOSED_WARNING=!1;class Disposable{constructor(){this._store=new DisposableStore,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)}}Disposable.None=Object.freeze({dispose(){}});class MutableDisposable{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(e){var t;this._isDisposed||e===this._value||((t=this._value)===null||t===void 0||t.dispose(),this._value=e)}clear(){this.value=void 0}dispose(){var e;this._isDisposed=!0,(e=this._value)===null||e===void 0||e.dispose(),this._value=void 0}}class RefCountedDisposable{constructor(e){this._disposable=e,this._counter=1}acquire(){return this._counter++,this}release(){return--this._counter===0&&this._disposable.dispose(),this}}class ImmortalReference{constructor(e){this.object=e}dispose(){}}class DisposableMap{constructor(){this._store=new Map,this._isDisposed=!1}dispose(){this._isDisposed=!0,this.clearAndDisposeAll()}clearAndDisposeAll(){if(this._store.size)try{dispose(this._store.values())}finally{this._store.clear()}}get(e){return this._store.get(e)}set(e,t,i=!1){var n;this._isDisposed&&console.warn(new Error("Trying to add a disposable to a DisposableMap that has already been disposed of. The added object will be leaked!").stack),i||(n=this._store.get(e))===null||n===void 0||n.dispose(),this._store.set(e,t)}deleteAndDispose(e){var t;(t=this._store.get(e))===null||t===void 0||t.dispose(),this._store.delete(e)}[Symbol.iterator](){return this._store[Symbol.iterator]()}}const hasPerformanceNow=globalThis.performance&&typeof globalThis.performance.now=="function";class StopWatch{static create(e){return new StopWatch(e)}constructor(e){this._now=hasPerformanceNow&&e===!1?Date.now:globalThis.performance.now.bind(globalThis.performance),this._startTime=this._now(),this._stopTime=-1}stop(){this._stopTime=this._now()}elapsed(){return this._stopTime!==-1?this._stopTime-this._startTime:this._now()-this._startTime}}var Event;(function(o){o.None=()=>Disposable.None;function e(R,M){return u(R,()=>{},0,void 0,!0,void 0,M)}o.defer=e;function t(R){return(M,W=null,V)=>{let A=!1,P;return P=R(k=>{if(!A)return P?P.dispose():A=!0,M.call(W,k)},null,V),A&&P.dispose(),P}}o.once=t;function i(R,M,W){return d((V,A=null,P)=>R(k=>V.call(A,M(k)),null,P),W)}o.map=i;function n(R,M,W){return d((V,A=null,P)=>R(k=>{M(k),V.call(A,k)},null,P),W)}o.forEach=n;function r(R,M,W){return d((V,A=null,P)=>R(k=>M(k)&&V.call(A,k),null,P),W)}o.filter=r;function s(R){return R}o.signal=s;function a(...R){return(M,W=null,V)=>{const A=combinedDisposable(...R.map(P=>P(k=>M.call(W,k))));return c(A,V)}}o.any=a;function l(R,M,W,V){let A=W;return i(R,P=>(A=M(A,P),A),V)}o.reduce=l;function d(R,M){let W;const V={onWillAddFirstListener(){W=R(A.fire,A)},onDidRemoveLastListener(){W==null||W.dispose()}},A=new Emitter$1(V);return M==null||M.add(A),A.event}function c(R,M){return M instanceof Array?M.push(R):M&&M.add(R),R}function u(R,M,W=100,V=!1,A=!1,P,k){let T,U,z,J=0,X;const ae={leakWarningThreshold:P,onWillAddFirstListener(){T=R(me=>{J++,U=M(U,me),V&&!z&&(ve.fire(U),U=void 0),X=()=>{const fe=U;U=void 0,z=void 0,(!V||J>1)&&ve.fire(fe),J=0},typeof W=="number"?(clearTimeout(z),z=setTimeout(X,W)):z===void 0&&(z=0,queueMicrotask(X))})},onWillRemoveListener(){A&&J>0&&(X==null||X())},onDidRemoveLastListener(){X=void 0,T.dispose()}},ve=new Emitter$1(ae);return k==null||k.add(ve),ve.event}o.debounce=u;function g(R,M=0,W){return o.debounce(R,(V,A)=>V?(V.push(A),V):[A],M,void 0,!0,void 0,W)}o.accumulate=g;function f(R,M=(V,A)=>V===A,W){let V=!0,A;return r(R,P=>{const k=V||!M(P,A);return V=!1,A=P,k},W)}o.latch=f;function p(R,M,W){return[o.filter(R,M,W),o.filter(R,V=>!M(V),W)]}o.split=p;function m(R,M=!1,W=[],V){let A=W.slice(),P=R(U=>{A?A.push(U):T.fire(U)});V&&V.add(P);const k=()=>{A==null||A.forEach(U=>T.fire(U)),A=null},T=new Emitter$1({onWillAddFirstListener(){P||(P=R(U=>T.fire(U)),V&&V.add(P))},onDidAddFirstListener(){A&&(M?setTimeout(k):k())},onDidRemoveLastListener(){P&&P.dispose(),P=null}});return V&&V.add(T),T.event}o.buffer=m;function b(R,M){return(V,A,P)=>{const k=M(new C);return R(function(T){const U=k.evaluate(T);U!==_&&V.call(A,U)},void 0,P)}}o.chain=b;const _=Symbol("HaltChainable");class C{constructor(){this.steps=[]}map(M){return this.steps.push(M),this}forEach(M){return this.steps.push(W=>(M(W),W)),this}filter(M){return this.steps.push(W=>M(W)?W:_),this}reduce(M,W){let V=W;return this.steps.push(A=>(V=M(V,A),V)),this}latch(M=(W,V)=>W===V){let W=!0,V;return this.steps.push(A=>{const P=W||!M(A,V);return W=!1,V=A,P?A:_}),this}evaluate(M){for(const W of this.steps)if(M=W(M),M===_)break;return M}}function S(R,M,W=V=>V){const V=(...T)=>k.fire(W(...T)),A=()=>R.on(M,V),P=()=>R.removeListener(M,V),k=new Emitter$1({onWillAddFirstListener:A,onDidRemoveLastListener:P});return k.event}o.fromNodeEventEmitter=S;function y(R,M,W=V=>V){const V=(...T)=>k.fire(W(...T)),A=()=>R.addEventListener(M,V),P=()=>R.removeEventListener(M,V),k=new Emitter$1({onWillAddFirstListener:A,onDidRemoveLastListener:P});return k.event}o.fromDOMEventEmitter=y;function E(R){return new Promise(M=>t(R)(M))}o.toPromise=E;function x(R){const M=new Emitter$1;return R.then(W=>{M.fire(W)},()=>{M.fire(void 0)}).finally(()=>{M.dispose()}),M.event}o.fromPromise=x;function L(R,M){return M(void 0),R(W=>M(W))}o.runAndSubscribe=L;function I(R,M){let W=null;function V(P){W==null||W.dispose(),W=new DisposableStore,M(P,W)}V(void 0);const A=R(P=>V(P));return toDisposable(()=>{A.dispose(),W==null||W.dispose()})}o.runAndSubscribeWithStore=I;class D{constructor(M,W){this._observable=M,this._counter=0,this._hasChanged=!1;const V={onWillAddFirstListener:()=>{M.addObserver(this)},onDidRemoveLastListener:()=>{M.removeObserver(this)}};this.emitter=new Emitter$1(V),W&&W.add(this.emitter)}beginUpdate(M){this._counter++}handlePossibleChange(M){}handleChange(M,W){this._hasChanged=!0}endUpdate(M){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function N(R,M){return new D(R,M).emitter.event}o.fromObservable=N;function F(R){return M=>{let W=0,V=!1;const A={beginUpdate(){W++},endUpdate(){W--,W===0&&(R.reportChanges(),V&&(V=!1,M()))},handlePossibleChange(){},handleChange(){V=!0}};return R.addObserver(A),R.reportChanges(),{dispose(){R.removeObserver(A)}}}}o.fromObservableLight=F})(Event||(Event={}));class EventProfiling{constructor(e){this.listenerCount=0,this.invocationCount=0,this.elapsedOverall=0,this.durations=[],this.name=`${e}_${EventProfiling._idPool++}`,EventProfiling.all.add(this)}start(e){this._stopWatch=new StopWatch,this.listenerCount=e}stop(){if(this._stopWatch){const e=this._stopWatch.elapsed();this.durations.push(e),this.elapsedOverall+=e,this.invocationCount+=1,this._stopWatch=void 0}}}EventProfiling.all=new Set;EventProfiling._idPool=0;let _globalLeakWarningThreshold=-1;class LeakageMonitor{constructor(e,t=Math.random().toString(18).slice(2,5)){this.threshold=e,this.name=t,this._warnCountdown=0}dispose(){var e;(e=this._stacks)===null||e===void 0||e.clear()}check(e,t){const i=this.threshold;if(i<=0||t<i)return;this._stacks||(this._stacks=new Map);const n=this._stacks.get(e.value)||0;if(this._stacks.set(e.value,n+1),this._warnCountdown-=1,this._warnCountdown<=0){this._warnCountdown=i*.5;let r,s=0;for(const[a,l]of this._stacks)(!r||s<l)&&(r=a,s=l);console.warn(`[${this.name}] potential listener LEAK detected, having ${t} listeners already. MOST frequent listener (${s}):`),console.warn(r)}return()=>{const r=this._stacks.get(e.value)||0;this._stacks.set(e.value,r-1)}}}class Stacktrace{static create(){var e;return new Stacktrace((e=new Error().stack)!==null&&e!==void 0?e:"")}constructor(e){this.value=e}print(){console.warn(this.value.split(`
- `).slice(2).join(`
- `))}}class UniqueContainer{constructor(e){this.value=e}}const compactionThreshold=2;let Emitter$1=class{constructor(e){var t,i,n,r,s;this._size=0,this._options=e,this._leakageMon=!((t=this._options)===null||t===void 0)&&t.leakWarningThreshold?new LeakageMonitor((n=(i=this._options)===null||i===void 0?void 0:i.leakWarningThreshold)!==null&&n!==void 0?n:_globalLeakWarningThreshold):void 0,this._perfMon=!((r=this._options)===null||r===void 0)&&r._profName?new EventProfiling(this._options._profName):void 0,this._deliveryQueue=(s=this._options)===null||s===void 0?void 0:s.deliveryQueue}dispose(){var e,t,i,n;this._disposed||(this._disposed=!0,((e=this._deliveryQueue)===null||e===void 0?void 0:e.current)===this&&this._deliveryQueue.reset(),this._listeners&&(this._listeners=void 0,this._size=0),(i=(t=this._options)===null||t===void 0?void 0:t.onDidRemoveLastListener)===null||i===void 0||i.call(t),(n=this._leakageMon)===null||n===void 0||n.dispose())}get event(){var e;return(e=this._event)!==null&&e!==void 0||(this._event=(t,i,n)=>{var r,s,a,l,d;if(this._leakageMon&&this._size>this._leakageMon.threshold*3)return console.warn(`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far`),Disposable.None;if(this._disposed)return Disposable.None;i&&(t=t.bind(i));const c=new UniqueContainer(t);let u;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(c.stack=Stacktrace.create(),u=this._leakageMon.check(c.stack,this._size+1)),this._listeners?this._listeners instanceof UniqueContainer?((d=this._deliveryQueue)!==null&&d!==void 0||(this._deliveryQueue=new EventDeliveryQueuePrivate),this._listeners=[this._listeners,c]):this._listeners.push(c):((s=(r=this._options)===null||r===void 0?void 0:r.onWillAddFirstListener)===null||s===void 0||s.call(r,this),this._listeners=c,(l=(a=this._options)===null||a===void 0?void 0:a.onDidAddFirstListener)===null||l===void 0||l.call(a,this)),this._size++;const g=toDisposable(()=>{u==null||u(),this._removeListener(c)});return n instanceof DisposableStore?n.add(g):Array.isArray(n)&&n.push(g),g}),this._event}_removeListener(e){var t,i,n,r;if((i=(t=this._options)===null||t===void 0?void 0:t.onWillRemoveListener)===null||i===void 0||i.call(t,this),!this._listeners)return;if(this._size===1){this._listeners=void 0,(r=(n=this._options)===null||n===void 0?void 0:n.onDidRemoveLastListener)===null||r===void 0||r.call(n,this),this._size=0;return}const s=this._listeners,a=s.indexOf(e);if(a===-1)throw console.log("disposed?",this._disposed),console.log("size?",this._size),console.log("arr?",JSON.stringify(this._listeners)),new Error("Attempted to dispose unknown listener");this._size--,s[a]=void 0;const l=this._deliveryQueue.current===this;if(this._size*compactionThreshold<=s.length){let d=0;for(let c=0;c<s.length;c++)s[c]?s[d++]=s[c]:l&&(this._deliveryQueue.end--,d<this._deliveryQueue.i&&this._deliveryQueue.i--);s.length=d}}_deliver(e,t){var i;if(!e)return;const n=((i=this._options)===null||i===void 0?void 0:i.onListenerError)||onUnexpectedError;if(!n){e.value(t);return}try{e.value(t)}catch(r){n(r)}}_deliverQueue(e){const t=e.current._listeners;for(;e.i<e.end;)this._deliver(t[e.i++],e.value);e.reset()}fire(e){var t,i,n,r;if(!((t=this._deliveryQueue)===null||t===void 0)&&t.current&&(this._deliverQueue(this._deliveryQueue),(i=this._perfMon)===null||i===void 0||i.stop()),(n=this._perfMon)===null||n===void 0||n.start(this._size),this._listeners)if(this._listeners instanceof UniqueContainer)this._deliver(this._listeners,e);else{const s=this._deliveryQueue;s.enqueue(this,e,this._listeners.length),this._deliverQueue(s)}(r=this._perfMon)===null||r===void 0||r.stop()}hasListeners(){return this._size>0}};const createEventDeliveryQueue=()=>new EventDeliveryQueuePrivate;class EventDeliveryQueuePrivate{constructor(){this.i=-1,this.end=0}enqueue(e,t,i){this.i=0,this.end=i,this.current=e,this.value=t}reset(){this.i=this.end,this.current=void 0,this.value=void 0}}class PauseableEmitter extends Emitter$1{constructor(e){super(e),this._isPaused=0,this._eventQueue=new LinkedList,this._mergeFn=e==null?void 0:e.merge}pause(){this._isPaused++}resume(){if(this._isPaused!==0&&--this._isPaused===0)if(this._mergeFn){if(this._eventQueue.size>0){const e=Array.from(this._eventQueue);this._eventQueue.clear(),super.fire(this._mergeFn(e))}}else for(;!this._isPaused&&this._eventQueue.size!==0;)super.fire(this._eventQueue.shift())}fire(e){this._size&&(this._isPaused!==0?this._eventQueue.push(e):super.fire(e))}}class DebounceEmitter extends PauseableEmitter{constructor(e){var t;super(e),this._delay=(t=e.delay)!==null&&t!==void 0?t:100}fire(e){this._handle||(this.pause(),this._handle=setTimeout(()=>{this._handle=void 0,this.resume()},this._delay)),super.fire(e)}}class MicrotaskEmitter extends Emitter$1{constructor(e){super(e),this._queuedEvents=[],this._mergeFn=e==null?void 0:e.merge}fire(e){this.hasListeners()&&(this._queuedEvents.push(e),this._queuedEvents.length===1&&queueMicrotask(()=>{this._mergeFn?super.fire(this._mergeFn(this._queuedEvents)):this._queuedEvents.forEach(t=>super.fire(t)),this._queuedEvents=[]}))}}class EventMultiplexer{constructor(){this.hasListeners=!1,this.events=[],this.emitter=new Emitter$1({onWillAddFirstListener:()=>this.onFirstListenerAdd(),onDidRemoveLastListener:()=>this.onLastListenerRemove()})}get event(){return this.emitter.event}add(e){const t={event:e,listener:null};return this.events.push(t),this.hasListeners&&this.hook(t),toDisposable(createSingleCallFunction(()=>{this.hasListeners&&this.unhook(t);const n=this.events.indexOf(t);this.events.splice(n,1)}))}onFirstListenerAdd(){this.hasListeners=!0,this.events.forEach(e=>this.hook(e))}onLastListenerRemove(){this.hasListeners=!1,this.events.forEach(e=>this.unhook(e))}hook(e){e.listener=e.event(t=>this.emitter.fire(t))}unhook(e){e.listener&&e.listener.dispose(),e.listener=null}dispose(){this.emitter.dispose()}}class EventBufferer{constructor(){this.buffers=[]}wrapEvent(e){return(t,i,n)=>e(r=>{const s=this.buffers[this.buffers.length-1];s?s.push(()=>t.call(i,r)):t.call(i,r)},void 0,n)}bufferEvents(e){const t=[];this.buffers.push(t);const i=e();return this.buffers.pop(),t.forEach(n=>n()),i}}class Relay{constructor(){this.listening=!1,this.inputEvent=Event.None,this.inputEventListener=Disposable.None,this.emitter=new Emitter$1({onDidAddFirstListener:()=>{this.listening=!0,this.inputEventListener=this.inputEvent(this.emitter.fire,this.emitter)},onDidRemoveLastListener:()=>{this.listening=!1,this.inputEventListener.dispose()}}),this.event=this.emitter.event}set input(e){this.inputEvent=e,this.listening&&(this.inputEventListener.dispose(),this.inputEventListener=e(this.emitter.fire,this.emitter))}dispose(){this.inputEventListener.dispose(),this.emitter.dispose()}}const shortcutEvent=Object.freeze(function(o,e){const t=setTimeout(o.bind(e),0);return{dispose(){clearTimeout(t)}}});var CancellationToken;(function(o){function e(t){return t===o.None||t===o.Cancelled||t instanceof MutableToken?!0:!t||typeof t!="object"?!1:typeof t.isCancellationRequested=="boolean"&&typeof t.onCancellationRequested=="function"}o.isCancellationToken=e,o.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:Event.None}),o.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:shortcutEvent})})(CancellationToken||(CancellationToken={}));class MutableToken{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?shortcutEvent:(this._emitter||(this._emitter=new Emitter$1),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}}let CancellationTokenSource$1=class{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 MutableToken),this._token}cancel(){this._token?this._token instanceof MutableToken&&this._token.cancel():this._token=CancellationToken.Cancelled}dispose(e=!1){var t;e&&this.cancel(),(t=this._parentListener)===null||t===void 0||t.dispose(),this._token?this._token instanceof MutableToken&&this._token.dispose():this._token=CancellationToken.None}};class KeyCodeStrMap{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 uiMap=new KeyCodeStrMap,userSettingsUSMap=new KeyCodeStrMap,userSettingsGeneralMap=new KeyCodeStrMap,EVENT_KEY_CODE_MAP=new Array(230),scanCodeStrToInt=Object.create(null),scanCodeLowerCaseStrToInt=Object.create(null),IMMUTABLE_CODE_TO_KEY_CODE=[];for(let o=0;o<=193;o++)IMMUTABLE_CODE_TO_KEY_CODE[o]=-1;(function(){const o="",e=[[1,0,"None",0,"unknown",0,"VK_UNKNOWN",o,o],[1,1,"Hyper",0,o,0,o,o,o],[1,2,"Super",0,o,0,o,o,o],[1,3,"Fn",0,o,0,o,o,o],[1,4,"FnLock",0,o,0,o,o,o],[1,5,"Suspend",0,o,0,o,o,o],[1,6,"Resume",0,o,0,o,o,o],[1,7,"Turbo",0,o,0,o,o,o],[1,8,"Sleep",0,o,0,"VK_SLEEP",o,o],[1,9,"WakeUp",0,o,0,o,o,o],[0,10,"KeyA",31,"A",65,"VK_A",o,o],[0,11,"KeyB",32,"B",66,"VK_B",o,o],[0,12,"KeyC",33,"C",67,"VK_C",o,o],[0,13,"KeyD",34,"D",68,"VK_D",o,o],[0,14,"KeyE",35,"E",69,"VK_E",o,o],[0,15,"KeyF",36,"F",70,"VK_F",o,o],[0,16,"KeyG",37,"G",71,"VK_G",o,o],[0,17,"KeyH",38,"H",72,"VK_H",o,o],[0,18,"KeyI",39,"I",73,"VK_I",o,o],[0,19,"KeyJ",40,"J",74,"VK_J",o,o],[0,20,"KeyK",41,"K",75,"VK_K",o,o],[0,21,"KeyL",42,"L",76,"VK_L",o,o],[0,22,"KeyM",43,"M",77,"VK_M",o,o],[0,23,"KeyN",44,"N",78,"VK_N",o,o],[0,24,"KeyO",45,"O",79,"VK_O",o,o],[0,25,"KeyP",46,"P",80,"VK_P",o,o],[0,26,"KeyQ",47,"Q",81,"VK_Q",o,o],[0,27,"KeyR",48,"R",82,"VK_R",o,o],[0,28,"KeyS",49,"S",83,"VK_S",o,o],[0,29,"KeyT",50,"T",84,"VK_T",o,o],[0,30,"KeyU",51,"U",85,"VK_U",o,o],[0,31,"KeyV",52,"V",86,"VK_V",o,o],[0,32,"KeyW",53,"W",87,"VK_W",o,o],[0,33,"KeyX",54,"X",88,"VK_X",o,o],[0,34,"KeyY",55,"Y",89,"VK_Y",o,o],[0,35,"KeyZ",56,"Z",90,"VK_Z",o,o],[0,36,"Digit1",22,"1",49,"VK_1",o,o],[0,37,"Digit2",23,"2",50,"VK_2",o,o],[0,38,"Digit3",24,"3",51,"VK_3",o,o],[0,39,"Digit4",25,"4",52,"VK_4",o,o],[0,40,"Digit5",26,"5",53,"VK_5",o,o],[0,41,"Digit6",27,"6",54,"VK_6",o,o],[0,42,"Digit7",28,"7",55,"VK_7",o,o],[0,43,"Digit8",29,"8",56,"VK_8",o,o],[0,44,"Digit9",30,"9",57,"VK_9",o,o],[0,45,"Digit0",21,"0",48,"VK_0",o,o],[1,46,"Enter",3,"Enter",13,"VK_RETURN",o,o],[1,47,"Escape",9,"Escape",27,"VK_ESCAPE",o,o],[1,48,"Backspace",1,"Backspace",8,"VK_BACK",o,o],[1,49,"Tab",2,"Tab",9,"VK_TAB",o,o],[1,50,"Space",10,"Space",32,"VK_SPACE",o,o],[0,51,"Minus",88,"-",189,"VK_OEM_MINUS","-","OEM_MINUS"],[0,52,"Equal",86,"=",187,"VK_OEM_PLUS","=","OEM_PLUS"],[0,53,"BracketLeft",92,"[",219,"VK_OEM_4","[","OEM_4"],[0,54,"BracketRight",94,"]",221,"VK_OEM_6","]","OEM_6"],[0,55,"Backslash",93,"\\",220,"VK_OEM_5","\\","OEM_5"],[0,56,"IntlHash",0,o,0,o,o,o],[0,57,"Semicolon",85,";",186,"VK_OEM_1",";","OEM_1"],[0,58,"Quote",95,"'",222,"VK_OEM_7","'","OEM_7"],[0,59,"Backquote",91,"`",192,"VK_OEM_3","`","OEM_3"],[0,60,"Comma",87,",",188,"VK_OEM_COMMA",",","OEM_COMMA"],[0,61,"Period",89,".",190,"VK_OEM_PERIOD",".","OEM_PERIOD"],[0,62,"Slash",90,"/",191,"VK_OEM_2","/","OEM_2"],[1,63,"CapsLock",8,"CapsLock",20,"VK_CAPITAL",o,o],[1,64,"F1",59,"F1",112,"VK_F1",o,o],[1,65,"F2",60,"F2",113,"VK_F2",o,o],[1,66,"F3",61,"F3",114,"VK_F3",o,o],[1,67,"F4",62,"F4",115,"VK_F4",o,o],[1,68,"F5",63,"F5",116,"VK_F5",o,o],[1,69,"F6",64,"F6",117,"VK_F6",o,o],[1,70,"F7",65,"F7",118,"VK_F7",o,o],[1,71,"F8",66,"F8",119,"VK_F8",o,o],[1,72,"F9",67,"F9",120,"VK_F9",o,o],[1,73,"F10",68,"F10",121,"VK_F10",o,o],[1,74,"F11",69,"F11",122,"VK_F11",o,o],[1,75,"F12",70,"F12",123,"VK_F12",o,o],[1,76,"PrintScreen",0,o,0,o,o,o],[1,77,"ScrollLock",84,"ScrollLock",145,"VK_SCROLL",o,o],[1,78,"Pause",7,"PauseBreak",19,"VK_PAUSE",o,o],[1,79,"Insert",19,"Insert",45,"VK_INSERT",o,o],[1,80,"Home",14,"Home",36,"VK_HOME",o,o],[1,81,"PageUp",11,"PageUp",33,"VK_PRIOR",o,o],[1,82,"Delete",20,"Delete",46,"VK_DELETE",o,o],[1,83,"End",13,"End",35,"VK_END",o,o],[1,84,"PageDown",12,"PageDown",34,"VK_NEXT",o,o],[1,85,"ArrowRight",17,"RightArrow",39,"VK_RIGHT","Right",o],[1,86,"ArrowLeft",15,"LeftArrow",37,"VK_LEFT","Left",o],[1,87,"ArrowDown",18,"DownArrow",40,"VK_DOWN","Down",o],[1,88,"ArrowUp",16,"UpArrow",38,"VK_UP","Up",o],[1,89,"NumLock",83,"NumLock",144,"VK_NUMLOCK",o,o],[1,90,"NumpadDivide",113,"NumPad_Divide",111,"VK_DIVIDE",o,o],[1,91,"NumpadMultiply",108,"NumPad_Multiply",106,"VK_MULTIPLY",o,o],[1,92,"NumpadSubtract",111,"NumPad_Subtract",109,"VK_SUBTRACT",o,o],[1,93,"NumpadAdd",109,"NumPad_Add",107,"VK_ADD",o,o],[1,94,"NumpadEnter",3,o,0,o,o,o],[1,95,"Numpad1",99,"NumPad1",97,"VK_NUMPAD1",o,o],[1,96,"Numpad2",100,"NumPad2",98,"VK_NUMPAD2",o,o],[1,97,"Numpad3",101,"NumPad3",99,"VK_NUMPAD3",o,o],[1,98,"Numpad4",102,"NumPad4",100,"VK_NUMPAD4",o,o],[1,99,"Numpad5",103,"NumPad5",101,"VK_NUMPAD5",o,o],[1,100,"Numpad6",104,"NumPad6",102,"VK_NUMPAD6",o,o],[1,101,"Numpad7",105,"NumPad7",103,"VK_NUMPAD7",o,o],[1,102,"Numpad8",106,"NumPad8",104,"VK_NUMPAD8",o,o],[1,103,"Numpad9",107,"NumPad9",105,"VK_NUMPAD9",o,o],[1,104,"Numpad0",98,"NumPad0",96,"VK_NUMPAD0",o,o],[1,105,"NumpadDecimal",112,"NumPad_Decimal",110,"VK_DECIMAL",o,o],[0,106,"IntlBackslash",97,"OEM_102",226,"VK_OEM_102",o,o],[1,107,"ContextMenu",58,"ContextMenu",93,o,o,o],[1,108,"Power",0,o,0,o,o,o],[1,109,"NumpadEqual",0,o,0,o,o,o],[1,110,"F13",71,"F13",124,"VK_F13",o,o],[1,111,"F14",72,"F14",125,"VK_F14",o,o],[1,112,"F15",73,"F15",126,"VK_F15",o,o],[1,113,"F16",74,"F16",127,"VK_F16",o,o],[1,114,"F17",75,"F17",128,"VK_F17",o,o],[1,115,"F18",76,"F18",129,"VK_F18",o,o],[1,116,"F19",77,"F19",130,"VK_F19",o,o],[1,117,"F20",78,"F20",131,"VK_F20",o,o],[1,118,"F21",79,"F21",132,"VK_F21",o,o],[1,119,"F22",80,"F22",133,"VK_F22",o,o],[1,120,"F23",81,"F23",134,"VK_F23",o,o],[1,121,"F24",82,"F24",135,"VK_F24",o,o],[1,122,"Open",0,o,0,o,o,o],[1,123,"Help",0,o,0,o,o,o],[1,124,"Select",0,o,0,o,o,o],[1,125,"Again",0,o,0,o,o,o],[1,126,"Undo",0,o,0,o,o,o],[1,127,"Cut",0,o,0,o,o,o],[1,128,"Copy",0,o,0,o,o,o],[1,129,"Paste",0,o,0,o,o,o],[1,130,"Find",0,o,0,o,o,o],[1,131,"AudioVolumeMute",117,"AudioVolumeMute",173,"VK_VOLUME_MUTE",o,o],[1,132,"AudioVolumeUp",118,"AudioVolumeUp",175,"VK_VOLUME_UP",o,o],[1,133,"AudioVolumeDown",119,"AudioVolumeDown",174,"VK_VOLUME_DOWN",o,o],[1,134,"NumpadComma",110,"NumPad_Separator",108,"VK_SEPARATOR",o,o],[0,135,"IntlRo",115,"ABNT_C1",193,"VK_ABNT_C1",o,o],[1,136,"KanaMode",0,o,0,o,o,o],[0,137,"IntlYen",0,o,0,o,o,o],[1,138,"Convert",0,o,0,o,o,o],[1,139,"NonConvert",0,o,0,o,o,o],[1,140,"Lang1",0,o,0,o,o,o],[1,141,"Lang2",0,o,0,o,o,o],[1,142,"Lang3",0,o,0,o,o,o],[1,143,"Lang4",0,o,0,o,o,o],[1,144,"Lang5",0,o,0,o,o,o],[1,145,"Abort",0,o,0,o,o,o],[1,146,"Props",0,o,0,o,o,o],[1,147,"NumpadParenLeft",0,o,0,o,o,o],[1,148,"NumpadParenRight",0,o,0,o,o,o],[1,149,"NumpadBackspace",0,o,0,o,o,o],[1,150,"NumpadMemoryStore",0,o,0,o,o,o],[1,151,"NumpadMemoryRecall",0,o,0,o,o,o],[1,152,"NumpadMemoryClear",0,o,0,o,o,o],[1,153,"NumpadMemoryAdd",0,o,0,o,o,o],[1,154,"NumpadMemorySubtract",0,o,0,o,o,o],[1,155,"NumpadClear",131,"Clear",12,"VK_CLEAR",o,o],[1,156,"NumpadClearEntry",0,o,0,o,o,o],[1,0,o,5,"Ctrl",17,"VK_CONTROL",o,o],[1,0,o,4,"Shift",16,"VK_SHIFT",o,o],[1,0,o,6,"Alt",18,"VK_MENU",o,o],[1,0,o,57,"Meta",91,"VK_COMMAND",o,o],[1,157,"ControlLeft",5,o,0,"VK_LCONTROL",o,o],[1,158,"ShiftLeft",4,o,0,"VK_LSHIFT",o,o],[1,159,"AltLeft",6,o,0,"VK_LMENU",o,o],[1,160,"MetaLeft",57,o,0,"VK_LWIN",o,o],[1,161,"ControlRight",5,o,0,"VK_RCONTROL",o,o],[1,162,"ShiftRight",4,o,0,"VK_RSHIFT",o,o],[1,163,"AltRight",6,o,0,"VK_RMENU",o,o],[1,164,"MetaRight",57,o,0,"VK_RWIN",o,o],[1,165,"BrightnessUp",0,o,0,o,o,o],[1,166,"BrightnessDown",0,o,0,o,o,o],[1,167,"MediaPlay",0,o,0,o,o,o],[1,168,"MediaRecord",0,o,0,o,o,o],[1,169,"MediaFastForward",0,o,0,o,o,o],[1,170,"MediaRewind",0,o,0,o,o,o],[1,171,"MediaTrackNext",124,"MediaTrackNext",176,"VK_MEDIA_NEXT_TRACK",o,o],[1,172,"MediaTrackPrevious",125,"MediaTrackPrevious",177,"VK_MEDIA_PREV_TRACK",o,o],[1,173,"MediaStop",126,"MediaStop",178,"VK_MEDIA_STOP",o,o],[1,174,"Eject",0,o,0,o,o,o],[1,175,"MediaPlayPause",127,"MediaPlayPause",179,"VK_MEDIA_PLAY_PAUSE",o,o],[1,176,"MediaSelect",128,"LaunchMediaPlayer",181,"VK_MEDIA_LAUNCH_MEDIA_SELECT",o,o],[1,177,"LaunchMail",129,"LaunchMail",180,"VK_MEDIA_LAUNCH_MAIL",o,o],[1,178,"LaunchApp2",130,"LaunchApp2",183,"VK_MEDIA_LAUNCH_APP2",o,o],[1,179,"LaunchApp1",0,o,0,"VK_MEDIA_LAUNCH_APP1",o,o],[1,180,"SelectTask",0,o,0,o,o,o],[1,181,"LaunchScreenSaver",0,o,0,o,o,o],[1,182,"BrowserSearch",120,"BrowserSearch",170,"VK_BROWSER_SEARCH",o,o],[1,183,"BrowserHome",121,"BrowserHome",172,"VK_BROWSER_HOME",o,o],[1,184,"BrowserBack",122,"BrowserBack",166,"VK_BROWSER_BACK",o,o],[1,185,"BrowserForward",123,"BrowserForward",167,"VK_BROWSER_FORWARD",o,o],[1,186,"BrowserStop",0,o,0,"VK_BROWSER_STOP",o,o],[1,187,"BrowserRefresh",0,o,0,"VK_BROWSER_REFRESH",o,o],[1,188,"BrowserFavorites",0,o,0,"VK_BROWSER_FAVORITES",o,o],[1,189,"ZoomToggle",0,o,0,o,o,o],[1,190,"MailReply",0,o,0,o,o,o],[1,191,"MailForward",0,o,0,o,o,o],[1,192,"MailSend",0,o,0,o,o,o],[1,0,o,114,"KeyInComposition",229,o,o,o],[1,0,o,116,"ABNT_C2",194,"VK_ABNT_C2",o,o],[1,0,o,96,"OEM_8",223,"VK_OEM_8",o,o],[1,0,o,0,o,0,"VK_KANA",o,o],[1,0,o,0,o,0,"VK_HANGUL",o,o],[1,0,o,0,o,0,"VK_JUNJA",o,o],[1,0,o,0,o,0,"VK_FINAL",o,o],[1,0,o,0,o,0,"VK_HANJA",o,o],[1,0,o,0,o,0,"VK_KANJI",o,o],[1,0,o,0,o,0,"VK_CONVERT",o,o],[1,0,o,0,o,0,"VK_NONCONVERT",o,o],[1,0,o,0,o,0,"VK_ACCEPT",o,o],[1,0,o,0,o,0,"VK_MODECHANGE",o,o],[1,0,o,0,o,0,"VK_SELECT",o,o],[1,0,o,0,o,0,"VK_PRINT",o,o],[1,0,o,0,o,0,"VK_EXECUTE",o,o],[1,0,o,0,o,0,"VK_SNAPSHOT",o,o],[1,0,o,0,o,0,"VK_HELP",o,o],[1,0,o,0,o,0,"VK_APPS",o,o],[1,0,o,0,o,0,"VK_PROCESSKEY",o,o],[1,0,o,0,o,0,"VK_PACKET",o,o],[1,0,o,0,o,0,"VK_DBE_SBCSCHAR",o,o],[1,0,o,0,o,0,"VK_DBE_DBCSCHAR",o,o],[1,0,o,0,o,0,"VK_ATTN",o,o],[1,0,o,0,o,0,"VK_CRSEL",o,o],[1,0,o,0,o,0,"VK_EXSEL",o,o],[1,0,o,0,o,0,"VK_EREOF",o,o],[1,0,o,0,o,0,"VK_PLAY",o,o],[1,0,o,0,o,0,"VK_ZOOM",o,o],[1,0,o,0,o,0,"VK_NONAME",o,o],[1,0,o,0,o,0,"VK_PA1",o,o],[1,0,o,0,o,0,"VK_OEM_CLEAR",o,o]],t=[],i=[];for(const n of e){const[r,s,a,l,d,c,u,g,f]=n;if(i[s]||(i[s]=!0,scanCodeStrToInt[a]=s,scanCodeLowerCaseStrToInt[a.toLowerCase()]=s,r&&(IMMUTABLE_CODE_TO_KEY_CODE[s]=l)),!t[l]){if(t[l]=!0,!d)throw new Error(`String representation missing for key code ${l} around scan code ${a}`);uiMap.define(l,d),userSettingsUSMap.define(l,g||d),userSettingsGeneralMap.define(l,f||g||d)}c&&(EVENT_KEY_CODE_MAP[c]=l)}})();var KeyCodeUtils;(function(o){function e(a){return uiMap.keyCodeToStr(a)}o.toString=e;function t(a){return uiMap.strToKeyCode(a)}o.fromString=t;function i(a){return userSettingsUSMap.keyCodeToStr(a)}o.toUserSettingsUS=i;function n(a){return userSettingsGeneralMap.keyCodeToStr(a)}o.toUserSettingsGeneral=n;function r(a){return userSettingsUSMap.strToKeyCode(a)||userSettingsGeneralMap.strToKeyCode(a)}o.fromUserSettings=r;function s(a){if(a>=98&&a<=113)return null;switch(a){case 16:return"Up";case 18:return"Down";case 15:return"Left";case 17:return"Right"}return uiMap.keyCodeToStr(a)}o.toElectronAccelerator=s})(KeyCodeUtils||(KeyCodeUtils={}));function KeyChord(o,e){const t=(e&65535)<<16>>>0;return(o|t)>>>0}var define_process_env_default={};let safeProcess;if(typeof globals.vscode<"u"&&typeof globals.vscode.process<"u"){const o=globals.vscode.process;safeProcess={get platform(){return o.platform},get arch(){return o.arch},get env(){return o.env},cwd(){return o.cwd()}}}else typeof process<"u"?safeProcess={get platform(){return process.platform},get arch(){return process.arch},get env(){return define_process_env_default},cwd(){return define_process_env_default.VSCODE_CWD||process.cwd()}}:safeProcess={get platform(){return isWindows?"win32":isMacintosh?"darwin":"linux"},get arch(){},get env(){return{}},cwd(){return"/"}};const cwd=safeProcess.cwd,env=safeProcess.env,platform=safeProcess.platform,CHAR_UPPERCASE_A=65,CHAR_LOWERCASE_A=97,CHAR_UPPERCASE_Z=90,CHAR_LOWERCASE_Z=122,CHAR_DOT=46,CHAR_FORWARD_SLASH=47,CHAR_BACKWARD_SLASH=92,CHAR_COLON=58,CHAR_QUESTION_MARK=63;class ErrorInvalidArgType extends Error{constructor(e,t,i){let n;typeof t=="string"&&t.indexOf("not ")===0?(n="must not be",t=t.replace(/^not /,"")):n="must be";const r=e.indexOf(".")!==-1?"property":"argument";let s=`The "${e}" ${r} ${n} of type ${t}`;s+=`. Received type ${typeof i}`,super(s),this.code="ERR_INVALID_ARG_TYPE"}}function validateObject(o,e){if(o===null||typeof o!="object")throw new ErrorInvalidArgType(e,"Object",o)}function validateString(o,e){if(typeof o!="string")throw new ErrorInvalidArgType(e,"string",o)}const platformIsWin32=platform==="win32";function isPathSeparator$1(o){return o===CHAR_FORWARD_SLASH||o===CHAR_BACKWARD_SLASH}function isPosixPathSeparator(o){return o===CHAR_FORWARD_SLASH}function isWindowsDeviceRoot(o){return o>=CHAR_UPPERCASE_A&&o<=CHAR_UPPERCASE_Z||o>=CHAR_LOWERCASE_A&&o<=CHAR_LOWERCASE_Z}function normalizeString(o,e,t,i){let n="",r=0,s=-1,a=0,l=0;for(let d=0;d<=o.length;++d){if(d<o.length)l=o.charCodeAt(d);else{if(i(l))break;l=CHAR_FORWARD_SLASH}if(i(l)){if(!(s===d-1||a===1))if(a===2){if(n.length<2||r!==2||n.charCodeAt(n.length-1)!==CHAR_DOT||n.charCodeAt(n.length-2)!==CHAR_DOT){if(n.length>2){const c=n.lastIndexOf(t);c===-1?(n="",r=0):(n=n.slice(0,c),r=n.length-1-n.lastIndexOf(t)),s=d,a=0;continue}else if(n.length!==0){n="",r=0,s=d,a=0;continue}}e&&(n+=n.length>0?`${t}..`:"..",r=2)}else n.length>0?n+=`${t}${o.slice(s+1,d)}`:n=o.slice(s+1,d),r=d-s-1;s=d,a=0}else l===CHAR_DOT&&a!==-1?++a:a=-1}return n}function _format(o,e){validateObject(e,"pathObject");const t=e.dir||e.root,i=e.base||`${e.name||""}${e.ext||""}`;return t?t===e.root?`${t}${i}`:`${t}${o}${i}`:i}const win32={resolve(...o){let e="",t="",i=!1;for(let n=o.length-1;n>=-1;n--){let r;if(n>=0){if(r=o[n],validateString(r,"path"),r.length===0)continue}else e.length===0?r=cwd():(r=env[`=${e}`]||cwd(),(r===void 0||r.slice(0,2).toLowerCase()!==e.toLowerCase()&&r.charCodeAt(2)===CHAR_BACKWARD_SLASH)&&(r=`${e}\\`));const s=r.length;let a=0,l="",d=!1;const c=r.charCodeAt(0);if(s===1)isPathSeparator$1(c)&&(a=1,d=!0);else if(isPathSeparator$1(c))if(d=!0,isPathSeparator$1(r.charCodeAt(1))){let u=2,g=u;for(;u<s&&!isPathSeparator$1(r.charCodeAt(u));)u++;if(u<s&&u!==g){const f=r.slice(g,u);for(g=u;u<s&&isPathSeparator$1(r.charCodeAt(u));)u++;if(u<s&&u!==g){for(g=u;u<s&&!isPathSeparator$1(r.charCodeAt(u));)u++;(u===s||u!==g)&&(l=`\\\\${f}\\${r.slice(g,u)}`,a=u)}}}else a=1;else isWindowsDeviceRoot(c)&&r.charCodeAt(1)===CHAR_COLON&&(l=r.slice(0,2),a=2,s>2&&isPathSeparator$1(r.charCodeAt(2))&&(d=!0,a=3));if(l.length>0)if(e.length>0){if(l.toLowerCase()!==e.toLowerCase())continue}else e=l;if(i){if(e.length>0)break}else if(t=`${r.slice(a)}\\${t}`,i=d,d&&e.length>0)break}return t=normalizeString(t,!i,"\\",isPathSeparator$1),i?`${e}\\${t}`:`${e}${t}`||"."},normalize(o){validateString(o,"path");const e=o.length;if(e===0)return".";let t=0,i,n=!1;const r=o.charCodeAt(0);if(e===1)return isPosixPathSeparator(r)?"\\":o;if(isPathSeparator$1(r))if(n=!0,isPathSeparator$1(o.charCodeAt(1))){let a=2,l=a;for(;a<e&&!isPathSeparator$1(o.charCodeAt(a));)a++;if(a<e&&a!==l){const d=o.slice(l,a);for(l=a;a<e&&isPathSeparator$1(o.charCodeAt(a));)a++;if(a<e&&a!==l){for(l=a;a<e&&!isPathSeparator$1(o.charCodeAt(a));)a++;if(a===e)return`\\\\${d}\\${o.slice(l)}\\`;a!==l&&(i=`\\\\${d}\\${o.slice(l,a)}`,t=a)}}}else t=1;else isWindowsDeviceRoot(r)&&o.charCodeAt(1)===CHAR_COLON&&(i=o.slice(0,2),t=2,e>2&&isPathSeparator$1(o.charCodeAt(2))&&(n=!0,t=3));let s=t<e?normalizeString(o.slice(t),!n,"\\",isPathSeparator$1):"";return s.length===0&&!n&&(s="."),s.length>0&&isPathSeparator$1(o.charCodeAt(e-1))&&(s+="\\"),i===void 0?n?`\\${s}`:s:n?`${i}\\${s}`:`${i}${s}`},isAbsolute(o){validateString(o,"path");const e=o.length;if(e===0)return!1;const t=o.charCodeAt(0);return isPathSeparator$1(t)||e>2&&isWindowsDeviceRoot(t)&&o.charCodeAt(1)===CHAR_COLON&&isPathSeparator$1(o.charCodeAt(2))},join(...o){if(o.length===0)return".";let e,t;for(let r=0;r<o.length;++r){const s=o[r];validateString(s,"path"),s.length>0&&(e===void 0?e=t=s:e+=`\\${s}`)}if(e===void 0)return".";let i=!0,n=0;if(typeof t=="string"&&isPathSeparator$1(t.charCodeAt(0))){++n;const r=t.length;r>1&&isPathSeparator$1(t.charCodeAt(1))&&(++n,r>2&&(isPathSeparator$1(t.charCodeAt(2))?++n:i=!1))}if(i){for(;n<e.length&&isPathSeparator$1(e.charCodeAt(n));)n++;n>=2&&(e=`\\${e.slice(n)}`)}return win32.normalize(e)},relative(o,e){if(validateString(o,"from"),validateString(e,"to"),o===e)return"";const t=win32.resolve(o),i=win32.resolve(e);if(t===i||(o=t.toLowerCase(),e=i.toLowerCase(),o===e))return"";let n=0;for(;n<o.length&&o.charCodeAt(n)===CHAR_BACKWARD_SLASH;)n++;let r=o.length;for(;r-1>n&&o.charCodeAt(r-1)===CHAR_BACKWARD_SLASH;)r--;const s=r-n;let a=0;for(;a<e.length&&e.charCodeAt(a)===CHAR_BACKWARD_SLASH;)a++;let l=e.length;for(;l-1>a&&e.charCodeAt(l-1)===CHAR_BACKWARD_SLASH;)l--;const d=l-a,c=s<d?s:d;let u=-1,g=0;for(;g<c;g++){const p=o.charCodeAt(n+g);if(p!==e.charCodeAt(a+g))break;p===CHAR_BACKWARD_SLASH&&(u=g)}if(g!==c){if(u===-1)return i}else{if(d>c){if(e.charCodeAt(a+g)===CHAR_BACKWARD_SLASH)return i.slice(a+g+1);if(g===2)return i.slice(a+g)}s>c&&(o.charCodeAt(n+g)===CHAR_BACKWARD_SLASH?u=g:g===2&&(u=3)),u===-1&&(u=0)}let f="";for(g=n+u+1;g<=r;++g)(g===r||o.charCodeAt(g)===CHAR_BACKWARD_SLASH)&&(f+=f.length===0?"..":"\\..");return a+=u,f.length>0?`${f}${i.slice(a,l)}`:(i.charCodeAt(a)===CHAR_BACKWARD_SLASH&&++a,i.slice(a,l))},toNamespacedPath(o){if(typeof o!="string"||o.length===0)return o;const e=win32.resolve(o);if(e.length<=2)return o;if(e.charCodeAt(0)===CHAR_BACKWARD_SLASH){if(e.charCodeAt(1)===CHAR_BACKWARD_SLASH){const t=e.charCodeAt(2);if(t!==CHAR_QUESTION_MARK&&t!==CHAR_DOT)return`\\\\?\\UNC\\${e.slice(2)}`}}else if(isWindowsDeviceRoot(e.charCodeAt(0))&&e.charCodeAt(1)===CHAR_COLON&&e.charCodeAt(2)===CHAR_BACKWARD_SLASH)return`\\\\?\\${e}`;return o},dirname(o){validateString(o,"path");const e=o.length;if(e===0)return".";let t=-1,i=0;const n=o.charCodeAt(0);if(e===1)return isPathSeparator$1(n)?o:".";if(isPathSeparator$1(n)){if(t=i=1,isPathSeparator$1(o.charCodeAt(1))){let a=2,l=a;for(;a<e&&!isPathSeparator$1(o.charCodeAt(a));)a++;if(a<e&&a!==l){for(l=a;a<e&&isPathSeparator$1(o.charCodeAt(a));)a++;if(a<e&&a!==l){for(l=a;a<e&&!isPathSeparator$1(o.charCodeAt(a));)a++;if(a===e)return o;a!==l&&(t=i=a+1)}}}}else isWindowsDeviceRoot(n)&&o.charCodeAt(1)===CHAR_COLON&&(t=e>2&&isPathSeparator$1(o.charCodeAt(2))?3:2,i=t);let r=-1,s=!0;for(let a=e-1;a>=i;--a)if(isPathSeparator$1(o.charCodeAt(a))){if(!s){r=a;break}}else s=!1;if(r===-1){if(t===-1)return".";r=t}return o.slice(0,r)},basename(o,e){e!==void 0&&validateString(e,"ext"),validateString(o,"path");let t=0,i=-1,n=!0,r;if(o.length>=2&&isWindowsDeviceRoot(o.charCodeAt(0))&&o.charCodeAt(1)===CHAR_COLON&&(t=2),e!==void 0&&e.length>0&&e.length<=o.length){if(e===o)return"";let s=e.length-1,a=-1;for(r=o.length-1;r>=t;--r){const l=o.charCodeAt(r);if(isPathSeparator$1(l)){if(!n){t=r+1;break}}else a===-1&&(n=!1,a=r+1),s>=0&&(l===e.charCodeAt(s)?--s===-1&&(i=r):(s=-1,i=a))}return t===i?i=a:i===-1&&(i=o.length),o.slice(t,i)}for(r=o.length-1;r>=t;--r)if(isPathSeparator$1(o.charCodeAt(r))){if(!n){t=r+1;break}}else i===-1&&(n=!1,i=r+1);return i===-1?"":o.slice(t,i)},extname(o){validateString(o,"path");let e=0,t=-1,i=0,n=-1,r=!0,s=0;o.length>=2&&o.charCodeAt(1)===CHAR_COLON&&isWindowsDeviceRoot(o.charCodeAt(0))&&(e=i=2);for(let a=o.length-1;a>=e;--a){const l=o.charCodeAt(a);if(isPathSeparator$1(l)){if(!r){i=a+1;break}continue}n===-1&&(r=!1,n=a+1),l===CHAR_DOT?t===-1?t=a:s!==1&&(s=1):t!==-1&&(s=-1)}return t===-1||n===-1||s===0||s===1&&t===n-1&&t===i+1?"":o.slice(t,n)},format:_format.bind(null,"\\"),parse(o){validateString(o,"path");const e={root:"",dir:"",base:"",ext:"",name:""};if(o.length===0)return e;const t=o.length;let i=0,n=o.charCodeAt(0);if(t===1)return isPathSeparator$1(n)?(e.root=e.dir=o,e):(e.base=e.name=o,e);if(isPathSeparator$1(n)){if(i=1,isPathSeparator$1(o.charCodeAt(1))){let u=2,g=u;for(;u<t&&!isPathSeparator$1(o.charCodeAt(u));)u++;if(u<t&&u!==g){for(g=u;u<t&&isPathSeparator$1(o.charCodeAt(u));)u++;if(u<t&&u!==g){for(g=u;u<t&&!isPathSeparator$1(o.charCodeAt(u));)u++;u===t?i=u:u!==g&&(i=u+1)}}}}else if(isWindowsDeviceRoot(n)&&o.charCodeAt(1)===CHAR_COLON){if(t<=2)return e.root=e.dir=o,e;if(i=2,isPathSeparator$1(o.charCodeAt(2))){if(t===3)return e.root=e.dir=o,e;i=3}}i>0&&(e.root=o.slice(0,i));let r=-1,s=i,a=-1,l=!0,d=o.length-1,c=0;for(;d>=i;--d){if(n=o.charCodeAt(d),isPathSeparator$1(n)){if(!l){s=d+1;break}continue}a===-1&&(l=!1,a=d+1),n===CHAR_DOT?r===-1?r=d:c!==1&&(c=1):r!==-1&&(c=-1)}return a!==-1&&(r===-1||c===0||c===1&&r===a-1&&r===s+1?e.base=e.name=o.slice(s,a):(e.name=o.slice(s,r),e.base=o.slice(s,a),e.ext=o.slice(r,a))),s>0&&s!==i?e.dir=o.slice(0,s-1):e.dir=e.root,e},sep:"\\",delimiter:";",win32:null,posix:null},posixCwd=(()=>{if(platformIsWin32){const o=/\\/g;return()=>{const e=cwd().replace(o,"/");return e.slice(e.indexOf("/"))}}return()=>cwd()})(),posix={resolve(...o){let e="",t=!1;for(let i=o.length-1;i>=-1&&!t;i--){const n=i>=0?o[i]:posixCwd();validateString(n,"path"),n.length!==0&&(e=`${n}/${e}`,t=n.charCodeAt(0)===CHAR_FORWARD_SLASH)}return e=normalizeString(e,!t,"/",isPosixPathSeparator),t?`/${e}`:e.length>0?e:"."},normalize(o){if(validateString(o,"path"),o.length===0)return".";const e=o.charCodeAt(0)===CHAR_FORWARD_SLASH,t=o.charCodeAt(o.length-1)===CHAR_FORWARD_SLASH;return o=normalizeString(o,!e,"/",isPosixPathSeparator),o.length===0?e?"/":t?"./":".":(t&&(o+="/"),e?`/${o}`:o)},isAbsolute(o){return validateString(o,"path"),o.length>0&&o.charCodeAt(0)===CHAR_FORWARD_SLASH},join(...o){if(o.length===0)return".";let e;for(let t=0;t<o.length;++t){const i=o[t];validateString(i,"path"),i.length>0&&(e===void 0?e=i:e+=`/${i}`)}return e===void 0?".":posix.normalize(e)},relative(o,e){if(validateString(o,"from"),validateString(e,"to"),o===e||(o=posix.resolve(o),e=posix.resolve(e),o===e))return"";const t=1,i=o.length,n=i-t,r=1,s=e.length-r,a=n<s?n:s;let l=-1,d=0;for(;d<a;d++){const u=o.charCodeAt(t+d);if(u!==e.charCodeAt(r+d))break;u===CHAR_FORWARD_SLASH&&(l=d)}if(d===a)if(s>a){if(e.charCodeAt(r+d)===CHAR_FORWARD_SLASH)return e.slice(r+d+1);if(d===0)return e.slice(r+d)}else n>a&&(o.charCodeAt(t+d)===CHAR_FORWARD_SLASH?l=d:d===0&&(l=0));let c="";for(d=t+l+1;d<=i;++d)(d===i||o.charCodeAt(d)===CHAR_FORWARD_SLASH)&&(c+=c.length===0?"..":"/..");return`${c}${e.slice(r+l)}`},toNamespacedPath(o){return o},dirname(o){if(validateString(o,"path"),o.length===0)return".";const e=o.charCodeAt(0)===CHAR_FORWARD_SLASH;let t=-1,i=!0;for(let n=o.length-1;n>=1;--n)if(o.charCodeAt(n)===CHAR_FORWARD_SLASH){if(!i){t=n;break}}else i=!1;return t===-1?e?"/":".":e&&t===1?"//":o.slice(0,t)},basename(o,e){e!==void 0&&validateString(e,"ext"),validateString(o,"path");let t=0,i=-1,n=!0,r;if(e!==void 0&&e.length>0&&e.length<=o.length){if(e===o)return"";let s=e.length-1,a=-1;for(r=o.length-1;r>=0;--r){const l=o.charCodeAt(r);if(l===CHAR_FORWARD_SLASH){if(!n){t=r+1;break}}else a===-1&&(n=!1,a=r+1),s>=0&&(l===e.charCodeAt(s)?--s===-1&&(i=r):(s=-1,i=a))}return t===i?i=a:i===-1&&(i=o.length),o.slice(t,i)}for(r=o.length-1;r>=0;--r)if(o.charCodeAt(r)===CHAR_FORWARD_SLASH){if(!n){t=r+1;break}}else i===-1&&(n=!1,i=r+1);return i===-1?"":o.slice(t,i)},extname(o){validateString(o,"path");let e=-1,t=0,i=-1,n=!0,r=0;for(let s=o.length-1;s>=0;--s){const a=o.charCodeAt(s);if(a===CHAR_FORWARD_SLASH){if(!n){t=s+1;break}continue}i===-1&&(n=!1,i=s+1),a===CHAR_DOT?e===-1?e=s:r!==1&&(r=1):e!==-1&&(r=-1)}return e===-1||i===-1||r===0||r===1&&e===i-1&&e===t+1?"":o.slice(e,i)},format:_format.bind(null,"/"),parse(o){validateString(o,"path");const e={root:"",dir:"",base:"",ext:"",name:""};if(o.length===0)return e;const t=o.charCodeAt(0)===CHAR_FORWARD_SLASH;let i;t?(e.root="/",i=1):i=0;let n=-1,r=0,s=-1,a=!0,l=o.length-1,d=0;for(;l>=i;--l){const c=o.charCodeAt(l);if(c===CHAR_FORWARD_SLASH){if(!a){r=l+1;break}continue}s===-1&&(a=!1,s=l+1),c===CHAR_DOT?n===-1?n=l:d!==1&&(d=1):n!==-1&&(d=-1)}if(s!==-1){const c=r===0&&t?1:r;n===-1||d===0||d===1&&n===s-1&&n===r+1?e.base=e.name=o.slice(c,s):(e.name=o.slice(c,n),e.base=o.slice(c,s),e.ext=o.slice(n,s))}return r>0?e.dir=o.slice(0,r-1):t&&(e.dir="/"),e},sep:"/",delimiter:":",win32:null,posix:null};posix.win32=win32.win32=win32;posix.posix=win32.posix=posix;const normalize=platformIsWin32?win32.normalize:posix.normalize,resolve=platformIsWin32?win32.resolve:posix.resolve,relative=platformIsWin32?win32.relative:posix.relative,dirname$1=platformIsWin32?win32.dirname:posix.dirname,basename$1=platformIsWin32?win32.basename:posix.basename,extname$1=platformIsWin32?win32.extname:posix.extname,sep=platformIsWin32?win32.sep:posix.sep,_schemePattern=/^\w[\w\d+.-]*$/,_singleSlashStart=/^\//,_doubleSlashStart=/^\/\//;function _validateUri(o,e){if(!o.scheme&&e)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${o.authority}", path: "${o.path}", query: "${o.query}", fragment: "${o.fragment}"}`);if(o.scheme&&!_schemePattern.test(o.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(o.path){if(o.authority){if(!_singleSlashStart.test(o.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(_doubleSlashStart.test(o.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}function _schemeFix(o,e){return!o&&!e?"file":o}function _referenceResolution(o,e){switch(o){case"https":case"http":case"file":e?e[0]!==_slash&&(e=_slash+e):e=_slash;break}return e}const _empty="",_slash="/",_regexp=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class URI{static isUri(e){return e instanceof URI?!0:e?typeof e.authority=="string"&&typeof e.fragment=="string"&&typeof e.path=="string"&&typeof e.query=="string"&&typeof e.scheme=="string"&&typeof e.fsPath=="string"&&typeof e.with=="function"&&typeof e.toString=="function":!1}constructor(e,t,i,n,r,s=!1){typeof e=="object"?(this.scheme=e.scheme||_empty,this.authority=e.authority||_empty,this.path=e.path||_empty,this.query=e.query||_empty,this.fragment=e.fragment||_empty):(this.scheme=_schemeFix(e,s),this.authority=t||_empty,this.path=_referenceResolution(this.scheme,i||_empty),this.query=n||_empty,this.fragment=r||_empty,_validateUri(this,s))}get fsPath(){return uriToFsPath(this,!1)}with(e){if(!e)return this;let{scheme:t,authority:i,path:n,query:r,fragment:s}=e;return t===void 0?t=this.scheme:t===null&&(t=_empty),i===void 0?i=this.authority:i===null&&(i=_empty),n===void 0?n=this.path:n===null&&(n=_empty),r===void 0?r=this.query:r===null&&(r=_empty),s===void 0?s=this.fragment:s===null&&(s=_empty),t===this.scheme&&i===this.authority&&n===this.path&&r===this.query&&s===this.fragment?this:new Uri$1(t,i,n,r,s)}static parse(e,t=!1){const i=_regexp.exec(e);return i?new Uri$1(i[2]||_empty,percentDecode(i[4]||_empty),percentDecode(i[5]||_empty),percentDecode(i[7]||_empty),percentDecode(i[9]||_empty),t):new Uri$1(_empty,_empty,_empty,_empty,_empty)}static file(e){let t=_empty;if(isWindows&&(e=e.replace(/\\/g,_slash)),e[0]===_slash&&e[1]===_slash){const i=e.indexOf(_slash,2);i===-1?(t=e.substring(2),e=_slash):(t=e.substring(2,i),e=e.substring(i)||_slash)}return new Uri$1("file",t,e,_empty,_empty)}static from(e,t){return new Uri$1(e.scheme,e.authority,e.path,e.query,e.fragment,t)}static joinPath(e,...t){if(!e.path)throw new Error("[UriError]: cannot call joinPath on URI without path");let i;return isWindows&&e.scheme==="file"?i=URI.file(win32.join(uriToFsPath(e,!0),...t)).path:i=posix.join(e.path,...t),e.with({path:i})}toString(e=!1){return _asFormatted(this,e)}toJSON(){return this}static revive(e){var t,i;if(e){if(e instanceof URI)return e;{const n=new Uri$1(e);return n._formatted=(t=e.external)!==null&&t!==void 0?t:null,n._fsPath=e._sep===_pathSepMarker&&(i=e.fsPath)!==null&&i!==void 0?i:null,n}}else return e}}const _pathSepMarker=isWindows?1:void 0;let Uri$1=class extends URI{constructor(){super(...arguments),this._formatted=null,this._fsPath=null}get fsPath(){return this._fsPath||(this._fsPath=uriToFsPath(this,!1)),this._fsPath}toString(e=!1){return e?_asFormatted(this,!0):(this._formatted||(this._formatted=_asFormatted(this,!1)),this._formatted)}toJSON(){const e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=_pathSepMarker),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 encodeTable={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 encodeURIComponentFast(o,e,t){let i,n=-1;for(let r=0;r<o.length;r++){const s=o.charCodeAt(r);if(s>=97&&s<=122||s>=65&&s<=90||s>=48&&s<=57||s===45||s===46||s===95||s===126||e&&s===47||t&&s===91||t&&s===93||t&&s===58)n!==-1&&(i+=encodeURIComponent(o.substring(n,r)),n=-1),i!==void 0&&(i+=o.charAt(r));else{i===void 0&&(i=o.substr(0,r));const a=encodeTable[s];a!==void 0?(n!==-1&&(i+=encodeURIComponent(o.substring(n,r)),n=-1),i+=a):n===-1&&(n=r)}}return n!==-1&&(i+=encodeURIComponent(o.substring(n))),i!==void 0?i:o}function encodeURIComponentMinimal(o){let e;for(let t=0;t<o.length;t++){const i=o.charCodeAt(t);i===35||i===63?(e===void 0&&(e=o.substr(0,t)),e+=encodeTable[i]):e!==void 0&&(e+=o[t])}return e!==void 0?e:o}function uriToFsPath(o,e){let t;return o.authority&&o.path.length>1&&o.scheme==="file"?t=`//${o.authority}${o.path}`:o.path.charCodeAt(0)===47&&(o.path.charCodeAt(1)>=65&&o.path.charCodeAt(1)<=90||o.path.charCodeAt(1)>=97&&o.path.charCodeAt(1)<=122)&&o.path.charCodeAt(2)===58?e?t=o.path.substr(1):t=o.path[1].toLowerCase()+o.path.substr(2):t=o.path,isWindows&&(t=t.replace(/\//g,"\\")),t}function _asFormatted(o,e){const t=e?encodeURIComponentMinimal:encodeURIComponentFast;let i="",{scheme:n,authority:r,path:s,query:a,fragment:l}=o;if(n&&(i+=n,i+=":"),(r||n==="file")&&(i+=_slash,i+=_slash),r){let d=r.indexOf("@");if(d!==-1){const c=r.substr(0,d);r=r.substr(d+1),d=c.lastIndexOf(":"),d===-1?i+=t(c,!1,!1):(i+=t(c.substr(0,d),!1,!1),i+=":",i+=t(c.substr(d+1),!1,!0)),i+="@"}r=r.toLowerCase(),d=r.lastIndexOf(":"),d===-1?i+=t(r,!1,!0):(i+=t(r.substr(0,d),!1,!0),i+=r.substr(d))}if(s){if(s.length>=3&&s.charCodeAt(0)===47&&s.charCodeAt(2)===58){const d=s.charCodeAt(1);d>=65&&d<=90&&(s=`/${String.fromCharCode(d+32)}:${s.substr(3)}`)}else if(s.length>=2&&s.charCodeAt(1)===58){const d=s.charCodeAt(0);d>=65&&d<=90&&(s=`${String.fromCharCode(d+32)}:${s.substr(2)}`)}i+=t(s,!0,!1)}return a&&(i+="?",i+=t(a,!1,!1)),l&&(i+="#",i+=e?l:encodeURIComponentFast(l,!1,!1)),i}function decodeURIComponentGraceful(o){try{return decodeURIComponent(o)}catch{return o.length>3?o.substr(0,3)+decodeURIComponentGraceful(o.substr(3)):o}}const _rEncodedAsHex=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function percentDecode(o){return o.match(_rEncodedAsHex)?o.replace(_rEncodedAsHex,e=>decodeURIComponentGraceful(e)):o}let Position$1=class et{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 et(e,t)}delta(e=0,t=0){return this.with(this.lineNumber+e,this.column+t)}equals(e){return et.equals(this,e)}static equals(e,t){return!e&&!t?!0:!!e&&!!t&&e.lineNumber===t.lineNumber&&e.column===t.column}isBefore(e){return et.isBefore(this,e)}static isBefore(e,t){return e.lineNumber<t.lineNumber?!0:t.lineNumber<e.lineNumber?!1:e.column<t.column}isBeforeOrEqual(e){return et.isBeforeOrEqual(this,e)}static isBeforeOrEqual(e,t){return e.lineNumber<t.lineNumber?!0:t.lineNumber<e.lineNumber?!1:e.column<=t.column}static compare(e,t){const i=e.lineNumber|0,n=t.lineNumber|0;if(i===n){const r=e.column|0,s=t.column|0;return r-s}return i-n}clone(){return new et(this.lineNumber,this.column)}toString(){return"("+this.lineNumber+","+this.column+")"}static lift(e){return new et(e.lineNumber,e.column)}static isIPosition(e){return e&&typeof e.lineNumber=="number"&&typeof e.column=="number"}},Range$2=class Ve{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 Ve.isEmpty(this)}static isEmpty(e){return e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn}containsPosition(e){return Ve.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)}static strictContainsPosition(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 Ve.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 Ve.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 Ve.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 Ve(i,n,r,s)}intersectRanges(e){return Ve.intersectRanges(this,e)}static intersectRanges(e,t){let i=e.startLineNumber,n=e.startColumn,r=e.endLineNumber,s=e.endColumn;const 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 Ve(i,n,r,s)}equalsRange(e){return Ve.equalsRange(this,e)}static equalsRange(e,t){return!e&&!t?!0:!!e&&!!t&&e.startLineNumber===t.startLineNumber&&e.startColumn===t.startColumn&&e.endLineNumber===t.endLineNumber&&e.endColumn===t.endColumn}getEndPosition(){return Ve.getEndPosition(this)}static getEndPosition(e){return new Position$1(e.endLineNumber,e.endColumn)}getStartPosition(){return Ve.getStartPosition(this)}static getStartPosition(e){return new Position$1(e.startLineNumber,e.startColumn)}toString(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"}setEndPosition(e,t){return new Ve(this.startLineNumber,this.startColumn,e,t)}setStartPosition(e,t){return new Ve(e,t,this.endLineNumber,this.endColumn)}collapseToStart(){return Ve.collapseToStart(this)}static collapseToStart(e){return new Ve(e.startLineNumber,e.startColumn,e.startLineNumber,e.startColumn)}collapseToEnd(){return Ve.collapseToEnd(this)}static collapseToEnd(e){return new Ve(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn)}delta(e){return new Ve(this.startLineNumber+e,this.startColumn,this.endLineNumber+e,this.endColumn)}static fromPositions(e,t=e){return new Ve(e.lineNumber,e.column,t.lineNumber,t.column)}static lift(e){return e?new Ve(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn):null}static isIRange(e){return e&&typeof e.startLineNumber=="number"&&typeof e.startColumn=="number"&&typeof e.endLineNumber=="number"&&typeof e.endColumn=="number"}static areIntersectingOrTouching(e,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 r=e.startLineNumber|0,s=t.startLineNumber|0;if(r===s){const a=e.startColumn|0,l=t.startColumn|0;if(a===l){const d=e.endLineNumber|0,c=t.endLineNumber|0;if(d===c){const u=e.endColumn|0,g=t.endColumn|0;return u-g}return d-c}return a-l}return r-s}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}toJSON(){return this}},Selection$1=class Xe extends Range$2{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 Xe.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 this.getDirection()===0?new Xe(this.startLineNumber,this.startColumn,e,t):new Xe(e,t,this.startLineNumber,this.startColumn)}getPosition(){return new Position$1(this.positionLineNumber,this.positionColumn)}getSelectionStart(){return new Position$1(this.selectionStartLineNumber,this.selectionStartColumn)}setStartPosition(e,t){return this.getDirection()===0?new Xe(e,t,this.endLineNumber,this.endColumn):new Xe(this.endLineNumber,this.endColumn,e,t)}static fromPositions(e,t=e){return new Xe(e.lineNumber,e.column,t.lineNumber,t.column)}static fromRange(e,t){return t===0?new Xe(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn):new Xe(e.endLineNumber,e.endColumn,e.startLineNumber,e.startColumn)}static liftSelection(e){return new Xe(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&&typeof e.selectionStartLineNumber=="number"&&typeof e.selectionStartColumn=="number"&&typeof e.positionLineNumber=="number"&&typeof e.positionColumn=="number"}static createWithDirection(e,t,i,n,r){return r===0?new Xe(e,t,i,n):new Xe(i,n,e,t)}};const _codiconFontCharacters=Object.create(null);function register$1(o,e){if(isString$1(e)){const t=_codiconFontCharacters[e];if(t===void 0)throw new Error(`${o} references an unknown codicon: ${e}`);e=t}return _codiconFontCharacters[o]=e,{id:o}}function getCodiconFontCharacters(){return _codiconFontCharacters}const Codicon={add:register$1("add",6e4),plus:register$1("plus",6e4),gistNew:register$1("gist-new",6e4),repoCreate:register$1("repo-create",6e4),lightbulb:register$1("lightbulb",60001),lightBulb:register$1("light-bulb",60001),repo:register$1("repo",60002),repoDelete:register$1("repo-delete",60002),gistFork:register$1("gist-fork",60003),repoForked:register$1("repo-forked",60003),gitPullRequest:register$1("git-pull-request",60004),gitPullRequestAbandoned:register$1("git-pull-request-abandoned",60004),recordKeys:register$1("record-keys",60005),keyboard:register$1("keyboard",60005),tag:register$1("tag",60006),tagAdd:register$1("tag-add",60006),tagRemove:register$1("tag-remove",60006),gitPullRequestLabel:register$1("git-pull-request-label",60006),person:register$1("person",60007),personFollow:register$1("person-follow",60007),personOutline:register$1("person-outline",60007),personFilled:register$1("person-filled",60007),gitBranch:register$1("git-branch",60008),gitBranchCreate:register$1("git-branch-create",60008),gitBranchDelete:register$1("git-branch-delete",60008),sourceControl:register$1("source-control",60008),mirror:register$1("mirror",60009),mirrorPublic:register$1("mirror-public",60009),star:register$1("star",60010),starAdd:register$1("star-add",60010),starDelete:register$1("star-delete",60010),starEmpty:register$1("star-empty",60010),comment:register$1("comment",60011),commentAdd:register$1("comment-add",60011),alert:register$1("alert",60012),warning:register$1("warning",60012),search:register$1("search",60013),searchSave:register$1("search-save",60013),logOut:register$1("log-out",60014),signOut:register$1("sign-out",60014),logIn:register$1("log-in",60015),signIn:register$1("sign-in",60015),eye:register$1("eye",60016),eyeUnwatch:register$1("eye-unwatch",60016),eyeWatch:register$1("eye-watch",60016),circleFilled:register$1("circle-filled",60017),primitiveDot:register$1("primitive-dot",60017),closeDirty:register$1("close-dirty",60017),debugBreakpoint:register$1("debug-breakpoint",60017),debugBreakpointDisabled:register$1("debug-breakpoint-disabled",60017),debugHint:register$1("debug-hint",60017),primitiveSquare:register$1("primitive-square",60018),edit:register$1("edit",60019),pencil:register$1("pencil",60019),info:register$1("info",60020),issueOpened:register$1("issue-opened",60020),gistPrivate:register$1("gist-private",60021),gitForkPrivate:register$1("git-fork-private",60021),lock:register$1("lock",60021),mirrorPrivate:register$1("mirror-private",60021),close:register$1("close",60022),removeClose:register$1("remove-close",60022),x:register$1("x",60022),repoSync:register$1("repo-sync",60023),sync:register$1("sync",60023),clone:register$1("clone",60024),desktopDownload:register$1("desktop-download",60024),beaker:register$1("beaker",60025),microscope:register$1("microscope",60025),vm:register$1("vm",60026),deviceDesktop:register$1("device-desktop",60026),file:register$1("file",60027),fileText:register$1("file-text",60027),more:register$1("more",60028),ellipsis:register$1("ellipsis",60028),kebabHorizontal:register$1("kebab-horizontal",60028),mailReply:register$1("mail-reply",60029),reply:register$1("reply",60029),organization:register$1("organization",60030),organizationFilled:register$1("organization-filled",60030),organizationOutline:register$1("organization-outline",60030),newFile:register$1("new-file",60031),fileAdd:register$1("file-add",60031),newFolder:register$1("new-folder",60032),fileDirectoryCreate:register$1("file-directory-create",60032),trash:register$1("trash",60033),trashcan:register$1("trashcan",60033),history:register$1("history",60034),clock:register$1("clock",60034),folder:register$1("folder",60035),fileDirectory:register$1("file-directory",60035),symbolFolder:register$1("symbol-folder",60035),logoGithub:register$1("logo-github",60036),markGithub:register$1("mark-github",60036),github:register$1("github",60036),terminal:register$1("terminal",60037),console:register$1("console",60037),repl:register$1("repl",60037),zap:register$1("zap",60038),symbolEvent:register$1("symbol-event",60038),error:register$1("error",60039),stop:register$1("stop",60039),variable:register$1("variable",60040),symbolVariable:register$1("symbol-variable",60040),array:register$1("array",60042),symbolArray:register$1("symbol-array",60042),symbolModule:register$1("symbol-module",60043),symbolPackage:register$1("symbol-package",60043),symbolNamespace:register$1("symbol-namespace",60043),symbolObject:register$1("symbol-object",60043),symbolMethod:register$1("symbol-method",60044),symbolFunction:register$1("symbol-function",60044),symbolConstructor:register$1("symbol-constructor",60044),symbolBoolean:register$1("symbol-boolean",60047),symbolNull:register$1("symbol-null",60047),symbolNumeric:register$1("symbol-numeric",60048),symbolNumber:register$1("symbol-number",60048),symbolStructure:register$1("symbol-structure",60049),symbolStruct:register$1("symbol-struct",60049),symbolParameter:register$1("symbol-parameter",60050),symbolTypeParameter:register$1("symbol-type-parameter",60050),symbolKey:register$1("symbol-key",60051),symbolText:register$1("symbol-text",60051),symbolReference:register$1("symbol-reference",60052),goToFile:register$1("go-to-file",60052),symbolEnum:register$1("symbol-enum",60053),symbolValue:register$1("symbol-value",60053),symbolRuler:register$1("symbol-ruler",60054),symbolUnit:register$1("symbol-unit",60054),activateBreakpoints:register$1("activate-breakpoints",60055),archive:register$1("archive",60056),arrowBoth:register$1("arrow-both",60057),arrowDown:register$1("arrow-down",60058),arrowLeft:register$1("arrow-left",60059),arrowRight:register$1("arrow-right",60060),arrowSmallDown:register$1("arrow-small-down",60061),arrowSmallLeft:register$1("arrow-small-left",60062),arrowSmallRight:register$1("arrow-small-right",60063),arrowSmallUp:register$1("arrow-small-up",60064),arrowUp:register$1("arrow-up",60065),bell:register$1("bell",60066),bold:register$1("bold",60067),book:register$1("book",60068),bookmark:register$1("bookmark",60069),debugBreakpointConditionalUnverified:register$1("debug-breakpoint-conditional-unverified",60070),debugBreakpointConditional:register$1("debug-breakpoint-conditional",60071),debugBreakpointConditionalDisabled:register$1("debug-breakpoint-conditional-disabled",60071),debugBreakpointDataUnverified:register$1("debug-breakpoint-data-unverified",60072),debugBreakpointData:register$1("debug-breakpoint-data",60073),debugBreakpointDataDisabled:register$1("debug-breakpoint-data-disabled",60073),debugBreakpointLogUnverified:register$1("debug-breakpoint-log-unverified",60074),debugBreakpointLog:register$1("debug-breakpoint-log",60075),debugBreakpointLogDisabled:register$1("debug-breakpoint-log-disabled",60075),briefcase:register$1("briefcase",60076),broadcast:register$1("broadcast",60077),browser:register$1("browser",60078),bug:register$1("bug",60079),calendar:register$1("calendar",60080),caseSensitive:register$1("case-sensitive",60081),check:register$1("check",60082),checklist:register$1("checklist",60083),chevronDown:register$1("chevron-down",60084),dropDownButton:register$1("drop-down-button",60084),chevronLeft:register$1("chevron-left",60085),chevronRight:register$1("chevron-right",60086),chevronUp:register$1("chevron-up",60087),chromeClose:register$1("chrome-close",60088),chromeMaximize:register$1("chrome-maximize",60089),chromeMinimize:register$1("chrome-minimize",60090),chromeRestore:register$1("chrome-restore",60091),circle:register$1("circle",60092),circleOutline:register$1("circle-outline",60092),debugBreakpointUnverified:register$1("debug-breakpoint-unverified",60092),circleSlash:register$1("circle-slash",60093),circuitBoard:register$1("circuit-board",60094),clearAll:register$1("clear-all",60095),clippy:register$1("clippy",60096),closeAll:register$1("close-all",60097),cloudDownload:register$1("cloud-download",60098),cloudUpload:register$1("cloud-upload",60099),code:register$1("code",60100),collapseAll:register$1("collapse-all",60101),colorMode:register$1("color-mode",60102),commentDiscussion:register$1("comment-discussion",60103),compareChanges:register$1("compare-changes",60157),creditCard:register$1("credit-card",60105),dash:register$1("dash",60108),dashboard:register$1("dashboard",60109),database:register$1("database",60110),debugContinue:register$1("debug-continue",60111),debugDisconnect:register$1("debug-disconnect",60112),debugPause:register$1("debug-pause",60113),debugRestart:register$1("debug-restart",60114),debugStart:register$1("debug-start",60115),debugStepInto:register$1("debug-step-into",60116),debugStepOut:register$1("debug-step-out",60117),debugStepOver:register$1("debug-step-over",60118),debugStop:register$1("debug-stop",60119),debug:register$1("debug",60120),deviceCameraVideo:register$1("device-camera-video",60121),deviceCamera:register$1("device-camera",60122),deviceMobile:register$1("device-mobile",60123),diffAdded:register$1("diff-added",60124),diffIgnored:register$1("diff-ignored",60125),diffModified:register$1("diff-modified",60126),diffRemoved:register$1("diff-removed",60127),diffRenamed:register$1("diff-renamed",60128),diff:register$1("diff",60129),discard:register$1("discard",60130),editorLayout:register$1("editor-layout",60131),emptyWindow:register$1("empty-window",60132),exclude:register$1("exclude",60133),extensions:register$1("extensions",60134),eyeClosed:register$1("eye-closed",60135),fileBinary:register$1("file-binary",60136),fileCode:register$1("file-code",60137),fileMedia:register$1("file-media",60138),filePdf:register$1("file-pdf",60139),fileSubmodule:register$1("file-submodule",60140),fileSymlinkDirectory:register$1("file-symlink-directory",60141),fileSymlinkFile:register$1("file-symlink-file",60142),fileZip:register$1("file-zip",60143),files:register$1("files",60144),filter:register$1("filter",60145),flame:register$1("flame",60146),foldDown:register$1("fold-down",60147),foldUp:register$1("fold-up",60148),fold:register$1("fold",60149),folderActive:register$1("folder-active",60150),folderOpened:register$1("folder-opened",60151),gear:register$1("gear",60152),gift:register$1("gift",60153),gistSecret:register$1("gist-secret",60154),gist:register$1("gist",60155),gitCommit:register$1("git-commit",60156),gitCompare:register$1("git-compare",60157),gitMerge:register$1("git-merge",60158),githubAction:register$1("github-action",60159),githubAlt:register$1("github-alt",60160),globe:register$1("globe",60161),grabber:register$1("grabber",60162),graph:register$1("graph",60163),gripper:register$1("gripper",60164),heart:register$1("heart",60165),home:register$1("home",60166),horizontalRule:register$1("horizontal-rule",60167),hubot:register$1("hubot",60168),inbox:register$1("inbox",60169),issueClosed:register$1("issue-closed",60324),issueReopened:register$1("issue-reopened",60171),issues:register$1("issues",60172),italic:register$1("italic",60173),jersey:register$1("jersey",60174),json:register$1("json",60175),bracket:register$1("bracket",60175),kebabVertical:register$1("kebab-vertical",60176),key:register$1("key",60177),law:register$1("law",60178),lightbulbAutofix:register$1("lightbulb-autofix",60179),linkExternal:register$1("link-external",60180),link:register$1("link",60181),listOrdered:register$1("list-ordered",60182),listUnordered:register$1("list-unordered",60183),liveShare:register$1("live-share",60184),loading:register$1("loading",60185),location:register$1("location",60186),mailRead:register$1("mail-read",60187),mail:register$1("mail",60188),markdown:register$1("markdown",60189),megaphone:register$1("megaphone",60190),mention:register$1("mention",60191),milestone:register$1("milestone",60192),gitPullRequestMilestone:register$1("git-pull-request-milestone",60192),mortarBoard:register$1("mortar-board",60193),move:register$1("move",60194),multipleWindows:register$1("multiple-windows",60195),mute:register$1("mute",60196),noNewline:register$1("no-newline",60197),note:register$1("note",60198),octoface:register$1("octoface",60199),openPreview:register$1("open-preview",60200),package:register$1("package",60201),paintcan:register$1("paintcan",60202),pin:register$1("pin",60203),play:register$1("play",60204),run:register$1("run",60204),plug:register$1("plug",60205),preserveCase:register$1("preserve-case",60206),preview:register$1("preview",60207),project:register$1("project",60208),pulse:register$1("pulse",60209),question:register$1("question",60210),quote:register$1("quote",60211),radioTower:register$1("radio-tower",60212),reactions:register$1("reactions",60213),references:register$1("references",60214),refresh:register$1("refresh",60215),regex:register$1("regex",60216),remoteExplorer:register$1("remote-explorer",60217),remote:register$1("remote",60218),remove:register$1("remove",60219),replaceAll:register$1("replace-all",60220),replace:register$1("replace",60221),repoClone:register$1("repo-clone",60222),repoForcePush:register$1("repo-force-push",60223),repoPull:register$1("repo-pull",60224),repoPush:register$1("repo-push",60225),report:register$1("report",60226),requestChanges:register$1("request-changes",60227),rocket:register$1("rocket",60228),rootFolderOpened:register$1("root-folder-opened",60229),rootFolder:register$1("root-folder",60230),rss:register$1("rss",60231),ruby:register$1("ruby",60232),saveAll:register$1("save-all",60233),saveAs:register$1("save-as",60234),save:register$1("save",60235),screenFull:register$1("screen-full",60236),screenNormal:register$1("screen-normal",60237),searchStop:register$1("search-stop",60238),server:register$1("server",60240),settingsGear:register$1("settings-gear",60241),settings:register$1("settings",60242),shield:register$1("shield",60243),smiley:register$1("smiley",60244),sortPrecedence:register$1("sort-precedence",60245),splitHorizontal:register$1("split-horizontal",60246),splitVertical:register$1("split-vertical",60247),squirrel:register$1("squirrel",60248),starFull:register$1("star-full",60249),starHalf:register$1("star-half",60250),symbolClass:register$1("symbol-class",60251),symbolColor:register$1("symbol-color",60252),symbolCustomColor:register$1("symbol-customcolor",60252),symbolConstant:register$1("symbol-constant",60253),symbolEnumMember:register$1("symbol-enum-member",60254),symbolField:register$1("symbol-field",60255),symbolFile:register$1("symbol-file",60256),symbolInterface:register$1("symbol-interface",60257),symbolKeyword:register$1("symbol-keyword",60258),symbolMisc:register$1("symbol-misc",60259),symbolOperator:register$1("symbol-operator",60260),symbolProperty:register$1("symbol-property",60261),wrench:register$1("wrench",60261),wrenchSubaction:register$1("wrench-subaction",60261),symbolSnippet:register$1("symbol-snippet",60262),tasklist:register$1("tasklist",60263),telescope:register$1("telescope",60264),textSize:register$1("text-size",60265),threeBars:register$1("three-bars",60266),thumbsdown:register$1("thumbsdown",60267),thumbsup:register$1("thumbsup",60268),tools:register$1("tools",60269),triangleDown:register$1("triangle-down",60270),triangleLeft:register$1("triangle-left",60271),triangleRight:register$1("triangle-right",60272),triangleUp:register$1("triangle-up",60273),twitter:register$1("twitter",60274),unfold:register$1("unfold",60275),unlock:register$1("unlock",60276),unmute:register$1("unmute",60277),unverified:register$1("unverified",60278),verified:register$1("verified",60279),versions:register$1("versions",60280),vmActive:register$1("vm-active",60281),vmOutline:register$1("vm-outline",60282),vmRunning:register$1("vm-running",60283),watch:register$1("watch",60284),whitespace:register$1("whitespace",60285),wholeWord:register$1("whole-word",60286),window:register$1("window",60287),wordWrap:register$1("word-wrap",60288),zoomIn:register$1("zoom-in",60289),zoomOut:register$1("zoom-out",60290),listFilter:register$1("list-filter",60291),listFlat:register$1("list-flat",60292),listSelection:register$1("list-selection",60293),selection:register$1("selection",60293),listTree:register$1("list-tree",60294),debugBreakpointFunctionUnverified:register$1("debug-breakpoint-function-unverified",60295),debugBreakpointFunction:register$1("debug-breakpoint-function",60296),debugBreakpointFunctionDisabled:register$1("debug-breakpoint-function-disabled",60296),debugStackframeActive:register$1("debug-stackframe-active",60297),circleSmallFilled:register$1("circle-small-filled",60298),debugStackframeDot:register$1("debug-stackframe-dot",60298),debugStackframe:register$1("debug-stackframe",60299),debugStackframeFocused:register$1("debug-stackframe-focused",60299),debugBreakpointUnsupported:register$1("debug-breakpoint-unsupported",60300),symbolString:register$1("symbol-string",60301),debugReverseContinue:register$1("debug-reverse-continue",60302),debugStepBack:register$1("debug-step-back",60303),debugRestartFrame:register$1("debug-restart-frame",60304),callIncoming:register$1("call-incoming",60306),callOutgoing:register$1("call-outgoing",60307),menu:register$1("menu",60308),expandAll:register$1("expand-all",60309),feedback:register$1("feedback",60310),gitPullRequestReviewer:register$1("git-pull-request-reviewer",60310),groupByRefType:register$1("group-by-ref-type",60311),ungroupByRefType:register$1("ungroup-by-ref-type",60312),account:register$1("account",60313),gitPullRequestAssignee:register$1("git-pull-request-assignee",60313),bellDot:register$1("bell-dot",60314),debugConsole:register$1("debug-console",60315),library:register$1("library",60316),output:register$1("output",60317),runAll:register$1("run-all",60318),syncIgnored:register$1("sync-ignored",60319),pinned:register$1("pinned",60320),githubInverted:register$1("github-inverted",60321),debugAlt:register$1("debug-alt",60305),serverProcess:register$1("server-process",60322),serverEnvironment:register$1("server-environment",60323),pass:register$1("pass",60324),stopCircle:register$1("stop-circle",60325),playCircle:register$1("play-circle",60326),record:register$1("record",60327),debugAltSmall:register$1("debug-alt-small",60328),vmConnect:register$1("vm-connect",60329),cloud:register$1("cloud",60330),merge:register$1("merge",60331),exportIcon:register$1("export",60332),graphLeft:register$1("graph-left",60333),magnet:register$1("magnet",60334),notebook:register$1("notebook",60335),redo:register$1("redo",60336),checkAll:register$1("check-all",60337),pinnedDirty:register$1("pinned-dirty",60338),passFilled:register$1("pass-filled",60339),circleLargeFilled:register$1("circle-large-filled",60340),circleLarge:register$1("circle-large",60341),circleLargeOutline:register$1("circle-large-outline",60341),combine:register$1("combine",60342),gather:register$1("gather",60342),table:register$1("table",60343),variableGroup:register$1("variable-group",60344),typeHierarchy:register$1("type-hierarchy",60345),typeHierarchySub:register$1("type-hierarchy-sub",60346),typeHierarchySuper:register$1("type-hierarchy-super",60347),gitPullRequestCreate:register$1("git-pull-request-create",60348),runAbove:register$1("run-above",60349),runBelow:register$1("run-below",60350),notebookTemplate:register$1("notebook-template",60351),debugRerun:register$1("debug-rerun",60352),workspaceTrusted:register$1("workspace-trusted",60353),workspaceUntrusted:register$1("workspace-untrusted",60354),workspaceUnspecified:register$1("workspace-unspecified",60355),terminalCmd:register$1("terminal-cmd",60356),terminalDebian:register$1("terminal-debian",60357),terminalLinux:register$1("terminal-linux",60358),terminalPowershell:register$1("terminal-powershell",60359),terminalTmux:register$1("terminal-tmux",60360),terminalUbuntu:register$1("terminal-ubuntu",60361),terminalBash:register$1("terminal-bash",60362),arrowSwap:register$1("arrow-swap",60363),copy:register$1("copy",60364),personAdd:register$1("person-add",60365),filterFilled:register$1("filter-filled",60366),wand:register$1("wand",60367),debugLineByLine:register$1("debug-line-by-line",60368),inspect:register$1("inspect",60369),layers:register$1("layers",60370),layersDot:register$1("layers-dot",60371),layersActive:register$1("layers-active",60372),compass:register$1("compass",60373),compassDot:register$1("compass-dot",60374),compassActive:register$1("compass-active",60375),azure:register$1("azure",60376),issueDraft:register$1("issue-draft",60377),gitPullRequestClosed:register$1("git-pull-request-closed",60378),gitPullRequestDraft:register$1("git-pull-request-draft",60379),debugAll:register$1("debug-all",60380),debugCoverage:register$1("debug-coverage",60381),runErrors:register$1("run-errors",60382),folderLibrary:register$1("folder-library",60383),debugContinueSmall:register$1("debug-continue-small",60384),beakerStop:register$1("beaker-stop",60385),graphLine:register$1("graph-line",60386),graphScatter:register$1("graph-scatter",60387),pieChart:register$1("pie-chart",60388),bracketDot:register$1("bracket-dot",60389),bracketError:register$1("bracket-error",60390),lockSmall:register$1("lock-small",60391),azureDevops:register$1("azure-devops",60392),verifiedFilled:register$1("verified-filled",60393),newLine:register$1("newline",60394),layout:register$1("layout",60395),layoutActivitybarLeft:register$1("layout-activitybar-left",60396),layoutActivitybarRight:register$1("layout-activitybar-right",60397),layoutPanelLeft:register$1("layout-panel-left",60398),layoutPanelCenter:register$1("layout-panel-center",60399),layoutPanelJustify:register$1("layout-panel-justify",60400),layoutPanelRight:register$1("layout-panel-right",60401),layoutPanel:register$1("layout-panel",60402),layoutSidebarLeft:register$1("layout-sidebar-left",60403),layoutSidebarRight:register$1("layout-sidebar-right",60404),layoutStatusbar:register$1("layout-statusbar",60405),layoutMenubar:register$1("layout-menubar",60406),layoutCentered:register$1("layout-centered",60407),layoutSidebarRightOff:register$1("layout-sidebar-right-off",60416),layoutPanelOff:register$1("layout-panel-off",60417),layoutSidebarLeftOff:register$1("layout-sidebar-left-off",60418),target:register$1("target",60408),indent:register$1("indent",60409),recordSmall:register$1("record-small",60410),errorSmall:register$1("error-small",60411),arrowCircleDown:register$1("arrow-circle-down",60412),arrowCircleLeft:register$1("arrow-circle-left",60413),arrowCircleRight:register$1("arrow-circle-right",60414),arrowCircleUp:register$1("arrow-circle-up",60415),heartFilled:register$1("heart-filled",60420),map:register$1("map",60421),mapFilled:register$1("map-filled",60422),circleSmall:register$1("circle-small",60423),bellSlash:register$1("bell-slash",60424),bellSlashDot:register$1("bell-slash-dot",60425),commentUnresolved:register$1("comment-unresolved",60426),gitPullRequestGoToChanges:register$1("git-pull-request-go-to-changes",60427),gitPullRequestNewChanges:register$1("git-pull-request-new-changes",60428),searchFuzzy:register$1("search-fuzzy",60429),commentDraft:register$1("comment-draft",60430),send:register$1("send",60431),sparkle:register$1("sparkle",60432),insert:register$1("insert",60433),mic:register$1("mic",60434),dialogError:register$1("dialog-error","error"),dialogWarning:register$1("dialog-warning","warning"),dialogInfo:register$1("dialog-info","info"),dialogClose:register$1("dialog-close","close"),treeItemExpanded:register$1("tree-item-expanded","chevron-down"),treeFilterOnTypeOn:register$1("tree-filter-on-type-on","list-filter"),treeFilterOnTypeOff:register$1("tree-filter-on-type-off","list-selection"),treeFilterClear:register$1("tree-filter-clear","close"),treeItemLoading:register$1("tree-item-loading","loading"),menuSelection:register$1("menu-selection","check"),menuSubmenu:register$1("menu-submenu","chevron-right"),menuBarMore:register$1("menubar-more","more"),scrollbarButtonLeft:register$1("scrollbar-button-left","triangle-left"),scrollbarButtonRight:register$1("scrollbar-button-right","triangle-right"),scrollbarButtonUp:register$1("scrollbar-button-up","triangle-up"),scrollbarButtonDown:register$1("scrollbar-button-down","triangle-down"),toolBarMore:register$1("toolbar-more","more"),quickInputBack:register$1("quick-input-back","arrow-left")};var __awaiter$1B=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};let TokenizationRegistry$1=class{constructor(){this._tokenizationSupports=new Map,this._factories=new Map,this._onDidChange=new Emitter$1,this.onDidChange=this._onDidChange.event,this._colorMap=null}handleChange(e){this._onDidChange.fire({changedLanguages:e,changedColorMap:!1})}register(e,t){return this._tokenizationSupports.set(e,t),this.handleChange([e]),toDisposable(()=>{this._tokenizationSupports.get(e)===t&&(this._tokenizationSupports.delete(e),this.handleChange([e]))})}get(e){return this._tokenizationSupports.get(e)||null}registerFactory(e,t){var i;(i=this._factories.get(e))===null||i===void 0||i.dispose();const n=new TokenizationSupportFactoryData(this,e,t);return this._factories.set(e,n),toDisposable(()=>{const r=this._factories.get(e);!r||r!==n||(this._factories.delete(e),r.dispose())})}getOrCreate(e){return __awaiter$1B(this,void 0,void 0,function*(){const t=this.get(e);if(t)return t;const i=this._factories.get(e);return!i||i.isResolved?null:(yield i.resolve(),this.get(e))})}isResolved(e){if(this.get(e))return!0;const i=this._factories.get(e);return!!(!i||i.isResolved)}setColorMap(e){this._colorMap=e,this._onDidChange.fire({changedLanguages:Array.from(this._tokenizationSupports.keys()),changedColorMap:!0})}getColorMap(){return this._colorMap}getDefaultBackground(){return this._colorMap&&this._colorMap.length>2?this._colorMap[2]:null}};class TokenizationSupportFactoryData extends Disposable{get isResolved(){return this._isResolved}constructor(e,t,i){super(),this._registry=e,this._languageId=t,this._factory=i,this._isDisposed=!1,this._resolvePromise=null,this._isResolved=!1}dispose(){this._isDisposed=!0,super.dispose()}resolve(){return __awaiter$1B(this,void 0,void 0,function*(){return this._resolvePromise||(this._resolvePromise=this._create()),this._resolvePromise})}_create(){return __awaiter$1B(this,void 0,void 0,function*(){const e=yield this._factory.tokenizationSupport;this._isResolved=!0,e&&!this._isDisposed&&this._register(this._registry.register(this._languageId,e))})}}let Token$2=class{constructor(e,t,i){this.offset=e,this.type=t,this.language=i,this._tokenBrand=void 0}toString(){return"("+this.offset+", "+this.type+")"}};class TokenizationResult{constructor(e,t){this.tokens=e,this.endState=t,this._tokenizationResultBrand=void 0}}class EncodedTokenizationResult{constructor(e,t){this.tokens=e,this.endState=t,this._encodedTokenizationResultBrand=void 0}}var CompletionItemKinds;(function(o){const e=new Map;e.set(0,Codicon.symbolMethod),e.set(1,Codicon.symbolFunction),e.set(2,Codicon.symbolConstructor),e.set(3,Codicon.symbolField),e.set(4,Codicon.symbolVariable),e.set(5,Codicon.symbolClass),e.set(6,Codicon.symbolStruct),e.set(7,Codicon.symbolInterface),e.set(8,Codicon.symbolModule),e.set(9,Codicon.symbolProperty),e.set(10,Codicon.symbolEvent),e.set(11,Codicon.symbolOperator),e.set(12,Codicon.symbolUnit),e.set(13,Codicon.symbolValue),e.set(15,Codicon.symbolEnum),e.set(14,Codicon.symbolConstant),e.set(15,Codicon.symbolEnum),e.set(16,Codicon.symbolEnumMember),e.set(17,Codicon.symbolKeyword),e.set(27,Codicon.symbolSnippet),e.set(18,Codicon.symbolText),e.set(19,Codicon.symbolColor),e.set(20,Codicon.symbolFile),e.set(21,Codicon.symbolReference),e.set(22,Codicon.symbolCustomColor),e.set(23,Codicon.symbolFolder),e.set(24,Codicon.symbolTypeParameter),e.set(25,Codicon.account),e.set(26,Codicon.issues);function t(r){let s=e.get(r);return s||(console.info("No codicon found for CompletionItemKind "+r),s=Codicon.symbolProperty),s}o.toIcon=t;const i=new Map;i.set("method",0),i.set("function",1),i.set("constructor",2),i.set("field",3),i.set("variable",4),i.set("class",5),i.set("struct",6),i.set("interface",7),i.set("module",8),i.set("property",9),i.set("event",10),i.set("operator",11),i.set("unit",12),i.set("value",13),i.set("constant",14),i.set("enum",15),i.set("enum-member",16),i.set("enumMember",16),i.set("keyword",17),i.set("snippet",27),i.set("text",18),i.set("color",19),i.set("file",20),i.set("reference",21),i.set("customcolor",22),i.set("folder",23),i.set("type-parameter",24),i.set("typeParameter",24),i.set("account",25),i.set("issue",26);function n(r,s){let a=i.get(r);return typeof a>"u"&&!s&&(a=9),a}o.fromString=n})(CompletionItemKinds||(CompletionItemKinds={}));var InlineCompletionTriggerKind$1;(function(o){o[o.Automatic=0]="Automatic",o[o.Explicit=1]="Explicit"})(InlineCompletionTriggerKind$1||(InlineCompletionTriggerKind$1={}));class SelectedSuggestionInfo{constructor(e,t,i,n){this.range=e,this.text=t,this.completionKind=i,this.isSnippetText=n}equals(e){return Range$2.lift(this.range).equalsRange(e.range)&&this.text===e.text&&this.completionKind===e.completionKind&&this.isSnippetText===e.isSnippetText}}var SignatureHelpTriggerKind$1;(function(o){o[o.Invoke=1]="Invoke",o[o.TriggerCharacter=2]="TriggerCharacter",o[o.ContentChange=3]="ContentChange"})(SignatureHelpTriggerKind$1||(SignatureHelpTriggerKind$1={}));var DocumentHighlightKind$1;(function(o){o[o.Text=0]="Text",o[o.Read=1]="Read",o[o.Write=2]="Write"})(DocumentHighlightKind$1||(DocumentHighlightKind$1={}));function isLocationLink(o){return o&&URI.isUri(o.uri)&&Range$2.isIRange(o.range)&&(Range$2.isIRange(o.originSelectionRange)||Range$2.isIRange(o.targetSelectionRange))}const symbolKindNames={17:localize("Array","array"),16:localize("Boolean","boolean"),4:localize("Class","class"),13:localize("Constant","constant"),8:localize("Constructor","constructor"),9:localize("Enum","enumeration"),21:localize("EnumMember","enumeration member"),23:localize("Event","event"),7:localize("Field","field"),0:localize("File","file"),11:localize("Function","function"),10:localize("Interface","interface"),19:localize("Key","key"),5:localize("Method","method"),1:localize("Module","module"),2:localize("Namespace","namespace"),20:localize("Null","null"),15:localize("Number","number"),18:localize("Object","object"),24:localize("Operator","operator"),3:localize("Package","package"),6:localize("Property","property"),14:localize("String","string"),22:localize("Struct","struct"),25:localize("TypeParameter","type parameter"),12:localize("Variable","variable")};function getAriaLabelForSymbol(o,e){return localize("symbolAriaLabel","{0} ({1})",o,symbolKindNames[e])}var SymbolKinds;(function(o){const e=new Map;e.set(0,Codicon.symbolFile),e.set(1,Codicon.symbolModule),e.set(2,Codicon.symbolNamespace),e.set(3,Codicon.symbolPackage),e.set(4,Codicon.symbolClass),e.set(5,Codicon.symbolMethod),e.set(6,Codicon.symbolProperty),e.set(7,Codicon.symbolField),e.set(8,Codicon.symbolConstructor),e.set(9,Codicon.symbolEnum),e.set(10,Codicon.symbolInterface),e.set(11,Codicon.symbolFunction),e.set(12,Codicon.symbolVariable),e.set(13,Codicon.symbolConstant),e.set(14,Codicon.symbolString),e.set(15,Codicon.symbolNumber),e.set(16,Codicon.symbolBoolean),e.set(17,Codicon.symbolArray),e.set(18,Codicon.symbolObject),e.set(19,Codicon.symbolKey),e.set(20,Codicon.symbolNull),e.set(21,Codicon.symbolEnumMember),e.set(22,Codicon.symbolStruct),e.set(23,Codicon.symbolEvent),e.set(24,Codicon.symbolOperator),e.set(25,Codicon.symbolTypeParameter);function t(i){let n=e.get(i);return n||(console.info("No codicon found for SymbolKind "+i),n=Codicon.symbolProperty),n}o.toIcon=t})(SymbolKinds||(SymbolKinds={}));class FoldingRangeKind{static fromValue(e){switch(e){case"comment":return FoldingRangeKind.Comment;case"imports":return FoldingRangeKind.Imports;case"region":return FoldingRangeKind.Region}return new FoldingRangeKind(e)}constructor(e){this.value=e}}FoldingRangeKind.Comment=new FoldingRangeKind("comment");FoldingRangeKind.Imports=new FoldingRangeKind("imports");FoldingRangeKind.Region=new FoldingRangeKind("region");var Command$1;(function(o){function e(t){return!t||typeof t!="object"?!1:typeof t.id=="string"&&typeof t.title=="string"}o.is=e})(Command$1||(Command$1={}));var InlayHintKind$1;(function(o){o[o.Type=1]="Type",o[o.Parameter=2]="Parameter"})(InlayHintKind$1||(InlayHintKind$1={}));class LazyTokenizationSupport{constructor(e){this.createSupport=e,this._tokenizationSupport=null}dispose(){this._tokenizationSupport&&this._tokenizationSupport.then(e=>{e&&e.dispose()})}get tokenizationSupport(){return this._tokenizationSupport||(this._tokenizationSupport=this.createSupport()),this._tokenizationSupport}}const TokenizationRegistry=new TokenizationRegistry$1;var AccessibilitySupport;(function(o){o[o.Unknown=0]="Unknown",o[o.Disabled=1]="Disabled",o[o.Enabled=2]="Enabled"})(AccessibilitySupport||(AccessibilitySupport={}));var CodeActionTriggerType;(function(o){o[o.Invoke=1]="Invoke",o[o.Auto=2]="Auto"})(CodeActionTriggerType||(CodeActionTriggerType={}));var CompletionItemInsertTextRule;(function(o){o[o.None=0]="None",o[o.KeepWhitespace=1]="KeepWhitespace",o[o.InsertAsSnippet=4]="InsertAsSnippet"})(CompletionItemInsertTextRule||(CompletionItemInsertTextRule={}));var CompletionItemKind;(function(o){o[o.Method=0]="Method",o[o.Function=1]="Function",o[o.Constructor=2]="Constructor",o[o.Field=3]="Field",o[o.Variable=4]="Variable",o[o.Class=5]="Class",o[o.Struct=6]="Struct",o[o.Interface=7]="Interface",o[o.Module=8]="Module",o[o.Property=9]="Property",o[o.Event=10]="Event",o[o.Operator=11]="Operator",o[o.Unit=12]="Unit",o[o.Value=13]="Value",o[o.Constant=14]="Constant",o[o.Enum=15]="Enum",o[o.EnumMember=16]="EnumMember",o[o.Keyword=17]="Keyword",o[o.Text=18]="Text",o[o.Color=19]="Color",o[o.File=20]="File",o[o.Reference=21]="Reference",o[o.Customcolor=22]="Customcolor",o[o.Folder=23]="Folder",o[o.TypeParameter=24]="TypeParameter",o[o.User=25]="User",o[o.Issue=26]="Issue",o[o.Snippet=27]="Snippet"})(CompletionItemKind||(CompletionItemKind={}));var CompletionItemTag;(function(o){o[o.Deprecated=1]="Deprecated"})(CompletionItemTag||(CompletionItemTag={}));var CompletionTriggerKind;(function(o){o[o.Invoke=0]="Invoke",o[o.TriggerCharacter=1]="TriggerCharacter",o[o.TriggerForIncompleteCompletions=2]="TriggerForIncompleteCompletions"})(CompletionTriggerKind||(CompletionTriggerKind={}));var ContentWidgetPositionPreference;(function(o){o[o.EXACT=0]="EXACT",o[o.ABOVE=1]="ABOVE",o[o.BELOW=2]="BELOW"})(ContentWidgetPositionPreference||(ContentWidgetPositionPreference={}));var CursorChangeReason;(function(o){o[o.NotSet=0]="NotSet",o[o.ContentFlush=1]="ContentFlush",o[o.RecoverFromMarkers=2]="RecoverFromMarkers",o[o.Explicit=3]="Explicit",o[o.Paste=4]="Paste",o[o.Undo=5]="Undo",o[o.Redo=6]="Redo"})(CursorChangeReason||(CursorChangeReason={}));var DefaultEndOfLine;(function(o){o[o.LF=1]="LF",o[o.CRLF=2]="CRLF"})(DefaultEndOfLine||(DefaultEndOfLine={}));var DocumentHighlightKind;(function(o){o[o.Text=0]="Text",o[o.Read=1]="Read",o[o.Write=2]="Write"})(DocumentHighlightKind||(DocumentHighlightKind={}));var EditorAutoIndentStrategy;(function(o){o[o.None=0]="None",o[o.Keep=1]="Keep",o[o.Brackets=2]="Brackets",o[o.Advanced=3]="Advanced",o[o.Full=4]="Full"})(EditorAutoIndentStrategy||(EditorAutoIndentStrategy={}));var EditorOption;(function(o){o[o.acceptSuggestionOnCommitCharacter=0]="acceptSuggestionOnCommitCharacter",o[o.acceptSuggestionOnEnter=1]="acceptSuggestionOnEnter",o[o.accessibilitySupport=2]="accessibilitySupport",o[o.accessibilityPageSize=3]="accessibilityPageSize",o[o.ariaLabel=4]="ariaLabel",o[o.ariaRequired=5]="ariaRequired",o[o.autoClosingBrackets=6]="autoClosingBrackets",o[o.autoClosingComments=7]="autoClosingComments",o[o.screenReaderAnnounceInlineSuggestion=8]="screenReaderAnnounceInlineSuggestion",o[o.autoClosingDelete=9]="autoClosingDelete",o[o.autoClosingOvertype=10]="autoClosingOvertype",o[o.autoClosingQuotes=11]="autoClosingQuotes",o[o.autoIndent=12]="autoIndent",o[o.automaticLayout=13]="automaticLayout",o[o.autoSurround=14]="autoSurround",o[o.bracketPairColorization=15]="bracketPairColorization",o[o.guides=16]="guides",o[o.codeLens=17]="codeLens",o[o.codeLensFontFamily=18]="codeLensFontFamily",o[o.codeLensFontSize=19]="codeLensFontSize",o[o.colorDecorators=20]="colorDecorators",o[o.colorDecoratorsLimit=21]="colorDecoratorsLimit",o[o.columnSelection=22]="columnSelection",o[o.comments=23]="comments",o[o.contextmenu=24]="contextmenu",o[o.copyWithSyntaxHighlighting=25]="copyWithSyntaxHighlighting",o[o.cursorBlinking=26]="cursorBlinking",o[o.cursorSmoothCaretAnimation=27]="cursorSmoothCaretAnimation",o[o.cursorStyle=28]="cursorStyle",o[o.cursorSurroundingLines=29]="cursorSurroundingLines",o[o.cursorSurroundingLinesStyle=30]="cursorSurroundingLinesStyle",o[o.cursorWidth=31]="cursorWidth",o[o.disableLayerHinting=32]="disableLayerHinting",o[o.disableMonospaceOptimizations=33]="disableMonospaceOptimizations",o[o.domReadOnly=34]="domReadOnly",o[o.dragAndDrop=35]="dragAndDrop",o[o.dropIntoEditor=36]="dropIntoEditor",o[o.emptySelectionClipboard=37]="emptySelectionClipboard",o[o.experimentalWhitespaceRendering=38]="experimentalWhitespaceRendering",o[o.extraEditorClassName=39]="extraEditorClassName",o[o.fastScrollSensitivity=40]="fastScrollSensitivity",o[o.find=41]="find",o[o.fixedOverflowWidgets=42]="fixedOverflowWidgets",o[o.folding=43]="folding",o[o.foldingStrategy=44]="foldingStrategy",o[o.foldingHighlight=45]="foldingHighlight",o[o.foldingImportsByDefault=46]="foldingImportsByDefault",o[o.foldingMaximumRegions=47]="foldingMaximumRegions",o[o.unfoldOnClickAfterEndOfLine=48]="unfoldOnClickAfterEndOfLine",o[o.fontFamily=49]="fontFamily",o[o.fontInfo=50]="fontInfo",o[o.fontLigatures=51]="fontLigatures",o[o.fontSize=52]="fontSize",o[o.fontWeight=53]="fontWeight",o[o.fontVariations=54]="fontVariations",o[o.formatOnPaste=55]="formatOnPaste",o[o.formatOnType=56]="formatOnType",o[o.glyphMargin=57]="glyphMargin",o[o.gotoLocation=58]="gotoLocation",o[o.hideCursorInOverviewRuler=59]="hideCursorInOverviewRuler",o[o.hover=60]="hover",o[o.inDiffEditor=61]="inDiffEditor",o[o.inlineSuggest=62]="inlineSuggest",o[o.letterSpacing=63]="letterSpacing",o[o.lightbulb=64]="lightbulb",o[o.lineDecorationsWidth=65]="lineDecorationsWidth",o[o.lineHeight=66]="lineHeight",o[o.lineNumbers=67]="lineNumbers",o[o.lineNumbersMinChars=68]="lineNumbersMinChars",o[o.linkedEditing=69]="linkedEditing",o[o.links=70]="links",o[o.matchBrackets=71]="matchBrackets",o[o.minimap=72]="minimap",o[o.mouseStyle=73]="mouseStyle",o[o.mouseWheelScrollSensitivity=74]="mouseWheelScrollSensitivity",o[o.mouseWheelZoom=75]="mouseWheelZoom",o[o.multiCursorMergeOverlapping=76]="multiCursorMergeOverlapping",o[o.multiCursorModifier=77]="multiCursorModifier",o[o.multiCursorPaste=78]="multiCursorPaste",o[o.multiCursorLimit=79]="multiCursorLimit",o[o.occurrencesHighlight=80]="occurrencesHighlight",o[o.overviewRulerBorder=81]="overviewRulerBorder",o[o.overviewRulerLanes=82]="overviewRulerLanes",o[o.padding=83]="padding",o[o.pasteAs=84]="pasteAs",o[o.parameterHints=85]="parameterHints",o[o.peekWidgetDefaultFocus=86]="peekWidgetDefaultFocus",o[o.definitionLinkOpensInPeek=87]="definitionLinkOpensInPeek",o[o.quickSuggestions=88]="quickSuggestions",o[o.quickSuggestionsDelay=89]="quickSuggestionsDelay",o[o.readOnly=90]="readOnly",o[o.readOnlyMessage=91]="readOnlyMessage",o[o.renameOnType=92]="renameOnType",o[o.renderControlCharacters=93]="renderControlCharacters",o[o.renderFinalNewline=94]="renderFinalNewline",o[o.renderLineHighlight=95]="renderLineHighlight",o[o.renderLineHighlightOnlyWhenFocus=96]="renderLineHighlightOnlyWhenFocus",o[o.renderValidationDecorations=97]="renderValidationDecorations",o[o.renderWhitespace=98]="renderWhitespace",o[o.revealHorizontalRightPadding=99]="revealHorizontalRightPadding",o[o.roundedSelection=100]="roundedSelection",o[o.rulers=101]="rulers",o[o.scrollbar=102]="scrollbar",o[o.scrollBeyondLastColumn=103]="scrollBeyondLastColumn",o[o.scrollBeyondLastLine=104]="scrollBeyondLastLine",o[o.scrollPredominantAxis=105]="scrollPredominantAxis",o[o.selectionClipboard=106]="selectionClipboard",o[o.selectionHighlight=107]="selectionHighlight",o[o.selectOnLineNumbers=108]="selectOnLineNumbers",o[o.showFoldingControls=109]="showFoldingControls",o[o.showUnused=110]="showUnused",o[o.snippetSuggestions=111]="snippetSuggestions",o[o.smartSelect=112]="smartSelect",o[o.smoothScrolling=113]="smoothScrolling",o[o.stickyScroll=114]="stickyScroll",o[o.stickyTabStops=115]="stickyTabStops",o[o.stopRenderingLineAfter=116]="stopRenderingLineAfter",o[o.suggest=117]="suggest",o[o.suggestFontSize=118]="suggestFontSize",o[o.suggestLineHeight=119]="suggestLineHeight",o[o.suggestOnTriggerCharacters=120]="suggestOnTriggerCharacters",o[o.suggestSelection=121]="suggestSelection",o[o.tabCompletion=122]="tabCompletion",o[o.tabIndex=123]="tabIndex",o[o.unicodeHighlighting=124]="unicodeHighlighting",o[o.unusualLineTerminators=125]="unusualLineTerminators",o[o.useShadowDOM=126]="useShadowDOM",o[o.useTabStops=127]="useTabStops",o[o.wordBreak=128]="wordBreak",o[o.wordSeparators=129]="wordSeparators",o[o.wordWrap=130]="wordWrap",o[o.wordWrapBreakAfterCharacters=131]="wordWrapBreakAfterCharacters",o[o.wordWrapBreakBeforeCharacters=132]="wordWrapBreakBeforeCharacters",o[o.wordWrapColumn=133]="wordWrapColumn",o[o.wordWrapOverride1=134]="wordWrapOverride1",o[o.wordWrapOverride2=135]="wordWrapOverride2",o[o.wrappingIndent=136]="wrappingIndent",o[o.wrappingStrategy=137]="wrappingStrategy",o[o.showDeprecated=138]="showDeprecated",o[o.inlayHints=139]="inlayHints",o[o.editorClassName=140]="editorClassName",o[o.pixelRatio=141]="pixelRatio",o[o.tabFocusMode=142]="tabFocusMode",o[o.layoutInfo=143]="layoutInfo",o[o.wrappingInfo=144]="wrappingInfo",o[o.defaultColorDecorators=145]="defaultColorDecorators",o[o.colorDecoratorsActivatedOn=146]="colorDecoratorsActivatedOn",o[o.inlineCompletionsAccessibilityVerbose=147]="inlineCompletionsAccessibilityVerbose"})(EditorOption||(EditorOption={}));var EndOfLinePreference;(function(o){o[o.TextDefined=0]="TextDefined",o[o.LF=1]="LF",o[o.CRLF=2]="CRLF"})(EndOfLinePreference||(EndOfLinePreference={}));var EndOfLineSequence;(function(o){o[o.LF=0]="LF",o[o.CRLF=1]="CRLF"})(EndOfLineSequence||(EndOfLineSequence={}));var GlyphMarginLane$1;(function(o){o[o.Left=1]="Left",o[o.Right=2]="Right"})(GlyphMarginLane$1||(GlyphMarginLane$1={}));var IndentAction$1;(function(o){o[o.None=0]="None",o[o.Indent=1]="Indent",o[o.IndentOutdent=2]="IndentOutdent",o[o.Outdent=3]="Outdent"})(IndentAction$1||(IndentAction$1={}));var InjectedTextCursorStops$1;(function(o){o[o.Both=0]="Both",o[o.Right=1]="Right",o[o.Left=2]="Left",o[o.None=3]="None"})(InjectedTextCursorStops$1||(InjectedTextCursorStops$1={}));var InlayHintKind;(function(o){o[o.Type=1]="Type",o[o.Parameter=2]="Parameter"})(InlayHintKind||(InlayHintKind={}));var InlineCompletionTriggerKind;(function(o){o[o.Automatic=0]="Automatic",o[o.Explicit=1]="Explicit"})(InlineCompletionTriggerKind||(InlineCompletionTriggerKind={}));var KeyCode$1;(function(o){o[o.DependsOnKbLayout=-1]="DependsOnKbLayout",o[o.Unknown=0]="Unknown",o[o.Backspace=1]="Backspace",o[o.Tab=2]="Tab",o[o.Enter=3]="Enter",o[o.Shift=4]="Shift",o[o.Ctrl=5]="Ctrl",o[o.Alt=6]="Alt",o[o.PauseBreak=7]="PauseBreak",o[o.CapsLock=8]="CapsLock",o[o.Escape=9]="Escape",o[o.Space=10]="Space",o[o.PageUp=11]="PageUp",o[o.PageDown=12]="PageDown",o[o.End=13]="End",o[o.Home=14]="Home",o[o.LeftArrow=15]="LeftArrow",o[o.UpArrow=16]="UpArrow",o[o.RightArrow=17]="RightArrow",o[o.DownArrow=18]="DownArrow",o[o.Insert=19]="Insert",o[o.Delete=20]="Delete",o[o.Digit0=21]="Digit0",o[o.Digit1=22]="Digit1",o[o.Digit2=23]="Digit2",o[o.Digit3=24]="Digit3",o[o.Digit4=25]="Digit4",o[o.Digit5=26]="Digit5",o[o.Digit6=27]="Digit6",o[o.Digit7=28]="Digit7",o[o.Digit8=29]="Digit8",o[o.Digit9=30]="Digit9",o[o.KeyA=31]="KeyA",o[o.KeyB=32]="KeyB",o[o.KeyC=33]="KeyC",o[o.KeyD=34]="KeyD",o[o.KeyE=35]="KeyE",o[o.KeyF=36]="KeyF",o[o.KeyG=37]="KeyG",o[o.KeyH=38]="KeyH",o[o.KeyI=39]="KeyI",o[o.KeyJ=40]="KeyJ",o[o.KeyK=41]="KeyK",o[o.KeyL=42]="KeyL",o[o.KeyM=43]="KeyM",o[o.KeyN=44]="KeyN",o[o.KeyO=45]="KeyO",o[o.KeyP=46]="KeyP",o[o.KeyQ=47]="KeyQ",o[o.KeyR=48]="KeyR",o[o.KeyS=49]="KeyS",o[o.KeyT=50]="KeyT",o[o.KeyU=51]="KeyU",o[o.KeyV=52]="KeyV",o[o.KeyW=53]="KeyW",o[o.KeyX=54]="KeyX",o[o.KeyY=55]="KeyY",o[o.KeyZ=56]="KeyZ",o[o.Meta=57]="Meta",o[o.ContextMenu=58]="ContextMenu",o[o.F1=59]="F1",o[o.F2=60]="F2",o[o.F3=61]="F3",o[o.F4=62]="F4",o[o.F5=63]="F5",o[o.F6=64]="F6",o[o.F7=65]="F7",o[o.F8=66]="F8",o[o.F9=67]="F9",o[o.F10=68]="F10",o[o.F11=69]="F11",o[o.F12=70]="F12",o[o.F13=71]="F13",o[o.F14=72]="F14",o[o.F15=73]="F15",o[o.F16=74]="F16",o[o.F17=75]="F17",o[o.F18=76]="F18",o[o.F19=77]="F19",o[o.F20=78]="F20",o[o.F21=79]="F21",o[o.F22=80]="F22",o[o.F23=81]="F23",o[o.F24=82]="F24",o[o.NumLock=83]="NumLock",o[o.ScrollLock=84]="ScrollLock",o[o.Semicolon=85]="Semicolon",o[o.Equal=86]="Equal",o[o.Comma=87]="Comma",o[o.Minus=88]="Minus",o[o.Period=89]="Period",o[o.Slash=90]="Slash",o[o.Backquote=91]="Backquote",o[o.BracketLeft=92]="BracketLeft",o[o.Backslash=93]="Backslash",o[o.BracketRight=94]="BracketRight",o[o.Quote=95]="Quote",o[o.OEM_8=96]="OEM_8",o[o.IntlBackslash=97]="IntlBackslash",o[o.Numpad0=98]="Numpad0",o[o.Numpad1=99]="Numpad1",o[o.Numpad2=100]="Numpad2",o[o.Numpad3=101]="Numpad3",o[o.Numpad4=102]="Numpad4",o[o.Numpad5=103]="Numpad5",o[o.Numpad6=104]="Numpad6",o[o.Numpad7=105]="Numpad7",o[o.Numpad8=106]="Numpad8",o[o.Numpad9=107]="Numpad9",o[o.NumpadMultiply=108]="NumpadMultiply",o[o.NumpadAdd=109]="NumpadAdd",o[o.NUMPAD_SEPARATOR=110]="NUMPAD_SEPARATOR",o[o.NumpadSubtract=111]="NumpadSubtract",o[o.NumpadDecimal=112]="NumpadDecimal",o[o.NumpadDivide=113]="NumpadDivide",o[o.KEY_IN_COMPOSITION=114]="KEY_IN_COMPOSITION",o[o.ABNT_C1=115]="ABNT_C1",o[o.ABNT_C2=116]="ABNT_C2",o[o.AudioVolumeMute=117]="AudioVolumeMute",o[o.AudioVolumeUp=118]="AudioVolumeUp",o[o.AudioVolumeDown=119]="AudioVolumeDown",o[o.BrowserSearch=120]="BrowserSearch",o[o.BrowserHome=121]="BrowserHome",o[o.BrowserBack=122]="BrowserBack",o[o.BrowserForward=123]="BrowserForward",o[o.MediaTrackNext=124]="MediaTrackNext",o[o.MediaTrackPrevious=125]="MediaTrackPrevious",o[o.MediaStop=126]="MediaStop",o[o.MediaPlayPause=127]="MediaPlayPause",o[o.LaunchMediaPlayer=128]="LaunchMediaPlayer",o[o.LaunchMail=129]="LaunchMail",o[o.LaunchApp2=130]="LaunchApp2",o[o.Clear=131]="Clear",o[o.MAX_VALUE=132]="MAX_VALUE"})(KeyCode$1||(KeyCode$1={}));var MarkerSeverity$2;(function(o){o[o.Hint=1]="Hint",o[o.Info=2]="Info",o[o.Warning=4]="Warning",o[o.Error=8]="Error"})(MarkerSeverity$2||(MarkerSeverity$2={}));var MarkerTag$1;(function(o){o[o.Unnecessary=1]="Unnecessary",o[o.Deprecated=2]="Deprecated"})(MarkerTag$1||(MarkerTag$1={}));var MinimapPosition$1;(function(o){o[o.Inline=1]="Inline",o[o.Gutter=2]="Gutter"})(MinimapPosition$1||(MinimapPosition$1={}));var MouseTargetType;(function(o){o[o.UNKNOWN=0]="UNKNOWN",o[o.TEXTAREA=1]="TEXTAREA",o[o.GUTTER_GLYPH_MARGIN=2]="GUTTER_GLYPH_MARGIN",o[o.GUTTER_LINE_NUMBERS=3]="GUTTER_LINE_NUMBERS",o[o.GUTTER_LINE_DECORATIONS=4]="GUTTER_LINE_DECORATIONS",o[o.GUTTER_VIEW_ZONE=5]="GUTTER_VIEW_ZONE",o[o.CONTENT_TEXT=6]="CONTENT_TEXT",o[o.CONTENT_EMPTY=7]="CONTENT_EMPTY",o[o.CONTENT_VIEW_ZONE=8]="CONTENT_VIEW_ZONE",o[o.CONTENT_WIDGET=9]="CONTENT_WIDGET",o[o.OVERVIEW_RULER=10]="OVERVIEW_RULER",o[o.SCROLLBAR=11]="SCROLLBAR",o[o.OVERLAY_WIDGET=12]="OVERLAY_WIDGET",o[o.OUTSIDE_EDITOR=13]="OUTSIDE_EDITOR"})(MouseTargetType||(MouseTargetType={}));var OverlayWidgetPositionPreference;(function(o){o[o.TOP_RIGHT_CORNER=0]="TOP_RIGHT_CORNER",o[o.BOTTOM_RIGHT_CORNER=1]="BOTTOM_RIGHT_CORNER",o[o.TOP_CENTER=2]="TOP_CENTER"})(OverlayWidgetPositionPreference||(OverlayWidgetPositionPreference={}));var OverviewRulerLane$1;(function(o){o[o.Left=1]="Left",o[o.Center=2]="Center",o[o.Right=4]="Right",o[o.Full=7]="Full"})(OverviewRulerLane$1||(OverviewRulerLane$1={}));var PositionAffinity;(function(o){o[o.Left=0]="Left",o[o.Right=1]="Right",o[o.None=2]="None",o[o.LeftOfInjectedText=3]="LeftOfInjectedText",o[o.RightOfInjectedText=4]="RightOfInjectedText"})(PositionAffinity||(PositionAffinity={}));var RenderLineNumbersType;(function(o){o[o.Off=0]="Off",o[o.On=1]="On",o[o.Relative=2]="Relative",o[o.Interval=3]="Interval",o[o.Custom=4]="Custom"})(RenderLineNumbersType||(RenderLineNumbersType={}));var RenderMinimap;(function(o){o[o.None=0]="None",o[o.Text=1]="Text",o[o.Blocks=2]="Blocks"})(RenderMinimap||(RenderMinimap={}));var ScrollType;(function(o){o[o.Smooth=0]="Smooth",o[o.Immediate=1]="Immediate"})(ScrollType||(ScrollType={}));var ScrollbarVisibility;(function(o){o[o.Auto=1]="Auto",o[o.Hidden=2]="Hidden",o[o.Visible=3]="Visible"})(ScrollbarVisibility||(ScrollbarVisibility={}));var SelectionDirection$1;(function(o){o[o.LTR=0]="LTR",o[o.RTL=1]="RTL"})(SelectionDirection$1||(SelectionDirection$1={}));var SignatureHelpTriggerKind;(function(o){o[o.Invoke=1]="Invoke",o[o.TriggerCharacter=2]="TriggerCharacter",o[o.ContentChange=3]="ContentChange"})(SignatureHelpTriggerKind||(SignatureHelpTriggerKind={}));var SymbolKind;(function(o){o[o.File=0]="File",o[o.Module=1]="Module",o[o.Namespace=2]="Namespace",o[o.Package=3]="Package",o[o.Class=4]="Class",o[o.Method=5]="Method",o[o.Property=6]="Property",o[o.Field=7]="Field",o[o.Constructor=8]="Constructor",o[o.Enum=9]="Enum",o[o.Interface=10]="Interface",o[o.Function=11]="Function",o[o.Variable=12]="Variable",o[o.Constant=13]="Constant",o[o.String=14]="String",o[o.Number=15]="Number",o[o.Boolean=16]="Boolean",o[o.Array=17]="Array",o[o.Object=18]="Object",o[o.Key=19]="Key",o[o.Null=20]="Null",o[o.EnumMember=21]="EnumMember",o[o.Struct=22]="Struct",o[o.Event=23]="Event",o[o.Operator=24]="Operator",o[o.TypeParameter=25]="TypeParameter"})(SymbolKind||(SymbolKind={}));var SymbolTag;(function(o){o[o.Deprecated=1]="Deprecated"})(SymbolTag||(SymbolTag={}));var TextEditorCursorBlinkingStyle;(function(o){o[o.Hidden=0]="Hidden",o[o.Blink=1]="Blink",o[o.Smooth=2]="Smooth",o[o.Phase=3]="Phase",o[o.Expand=4]="Expand",o[o.Solid=5]="Solid"})(TextEditorCursorBlinkingStyle||(TextEditorCursorBlinkingStyle={}));var TextEditorCursorStyle;(function(o){o[o.Line=1]="Line",o[o.Block=2]="Block",o[o.Underline=3]="Underline",o[o.LineThin=4]="LineThin",o[o.BlockOutline=5]="BlockOutline",o[o.UnderlineThin=6]="UnderlineThin"})(TextEditorCursorStyle||(TextEditorCursorStyle={}));var TrackedRangeStickiness;(function(o){o[o.AlwaysGrowsWhenTypingAtEdges=0]="AlwaysGrowsWhenTypingAtEdges",o[o.NeverGrowsWhenTypingAtEdges=1]="NeverGrowsWhenTypingAtEdges",o[o.GrowsOnlyWhenTypingBefore=2]="GrowsOnlyWhenTypingBefore",o[o.GrowsOnlyWhenTypingAfter=3]="GrowsOnlyWhenTypingAfter"})(TrackedRangeStickiness||(TrackedRangeStickiness={}));var WrappingIndent;(function(o){o[o.None=0]="None",o[o.Same=1]="Same",o[o.Indent=2]="Indent",o[o.DeepIndent=3]="DeepIndent"})(WrappingIndent||(WrappingIndent={}));let KeyMod$1=class{static chord(e,t){return KeyChord(e,t)}};KeyMod$1.CtrlCmd=2048;KeyMod$1.Shift=1024;KeyMod$1.Alt=512;KeyMod$1.WinCtrl=256;function createMonacoBaseAPI(){return{editor:void 0,languages:void 0,CancellationTokenSource:CancellationTokenSource$1,Emitter:Emitter$1,KeyCode:KeyCode$1,KeyMod:KeyMod$1,Position:Position$1,Range:Range$2,Selection:Selection$1,SelectionDirection:SelectionDirection$1,MarkerSeverity:MarkerSeverity$2,MarkerTag:MarkerTag$1,Uri:URI,Token:Token$2}}class LRUCachedFunction{constructor(e){this.fn=e,this.lastCache=void 0,this.lastArgKey=void 0}get(e){const t=JSON.stringify(e);return this.lastArgKey!==t&&(this.lastArgKey=t,this.lastCache=this.fn(e)),this.lastCache}}class CachedFunction{get cachedValues(){return this._map}constructor(e){this.fn=e,this._map=new Map}get(e){if(this._map.has(e))return this._map.get(e);const t=this.fn(e);return this._map.set(e,t),t}}class Lazy{constructor(e){this.executor=e,this._didRun=!1}get value(){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 _a$3;function isFalsyOrWhitespace(o){return!o||typeof o!="string"?!0:o.trim().length===0}const _formatRegexp=/{(\d+)}/g;function format(o,...e){return e.length===0?o:o.replace(_formatRegexp,function(t,i){const n=parseInt(i,10);return isNaN(n)||n<0||n>=e.length?t:e[n]})}function escape(o){return o.replace(/[<>&]/g,function(e){switch(e){case"<":return"<";case">":return">";case"&":return"&";default:return e}})}function escapeRegExpCharacters(o){return o.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g,"\\$&")}function trim(o,e=" "){const t=ltrim(o,e);return rtrim(t,e)}function ltrim(o,e){if(!o||!e)return o;const t=e.length;if(t===0||o.length===0)return o;let i=0;for(;o.indexOf(e,i)===i;)i=i+t;return o.substring(i)}function rtrim(o,e){if(!o||!e)return o;const t=e.length,i=o.length;if(t===0||i===0)return o;let n=i,r=-1;for(;r=o.lastIndexOf(e,n-1),!(r===-1||r+t!==n);){if(r===0)return"";n=r}return o.substring(0,n)}function convertSimple2RegExpPattern(o){return o.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&").replace(/[\*]/g,".*")}function stripWildcards(o){return o.replace(/\*/g,"")}function createRegExp(o,e,t={}){if(!o)throw new Error("Cannot create regex from empty string");e||(o=escapeRegExpCharacters(o)),t.wholeWord&&(/\B/.test(o.charAt(0))||(o="\\b"+o),/\B/.test(o.charAt(o.length-1))||(o=o+"\\b"));let i="";return t.global&&(i+="g"),t.matchCase||(i+="i"),t.multiline&&(i+="m"),t.unicode&&(i+="u"),new RegExp(o,i)}function regExpLeadsToEndlessLoop(o){return o.source==="^"||o.source==="^$"||o.source==="$"||o.source==="^\\s*$"?!1:!!(o.exec("")&&o.lastIndex===0)}function splitLines(o){return o.split(/\r\n|\r|\n/)}function firstNonWhitespaceIndex(o){for(let e=0,t=o.length;e<t;e++){const i=o.charCodeAt(e);if(i!==32&&i!==9)return e}return-1}function getLeadingWhitespace(o,e=0,t=o.length){for(let i=e;i<t;i++){const n=o.charCodeAt(i);if(n!==32&&n!==9)return o.substring(e,i)}return o.substring(e,t)}function lastNonWhitespaceIndex(o,e=o.length-1){for(let t=e;t>=0;t--){const i=o.charCodeAt(t);if(i!==32&&i!==9)return t}return-1}function compare(o,e){return o<e?-1:o>e?1:0}function compareSubstring(o,e,t=0,i=o.length,n=0,r=e.length){for(;t<i&&n<r;t++,n++){const l=o.charCodeAt(t),d=e.charCodeAt(n);if(l<d)return-1;if(l>d)return 1}const s=i-t,a=r-n;return s<a?-1:s>a?1:0}function compareIgnoreCase(o,e){return compareSubstringIgnoreCase(o,e,0,o.length,0,e.length)}function compareSubstringIgnoreCase(o,e,t=0,i=o.length,n=0,r=e.length){for(;t<i&&n<r;t++,n++){let l=o.charCodeAt(t),d=e.charCodeAt(n);if(l===d)continue;if(l>=128||d>=128)return compareSubstring(o.toLowerCase(),e.toLowerCase(),t,i,n,r);isLowerAsciiLetter(l)&&(l-=32),isLowerAsciiLetter(d)&&(d-=32);const c=l-d;if(c!==0)return c}const s=i-t,a=r-n;return s<a?-1:s>a?1:0}function isAsciiDigit(o){return o>=48&&o<=57}function isLowerAsciiLetter(o){return o>=97&&o<=122}function isUpperAsciiLetter(o){return o>=65&&o<=90}function equalsIgnoreCase(o,e){return o.length===e.length&&compareSubstringIgnoreCase(o,e)===0}function startsWithIgnoreCase(o,e){const t=e.length;return e.length>o.length?!1:compareSubstringIgnoreCase(o,e,0,t)===0}function commonPrefixLength(o,e){const t=Math.min(o.length,e.length);let i;for(i=0;i<t;i++)if(o.charCodeAt(i)!==e.charCodeAt(i))return i;return t}function commonSuffixLength(o,e){const t=Math.min(o.length,e.length);let i;const n=o.length-1,r=e.length-1;for(i=0;i<t;i++)if(o.charCodeAt(n-i)!==e.charCodeAt(r-i))return i;return t}function isHighSurrogate(o){return 55296<=o&&o<=56319}function isLowSurrogate(o){return 56320<=o&&o<=57343}function computeCodePoint(o,e){return(o-55296<<10)+(e-56320)+65536}function getNextCodePoint(o,e,t){const i=o.charCodeAt(t);if(isHighSurrogate(i)&&t+1<e){const n=o.charCodeAt(t+1);if(isLowSurrogate(n))return computeCodePoint(i,n)}return i}function getPrevCodePoint(o,e){const t=o.charCodeAt(e-1);if(isLowSurrogate(t)&&e>1){const i=o.charCodeAt(e-2);if(isHighSurrogate(i))return computeCodePoint(i,t)}return t}class CodePointIterator{get offset(){return this._offset}constructor(e,t=0){this._str=e,this._len=e.length,this._offset=t}setOffset(e){this._offset=e}prevCodePoint(){const e=getPrevCodePoint(this._str,this._offset);return this._offset-=e>=65536?2:1,e}nextCodePoint(){const e=getNextCodePoint(this._str,this._len,this._offset);return this._offset+=e>=65536?2:1,e}eol(){return this._offset>=this._len}}class GraphemeIterator{get offset(){return this._iterator.offset}constructor(e,t=0){this._iterator=new CodePointIterator(e,t)}nextGraphemeLength(){const e=GraphemeBreakTree.getInstance(),t=this._iterator,i=t.offset;let n=e.getGraphemeBreakType(t.nextCodePoint());for(;!t.eol();){const r=t.offset,s=e.getGraphemeBreakType(t.nextCodePoint());if(breakBetweenGraphemeBreakType(n,s)){t.setOffset(r);break}n=s}return t.offset-i}prevGraphemeLength(){const e=GraphemeBreakTree.getInstance(),t=this._iterator,i=t.offset;let n=e.getGraphemeBreakType(t.prevCodePoint());for(;t.offset>0;){const r=t.offset,s=e.getGraphemeBreakType(t.prevCodePoint());if(breakBetweenGraphemeBreakType(s,n)){t.setOffset(r);break}n=s}return i-t.offset}eol(){return this._iterator.eol()}}function nextCharLength(o,e){return new GraphemeIterator(o,e).nextGraphemeLength()}function prevCharLength(o,e){return new GraphemeIterator(o,e).prevGraphemeLength()}function getCharContainingOffset(o,e){e>0&&isLowSurrogate(o.charCodeAt(e))&&e--;const t=e+nextCharLength(o,e);return[t-prevCharLength(o,t),t]}let CONTAINS_RTL;function makeContainsRtl(){return/(?:[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05F4\u0608\u060B\u060D\u061B-\u064A\u066D-\u066F\u0671-\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u0710\u0712-\u072F\u074D-\u07A5\u07B1-\u07EA\u07F4\u07F5\u07FA\u07FE-\u0815\u081A\u0824\u0828\u0830-\u0858\u085E-\u088E\u08A0-\u08C9\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFD3D\uFD50-\uFDC7\uFDF0-\uFDFC\uFE70-\uFEFC]|\uD802[\uDC00-\uDD1B\uDD20-\uDE00\uDE10-\uDE35\uDE40-\uDEE4\uDEEB-\uDF35\uDF40-\uDFFF]|\uD803[\uDC00-\uDD23\uDE80-\uDEA9\uDEAD-\uDF45\uDF51-\uDF81\uDF86-\uDFF6]|\uD83A[\uDC00-\uDCCF\uDD00-\uDD43\uDD4B-\uDFFF]|\uD83B[\uDC00-\uDEBB])/}function containsRTL(o){return CONTAINS_RTL||(CONTAINS_RTL=makeContainsRtl()),CONTAINS_RTL.test(o)}const IS_BASIC_ASCII=/^[\t\n\r\x20-\x7E]*$/;function isBasicASCII(o){return IS_BASIC_ASCII.test(o)}const UNUSUAL_LINE_TERMINATORS=/[\u2028\u2029]/;function containsUnusualLineTerminators(o){return UNUSUAL_LINE_TERMINATORS.test(o)}function isFullWidthCharacter(o){return o>=11904&&o<=55215||o>=63744&&o<=64255||o>=65281&&o<=65374}function isEmojiImprecise(o){return o>=127462&&o<=127487||o===8986||o===8987||o===9200||o===9203||o>=9728&&o<=10175||o===11088||o===11093||o>=127744&&o<=128591||o>=128640&&o<=128764||o>=128992&&o<=129008||o>=129280&&o<=129535||o>=129648&&o<=129782}const UTF8_BOM_CHARACTER="\uFEFF";function startsWithUTF8BOM(o){return!!(o&&o.length>0&&o.charCodeAt(0)===65279)}function containsUppercaseCharacter(o,e=!1){return o?(e&&(o=o.replace(/\\./g,"")),o.toLowerCase()!==o):!1}function singleLetterHash(o){return o=o%(2*26),o<26?String.fromCharCode(97+o):String.fromCharCode(65+o-26)}function breakBetweenGraphemeBreakType(o,e){return o===0?e!==5&&e!==7:o===2&&e===3?!1:o===4||o===2||o===3||e===4||e===2||e===3?!0:!(o===8&&(e===8||e===9||e===11||e===12)||(o===11||o===9)&&(e===9||e===10)||(o===12||o===10)&&e===10||e===5||e===13||e===7||o===1||o===13&&e===14||o===6&&e===6)}class GraphemeBreakTree{static getInstance(){return GraphemeBreakTree._INSTANCE||(GraphemeBreakTree._INSTANCE=new GraphemeBreakTree),GraphemeBreakTree._INSTANCE}constructor(){this._data=getGraphemeBreakRawData()}getGraphemeBreakType(e){if(e<32)return e===10?3:e===13?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*n;else if(e>t[3*n+1])n=2*n+1;else return t[3*n+2];return 0}}GraphemeBreakTree._INSTANCE=null;function getGraphemeBreakRawData(){return JSON.parse("[0,0,0,51229,51255,12,44061,44087,12,127462,127487,6,7083,7085,5,47645,47671,12,54813,54839,12,128678,128678,14,3270,3270,5,9919,9923,14,45853,45879,12,49437,49463,12,53021,53047,12,71216,71218,7,128398,128399,14,129360,129374,14,2519,2519,5,4448,4519,9,9742,9742,14,12336,12336,14,44957,44983,12,46749,46775,12,48541,48567,12,50333,50359,12,52125,52151,12,53917,53943,12,69888,69890,5,73018,73018,5,127990,127990,14,128558,128559,14,128759,128760,14,129653,129655,14,2027,2035,5,2891,2892,7,3761,3761,5,6683,6683,5,8293,8293,4,9825,9826,14,9999,9999,14,43452,43453,5,44509,44535,12,45405,45431,12,46301,46327,12,47197,47223,12,48093,48119,12,48989,49015,12,49885,49911,12,50781,50807,12,51677,51703,12,52573,52599,12,53469,53495,12,54365,54391,12,65279,65279,4,70471,70472,7,72145,72147,7,119173,119179,5,127799,127818,14,128240,128244,14,128512,128512,14,128652,128652,14,128721,128722,14,129292,129292,14,129445,129450,14,129734,129743,14,1476,1477,5,2366,2368,7,2750,2752,7,3076,3076,5,3415,3415,5,4141,4144,5,6109,6109,5,6964,6964,5,7394,7400,5,9197,9198,14,9770,9770,14,9877,9877,14,9968,9969,14,10084,10084,14,43052,43052,5,43713,43713,5,44285,44311,12,44733,44759,12,45181,45207,12,45629,45655,12,46077,46103,12,46525,46551,12,46973,46999,12,47421,47447,12,47869,47895,12,48317,48343,12,48765,48791,12,49213,49239,12,49661,49687,12,50109,50135,12,50557,50583,12,51005,51031,12,51453,51479,12,51901,51927,12,52349,52375,12,52797,52823,12,53245,53271,12,53693,53719,12,54141,54167,12,54589,54615,12,55037,55063,12,69506,69509,5,70191,70193,5,70841,70841,7,71463,71467,5,72330,72342,5,94031,94031,5,123628,123631,5,127763,127765,14,127941,127941,14,128043,128062,14,128302,128317,14,128465,128467,14,128539,128539,14,128640,128640,14,128662,128662,14,128703,128703,14,128745,128745,14,129004,129007,14,129329,129330,14,129402,129402,14,129483,129483,14,129686,129704,14,130048,131069,14,173,173,4,1757,1757,1,2200,2207,5,2434,2435,7,2631,2632,5,2817,2817,5,3008,3008,5,3201,3201,5,3387,3388,5,3542,3542,5,3902,3903,7,4190,4192,5,6002,6003,5,6439,6440,5,6765,6770,7,7019,7027,5,7154,7155,7,8205,8205,13,8505,8505,14,9654,9654,14,9757,9757,14,9792,9792,14,9852,9853,14,9890,9894,14,9937,9937,14,9981,9981,14,10035,10036,14,11035,11036,14,42654,42655,5,43346,43347,7,43587,43587,5,44006,44007,7,44173,44199,12,44397,44423,12,44621,44647,12,44845,44871,12,45069,45095,12,45293,45319,12,45517,45543,12,45741,45767,12,45965,45991,12,46189,46215,12,46413,46439,12,46637,46663,12,46861,46887,12,47085,47111,12,47309,47335,12,47533,47559,12,47757,47783,12,47981,48007,12,48205,48231,12,48429,48455,12,48653,48679,12,48877,48903,12,49101,49127,12,49325,49351,12,49549,49575,12,49773,49799,12,49997,50023,12,50221,50247,12,50445,50471,12,50669,50695,12,50893,50919,12,51117,51143,12,51341,51367,12,51565,51591,12,51789,51815,12,52013,52039,12,52237,52263,12,52461,52487,12,52685,52711,12,52909,52935,12,53133,53159,12,53357,53383,12,53581,53607,12,53805,53831,12,54029,54055,12,54253,54279,12,54477,54503,12,54701,54727,12,54925,54951,12,55149,55175,12,68101,68102,5,69762,69762,7,70067,70069,7,70371,70378,5,70720,70721,7,71087,71087,5,71341,71341,5,71995,71996,5,72249,72249,7,72850,72871,5,73109,73109,5,118576,118598,5,121505,121519,5,127245,127247,14,127568,127569,14,127777,127777,14,127872,127891,14,127956,127967,14,128015,128016,14,128110,128172,14,128259,128259,14,128367,128368,14,128424,128424,14,128488,128488,14,128530,128532,14,128550,128551,14,128566,128566,14,128647,128647,14,128656,128656,14,128667,128673,14,128691,128693,14,128715,128715,14,128728,128732,14,128752,128752,14,128765,128767,14,129096,129103,14,129311,129311,14,129344,129349,14,129394,129394,14,129413,129425,14,129466,129471,14,129511,129535,14,129664,129666,14,129719,129722,14,129760,129767,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2307,2307,7,2382,2383,7,2497,2500,5,2563,2563,7,2677,2677,5,2763,2764,7,2879,2879,5,2914,2915,5,3021,3021,5,3142,3144,5,3263,3263,5,3285,3286,5,3398,3400,7,3530,3530,5,3633,3633,5,3864,3865,5,3974,3975,5,4155,4156,7,4229,4230,5,5909,5909,7,6078,6085,7,6277,6278,5,6451,6456,7,6744,6750,5,6846,6846,5,6972,6972,5,7074,7077,5,7146,7148,7,7222,7223,5,7416,7417,5,8234,8238,4,8417,8417,5,9000,9000,14,9203,9203,14,9730,9731,14,9748,9749,14,9762,9763,14,9776,9783,14,9800,9811,14,9831,9831,14,9872,9873,14,9882,9882,14,9900,9903,14,9929,9933,14,9941,9960,14,9974,9974,14,9989,9989,14,10006,10006,14,10062,10062,14,10160,10160,14,11647,11647,5,12953,12953,14,43019,43019,5,43232,43249,5,43443,43443,5,43567,43568,7,43696,43696,5,43765,43765,7,44013,44013,5,44117,44143,12,44229,44255,12,44341,44367,12,44453,44479,12,44565,44591,12,44677,44703,12,44789,44815,12,44901,44927,12,45013,45039,12,45125,45151,12,45237,45263,12,45349,45375,12,45461,45487,12,45573,45599,12,45685,45711,12,45797,45823,12,45909,45935,12,46021,46047,12,46133,46159,12,46245,46271,12,46357,46383,12,46469,46495,12,46581,46607,12,46693,46719,12,46805,46831,12,46917,46943,12,47029,47055,12,47141,47167,12,47253,47279,12,47365,47391,12,47477,47503,12,47589,47615,12,47701,47727,12,47813,47839,12,47925,47951,12,48037,48063,12,48149,48175,12,48261,48287,12,48373,48399,12,48485,48511,12,48597,48623,12,48709,48735,12,48821,48847,12,48933,48959,12,49045,49071,12,49157,49183,12,49269,49295,12,49381,49407,12,49493,49519,12,49605,49631,12,49717,49743,12,49829,49855,12,49941,49967,12,50053,50079,12,50165,50191,12,50277,50303,12,50389,50415,12,50501,50527,12,50613,50639,12,50725,50751,12,50837,50863,12,50949,50975,12,51061,51087,12,51173,51199,12,51285,51311,12,51397,51423,12,51509,51535,12,51621,51647,12,51733,51759,12,51845,51871,12,51957,51983,12,52069,52095,12,52181,52207,12,52293,52319,12,52405,52431,12,52517,52543,12,52629,52655,12,52741,52767,12,52853,52879,12,52965,52991,12,53077,53103,12,53189,53215,12,53301,53327,12,53413,53439,12,53525,53551,12,53637,53663,12,53749,53775,12,53861,53887,12,53973,53999,12,54085,54111,12,54197,54223,12,54309,54335,12,54421,54447,12,54533,54559,12,54645,54671,12,54757,54783,12,54869,54895,12,54981,55007,12,55093,55119,12,55243,55291,10,66045,66045,5,68325,68326,5,69688,69702,5,69817,69818,5,69957,69958,7,70089,70092,5,70198,70199,5,70462,70462,5,70502,70508,5,70750,70750,5,70846,70846,7,71100,71101,5,71230,71230,7,71351,71351,5,71737,71738,5,72000,72000,7,72160,72160,5,72273,72278,5,72752,72758,5,72882,72883,5,73031,73031,5,73461,73462,7,94192,94193,7,119149,119149,7,121403,121452,5,122915,122916,5,126980,126980,14,127358,127359,14,127535,127535,14,127759,127759,14,127771,127771,14,127792,127793,14,127825,127867,14,127897,127899,14,127945,127945,14,127985,127986,14,128000,128007,14,128021,128021,14,128066,128100,14,128184,128235,14,128249,128252,14,128266,128276,14,128335,128335,14,128379,128390,14,128407,128419,14,128444,128444,14,128481,128481,14,128499,128499,14,128526,128526,14,128536,128536,14,128543,128543,14,128556,128556,14,128564,128564,14,128577,128580,14,128643,128645,14,128649,128649,14,128654,128654,14,128660,128660,14,128664,128664,14,128675,128675,14,128686,128689,14,128695,128696,14,128705,128709,14,128717,128719,14,128725,128725,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129009,129023,14,129160,129167,14,129296,129304,14,129320,129327,14,129340,129342,14,129356,129356,14,129388,129392,14,129399,129400,14,129404,129407,14,129432,129442,14,129454,129455,14,129473,129474,14,129485,129487,14,129648,129651,14,129659,129660,14,129671,129679,14,129709,129711,14,129728,129730,14,129751,129753,14,129776,129782,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2274,2274,1,2363,2363,7,2377,2380,7,2402,2403,5,2494,2494,5,2507,2508,7,2558,2558,5,2622,2624,7,2641,2641,5,2691,2691,7,2759,2760,5,2786,2787,5,2876,2876,5,2881,2884,5,2901,2902,5,3006,3006,5,3014,3016,7,3072,3072,5,3134,3136,5,3157,3158,5,3260,3260,5,3266,3266,5,3274,3275,7,3328,3329,5,3391,3392,7,3405,3405,5,3457,3457,5,3536,3537,7,3551,3551,5,3636,3642,5,3764,3772,5,3895,3895,5,3967,3967,7,3993,4028,5,4146,4151,5,4182,4183,7,4226,4226,5,4253,4253,5,4957,4959,5,5940,5940,7,6070,6070,7,6087,6088,7,6158,6158,4,6432,6434,5,6448,6449,7,6679,6680,5,6742,6742,5,6754,6754,5,6783,6783,5,6912,6915,5,6966,6970,5,6978,6978,5,7042,7042,7,7080,7081,5,7143,7143,7,7150,7150,7,7212,7219,5,7380,7392,5,7412,7412,5,8203,8203,4,8232,8232,4,8265,8265,14,8400,8412,5,8421,8432,5,8617,8618,14,9167,9167,14,9200,9200,14,9410,9410,14,9723,9726,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9774,14,9786,9786,14,9794,9794,14,9823,9823,14,9828,9828,14,9833,9850,14,9855,9855,14,9875,9875,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9935,9935,14,9939,9939,14,9962,9962,14,9972,9972,14,9978,9978,14,9986,9986,14,9997,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10133,10135,14,10548,10549,14,11093,11093,14,12330,12333,5,12441,12442,5,42608,42610,5,43010,43010,5,43045,43046,5,43188,43203,7,43302,43309,5,43392,43394,5,43446,43449,5,43493,43493,5,43571,43572,7,43597,43597,7,43703,43704,5,43756,43757,5,44003,44004,7,44009,44010,7,44033,44059,12,44089,44115,12,44145,44171,12,44201,44227,12,44257,44283,12,44313,44339,12,44369,44395,12,44425,44451,12,44481,44507,12,44537,44563,12,44593,44619,12,44649,44675,12,44705,44731,12,44761,44787,12,44817,44843,12,44873,44899,12,44929,44955,12,44985,45011,12,45041,45067,12,45097,45123,12,45153,45179,12,45209,45235,12,45265,45291,12,45321,45347,12,45377,45403,12,45433,45459,12,45489,45515,12,45545,45571,12,45601,45627,12,45657,45683,12,45713,45739,12,45769,45795,12,45825,45851,12,45881,45907,12,45937,45963,12,45993,46019,12,46049,46075,12,46105,46131,12,46161,46187,12,46217,46243,12,46273,46299,12,46329,46355,12,46385,46411,12,46441,46467,12,46497,46523,12,46553,46579,12,46609,46635,12,46665,46691,12,46721,46747,12,46777,46803,12,46833,46859,12,46889,46915,12,46945,46971,12,47001,47027,12,47057,47083,12,47113,47139,12,47169,47195,12,47225,47251,12,47281,47307,12,47337,47363,12,47393,47419,12,47449,47475,12,47505,47531,12,47561,47587,12,47617,47643,12,47673,47699,12,47729,47755,12,47785,47811,12,47841,47867,12,47897,47923,12,47953,47979,12,48009,48035,12,48065,48091,12,48121,48147,12,48177,48203,12,48233,48259,12,48289,48315,12,48345,48371,12,48401,48427,12,48457,48483,12,48513,48539,12,48569,48595,12,48625,48651,12,48681,48707,12,48737,48763,12,48793,48819,12,48849,48875,12,48905,48931,12,48961,48987,12,49017,49043,12,49073,49099,12,49129,49155,12,49185,49211,12,49241,49267,12,49297,49323,12,49353,49379,12,49409,49435,12,49465,49491,12,49521,49547,12,49577,49603,12,49633,49659,12,49689,49715,12,49745,49771,12,49801,49827,12,49857,49883,12,49913,49939,12,49969,49995,12,50025,50051,12,50081,50107,12,50137,50163,12,50193,50219,12,50249,50275,12,50305,50331,12,50361,50387,12,50417,50443,12,50473,50499,12,50529,50555,12,50585,50611,12,50641,50667,12,50697,50723,12,50753,50779,12,50809,50835,12,50865,50891,12,50921,50947,12,50977,51003,12,51033,51059,12,51089,51115,12,51145,51171,12,51201,51227,12,51257,51283,12,51313,51339,12,51369,51395,12,51425,51451,12,51481,51507,12,51537,51563,12,51593,51619,12,51649,51675,12,51705,51731,12,51761,51787,12,51817,51843,12,51873,51899,12,51929,51955,12,51985,52011,12,52041,52067,12,52097,52123,12,52153,52179,12,52209,52235,12,52265,52291,12,52321,52347,12,52377,52403,12,52433,52459,12,52489,52515,12,52545,52571,12,52601,52627,12,52657,52683,12,52713,52739,12,52769,52795,12,52825,52851,12,52881,52907,12,52937,52963,12,52993,53019,12,53049,53075,12,53105,53131,12,53161,53187,12,53217,53243,12,53273,53299,12,53329,53355,12,53385,53411,12,53441,53467,12,53497,53523,12,53553,53579,12,53609,53635,12,53665,53691,12,53721,53747,12,53777,53803,12,53833,53859,12,53889,53915,12,53945,53971,12,54001,54027,12,54057,54083,12,54113,54139,12,54169,54195,12,54225,54251,12,54281,54307,12,54337,54363,12,54393,54419,12,54449,54475,12,54505,54531,12,54561,54587,12,54617,54643,12,54673,54699,12,54729,54755,12,54785,54811,12,54841,54867,12,54897,54923,12,54953,54979,12,55009,55035,12,55065,55091,12,55121,55147,12,55177,55203,12,65024,65039,5,65520,65528,4,66422,66426,5,68152,68154,5,69291,69292,5,69633,69633,5,69747,69748,5,69811,69814,5,69826,69826,5,69932,69932,7,70016,70017,5,70079,70080,7,70095,70095,5,70196,70196,5,70367,70367,5,70402,70403,7,70464,70464,5,70487,70487,5,70709,70711,7,70725,70725,7,70833,70834,7,70843,70844,7,70849,70849,7,71090,71093,5,71103,71104,5,71227,71228,7,71339,71339,5,71344,71349,5,71458,71461,5,71727,71735,5,71985,71989,7,71998,71998,5,72002,72002,7,72154,72155,5,72193,72202,5,72251,72254,5,72281,72283,5,72344,72345,5,72766,72766,7,72874,72880,5,72885,72886,5,73023,73029,5,73104,73105,5,73111,73111,5,92912,92916,5,94095,94098,5,113824,113827,4,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,125252,125258,5,127183,127183,14,127340,127343,14,127377,127386,14,127491,127503,14,127548,127551,14,127744,127756,14,127761,127761,14,127769,127769,14,127773,127774,14,127780,127788,14,127796,127797,14,127820,127823,14,127869,127869,14,127894,127895,14,127902,127903,14,127943,127943,14,127947,127950,14,127972,127972,14,127988,127988,14,127992,127994,14,128009,128011,14,128019,128019,14,128023,128041,14,128064,128064,14,128102,128107,14,128174,128181,14,128238,128238,14,128246,128247,14,128254,128254,14,128264,128264,14,128278,128299,14,128329,128330,14,128348,128359,14,128371,128377,14,128392,128393,14,128401,128404,14,128421,128421,14,128433,128434,14,128450,128452,14,128476,128478,14,128483,128483,14,128495,128495,14,128506,128506,14,128519,128520,14,128528,128528,14,128534,128534,14,128538,128538,14,128540,128542,14,128544,128549,14,128552,128555,14,128557,128557,14,128560,128563,14,128565,128565,14,128567,128576,14,128581,128591,14,128641,128642,14,128646,128646,14,128648,128648,14,128650,128651,14,128653,128653,14,128655,128655,14,128657,128659,14,128661,128661,14,128663,128663,14,128665,128666,14,128674,128674,14,128676,128677,14,128679,128685,14,128690,128690,14,128694,128694,14,128697,128702,14,128704,128704,14,128710,128714,14,128716,128716,14,128720,128720,14,128723,128724,14,128726,128727,14,128733,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129008,129008,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129661,129663,14,129667,129670,14,129680,129685,14,129705,129708,14,129712,129718,14,129723,129727,14,129731,129733,14,129744,129750,14,129754,129759,14,129768,129775,14,129783,129791,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2192,2193,1,2250,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3132,3132,5,3137,3140,7,3146,3149,5,3170,3171,5,3202,3203,7,3262,3262,7,3264,3265,7,3267,3268,7,3271,3272,7,3276,3277,5,3298,3299,5,3330,3331,7,3390,3390,5,3393,3396,5,3402,3404,7,3406,3406,1,3426,3427,5,3458,3459,7,3535,3535,5,3538,3540,5,3544,3550,7,3570,3571,7,3635,3635,7,3655,3662,5,3763,3763,7,3784,3789,5,3893,3893,5,3897,3897,5,3953,3966,5,3968,3972,5,3981,3991,5,4038,4038,5,4145,4145,7,4153,4154,5,4157,4158,5,4184,4185,5,4209,4212,5,4228,4228,7,4237,4237,5,4352,4447,8,4520,4607,10,5906,5908,5,5938,5939,5,5970,5971,5,6068,6069,5,6071,6077,5,6086,6086,5,6089,6099,5,6155,6157,5,6159,6159,5,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6862,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7679,5,8204,8204,5,8206,8207,4,8233,8233,4,8252,8252,14,8288,8292,4,8294,8303,4,8413,8416,5,8418,8420,5,8482,8482,14,8596,8601,14,8986,8987,14,9096,9096,14,9193,9196,14,9199,9199,14,9201,9202,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9729,14,9732,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9775,9775,14,9784,9785,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9874,14,9876,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9934,14,9936,9936,14,9938,9938,14,9940,9940,14,9961,9961,14,9963,9967,14,9970,9971,14,9973,9973,14,9975,9977,14,9979,9980,14,9982,9985,14,9987,9988,14,9992,9996,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10083,14,10085,10087,14,10145,10145,14,10175,10175,14,11013,11015,14,11088,11088,14,11503,11505,5,11744,11775,5,12334,12335,5,12349,12349,14,12951,12951,14,42607,42607,5,42612,42621,5,42736,42737,5,43014,43014,5,43043,43044,7,43047,43047,7,43136,43137,7,43204,43205,5,43263,43263,5,43335,43345,5,43360,43388,8,43395,43395,7,43444,43445,7,43450,43451,7,43454,43456,7,43561,43566,5,43569,43570,5,43573,43574,5,43596,43596,5,43644,43644,5,43698,43700,5,43710,43711,5,43755,43755,7,43758,43759,7,43766,43766,5,44005,44005,5,44008,44008,5,44012,44012,7,44032,44032,11,44060,44060,11,44088,44088,11,44116,44116,11,44144,44144,11,44172,44172,11,44200,44200,11,44228,44228,11,44256,44256,11,44284,44284,11,44312,44312,11,44340,44340,11,44368,44368,11,44396,44396,11,44424,44424,11,44452,44452,11,44480,44480,11,44508,44508,11,44536,44536,11,44564,44564,11,44592,44592,11,44620,44620,11,44648,44648,11,44676,44676,11,44704,44704,11,44732,44732,11,44760,44760,11,44788,44788,11,44816,44816,11,44844,44844,11,44872,44872,11,44900,44900,11,44928,44928,11,44956,44956,11,44984,44984,11,45012,45012,11,45040,45040,11,45068,45068,11,45096,45096,11,45124,45124,11,45152,45152,11,45180,45180,11,45208,45208,11,45236,45236,11,45264,45264,11,45292,45292,11,45320,45320,11,45348,45348,11,45376,45376,11,45404,45404,11,45432,45432,11,45460,45460,11,45488,45488,11,45516,45516,11,45544,45544,11,45572,45572,11,45600,45600,11,45628,45628,11,45656,45656,11,45684,45684,11,45712,45712,11,45740,45740,11,45768,45768,11,45796,45796,11,45824,45824,11,45852,45852,11,45880,45880,11,45908,45908,11,45936,45936,11,45964,45964,11,45992,45992,11,46020,46020,11,46048,46048,11,46076,46076,11,46104,46104,11,46132,46132,11,46160,46160,11,46188,46188,11,46216,46216,11,46244,46244,11,46272,46272,11,46300,46300,11,46328,46328,11,46356,46356,11,46384,46384,11,46412,46412,11,46440,46440,11,46468,46468,11,46496,46496,11,46524,46524,11,46552,46552,11,46580,46580,11,46608,46608,11,46636,46636,11,46664,46664,11,46692,46692,11,46720,46720,11,46748,46748,11,46776,46776,11,46804,46804,11,46832,46832,11,46860,46860,11,46888,46888,11,46916,46916,11,46944,46944,11,46972,46972,11,47000,47000,11,47028,47028,11,47056,47056,11,47084,47084,11,47112,47112,11,47140,47140,11,47168,47168,11,47196,47196,11,47224,47224,11,47252,47252,11,47280,47280,11,47308,47308,11,47336,47336,11,47364,47364,11,47392,47392,11,47420,47420,11,47448,47448,11,47476,47476,11,47504,47504,11,47532,47532,11,47560,47560,11,47588,47588,11,47616,47616,11,47644,47644,11,47672,47672,11,47700,47700,11,47728,47728,11,47756,47756,11,47784,47784,11,47812,47812,11,47840,47840,11,47868,47868,11,47896,47896,11,47924,47924,11,47952,47952,11,47980,47980,11,48008,48008,11,48036,48036,11,48064,48064,11,48092,48092,11,48120,48120,11,48148,48148,11,48176,48176,11,48204,48204,11,48232,48232,11,48260,48260,11,48288,48288,11,48316,48316,11,48344,48344,11,48372,48372,11,48400,48400,11,48428,48428,11,48456,48456,11,48484,48484,11,48512,48512,11,48540,48540,11,48568,48568,11,48596,48596,11,48624,48624,11,48652,48652,11,48680,48680,11,48708,48708,11,48736,48736,11,48764,48764,11,48792,48792,11,48820,48820,11,48848,48848,11,48876,48876,11,48904,48904,11,48932,48932,11,48960,48960,11,48988,48988,11,49016,49016,11,49044,49044,11,49072,49072,11,49100,49100,11,49128,49128,11,49156,49156,11,49184,49184,11,49212,49212,11,49240,49240,11,49268,49268,11,49296,49296,11,49324,49324,11,49352,49352,11,49380,49380,11,49408,49408,11,49436,49436,11,49464,49464,11,49492,49492,11,49520,49520,11,49548,49548,11,49576,49576,11,49604,49604,11,49632,49632,11,49660,49660,11,49688,49688,11,49716,49716,11,49744,49744,11,49772,49772,11,49800,49800,11,49828,49828,11,49856,49856,11,49884,49884,11,49912,49912,11,49940,49940,11,49968,49968,11,49996,49996,11,50024,50024,11,50052,50052,11,50080,50080,11,50108,50108,11,50136,50136,11,50164,50164,11,50192,50192,11,50220,50220,11,50248,50248,11,50276,50276,11,50304,50304,11,50332,50332,11,50360,50360,11,50388,50388,11,50416,50416,11,50444,50444,11,50472,50472,11,50500,50500,11,50528,50528,11,50556,50556,11,50584,50584,11,50612,50612,11,50640,50640,11,50668,50668,11,50696,50696,11,50724,50724,11,50752,50752,11,50780,50780,11,50808,50808,11,50836,50836,11,50864,50864,11,50892,50892,11,50920,50920,11,50948,50948,11,50976,50976,11,51004,51004,11,51032,51032,11,51060,51060,11,51088,51088,11,51116,51116,11,51144,51144,11,51172,51172,11,51200,51200,11,51228,51228,11,51256,51256,11,51284,51284,11,51312,51312,11,51340,51340,11,51368,51368,11,51396,51396,11,51424,51424,11,51452,51452,11,51480,51480,11,51508,51508,11,51536,51536,11,51564,51564,11,51592,51592,11,51620,51620,11,51648,51648,11,51676,51676,11,51704,51704,11,51732,51732,11,51760,51760,11,51788,51788,11,51816,51816,11,51844,51844,11,51872,51872,11,51900,51900,11,51928,51928,11,51956,51956,11,51984,51984,11,52012,52012,11,52040,52040,11,52068,52068,11,52096,52096,11,52124,52124,11,52152,52152,11,52180,52180,11,52208,52208,11,52236,52236,11,52264,52264,11,52292,52292,11,52320,52320,11,52348,52348,11,52376,52376,11,52404,52404,11,52432,52432,11,52460,52460,11,52488,52488,11,52516,52516,11,52544,52544,11,52572,52572,11,52600,52600,11,52628,52628,11,52656,52656,11,52684,52684,11,52712,52712,11,52740,52740,11,52768,52768,11,52796,52796,11,52824,52824,11,52852,52852,11,52880,52880,11,52908,52908,11,52936,52936,11,52964,52964,11,52992,52992,11,53020,53020,11,53048,53048,11,53076,53076,11,53104,53104,11,53132,53132,11,53160,53160,11,53188,53188,11,53216,53216,11,53244,53244,11,53272,53272,11,53300,53300,11,53328,53328,11,53356,53356,11,53384,53384,11,53412,53412,11,53440,53440,11,53468,53468,11,53496,53496,11,53524,53524,11,53552,53552,11,53580,53580,11,53608,53608,11,53636,53636,11,53664,53664,11,53692,53692,11,53720,53720,11,53748,53748,11,53776,53776,11,53804,53804,11,53832,53832,11,53860,53860,11,53888,53888,11,53916,53916,11,53944,53944,11,53972,53972,11,54000,54000,11,54028,54028,11,54056,54056,11,54084,54084,11,54112,54112,11,54140,54140,11,54168,54168,11,54196,54196,11,54224,54224,11,54252,54252,11,54280,54280,11,54308,54308,11,54336,54336,11,54364,54364,11,54392,54392,11,54420,54420,11,54448,54448,11,54476,54476,11,54504,54504,11,54532,54532,11,54560,54560,11,54588,54588,11,54616,54616,11,54644,54644,11,54672,54672,11,54700,54700,11,54728,54728,11,54756,54756,11,54784,54784,11,54812,54812,11,54840,54840,11,54868,54868,11,54896,54896,11,54924,54924,11,54952,54952,11,54980,54980,11,55008,55008,11,55036,55036,11,55064,55064,11,55092,55092,11,55120,55120,11,55148,55148,11,55176,55176,11,55216,55238,9,64286,64286,5,65056,65071,5,65438,65439,5,65529,65531,4,66272,66272,5,68097,68099,5,68108,68111,5,68159,68159,5,68900,68903,5,69446,69456,5,69632,69632,7,69634,69634,7,69744,69744,5,69759,69761,5,69808,69810,7,69815,69816,7,69821,69821,1,69837,69837,1,69927,69931,5,69933,69940,5,70003,70003,5,70018,70018,7,70070,70078,5,70082,70083,1,70094,70094,7,70188,70190,7,70194,70195,7,70197,70197,7,70206,70206,5,70368,70370,7,70400,70401,5,70459,70460,5,70463,70463,7,70465,70468,7,70475,70477,7,70498,70499,7,70512,70516,5,70712,70719,5,70722,70724,5,70726,70726,5,70832,70832,5,70835,70840,5,70842,70842,5,70845,70845,5,70847,70848,5,70850,70851,5,71088,71089,7,71096,71099,7,71102,71102,7,71132,71133,5,71219,71226,5,71229,71229,5,71231,71232,5,71340,71340,7,71342,71343,7,71350,71350,7,71453,71455,5,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,118528,118573,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123566,123566,5,125136,125142,5,126976,126979,14,126981,127182,14,127184,127231,14,127279,127279,14,127344,127345,14,127374,127374,14,127405,127461,14,127489,127490,14,127514,127514,14,127538,127546,14,127561,127567,14,127570,127743,14,127757,127758,14,127760,127760,14,127762,127762,14,127766,127768,14,127770,127770,14,127772,127772,14,127775,127776,14,127778,127779,14,127789,127791,14,127794,127795,14,127798,127798,14,127819,127819,14,127824,127824,14,127868,127868,14,127870,127871,14,127892,127893,14,127896,127896,14,127900,127901,14,127904,127940,14,127942,127942,14,127944,127944,14,127946,127946,14,127951,127955,14,127968,127971,14,127973,127984,14,127987,127987,14,127989,127989,14,127991,127991,14,127995,127999,5,128008,128008,14,128012,128014,14,128017,128018,14,128020,128020,14,128022,128022,14,128042,128042,14,128063,128063,14,128065,128065,14,128101,128101,14,128108,128109,14,128173,128173,14,128182,128183,14,128236,128237,14,128239,128239,14,128245,128245,14,128248,128248,14,128253,128253,14,128255,128258,14,128260,128263,14,128265,128265,14,128277,128277,14,128300,128301,14,128326,128328,14,128331,128334,14,128336,128347,14,128360,128366,14,128369,128370,14,128378,128378,14,128391,128391,14,128394,128397,14,128400,128400,14,128405,128406,14,128420,128420,14,128422,128423,14,128425,128432,14,128435,128443,14,128445,128449,14,128453,128464,14,128468,128475,14,128479,128480,14,128482,128482,14,128484,128487,14,128489,128494,14,128496,128498,14,128500,128505,14,128507,128511,14,128513,128518,14,128521,128525,14,128527,128527,14,128529,128529,14,128533,128533,14,128535,128535,14,128537,128537,14]")}function getLeftDeleteOffset(o,e){if(o===0)return 0;const t=getOffsetBeforeLastEmojiComponent(o,e);if(t!==void 0)return t;const i=new CodePointIterator(e,o);return i.prevCodePoint(),i.offset}function getOffsetBeforeLastEmojiComponent(o,e){const t=new CodePointIterator(e,o);let i=t.prevCodePoint();for(;isEmojiModifier(i)||i===65039||i===8419;){if(t.offset===0)return;i=t.prevCodePoint()}if(!isEmojiImprecise(i))return;let n=t.offset;return n>0&&t.prevCodePoint()===8205&&(n=t.offset),n}function isEmojiModifier(o){return 127995<=o&&o<=127999}const noBreakWhitespace=" ";class AmbiguousCharacters{static getInstance(e){return _a$3.cache.get(Array.from(e))}static getLocales(){return _a$3._locales.value}constructor(e){this.confusableDictionary=e}isAmbiguous(e){return this.confusableDictionary.has(e)}getPrimaryConfusable(e){return this.confusableDictionary.get(e)}getConfusableCodePoints(){return new Set(this.confusableDictionary.keys())}}_a$3=AmbiguousCharacters;AmbiguousCharacters.ambiguousCharacterData=new Lazy(()=>JSON.parse('{"_common":[8232,32,8233,32,5760,32,8192,32,8193,32,8194,32,8195,32,8196,32,8197,32,8198,32,8200,32,8201,32,8202,32,8287,32,8199,32,8239,32,2042,95,65101,95,65102,95,65103,95,8208,45,8209,45,8210,45,65112,45,1748,45,8259,45,727,45,8722,45,10134,45,11450,45,1549,44,1643,44,8218,44,184,44,42233,44,894,59,2307,58,2691,58,1417,58,1795,58,1796,58,5868,58,65072,58,6147,58,6153,58,8282,58,1475,58,760,58,42889,58,8758,58,720,58,42237,58,451,33,11601,33,660,63,577,63,2429,63,5038,63,42731,63,119149,46,8228,46,1793,46,1794,46,42510,46,68176,46,1632,46,1776,46,42232,46,1373,96,65287,96,8219,96,8242,96,1370,96,1523,96,8175,96,65344,96,900,96,8189,96,8125,96,8127,96,8190,96,697,96,884,96,712,96,714,96,715,96,756,96,699,96,701,96,700,96,702,96,42892,96,1497,96,2036,96,2037,96,5194,96,5836,96,94033,96,94034,96,65339,91,10088,40,10098,40,12308,40,64830,40,65341,93,10089,41,10099,41,12309,41,64831,41,10100,123,119060,123,10101,125,65342,94,8270,42,1645,42,8727,42,66335,42,5941,47,8257,47,8725,47,8260,47,9585,47,10187,47,10744,47,119354,47,12755,47,12339,47,11462,47,20031,47,12035,47,65340,92,65128,92,8726,92,10189,92,10741,92,10745,92,119311,92,119355,92,12756,92,20022,92,12034,92,42872,38,708,94,710,94,5869,43,10133,43,66203,43,8249,60,10094,60,706,60,119350,60,5176,60,5810,60,5120,61,11840,61,12448,61,42239,61,8250,62,10095,62,707,62,119351,62,5171,62,94015,62,8275,126,732,126,8128,126,8764,126,65372,124,65293,45,120784,50,120794,50,120804,50,120814,50,120824,50,130034,50,42842,50,423,50,1000,50,42564,50,5311,50,42735,50,119302,51,120785,51,120795,51,120805,51,120815,51,120825,51,130035,51,42923,51,540,51,439,51,42858,51,11468,51,1248,51,94011,51,71882,51,120786,52,120796,52,120806,52,120816,52,120826,52,130036,52,5070,52,71855,52,120787,53,120797,53,120807,53,120817,53,120827,53,130037,53,444,53,71867,53,120788,54,120798,54,120808,54,120818,54,120828,54,130038,54,11474,54,5102,54,71893,54,119314,55,120789,55,120799,55,120809,55,120819,55,120829,55,130039,55,66770,55,71878,55,2819,56,2538,56,2666,56,125131,56,120790,56,120800,56,120810,56,120820,56,120830,56,130040,56,547,56,546,56,66330,56,2663,57,2920,57,2541,57,3437,57,120791,57,120801,57,120811,57,120821,57,120831,57,130041,57,42862,57,11466,57,71884,57,71852,57,71894,57,9082,97,65345,97,119834,97,119886,97,119938,97,119990,97,120042,97,120094,97,120146,97,120198,97,120250,97,120302,97,120354,97,120406,97,120458,97,593,97,945,97,120514,97,120572,97,120630,97,120688,97,120746,97,65313,65,119808,65,119860,65,119912,65,119964,65,120016,65,120068,65,120120,65,120172,65,120224,65,120276,65,120328,65,120380,65,120432,65,913,65,120488,65,120546,65,120604,65,120662,65,120720,65,5034,65,5573,65,42222,65,94016,65,66208,65,119835,98,119887,98,119939,98,119991,98,120043,98,120095,98,120147,98,120199,98,120251,98,120303,98,120355,98,120407,98,120459,98,388,98,5071,98,5234,98,5551,98,65314,66,8492,66,119809,66,119861,66,119913,66,120017,66,120069,66,120121,66,120173,66,120225,66,120277,66,120329,66,120381,66,120433,66,42932,66,914,66,120489,66,120547,66,120605,66,120663,66,120721,66,5108,66,5623,66,42192,66,66178,66,66209,66,66305,66,65347,99,8573,99,119836,99,119888,99,119940,99,119992,99,120044,99,120096,99,120148,99,120200,99,120252,99,120304,99,120356,99,120408,99,120460,99,7428,99,1010,99,11429,99,43951,99,66621,99,128844,67,71922,67,71913,67,65315,67,8557,67,8450,67,8493,67,119810,67,119862,67,119914,67,119966,67,120018,67,120174,67,120226,67,120278,67,120330,67,120382,67,120434,67,1017,67,11428,67,5087,67,42202,67,66210,67,66306,67,66581,67,66844,67,8574,100,8518,100,119837,100,119889,100,119941,100,119993,100,120045,100,120097,100,120149,100,120201,100,120253,100,120305,100,120357,100,120409,100,120461,100,1281,100,5095,100,5231,100,42194,100,8558,68,8517,68,119811,68,119863,68,119915,68,119967,68,120019,68,120071,68,120123,68,120175,68,120227,68,120279,68,120331,68,120383,68,120435,68,5024,68,5598,68,5610,68,42195,68,8494,101,65349,101,8495,101,8519,101,119838,101,119890,101,119942,101,120046,101,120098,101,120150,101,120202,101,120254,101,120306,101,120358,101,120410,101,120462,101,43826,101,1213,101,8959,69,65317,69,8496,69,119812,69,119864,69,119916,69,120020,69,120072,69,120124,69,120176,69,120228,69,120280,69,120332,69,120384,69,120436,69,917,69,120492,69,120550,69,120608,69,120666,69,120724,69,11577,69,5036,69,42224,69,71846,69,71854,69,66182,69,119839,102,119891,102,119943,102,119995,102,120047,102,120099,102,120151,102,120203,102,120255,102,120307,102,120359,102,120411,102,120463,102,43829,102,42905,102,383,102,7837,102,1412,102,119315,70,8497,70,119813,70,119865,70,119917,70,120021,70,120073,70,120125,70,120177,70,120229,70,120281,70,120333,70,120385,70,120437,70,42904,70,988,70,120778,70,5556,70,42205,70,71874,70,71842,70,66183,70,66213,70,66853,70,65351,103,8458,103,119840,103,119892,103,119944,103,120048,103,120100,103,120152,103,120204,103,120256,103,120308,103,120360,103,120412,103,120464,103,609,103,7555,103,397,103,1409,103,119814,71,119866,71,119918,71,119970,71,120022,71,120074,71,120126,71,120178,71,120230,71,120282,71,120334,71,120386,71,120438,71,1292,71,5056,71,5107,71,42198,71,65352,104,8462,104,119841,104,119945,104,119997,104,120049,104,120101,104,120153,104,120205,104,120257,104,120309,104,120361,104,120413,104,120465,104,1211,104,1392,104,5058,104,65320,72,8459,72,8460,72,8461,72,119815,72,119867,72,119919,72,120023,72,120179,72,120231,72,120283,72,120335,72,120387,72,120439,72,919,72,120494,72,120552,72,120610,72,120668,72,120726,72,11406,72,5051,72,5500,72,42215,72,66255,72,731,105,9075,105,65353,105,8560,105,8505,105,8520,105,119842,105,119894,105,119946,105,119998,105,120050,105,120102,105,120154,105,120206,105,120258,105,120310,105,120362,105,120414,105,120466,105,120484,105,618,105,617,105,953,105,8126,105,890,105,120522,105,120580,105,120638,105,120696,105,120754,105,1110,105,42567,105,1231,105,43893,105,5029,105,71875,105,65354,106,8521,106,119843,106,119895,106,119947,106,119999,106,120051,106,120103,106,120155,106,120207,106,120259,106,120311,106,120363,106,120415,106,120467,106,1011,106,1112,106,65322,74,119817,74,119869,74,119921,74,119973,74,120025,74,120077,74,120129,74,120181,74,120233,74,120285,74,120337,74,120389,74,120441,74,42930,74,895,74,1032,74,5035,74,5261,74,42201,74,119844,107,119896,107,119948,107,120000,107,120052,107,120104,107,120156,107,120208,107,120260,107,120312,107,120364,107,120416,107,120468,107,8490,75,65323,75,119818,75,119870,75,119922,75,119974,75,120026,75,120078,75,120130,75,120182,75,120234,75,120286,75,120338,75,120390,75,120442,75,922,75,120497,75,120555,75,120613,75,120671,75,120729,75,11412,75,5094,75,5845,75,42199,75,66840,75,1472,108,8739,73,9213,73,65512,73,1633,108,1777,73,66336,108,125127,108,120783,73,120793,73,120803,73,120813,73,120823,73,130033,73,65321,73,8544,73,8464,73,8465,73,119816,73,119868,73,119920,73,120024,73,120128,73,120180,73,120232,73,120284,73,120336,73,120388,73,120440,73,65356,108,8572,73,8467,108,119845,108,119897,108,119949,108,120001,108,120053,108,120105,73,120157,73,120209,73,120261,73,120313,73,120365,73,120417,73,120469,73,448,73,120496,73,120554,73,120612,73,120670,73,120728,73,11410,73,1030,73,1216,73,1493,108,1503,108,1575,108,126464,108,126592,108,65166,108,65165,108,1994,108,11599,73,5825,73,42226,73,93992,73,66186,124,66313,124,119338,76,8556,76,8466,76,119819,76,119871,76,119923,76,120027,76,120079,76,120131,76,120183,76,120235,76,120287,76,120339,76,120391,76,120443,76,11472,76,5086,76,5290,76,42209,76,93974,76,71843,76,71858,76,66587,76,66854,76,65325,77,8559,77,8499,77,119820,77,119872,77,119924,77,120028,77,120080,77,120132,77,120184,77,120236,77,120288,77,120340,77,120392,77,120444,77,924,77,120499,77,120557,77,120615,77,120673,77,120731,77,1018,77,11416,77,5047,77,5616,77,5846,77,42207,77,66224,77,66321,77,119847,110,119899,110,119951,110,120003,110,120055,110,120107,110,120159,110,120211,110,120263,110,120315,110,120367,110,120419,110,120471,110,1400,110,1404,110,65326,78,8469,78,119821,78,119873,78,119925,78,119977,78,120029,78,120081,78,120185,78,120237,78,120289,78,120341,78,120393,78,120445,78,925,78,120500,78,120558,78,120616,78,120674,78,120732,78,11418,78,42208,78,66835,78,3074,111,3202,111,3330,111,3458,111,2406,111,2662,111,2790,111,3046,111,3174,111,3302,111,3430,111,3664,111,3792,111,4160,111,1637,111,1781,111,65359,111,8500,111,119848,111,119900,111,119952,111,120056,111,120108,111,120160,111,120212,111,120264,111,120316,111,120368,111,120420,111,120472,111,7439,111,7441,111,43837,111,959,111,120528,111,120586,111,120644,111,120702,111,120760,111,963,111,120532,111,120590,111,120648,111,120706,111,120764,111,11423,111,4351,111,1413,111,1505,111,1607,111,126500,111,126564,111,126596,111,65259,111,65260,111,65258,111,65257,111,1726,111,64428,111,64429,111,64427,111,64426,111,1729,111,64424,111,64425,111,64423,111,64422,111,1749,111,3360,111,4125,111,66794,111,71880,111,71895,111,66604,111,1984,79,2534,79,2918,79,12295,79,70864,79,71904,79,120782,79,120792,79,120802,79,120812,79,120822,79,130032,79,65327,79,119822,79,119874,79,119926,79,119978,79,120030,79,120082,79,120134,79,120186,79,120238,79,120290,79,120342,79,120394,79,120446,79,927,79,120502,79,120560,79,120618,79,120676,79,120734,79,11422,79,1365,79,11604,79,4816,79,2848,79,66754,79,42227,79,71861,79,66194,79,66219,79,66564,79,66838,79,9076,112,65360,112,119849,112,119901,112,119953,112,120005,112,120057,112,120109,112,120161,112,120213,112,120265,112,120317,112,120369,112,120421,112,120473,112,961,112,120530,112,120544,112,120588,112,120602,112,120646,112,120660,112,120704,112,120718,112,120762,112,120776,112,11427,112,65328,80,8473,80,119823,80,119875,80,119927,80,119979,80,120031,80,120083,80,120187,80,120239,80,120291,80,120343,80,120395,80,120447,80,929,80,120504,80,120562,80,120620,80,120678,80,120736,80,11426,80,5090,80,5229,80,42193,80,66197,80,119850,113,119902,113,119954,113,120006,113,120058,113,120110,113,120162,113,120214,113,120266,113,120318,113,120370,113,120422,113,120474,113,1307,113,1379,113,1382,113,8474,81,119824,81,119876,81,119928,81,119980,81,120032,81,120084,81,120188,81,120240,81,120292,81,120344,81,120396,81,120448,81,11605,81,119851,114,119903,114,119955,114,120007,114,120059,114,120111,114,120163,114,120215,114,120267,114,120319,114,120371,114,120423,114,120475,114,43847,114,43848,114,7462,114,11397,114,43905,114,119318,82,8475,82,8476,82,8477,82,119825,82,119877,82,119929,82,120033,82,120189,82,120241,82,120293,82,120345,82,120397,82,120449,82,422,82,5025,82,5074,82,66740,82,5511,82,42211,82,94005,82,65363,115,119852,115,119904,115,119956,115,120008,115,120060,115,120112,115,120164,115,120216,115,120268,115,120320,115,120372,115,120424,115,120476,115,42801,115,445,115,1109,115,43946,115,71873,115,66632,115,65331,83,119826,83,119878,83,119930,83,119982,83,120034,83,120086,83,120138,83,120190,83,120242,83,120294,83,120346,83,120398,83,120450,83,1029,83,1359,83,5077,83,5082,83,42210,83,94010,83,66198,83,66592,83,119853,116,119905,116,119957,116,120009,116,120061,116,120113,116,120165,116,120217,116,120269,116,120321,116,120373,116,120425,116,120477,116,8868,84,10201,84,128872,84,65332,84,119827,84,119879,84,119931,84,119983,84,120035,84,120087,84,120139,84,120191,84,120243,84,120295,84,120347,84,120399,84,120451,84,932,84,120507,84,120565,84,120623,84,120681,84,120739,84,11430,84,5026,84,42196,84,93962,84,71868,84,66199,84,66225,84,66325,84,119854,117,119906,117,119958,117,120010,117,120062,117,120114,117,120166,117,120218,117,120270,117,120322,117,120374,117,120426,117,120478,117,42911,117,7452,117,43854,117,43858,117,651,117,965,117,120534,117,120592,117,120650,117,120708,117,120766,117,1405,117,66806,117,71896,117,8746,85,8899,85,119828,85,119880,85,119932,85,119984,85,120036,85,120088,85,120140,85,120192,85,120244,85,120296,85,120348,85,120400,85,120452,85,1357,85,4608,85,66766,85,5196,85,42228,85,94018,85,71864,85,8744,118,8897,118,65366,118,8564,118,119855,118,119907,118,119959,118,120011,118,120063,118,120115,118,120167,118,120219,118,120271,118,120323,118,120375,118,120427,118,120479,118,7456,118,957,118,120526,118,120584,118,120642,118,120700,118,120758,118,1141,118,1496,118,71430,118,43945,118,71872,118,119309,86,1639,86,1783,86,8548,86,119829,86,119881,86,119933,86,119985,86,120037,86,120089,86,120141,86,120193,86,120245,86,120297,86,120349,86,120401,86,120453,86,1140,86,11576,86,5081,86,5167,86,42719,86,42214,86,93960,86,71840,86,66845,86,623,119,119856,119,119908,119,119960,119,120012,119,120064,119,120116,119,120168,119,120220,119,120272,119,120324,119,120376,119,120428,119,120480,119,7457,119,1121,119,1309,119,1377,119,71434,119,71438,119,71439,119,43907,119,71919,87,71910,87,119830,87,119882,87,119934,87,119986,87,120038,87,120090,87,120142,87,120194,87,120246,87,120298,87,120350,87,120402,87,120454,87,1308,87,5043,87,5076,87,42218,87,5742,120,10539,120,10540,120,10799,120,65368,120,8569,120,119857,120,119909,120,119961,120,120013,120,120065,120,120117,120,120169,120,120221,120,120273,120,120325,120,120377,120,120429,120,120481,120,5441,120,5501,120,5741,88,9587,88,66338,88,71916,88,65336,88,8553,88,119831,88,119883,88,119935,88,119987,88,120039,88,120091,88,120143,88,120195,88,120247,88,120299,88,120351,88,120403,88,120455,88,42931,88,935,88,120510,88,120568,88,120626,88,120684,88,120742,88,11436,88,11613,88,5815,88,42219,88,66192,88,66228,88,66327,88,66855,88,611,121,7564,121,65369,121,119858,121,119910,121,119962,121,120014,121,120066,121,120118,121,120170,121,120222,121,120274,121,120326,121,120378,121,120430,121,120482,121,655,121,7935,121,43866,121,947,121,8509,121,120516,121,120574,121,120632,121,120690,121,120748,121,1199,121,4327,121,71900,121,65337,89,119832,89,119884,89,119936,89,119988,89,120040,89,120092,89,120144,89,120196,89,120248,89,120300,89,120352,89,120404,89,120456,89,933,89,978,89,120508,89,120566,89,120624,89,120682,89,120740,89,11432,89,1198,89,5033,89,5053,89,42220,89,94019,89,71844,89,66226,89,119859,122,119911,122,119963,122,120015,122,120067,122,120119,122,120171,122,120223,122,120275,122,120327,122,120379,122,120431,122,120483,122,7458,122,43923,122,71876,122,66293,90,71909,90,65338,90,8484,90,8488,90,119833,90,119885,90,119937,90,119989,90,120041,90,120197,90,120249,90,120301,90,120353,90,120405,90,120457,90,918,90,120493,90,120551,90,120609,90,120667,90,120725,90,5059,90,42204,90,71849,90,65282,34,65284,36,65285,37,65286,38,65290,42,65291,43,65294,46,65295,47,65296,48,65297,49,65298,50,65299,51,65300,52,65301,53,65302,54,65303,55,65304,56,65305,57,65308,60,65309,61,65310,62,65312,64,65316,68,65318,70,65319,71,65324,76,65329,81,65330,82,65333,85,65334,86,65335,87,65343,95,65346,98,65348,100,65350,102,65355,107,65357,109,65358,110,65361,113,65362,114,65364,116,65365,117,65367,119,65370,122,65371,123,65373,125,119846,109],"_default":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"cs":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"de":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"es":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"fr":[65374,126,65306,58,65281,33,8216,96,8245,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"it":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ja":[8211,45,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65292,44,65307,59],"ko":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pl":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pt-BR":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"qps-ploc":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ru":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,305,105,921,73,1009,112,215,120,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"tr":[160,32,8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"zh-hans":[65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41],"zh-hant":[8211,45,65374,126,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65307,59]}'));AmbiguousCharacters.cache=new LRUCachedFunction(o=>{function e(d){const c=new Map;for(let u=0;u<d.length;u+=2)c.set(d[u],d[u+1]);return c}function t(d,c){const u=new Map(d);for(const[g,f]of c)u.set(g,f);return u}function i(d,c){if(!d)return c;const u=new Map;for(const[g,f]of d)c.has(g)&&u.set(g,f);return u}const n=_a$3.ambiguousCharacterData.value;let r=o.filter(d=>!d.startsWith("_")&&d in n);r.length===0&&(r=["_default"]);let s;for(const d of r){const c=e(n[d]);s=i(s,c)}const a=e(n._common),l=t(a,s);return new _a$3(l)});AmbiguousCharacters._locales=new Lazy(()=>Object.keys(_a$3.ambiguousCharacterData.value).filter(o=>!o.startsWith("_")));class InvisibleCharacters{static getRawData(){return JSON.parse("[9,10,11,12,13,32,127,160,173,847,1564,4447,4448,6068,6069,6155,6156,6157,6158,7355,7356,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8203,8204,8205,8206,8207,8234,8235,8236,8237,8238,8239,8287,8288,8289,8290,8291,8292,8293,8294,8295,8296,8297,8298,8299,8300,8301,8302,8303,10240,12288,12644,65024,65025,65026,65027,65028,65029,65030,65031,65032,65033,65034,65035,65036,65037,65038,65039,65279,65440,65520,65521,65522,65523,65524,65525,65526,65527,65528,65532,78844,119155,119156,119157,119158,119159,119160,119161,119162,917504,917505,917506,917507,917508,917509,917510,917511,917512,917513,917514,917515,917516,917517,917518,917519,917520,917521,917522,917523,917524,917525,917526,917527,917528,917529,917530,917531,917532,917533,917534,917535,917536,917537,917538,917539,917540,917541,917542,917543,917544,917545,917546,917547,917548,917549,917550,917551,917552,917553,917554,917555,917556,917557,917558,917559,917560,917561,917562,917563,917564,917565,917566,917567,917568,917569,917570,917571,917572,917573,917574,917575,917576,917577,917578,917579,917580,917581,917582,917583,917584,917585,917586,917587,917588,917589,917590,917591,917592,917593,917594,917595,917596,917597,917598,917599,917600,917601,917602,917603,917604,917605,917606,917607,917608,917609,917610,917611,917612,917613,917614,917615,917616,917617,917618,917619,917620,917621,917622,917623,917624,917625,917626,917627,917628,917629,917630,917631,917760,917761,917762,917763,917764,917765,917766,917767,917768,917769,917770,917771,917772,917773,917774,917775,917776,917777,917778,917779,917780,917781,917782,917783,917784,917785,917786,917787,917788,917789,917790,917791,917792,917793,917794,917795,917796,917797,917798,917799,917800,917801,917802,917803,917804,917805,917806,917807,917808,917809,917810,917811,917812,917813,917814,917815,917816,917817,917818,917819,917820,917821,917822,917823,917824,917825,917826,917827,917828,917829,917830,917831,917832,917833,917834,917835,917836,917837,917838,917839,917840,917841,917842,917843,917844,917845,917846,917847,917848,917849,917850,917851,917852,917853,917854,917855,917856,917857,917858,917859,917860,917861,917862,917863,917864,917865,917866,917867,917868,917869,917870,917871,917872,917873,917874,917875,917876,917877,917878,917879,917880,917881,917882,917883,917884,917885,917886,917887,917888,917889,917890,917891,917892,917893,917894,917895,917896,917897,917898,917899,917900,917901,917902,917903,917904,917905,917906,917907,917908,917909,917910,917911,917912,917913,917914,917915,917916,917917,917918,917919,917920,917921,917922,917923,917924,917925,917926,917927,917928,917929,917930,917931,917932,917933,917934,917935,917936,917937,917938,917939,917940,917941,917942,917943,917944,917945,917946,917947,917948,917949,917950,917951,917952,917953,917954,917955,917956,917957,917958,917959,917960,917961,917962,917963,917964,917965,917966,917967,917968,917969,917970,917971,917972,917973,917974,917975,917976,917977,917978,917979,917980,917981,917982,917983,917984,917985,917986,917987,917988,917989,917990,917991,917992,917993,917994,917995,917996,917997,917998,917999]")}static getData(){return this._data||(this._data=new Set(InvisibleCharacters.getRawData())),this._data}static isInvisibleCharacter(e){return InvisibleCharacters.getData().has(e)}static get codePoints(){return InvisibleCharacters.getData()}}InvisibleCharacters._data=void 0;class WindowManager{constructor(){this._zoomFactor=1}getZoomFactor(){return this._zoomFactor}}WindowManager.INSTANCE=new WindowManager;class DevicePixelRatioMonitor extends Disposable{constructor(){super(),this._onDidChange=this._register(new Emitter$1),this.onDidChange=this._onDidChange.event,this._listener=()=>this._handleChange(!0),this._mediaQueryList=null,this._handleChange(!1)}_handleChange(e){var t;(t=this._mediaQueryList)===null||t===void 0||t.removeEventListener("change",this._listener),this._mediaQueryList=window.matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`),this._mediaQueryList.addEventListener("change",this._listener),e&&this._onDidChange.fire()}}class PixelRatioImpl extends Disposable{get value(){return this._value}constructor(){super(),this._onDidChange=this._register(new Emitter$1),this.onDidChange=this._onDidChange.event,this._value=this._getPixelRatio();const e=this._register(new DevicePixelRatioMonitor);this._register(e.onDidChange(()=>{this._value=this._getPixelRatio(),this._onDidChange.fire(this._value)}))}_getPixelRatio(){const e=document.createElement("canvas").getContext("2d"),t=window.devicePixelRatio||1,i=e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return t/i}}class PixelRatioFacade{constructor(){this._pixelRatioMonitor=null}_getOrCreatePixelRatioMonitor(){return this._pixelRatioMonitor||(this._pixelRatioMonitor=new PixelRatioImpl),this._pixelRatioMonitor}get value(){return this._getOrCreatePixelRatioMonitor().value}get onDidChange(){return this._getOrCreatePixelRatioMonitor().onDidChange}}function addMatchMediaChangeListener(o,e){typeof o=="string"&&(o=window.matchMedia(o)),o.addEventListener("change",e)}const PixelRatio=new PixelRatioFacade;function getZoomFactor(){return WindowManager.INSTANCE.getZoomFactor()}const userAgent=navigator.userAgent,isFirefox=userAgent.indexOf("Firefox")>=0,isWebKit=userAgent.indexOf("AppleWebKit")>=0,isChrome=userAgent.indexOf("Chrome")>=0,isSafari=!isChrome&&userAgent.indexOf("Safari")>=0,isWebkitWebView=!isChrome&&!isSafari&&isWebKit;userAgent.indexOf("Electron/")>=0;const isAndroid=userAgent.indexOf("Android")>=0;let standalone=!1;if(window.matchMedia){const o=window.matchMedia("(display-mode: standalone) or (display-mode: window-controls-overlay)"),e=window.matchMedia("(display-mode: fullscreen)");standalone=o.matches,addMatchMediaChangeListener(o,({matches:t})=>{standalone&&e.matches||(standalone=t)})}class FastDomNode{constructor(e){this.domNode=e,this._maxWidth="",this._width="",this._height="",this._top="",this._left="",this._bottom="",this._right="",this._paddingLeft="",this._fontFamily="",this._fontWeight="",this._fontSize="",this._fontStyle="",this._fontFeatureSettings="",this._fontVariationSettings="",this._textDecoration="",this._lineHeight="",this._letterSpacing="",this._className="",this._display="",this._position="",this._visibility="",this._color="",this._backgroundColor="",this._layerHint=!1,this._contain="none",this._boxShadow=""}setMaxWidth(e){const t=numberAsPixels(e);this._maxWidth!==t&&(this._maxWidth=t,this.domNode.style.maxWidth=this._maxWidth)}setWidth(e){const t=numberAsPixels(e);this._width!==t&&(this._width=t,this.domNode.style.width=this._width)}setHeight(e){const t=numberAsPixels(e);this._height!==t&&(this._height=t,this.domNode.style.height=this._height)}setTop(e){const t=numberAsPixels(e);this._top!==t&&(this._top=t,this.domNode.style.top=this._top)}setLeft(e){const t=numberAsPixels(e);this._left!==t&&(this._left=t,this.domNode.style.left=this._left)}setBottom(e){const t=numberAsPixels(e);this._bottom!==t&&(this._bottom=t,this.domNode.style.bottom=this._bottom)}setRight(e){const t=numberAsPixels(e);this._right!==t&&(this._right=t,this.domNode.style.right=this._right)}setPaddingLeft(e){const t=numberAsPixels(e);this._paddingLeft!==t&&(this._paddingLeft=t,this.domNode.style.paddingLeft=this._paddingLeft)}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){const t=numberAsPixels(e);this._fontSize!==t&&(this._fontSize=t,this.domNode.style.fontSize=this._fontSize)}setFontStyle(e){this._fontStyle!==e&&(this._fontStyle=e,this.domNode.style.fontStyle=this._fontStyle)}setFontFeatureSettings(e){this._fontFeatureSettings!==e&&(this._fontFeatureSettings=e,this.domNode.style.fontFeatureSettings=this._fontFeatureSettings)}setFontVariationSettings(e){this._fontVariationSettings!==e&&(this._fontVariationSettings=e,this.domNode.style.fontVariationSettings=this._fontVariationSettings)}setTextDecoration(e){this._textDecoration!==e&&(this._textDecoration=e,this.domNode.style.textDecoration=this._textDecoration)}setLineHeight(e){const t=numberAsPixels(e);this._lineHeight!==t&&(this._lineHeight=t,this.domNode.style.lineHeight=this._lineHeight)}setLetterSpacing(e){const t=numberAsPixels(e);this._letterSpacing!==t&&(this._letterSpacing=t,this.domNode.style.letterSpacing=this._letterSpacing)}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)}setColor(e){this._color!==e&&(this._color=e,this.domNode.style.color=this._color)}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 numberAsPixels(o){return typeof o=="number"?`${o}px`:o}function createFastDomNode(o){return new FastDomNode(o)}function applyFontInfo(o,e){o instanceof FastDomNode?(o.setFontFamily(e.getMassagedFontFamily()),o.setFontWeight(e.fontWeight),o.setFontSize(e.fontSize),o.setFontFeatureSettings(e.fontFeatureSettings),o.setFontVariationSettings(e.fontVariationSettings),o.setLineHeight(e.lineHeight),o.setLetterSpacing(e.letterSpacing)):(o.style.fontFamily=e.getMassagedFontFamily(),o.style.fontWeight=e.fontWeight,o.style.fontSize=e.fontSize+"px",o.style.fontFeatureSettings=e.fontFeatureSettings,o.style.fontVariationSettings=e.fontVariationSettings,o.style.lineHeight=e.lineHeight+"px",o.style.letterSpacing=e.letterSpacing+"px")}class CharWidthRequest{constructor(e,t){this.chr=e,this.type=t,this.width=0}fulfill(e){this.width=e}}class DomCharWidthReader{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");applyFontInfo(t,this._bareFontInfo),e.appendChild(t);const i=document.createElement("div");applyFontInfo(i,this._bareFontInfo),i.style.fontWeight="bold",e.appendChild(i);const n=document.createElement("div");applyFontInfo(n,this._bareFontInfo),n.style.fontStyle="italic",e.appendChild(n);const r=[];for(const s of this._requests){let a;s.type===0&&(a=t),s.type===2&&(a=i),s.type===1&&(a=n),a.appendChild(document.createElement("br"));const l=document.createElement("span");DomCharWidthReader._render(l,s),a.appendChild(l),r.push(l)}this._container=e,this._testElements=r}static _render(e,t){if(t.chr===" "){let i=" ";for(let n=0;n<8;n++)i+=i;e.innerText=i}else{let i=t.chr;for(let n=0;n<8;n++)i+=i;e.textContent=i}}_readFromDomElements(){for(let e=0,t=this._requests.length;e<t;e++){const i=this._requests[e],n=this._testElements[e];i.fulfill(n.offsetWidth/256)}}}function readCharWidths(o,e){new DomCharWidthReader(o,e).read()}const EditorZoom=new class{constructor(){this._zoomLevel=0,this._onDidChangeZoomLevel=new Emitter$1,this.onDidChangeZoomLevel=this._onDidChangeZoomLevel.event}getZoomLevel(){return this._zoomLevel}setZoomLevel(o){o=Math.min(Math.max(-5,o),20),this._zoomLevel!==o&&(this._zoomLevel=o,this._onDidChangeZoomLevel.fire(this._zoomLevel))}},GOLDEN_LINE_HEIGHT_RATIO=isMacintosh?1.5:1.35,MINIMUM_LINE_HEIGHT=8;class BareFontInfo{static createFromValidatedSettings(e,t,i){const n=e.get(49),r=e.get(53),s=e.get(52),a=e.get(51),l=e.get(54),d=e.get(66),c=e.get(63);return BareFontInfo._create(n,r,s,a,l,d,c,t,i)}static _create(e,t,i,n,r,s,a,l,d){s===0?s=GOLDEN_LINE_HEIGHT_RATIO*i:s<MINIMUM_LINE_HEIGHT&&(s=s*i),s=Math.round(s),s<MINIMUM_LINE_HEIGHT&&(s=MINIMUM_LINE_HEIGHT);const c=1+(d?0:EditorZoom.getZoomLevel()*.1);return i*=c,s*=c,r===EditorFontVariations.TRANSLATE&&(t==="normal"||t==="bold"?r=EditorFontVariations.OFF:(r=`'wght' ${parseInt(t,10)}`,t="normal")),new BareFontInfo({pixelRatio:l,fontFamily:e,fontWeight:t,fontSize:i,fontFeatureSettings:n,fontVariationSettings:r,lineHeight:s,letterSpacing:a})}constructor(e){this._bareFontInfoBrand=void 0,this.pixelRatio=e.pixelRatio,this.fontFamily=String(e.fontFamily),this.fontWeight=String(e.fontWeight),this.fontSize=e.fontSize,this.fontFeatureSettings=e.fontFeatureSettings,this.fontVariationSettings=e.fontVariationSettings,this.lineHeight=e.lineHeight|0,this.letterSpacing=e.letterSpacing}getId(){return`${this.pixelRatio}-${this.fontFamily}-${this.fontWeight}-${this.fontSize}-${this.fontFeatureSettings}-${this.fontVariationSettings}-${this.lineHeight}-${this.letterSpacing}`}getMassagedFontFamily(){const e=EDITOR_FONT_DEFAULTS.fontFamily,t=BareFontInfo._wrapInQuotes(this.fontFamily);return e&&this.fontFamily!==e?`${t}, ${e}`:t}static _wrapInQuotes(e){return/[,"']/.test(e)?e:/[+ ]/.test(e)?`"${e}"`:e}}const SERIALIZED_FONT_INFO_VERSION=2;class FontInfo extends BareFontInfo{constructor(e,t){super(e),this._editorStylingBrand=void 0,this.version=SERIALIZED_FONT_INFO_VERSION,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.fontVariationSettings===e.fontVariationSettings&&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}}class FontMeasurementsImpl extends Disposable{constructor(){super(),this._onDidChange=this._register(new Emitter$1),this.onDidChange=this._onDidChange.event,this._cache=new FontMeasurementsCache,this._evictUntrustedReadingsTimeout=-1}dispose(){this._evictUntrustedReadingsTimeout!==-1&&(window.clearTimeout(this._evictUntrustedReadingsTimeout),this._evictUntrustedReadingsTimeout=-1),super.dispose()}clearAllFontInfos(){this._cache=new FontMeasurementsCache,this._onDidChange.fire()}_writeToCache(e,t){this._cache.put(e,t),!t.isTrusted&&this._evictUntrustedReadingsTimeout===-1&&(this._evictUntrustedReadingsTimeout=window.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()}readFontInfo(e){if(!this._cache.has(e)){let t=this._actualReadFontInfo(e);(t.typicalHalfwidthCharacterWidth<=2||t.typicalFullwidthCharacterWidth<=2||t.spaceWidth<=2||t.maxDigitWidth<=2)&&(t=new FontInfo({pixelRatio:PixelRatio.value,fontFamily:t.fontFamily,fontWeight:t.fontWeight,fontSize:t.fontSize,fontFeatureSettings:t.fontFeatureSettings,fontVariationSettings:t.fontVariationSettings,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)}_createRequest(e,t,i,n){const r=new CharWidthRequest(e,t);return i.push(r),n==null||n.push(r),r}_actualReadFontInfo(e){const t=[],i=[],n=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),l=this._createRequest("1",0,t,i),d=this._createRequest("2",0,t,i),c=this._createRequest("3",0,t,i),u=this._createRequest("4",0,t,i),g=this._createRequest("5",0,t,i),f=this._createRequest("6",0,t,i),p=this._createRequest("7",0,t,i),m=this._createRequest("8",0,t,i),b=this._createRequest("9",0,t,i),_=this._createRequest("→",0,t,i),C=this._createRequest("→",0,t,null),S=this._createRequest("·",0,t,i),y=this._createRequest("⸱",0,t,null),E="|/-_ilm%";for(let N=0,F=E.length;N<F;N++)this._createRequest(E.charAt(N),0,t,i),this._createRequest(E.charAt(N),1,t,i),this._createRequest(E.charAt(N),2,t,i);readCharWidths(e,t);const x=Math.max(a.width,l.width,d.width,c.width,u.width,g.width,f.width,p.width,m.width,b.width);let L=e.fontFeatureSettings===EditorFontLigatures.OFF;const I=i[0].width;for(let N=1,F=i.length;L&&N<F;N++){const R=I-i[N].width;if(R<-.001||R>.001){L=!1;break}}let D=!0;return L&&C.width!==I&&(D=!1),C.width>_.width&&(D=!1),new FontInfo({pixelRatio:PixelRatio.value,fontFamily:e.fontFamily,fontWeight:e.fontWeight,fontSize:e.fontSize,fontFeatureSettings:e.fontFeatureSettings,fontVariationSettings:e.fontVariationSettings,lineHeight:e.lineHeight,letterSpacing:e.letterSpacing,isMonospace:L,typicalHalfwidthCharacterWidth:n.width,typicalFullwidthCharacterWidth:r.width,canUseHalfwidthRightwardsArrow:D,spaceWidth:s.width,middotWidth:S.width,wsmiddotWidth:y.width,maxDigitWidth:x},!0)}}class FontMeasurementsCache{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])}}const FontMeasurements=new FontMeasurementsImpl;var _util;(function(o){o.serviceIds=new Map,o.DI_TARGET="$di$target",o.DI_DEPENDENCIES="$di$dependencies";function e(t){return t[o.DI_DEPENDENCIES]||[]}o.getServiceDependencies=e})(_util||(_util={}));const IInstantiationService=createDecorator("instantiationService");function storeServiceDependency(o,e,t){e[_util.DI_TARGET]===e?e[_util.DI_DEPENDENCIES].push({id:o,index:t}):(e[_util.DI_DEPENDENCIES]=[{id:o,index:t}],e[_util.DI_TARGET]=e)}function createDecorator(o){if(_util.serviceIds.has(o))return _util.serviceIds.get(o);const e=function(t,i,n){if(arguments.length!==3)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");storeServiceDependency(e,t,n)};return e.toString=()=>o,_util.serviceIds.set(o,e),e}const ICodeEditorService=createDecorator("codeEditorService"),IModelService=createDecorator("modelService"),ITextModelService=createDecorator("textModelService");var __awaiter$1A=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};class Action extends Disposable{constructor(e,t="",i="",n=!0,r){super(),this._onDidChange=this._register(new Emitter$1),this.onDidChange=this._onDidChange.event,this._enabled=!0,this._id=e,this._label=t,this._cssClass=i,this._enabled=n,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 __awaiter$1A(this,void 0,void 0,function*(){this._actionCallback&&(yield this._actionCallback(e))})}}class ActionRunner extends Disposable{constructor(){super(...arguments),this._onWillRun=this._register(new Emitter$1),this.onWillRun=this._onWillRun.event,this._onDidRun=this._register(new Emitter$1),this.onDidRun=this._onDidRun.event}run(e,t){return __awaiter$1A(this,void 0,void 0,function*(){if(!e.enabled)return;this._onWillRun.fire({action:e});let i;try{yield this.runAction(e,t)}catch(n){i=n}this._onDidRun.fire({action:e,error:i})})}runAction(e,t){return __awaiter$1A(this,void 0,void 0,function*(){yield e.run(t)})}}class Separator{constructor(){this.id=Separator.ID,this.label="",this.tooltip="",this.class="separator",this.enabled=!1,this.checked=!1}static join(...e){let t=[];for(const i of e)i.length&&(t.length?t=[...t,new Separator,...i]:t=i);return t}run(){return __awaiter$1A(this,void 0,void 0,function*(){})}}Separator.ID="vs.actions.separator";class SubmenuAction{get actions(){return this._actions}constructor(e,t,i,n){this.tooltip="",this.enabled=!0,this.checked=void 0,this.id=e,this.label=t,this.class=n,this._actions=i}run(){return __awaiter$1A(this,void 0,void 0,function*(){})}}class EmptySubmenuAction extends Action{constructor(){super(EmptySubmenuAction.ID,localize("submenu.empty","(empty)"),void 0,!1)}}EmptySubmenuAction.ID="vs.actions.empty";function toAction(o){var e,t;return{id:o.id,label:o.label,class:void 0,enabled:(e=o.enabled)!==null&&e!==void 0?e:!0,checked:(t=o.checked)!==null&&t!==void 0?t:!1,run:(...i)=>__awaiter$1A(this,void 0,void 0,function*(){return o.run(...i)}),tooltip:o.label}}var ThemeColor;(function(o){function e(t){return t&&typeof t=="object"&&typeof t.id=="string"}o.isThemeColor=e})(ThemeColor||(ThemeColor={}));var ThemeIcon;(function(o){o.iconNameSegment="[A-Za-z0-9]+",o.iconNameExpression="[A-Za-z0-9-]+",o.iconModifierExpression="~[A-Za-z]+",o.iconNameCharacter="[A-Za-z0-9~-]";const e=new RegExp(`^(${o.iconNameExpression})(${o.iconModifierExpression})?$`);function t(g){const f=e.exec(g.id);if(!f)return t(Codicon.error);const[,p,m]=f,b=["codicon","codicon-"+p];return m&&b.push("codicon-modifier-"+m.substring(1)),b}o.asClassNameArray=t;function i(g){return t(g).join(" ")}o.asClassName=i;function n(g){return"."+t(g).join(".")}o.asCSSSelector=n;function r(g){return g&&typeof g=="object"&&typeof g.id=="string"&&(typeof g.color>"u"||ThemeColor.isThemeColor(g.color))}o.isThemeIcon=r;const s=new RegExp(`^\\$\\((${o.iconNameExpression}(?:${o.iconModifierExpression})?)\\)$`);function a(g){const f=s.exec(g);if(!f)return;const[,p]=f;return{id:p}}o.fromString=a;function l(g){return{id:g}}o.fromId=l;function d(g,f){let p=g.id;const m=p.lastIndexOf("~");return m!==-1&&(p=p.substring(0,m)),f&&(p=`${p}~${f}`),{id:p}}o.modify=d;function c(g){const f=g.id.lastIndexOf("~");if(f!==-1)return g.id.substring(f+1)}o.getModifier=c;function u(g,f){var p,m;return g.id===f.id&&((p=g.color)===null||p===void 0?void 0:p.id)===((m=f.color)===null||m===void 0?void 0:m.id)}o.isEqual=u})(ThemeIcon||(ThemeIcon={}));const ICommandService=createDecorator("commandService"),CommandsRegistry=new class{constructor(){this._commands=new Map,this._onDidRegisterCommand=new Emitter$1,this.onDidRegisterCommand=this._onDidRegisterCommand.event}registerCommand(o,e){if(!o)throw new Error("invalid command");if(typeof o=="string"){if(!e)throw new Error("invalid command");return this.registerCommand({id:o,handler:e})}if(o.description){const s=[];for(const l of o.description.args)s.push(l.constraint);const a=o.handler;o.handler=function(l,...d){return validateConstraints(d,s),a(l,...d)}}const{id:t}=o;let i=this._commands.get(t);i||(i=new LinkedList,this._commands.set(t,i));const n=i.unshift(o),r=toDisposable(()=>{n();const s=this._commands.get(t);s!=null&&s.isEmpty()&&this._commands.delete(t)});return this._onDidRegisterCommand.fire(t),r}registerCommandAlias(o,e){return CommandsRegistry.registerCommand(o,(t,...i)=>t.get(ICommandService).executeCommand(e,...i))}getCommand(o){const e=this._commands.get(o);if(!(!e||e.isEmpty()))return Iterable.first(e)}getCommands(){const o=new Map;for(const e of this._commands.keys()){const t=this.getCommand(e);t&&o.set(e,t)}return o}};CommandsRegistry.registerCommand("noop",()=>{});function hintDidYouMean(...o){switch(o.length){case 1:return localize("contextkey.scanner.hint.didYouMean1","Did you mean {0}?",o[0]);case 2:return localize("contextkey.scanner.hint.didYouMean2","Did you mean {0} or {1}?",o[0],o[1]);case 3:return localize("contextkey.scanner.hint.didYouMean3","Did you mean {0}, {1} or {2}?",o[0],o[1],o[2]);default:return}}const hintDidYouForgetToOpenOrCloseQuote=localize("contextkey.scanner.hint.didYouForgetToOpenOrCloseQuote","Did you forget to open or close the quote?"),hintDidYouForgetToEscapeSlash=localize("contextkey.scanner.hint.didYouForgetToEscapeSlash","Did you forget to escape the '/' (slash) character? Put two backslashes before it to escape, e.g., '\\\\/'.");let Scanner$1=class lt{constructor(){this._input="",this._start=0,this._current=0,this._tokens=[],this._errors=[],this.stringRe=/[a-zA-Z0-9_<>\-\./\\:\*\?\+\[\]\^,#@;"%\$\p{L}-]+/uy}static getLexeme(e){switch(e.type){case 0:return"(";case 1:return")";case 2:return"!";case 3:return e.isTripleEq?"===":"==";case 4:return e.isTripleEq?"!==":"!=";case 5:return"<";case 6:return"<=";case 7:return">=";case 8:return">=";case 9:return"=~";case 10:return e.lexeme;case 11:return"true";case 12:return"false";case 13:return"in";case 14:return"not";case 15:return"&&";case 16:return"||";case 17:return e.lexeme;case 18:return e.lexeme;case 19:return e.lexeme;case 20:return"EOF";default:throw illegalState(`unhandled token type: ${JSON.stringify(e)}; have you forgotten to add a case?`)}}reset(e){return this._input=e,this._start=0,this._current=0,this._tokens=[],this._errors=[],this}scan(){for(;!this._isAtEnd();)switch(this._start=this._current,this._advance()){case 40:this._addToken(0);break;case 41:this._addToken(1);break;case 33:if(this._match(61)){const t=this._match(61);this._tokens.push({type:4,offset:this._start,isTripleEq:t})}else this._addToken(2);break;case 39:this._quotedString();break;case 47:this._regex();break;case 61:if(this._match(61)){const t=this._match(61);this._tokens.push({type:3,offset:this._start,isTripleEq:t})}else this._match(126)?this._addToken(9):this._error(hintDidYouMean("==","=~"));break;case 60:this._addToken(this._match(61)?6:5);break;case 62:this._addToken(this._match(61)?8:7);break;case 38:this._match(38)?this._addToken(15):this._error(hintDidYouMean("&&"));break;case 124:this._match(124)?this._addToken(16):this._error(hintDidYouMean("||"));break;case 32:case 13:case 9:case 10:case 160:break;default:this._string()}return this._start=this._current,this._addToken(20),Array.from(this._tokens)}_match(e){return this._isAtEnd()||this._input.charCodeAt(this._current)!==e?!1:(this._current++,!0)}_advance(){return this._input.charCodeAt(this._current++)}_peek(){return this._isAtEnd()?0:this._input.charCodeAt(this._current)}_addToken(e){this._tokens.push({type:e,offset:this._start})}_error(e){const t=this._start,i=this._input.substring(this._start,this._current),n={type:19,offset:this._start,lexeme:i};this._errors.push({offset:t,lexeme:i,additionalInfo:e}),this._tokens.push(n)}_string(){this.stringRe.lastIndex=this._start;const e=this.stringRe.exec(this._input);if(e){this._current=this._start+e[0].length;const t=this._input.substring(this._start,this._current),i=lt._keywords.get(t);i?this._addToken(i):this._tokens.push({type:17,lexeme:t,offset:this._start})}}_quotedString(){for(;this._peek()!==39&&!this._isAtEnd();)this._advance();if(this._isAtEnd()){this._error(hintDidYouForgetToOpenOrCloseQuote);return}this._advance(),this._tokens.push({type:18,lexeme:this._input.substring(this._start+1,this._current-1),offset:this._start+1})}_regex(){let e=this._current,t=!1,i=!1;for(;;){if(e>=this._input.length){this._current=e,this._error(hintDidYouForgetToEscapeSlash);return}const r=this._input.charCodeAt(e);if(t)t=!1;else if(r===47&&!i){e++;break}else r===91?i=!0:r===92?t=!0:r===93&&(i=!1);e++}for(;e<this._input.length&<._regexFlags.has(this._input.charCodeAt(e));)e++;this._current=e;const n=this._input.substring(this._start,this._current);this._tokens.push({type:10,lexeme:n,offset:this._start})}_isAtEnd(){return this._current>=this._input.length}};Scanner$1._regexFlags=new Set(["i","g","s","m","y","u"].map(o=>o.charCodeAt(0)));Scanner$1._keywords=new Map([["not",14],["in",13],["false",12],["true",11]]);const CONSTANT_VALUES=new Map;CONSTANT_VALUES.set("false",!1);CONSTANT_VALUES.set("true",!0);CONSTANT_VALUES.set("isMac",isMacintosh);CONSTANT_VALUES.set("isLinux",isLinux);CONSTANT_VALUES.set("isWindows",isWindows);CONSTANT_VALUES.set("isWeb",isWeb);CONSTANT_VALUES.set("isMacNative",isMacintosh&&!isWeb);CONSTANT_VALUES.set("isEdge",isEdge);CONSTANT_VALUES.set("isFirefox",isFirefox$1);CONSTANT_VALUES.set("isChrome",isChrome$1);CONSTANT_VALUES.set("isSafari",isSafari$1);const hasOwnProperty$1=Object.prototype.hasOwnProperty,defaultConfig={regexParsingWithErrorRecovery:!0},errorEmptyString=localize("contextkey.parser.error.emptyString","Empty context key expression"),hintEmptyString=localize("contextkey.parser.error.emptyString.hint","Did you forget to write an expression? You can also put 'false' or 'true' to always evaluate to false or true, respectively."),errorNoInAfterNot=localize("contextkey.parser.error.noInAfterNot","'in' after 'not'."),errorClosingParenthesis=localize("contextkey.parser.error.closingParenthesis","closing parenthesis ')'"),errorUnexpectedToken=localize("contextkey.parser.error.unexpectedToken","Unexpected token"),hintUnexpectedToken=localize("contextkey.parser.error.unexpectedToken.hint","Did you forget to put && or || before the token?"),errorUnexpectedEOF=localize("contextkey.parser.error.unexpectedEOF","Unexpected end of expression"),hintUnexpectedEOF=localize("contextkey.parser.error.unexpectedEOF.hint","Did you forget to put a context key?");let Parser$1=class ot{constructor(e=defaultConfig){this._config=e,this._scanner=new Scanner$1,this._tokens=[],this._current=0,this._parsingErrors=[],this._flagsGYRe=/g|y/g}parse(e){if(e===""){this._parsingErrors.push({message:errorEmptyString,offset:0,lexeme:"",additionalInfo:hintEmptyString});return}this._tokens=this._scanner.reset(e).scan(),this._current=0,this._parsingErrors=[];try{const t=this._expr();if(!this._isAtEnd()){const i=this._peek(),n=i.type===17?hintUnexpectedToken:void 0;throw this._parsingErrors.push({message:errorUnexpectedToken,offset:i.offset,lexeme:Scanner$1.getLexeme(i),additionalInfo:n}),ot._parseError}return t}catch(t){if(t!==ot._parseError)throw t;return}}_expr(){return this._or()}_or(){const e=[this._and()];for(;this._matchOne(16);){const t=this._and();e.push(t)}return e.length===1?e[0]:ContextKeyExpr.or(...e)}_and(){const e=[this._term()];for(;this._matchOne(15);){const t=this._term();e.push(t)}return e.length===1?e[0]:ContextKeyExpr.and(...e)}_term(){if(this._matchOne(2)){const e=this._peek();switch(e.type){case 11:return this._advance(),ContextKeyFalseExpr.INSTANCE;case 12:return this._advance(),ContextKeyTrueExpr.INSTANCE;case 0:{this._advance();const t=this._expr();return this._consume(1,errorClosingParenthesis),t==null?void 0:t.negate()}case 17:return this._advance(),ContextKeyNotExpr.create(e.lexeme);default:throw this._errExpectedButGot("KEY | true | false | '(' expression ')'",e)}}return this._primary()}_primary(){const e=this._peek();switch(e.type){case 11:return this._advance(),ContextKeyExpr.true();case 12:return this._advance(),ContextKeyExpr.false();case 0:{this._advance();const t=this._expr();return this._consume(1,errorClosingParenthesis),t}case 17:{const t=e.lexeme;if(this._advance(),this._matchOne(9)){const n=this._peek();if(!this._config.regexParsingWithErrorRecovery){if(this._advance(),n.type!==10)throw this._errExpectedButGot("REGEX",n);const r=n.lexeme,s=r.lastIndexOf("/"),a=s===r.length-1?void 0:this._removeFlagsGY(r.substring(s+1));let l;try{l=new RegExp(r.substring(1,s),a)}catch{throw this._errExpectedButGot("REGEX",n)}return ContextKeyRegexExpr.create(t,l)}switch(n.type){case 10:case 19:{const r=[n.lexeme];this._advance();let s=this._peek(),a=0;for(let g=0;g<n.lexeme.length;g++)n.lexeme.charCodeAt(g)===40?a++:n.lexeme.charCodeAt(g)===41&&a--;for(;!this._isAtEnd()&&s.type!==15&&s.type!==16;){switch(s.type){case 0:a++;break;case 1:a--;break;case 10:case 18:for(let g=0;g<s.lexeme.length;g++)s.lexeme.charCodeAt(g)===40?a++:n.lexeme.charCodeAt(g)===41&&a--}if(a<0)break;r.push(Scanner$1.getLexeme(s)),this._advance(),s=this._peek()}const l=r.join(""),d=l.lastIndexOf("/"),c=d===l.length-1?void 0:this._removeFlagsGY(l.substring(d+1));let u;try{u=new RegExp(l.substring(1,d),c)}catch{throw this._errExpectedButGot("REGEX",n)}return ContextKeyExpr.regex(t,u)}case 18:{const r=n.lexeme;this._advance();let s=null;if(!isFalsyOrWhitespace(r)){const a=r.indexOf("/"),l=r.lastIndexOf("/");if(a!==l&&a>=0){const d=r.slice(a+1,l),c=r[l+1]==="i"?"i":"";try{s=new RegExp(d,c)}catch{throw this._errExpectedButGot("REGEX",n)}}}if(s===null)throw this._errExpectedButGot("REGEX",n);return ContextKeyRegexExpr.create(t,s)}default:throw this._errExpectedButGot("REGEX",this._peek())}}if(this._matchOne(14)){this._consume(13,errorNoInAfterNot);const n=this._value();return ContextKeyExpr.notIn(t,n)}switch(this._peek().type){case 3:{this._advance();const n=this._value();if(this._previous().type===18)return ContextKeyExpr.equals(t,n);switch(n){case"true":return ContextKeyExpr.has(t);case"false":return ContextKeyExpr.not(t);default:return ContextKeyExpr.equals(t,n)}}case 4:{this._advance();const n=this._value();if(this._previous().type===18)return ContextKeyExpr.notEquals(t,n);switch(n){case"true":return ContextKeyExpr.not(t);case"false":return ContextKeyExpr.has(t);default:return ContextKeyExpr.notEquals(t,n)}}case 5:return this._advance(),ContextKeySmallerExpr.create(t,this._value());case 6:return this._advance(),ContextKeySmallerEqualsExpr.create(t,this._value());case 7:return this._advance(),ContextKeyGreaterExpr.create(t,this._value());case 8:return this._advance(),ContextKeyGreaterEqualsExpr.create(t,this._value());case 13:return this._advance(),ContextKeyExpr.in(t,this._value());default:return ContextKeyExpr.has(t)}}case 20:throw this._parsingErrors.push({message:errorUnexpectedEOF,offset:e.offset,lexeme:"",additionalInfo:hintUnexpectedEOF}),ot._parseError;default:throw this._errExpectedButGot(`true | false | KEY
- | KEY '=~' REGEX
- | KEY ('==' | '!=' | '<' | '<=' | '>' | '>=' | 'in' | 'not' 'in') value`,this._peek())}}_value(){const e=this._peek();switch(e.type){case 17:case 18:return this._advance(),e.lexeme;case 11:return this._advance(),"true";case 12:return this._advance(),"false";case 13:return this._advance(),"in";default:return""}}_removeFlagsGY(e){return e.replaceAll(this._flagsGYRe,"")}_previous(){return this._tokens[this._current-1]}_matchOne(e){return this._check(e)?(this._advance(),!0):!1}_advance(){return this._isAtEnd()||this._current++,this._previous()}_consume(e,t){if(this._check(e))return this._advance();throw this._errExpectedButGot(t,this._peek())}_errExpectedButGot(e,t,i){const n=localize("contextkey.parser.error.expectedButGot",`Expected: {0}
- Received: '{1}'.`,e,Scanner$1.getLexeme(t)),r=t.offset,s=Scanner$1.getLexeme(t);return this._parsingErrors.push({message:n,offset:r,lexeme:s,additionalInfo:i}),ot._parseError}_check(e){return this._peek().type===e}_peek(){return this._tokens[this._current]}_isAtEnd(){return this._peek().type===20}};Parser$1._parseError=new Error;class ContextKeyExpr{static false(){return ContextKeyFalseExpr.INSTANCE}static true(){return ContextKeyTrueExpr.INSTANCE}static has(e){return ContextKeyDefinedExpr.create(e)}static equals(e,t){return ContextKeyEqualsExpr.create(e,t)}static notEquals(e,t){return ContextKeyNotEqualsExpr.create(e,t)}static regex(e,t){return ContextKeyRegexExpr.create(e,t)}static in(e,t){return ContextKeyInExpr.create(e,t)}static notIn(e,t){return ContextKeyNotInExpr.create(e,t)}static not(e){return ContextKeyNotExpr.create(e)}static and(...e){return ContextKeyAndExpr.create(e,null,!0)}static or(...e){return ContextKeyOrExpr.create(e,null,!0)}static deserialize(e){return e==null?void 0:this._parser.parse(e)}}ContextKeyExpr._parser=new Parser$1({regexParsingWithErrorRecovery:!1});function expressionsAreEqualWithConstantSubstitution(o,e){const t=o?o.substituteConstants():void 0,i=e?e.substituteConstants():void 0;return!t&&!i?!0:!t||!i?!1:t.equals(i)}function cmp(o,e){return o.cmp(e)}class ContextKeyFalseExpr{constructor(){this.type=0}cmp(e){return this.type-e.type}equals(e){return e.type===this.type}substituteConstants(){return this}evaluate(e){return!1}serialize(){return"false"}keys(){return[]}negate(){return ContextKeyTrueExpr.INSTANCE}}ContextKeyFalseExpr.INSTANCE=new ContextKeyFalseExpr;class ContextKeyTrueExpr{constructor(){this.type=1}cmp(e){return this.type-e.type}equals(e){return e.type===this.type}substituteConstants(){return this}evaluate(e){return!0}serialize(){return"true"}keys(){return[]}negate(){return ContextKeyFalseExpr.INSTANCE}}ContextKeyTrueExpr.INSTANCE=new ContextKeyTrueExpr;class ContextKeyDefinedExpr{static create(e,t=null){const i=CONSTANT_VALUES.get(e);return typeof i=="boolean"?i?ContextKeyTrueExpr.INSTANCE:ContextKeyFalseExpr.INSTANCE:new ContextKeyDefinedExpr(e,t)}constructor(e,t){this.key=e,this.negated=t,this.type=2}cmp(e){return e.type!==this.type?this.type-e.type:cmp1(this.key,e.key)}equals(e){return e.type===this.type?this.key===e.key:!1}substituteConstants(){const e=CONSTANT_VALUES.get(this.key);return typeof e=="boolean"?e?ContextKeyTrueExpr.INSTANCE:ContextKeyFalseExpr.INSTANCE:this}evaluate(e){return!!e.getValue(this.key)}serialize(){return this.key}keys(){return[this.key]}negate(){return this.negated||(this.negated=ContextKeyNotExpr.create(this.key,this)),this.negated}}class ContextKeyEqualsExpr{static create(e,t,i=null){if(typeof t=="boolean")return t?ContextKeyDefinedExpr.create(e,i):ContextKeyNotExpr.create(e,i);const n=CONSTANT_VALUES.get(e);return typeof n=="boolean"?t===(n?"true":"false")?ContextKeyTrueExpr.INSTANCE:ContextKeyFalseExpr.INSTANCE:new ContextKeyEqualsExpr(e,t,i)}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=4}cmp(e){return e.type!==this.type?this.type-e.type:cmp2(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){const e=CONSTANT_VALUES.get(this.key);if(typeof e=="boolean"){const t=e?"true":"false";return this.value===t?ContextKeyTrueExpr.INSTANCE:ContextKeyFalseExpr.INSTANCE}return this}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=ContextKeyNotEqualsExpr.create(this.key,this.value,this)),this.negated}}class ContextKeyInExpr{static create(e,t){return new ContextKeyInExpr(e,t)}constructor(e,t){this.key=e,this.valueKey=t,this.type=10,this.negated=null}cmp(e){return e.type!==this.type?this.type-e.type:cmp2(this.key,this.valueKey,e.key,e.valueKey)}equals(e){return e.type===this.type?this.key===e.key&&this.valueKey===e.valueKey:!1}substituteConstants(){return this}evaluate(e){const t=e.getValue(this.valueKey),i=e.getValue(this.key);return Array.isArray(t)?t.includes(i):typeof i=="string"&&typeof t=="object"&&t!==null?hasOwnProperty$1.call(t,i):!1}serialize(){return`${this.key} in '${this.valueKey}'`}keys(){return[this.key,this.valueKey]}negate(){return this.negated||(this.negated=ContextKeyNotInExpr.create(this.key,this.valueKey)),this.negated}}class ContextKeyNotInExpr{static create(e,t){return new ContextKeyNotInExpr(e,t)}constructor(e,t){this.key=e,this.valueKey=t,this.type=11,this._negated=ContextKeyInExpr.create(e,t)}cmp(e){return e.type!==this.type?this.type-e.type:this._negated.cmp(e._negated)}equals(e){return e.type===this.type?this._negated.equals(e._negated):!1}substituteConstants(){return this}evaluate(e){return!this._negated.evaluate(e)}serialize(){return`${this.key} not in '${this.valueKey}'`}keys(){return this._negated.keys()}negate(){return this._negated}}class ContextKeyNotEqualsExpr{static create(e,t,i=null){if(typeof t=="boolean")return t?ContextKeyNotExpr.create(e,i):ContextKeyDefinedExpr.create(e,i);const n=CONSTANT_VALUES.get(e);return typeof n=="boolean"?t===(n?"true":"false")?ContextKeyFalseExpr.INSTANCE:ContextKeyTrueExpr.INSTANCE:new ContextKeyNotEqualsExpr(e,t,i)}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=5}cmp(e){return e.type!==this.type?this.type-e.type:cmp2(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){const e=CONSTANT_VALUES.get(this.key);if(typeof e=="boolean"){const t=e?"true":"false";return this.value===t?ContextKeyFalseExpr.INSTANCE:ContextKeyTrueExpr.INSTANCE}return this}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=ContextKeyEqualsExpr.create(this.key,this.value,this)),this.negated}}class ContextKeyNotExpr{static create(e,t=null){const i=CONSTANT_VALUES.get(e);return typeof i=="boolean"?i?ContextKeyFalseExpr.INSTANCE:ContextKeyTrueExpr.INSTANCE:new ContextKeyNotExpr(e,t)}constructor(e,t){this.key=e,this.negated=t,this.type=3}cmp(e){return e.type!==this.type?this.type-e.type:cmp1(this.key,e.key)}equals(e){return e.type===this.type?this.key===e.key:!1}substituteConstants(){const e=CONSTANT_VALUES.get(this.key);return typeof e=="boolean"?e?ContextKeyFalseExpr.INSTANCE:ContextKeyTrueExpr.INSTANCE:this}evaluate(e){return!e.getValue(this.key)}serialize(){return`!${this.key}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=ContextKeyDefinedExpr.create(this.key,this)),this.negated}}function withFloatOrStr(o,e){if(typeof o=="string"){const t=parseFloat(o);isNaN(t)||(o=t)}return typeof o=="string"||typeof o=="number"?e(o):ContextKeyFalseExpr.INSTANCE}class ContextKeyGreaterExpr{static create(e,t,i=null){return withFloatOrStr(t,n=>new ContextKeyGreaterExpr(e,n,i))}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=12}cmp(e){return e.type!==this.type?this.type-e.type:cmp2(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){return this}evaluate(e){return typeof this.value=="string"?!1:parseFloat(e.getValue(this.key))>this.value}serialize(){return`${this.key} > ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=ContextKeySmallerEqualsExpr.create(this.key,this.value,this)),this.negated}}class ContextKeyGreaterEqualsExpr{static create(e,t,i=null){return withFloatOrStr(t,n=>new ContextKeyGreaterEqualsExpr(e,n,i))}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=13}cmp(e){return e.type!==this.type?this.type-e.type:cmp2(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){return this}evaluate(e){return typeof this.value=="string"?!1:parseFloat(e.getValue(this.key))>=this.value}serialize(){return`${this.key} >= ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=ContextKeySmallerExpr.create(this.key,this.value,this)),this.negated}}class ContextKeySmallerExpr{static create(e,t,i=null){return withFloatOrStr(t,n=>new ContextKeySmallerExpr(e,n,i))}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=14}cmp(e){return e.type!==this.type?this.type-e.type:cmp2(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){return this}evaluate(e){return typeof this.value=="string"?!1:parseFloat(e.getValue(this.key))<this.value}serialize(){return`${this.key} < ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=ContextKeyGreaterEqualsExpr.create(this.key,this.value,this)),this.negated}}class ContextKeySmallerEqualsExpr{static create(e,t,i=null){return withFloatOrStr(t,n=>new ContextKeySmallerEqualsExpr(e,n,i))}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=15}cmp(e){return e.type!==this.type?this.type-e.type:cmp2(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){return this}evaluate(e){return typeof this.value=="string"?!1:parseFloat(e.getValue(this.key))<=this.value}serialize(){return`${this.key} <= ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=ContextKeyGreaterExpr.create(this.key,this.value,this)),this.negated}}class ContextKeyRegexExpr{static create(e,t){return new ContextKeyRegexExpr(e,t)}constructor(e,t){this.key=e,this.regexp=t,this.type=7,this.negated=null}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}substituteConstants(){return this}evaluate(e){const t=e.getValue(this.key);return this.regexp?this.regexp.test(t):!1}serialize(){const e=this.regexp?`/${this.regexp.source}/${this.regexp.flags}`:"/invalid/";return`${this.key} =~ ${e}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=ContextKeyNotRegexExpr.create(this)),this.negated}}class ContextKeyNotRegexExpr{static create(e){return new ContextKeyNotRegexExpr(e)}constructor(e){this._actual=e,this.type=8}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):!1}substituteConstants(){return this}evaluate(e){return!this._actual.evaluate(e)}serialize(){return`!(${this._actual.serialize()})`}keys(){return this._actual.keys()}negate(){return this._actual}}function eliminateConstantsInArray(o){let e=null;for(let t=0,i=o.length;t<i;t++){const n=o[t].substituteConstants();if(o[t]!==n&&e===null){e=[];for(let r=0;r<t;r++)e[r]=o[r]}e!==null&&(e[t]=n)}return e===null?o:e}class ContextKeyAndExpr{static create(e,t,i){return ContextKeyAndExpr._normalizeArr(e,t,i)}constructor(e,t){this.expr=e,this.negated=t,this.type=6}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 n=cmp(this.expr[t],e.expr[t]);if(n!==0)return n}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}substituteConstants(){const e=eliminateConstantsInArray(this.expr);return e===this.expr?this:ContextKeyAndExpr.create(e,this.negated,!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,i){const n=[];let r=!1;for(const s of e)if(s){if(s.type===1){r=!0;continue}if(s.type===0)return ContextKeyFalseExpr.INSTANCE;if(s.type===6){n.push(...s.expr);continue}n.push(s)}if(n.length===0&&r)return ContextKeyTrueExpr.INSTANCE;if(n.length!==0){if(n.length===1)return n[0];n.sort(cmp);for(let s=1;s<n.length;s++)n[s-1].equals(n[s])&&(n.splice(s,1),s--);if(n.length===1)return n[0];for(;n.length>1;){const s=n[n.length-1];if(s.type!==9)break;n.pop();const a=n.pop(),l=n.length===0,d=ContextKeyOrExpr.create(s.expr.map(c=>ContextKeyAndExpr.create([c,a],null,i)),null,l);d&&(n.push(d),n.sort(cmp))}if(n.length===1)return n[0];if(i){for(let s=0;s<n.length;s++)for(let a=s+1;a<n.length;a++)if(n[s].negate().equals(n[a]))return ContextKeyFalseExpr.INSTANCE;if(n.length===1)return n[0]}return new ContextKeyAndExpr(n,t)}}serialize(){return this.expr.map(e=>e.serialize()).join(" && ")}keys(){const e=[];for(const t of this.expr)e.push(...t.keys());return e}negate(){if(!this.negated){const e=[];for(const t of this.expr)e.push(t.negate());this.negated=ContextKeyOrExpr.create(e,this,!0)}return this.negated}}class ContextKeyOrExpr{static create(e,t,i){return ContextKeyOrExpr._normalizeArr(e,t,i)}constructor(e,t){this.expr=e,this.negated=t,this.type=9}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 n=cmp(this.expr[t],e.expr[t]);if(n!==0)return n}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}substituteConstants(){const e=eliminateConstantsInArray(this.expr);return e===this.expr?this:ContextKeyOrExpr.create(e,this.negated,!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=[],r=!1;if(e){for(let s=0,a=e.length;s<a;s++){const l=e[s];if(l){if(l.type===0){r=!0;continue}if(l.type===1)return ContextKeyTrueExpr.INSTANCE;if(l.type===9){n=n.concat(l.expr);continue}n.push(l)}}if(n.length===0&&r)return ContextKeyFalseExpr.INSTANCE;n.sort(cmp)}if(n.length!==0){if(n.length===1)return n[0];for(let s=1;s<n.length;s++)n[s-1].equals(n[s])&&(n.splice(s,1),s--);if(n.length===1)return n[0];if(i){for(let s=0;s<n.length;s++)for(let a=s+1;a<n.length;a++)if(n[s].negate().equals(n[a]))return ContextKeyTrueExpr.INSTANCE;if(n.length===1)return n[0]}return new ContextKeyOrExpr(n,t)}}serialize(){return this.expr.map(e=>e.serialize()).join(" || ")}keys(){const e=[];for(const t of this.expr)e.push(...t.keys());return e}negate(){if(!this.negated){const e=[];for(const t of this.expr)e.push(t.negate());for(;e.length>1;){const t=e.shift(),i=e.shift(),n=[];for(const r of getTerminals(t))for(const s of getTerminals(i))n.push(ContextKeyAndExpr.create([r,s],null,!1));e.unshift(ContextKeyOrExpr.create(n,null,!1))}this.negated=ContextKeyOrExpr.create(e,this,!0)}return this.negated}}class RawContextKey extends ContextKeyDefinedExpr{static all(){return RawContextKey._info.values()}constructor(e,t,i){super(e,null),this._defaultValue=t,typeof i=="object"?RawContextKey._info.push(Object.assign(Object.assign({},i),{key:e})):i!==!0&&RawContextKey._info.push({key:e,description:i,type:t!=null?typeof t:void 0})}bindTo(e){return e.createKey(this.key,this._defaultValue)}getValue(e){return e.getContextKeyValue(this.key)}toNegated(){return this.negate()}isEqualTo(e){return ContextKeyEqualsExpr.create(this.key,e)}}RawContextKey._info=[];const IContextKeyService=createDecorator("contextKeyService");function cmp1(o,e){return o<e?-1:o>e?1:0}function cmp2(o,e,t,i){return o<t?-1:o>t?1:e<i?-1:e>i?1:0}function implies(o,e){if(o.type===0||e.type===1)return!0;if(o.type===9)return e.type===9?allElementsIncluded(o.expr,e.expr):!1;if(e.type===9){for(const t of e.expr)if(implies(o,t))return!0;return!1}if(o.type===6){if(e.type===6)return allElementsIncluded(e.expr,o.expr);for(const t of o.expr)if(implies(t,e))return!0;return!1}return o.equals(e)}function allElementsIncluded(o,e){let t=0,i=0;for(;t<o.length&&i<e.length;){const n=o[t].cmp(e[i]);if(n<0)return!1;n===0&&t++,i++}return t===o.length}function getTerminals(o){return o.type===9?o.expr:[o]}function decodeKeybinding(o,e){if(typeof o=="number"){if(o===0)return null;const t=(o&65535)>>>0,i=(o&4294901760)>>>16;return i!==0?new Keybinding([createSimpleKeybinding(t,e),createSimpleKeybinding(i,e)]):new Keybinding([createSimpleKeybinding(t,e)])}else{const t=[];for(let i=0;i<o.length;i++)t.push(createSimpleKeybinding(o[i],e));return new Keybinding(t)}}function createSimpleKeybinding(o,e){const t=!!(o&2048),i=!!(o&256),n=e===2?i:t,r=!!(o&1024),s=!!(o&512),a=e===2?t:i,l=o&255;return new KeyCodeChord(n,r,s,a,l)}class KeyCodeChord{constructor(e,t,i,n,r){this.ctrlKey=e,this.shiftKey=t,this.altKey=i,this.metaKey=n,this.keyCode=r}equals(e){return e instanceof KeyCodeChord&&this.ctrlKey===e.ctrlKey&&this.shiftKey===e.shiftKey&&this.altKey===e.altKey&&this.metaKey===e.metaKey&&this.keyCode===e.keyCode}isModifierKey(){return this.keyCode===0||this.keyCode===5||this.keyCode===57||this.keyCode===6||this.keyCode===4}isDuplicateModifierCase(){return this.ctrlKey&&this.keyCode===5||this.shiftKey&&this.keyCode===4||this.altKey&&this.keyCode===6||this.metaKey&&this.keyCode===57}}class Keybinding{constructor(e){if(e.length===0)throw illegalArgument("chords");this.chords=e}}class ResolvedChord{constructor(e,t,i,n,r,s){this.ctrlKey=e,this.shiftKey=t,this.altKey=i,this.metaKey=n,this.keyLabel=r,this.keyAriaLabel=s}}class ResolvedKeybinding{}function ok(o,e){if(!o)throw new Error(e?`Assertion failed (${e})`:"Assertion Failed")}function assertNever(o,e="Unreachable"){throw new Error(e)}function assertFn(o){if(!o()){debugger;o(),onUnexpectedError(new BugIndicatingError("Assertion Failed"))}}function checkAdjacentItems(o,e){let t=0;for(;t<o.length-1;){const i=o[t],n=o[t+1];if(!e(i,n))return!1;t++}return!0}class RegistryImpl{constructor(){this.data=new Map}add(e,t){ok(isString$1(e)),ok(isObject(t)),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}}const Registry=new RegistryImpl;class KeybindingsRegistryImpl{constructor(){this._coreKeybindings=new LinkedList,this._extensionKeybindings=[],this._cachedMergedKeybindings=null}static bindToCurrentPlatform(e){if(OS===1){if(e&&e.win)return e.win}else if(OS===2){if(e&&e.mac)return e.mac}else if(e&&e.linux)return e.linux;return e}registerKeybindingRule(e){const t=KeybindingsRegistryImpl.bindToCurrentPlatform(e),i=new DisposableStore;if(t&&t.primary){const n=decodeKeybinding(t.primary,OS);n&&i.add(this._registerDefaultKeybinding(n,e.id,e.args,e.weight,0,e.when))}if(t&&Array.isArray(t.secondary))for(let n=0,r=t.secondary.length;n<r;n++){const s=t.secondary[n],a=decodeKeybinding(s,OS);a&&i.add(this._registerDefaultKeybinding(a,e.id,e.args,e.weight,-n-1,e.when))}return i}registerCommandAndKeybindingRule(e){return combinedDisposable(this.registerKeybindingRule(e),CommandsRegistry.registerCommand(e))}_registerDefaultKeybinding(e,t,i,n,r,s){const a=this._coreKeybindings.push({keybinding:e,command:t,commandArgs:i,when:s,weight1:n,weight2:r,extensionId:null,isBuiltinExtension:!1});return this._cachedMergedKeybindings=null,toDisposable(()=>{a(),this._cachedMergedKeybindings=null})}getDefaultKeybindings(){return this._cachedMergedKeybindings||(this._cachedMergedKeybindings=Array.from(this._coreKeybindings).concat(this._extensionKeybindings),this._cachedMergedKeybindings.sort(sorter)),this._cachedMergedKeybindings.slice(0)}}const KeybindingsRegistry=new KeybindingsRegistryImpl,Extensions$9={EditorModes:"platform.keybindingsRegistry"};Registry.add(Extensions$9.EditorModes,KeybindingsRegistry);function sorter(o,e){if(o.weight1!==e.weight1)return o.weight1-e.weight1;if(o.command&&e.command){if(o.command<e.command)return-1;if(o.command>e.command)return 1}return o.weight2-e.weight2}var __decorate$2b=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$24=function(o,e){return function(t,i){e(t,i,o)}},__rest=function(o,e){var t={};for(var i in o)Object.prototype.hasOwnProperty.call(o,i)&&e.indexOf(i)<0&&(t[i]=o[i]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,i=Object.getOwnPropertySymbols(o);n<i.length;n++)e.indexOf(i[n])<0&&Object.prototype.propertyIsEnumerable.call(o,i[n])&&(t[i[n]]=o[i[n]]);return t},MenuItemAction_1;function isIMenuItem(o){return o.command!==void 0}function isISubmenuItem(o){return o.submenu!==void 0}class MenuId{constructor(e){if(MenuId._instances.has(e))throw new TypeError(`MenuId with identifier '${e}' already exists. Use MenuId.for(ident) or a unique identifier`);MenuId._instances.set(e,this),this.id=e}}MenuId._instances=new Map;MenuId.CommandPalette=new MenuId("CommandPalette");MenuId.DebugBreakpointsContext=new MenuId("DebugBreakpointsContext");MenuId.DebugCallStackContext=new MenuId("DebugCallStackContext");MenuId.DebugConsoleContext=new MenuId("DebugConsoleContext");MenuId.DebugVariablesContext=new MenuId("DebugVariablesContext");MenuId.DebugWatchContext=new MenuId("DebugWatchContext");MenuId.DebugToolBar=new MenuId("DebugToolBar");MenuId.DebugToolBarStop=new MenuId("DebugToolBarStop");MenuId.EditorContext=new MenuId("EditorContext");MenuId.SimpleEditorContext=new MenuId("SimpleEditorContext");MenuId.EditorContent=new MenuId("EditorContent");MenuId.EditorLineNumberContext=new MenuId("EditorLineNumberContext");MenuId.EditorContextCopy=new MenuId("EditorContextCopy");MenuId.EditorContextPeek=new MenuId("EditorContextPeek");MenuId.EditorContextShare=new MenuId("EditorContextShare");MenuId.EditorTitle=new MenuId("EditorTitle");MenuId.EditorTitleRun=new MenuId("EditorTitleRun");MenuId.EditorTitleContext=new MenuId("EditorTitleContext");MenuId.EditorTitleContextShare=new MenuId("EditorTitleContextShare");MenuId.EmptyEditorGroup=new MenuId("EmptyEditorGroup");MenuId.EmptyEditorGroupContext=new MenuId("EmptyEditorGroupContext");MenuId.EditorTabsBarContext=new MenuId("EditorTabsBarContext");MenuId.ExplorerContext=new MenuId("ExplorerContext");MenuId.ExplorerContextShare=new MenuId("ExplorerContextShare");MenuId.ExtensionContext=new MenuId("ExtensionContext");MenuId.GlobalActivity=new MenuId("GlobalActivity");MenuId.CommandCenter=new MenuId("CommandCenter");MenuId.CommandCenterCenter=new MenuId("CommandCenterCenter");MenuId.LayoutControlMenuSubmenu=new MenuId("LayoutControlMenuSubmenu");MenuId.LayoutControlMenu=new MenuId("LayoutControlMenu");MenuId.MenubarMainMenu=new MenuId("MenubarMainMenu");MenuId.MenubarAppearanceMenu=new MenuId("MenubarAppearanceMenu");MenuId.MenubarDebugMenu=new MenuId("MenubarDebugMenu");MenuId.MenubarEditMenu=new MenuId("MenubarEditMenu");MenuId.MenubarCopy=new MenuId("MenubarCopy");MenuId.MenubarFileMenu=new MenuId("MenubarFileMenu");MenuId.MenubarGoMenu=new MenuId("MenubarGoMenu");MenuId.MenubarHelpMenu=new MenuId("MenubarHelpMenu");MenuId.MenubarLayoutMenu=new MenuId("MenubarLayoutMenu");MenuId.MenubarNewBreakpointMenu=new MenuId("MenubarNewBreakpointMenu");MenuId.PanelAlignmentMenu=new MenuId("PanelAlignmentMenu");MenuId.PanelPositionMenu=new MenuId("PanelPositionMenu");MenuId.MenubarPreferencesMenu=new MenuId("MenubarPreferencesMenu");MenuId.MenubarRecentMenu=new MenuId("MenubarRecentMenu");MenuId.MenubarSelectionMenu=new MenuId("MenubarSelectionMenu");MenuId.MenubarShare=new MenuId("MenubarShare");MenuId.MenubarSwitchEditorMenu=new MenuId("MenubarSwitchEditorMenu");MenuId.MenubarSwitchGroupMenu=new MenuId("MenubarSwitchGroupMenu");MenuId.MenubarTerminalMenu=new MenuId("MenubarTerminalMenu");MenuId.MenubarViewMenu=new MenuId("MenubarViewMenu");MenuId.MenubarHomeMenu=new MenuId("MenubarHomeMenu");MenuId.OpenEditorsContext=new MenuId("OpenEditorsContext");MenuId.OpenEditorsContextShare=new MenuId("OpenEditorsContextShare");MenuId.ProblemsPanelContext=new MenuId("ProblemsPanelContext");MenuId.SCMChangeContext=new MenuId("SCMChangeContext");MenuId.SCMResourceContext=new MenuId("SCMResourceContext");MenuId.SCMResourceContextShare=new MenuId("SCMResourceContextShare");MenuId.SCMResourceFolderContext=new MenuId("SCMResourceFolderContext");MenuId.SCMResourceGroupContext=new MenuId("SCMResourceGroupContext");MenuId.SCMSourceControl=new MenuId("SCMSourceControl");MenuId.SCMTitle=new MenuId("SCMTitle");MenuId.SearchContext=new MenuId("SearchContext");MenuId.SearchActionMenu=new MenuId("SearchActionContext");MenuId.StatusBarWindowIndicatorMenu=new MenuId("StatusBarWindowIndicatorMenu");MenuId.StatusBarRemoteIndicatorMenu=new MenuId("StatusBarRemoteIndicatorMenu");MenuId.StickyScrollContext=new MenuId("StickyScrollContext");MenuId.TestItem=new MenuId("TestItem");MenuId.TestItemGutter=new MenuId("TestItemGutter");MenuId.TestMessageContext=new MenuId("TestMessageContext");MenuId.TestMessageContent=new MenuId("TestMessageContent");MenuId.TestPeekElement=new MenuId("TestPeekElement");MenuId.TestPeekTitle=new MenuId("TestPeekTitle");MenuId.TouchBarContext=new MenuId("TouchBarContext");MenuId.TitleBarContext=new MenuId("TitleBarContext");MenuId.TitleBarTitleContext=new MenuId("TitleBarTitleContext");MenuId.TunnelContext=new MenuId("TunnelContext");MenuId.TunnelPrivacy=new MenuId("TunnelPrivacy");MenuId.TunnelProtocol=new MenuId("TunnelProtocol");MenuId.TunnelPortInline=new MenuId("TunnelInline");MenuId.TunnelTitle=new MenuId("TunnelTitle");MenuId.TunnelLocalAddressInline=new MenuId("TunnelLocalAddressInline");MenuId.TunnelOriginInline=new MenuId("TunnelOriginInline");MenuId.ViewItemContext=new MenuId("ViewItemContext");MenuId.ViewContainerTitle=new MenuId("ViewContainerTitle");MenuId.ViewContainerTitleContext=new MenuId("ViewContainerTitleContext");MenuId.ViewTitle=new MenuId("ViewTitle");MenuId.ViewTitleContext=new MenuId("ViewTitleContext");MenuId.CommentEditorActions=new MenuId("CommentEditorActions");MenuId.CommentThreadTitle=new MenuId("CommentThreadTitle");MenuId.CommentThreadActions=new MenuId("CommentThreadActions");MenuId.CommentThreadAdditionalActions=new MenuId("CommentThreadAdditionalActions");MenuId.CommentThreadTitleContext=new MenuId("CommentThreadTitleContext");MenuId.CommentThreadCommentContext=new MenuId("CommentThreadCommentContext");MenuId.CommentTitle=new MenuId("CommentTitle");MenuId.CommentActions=new MenuId("CommentActions");MenuId.InteractiveToolbar=new MenuId("InteractiveToolbar");MenuId.InteractiveCellTitle=new MenuId("InteractiveCellTitle");MenuId.InteractiveCellDelete=new MenuId("InteractiveCellDelete");MenuId.InteractiveCellExecute=new MenuId("InteractiveCellExecute");MenuId.InteractiveInputExecute=new MenuId("InteractiveInputExecute");MenuId.NotebookToolbar=new MenuId("NotebookToolbar");MenuId.NotebookStickyScrollContext=new MenuId("NotebookStickyScrollContext");MenuId.NotebookCellTitle=new MenuId("NotebookCellTitle");MenuId.NotebookCellDelete=new MenuId("NotebookCellDelete");MenuId.NotebookCellInsert=new MenuId("NotebookCellInsert");MenuId.NotebookCellBetween=new MenuId("NotebookCellBetween");MenuId.NotebookCellListTop=new MenuId("NotebookCellTop");MenuId.NotebookCellExecute=new MenuId("NotebookCellExecute");MenuId.NotebookCellExecutePrimary=new MenuId("NotebookCellExecutePrimary");MenuId.NotebookDiffCellInputTitle=new MenuId("NotebookDiffCellInputTitle");MenuId.NotebookDiffCellMetadataTitle=new MenuId("NotebookDiffCellMetadataTitle");MenuId.NotebookDiffCellOutputsTitle=new MenuId("NotebookDiffCellOutputsTitle");MenuId.NotebookOutputToolbar=new MenuId("NotebookOutputToolbar");MenuId.NotebookEditorLayoutConfigure=new MenuId("NotebookEditorLayoutConfigure");MenuId.NotebookKernelSource=new MenuId("NotebookKernelSource");MenuId.BulkEditTitle=new MenuId("BulkEditTitle");MenuId.BulkEditContext=new MenuId("BulkEditContext");MenuId.TimelineItemContext=new MenuId("TimelineItemContext");MenuId.TimelineTitle=new MenuId("TimelineTitle");MenuId.TimelineTitleContext=new MenuId("TimelineTitleContext");MenuId.TimelineFilterSubMenu=new MenuId("TimelineFilterSubMenu");MenuId.AccountsContext=new MenuId("AccountsContext");MenuId.PanelTitle=new MenuId("PanelTitle");MenuId.AuxiliaryBarTitle=new MenuId("AuxiliaryBarTitle");MenuId.TerminalInstanceContext=new MenuId("TerminalInstanceContext");MenuId.TerminalEditorInstanceContext=new MenuId("TerminalEditorInstanceContext");MenuId.TerminalNewDropdownContext=new MenuId("TerminalNewDropdownContext");MenuId.TerminalTabContext=new MenuId("TerminalTabContext");MenuId.TerminalTabEmptyAreaContext=new MenuId("TerminalTabEmptyAreaContext");MenuId.WebviewContext=new MenuId("WebviewContext");MenuId.InlineCompletionsActions=new MenuId("InlineCompletionsActions");MenuId.NewFile=new MenuId("NewFile");MenuId.MergeInput1Toolbar=new MenuId("MergeToolbar1Toolbar");MenuId.MergeInput2Toolbar=new MenuId("MergeToolbar2Toolbar");MenuId.MergeBaseToolbar=new MenuId("MergeBaseToolbar");MenuId.MergeInputResultToolbar=new MenuId("MergeToolbarResultToolbar");MenuId.InlineSuggestionToolbar=new MenuId("InlineSuggestionToolbar");MenuId.ChatContext=new MenuId("ChatContext");MenuId.ChatCodeBlock=new MenuId("ChatCodeblock");MenuId.ChatMessageTitle=new MenuId("ChatMessageTitle");MenuId.ChatExecute=new MenuId("ChatExecute");MenuId.ChatInputSide=new MenuId("ChatInputSide");MenuId.AccessibleView=new MenuId("AccessibleView");const IMenuService=createDecorator("menuService");class MenuRegistryChangeEvent{static for(e){let t=this._all.get(e);return t||(t=new MenuRegistryChangeEvent(e),this._all.set(e,t)),t}static merge(e){const t=new Set;for(const i of e)i instanceof MenuRegistryChangeEvent&&t.add(i.id);return t}constructor(e){this.id=e,this.has=t=>t===e}}MenuRegistryChangeEvent._all=new Map;const MenuRegistry=new class{constructor(){this._commands=new Map,this._menuItems=new Map,this._onDidChangeMenu=new MicrotaskEmitter({merge:MenuRegistryChangeEvent.merge}),this.onDidChangeMenu=this._onDidChangeMenu.event}addCommand(o){return this._commands.set(o.id,o),this._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(MenuId.CommandPalette)),toDisposable(()=>{this._commands.delete(o.id)&&this._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(MenuId.CommandPalette))})}getCommand(o){return this._commands.get(o)}getCommands(){const o=new Map;return this._commands.forEach((e,t)=>o.set(t,e)),o}appendMenuItem(o,e){let t=this._menuItems.get(o);t||(t=new LinkedList,this._menuItems.set(o,t));const i=t.push(e);return this._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(o)),toDisposable(()=>{i(),this._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(o))})}appendMenuItems(o){const e=new DisposableStore;for(const{id:t,item:i}of o)e.add(this.appendMenuItem(t,i));return e}getMenuItems(o){let e;return this._menuItems.has(o)?e=[...this._menuItems.get(o)]:e=[],o===MenuId.CommandPalette&&this._appendImplicitItems(e),e}_appendImplicitItems(o){const e=new Set;for(const t of o)isIMenuItem(t)&&(e.add(t.command.id),t.alt&&e.add(t.alt.id));this._commands.forEach((t,i)=>{e.has(i)||o.push({command:t})})}};class SubmenuItemAction extends SubmenuAction{constructor(e,t,i){super(`submenuitem.${e.submenu.id}`,typeof e.title=="string"?e.title:e.title.value,i,"submenu"),this.item=e,this.hideActions=t}}let MenuItemAction=MenuItemAction_1=class{static label(e,t){return t!=null&&t.renderShortTitle&&e.shortTitle?typeof e.shortTitle=="string"?e.shortTitle:e.shortTitle.value:typeof e.title=="string"?e.title:e.title.value}constructor(e,t,i,n,r,s){var a,l;this.hideActions=n,this._commandService=s,this.id=e.id,this.label=MenuItemAction_1.label(e,i),this.tooltip=(l=typeof e.tooltip=="string"?e.tooltip:(a=e.tooltip)===null||a===void 0?void 0:a.value)!==null&&l!==void 0?l:"",this.enabled=!e.precondition||r.contextMatchesRules(e.precondition),this.checked=void 0;let d;if(e.toggled){const c=e.toggled.condition?e.toggled:{condition:e.toggled};this.checked=r.contextMatchesRules(c.condition),this.checked&&c.tooltip&&(this.tooltip=typeof c.tooltip=="string"?c.tooltip:c.tooltip.value),this.checked&&ThemeIcon.isThemeIcon(c.icon)&&(d=c.icon),this.checked&&c.title&&(this.label=typeof c.title=="string"?c.title:c.title.value)}d||(d=ThemeIcon.isThemeIcon(e.icon)?e.icon:void 0),this.item=e,this.alt=t?new MenuItemAction_1(t,void 0,i,n,r,s):void 0,this._options=i,this.class=d&&ThemeIcon.asClassName(d)}run(...e){var t,i;let n=[];return!((t=this._options)===null||t===void 0)&&t.arg&&(n=[...n,this._options.arg]),!((i=this._options)===null||i===void 0)&&i.shouldForwardArgs&&(n=[...n,...e]),this._commandService.executeCommand(this.id,...n)}};MenuItemAction=MenuItemAction_1=__decorate$2b([__param$24(4,IContextKeyService),__param$24(5,ICommandService)],MenuItemAction);class Action2{constructor(e){this.desc=e}}function registerAction2(o){const e=new DisposableStore,t=new o,i=t.desc,{f1:n,menu:r,keybinding:s,description:a}=i,l=__rest(i,["f1","menu","keybinding","description"]);if(e.add(CommandsRegistry.registerCommand({id:l.id,handler:(d,...c)=>t.run(d,...c),description:a})),Array.isArray(r))for(const d of r)e.add(MenuRegistry.appendMenuItem(d.id,Object.assign({command:Object.assign(Object.assign({},l),{precondition:d.precondition===null?void 0:l.precondition})},d)));else r&&e.add(MenuRegistry.appendMenuItem(r.id,Object.assign({command:Object.assign(Object.assign({},l),{precondition:r.precondition===null?void 0:l.precondition})},r)));if(n&&(e.add(MenuRegistry.appendMenuItem(MenuId.CommandPalette,{command:l,when:l.precondition})),e.add(MenuRegistry.addCommand(l))),Array.isArray(s))for(const d of s)e.add(KeybindingsRegistry.registerKeybindingRule(Object.assign(Object.assign({},d),{id:l.id,when:l.precondition?ContextKeyExpr.and(l.precondition,d.when):d.when})));else s&&e.add(KeybindingsRegistry.registerKeybindingRule(Object.assign(Object.assign({},s),{id:l.id,when:l.precondition?ContextKeyExpr.and(l.precondition,s.when):s.when})));return e}const ITelemetryService=createDecorator("telemetryService"),ILogService=createDecorator("logService");var LogLevel;(function(o){o[o.Off=0]="Off",o[o.Trace=1]="Trace",o[o.Debug=2]="Debug",o[o.Info=3]="Info",o[o.Warning=4]="Warning",o[o.Error=5]="Error"})(LogLevel||(LogLevel={}));const DEFAULT_LOG_LEVEL=LogLevel.Info;class AbstractLogger extends Disposable{constructor(){super(...arguments),this.level=DEFAULT_LOG_LEVEL,this._onDidChangeLogLevel=this._register(new Emitter$1),this.onDidChangeLogLevel=this._onDidChangeLogLevel.event}setLevel(e){this.level!==e&&(this.level=e,this._onDidChangeLogLevel.fire(this.level))}getLevel(){return this.level}checkLogLevel(e){return this.level!==LogLevel.Off&&this.level<=e}}class ConsoleLogger extends AbstractLogger{constructor(e=DEFAULT_LOG_LEVEL,t=!0){super(),this.useColors=t,this.setLevel(e)}trace(e,...t){this.checkLogLevel(LogLevel.Trace)&&(this.useColors?console.log("%cTRACE","color: #888",e,...t):console.log(e,...t))}debug(e,...t){this.checkLogLevel(LogLevel.Debug)&&(this.useColors?console.log("%cDEBUG","background: #eee; color: #888",e,...t):console.log(e,...t))}info(e,...t){this.checkLogLevel(LogLevel.Info)&&(this.useColors?console.log("%c INFO","color: #33f",e,...t):console.log(e,...t))}warn(e,...t){this.checkLogLevel(LogLevel.Warning)&&(this.useColors?console.log("%c WARN","color: #993",e,...t):console.log(e,...t))}error(e,...t){this.checkLogLevel(LogLevel.Error)&&(this.useColors?console.log("%c ERR","color: #f33",e,...t):console.error(e,...t))}dispose(){}}class MultiplexLogger extends AbstractLogger{constructor(e){super(),this.loggers=e,e.length&&this.setLevel(e[0].getLevel())}setLevel(e){for(const t of this.loggers)t.setLevel(e);super.setLevel(e)}trace(e,...t){for(const i of this.loggers)i.trace(e,...t)}debug(e,...t){for(const i of this.loggers)i.debug(e,...t)}info(e,...t){for(const i of this.loggers)i.info(e,...t)}warn(e,...t){for(const i of this.loggers)i.warn(e,...t)}error(e,...t){for(const i of this.loggers)i.error(e,...t)}dispose(){for(const e of this.loggers)e.dispose()}}function LogLevelToString(o){switch(o){case LogLevel.Trace:return"trace";case LogLevel.Debug:return"debug";case LogLevel.Info:return"info";case LogLevel.Warning:return"warn";case LogLevel.Error:return"error";case LogLevel.Off:return"off"}}new RawContextKey("logLevel",LogLevelToString(LogLevel.Info));const BrowserFeatures={clipboard:{writeText:isNative||document.queryCommandSupported&&document.queryCommandSupported("copy")||!!(navigator&&navigator.clipboard&&navigator.clipboard.writeText),readText:isNative||!!(navigator&&navigator.clipboard&&navigator.clipboard.readText)},pointerEvents:window.PointerEvent&&("ontouchstart"in window||window.navigator.maxTouchPoints>0||navigator.maxTouchPoints>0)};function extractKeyCode(o){if(o.charCode){const t=String.fromCharCode(o.charCode).toUpperCase();return KeyCodeUtils.fromString(t)}const e=o.keyCode;if(e===3)return 7;if(isFirefox)switch(e){case 59:return 85;case 60:if(isLinux)return 97;break;case 61:return 86;case 107:return 109;case 109:return 111;case 173:return 88;case 224:if(isMacintosh)return 57;break}else if(isWebKit){if(isMacintosh&&e===93)return 57;if(!isMacintosh&&e===92)return 57}return EVENT_KEY_CODE_MAP[e]||0}const ctrlKeyMod$1=isMacintosh?256:2048,altKeyMod=512,shiftKeyMod=1024,metaKeyMod=isMacintosh?2048:256;class StandardKeyboardEvent{constructor(e){this._standardKeyboardEventBrand=!0;const 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.altGraphKey=t.getModifierState("AltGraph"),this.keyCode=extractKeyCode(t),this.code=t.code,this.ctrlKey=this.ctrlKey||this.keyCode===5,this.altKey=this.altKey||this.keyCode===6,this.shiftKey=this.shiftKey||this.keyCode===4,this.metaKey=this.metaKey||this.keyCode===57,this._asKeybinding=this._computeKeybinding(),this._asKeyCodeChord=this._computeKeyCodeChord()}preventDefault(){this.browserEvent&&this.browserEvent.preventDefault&&this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent&&this.browserEvent.stopPropagation&&this.browserEvent.stopPropagation()}toKeyCodeChord(){return this._asKeyCodeChord}equals(e){return this._asKeybinding===e}_computeKeybinding(){let e=0;this.keyCode!==5&&this.keyCode!==4&&this.keyCode!==6&&this.keyCode!==57&&(e=this.keyCode);let t=0;return this.ctrlKey&&(t|=ctrlKeyMod$1),this.altKey&&(t|=altKeyMod),this.shiftKey&&(t|=shiftKeyMod),this.metaKey&&(t|=metaKeyMod),t|=e,t}_computeKeyCodeChord(){let e=0;return this.keyCode!==5&&this.keyCode!==4&&this.keyCode!==6&&this.keyCode!==57&&(e=this.keyCode),new KeyCodeChord(this.ctrlKey,this.shiftKey,this.altKey,this.metaKey,e)}}let hasDifferentOriginAncestorFlag=!1,sameOriginWindowChainCache=null;function getParentWindowIfSameOrigin(o){if(!o.parent||o.parent===o)return null;try{const e=o.location,t=o.parent.location;if(e.origin!=="null"&&t.origin!=="null"&&e.origin!==t.origin)return hasDifferentOriginAncestorFlag=!0,null}catch{return hasDifferentOriginAncestorFlag=!0,null}return o.parent}class IframeUtils{static getSameOriginWindowChain(){if(!sameOriginWindowChainCache){sameOriginWindowChainCache=[];let e=window,t;do t=getParentWindowIfSameOrigin(e),t?sameOriginWindowChainCache.push({window:e,iframeElement:e.frameElement||null}):sameOriginWindowChainCache.push({window:e,iframeElement:null}),e=t;while(e)}return sameOriginWindowChainCache.slice(0)}static getPositionOfChildWindowRelativeToAncestorWindow(e,t){if(!t||e===t)return{top:0,left:0};let i=0,n=0;const r=this.getSameOriginWindowChain();for(const s of r){if(i+=s.window.scrollY,n+=s.window.scrollX,s.window===t||!s.iframeElement)break;const a=s.iframeElement.getBoundingClientRect();i+=a.top,n+=a.left}return{top:i,left:n}}}class StandardMouseEvent{constructor(e){this.timestamp=Date.now(),this.browserEvent=e,this.leftButton=e.button===0,this.middleButton=e.button===1,this.rightButton=e.button===2,this.buttons=e.buttons,this.target=e.target,this.detail=e.detail||1,e.type==="dblclick"&&(this.detail=2),this.ctrlKey=e.ctrlKey,this.shiftKey=e.shiftKey,this.altKey=e.altKey,this.metaKey=e.metaKey,typeof e.pageX=="number"?(this.posx=e.pageX,this.posy=e.pageY):(this.posx=e.clientX+this.target.ownerDocument.body.scrollLeft+this.target.ownerDocument.documentElement.scrollLeft,this.posy=e.clientY+this.target.ownerDocument.body.scrollTop+this.target.ownerDocument.documentElement.scrollTop);const t=IframeUtils.getPositionOfChildWindowRelativeToAncestorWindow(window,e.view);this.posx-=t.left,this.posy-=t.top}preventDefault(){this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent.stopPropagation()}}class StandardWheelEvent{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){const n=e,r=e;if(typeof n.wheelDeltaY<"u")this.deltaY=n.wheelDeltaY/120;else if(typeof r.VERTICAL_AXIS<"u"&&r.axis===r.VERTICAL_AXIS)this.deltaY=-r.detail/3;else if(e.type==="wheel"){const s=e;s.deltaMode===s.DOM_DELTA_LINE?isFirefox&&!isMacintosh?this.deltaY=-e.deltaY/3:this.deltaY=-e.deltaY:this.deltaY=-e.deltaY/40}if(typeof n.wheelDeltaX<"u")isSafari&&isWindows?this.deltaX=-(n.wheelDeltaX/120):this.deltaX=n.wheelDeltaX/120;else if(typeof r.HORIZONTAL_AXIS<"u"&&r.axis===r.HORIZONTAL_AXIS)this.deltaX=-e.detail/3;else if(e.type==="wheel"){const s=e;s.deltaMode===s.DOM_DELTA_LINE?isFirefox&&!isMacintosh?this.deltaX=-e.deltaX/3:this.deltaX=-e.deltaX:this.deltaX=-e.deltaX/40}this.deltaY===0&&this.deltaX===0&&e.wheelDelta&&(this.deltaY=e.wheelDelta/120)}}preventDefault(){var e;(e=this.browserEvent)===null||e===void 0||e.preventDefault()}stopPropagation(){var e;(e=this.browserEvent)===null||e===void 0||e.stopPropagation()}}/*! @license DOMPurify 3.0.5 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.5/LICENSE */const{entries,setPrototypeOf,isFrozen,getPrototypeOf,getOwnPropertyDescriptor}=Object;let{freeze:freeze$1,seal,create:create$1}=Object,{apply,construct}=typeof Reflect<"u"&&Reflect;apply||(apply=function(e,t,i){return e.apply(t,i)});freeze$1||(freeze$1=function(e){return e});seal||(seal=function(e){return e});construct||(construct=function(e,t){return new e(...t)});const arrayForEach=unapply(Array.prototype.forEach),arrayPop=unapply(Array.prototype.pop),arrayPush=unapply(Array.prototype.push),stringToLowerCase=unapply(String.prototype.toLowerCase),stringToString=unapply(String.prototype.toString),stringMatch=unapply(String.prototype.match),stringReplace=unapply(String.prototype.replace),stringIndexOf=unapply(String.prototype.indexOf),stringTrim=unapply(String.prototype.trim),regExpTest=unapply(RegExp.prototype.test),typeErrorCreate=unconstruct(TypeError);function unapply(o){return function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),n=1;n<t;n++)i[n-1]=arguments[n];return apply(o,e,i)}}function unconstruct(o){return function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];return construct(o,t)}}function addToSet(o,e,t){var i;t=(i=t)!==null&&i!==void 0?i:stringToLowerCase,setPrototypeOf&&setPrototypeOf(o,null);let n=e.length;for(;n--;){let r=e[n];if(typeof r=="string"){const s=t(r);s!==r&&(isFrozen(e)||(e[n]=s),r=s)}o[r]=!0}return o}function clone(o){const e=create$1(null);for(const[t,i]of entries(o))e[t]=i;return e}function lookupGetter(o,e){for(;o!==null;){const i=getOwnPropertyDescriptor(o,e);if(i){if(i.get)return unapply(i.get);if(typeof i.value=="function")return unapply(i.value)}o=getPrototypeOf(o)}function t(i){return console.warn("fallback value for",i),null}return t}const html$1=freeze$1(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),svg$1=freeze$1(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),svgFilters=freeze$1(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),svgDisallowed=freeze$1(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),mathMl$1=freeze$1(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),mathMlDisallowed=freeze$1(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),text=freeze$1(["#text"]),html=freeze$1(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","xmlns","slot"]),svg=freeze$1(["accent-height","accumulate","additive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),mathMl=freeze$1(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),xml=freeze$1(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),MUSTACHE_EXPR=seal(/\{\{[\w\W]*|[\w\W]*\}\}/gm),ERB_EXPR=seal(/<%[\w\W]*|[\w\W]*%>/gm),TMPLIT_EXPR=seal(/\${[\w\W]*}/gm),DATA_ATTR=seal(/^data-[\-\w.\u00B7-\uFFFF]/),ARIA_ATTR=seal(/^aria-[\-\w]+$/),IS_ALLOWED_URI=seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),IS_SCRIPT_OR_DATA=seal(/^(?:\w+script|data):/i),ATTR_WHITESPACE=seal(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),DOCTYPE_NAME=seal(/^html$/i);var EXPRESSIONS=Object.freeze({__proto__:null,MUSTACHE_EXPR,ERB_EXPR,TMPLIT_EXPR,DATA_ATTR,ARIA_ATTR,IS_ALLOWED_URI,IS_SCRIPT_OR_DATA,ATTR_WHITESPACE,DOCTYPE_NAME});const getGlobal=()=>typeof window>"u"?null:window,_createTrustedTypesPolicy=function o(e,t){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let i=null;const n="data-tt-policy-suffix";t&&t.hasAttribute(n)&&(i=t.getAttribute(n));const r="dompurify"+(i?"#"+i:"");try{return e.createPolicy(r,{createHTML(s){return s},createScriptURL(s){return s}})}catch{return console.warn("TrustedTypes policy "+r+" could not be created."),null}};function createDOMPurify(){let o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:getGlobal();const e=Ee=>createDOMPurify(Ee);if(e.version="3.0.5",e.removed=[],!o||!o.document||o.document.nodeType!==9)return e.isSupported=!1,e;const t=o.document,i=t.currentScript;let{document:n}=o;const{DocumentFragment:r,HTMLTemplateElement:s,Node:a,Element:l,NodeFilter:d,NamedNodeMap:c=o.NamedNodeMap||o.MozNamedAttrMap,HTMLFormElement:u,DOMParser:g,trustedTypes:f}=o,p=l.prototype,m=lookupGetter(p,"cloneNode"),b=lookupGetter(p,"nextSibling"),_=lookupGetter(p,"childNodes"),C=lookupGetter(p,"parentNode");if(typeof s=="function"){const Ee=n.createElement("template");Ee.content&&Ee.content.ownerDocument&&(n=Ee.content.ownerDocument)}let S,y="";const{implementation:E,createNodeIterator:x,createDocumentFragment:L,getElementsByTagName:I}=n,{importNode:D}=t;let N={};e.isSupported=typeof entries=="function"&&typeof C=="function"&&E&&E.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:F,ERB_EXPR:R,TMPLIT_EXPR:M,DATA_ATTR:W,ARIA_ATTR:V,IS_SCRIPT_OR_DATA:A,ATTR_WHITESPACE:P}=EXPRESSIONS;let{IS_ALLOWED_URI:k}=EXPRESSIONS,T=null;const U=addToSet({},[...html$1,...svg$1,...svgFilters,...mathMl$1,...text]);let z=null;const J=addToSet({},[...html,...svg,...mathMl,...xml]);let X=Object.seal(Object.create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),ae=null,ve=null,me=!0,fe=!0,xe=!1,Ie=!0,De=!1,he=!1,Me=!1,we=!1,ue=!1,ke=!1,Re=!1,Pe=!0,$e=!1;const He="user-content-";let ie=!0,q=!1,Z={},O=null;const B=addToSet({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let j=null;const H=addToSet({},["audio","video","img","source","image","track"]);let ne=null;const re=addToSet({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),K="http://www.w3.org/1998/Math/MathML",G="http://www.w3.org/2000/svg",Q="http://www.w3.org/1999/xhtml";let oe=Q,le=!1,pe=null;const se=addToSet({},[K,G,Q],stringToString);let ye;const Le=["application/xhtml+xml","text/html"],Se="text/html";let ee,Y=null;const de=n.createElement("form"),ce=function(te){return te instanceof RegExp||te instanceof Function},be=function(te){if(!(Y&&Y===te)){if((!te||typeof te!="object")&&(te={}),te=clone(te),ye=Le.indexOf(te.PARSER_MEDIA_TYPE)===-1?ye=Se:ye=te.PARSER_MEDIA_TYPE,ee=ye==="application/xhtml+xml"?stringToString:stringToLowerCase,T="ALLOWED_TAGS"in te?addToSet({},te.ALLOWED_TAGS,ee):U,z="ALLOWED_ATTR"in te?addToSet({},te.ALLOWED_ATTR,ee):J,pe="ALLOWED_NAMESPACES"in te?addToSet({},te.ALLOWED_NAMESPACES,stringToString):se,ne="ADD_URI_SAFE_ATTR"in te?addToSet(clone(re),te.ADD_URI_SAFE_ATTR,ee):re,j="ADD_DATA_URI_TAGS"in te?addToSet(clone(H),te.ADD_DATA_URI_TAGS,ee):H,O="FORBID_CONTENTS"in te?addToSet({},te.FORBID_CONTENTS,ee):B,ae="FORBID_TAGS"in te?addToSet({},te.FORBID_TAGS,ee):{},ve="FORBID_ATTR"in te?addToSet({},te.FORBID_ATTR,ee):{},Z="USE_PROFILES"in te?te.USE_PROFILES:!1,me=te.ALLOW_ARIA_ATTR!==!1,fe=te.ALLOW_DATA_ATTR!==!1,xe=te.ALLOW_UNKNOWN_PROTOCOLS||!1,Ie=te.ALLOW_SELF_CLOSE_IN_ATTR!==!1,De=te.SAFE_FOR_TEMPLATES||!1,he=te.WHOLE_DOCUMENT||!1,ue=te.RETURN_DOM||!1,ke=te.RETURN_DOM_FRAGMENT||!1,Re=te.RETURN_TRUSTED_TYPE||!1,we=te.FORCE_BODY||!1,Pe=te.SANITIZE_DOM!==!1,$e=te.SANITIZE_NAMED_PROPS||!1,ie=te.KEEP_CONTENT!==!1,q=te.IN_PLACE||!1,k=te.ALLOWED_URI_REGEXP||IS_ALLOWED_URI,oe=te.NAMESPACE||Q,X=te.CUSTOM_ELEMENT_HANDLING||{},te.CUSTOM_ELEMENT_HANDLING&&ce(te.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(X.tagNameCheck=te.CUSTOM_ELEMENT_HANDLING.tagNameCheck),te.CUSTOM_ELEMENT_HANDLING&&ce(te.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(X.attributeNameCheck=te.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),te.CUSTOM_ELEMENT_HANDLING&&typeof te.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(X.allowCustomizedBuiltInElements=te.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),De&&(fe=!1),ke&&(ue=!0),Z&&(T=addToSet({},[...text]),z=[],Z.html===!0&&(addToSet(T,html$1),addToSet(z,html)),Z.svg===!0&&(addToSet(T,svg$1),addToSet(z,svg),addToSet(z,xml)),Z.svgFilters===!0&&(addToSet(T,svgFilters),addToSet(z,svg),addToSet(z,xml)),Z.mathMl===!0&&(addToSet(T,mathMl$1),addToSet(z,mathMl),addToSet(z,xml))),te.ADD_TAGS&&(T===U&&(T=clone(T)),addToSet(T,te.ADD_TAGS,ee)),te.ADD_ATTR&&(z===J&&(z=clone(z)),addToSet(z,te.ADD_ATTR,ee)),te.ADD_URI_SAFE_ATTR&&addToSet(ne,te.ADD_URI_SAFE_ATTR,ee),te.FORBID_CONTENTS&&(O===B&&(O=clone(O)),addToSet(O,te.FORBID_CONTENTS,ee)),ie&&(T["#text"]=!0),he&&addToSet(T,["html","head","body"]),T.table&&(addToSet(T,["tbody"]),delete ae.tbody),te.TRUSTED_TYPES_POLICY){if(typeof te.TRUSTED_TYPES_POLICY.createHTML!="function")throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof te.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');S=te.TRUSTED_TYPES_POLICY,y=S.createHTML("")}else S===void 0&&(S=_createTrustedTypesPolicy(f,i)),S!==null&&typeof y=="string"&&(y=S.createHTML(""));freeze$1&&freeze$1(te),Y=te}},Ae=addToSet({},["mi","mo","mn","ms","mtext"]),Ne=addToSet({},["foreignobject","desc","title","annotation-xml"]),Be=addToSet({},["title","style","font","a","script"]),Ue=addToSet({},svg$1);addToSet(Ue,svgFilters),addToSet(Ue,svgDisallowed);const Ge=addToSet({},mathMl$1);addToSet(Ge,mathMlDisallowed);const nt=function(te){let ge=C(te);(!ge||!ge.tagName)&&(ge={namespaceURI:oe,tagName:"template"});const Ce=stringToLowerCase(te.tagName),Fe=stringToLowerCase(ge.tagName);return pe[te.namespaceURI]?te.namespaceURI===G?ge.namespaceURI===Q?Ce==="svg":ge.namespaceURI===K?Ce==="svg"&&(Fe==="annotation-xml"||Ae[Fe]):!!Ue[Ce]:te.namespaceURI===K?ge.namespaceURI===Q?Ce==="math":ge.namespaceURI===G?Ce==="math"&&Ne[Fe]:!!Ge[Ce]:te.namespaceURI===Q?ge.namespaceURI===G&&!Ne[Fe]||ge.namespaceURI===K&&!Ae[Fe]?!1:!Ge[Ce]&&(Be[Ce]||!Ue[Ce]):!!(ye==="application/xhtml+xml"&&pe[te.namespaceURI]):!1},je=function(te){arrayPush(e.removed,{element:te});try{te.parentNode.removeChild(te)}catch{te.remove()}},Qe=function(te,ge){try{arrayPush(e.removed,{attribute:ge.getAttributeNode(te),from:ge})}catch{arrayPush(e.removed,{attribute:null,from:ge})}if(ge.removeAttribute(te),te==="is"&&!z[te])if(ue||ke)try{je(ge)}catch{}else try{ge.setAttribute(te,"")}catch{}},Te=function(te){let ge,Ce;if(we)te="<remove></remove>"+te;else{const qe=stringMatch(te,/^[\r\n\t ]+/);Ce=qe&&qe[0]}ye==="application/xhtml+xml"&&oe===Q&&(te='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+te+"</body></html>");const Fe=S?S.createHTML(te):te;if(oe===Q)try{ge=new g().parseFromString(Fe,ye)}catch{}if(!ge||!ge.documentElement){ge=E.createDocument(oe,"template",null);try{ge.documentElement.innerHTML=le?y:Fe}catch{}}const Ke=ge.body||ge.documentElement;return te&&Ce&&Ke.insertBefore(n.createTextNode(Ce),Ke.childNodes[0]||null),oe===Q?I.call(ge,he?"html":"body")[0]:he?ge.documentElement:Ke},ze=function(te){return x.call(te.ownerDocument||te,te,d.SHOW_ELEMENT|d.SHOW_COMMENT|d.SHOW_TEXT,null,!1)},it=function(te){return te instanceof u&&(typeof te.nodeName!="string"||typeof te.textContent!="string"||typeof te.removeChild!="function"||!(te.attributes instanceof c)||typeof te.removeAttribute!="function"||typeof te.setAttribute!="function"||typeof te.namespaceURI!="string"||typeof te.insertBefore!="function"||typeof te.hasChildNodes!="function")},rt=function(te){return typeof a=="object"?te instanceof a:te&&typeof te=="object"&&typeof te.nodeType=="number"&&typeof te.nodeName=="string"},Ye=function(te,ge,Ce){N[te]&&arrayForEach(N[te],Fe=>{Fe.call(e,ge,Ce,Y)})},ut=function(te){let ge;if(Ye("beforeSanitizeElements",te,null),it(te))return je(te),!0;const Ce=ee(te.nodeName);if(Ye("uponSanitizeElement",te,{tagName:Ce,allowedTags:T}),te.hasChildNodes()&&!rt(te.firstElementChild)&&(!rt(te.content)||!rt(te.content.firstElementChild))&®ExpTest(/<[/\w]/g,te.innerHTML)&®ExpTest(/<[/\w]/g,te.textContent))return je(te),!0;if(!T[Ce]||ae[Ce]){if(!ae[Ce]&>(Ce)&&(X.tagNameCheck instanceof RegExp&®ExpTest(X.tagNameCheck,Ce)||X.tagNameCheck instanceof Function&&X.tagNameCheck(Ce)))return!1;if(ie&&!O[Ce]){const Fe=C(te)||te.parentNode,Ke=_(te)||te.childNodes;if(Ke&&Fe){const qe=Ke.length;for(let We=qe-1;We>=0;--We)Fe.insertBefore(m(Ke[We],!0),b(te))}}return je(te),!0}return te instanceof l&&!nt(te)||(Ce==="noscript"||Ce==="noembed"||Ce==="noframes")&®ExpTest(/<\/no(script|embed|frames)/i,te.innerHTML)?(je(te),!0):(De&&te.nodeType===3&&(ge=te.textContent,ge=stringReplace(ge,F," "),ge=stringReplace(ge,R," "),ge=stringReplace(ge,M," "),te.textContent!==ge&&(arrayPush(e.removed,{element:te.cloneNode()}),te.textContent=ge)),Ye("afterSanitizeElements",te,null),!1)},ht=function(te,ge,Ce){if(Pe&&(ge==="id"||ge==="name")&&(Ce in n||Ce in de))return!1;if(!(fe&&!ve[ge]&®ExpTest(W,ge))){if(!(me&®ExpTest(V,ge))){if(!z[ge]||ve[ge]){if(!(gt(te)&&(X.tagNameCheck instanceof RegExp&®ExpTest(X.tagNameCheck,te)||X.tagNameCheck instanceof Function&&X.tagNameCheck(te))&&(X.attributeNameCheck instanceof RegExp&®ExpTest(X.attributeNameCheck,ge)||X.attributeNameCheck instanceof Function&&X.attributeNameCheck(ge))||ge==="is"&&X.allowCustomizedBuiltInElements&&(X.tagNameCheck instanceof RegExp&®ExpTest(X.tagNameCheck,Ce)||X.tagNameCheck instanceof Function&&X.tagNameCheck(Ce))))return!1}else if(!ne[ge]){if(!regExpTest(k,stringReplace(Ce,P,""))){if(!((ge==="src"||ge==="xlink:href"||ge==="href")&&te!=="script"&&stringIndexOf(Ce,"data:")===0&&j[te])){if(!(xe&&!regExpTest(A,stringReplace(Ce,P,"")))){if(Ce)return!1}}}}}}return!0},gt=function(te){return te.indexOf("-")>0},ft=function(te){let ge,Ce,Fe,Ke;Ye("beforeSanitizeAttributes",te,null);const{attributes:qe}=te;if(!qe)return;const We={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:z};for(Ke=qe.length;Ke--;){ge=qe[Ke];const{name:Ze,namespaceURI:st}=ge;if(Ce=Ze==="value"?ge.value:stringTrim(ge.value),Fe=ee(Ze),We.attrName=Fe,We.attrValue=Ce,We.keepAttr=!0,We.forceKeepAttr=void 0,Ye("uponSanitizeAttribute",te,We),Ce=We.attrValue,We.forceKeepAttr||(Qe(Ze,te),!We.keepAttr))continue;if(!Ie&®ExpTest(/\/>/i,Ce)){Qe(Ze,te);continue}De&&(Ce=stringReplace(Ce,F," "),Ce=stringReplace(Ce,R," "),Ce=stringReplace(Ce,M," "));const pt=ee(te.nodeName);if(ht(pt,Fe,Ce)){if($e&&(Fe==="id"||Fe==="name")&&(Qe(Ze,te),Ce=He+Ce),S&&typeof f=="object"&&typeof f.getAttributeType=="function"&&!st)switch(f.getAttributeType(pt,Fe)){case"TrustedHTML":{Ce=S.createHTML(Ce);break}case"TrustedScriptURL":{Ce=S.createScriptURL(Ce);break}}try{st?te.setAttributeNS(st,Ze,Ce):te.setAttribute(Ze,Ce),arrayPop(e.removed)}catch{}}}Ye("afterSanitizeAttributes",te,null)},vt=function Ee(te){let ge;const Ce=ze(te);for(Ye("beforeSanitizeShadowDOM",te,null);ge=Ce.nextNode();)Ye("uponSanitizeShadowNode",ge,null),!ut(ge)&&(ge.content instanceof r&&Ee(ge.content),ft(ge));Ye("afterSanitizeShadowDOM",te,null)};return e.sanitize=function(Ee){let te=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},ge,Ce,Fe,Ke;if(le=!Ee,le&&(Ee="<!-->"),typeof Ee!="string"&&!rt(Ee))if(typeof Ee.toString=="function"){if(Ee=Ee.toString(),typeof Ee!="string")throw typeErrorCreate("dirty is not a string, aborting")}else throw typeErrorCreate("toString is not a function");if(!e.isSupported)return Ee;if(Me||be(te),e.removed=[],typeof Ee=="string"&&(q=!1),q){if(Ee.nodeName){const Ze=ee(Ee.nodeName);if(!T[Ze]||ae[Ze])throw typeErrorCreate("root node is forbidden and cannot be sanitized in-place")}}else if(Ee instanceof a)ge=Te("<!---->"),Ce=ge.ownerDocument.importNode(Ee,!0),Ce.nodeType===1&&Ce.nodeName==="BODY"||Ce.nodeName==="HTML"?ge=Ce:ge.appendChild(Ce);else{if(!ue&&!De&&!he&&Ee.indexOf("<")===-1)return S&&Re?S.createHTML(Ee):Ee;if(ge=Te(Ee),!ge)return ue?null:Re?y:""}ge&&we&&je(ge.firstChild);const qe=ze(q?Ee:ge);for(;Fe=qe.nextNode();)ut(Fe)||(Fe.content instanceof r&&vt(Fe.content),ft(Fe));if(q)return Ee;if(ue){if(ke)for(Ke=L.call(ge.ownerDocument);ge.firstChild;)Ke.appendChild(ge.firstChild);else Ke=ge;return(z.shadowroot||z.shadowrootmode)&&(Ke=D.call(t,Ke,!0)),Ke}let We=he?ge.outerHTML:ge.innerHTML;return he&&T["!doctype"]&&ge.ownerDocument&&ge.ownerDocument.doctype&&ge.ownerDocument.doctype.name&®ExpTest(DOCTYPE_NAME,ge.ownerDocument.doctype.name)&&(We="<!DOCTYPE "+ge.ownerDocument.doctype.name+`>
- `+We),De&&(We=stringReplace(We,F," "),We=stringReplace(We,R," "),We=stringReplace(We,M," ")),S&&Re?S.createHTML(We):We},e.setConfig=function(Ee){be(Ee),Me=!0},e.clearConfig=function(){Y=null,Me=!1},e.isValidAttribute=function(Ee,te,ge){Y||be({});const Ce=ee(Ee),Fe=ee(te);return ht(Ce,Fe,ge)},e.addHook=function(Ee,te){typeof te=="function"&&(N[Ee]=N[Ee]||[],arrayPush(N[Ee],te))},e.removeHook=function(Ee){if(N[Ee])return arrayPop(N[Ee])},e.removeHooks=function(Ee){N[Ee]&&(N[Ee]=[])},e.removeAllHooks=function(){N={}},e}var purify=createDOMPurify();purify.version;purify.isSupported;const sanitize$1=purify.sanitize;purify.setConfig;purify.clearConfig;purify.isValidAttribute;const addHook=purify.addHook,removeHook=purify.removeHook;purify.removeHooks;purify.removeAllHooks;var Schemas;(function(o){o.inMemory="inmemory",o.vscode="vscode",o.internal="private",o.walkThrough="walkThrough",o.walkThroughSnippet="walkThroughSnippet",o.http="http",o.https="https",o.file="file",o.mailto="mailto",o.untitled="untitled",o.data="data",o.command="command",o.vscodeRemote="vscode-remote",o.vscodeRemoteResource="vscode-remote-resource",o.vscodeManagedRemoteResource="vscode-managed-remote-resource",o.vscodeUserData="vscode-userdata",o.vscodeCustomEditor="vscode-custom-editor",o.vscodeNotebookCell="vscode-notebook-cell",o.vscodeNotebookCellMetadata="vscode-notebook-cell-metadata",o.vscodeNotebookCellOutput="vscode-notebook-cell-output",o.vscodeInteractiveInput="vscode-interactive-input",o.vscodeSettings="vscode-settings",o.vscodeWorkspaceTrust="vscode-workspace-trust",o.vscodeTerminal="vscode-terminal",o.vscodeChatSesssion="vscode-chat-editor",o.webviewPanel="webview-panel",o.vscodeWebview="vscode-webview",o.extension="extension",o.vscodeFileResource="vscode-file",o.tmp="tmp",o.vsls="vsls",o.vscodeSourceControl="vscode-scm"})(Schemas||(Schemas={}));const connectionTokenQueryName="tkn";class RemoteAuthoritiesImpl{constructor(){this._hosts=Object.create(null),this._ports=Object.create(null),this._connectionTokens=Object.create(null),this._preferredWebSchema="http",this._delegate=null,this._remoteResourcesPath=`/${Schemas.vscodeRemoteResource}`}setPreferredWebSchema(e){this._preferredWebSchema=e}rewrite(e){if(this._delegate)try{return this._delegate(e)}catch(a){return onUnexpectedError(a),e}const t=e.authority;let i=this._hosts[t];i&&i.indexOf(":")!==-1&&i.indexOf("[")===-1&&(i=`[${i}]`);const n=this._ports[t],r=this._connectionTokens[t];let s=`path=${encodeURIComponent(e.path)}`;return typeof r=="string"&&(s+=`&${connectionTokenQueryName}=${encodeURIComponent(r)}`),URI.from({scheme:isWeb?this._preferredWebSchema:Schemas.vscodeRemoteResource,authority:`${i}:${n}`,path:this._remoteResourcesPath,query:s})}}const RemoteAuthorities=new RemoteAuthoritiesImpl;class FileAccessImpl{uriToBrowserUri(e){return e.scheme===Schemas.vscodeRemote?RemoteAuthorities.rewrite(e):e.scheme===Schemas.file&&(isNative||isWebWorker&&globals.origin===`${Schemas.vscodeFileResource}://${FileAccessImpl.FALLBACK_AUTHORITY}`)?e.with({scheme:Schemas.vscodeFileResource,authority:e.authority||FileAccessImpl.FALLBACK_AUTHORITY,query:null,fragment:null}):e}}FileAccessImpl.FALLBACK_AUTHORITY="vscode-app";const FileAccess=new FileAccessImpl;var COI;(function(o){const e=new Map([["1",{"Cross-Origin-Opener-Policy":"same-origin"}],["2",{"Cross-Origin-Embedder-Policy":"require-corp"}],["3",{"Cross-Origin-Opener-Policy":"same-origin","Cross-Origin-Embedder-Policy":"require-corp"}]]);o.CoopAndCoep=Object.freeze(e.get("3"));const t="vscode-coi";function i(r){let s;typeof r=="string"?s=new URL(r).searchParams:r instanceof URL?s=r.searchParams:URI.isUri(r)&&(s=new URL(r.toString(!0)).searchParams);const a=s==null?void 0:s.get(t);if(a)return e.get(a)}o.getHeadersFromQuery=i;function n(r,s,a){if(!globalThis.crossOriginIsolated)return;const l=s&&a?"3":a?"2":"1";r instanceof URLSearchParams?r.set(t,l):r[t]=l}o.addSearchParam=n})(COI||(COI={}));const{getWindows}=function(){const o=[],e=new Emitter$1;return{onDidCreateWindow:e.event,registerWindow(t){o.push(t);const i=new DisposableStore;return i.add(toDisposable(()=>{const n=o.indexOf(t);n!==-1&&o.splice(n,1)})),e.fire({window:t,disposableStore:i}),i},getWindows(){return o}}}();function clearNode(o){for(;o.firstChild;)o.firstChild.remove()}function isInDOM(o){var e;return(e=o==null?void 0:o.isConnected)!==null&&e!==void 0?e:!1}class DomListener{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 addDisposableListener(o,e,t,i){return new DomListener(o,e,t,i)}function _wrapAsStandardMouseEvent(o){return function(e){return o(new StandardMouseEvent(e))}}function _wrapAsStandardKeyboardEvent(o){return function(e){return o(new StandardKeyboardEvent(e))}}const addStandardDisposableListener=function o(e,t,i,n){let r=i;return t==="click"||t==="mousedown"?r=_wrapAsStandardMouseEvent(i):(t==="keydown"||t==="keypress"||t==="keyup")&&(r=_wrapAsStandardKeyboardEvent(i)),addDisposableListener(e,t,r,n)},addStandardDisposableGenericMouseDownListener=function o(e,t,i){const n=_wrapAsStandardMouseEvent(t);return addDisposableGenericMouseDownListener(e,n,i)};function addDisposableGenericMouseDownListener(o,e,t){return addDisposableListener(o,isIOS&&BrowserFeatures.pointerEvents?EventType$1.POINTER_DOWN:EventType$1.MOUSE_DOWN,e,t)}let runAtThisOrScheduleAtNextAnimationFrame,scheduleAtNextAnimationFrame;class AnimationFrameQueueItem{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){onUnexpectedError(e)}}static sort(e,t){return t.priority-e.priority}}(function(){let o=[],e=null,t=!1,i=!1;const n=()=>{for(t=!1,e=o,o=[],i=!0;e.length>0;)e.sort(AnimationFrameQueueItem.sort),e.shift().execute();i=!1};scheduleAtNextAnimationFrame=(r,s=0)=>{const a=new AnimationFrameQueueItem(r,s);return o.push(a),t||(t=!0,requestAnimationFrame(n)),a},runAtThisOrScheduleAtNextAnimationFrame=(r,s)=>{if(i){const a=new AnimationFrameQueueItem(r,s);return e.push(a),a}else return scheduleAtNextAnimationFrame(r,s)}})();function getComputedStyle$1(o){return o.ownerDocument.defaultView.getComputedStyle(o,null)}function getClientArea(o){var e;const t=o.ownerDocument,i=(e=t.defaultView)===null||e===void 0?void 0:e.window;if(o!==t.body)return new Dimension(o.clientWidth,o.clientHeight);if(isIOS&&(i!=null&&i.visualViewport))return new Dimension(i.visualViewport.width,i.visualViewport.height);if(i!=null&&i.innerWidth&&i.innerHeight)return new Dimension(i.innerWidth,i.innerHeight);if(t.body&&t.body.clientWidth&&t.body.clientHeight)return new Dimension(t.body.clientWidth,t.body.clientHeight);if(t.documentElement&&t.documentElement.clientWidth&&t.documentElement.clientHeight)return new Dimension(t.documentElement.clientWidth,t.documentElement.clientHeight);throw new Error("Unable to figure out browser width and height")}class SizeUtils{static convertToPixels(e,t){return parseFloat(t)||0}static getDimension(e,t,i){const n=getComputedStyle$1(e),r=n?n.getPropertyValue(t):"0";return SizeUtils.convertToPixels(e,r)}static getBorderLeftWidth(e){return SizeUtils.getDimension(e,"border-left-width","borderLeftWidth")}static getBorderRightWidth(e){return SizeUtils.getDimension(e,"border-right-width","borderRightWidth")}static getBorderTopWidth(e){return SizeUtils.getDimension(e,"border-top-width","borderTopWidth")}static getBorderBottomWidth(e){return SizeUtils.getDimension(e,"border-bottom-width","borderBottomWidth")}static getPaddingLeft(e){return SizeUtils.getDimension(e,"padding-left","paddingLeft")}static getPaddingRight(e){return SizeUtils.getDimension(e,"padding-right","paddingRight")}static getPaddingTop(e){return SizeUtils.getDimension(e,"padding-top","paddingTop")}static getPaddingBottom(e){return SizeUtils.getDimension(e,"padding-bottom","paddingBottom")}static getMarginLeft(e){return SizeUtils.getDimension(e,"margin-left","marginLeft")}static getMarginTop(e){return SizeUtils.getDimension(e,"margin-top","marginTop")}static getMarginRight(e){return SizeUtils.getDimension(e,"margin-right","marginRight")}static getMarginBottom(e){return SizeUtils.getDimension(e,"margin-bottom","marginBottom")}}class Dimension{constructor(e,t){this.width=e,this.height=t}with(e=this.width,t=this.height){return e!==this.width||t!==this.height?new Dimension(e,t):this}static is(e){return typeof e=="object"&&typeof e.height=="number"&&typeof e.width=="number"}static lift(e){return e instanceof Dimension?e:new Dimension(e.width,e.height)}static equals(e,t){return e===t?!0:!e||!t?!1:e.width===t.width&&e.height===t.height}}Dimension.None=new Dimension(0,0);function getTopLeftOffset(o){let e=o.offsetParent,t=o.offsetTop,i=o.offsetLeft;for(;(o=o.parentNode)!==null&&o!==o.ownerDocument.body&&o!==o.ownerDocument.documentElement;){t-=o.scrollTop;const n=isShadowRoot(o)?null:getComputedStyle$1(o);n&&(i-=n.direction!=="rtl"?o.scrollLeft:-o.scrollLeft),o===e&&(i+=SizeUtils.getBorderLeftWidth(o),t+=SizeUtils.getBorderTopWidth(o),t+=o.offsetTop,i+=o.offsetLeft,e=o.offsetParent)}return{left:i,top:t}}function size(o,e,t){typeof e=="number"&&(o.style.width=`${e}px`),typeof t=="number"&&(o.style.height=`${t}px`)}function getDomNodePagePosition(o){var e,t,i,n;const r=o.getBoundingClientRect();return{left:r.left+((t=(e=o.ownerDocument.defaultView)===null||e===void 0?void 0:e.scrollX)!==null&&t!==void 0?t:0),top:r.top+((n=(i=o.ownerDocument.defaultView)===null||i===void 0?void 0:i.scrollY)!==null&&n!==void 0?n:0),width:r.width,height:r.height}}function getDomNodeZoomLevel(o){let e=o,t=1;do{const i=getComputedStyle$1(e).zoom;i!=null&&i!=="1"&&(t*=i),e=e.parentElement}while(e!==null&&e!==e.ownerDocument.documentElement);return t}function getTotalWidth(o){const e=SizeUtils.getMarginLeft(o)+SizeUtils.getMarginRight(o);return o.offsetWidth+e}function getContentWidth(o){const e=SizeUtils.getBorderLeftWidth(o)+SizeUtils.getBorderRightWidth(o),t=SizeUtils.getPaddingLeft(o)+SizeUtils.getPaddingRight(o);return o.offsetWidth-e-t}function getContentHeight(o){const e=SizeUtils.getBorderTopWidth(o)+SizeUtils.getBorderBottomWidth(o),t=SizeUtils.getPaddingTop(o)+SizeUtils.getPaddingBottom(o);return o.offsetHeight-e-t}function getTotalHeight(o){const e=SizeUtils.getMarginTop(o)+SizeUtils.getMarginBottom(o);return o.offsetHeight+e}function isAncestor$1(o,e){for(;o;){if(o===e)return!0;o=o.parentNode}return!1}function findParentWithClass(o,e,t){for(;o&&o.nodeType===o.ELEMENT_NODE;){if(o.classList.contains(e))return o;if(t){if(typeof t=="string"){if(o.classList.contains(t))return null}else if(o===t)return null}o=o.parentNode}return null}function hasParentWithClass(o,e,t){return!!findParentWithClass(o,e,t)}function isShadowRoot(o){return o&&!!o.host&&!!o.mode}function isInShadowDOM(o){return!!getShadowRoot(o)}function getShadowRoot(o){for(var e;o.parentNode;){if(o===((e=o.ownerDocument)===null||e===void 0?void 0:e.body))return null;o=o.parentNode}return isShadowRoot(o)?o:null}function getActiveElement(){let o=getActiveDocument().activeElement;for(;o!=null&&o.shadowRoot;)o=o.shadowRoot.activeElement;return o}function getActiveDocument(){var o;return(o=[document,...getWindows().map(t=>t.document)].find(t=>t.hasFocus()))!==null&&o!==void 0?o:document}function createStyleSheet(o=document.getElementsByTagName("head")[0],e){const t=document.createElement("style");return t.type="text/css",t.media="screen",e==null||e(t),o.appendChild(t),t}let _sharedStyleSheet=null;function getSharedStyleSheet(){return _sharedStyleSheet||(_sharedStyleSheet=createStyleSheet()),_sharedStyleSheet}function getDynamicStyleSheetRules(o){var e,t;return!((e=o==null?void 0:o.sheet)===null||e===void 0)&&e.rules?o.sheet.rules:!((t=o==null?void 0:o.sheet)===null||t===void 0)&&t.cssRules?o.sheet.cssRules:[]}function createCSSRule(o,e,t=getSharedStyleSheet()){!t||!e||t.sheet.insertRule(o+"{"+e+"}",0)}function removeCSSRulesContainingSelector(o,e=getSharedStyleSheet()){if(!e)return;const t=getDynamicStyleSheetRules(e),i=[];for(let n=0;n<t.length;n++)t[n].selectorText.indexOf(o)!==-1&&i.push(n);for(let n=i.length-1;n>=0;n--)e.sheet.deleteRule(i[n])}function isHTMLElement(o){return typeof HTMLElement=="object"?o instanceof HTMLElement:o&&typeof o=="object"&&o.nodeType===1&&typeof o.nodeName=="string"}const EventType$1={CLICK:"click",DBLCLICK:"dblclick",MOUSE_UP:"mouseup",MOUSE_DOWN:"mousedown",MOUSE_OVER:"mouseover",MOUSE_MOVE:"mousemove",MOUSE_OUT:"mouseout",MOUSE_ENTER:"mouseenter",MOUSE_LEAVE:"mouseleave",MOUSE_WHEEL:"wheel",POINTER_UP:"pointerup",POINTER_DOWN:"pointerdown",POINTER_MOVE:"pointermove",POINTER_LEAVE:"pointerleave",CONTEXT_MENU:"contextmenu",KEY_DOWN:"keydown",KEY_UP:"keyup",CHANGE:"change",FOCUS:"focus",FOCUS_IN:"focusin",FOCUS_OUT:"focusout",BLUR:"blur",INPUT:"input",DRAG_START:"dragstart",DRAG_ENTER:"dragenter",DRAG_LEAVE:"dragleave",DRAG_OVER:"dragover",DROP:"drop",DRAG_END:"dragend"};function isEventLike(o){const e=o;return!!(e&&typeof e.preventDefault=="function"&&typeof e.stopPropagation=="function")}const EventHelper={stop:(o,e)=>(o.preventDefault(),e&&o.stopPropagation(),o)};function saveParentsScrollTop(o){const e=[];for(let t=0;o&&o.nodeType===o.ELEMENT_NODE;t++)e[t]=o.scrollTop,o=o.parentNode;return e}function restoreParentsScrollTop(o,e){for(let t=0;o&&o.nodeType===o.ELEMENT_NODE;t++)o.scrollTop!==e[t]&&(o.scrollTop=e[t]),o=o.parentNode}class FocusTracker extends Disposable{static hasFocusWithin(e){if(isHTMLElement(e)){const t=getShadowRoot(e),i=t?t.activeElement:e.ownerDocument.activeElement;return isAncestor$1(i,e)}else return isAncestor$1(window.document.activeElement,window.document)}constructor(e){super(),this._onDidFocus=this._register(new Emitter$1),this.onDidFocus=this._onDidFocus.event,this._onDidBlur=this._register(new Emitter$1),this.onDidBlur=this._onDidBlur.event;let t=FocusTracker.hasFocusWithin(e),i=!1;const n=()=>{i=!1,t||(t=!0,this._onDidFocus.fire())},r=()=>{t&&(i=!0,window.setTimeout(()=>{i&&(i=!1,t=!1,this._onDidBlur.fire())},0))};this._refreshStateHandler=()=>{FocusTracker.hasFocusWithin(e)!==t&&(t?r():n())},this._register(addDisposableListener(e,EventType$1.FOCUS,n,!0)),this._register(addDisposableListener(e,EventType$1.BLUR,r,!0)),e instanceof HTMLElement&&(this._register(addDisposableListener(e,EventType$1.FOCUS_IN,()=>this._refreshStateHandler())),this._register(addDisposableListener(e,EventType$1.FOCUS_OUT,()=>this._refreshStateHandler())))}}function trackFocus(o){return new FocusTracker(o)}function append$1(o,...e){if(o.append(...e),e.length===1&&typeof e[0]!="string")return e[0]}function prepend$1(o,e){return o.insertBefore(e,o.firstChild),e}function reset(o,...e){o.innerText="",append$1(o,...e)}const SELECTOR_REGEX=/([\w\-]+)?(#([\w\-]+))?((\.([\w\-]+))*)/;var Namespace;(function(o){o.HTML="http://www.w3.org/1999/xhtml",o.SVG="http://www.w3.org/2000/svg"})(Namespace||(Namespace={}));function _$(o,e,t,...i){const n=SELECTOR_REGEX.exec(e);if(!n)throw new Error("Bad use of emmet");const r=n[1]||"div";let s;return o!==Namespace.HTML?s=document.createElementNS(o,r):s=document.createElement(r),n[3]&&(s.id=n[3]),n[4]&&(s.className=n[4].replace(/\./g," ").trim()),t&&Object.entries(t).forEach(([a,l])=>{typeof l>"u"||(/^on\w+$/.test(a)?s[a]=l:a==="selected"?l&&s.setAttribute(a,"true"):s.setAttribute(a,l))}),s.append(...i),s}function $$d(o,e,...t){return _$(Namespace.HTML,o,e,...t)}$$d.SVG=function(o,e,...t){return _$(Namespace.SVG,o,e,...t)};function setVisibility(o,...e){o?show(...e):hide(...e)}function show(...o){for(const e of o)e.style.display="",e.removeAttribute("aria-hidden")}function hide(...o){for(const e of o)e.style.display="none",e.setAttribute("aria-hidden","true")}function computeScreenAwareSize(o){const e=window.devicePixelRatio*o;return Math.max(1,Math.floor(e))/window.devicePixelRatio}function windowOpenNoOpener(o){window.open(o,"_blank","noopener")}function animate(o){const e=()=>{o(),t=scheduleAtNextAnimationFrame(e)};let t=scheduleAtNextAnimationFrame(e);return toDisposable(()=>t.dispose())}RemoteAuthorities.setPreferredWebSchema(/^https:/.test(window.location.href)?"https":"http");function asCSSUrl(o){return o?`url('${FileAccess.uriToBrowserUri(o).toString(!0).replace(/'/g,"%27")}')`:"url('')"}function asCSSPropertyValue(o){return`'${o.replace(/'/g,"%27")}'`}function asCssValueWithDefault(o,e){if(o!==void 0){const t=o.match(/^\s*var\((.+)\)$/);if(t){const i=t[1].split(",",2);return i.length===2&&(e=asCssValueWithDefault(i[1].trim(),e)),`var(${i[0]}, ${e})`}return o}return e}function hookDomPurifyHrefAndSrcSanitizer(o,e=!1){const t=document.createElement("a");return addHook("afterSanitizeAttributes",i=>{for(const n of["href","src"])if(i.hasAttribute(n)){const r=i.getAttribute(n);if(n==="href"&&r.startsWith("#"))continue;if(t.href=r,!o.includes(t.protocol.replace(/:$/,""))){if(e&&n==="src"&&t.href.startsWith("data:"))continue;i.removeAttribute(n)}}}),toDisposable(()=>{removeHook("afterSanitizeAttributes")})}const basicMarkupHtmlTags=Object.freeze(["a","abbr","b","bdo","blockquote","br","caption","cite","code","col","colgroup","dd","del","details","dfn","div","dl","dt","em","figcaption","figure","h1","h2","h3","h4","h5","h6","hr","i","img","ins","kbd","label","li","mark","ol","p","pre","q","rp","rt","ruby","samp","small","small","source","span","strike","strong","sub","summary","sup","table","tbody","td","tfoot","th","thead","time","tr","tt","u","ul","var","video","wbr"]);class ModifierKeyEmitter extends Emitter$1{constructor(){super(),this._subscriptions=new DisposableStore,this._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1},this._subscriptions.add(addDisposableListener(window,"keydown",e=>{if(e.defaultPrevented)return;const t=new StandardKeyboardEvent(e);if(!(t.keyCode===6&&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(t.keyCode!==6)this._keyStatus.lastKeyPressed=void 0;else return;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(addDisposableListener(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(addDisposableListener(document.body,"mousedown",()=>{this._keyStatus.lastKeyPressed=void 0},!0)),this._subscriptions.add(addDisposableListener(document.body,"mouseup",()=>{this._keyStatus.lastKeyPressed=void 0},!0)),this._subscriptions.add(addDisposableListener(document.body,"mousemove",e=>{e.buttons&&(this._keyStatus.lastKeyPressed=void 0)},!0)),this._subscriptions.add(addDisposableListener(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 ModifierKeyEmitter.instance||(ModifierKeyEmitter.instance=new ModifierKeyEmitter),ModifierKeyEmitter.instance}dispose(){super.dispose(),this._subscriptions.dispose()}}class DragAndDropObserver extends Disposable{constructor(e,t){super(),this.element=e,this.callbacks=t,this.counter=0,this.dragStartTime=0,this.registerListeners()}registerListeners(){this._register(addDisposableListener(this.element,EventType$1.DRAG_ENTER,e=>{this.counter++,this.dragStartTime=e.timeStamp,this.callbacks.onDragEnter(e)})),this._register(addDisposableListener(this.element,EventType$1.DRAG_OVER,e=>{var t,i;e.preventDefault(),(i=(t=this.callbacks).onDragOver)===null||i===void 0||i.call(t,e,e.timeStamp-this.dragStartTime)})),this._register(addDisposableListener(this.element,EventType$1.DRAG_LEAVE,e=>{this.counter--,this.counter===0&&(this.dragStartTime=0,this.callbacks.onDragLeave(e))})),this._register(addDisposableListener(this.element,EventType$1.DRAG_END,e=>{this.counter=0,this.dragStartTime=0,this.callbacks.onDragEnd(e)})),this._register(addDisposableListener(this.element,EventType$1.DROP,e=>{this.counter=0,this.dragStartTime=0,this.callbacks.onDrop(e)}))}}const H_REGEX=/(?<tag>[\w\-]+)?(?:#(?<id>[\w\-]+))?(?<class>(?:\.(?:[\w\-]+))*)(?:@(?<name>(?:[\w\_])+))?/;function h(o,...e){let t,i;Array.isArray(e[0])?(t={},i=e[0]):(t=e[0]||{},i=e[1]);const n=H_REGEX.exec(o);if(!n||!n.groups)throw new Error("Bad use of h");const r=n.groups.tag||"div",s=document.createElement(r);n.groups.id&&(s.id=n.groups.id);const a=[];if(n.groups.class)for(const d of n.groups.class.split("."))d!==""&&a.push(d);if(t.className!==void 0)for(const d of t.className.split("."))d!==""&&a.push(d);a.length>0&&(s.className=a.join(" "));const l={};if(n.groups.name&&(l[n.groups.name]=s),i)for(const d of i)d instanceof HTMLElement?s.appendChild(d):typeof d=="string"?s.append(d):"root"in d&&(Object.assign(l,d),s.appendChild(d.root));for(const[d,c]of Object.entries(t))if(d!=="className")if(d==="style")for(const[u,g]of Object.entries(c))s.style.setProperty(camelCaseToHyphenCase(u),typeof g=="number"?g+"px":""+g);else d==="tabIndex"?s.tabIndex=c:s.setAttribute(camelCaseToHyphenCase(d),c.toString());return l.root=s,l}function camelCaseToHyphenCase(o){return o.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}class Command{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 i=t.kbExpr;this.precondition&&(i?i=ContextKeyExpr.and(i,this.precondition):i=this.precondition);const n={id:this.id,weight:t.weight,args:t.args,when:i,primary:t.primary,secondary:t.secondary,win:t.win,linux:t.linux,mac:t.mac};KeybindingsRegistry.registerKeybindingRule(n)}}CommandsRegistry.registerCommand({id:this.id,handler:(e,t)=>this.runCommand(e,t),description:this._description})}_registerMenuItem(e){MenuRegistry.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 MultiCommand extends Command{constructor(){super(...arguments),this._implementations=[]}addImplementation(e,t,i,n){return this._implementations.push({priority:e,name:t,implementation:i,when:n}),this._implementations.sort((r,s)=>s.priority-r.priority),{dispose:()=>{for(let r=0;r<this._implementations.length;r++)if(this._implementations[r].implementation===i){this._implementations.splice(r,1);return}}}}runCommand(e,t){const i=e.get(ILogService),n=e.get(IContextKeyService);i.trace(`Executing Command '${this.id}' which has ${this._implementations.length} bound.`);for(const r of this._implementations){if(r.when){const a=n.getContext(getActiveElement());if(!r.when.evaluate(a))continue}const s=r.implementation(e,t);if(s)return i.trace(`Command '${this.id}' was handled by '${r.name}'.`),typeof s=="boolean"?void 0:s}i.trace(`The Command '${this.id}' was not handled by any implementation.`)}}class ProxyCommand extends Command{constructor(e,t){super(t),this.command=e}runCommand(e,t){return this.command.runCommand(e,t)}}class EditorCommand extends Command{static bindToContribution(e){return class extends EditorCommand{constructor(i){super(i),this._callback=i.handler}runEditorCommand(i,n,r){const s=e(n);s&&this._callback(s,r)}}}static runEditorCommand(e,t,i,n){const r=e.get(ICodeEditorService),s=r.getFocusedCodeEditor()||r.getActiveCodeEditor();if(s)return s.invokeWithinContext(a=>{if(a.get(IContextKeyService).contextMatchesRules(i??void 0))return n(a,s,t)})}runCommand(e,t){return EditorCommand.runEditorCommand(e,t,this.precondition,(i,n,r)=>this.runEditorCommand(i,n,r))}}class EditorAction extends EditorCommand{static convertOptions(e){let t;Array.isArray(e.menuOpts)?t=e.menuOpts:e.menuOpts?t=[e.menuOpts]:t=[];function i(n){return n.menuId||(n.menuId=MenuId.EditorContext),n.title||(n.title=e.label),n.when=ContextKeyExpr.and(e.precondition,n.when),n}return Array.isArray(e.contextMenuOpts)?t.push(...e.contextMenuOpts.map(i)):e.contextMenuOpts&&t.push(i(e.contextMenuOpts)),e.menuOpts=t,e}constructor(e){super(EditorAction.convertOptions(e)),this.label=e.label,this.alias=e.alias}runEditorCommand(e,t,i){return this.reportTelemetry(e,t),this.run(e,t,i||{})}reportTelemetry(e,t){e.get(ITelemetryService).publicLog2("editorActionInvoked",{name:this.label,id:this.id})}}class MultiEditorAction extends EditorAction{constructor(){super(...arguments),this._implementations=[]}addImplementation(e,t){return this._implementations.push([e,t]),this._implementations.sort((i,n)=>n[0]-i[0]),{dispose:()=>{for(let i=0;i<this._implementations.length;i++)if(this._implementations[i][1]===t){this._implementations.splice(i,1);return}}}}run(e,t,i){for(const n of this._implementations){const r=n[1](e,t,i);if(r)return typeof r=="boolean"?void 0:r}}}class EditorAction2 extends Action2{run(e,...t){const i=e.get(ICodeEditorService),n=i.getFocusedCodeEditor()||i.getActiveCodeEditor();if(n)return n.invokeWithinContext(r=>{var s,a;const l=r.get(IContextKeyService),d=r.get(ILogService);if(!l.contextMatchesRules((s=this.desc.precondition)!==null&&s!==void 0?s:void 0)){d.debug("[EditorAction2] NOT running command because its precondition is FALSE",this.desc.id,(a=this.desc.precondition)===null||a===void 0?void 0:a.serialize());return}return this.runEditorCommand(r,n,...t)})}}function registerModelAndPositionCommand(o,e){CommandsRegistry.registerCommand(o,function(t,...i){const n=t.get(IInstantiationService),[r,s]=i;assertType(URI.isUri(r)),assertType(Position$1.isIPosition(s));const a=t.get(IModelService).getModel(r);if(a){const l=Position$1.lift(s);return n.invokeFunction(e,a,l,...i.slice(2))}return t.get(ITextModelService).createModelReference(r).then(l=>new Promise((d,c)=>{try{const u=n.invokeFunction(e,l.object.textEditorModel,Position$1.lift(s),i.slice(2));d(u)}catch(u){c(u)}}).finally(()=>{l.dispose()}))})}function registerEditorCommand(o){return EditorContributionRegistry.INSTANCE.registerEditorCommand(o),o}function registerEditorAction(o){const e=new o;return EditorContributionRegistry.INSTANCE.registerEditorAction(e),e}function registerMultiEditorAction(o){return EditorContributionRegistry.INSTANCE.registerEditorAction(o),o}function registerInstantiatedEditorAction(o){EditorContributionRegistry.INSTANCE.registerEditorAction(o)}function registerEditorContribution(o,e,t){EditorContributionRegistry.INSTANCE.registerEditorContribution(o,e,t)}var EditorExtensionsRegistry;(function(o){function e(s){return EditorContributionRegistry.INSTANCE.getEditorCommand(s)}o.getEditorCommand=e;function t(){return EditorContributionRegistry.INSTANCE.getEditorActions()}o.getEditorActions=t;function i(){return EditorContributionRegistry.INSTANCE.getEditorContributions()}o.getEditorContributions=i;function n(s){return EditorContributionRegistry.INSTANCE.getEditorContributions().filter(a=>s.indexOf(a.id)>=0)}o.getSomeEditorContributions=n;function r(){return EditorContributionRegistry.INSTANCE.getDiffEditorContributions()}o.getDiffEditorContributions=r})(EditorExtensionsRegistry||(EditorExtensionsRegistry={}));const Extensions$8={EditorCommonContributions:"editor.contributions"};class EditorContributionRegistry{constructor(){this.editorContributions=[],this.diffEditorContributions=[],this.editorActions=[],this.editorCommands=Object.create(null)}registerEditorContribution(e,t,i){this.editorContributions.push({id:e,ctor:t,instantiation:i})}getEditorContributions(){return this.editorContributions.slice(0)}getDiffEditorContributions(){return this.diffEditorContributions.slice(0)}registerEditorAction(e){e.register(),this.editorActions.push(e)}getEditorActions(){return this.editorActions}registerEditorCommand(e){e.register(),this.editorCommands[e.id]=e}getEditorCommand(e){return this.editorCommands[e]||null}}EditorContributionRegistry.INSTANCE=new EditorContributionRegistry;Registry.add(Extensions$8.EditorCommonContributions,EditorContributionRegistry.INSTANCE);function registerCommand$3(o){return o.register(),o}const UndoCommand=registerCommand$3(new MultiCommand({id:"undo",precondition:void 0,kbOpts:{weight:0,primary:2104},menuOpts:[{menuId:MenuId.MenubarEditMenu,group:"1_do",title:localize({},"&&Undo"),order:1},{menuId:MenuId.CommandPalette,group:"",title:localize("undo","Undo"),order:1}]}));registerCommand$3(new ProxyCommand(UndoCommand,{id:"default:undo",precondition:void 0}));const RedoCommand=registerCommand$3(new MultiCommand({id:"redo",precondition:void 0,kbOpts:{weight:0,primary:2103,secondary:[3128],mac:{primary:3128}},menuOpts:[{menuId:MenuId.MenubarEditMenu,group:"1_do",title:localize({},"&&Redo"),order:2},{menuId:MenuId.CommandPalette,group:"",title:localize("redo","Redo"),order:1}]}));registerCommand$3(new ProxyCommand(RedoCommand,{id:"default:redo",precondition:void 0}));const SelectAllCommand=registerCommand$3(new MultiCommand({id:"editor.action.selectAll",precondition:void 0,kbOpts:{weight:0,kbExpr:null,primary:2079},menuOpts:[{menuId:MenuId.MenubarSelectionMenu,group:"1_basic",title:localize({},"&&Select All"),order:1},{menuId:MenuId.CommandPalette,group:"",title:localize("selectAll","Select All"),order:1}]})),MicrotaskDelay=Symbol("MicrotaskDelay");var __awaiter$1z=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},__asyncValues$2=function(o){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=o[Symbol.asyncIterator],t;return e?e.call(o):(o=typeof __values=="function"?__values(o):o[Symbol.iterator](),t={},i("next"),i("throw"),i("return"),t[Symbol.asyncIterator]=function(){return this},t);function i(r){t[r]=o[r]&&function(s){return new Promise(function(a,l){s=o[r](s),n(a,l,s.done,s.value)})}}function n(r,s,a,l){Promise.resolve(l).then(function(d){r({value:d,done:a})},s)}};function isThenable$1(o){return!!o&&typeof o.then=="function"}function createCancelablePromise(o){const e=new CancellationTokenSource$1,t=o(e.token),i=new Promise((n,r)=>{const s=e.token.onCancellationRequested(()=>{s.dispose(),e.dispose(),r(new CancellationError)});Promise.resolve(t).then(a=>{s.dispose(),e.dispose(),n(a)},a=>{s.dispose(),e.dispose(),r(a)})});return new class{cancel(){e.cancel()}then(n,r){return i.then(n,r)}catch(n){return this.then(void 0,n)}finally(n){return i.finally(n)}}}function raceCancellation(o,e,t){return new Promise((i,n)=>{const r=e.onCancellationRequested(()=>{r.dispose(),i(t)});o.then(i,n).finally(()=>r.dispose())})}class Throttler{constructor(){this.isDisposed=!1,this.activePromise=null,this.queuedPromise=null,this.queuedPromiseFactory=null}queue(e){if(this.isDisposed)return Promise.reject(new Error("Throttler is disposed"));if(this.activePromise){if(this.queuedPromiseFactory=e,!this.queuedPromise){const t=()=>{if(this.queuedPromise=null,this.isDisposed)return;const i=this.queue(this.queuedPromiseFactory);return this.queuedPromiseFactory=null,i};this.queuedPromise=new Promise(i=>{this.activePromise.then(t,t).then(i)})}return new Promise((t,i)=>{this.queuedPromise.then(t,i)})}return this.activePromise=e(),new Promise((t,i)=>{this.activePromise.then(n=>{this.activePromise=null,t(n)},n=>{this.activePromise=null,i(n)})})}dispose(){this.isDisposed=!0}}const timeoutDeferred=(o,e)=>{let t=!0;const i=setTimeout(()=>{t=!1,e()},o);return{isTriggered:()=>t,dispose:()=>{clearTimeout(i),t=!1}}},microtaskDeferred=o=>{let e=!0;return queueMicrotask(()=>{e&&(e=!1,o())}),{isTriggered:()=>e,dispose:()=>{e=!1}}};class Delayer{constructor(e){this.defaultDelay=e,this.deferred=null,this.completionPromise=null,this.doResolve=null,this.doReject=null,this.task=null}trigger(e,t=this.defaultDelay){this.task=e,this.cancelTimeout(),this.completionPromise||(this.completionPromise=new Promise((n,r)=>{this.doResolve=n,this.doReject=r}).then(()=>{if(this.completionPromise=null,this.doResolve=null,this.task){const n=this.task;return this.task=null,n()}}));const i=()=>{var n;this.deferred=null,(n=this.doResolve)===null||n===void 0||n.call(this,null)};return this.deferred=t===MicrotaskDelay?microtaskDeferred(i):timeoutDeferred(t,i),this.completionPromise}isTriggered(){var e;return!!(!((e=this.deferred)===null||e===void 0)&&e.isTriggered())}cancel(){var e;this.cancelTimeout(),this.completionPromise&&((e=this.doReject)===null||e===void 0||e.call(this,new CancellationError),this.completionPromise=null)}cancelTimeout(){var e;(e=this.deferred)===null||e===void 0||e.dispose(),this.deferred=null}dispose(){this.cancel()}}class ThrottledDelayer{constructor(e){this.delayer=new Delayer(e),this.throttler=new Throttler}trigger(e,t){return this.delayer.trigger(()=>this.throttler.queue(e),t)}cancel(){this.delayer.cancel()}dispose(){this.delayer.dispose(),this.throttler.dispose()}}function timeout(o,e){return e?new Promise((t,i)=>{const n=setTimeout(()=>{r.dispose(),t()},o),r=e.onCancellationRequested(()=>{clearTimeout(n),r.dispose(),i(new CancellationError)})}):createCancelablePromise(t=>timeout(o,t))}function disposableTimeout(o,e=0,t){const i=setTimeout(()=>{o(),t&&n.dispose()},e),n=toDisposable(()=>{clearTimeout(i),t==null||t.deleteAndLeak(n)});return t==null||t.add(n),n}function first(o,e=i=>!!i,t=null){let i=0;const n=o.length,r=()=>{if(i>=n)return Promise.resolve(t);const s=o[i++];return Promise.resolve(s()).then(l=>e(l)?Promise.resolve(l):r())};return r()}class TimeoutTimer{constructor(e,t){this._token=-1,typeof e=="function"&&typeof t=="number"&&this.setIfNotSet(e,t)}dispose(){this.cancel()}cancel(){this._token!==-1&&(clearTimeout(this._token),this._token=-1)}cancelAndSet(e,t){this.cancel(),this._token=setTimeout(()=>{this._token=-1,e()},t)}setIfNotSet(e,t){this._token===-1&&(this._token=setTimeout(()=>{this._token=-1,e()},t))}}class IntervalTimer{constructor(){this._token=-1}dispose(){this.cancel()}cancel(){this._token!==-1&&(clearInterval(this._token),this._token=-1)}cancelAndSet(e,t){this.cancel(),this._token=setInterval(()=>{e()},t)}}class RunOnceScheduler{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 this.timeoutToken!==-1}onTimeout(){this.timeoutToken=-1,this.runner&&this.doRun()}doRun(){var e;(e=this.runner)===null||e===void 0||e.call(this)}}let runWhenIdle;(function(){typeof requestIdleCallback!="function"||typeof cancelIdleCallback!="function"?runWhenIdle=o=>{setTimeout0(()=>{if(e)return;const t=Date.now()+15;o(Object.freeze({didTimeout:!0,timeRemaining(){return Math.max(0,t-Date.now())}}))});let e=!1;return{dispose(){e||(e=!0)}}}:runWhenIdle=(o,e)=>{const t=requestIdleCallback(o,typeof e=="number"?{timeout:e}:void 0);let i=!1;return{dispose(){i||(i=!0,cancelIdleCallback(t))}}}})();class IdleValue{constructor(e){this._didRun=!1,this._executor=()=>{try{this._value=e()}catch(t){this._error=t}finally{this._didRun=!0}},this._handle=runWhenIdle(()=>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}}class DeferredPromise{get isRejected(){var e;return((e=this.outcome)===null||e===void 0?void 0:e.outcome)===1}get isSettled(){return!!this.outcome}constructor(){this.p=new Promise((e,t)=>{this.completeCallback=e,this.errorCallback=t})}complete(e){return new Promise(t=>{this.completeCallback(e),this.outcome={outcome:0,value:e},t()})}error(e){return new Promise(t=>{this.errorCallback(e),this.outcome={outcome:1,value:e},t()})}cancel(){return this.error(new CancellationError)}}var Promises;(function(o){function e(i){return __awaiter$1z(this,void 0,void 0,function*(){let n;const r=yield Promise.all(i.map(s=>s.then(a=>a,a=>{n||(n=a)})));if(typeof n<"u")throw n;return r})}o.settled=e;function t(i){return new Promise((n,r)=>__awaiter$1z(this,void 0,void 0,function*(){try{yield i(n,r)}catch(s){r(s)}}))}o.withAsyncBody=t})(Promises||(Promises={}));class AsyncIterableObject{static fromArray(e){return new AsyncIterableObject(t=>{t.emitMany(e)})}static fromPromise(e){return new AsyncIterableObject(t=>__awaiter$1z(this,void 0,void 0,function*(){t.emitMany(yield e)}))}static fromPromises(e){return new AsyncIterableObject(t=>__awaiter$1z(this,void 0,void 0,function*(){yield Promise.all(e.map(i=>__awaiter$1z(this,void 0,void 0,function*(){return t.emitOne(yield i)})))}))}static merge(e){return new AsyncIterableObject(t=>__awaiter$1z(this,void 0,void 0,function*(){yield Promise.all(e.map(i=>{var n,r,s;return __awaiter$1z(this,void 0,void 0,function*(){var a,l,d,c;try{for(n=!0,r=__asyncValues$2(i);s=yield r.next(),a=s.done,!a;n=!0){c=s.value,n=!1;const u=c;t.emitOne(u)}}catch(u){l={error:u}}finally{try{!n&&!a&&(d=r.return)&&(yield d.call(r))}finally{if(l)throw l.error}}})}))}))}constructor(e){this._state=0,this._results=[],this._error=null,this._onStateChanged=new Emitter$1,queueMicrotask(()=>__awaiter$1z(this,void 0,void 0,function*(){const t={emitOne:i=>this.emitOne(i),emitMany:i=>this.emitMany(i),reject:i=>this.reject(i)};try{yield Promise.resolve(e(t)),this.resolve()}catch(i){this.reject(i)}finally{t.emitOne=void 0,t.emitMany=void 0,t.reject=void 0}}))}[Symbol.asyncIterator](){let e=0;return{next:()=>__awaiter$1z(this,void 0,void 0,function*(){do{if(this._state===2)throw this._error;if(e<this._results.length)return{done:!1,value:this._results[e++]};if(this._state===1)return{done:!0,value:void 0};yield Event.toPromise(this._onStateChanged.event)}while(!0)})}}static map(e,t){return new AsyncIterableObject(i=>__awaiter$1z(this,void 0,void 0,function*(){var n,r,s,a;try{for(var l=!0,d=__asyncValues$2(e),c;c=yield d.next(),n=c.done,!n;l=!0){a=c.value,l=!1;const u=a;i.emitOne(t(u))}}catch(u){r={error:u}}finally{try{!l&&!n&&(s=d.return)&&(yield s.call(d))}finally{if(r)throw r.error}}}))}map(e){return AsyncIterableObject.map(this,e)}static filter(e,t){return new AsyncIterableObject(i=>__awaiter$1z(this,void 0,void 0,function*(){var n,r,s,a;try{for(var l=!0,d=__asyncValues$2(e),c;c=yield d.next(),n=c.done,!n;l=!0){a=c.value,l=!1;const u=a;t(u)&&i.emitOne(u)}}catch(u){r={error:u}}finally{try{!l&&!n&&(s=d.return)&&(yield s.call(d))}finally{if(r)throw r.error}}}))}filter(e){return AsyncIterableObject.filter(this,e)}static coalesce(e){return AsyncIterableObject.filter(e,t=>!!t)}coalesce(){return AsyncIterableObject.coalesce(this)}static toPromise(e){var t,i,n,r,s,a,l;return __awaiter$1z(this,void 0,void 0,function*(){const d=[];try{for(t=!0,i=__asyncValues$2(e);n=yield i.next(),r=n.done,!r;t=!0){l=n.value,t=!1;const c=l;d.push(c)}}catch(c){s={error:c}}finally{try{!t&&!r&&(a=i.return)&&(yield a.call(i))}finally{if(s)throw s.error}}return d})}toPromise(){return AsyncIterableObject.toPromise(this)}emitOne(e){this._state===0&&(this._results.push(e),this._onStateChanged.fire())}emitMany(e){this._state===0&&(this._results=this._results.concat(e),this._onStateChanged.fire())}resolve(){this._state===0&&(this._state=1,this._onStateChanged.fire())}reject(e){this._state===0&&(this._state=2,this._error=e,this._onStateChanged.fire())}}AsyncIterableObject.EMPTY=AsyncIterableObject.fromArray([]);class CancelableAsyncIterableObject extends AsyncIterableObject{constructor(e,t){super(t),this._source=e}cancel(){this._source.cancel()}}function createCancelableAsyncIterable(o){const e=new CancellationTokenSource$1,t=o(e.token);return new CancelableAsyncIterableObject(e,i=>__awaiter$1z(this,void 0,void 0,function*(){var n,r,s,a;const l=e.token.onCancellationRequested(()=>{l.dispose(),e.dispose(),i.reject(new CancellationError)});try{try{for(var d=!0,c=__asyncValues$2(t),u;u=yield c.next(),n=u.done,!n;d=!0){a=u.value,d=!1;const g=a;if(e.token.isCancellationRequested)return;i.emitOne(g)}}catch(g){r={error:g}}finally{try{!d&&!n&&(s=c.return)&&(yield s.call(c))}finally{if(r)throw r.error}}l.dispose(),e.dispose()}catch(g){l.dispose(),e.dispose(),i.reject(g)}}))}const INITIALIZE="$initialize";let webWorkerWarningLogged=!1;function logOnceWebWorkerWarning(o){isWeb&&(webWorkerWarningLogged||(webWorkerWarningLogged=!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(o.message))}class RequestMessage{constructor(e,t,i,n){this.vsWorker=e,this.req=t,this.method=i,this.args=n,this.type=0}}class ReplyMessage{constructor(e,t,i,n){this.vsWorker=e,this.seq=t,this.res=i,this.err=n,this.type=1}}class SubscribeEventMessage{constructor(e,t,i,n){this.vsWorker=e,this.req=t,this.eventName=i,this.arg=n,this.type=2}}class EventMessage{constructor(e,t,i){this.vsWorker=e,this.req=t,this.event=i,this.type=3}}class UnsubscribeEventMessage{constructor(e,t){this.vsWorker=e,this.req=t,this.type=4}}class SimpleWorkerProtocol{constructor(e){this._workerId=-1,this._handler=e,this._lastSentReq=0,this._pendingReplies=Object.create(null),this._pendingEmitters=new Map,this._pendingEvents=new Map}setWorkerId(e){this._workerId=e}sendMessage(e,t){const i=String(++this._lastSentReq);return new Promise((n,r)=>{this._pendingReplies[i]={resolve:n,reject:r},this._send(new RequestMessage(this._workerId,i,e,t))})}listen(e,t){let i=null;const n=new Emitter$1({onWillAddFirstListener:()=>{i=String(++this._lastSentReq),this._pendingEmitters.set(i,n),this._send(new SubscribeEventMessage(this._workerId,i,e,t))},onDidRemoveLastListener:()=>{this._pendingEmitters.delete(i),this._send(new UnsubscribeEventMessage(this._workerId,i)),i=null}});return n.event}handleMessage(e){!e||!e.vsWorker||this._workerId!==-1&&e.vsWorker!==this._workerId||this._handleMessage(e)}_handleMessage(e){switch(e.type){case 1:return this._handleReplyMessage(e);case 0:return this._handleRequestMessage(e);case 2:return this._handleSubscribeEventMessage(e);case 3:return this._handleEventMessage(e);case 4:return this._handleUnsubscribeEventMessage(e)}}_handleReplyMessage(e){if(!this._pendingReplies[e.seq]){console.warn("Got reply to unknown seq");return}const t=this._pendingReplies[e.seq];if(delete this._pendingReplies[e.seq],e.err){let i=e.err;e.err.$isError&&(i=new Error,i.name=e.err.name,i.message=e.err.message,i.stack=e.err.stack),t.reject(i);return}t.resolve(e.res)}_handleRequestMessage(e){const t=e.req;this._handler.handleMessage(e.method,e.args).then(n=>{this._send(new ReplyMessage(this._workerId,t,n,void 0))},n=>{n.detail instanceof Error&&(n.detail=transformErrorForSerialization(n.detail)),this._send(new ReplyMessage(this._workerId,t,void 0,transformErrorForSerialization(n)))})}_handleSubscribeEventMessage(e){const t=e.req,i=this._handler.handleEvent(e.eventName,e.arg)(n=>{this._send(new EventMessage(this._workerId,t,n))});this._pendingEvents.set(t,i)}_handleEventMessage(e){if(!this._pendingEmitters.has(e.req)){console.warn("Got event for unknown req");return}this._pendingEmitters.get(e.req).fire(e.event)}_handleUnsubscribeEventMessage(e){if(!this._pendingEvents.has(e.req)){console.warn("Got unsubscribe for unknown req");return}this._pendingEvents.get(e.req).dispose(),this._pendingEvents.delete(e.req)}_send(e){const t=[];if(e.type===0)for(let i=0;i<e.args.length;i++)e.args[i]instanceof ArrayBuffer&&t.push(e.args[i]);else e.type===1&&e.res instanceof ArrayBuffer&&t.push(e.res);this._handler.sendMessage(e,t)}}class SimpleWorkerClient extends Disposable{constructor(e,t,i){super();let n=null;this._worker=this._register(e.create("vs/base/common/worker/simpleWorker",c=>{this._protocol.handleMessage(c)},c=>{n==null||n(c)})),this._protocol=new SimpleWorkerProtocol({sendMessage:(c,u)=>{this._worker.postMessage(c,u)},handleMessage:(c,u)=>{if(typeof i[c]!="function")return Promise.reject(new Error("Missing method "+c+" on main thread host."));try{return Promise.resolve(i[c].apply(i,u))}catch(g){return Promise.reject(g)}},handleEvent:(c,u)=>{if(propertyIsDynamicEvent(c)){const g=i[c].call(i,u);if(typeof g!="function")throw new Error(`Missing dynamic event ${c} on main thread host.`);return g}if(propertyIsEvent(c)){const g=i[c];if(typeof g!="function")throw new Error(`Missing event ${c} on main thread host.`);return g}throw new Error(`Malformed event name ${c}`)}}),this._protocol.setWorkerId(this._worker.getId());let r=null;const s=globalThis.require;typeof s<"u"&&typeof s.getConfig=="function"?r=s.getConfig():typeof globalThis.requirejs<"u"&&(r=globalThis.requirejs.s.contexts._.config);const a=getAllMethodNames(i);this._onModuleLoaded=this._protocol.sendMessage(INITIALIZE,[this._worker.getId(),JSON.parse(JSON.stringify(r)),t,a]);const l=(c,u)=>this._request(c,u),d=(c,u)=>this._protocol.listen(c,u);this._lazyProxy=new Promise((c,u)=>{n=u,this._onModuleLoaded.then(g=>{c(createProxyObject(g,l,d))},g=>{u(g),this._onError("Worker failed to load "+t,g)})})}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)}}function propertyIsEvent(o){return o[0]==="o"&&o[1]==="n"&&isUpperAsciiLetter(o.charCodeAt(2))}function propertyIsDynamicEvent(o){return/^onDynamic/.test(o)&&isUpperAsciiLetter(o.charCodeAt(9))}function createProxyObject(o,e,t){const i=s=>function(){const a=Array.prototype.slice.call(arguments,0);return e(s,a)},n=s=>function(a){return t(s,a)},r={};for(const s of o){if(propertyIsDynamicEvent(s)){r[s]=n(s);continue}if(propertyIsEvent(s)){r[s]=t(s,void 0);continue}r[s]=i(s)}return r}function createTrustedTypesPolicy(o,e){var t;const i=globalThis.MonacoEnvironment;if(i!=null&&i.createTrustedTypesPolicy)try{return i.createTrustedTypesPolicy(o,e)}catch(n){onUnexpectedError(n);return}try{return(t=window.trustedTypes)===null||t===void 0?void 0:t.createPolicy(o,e)}catch(n){onUnexpectedError(n);return}}const ttPolicy$4=createTrustedTypesPolicy("defaultWorkerFactory",{createScriptURL:o=>o});function getWorker(o){const e=globalThis.MonacoEnvironment;if(e){if(typeof e.getWorker=="function")return e.getWorker("workerMain.js",o);if(typeof e.getWorkerUrl=="function"){const t=e.getWorkerUrl("workerMain.js",o);return new Worker(ttPolicy$4?ttPolicy$4.createScriptURL(t):t,{name:o})}}throw new Error("You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker")}function isPromiseLike(o){return typeof o.then=="function"}class WebWorker{constructor(e,t,i,n,r){this.id=t,this.label=i;const s=getWorker(i);isPromiseLike(s)?this.worker=s:this.worker=Promise.resolve(s),this.postMessage(e,[]),this.worker.then(a=>{a.onmessage=function(l){n(l.data)},a.onmessageerror=r,typeof a.addEventListener=="function"&&a.addEventListener("error",r)})}getId(){return this.id}postMessage(e,t){var i;(i=this.worker)===null||i===void 0||i.then(n=>{try{n.postMessage(e,t)}catch(r){onUnexpectedError(r),onUnexpectedError(new Error(`FAILED to post message to '${this.label}'-worker`,{cause:r}))}})}dispose(){var e;(e=this.worker)===null||e===void 0||e.then(t=>t.terminate()),this.worker=null}}class DefaultWorkerFactory{constructor(e){this._label=e,this._webWorkerFailedBeforeError=!1}create(e,t,i){const n=++DefaultWorkerFactory.LAST_WORKER_ID;if(this._webWorkerFailedBeforeError)throw this._webWorkerFailedBeforeError;return new WebWorker(e,n,this._label||"anonymous"+n,t,r=>{logOnceWebWorkerWarning(r),this._webWorkerFailedBeforeError=r,i(r)})}}DefaultWorkerFactory.LAST_WORKER_ID=0;var IndentAction;(function(o){o[o.None=0]="None",o[o.Indent=1]="Indent",o[o.IndentOutdent=2]="IndentOutdent",o[o.Outdent=3]="Outdent"})(IndentAction||(IndentAction={}));class StandardAutoClosingPairConditional{constructor(e){if(this._neutralCharacter=null,this._neutralCharacterSearched=!1,this.open=e.open,this.close=e.close,this._inString=!0,this._inComment=!0,this._inRegEx=!0,Array.isArray(e.notIn))for(let t=0,i=e.notIn.length;t<i;t++)switch(e.notIn[t]){case"string":this._inString=!1;break;case"comment":this._inComment=!1;break;case"regex":this._inRegEx=!1;break}}isOK(e){switch(e){case 0:return!0;case 1:return this._inComment;case 2:return this._inString;case 3:return this._inRegEx}}shouldAutoClose(e,t){if(e.getTokenCount()===0)return!0;const i=e.findTokenIndexAtOffset(t-2),n=e.getStandardTokenType(i);return this.isOK(n)}_findNeutralCharacterInRange(e,t){for(let i=e;i<=t;i++){const n=String.fromCharCode(i);if(!this.open.includes(n)&&!this.close.includes(n))return n}return null}findNeutralCharacter(){return this._neutralCharacterSearched||(this._neutralCharacterSearched=!0,this._neutralCharacter||(this._neutralCharacter=this._findNeutralCharacterInRange(48,57)),this._neutralCharacter||(this._neutralCharacter=this._findNeutralCharacterInRange(97,122)),this._neutralCharacter||(this._neutralCharacter=this._findNeutralCharacterInRange(65,90))),this._neutralCharacter}}class AutoClosingPairs{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)appendEntry(this.autoClosingPairsOpenByStart,t.open.charAt(0),t),appendEntry(this.autoClosingPairsOpenByEnd,t.open.charAt(t.open.length-1),t),appendEntry(this.autoClosingPairsCloseByStart,t.close.charAt(0),t),appendEntry(this.autoClosingPairsCloseByEnd,t.close.charAt(t.close.length-1),t),t.close.length===1&&t.open.length===1&&appendEntry(this.autoClosingPairsCloseSingleChar,t.close,t)}}function appendEntry(o,e,t){o.has(e)?o.get(e).push(t):o.set(e,[t])}function createScopedLineTokens(o,e){const t=o.getCount(),i=o.findTokenIndexAtOffset(e),n=o.getLanguageId(i);let r=i;for(;r+1<t&&o.getLanguageId(r+1)===n;)r++;let s=i;for(;s>0&&o.getLanguageId(s-1)===n;)s--;return new ScopedLineTokens(o,n,s,r+1,o.getStartOffset(s),o.getEndOffset(r))}class ScopedLineTokens{constructor(e,t,i,n,r,s){this._scopedLineTokensBrand=void 0,this._actual=e,this.languageId=t,this._firstTokenIndex=i,this._lastTokenIndex=n,this.firstCharOffset=r,this._lastCharOffset=s}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 ignoreBracketsInToken(o){return(o&3)!==0}class CharacterPairSupport{constructor(e){if(e.autoClosingPairs?this._autoClosingPairs=e.autoClosingPairs.map(t=>new StandardAutoClosingPairConditional(t)):e.brackets?this._autoClosingPairs=e.brackets.map(t=>new StandardAutoClosingPairConditional({open:t[0],close:t[1]})):this._autoClosingPairs=[],e.__electricCharacterSupport&&e.__electricCharacterSupport.docComment){const t=e.__electricCharacterSupport.docComment;this._autoClosingPairs.push(new StandardAutoClosingPairConditional({open:t.open,close:t.close||""}))}this._autoCloseBeforeForQuotes=typeof e.autoCloseBefore=="string"?e.autoCloseBefore:CharacterPairSupport.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES,this._autoCloseBeforeForBrackets=typeof e.autoCloseBefore=="string"?e.autoCloseBefore:CharacterPairSupport.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS,this._surroundingPairs=e.surroundingPairs||this._autoClosingPairs}getAutoClosingPairs(){return this._autoClosingPairs}getAutoCloseBeforeSet(e){return e?this._autoCloseBeforeForQuotes:this._autoCloseBeforeForBrackets}getSurroundingPairs(){return this._surroundingPairs}}CharacterPairSupport.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES=`;:.,=}])>
- `;CharacterPairSupport.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS=`'"\`;:.,=}])>
- `;const hasBuffer=typeof Buffer<"u";let textDecoder;class VSBuffer{static wrap(e){return hasBuffer&&!Buffer.isBuffer(e)&&(e=Buffer.from(e.buffer,e.byteOffset,e.byteLength)),new VSBuffer(e)}constructor(e){this.buffer=e,this.byteLength=this.buffer.byteLength}toString(){return hasBuffer?this.buffer.toString():(textDecoder||(textDecoder=new TextDecoder),textDecoder.decode(this.buffer))}}function readUInt16LE(o,e){return o[e+0]<<0>>>0|o[e+1]<<8>>>0}function writeUInt16LE(o,e,t){o[t+0]=e&255,e=e>>>8,o[t+1]=e&255}function readUInt32BE(o,e){return o[e]*Math.pow(2,24)+o[e+1]*Math.pow(2,16)+o[e+2]*Math.pow(2,8)+o[e+3]}function writeUInt32BE(o,e,t){o[t+3]=e,e=e>>>8,o[t+2]=e,e=e>>>8,o[t+1]=e,e=e>>>8,o[t]=e}function readUInt8(o,e){return o[e]}function writeUInt8(o,e,t){o[t]=e}let _utf16LE_TextDecoder;function getUTF16LE_TextDecoder(){return _utf16LE_TextDecoder||(_utf16LE_TextDecoder=new TextDecoder("UTF-16LE")),_utf16LE_TextDecoder}let _utf16BE_TextDecoder;function getUTF16BE_TextDecoder(){return _utf16BE_TextDecoder||(_utf16BE_TextDecoder=new TextDecoder("UTF-16BE")),_utf16BE_TextDecoder}let _platformTextDecoder;function getPlatformTextDecoder(){return _platformTextDecoder||(_platformTextDecoder=isLittleEndian()?getUTF16LE_TextDecoder():getUTF16BE_TextDecoder()),_platformTextDecoder}function decodeUTF16LE(o,e,t){const i=new Uint16Array(o.buffer,e,t);return t>0&&(i[0]===65279||i[0]===65534)?compatDecodeUTF16LE(o,e,t):getUTF16LE_TextDecoder().decode(i)}function compatDecodeUTF16LE(o,e,t){const i=[];let n=0;for(let r=0;r<t;r++){const s=readUInt16LE(o,e);e+=2,i[n++]=String.fromCharCode(s)}return i.join("")}class StringBuilder{constructor(e){this._capacity=e|0,this._buffer=new Uint16Array(this._capacity),this._completedStrings=null,this._bufferLength=0}reset(){this._completedStrings=null,this._bufferLength=0}build(){return this._completedStrings!==null?(this._flushBuffer(),this._completedStrings.join("")):this._buildBuffer()}_buildBuffer(){if(this._bufferLength===0)return"";const e=new Uint16Array(this._buffer.buffer,0,this._bufferLength);return getPlatformTextDecoder().decode(e)}_flushBuffer(){const e=this._buildBuffer();this._bufferLength=0,this._completedStrings===null?this._completedStrings=[e]:this._completedStrings[this._completedStrings.length]=e}appendCharCode(e){const t=this._capacity-this._bufferLength;t<=1&&(t===0||isHighSurrogate(e))&&this._flushBuffer(),this._buffer[this._bufferLength++]=e}appendASCIICharCode(e){this._bufferLength===this._capacity&&this._flushBuffer(),this._buffer[this._bufferLength++]=e}appendString(e){const t=e.length;if(this._bufferLength+t>=this._capacity){this._flushBuffer(),this._completedStrings[this._completedStrings.length]=e;return}for(let i=0;i<t;i++)this._buffer[this._bufferLength++]=e.charCodeAt(i)}}class RichEditBracket{constructor(e,t,i,n,r,s){this._richEditBracketBrand=void 0,this.languageId=e,this.index=t,this.open=i,this.close=n,this.forwardRegex=r,this.reversedRegex=s,this._openSet=RichEditBracket._toSet(this.open),this._closeSet=RichEditBracket._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}}function groupFuzzyBrackets(o){const e=o.length;o=o.map(s=>[s[0].toLowerCase(),s[1].toLowerCase()]);const t=[];for(let s=0;s<e;s++)t[s]=s;const i=(s,a)=>{const[l,d]=s,[c,u]=a;return l===c||l===u||d===c||d===u},n=(s,a)=>{const l=Math.min(s,a),d=Math.max(s,a);for(let c=0;c<e;c++)t[c]===d&&(t[c]=l)};for(let s=0;s<e;s++){const a=o[s];for(let l=s+1;l<e;l++){const d=o[l];i(a,d)&&n(t[s],t[l])}}const r=[];for(let s=0;s<e;s++){const a=[],l=[];for(let d=0;d<e;d++)if(t[d]===s){const[c,u]=o[d];a.push(c),l.push(u)}a.length>0&&r.push({open:a,close:l})}return r}class RichEditBrackets{constructor(e,t){this._richEditBracketsBrand=void 0;const i=groupFuzzyBrackets(t);this.brackets=i.map((n,r)=>new RichEditBracket(e,r,n.open,n.close,getRegexForBracketPair(n.open,n.close,i,r),getReversedRegexForBracketPair(n.open,n.close,i,r))),this.forwardRegex=getRegexForBrackets(this.brackets),this.reversedRegex=getReversedRegexForBrackets(this.brackets),this.textIsBracket={},this.textIsOpenBracket={},this.maxBracketLength=0;for(const n of this.brackets){for(const r of n.open)this.textIsBracket[r]=n,this.textIsOpenBracket[r]=!0,this.maxBracketLength=Math.max(this.maxBracketLength,r.length);for(const r of n.close)this.textIsBracket[r]=n,this.textIsOpenBracket[r]=!1,this.maxBracketLength=Math.max(this.maxBracketLength,r.length)}}}function collectSuperstrings(o,e,t,i){for(let n=0,r=e.length;n<r;n++){if(n===t)continue;const s=e[n];for(const a of s.open)a.indexOf(o)>=0&&i.push(a);for(const a of s.close)a.indexOf(o)>=0&&i.push(a)}}function lengthcmp(o,e){return o.length-e.length}function unique(o){if(o.length<=1)return o;const e=[],t=new Set;for(const i of o)t.has(i)||(e.push(i),t.add(i));return e}function getRegexForBracketPair(o,e,t,i){let n=[];n=n.concat(o),n=n.concat(e);for(let r=0,s=n.length;r<s;r++)collectSuperstrings(n[r],t,i,n);return n=unique(n),n.sort(lengthcmp),n.reverse(),createBracketOrRegExp(n)}function getReversedRegexForBracketPair(o,e,t,i){let n=[];n=n.concat(o),n=n.concat(e);for(let r=0,s=n.length;r<s;r++)collectSuperstrings(n[r],t,i,n);return n=unique(n),n.sort(lengthcmp),n.reverse(),createBracketOrRegExp(n.map(toReversedString))}function getRegexForBrackets(o){let e=[];for(const t of o){for(const i of t.open)e.push(i);for(const i of t.close)e.push(i)}return e=unique(e),createBracketOrRegExp(e)}function getReversedRegexForBrackets(o){let e=[];for(const t of o){for(const i of t.open)e.push(i);for(const i of t.close)e.push(i)}return e=unique(e),createBracketOrRegExp(e.map(toReversedString))}function prepareBracketForRegExp$1(o){const e=/^[\w ]+$/.test(o);return o=escapeRegExpCharacters(o),e?`\\b${o}\\b`:o}function createBracketOrRegExp(o){const e=`(${o.map(prepareBracketForRegExp$1).join(")|(")})`;return createRegExp(e,!0)}const toReversedString=function(){function o(i){const n=new Uint16Array(i.length);let r=0;for(let s=i.length-1;s>=0;s--)n[r++]=i.charCodeAt(s);return getPlatformTextDecoder().decode(n)}let e=null,t=null;return function(n){return e!==n&&(e=n,t=o(e)),t}}();class BracketsUtils{static _findPrevBracketInText(e,t,i,n){const r=i.match(e);if(!r)return null;const s=i.length-(r.index||0),a=r[0].length,l=n+s;return new Range$2(t,l-a+1,t,l+1)}static findPrevBracketInRange(e,t,i,n,r){const a=toReversedString(i).substring(i.length-r,i.length-n);return this._findPrevBracketInText(e,t,a,n)}static findNextBracketInText(e,t,i,n){const r=i.match(e);if(!r)return null;const s=r.index||0,a=r[0].length;if(a===0)return null;const l=n+s;return new Range$2(t,l+1,t,l+1+a)}static findNextBracketInRange(e,t,i,n,r){const s=i.substring(n,r);return this.findNextBracketInText(e,t,s,n)}}class BracketElectricCharacterSupport{constructor(e){this._richEditBrackets=e}getElectricCharacters(){const e=[];if(this._richEditBrackets)for(const t of this._richEditBrackets.brackets)for(const i of t.close){const n=i.charAt(i.length-1);e.push(n)}return distinct(e)}onElectricCharacter(e,t,i){if(!this._richEditBrackets||this._richEditBrackets.brackets.length===0)return null;const n=t.findTokenIndexAtOffset(i-1);if(ignoreBracketsInToken(t.getStandardTokenType(n)))return null;const r=this._richEditBrackets.reversedRegex,s=t.getLineContent().substring(0,i-1)+e,a=BracketsUtils.findPrevBracketInRange(r,1,s,0,s.length);if(!a)return null;const l=s.substring(a.startColumn-1,a.endColumn-1).toLowerCase();if(this._richEditBrackets.textIsOpenBracket[l])return null;const c=t.getActualLineContentBefore(a.startColumn-1);return/^\s*$/.test(c)?{matchOpenBracket:l}:null}}function resetGlobalRegex(o){return o.global&&(o.lastIndex=0),!0}class IndentRulesSupport{constructor(e){this._indentationRules=e}shouldIncrease(e){return!!(this._indentationRules&&this._indentationRules.increaseIndentPattern&&resetGlobalRegex(this._indentationRules.increaseIndentPattern)&&this._indentationRules.increaseIndentPattern.test(e))}shouldDecrease(e){return!!(this._indentationRules&&this._indentationRules.decreaseIndentPattern&&resetGlobalRegex(this._indentationRules.decreaseIndentPattern)&&this._indentationRules.decreaseIndentPattern.test(e))}shouldIndentNextLine(e){return!!(this._indentationRules&&this._indentationRules.indentNextLinePattern&&resetGlobalRegex(this._indentationRules.indentNextLinePattern)&&this._indentationRules.indentNextLinePattern.test(e))}shouldIgnore(e){return!!(this._indentationRules&&this._indentationRules.unIndentedLinePattern&&resetGlobalRegex(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}}class OnEnterSupport{constructor(e){e=e||{},e.brackets=e.brackets||[["(",")"],["{","}"],["[","]"]],this._brackets=[],e.brackets.forEach(t=>{const i=OnEnterSupport._createOpenBracketRegExp(t[0]),n=OnEnterSupport._createCloseBracketRegExp(t[1]);i&&n&&this._brackets.push({open:t[0],openRegExp:i,close:t[1],closeRegExp:n})}),this._regExpRules=e.onEnterRules||[]}onEnter(e,t,i,n){if(e>=3)for(let r=0,s=this._regExpRules.length;r<s;r++){const a=this._regExpRules[r];if([{reg:a.beforeText,text:i},{reg:a.afterText,text:n},{reg:a.previousLineText,text:t}].every(d=>d.reg?(d.reg.lastIndex=0,d.reg.test(d.text)):!0))return a.action}if(e>=2&&i.length>0&&n.length>0)for(let r=0,s=this._brackets.length;r<s;r++){const a=this._brackets[r];if(a.openRegExp.test(i)&&a.closeRegExp.test(n))return{indentAction:IndentAction.IndentOutdent}}if(e>=2&&i.length>0){for(let r=0,s=this._brackets.length;r<s;r++)if(this._brackets[r].openRegExp.test(i))return{indentAction:IndentAction.Indent}}return null}static _createOpenBracketRegExp(e){let t=escapeRegExpCharacters(e);return/\B/.test(t.charAt(0))||(t="\\b"+t),t+="\\s*$",OnEnterSupport._safeRegExp(t)}static _createCloseBracketRegExp(e){let t=escapeRegExpCharacters(e);return/\B/.test(t.charAt(t.length-1))||(t=t+"\\b"),t="^\\s*"+t,OnEnterSupport._safeRegExp(t)}static _safeRegExp(e){try{return new RegExp(e)}catch(t){return onUnexpectedError(t),null}}}const IConfigurationService=createDecorator("configurationService");function toValuesTree(o,e){const t=Object.create(null);for(const i in o)addToValueTree(t,i,o[i],e);return t}function addToValueTree(o,e,t,i){const n=e.split("."),r=n.pop();let s=o;for(let a=0;a<n.length;a++){const l=n[a];let d=s[l];switch(typeof d){case"undefined":d=s[l]=Object.create(null);break;case"object":break;default:i(`Ignoring ${e} as ${n.slice(0,a+1).join(".")} is ${JSON.stringify(d)}`);return}s=d}if(typeof s=="object"&&s!==null)try{s[r]=t}catch{i(`Ignoring ${e} as ${n.join(".")} is ${JSON.stringify(s)}`)}else i(`Ignoring ${e} as ${n.join(".")} is ${JSON.stringify(s)}`)}function removeFromValueTree(o,e){const t=e.split(".");doRemoveFromValueTree(o,t)}function doRemoveFromValueTree(o,e){const t=e.shift();if(e.length===0){delete o[t];return}if(Object.keys(o).indexOf(t)!==-1){const i=o[t];typeof i=="object"&&!Array.isArray(i)&&(doRemoveFromValueTree(i,e),Object.keys(i).length===0&&delete o[t])}}function getConfigurationValue(o,e,t){function i(s,a){let l=s;for(const d of a){if(typeof l!="object"||l===null)return;l=l[d]}return l}const n=e.split("."),r=i(o,n);return typeof r>"u"?t:r}function getLanguageTagSettingPlainKey(o){return o.replace(/[\[\]]/g,"")}const ILanguageService=createDecorator("languageService");class SyncDescriptor{constructor(e,t=[],i=!1){this.ctor=e,this.staticArguments=t,this.supportsDelayedInstantiation=i}}const _registry=[];function registerSingleton(o,e,t){e instanceof SyncDescriptor||(e=new SyncDescriptor(e,[],!!t)),_registry.push([o,e])}function getSingletonServiceDescriptors(){return _registry}const Mimes=Object.freeze({text:"text/plain",binary:"application/octet-stream",unknown:"application/unknown",markdown:"text/markdown",latex:"text/latex",uriList:"text/uri-list"}),Extensions$7={JSONContribution:"base.contributions.json"};function normalizeId(o){return o.length>0&&o.charAt(o.length-1)==="#"?o.substring(0,o.length-1):o}class JSONContributionRegistry{constructor(){this._onDidChangeSchema=new Emitter$1,this.schemasById={}}registerSchema(e,t){this.schemasById[normalizeId(e)]=t,this._onDidChangeSchema.fire(e)}notifySchemaChanged(e){this._onDidChangeSchema.fire(e)}}const jsonContributionRegistry=new JSONContributionRegistry;Registry.add(Extensions$7.JSONContribution,jsonContributionRegistry);const Extensions$6={Configuration:"base.contributions.configuration"},resourceLanguageSettingsSchemaId="vscode://schemas/settings/resourceLanguage",contributionRegistry=Registry.as(Extensions$7.JSONContribution);class ConfigurationRegistry{constructor(){this.overrideIdentifiers=new Set,this._onDidSchemaChange=new Emitter$1,this._onDidUpdateConfiguration=new Emitter$1,this.configurationDefaultsOverrides=new Map,this.defaultLanguageConfigurationOverridesNode={id:"defaultOverrides",title:localize("defaultLanguageConfigurationOverrides.title","Default Language Configuration Overrides"),properties:{}},this.configurationContributors=[this.defaultLanguageConfigurationOverridesNode],this.resourceLanguageSettingsSchema={properties:{},patternProperties:{},additionalProperties:!0,allowTrailingCommas:!0,allowComments:!0},this.configurationProperties={},this.policyConfigurations=new Map,this.excludedConfigurationProperties={},contributionRegistry.registerSchema(resourceLanguageSettingsSchemaId,this.resourceLanguageSettingsSchema),this.registerOverridePropertyPatternKey()}registerConfiguration(e,t=!0){this.registerConfigurations([e],t)}registerConfigurations(e,t=!0){const i=new Set;this.doRegisterConfigurations(e,t,i),contributionRegistry.registerSchema(resourceLanguageSettingsSchemaId,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:i})}registerDefaultConfigurations(e){const t=new Set;this.doRegisterDefaultConfigurations(e,t),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:t,defaultsOverrides:!0})}doRegisterDefaultConfigurations(e,t){var i;const n=[];for(const{overrides:r,source:s}of e)for(const a in r)if(t.add(a),OVERRIDE_PROPERTY_REGEX.test(a)){const l=this.configurationDefaultsOverrides.get(a),d=(i=l==null?void 0:l.valuesSources)!==null&&i!==void 0?i:new Map;if(s)for(const f of Object.keys(r[a]))d.set(f,s);const c=Object.assign(Object.assign({},(l==null?void 0:l.value)||{}),r[a]);this.configurationDefaultsOverrides.set(a,{source:s,value:c,valuesSources:d});const u=getLanguageTagSettingPlainKey(a),g={type:"object",default:c,description:localize("defaultLanguageConfiguration.description","Configure settings to be overridden for the {0} language.",u),$ref:resourceLanguageSettingsSchemaId,defaultDefaultValue:c,source:isString$1(s)?void 0:s,defaultValueSource:s};n.push(...overrideIdentifiersFromKey(a)),this.configurationProperties[a]=g,this.defaultLanguageConfigurationOverridesNode.properties[a]=g}else{this.configurationDefaultsOverrides.set(a,{value:r[a],source:s});const l=this.configurationProperties[a];l&&(this.updatePropertyDefaultValue(a,l),this.updateSchema(a,l))}this.doRegisterOverrideIdentifiers(n)}registerOverrideIdentifiers(e){this.doRegisterOverrideIdentifiers(e),this._onDidSchemaChange.fire()}doRegisterOverrideIdentifiers(e){for(const t of e)this.overrideIdentifiers.add(t);this.updateOverridePropertyPatternKey()}doRegisterConfigurations(e,t,i){e.forEach(n=>{this.validateAndRegisterProperties(n,t,n.extensionInfo,n.restrictedProperties,void 0,i),this.configurationContributors.push(n),this.registerJSONConfiguration(n)})}validateAndRegisterProperties(e,t=!0,i,n,r=3,s){var a;r=isUndefinedOrNull(e.scope)?r:e.scope;const l=e.properties;if(l)for(const c in l){const u=l[c];if(t&&validateProperty(c,u)){delete l[c];continue}if(u.source=i,u.defaultDefaultValue=l[c].default,this.updatePropertyDefaultValue(c,u),OVERRIDE_PROPERTY_REGEX.test(c)?u.scope=void 0:(u.scope=isUndefinedOrNull(u.scope)?r:u.scope,u.restricted=isUndefinedOrNull(u.restricted)?!!(n!=null&&n.includes(c)):u.restricted),l[c].hasOwnProperty("included")&&!l[c].included){this.excludedConfigurationProperties[c]=l[c],delete l[c];continue}else this.configurationProperties[c]=l[c],!((a=l[c].policy)===null||a===void 0)&&a.name&&this.policyConfigurations.set(l[c].policy.name,c);!l[c].deprecationMessage&&l[c].markdownDeprecationMessage&&(l[c].deprecationMessage=l[c].markdownDeprecationMessage),s.add(c)}const d=e.allOf;if(d)for(const c of d)this.validateAndRegisterProperties(c,t,i,n,r,s)}getConfigurationProperties(){return this.configurationProperties}getPolicyConfigurations(){return this.policyConfigurations}registerJSONConfiguration(e){const t=i=>{const n=i.properties;if(n)for(const s in n)this.updateSchema(s,n[s]);const r=i.allOf;r==null||r.forEach(t)};t(e)}updateSchema(e,t){switch(t.scope){case 1:break;case 2:break;case 6:break;case 3:break;case 4:break;case 5:this.resourceLanguageSettingsSchema.properties[e]=t;break}}updateOverridePropertyPatternKey(){for(const e of this.overrideIdentifiers.values()){const t=`[${e}]`,i={type:"object",description:localize("overrideSettings.defaultDescription","Configure editor settings to be overridden for a language."),errorMessage:localize("overrideSettings.errorMessage","This setting does not support per-language configuration."),$ref:resourceLanguageSettingsSchemaId};this.updatePropertyDefaultValue(t,i)}}registerOverridePropertyPatternKey(){localize("overrideSettings.defaultDescription","Configure editor settings to be overridden for a language."),localize("overrideSettings.errorMessage","This setting does not support per-language configuration."),this._onDidSchemaChange.fire()}updatePropertyDefaultValue(e,t){const i=this.configurationDefaultsOverrides.get(e);let n=i==null?void 0:i.value,r=i==null?void 0:i.source;isUndefined(n)&&(n=t.defaultDefaultValue,r=void 0),isUndefined(n)&&(n=getDefaultValue(t.type)),t.default=n,t.defaultValueSource=r}}const OVERRIDE_IDENTIFIER_PATTERN="\\[([^\\]]+)\\]",OVERRIDE_IDENTIFIER_REGEX=new RegExp(OVERRIDE_IDENTIFIER_PATTERN,"g"),OVERRIDE_PROPERTY_PATTERN=`^(${OVERRIDE_IDENTIFIER_PATTERN})+$`,OVERRIDE_PROPERTY_REGEX=new RegExp(OVERRIDE_PROPERTY_PATTERN);function overrideIdentifiersFromKey(o){const e=[];if(OVERRIDE_PROPERTY_REGEX.test(o)){let t=OVERRIDE_IDENTIFIER_REGEX.exec(o);for(;t!=null&&t.length;){const i=t[1].trim();i&&e.push(i),t=OVERRIDE_IDENTIFIER_REGEX.exec(o)}}return distinct(e)}function getDefaultValue(o){switch(Array.isArray(o)?o[0]:o){case"boolean":return!1;case"integer":case"number":return 0;case"string":return"";case"array":return[];case"object":return{};default:return null}}const configurationRegistry$2=new ConfigurationRegistry;Registry.add(Extensions$6.Configuration,configurationRegistry$2);function validateProperty(o,e){var t,i,n,r;return o.trim()?OVERRIDE_PROPERTY_REGEX.test(o)?localize("config.property.languageDefault","Cannot register '{0}'. This matches property pattern '\\\\[.*\\\\]$' for describing language specific editor settings. Use 'configurationDefaults' contribution.",o):configurationRegistry$2.getConfigurationProperties()[o]!==void 0?localize("config.property.duplicate","Cannot register '{0}'. This property is already registered.",o):!((t=e.policy)===null||t===void 0)&&t.name&&configurationRegistry$2.getPolicyConfigurations().get((i=e.policy)===null||i===void 0?void 0:i.name)!==void 0?localize("config.policy.duplicate","Cannot register '{0}'. The associated policy {1} is already registered with {2}.",o,(n=e.policy)===null||n===void 0?void 0:n.name,configurationRegistry$2.getPolicyConfigurations().get((r=e.policy)===null||r===void 0?void 0:r.name)):null:localize("config.property.empty","Cannot register an empty property")}const Extensions$5={ModesRegistry:"editor.modesRegistry"};class EditorModesRegistry{constructor(){this._onDidChangeLanguages=new Emitter$1,this.onDidChangeLanguages=this._onDidChangeLanguages.event,this._languages=[]}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){this._languages.splice(t,1);return}}}}getLanguages(){return this._languages}}const ModesRegistry=new EditorModesRegistry;Registry.add(Extensions$5.ModesRegistry,ModesRegistry);const PLAINTEXT_LANGUAGE_ID="plaintext",PLAINTEXT_EXTENSION=".txt";ModesRegistry.registerLanguage({id:PLAINTEXT_LANGUAGE_ID,extensions:[PLAINTEXT_EXTENSION],aliases:[localize("plainText.alias","Plain Text"),"text"],mimetypes:[Mimes.text]});Registry.as(Extensions$6.Configuration).registerDefaultConfigurations([{overrides:{"[plaintext]":{"editor.unicodeHighlight.ambiguousCharacters":!1,"editor.unicodeHighlight.invisibleCharacters":!1}}}]);class LanguageBracketsConfiguration{constructor(e,t){this.languageId=e;const i=t.brackets?filterValidBrackets(t.brackets):[],n=new CachedFunction(a=>{const l=new Set;return{info:new OpeningBracketKind(this,a,l),closing:l}}),r=new CachedFunction(a=>{const l=new Set,d=new Set;return{info:new ClosingBracketKind(this,a,l,d),opening:l,openingColorized:d}});for(const[a,l]of i){const d=n.get(a),c=r.get(l);d.closing.add(c.info),c.opening.add(d.info)}const s=t.colorizedBracketPairs?filterValidBrackets(t.colorizedBracketPairs):i.filter(a=>!(a[0]==="<"&&a[1]===">"));for(const[a,l]of s){const d=n.get(a),c=r.get(l);d.closing.add(c.info),c.openingColorized.add(d.info),c.opening.add(d.info)}this._openingBrackets=new Map([...n.cachedValues].map(([a,l])=>[a,l.info])),this._closingBrackets=new Map([...r.cachedValues].map(([a,l])=>[a,l.info]))}get openingBrackets(){return[...this._openingBrackets.values()]}get closingBrackets(){return[...this._closingBrackets.values()]}getOpeningBracketInfo(e){return this._openingBrackets.get(e)}getClosingBracketInfo(e){return this._closingBrackets.get(e)}getBracketInfo(e){return this.getOpeningBracketInfo(e)||this.getClosingBracketInfo(e)}}function filterValidBrackets(o){return o.filter(([e,t])=>e!==""&&t!=="")}class BracketKindBase{constructor(e,t){this.config=e,this.bracketText=t}get languageId(){return this.config.languageId}}class OpeningBracketKind extends BracketKindBase{constructor(e,t,i){super(e,t),this.openedBrackets=i,this.isOpeningBracket=!0}}class ClosingBracketKind extends BracketKindBase{constructor(e,t,i,n){super(e,t),this.openingBrackets=i,this.openingColorizedBrackets=n,this.isOpeningBracket=!1}closes(e){return e.config!==this.config?!1:this.openingBrackets.has(e)}closesColorized(e){return e.config!==this.config?!1:this.openingColorizedBrackets.has(e)}getOpeningBrackets(){return[...this.openingBrackets]}}var __decorate$2a=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$23=function(o,e){return function(t,i){e(t,i,o)}};class LanguageConfigurationServiceChangeEvent{constructor(e){this.languageId=e}affects(e){return this.languageId?this.languageId===e:!0}}const ILanguageConfigurationService=createDecorator("languageConfigurationService");let LanguageConfigurationService=class extends Disposable{constructor(e,t){super(),this.configurationService=e,this.languageService=t,this._registry=this._register(new LanguageConfigurationRegistry),this.onDidChangeEmitter=this._register(new Emitter$1),this.onDidChange=this.onDidChangeEmitter.event,this.configurations=new Map;const i=new Set(Object.values(customizedLanguageConfigKeys));this._register(this.configurationService.onDidChangeConfiguration(n=>{const r=n.change.keys.some(a=>i.has(a)),s=n.change.overrides.filter(([a,l])=>l.some(d=>i.has(d))).map(([a])=>a);if(r)this.configurations.clear(),this.onDidChangeEmitter.fire(new LanguageConfigurationServiceChangeEvent(void 0));else for(const a of s)this.languageService.isRegisteredLanguageId(a)&&(this.configurations.delete(a),this.onDidChangeEmitter.fire(new LanguageConfigurationServiceChangeEvent(a)))})),this._register(this._registry.onDidChange(n=>{this.configurations.delete(n.languageId),this.onDidChangeEmitter.fire(new LanguageConfigurationServiceChangeEvent(n.languageId))}))}register(e,t,i){return this._registry.register(e,t,i)}getLanguageConfiguration(e){let t=this.configurations.get(e);return t||(t=computeConfig(e,this._registry,this.configurationService,this.languageService),this.configurations.set(e,t)),t}};LanguageConfigurationService=__decorate$2a([__param$23(0,IConfigurationService),__param$23(1,ILanguageService)],LanguageConfigurationService);function computeConfig(o,e,t,i){let n=e.getLanguageConfiguration(o);if(!n){if(!i.isRegisteredLanguageId(o))return new ResolvedLanguageConfiguration(o,{});n=new ResolvedLanguageConfiguration(o,{})}const r=getCustomizedLanguageConfig(n.languageId,t),s=combineLanguageConfigurations([n.underlyingConfig,r]);return new ResolvedLanguageConfiguration(n.languageId,s)}const customizedLanguageConfigKeys={brackets:"editor.language.brackets",colorizedBracketPairs:"editor.language.colorizedBracketPairs"};function getCustomizedLanguageConfig(o,e){const t=e.getValue(customizedLanguageConfigKeys.brackets,{overrideIdentifier:o}),i=e.getValue(customizedLanguageConfigKeys.colorizedBracketPairs,{overrideIdentifier:o});return{brackets:validateBracketPairs(t),colorizedBracketPairs:validateBracketPairs(i)}}function validateBracketPairs(o){if(Array.isArray(o))return o.map(e=>{if(!(!Array.isArray(e)||e.length!==2))return[e[0],e[1]]}).filter(e=>!!e)}function getIndentationAtPosition(o,e,t){const i=o.getLineContent(e);let n=getLeadingWhitespace(i);return n.length>t-1&&(n=n.substring(0,t-1)),n}function getScopedLineTokens(o,e,t){o.tokenization.forceTokenization(e);const i=o.tokenization.getLineTokens(e),n=typeof t>"u"?o.getLineMaxColumn(e)-1:t-1;return createScopedLineTokens(i,n)}class ComposedLanguageConfiguration{constructor(e){this.languageId=e,this._resolved=null,this._entries=[],this._order=0,this._resolved=null}register(e,t){const i=new LanguageConfigurationContribution(e,t,++this._order);return this._entries.push(i),this._resolved=null,toDisposable(()=>{for(let n=0;n<this._entries.length;n++)if(this._entries[n]===i){this._entries.splice(n,1),this._resolved=null;break}})}getResolvedConfiguration(){if(!this._resolved){const e=this._resolve();e&&(this._resolved=new ResolvedLanguageConfiguration(this.languageId,e))}return this._resolved}_resolve(){return this._entries.length===0?null:(this._entries.sort(LanguageConfigurationContribution.cmp),combineLanguageConfigurations(this._entries.map(e=>e.configuration)))}}function combineLanguageConfigurations(o){let e={comments:void 0,brackets:void 0,wordPattern:void 0,indentationRules:void 0,onEnterRules:void 0,autoClosingPairs:void 0,surroundingPairs:void 0,autoCloseBefore:void 0,folding:void 0,colorizedBracketPairs:void 0,__electricCharacterSupport:void 0};for(const t of o)e={comments:t.comments||e.comments,brackets:t.brackets||e.brackets,wordPattern:t.wordPattern||e.wordPattern,indentationRules:t.indentationRules||e.indentationRules,onEnterRules:t.onEnterRules||e.onEnterRules,autoClosingPairs:t.autoClosingPairs||e.autoClosingPairs,surroundingPairs:t.surroundingPairs||e.surroundingPairs,autoCloseBefore:t.autoCloseBefore||e.autoCloseBefore,folding:t.folding||e.folding,colorizedBracketPairs:t.colorizedBracketPairs||e.colorizedBracketPairs,__electricCharacterSupport:t.__electricCharacterSupport||e.__electricCharacterSupport};return e}class LanguageConfigurationContribution{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 LanguageConfigurationChangeEvent{constructor(e){this.languageId=e}}class LanguageConfigurationRegistry extends Disposable{constructor(){super(),this._entries=new Map,this._onDidChange=this._register(new Emitter$1),this.onDidChange=this._onDidChange.event,this._register(this.register(PLAINTEXT_LANGUAGE_ID,{brackets:[["(",")"],["[","]"],["{","}"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],colorizedBracketPairs:[],folding:{offSide:!0}},0))}register(e,t,i=0){let n=this._entries.get(e);n||(n=new ComposedLanguageConfiguration(e),this._entries.set(e,n));const r=n.register(t,i);return this._onDidChange.fire(new LanguageConfigurationChangeEvent(e)),toDisposable(()=>{r.dispose(),this._onDidChange.fire(new LanguageConfigurationChangeEvent(e))})}getLanguageConfiguration(e){const t=this._entries.get(e);return(t==null?void 0:t.getResolvedConfiguration())||null}}class ResolvedLanguageConfiguration{constructor(e,t){this.languageId=e,this.underlyingConfig=t,this._brackets=null,this._electricCharacter=null,this._onEnterSupport=this.underlyingConfig.brackets||this.underlyingConfig.indentationRules||this.underlyingConfig.onEnterRules?new OnEnterSupport(this.underlyingConfig):null,this.comments=ResolvedLanguageConfiguration._handleComments(this.underlyingConfig),this.characterPair=new CharacterPairSupport(this.underlyingConfig),this.wordDefinition=this.underlyingConfig.wordPattern||DEFAULT_WORD_REGEXP,this.indentationRules=this.underlyingConfig.indentationRules,this.underlyingConfig.indentationRules?this.indentRulesSupport=new IndentRulesSupport(this.underlyingConfig.indentationRules):this.indentRulesSupport=null,this.foldingRules=this.underlyingConfig.folding||{},this.bracketsNew=new LanguageBracketsConfiguration(e,this.underlyingConfig)}getWordDefinition(){return ensureValidWordDefinition(this.wordDefinition)}get brackets(){return!this._brackets&&this.underlyingConfig.brackets&&(this._brackets=new RichEditBrackets(this.languageId,this.underlyingConfig.brackets)),this._brackets}get electricCharacter(){return this._electricCharacter||(this._electricCharacter=new BracketElectricCharacterSupport(this.brackets)),this._electricCharacter}onEnter(e,t,i,n){return this._onEnterSupport?this._onEnterSupport.onEnter(e,t,i,n):null}getAutoClosingPairs(){return new AutoClosingPairs(this.characterPair.getAutoClosingPairs())}getAutoCloseBeforeSet(e){return this.characterPair.getAutoCloseBeforeSet(e)}getSurroundingPairs(){return this.characterPair.getSurroundingPairs()}static _handleComments(e){const t=e.comments;if(!t)return null;const i={};if(t.lineComment&&(i.lineCommentToken=t.lineComment),t.blockComment){const[n,r]=t.blockComment;i.blockCommentStartToken=n,i.blockCommentEndToken=r}return i}}registerSingleton(ILanguageConfigurationService,LanguageConfigurationService,1);class DiffChange{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}}function hash(o){return doHash(o,0)}function doHash(o,e){switch(typeof o){case"object":return o===null?numberHash(349,e):Array.isArray(o)?arrayHash(o,e):objectHash(o,e);case"string":return stringHash(o,e);case"boolean":return booleanHash(o,e);case"number":return numberHash(o,e);case"undefined":return numberHash(937,e);default:return numberHash(617,e)}}function numberHash(o,e){return(e<<5)-e+o|0}function booleanHash(o,e){return numberHash(o?433:863,e)}function stringHash(o,e){e=numberHash(149417,e);for(let t=0,i=o.length;t<i;t++)e=numberHash(o.charCodeAt(t),e);return e}function arrayHash(o,e){return e=numberHash(104579,e),o.reduce((t,i)=>doHash(i,t),e)}function objectHash(o,e){return e=numberHash(181387,e),Object.keys(o).sort().reduce((t,i)=>(t=stringHash(i,t),doHash(o[i],t)),e)}function leftRotate$2(o,e,t=32){const i=t-e,n=~((1<<i)-1);return(o<<e|(n&o)>>>i)>>>0}function fill(o,e=0,t=o.byteLength,i=0){for(let n=0;n<t;n++)o[e+n]=i}function leftPad(o,e,t="0"){for(;o.length<e;)o=t+o;return o}function toHexString(o,e=32){return o instanceof ArrayBuffer?Array.from(new Uint8Array(o)).map(t=>t.toString(16).padStart(2,"0")).join(""):leftPad((o>>>0).toString(16),e/4)}class StringSHA1{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(t===0)return;const i=this._buff;let n=this._buffLen,r=this._leftoverHighSurrogate,s,a;for(r!==0?(s=r,a=-1,r=0):(s=e.charCodeAt(0),a=0);;){let l=s;if(isHighSurrogate(s))if(a+1<t){const d=e.charCodeAt(a+1);isLowSurrogate(d)?(a++,l=computeCodePoint(s,d)):l=65533}else{r=s;break}else isLowSurrogate(s)&&(l=65533);if(n=this._push(i,n,l),a++,a<t)s=e.charCodeAt(a);else break}this._buffLen=n,this._leftoverHighSurrogate=r}_push(e,t,i){return i<128?e[t++]=i:i<2048?(e[t++]=192|(i&1984)>>>6,e[t++]=128|(i&63)>>>0):i<65536?(e[t++]=224|(i&61440)>>>12,e[t++]=128|(i&4032)>>>6,e[t++]=128|(i&63)>>>0):(e[t++]=240|(i&1835008)>>>18,e[t++]=128|(i&258048)>>>12,e[t++]=128|(i&4032)>>>6,e[t++]=128|(i&63)>>>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()),toHexString(this._h0)+toHexString(this._h1)+toHexString(this._h2)+toHexString(this._h3)+toHexString(this._h4)}_wrapUp(){this._buff[this._buffLen++]=128,fill(this._buff,this._buffLen),this._buffLen>56&&(this._step(),fill(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=StringSHA1._bigBlock32,t=this._buffDV;for(let u=0;u<64;u+=4)e.setUint32(u,t.getUint32(u,!1),!1);for(let u=64;u<320;u+=4)e.setUint32(u,leftRotate$2(e.getUint32(u-12,!1)^e.getUint32(u-32,!1)^e.getUint32(u-56,!1)^e.getUint32(u-64,!1),1),!1);let i=this._h0,n=this._h1,r=this._h2,s=this._h3,a=this._h4,l,d,c;for(let u=0;u<80;u++)u<20?(l=n&r|~n&s,d=1518500249):u<40?(l=n^r^s,d=1859775393):u<60?(l=n&r|n&s|r&s,d=2400959708):(l=n^r^s,d=3395469782),c=leftRotate$2(i,5)+l+a+d+e.getUint32(u*4,!1)&4294967295,a=s,s=r,r=leftRotate$2(n,30),n=i,i=c;this._h0=this._h0+i&4294967295,this._h1=this._h1+n&4294967295,this._h2=this._h2+r&4294967295,this._h3=this._h3+s&4294967295,this._h4=this._h4+a&4294967295}}StringSHA1._bigBlock32=new DataView(new ArrayBuffer(320));class StringDiffSequence{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 stringDiff(o,e,t){return new LcsDiff(new StringDiffSequence(o),new StringDiffSequence(e)).ComputeDiff(t).changes}class Debug{static Assert(e,t){if(!e)throw new Error(t)}}class MyArray{static Copy(e,t,i,n,r){for(let s=0;s<r;s++)i[n+s]=e[t+s]}static Copy2(e,t,i,n,r){for(let s=0;s<r;s++)i[n+s]=e[t+s]}}class DiffChangeHelper{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 DiffChange(this.m_originalStart,this.m_originalCount,this.m_modifiedStart,this.m_modifiedCount)),this.m_originalCount=0,this.m_modifiedCount=0,this.m_originalStart=1073741824,this.m_modifiedStart=1073741824}AddOriginalElement(e,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 LcsDiff{constructor(e,t,i=null){this.ContinueProcessingPredicate=i,this._originalSequence=e,this._modifiedSequence=t;const[n,r,s]=LcsDiff._getElements(e),[a,l,d]=LcsDiff._getElements(t);this._hasStrings=s&&d,this._originalStringElements=n,this._originalElementsOrHash=r,this._modifiedStringElements=a,this._modifiedElementsOrHash=l,this.m_forwardHistory=[],this.m_reverseHistory=[]}static _isStringArray(e){return e.length>0&&typeof e[0]=="string"}static _getElements(e){const t=e.getElements();if(LcsDiff._isStringArray(t)){const i=new Int32Array(t.length);for(let n=0,r=t.length;n<r;n++)i[n]=stringHash(t[n],0);return[t,i,!0]}return t instanceof Int32Array?[[],t,!1]:[[],new Int32Array(t),!1]}ElementsAreEqual(e,t){return this._originalElementsOrHash[e]!==this._modifiedElementsOrHash[t]?!1:this._hasStrings?this._originalStringElements[e]===this._modifiedStringElements[t]:!0}ElementsAreStrictEqual(e,t){if(!this.ElementsAreEqual(e,t))return!1;const i=LcsDiff._getStrictElement(this._originalSequence,e),n=LcsDiff._getStrictElement(this._modifiedSequence,t);return i===n}static _getStrictElement(e,t){return typeof e.getStrictElement=="function"?e.getStrictElement(t):null}OriginalElementsAreEqual(e,t){return this._originalElementsOrHash[e]!==this._originalElementsOrHash[t]?!1:this._hasStrings?this._originalStringElements[e]===this._originalStringElements[t]:!0}ModifiedElementsAreEqual(e,t){return this._modifiedElementsOrHash[e]!==this._modifiedElementsOrHash[t]?!1:this._hasStrings?this._modifiedStringElements[e]===this._modifiedStringElements[t]:!0}ComputeDiff(e){return this._ComputeDiff(0,this._originalElementsOrHash.length-1,0,this._modifiedElementsOrHash.length-1,e)}_ComputeDiff(e,t,i,n,r){const s=[!1];let a=this.ComputeDiffRecursive(e,t,i,n,s);return r&&(a=this.PrettifyChanges(a)),{quitEarly:s[0],changes:a}}ComputeDiffRecursive(e,t,i,n,r){for(r[0]=!1;e<=t&&i<=n&&this.ElementsAreEqual(e,i);)e++,i++;for(;t>=e&&n>=i&&this.ElementsAreEqual(t,n);)t--,n--;if(e>t||i>n){let u;return i<=n?(Debug.Assert(e===t+1,"originalStart should only be one more than originalEnd"),u=[new DiffChange(e,0,i,n-i+1)]):e<=t?(Debug.Assert(i===n+1,"modifiedStart should only be one more than modifiedEnd"),u=[new DiffChange(e,t-e+1,i,0)]):(Debug.Assert(e===t+1,"originalStart should only be one more than originalEnd"),Debug.Assert(i===n+1,"modifiedStart should only be one more than modifiedEnd"),u=[]),u}const s=[0],a=[0],l=this.ComputeRecursionPoint(e,t,i,n,s,a,r),d=s[0],c=a[0];if(l!==null)return l;if(!r[0]){const u=this.ComputeDiffRecursive(e,d,i,c,r);let g=[];return r[0]?g=[new DiffChange(d+1,t-(d+1)+1,c+1,n-(c+1)+1)]:g=this.ComputeDiffRecursive(d+1,t,c+1,n,r),this.ConcatenateChanges(u,g)}return[new DiffChange(e,t-e+1,i,n-i+1)]}WALKTRACE(e,t,i,n,r,s,a,l,d,c,u,g,f,p,m,b,_,C){let S=null,y=null,E=new DiffChangeHelper,x=t,L=i,I=f[0]-b[0]-n,D=-1073741824,N=this.m_forwardHistory.length-1;do{const F=I+e;F===x||F<L&&d[F-1]<d[F+1]?(u=d[F+1],p=u-I-n,u<D&&E.MarkNextChange(),D=u,E.AddModifiedElement(u+1,p),I=F+1-e):(u=d[F-1]+1,p=u-I-n,u<D&&E.MarkNextChange(),D=u-1,E.AddOriginalElement(u,p+1),I=F-1-e),N>=0&&(d=this.m_forwardHistory[N],e=d[0],x=1,L=d.length-1)}while(--N>=-1);if(S=E.getReverseChanges(),C[0]){let F=f[0]+1,R=b[0]+1;if(S!==null&&S.length>0){const M=S[S.length-1];F=Math.max(F,M.getOriginalEnd()),R=Math.max(R,M.getModifiedEnd())}y=[new DiffChange(F,g-F+1,R,m-R+1)]}else{E=new DiffChangeHelper,x=s,L=a,I=f[0]-b[0]-l,D=1073741824,N=_?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{const F=I+r;F===x||F<L&&c[F-1]>=c[F+1]?(u=c[F+1]-1,p=u-I-l,u>D&&E.MarkNextChange(),D=u+1,E.AddOriginalElement(u+1,p+1),I=F+1-r):(u=c[F-1],p=u-I-l,u>D&&E.MarkNextChange(),D=u,E.AddModifiedElement(u+1,p+1),I=F-1-r),N>=0&&(c=this.m_reverseHistory[N],r=c[0],x=1,L=c.length-1)}while(--N>=-1);y=E.getChanges()}return this.ConcatenateChanges(S,y)}ComputeRecursionPoint(e,t,i,n,r,s,a){let l=0,d=0,c=0,u=0,g=0,f=0;e--,i--,r[0]=0,s[0]=0,this.m_forwardHistory=[],this.m_reverseHistory=[];const p=t-e+(n-i),m=p+1,b=new Int32Array(m),_=new Int32Array(m),C=n-i,S=t-e,y=e-i,E=t-n,L=(S-C)%2===0;b[C]=e,_[S]=t,a[0]=!1;for(let I=1;I<=p/2+1;I++){let D=0,N=0;c=this.ClipDiagonalBound(C-I,I,C,m),u=this.ClipDiagonalBound(C+I,I,C,m);for(let R=c;R<=u;R+=2){R===c||R<u&&b[R-1]<b[R+1]?l=b[R+1]:l=b[R-1]+1,d=l-(R-C)-y;const M=l;for(;l<t&&d<n&&this.ElementsAreEqual(l+1,d+1);)l++,d++;if(b[R]=l,l+d>D+N&&(D=l,N=d),!L&&Math.abs(R-S)<=I-1&&l>=_[R])return r[0]=l,s[0]=d,M<=_[R]&&I<=1448?this.WALKTRACE(C,c,u,y,S,g,f,E,b,_,l,t,r,d,n,s,L,a):null}const F=(D-e+(N-i)-I)/2;if(this.ContinueProcessingPredicate!==null&&!this.ContinueProcessingPredicate(D,F))return a[0]=!0,r[0]=D,s[0]=N,F>0&&I<=1448?this.WALKTRACE(C,c,u,y,S,g,f,E,b,_,l,t,r,d,n,s,L,a):(e++,i++,[new DiffChange(e,t-e+1,i,n-i+1)]);g=this.ClipDiagonalBound(S-I,I,S,m),f=this.ClipDiagonalBound(S+I,I,S,m);for(let R=g;R<=f;R+=2){R===g||R<f&&_[R-1]>=_[R+1]?l=_[R+1]-1:l=_[R-1],d=l-(R-S)-E;const M=l;for(;l>e&&d>i&&this.ElementsAreEqual(l,d);)l--,d--;if(_[R]=l,L&&Math.abs(R-C)<=I&&l<=b[R])return r[0]=l,s[0]=d,M>=b[R]&&I<=1448?this.WALKTRACE(C,c,u,y,S,g,f,E,b,_,l,t,r,d,n,s,L,a):null}if(I<=1447){let R=new Int32Array(u-c+2);R[0]=C-c+1,MyArray.Copy2(b,c,R,1,u-c+1),this.m_forwardHistory.push(R),R=new Int32Array(f-g+2),R[0]=S-g+1,MyArray.Copy2(_,g,R,1,f-g+1),this.m_reverseHistory.push(R)}}return this.WALKTRACE(C,c,u,y,S,g,f,E,b,_,l,t,r,d,n,s,L,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,r=t<e.length-1?e[t+1].modifiedStart:this._modifiedElementsOrHash.length,s=i.originalLength>0,a=i.modifiedLength>0;for(;i.originalStart+i.originalLength<n&&i.modifiedStart+i.modifiedLength<r&&(!s||this.OriginalElementsAreEqual(i.originalStart,i.originalStart+i.originalLength))&&(!a||this.ModifiedElementsAreEqual(i.modifiedStart,i.modifiedStart+i.modifiedLength));){const d=this.ElementsAreStrictEqual(i.originalStart,i.modifiedStart);if(this.ElementsAreStrictEqual(i.originalStart+i.originalLength,i.modifiedStart+i.modifiedLength)&&!d)break;i.originalStart++,i.modifiedStart++}const l=[null];if(t<e.length-1&&this.ChangesOverlap(e[t],e[t+1],l)){e[t]=l[0],e.splice(t+1,1),t--;continue}}for(let t=e.length-1;t>=0;t--){const i=e[t];let n=0,r=0;if(t>0){const u=e[t-1];n=u.originalStart+u.originalLength,r=u.modifiedStart+u.modifiedLength}const s=i.originalLength>0,a=i.modifiedLength>0;let l=0,d=this._boundaryScore(i.originalStart,i.originalLength,i.modifiedStart,i.modifiedLength);for(let u=1;;u++){const g=i.originalStart-u,f=i.modifiedStart-u;if(g<n||f<r||s&&!this.OriginalElementsAreEqual(g,g+i.originalLength)||a&&!this.ModifiedElementsAreEqual(f,f+i.modifiedLength))break;const m=(g===n&&f===r?5:0)+this._boundaryScore(g,i.originalLength,f,i.modifiedLength);m>d&&(d=m,l=u)}i.originalStart-=l,i.modifiedStart-=l;const c=[null];if(t>0&&this.ChangesOverlap(e[t-1],e[t],c)){e[t-1]=c[0],e.splice(t,1),t++;continue}}if(this._hasStrings)for(let t=1,i=e.length;t<i;t++){const n=e[t-1],r=e[t],s=r.originalStart-n.originalStart-n.originalLength,a=n.originalStart,l=r.originalStart+r.originalLength,d=l-a,c=n.modifiedStart,u=r.modifiedStart+r.modifiedLength,g=u-c;if(s<5&&d<20&&g<20){const f=this._findBetterContiguousSequence(a,d,c,g,s);if(f){const[p,m]=f;(p!==n.originalStart+n.originalLength||m!==n.modifiedStart+n.modifiedLength)&&(n.originalLength=p-n.originalStart,n.modifiedLength=m-n.modifiedStart,r.originalStart=p+s,r.modifiedStart=m+s,r.originalLength=l-r.originalStart,r.modifiedLength=u-r.modifiedStart)}}}return e}_findBetterContiguousSequence(e,t,i,n,r){if(t<r||n<r)return null;const s=e+t-r+1,a=i+n-r+1;let l=0,d=0,c=0;for(let u=e;u<s;u++)for(let g=i;g<a;g++){const f=this._contiguousSequenceScore(u,g,r);f>0&&f>l&&(l=f,d=u,c=g)}return l>0?[d,c]:null}_contiguousSequenceScore(e,t,i){let n=0;for(let r=0;r<i;r++){if(!this.ElementsAreEqual(e+r,t+r))return 0;n+=this._originalStringElements[e+r].length}return n}_OriginalIsBoundary(e){return e<=0||e>=this._originalElementsOrHash.length-1?!0: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?!0: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){const r=this._OriginalRegionIsBoundary(e,t)?1:0,s=this._ModifiedRegionIsBoundary(i,n)?1:0;return r+s}ConcatenateChanges(e,t){const i=[];if(e.length===0||t.length===0)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 MyArray.Copy(e,0,n,0,e.length-1),n[e.length-1]=i[0],MyArray.Copy(t,1,n,e.length,t.length-1),n}else{const n=new Array(e.length+t.length);return MyArray.Copy(e,0,n,0,e.length),MyArray.Copy(t,0,n,e.length,t.length),n}}ChangesOverlap(e,t,i){if(Debug.Assert(e.originalStart<=t.originalStart,"Left change is not less than or equal to right change"),Debug.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 n=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 DiffChange(n,r,s,a),!0}else return i[0]=null,!1}ClipDiagonalBound(e,t,i,n){if(e>=0&&e<n)return e;const r=i,s=n-i-1,a=t%2===0;if(e<0){const l=r%2===0;return a===l?0:1}else{const l=s%2===0;return a===l?n-1:n-2}}}function toUint8(o){return o<0?0:o>255?255:o|0}function toUint32(o){return o<0?0:o>4294967295?4294967295:o|0}class PrefixSumComputer{constructor(e){this.values=e,this.prefixSum=new Uint32Array(e.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}insertValues(e,t){e=toUint32(e);const i=this.values,n=this.prefixSum,r=t.length;return r===0?!1:(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(n.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}setValue(e,t){return e=toUint32(e),t=toUint32(t),this.values[e]===t?!1:(this.values[e]=t,e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),!0)}removeValues(e,t){e=toUint32(e),t=toUint32(t);const i=this.values,n=this.prefixSum;if(e>=i.length)return!1;const r=i.length-e;return t>=r&&(t=r),t===0?!1:(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(n.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}getTotalSum(){return this.values.length===0?0:this._getPrefixSum(this.values.length-1)}getPrefixSum(e){return e<0?0:(e=toUint32(e),this._getPrefixSum(e))}_getPrefixSum(e){if(e<=this.prefixSumValidIndex[0])return this.prefixSum[e];let t=this.prefixSumValidIndex[0]+1;t===0&&(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)t=n+1;else break;return new PrefixSumIndexOfResult(n,e-s)}}class ConstantTimePrefixSumComputer{constructor(e){this._values=e,this._isValid=!1,this._validEndIndex=-1,this._prefixSum=[],this._indexBySum=[]}getTotalSum(){return this._ensureValid(),this._indexBySum.length}getPrefixSum(e){return this._ensureValid(),e===0?0:this._prefixSum[e-1]}getIndexOf(e){this._ensureValid();const t=this._indexBySum[e],i=t>0?this._prefixSum[t-1]:0;return new PrefixSumIndexOfResult(t,e-i)}removeValues(e,t){this._values.splice(e,t),this._invalidate(e)}insertValues(e,t){this._values=arrayInsert(this._values,e,t),this._invalidate(e)}_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._values.length;e<t;e++){const i=this._values[e],n=e>0?this._prefixSum[e-1]:0;this._prefixSum[e]=n+i;for(let r=0;r<i;r++)this._indexBySum[n+r]=e}this._prefixSum.length=this._values.length,this._indexBySum.length=this._prefixSum[this._prefixSum.length-1],this._isValid=!0,this._validEndIndex=this._values.length-1}}setValue(e,t){this._values[e]!==t&&(this._values[e]=t,this._invalidate(e))}}class PrefixSumIndexOfResult{constructor(e,t){this.index=e,this.remainder=t,this._prefixSumIndexOfResultBrand=void 0,this.index=e,this.remainder=t}}class MirrorTextModel{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 this._cachedTextValue===null&&(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 i of t)this._acceptDeleteRange(i.range),this._acceptInsertText(new Position$1(i.range.startLineNumber,i.range.startColumn),i.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 PrefixSumComputer(i)}}_setLineText(e,t){this._lines[e]=t,this._lineStarts&&this._lineStarts.setValue(e,this._lines[e].length+this._eol.length)}_acceptDeleteRange(e){if(e.startLineNumber===e.endLineNumber){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));return}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)}_acceptInsertText(e,t){if(t.length===0)return;const i=splitLines(t);if(i.length===1){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));return}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]);const n=new Uint32Array(i.length-1);for(let r=1;r<i.length;r++)this._lines.splice(e.lineNumber+r-1,0,i[r]),n[r-1]=i[r].length+this._eol.length;this._lineStarts&&this._lineStarts.insertValues(e.lineNumber,n)}}class CharacterClassifier{constructor(e){const t=toUint8(e);this._defaultValue=t,this._asciiMap=CharacterClassifier._createAsciiMap(t),this._map=new Map}static _createAsciiMap(e){const t=new Uint8Array(256);return t.fill(e),t}set(e,t){const i=toUint8(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}clear(){this._asciiMap.fill(this._defaultValue),this._map.clear()}}class CharacterSet{constructor(){this._actual=new CharacterClassifier(0)}add(e){this._actual.set(e,1)}has(e){return this._actual.get(e)===1}clear(){return this._actual.clear()}}class Uint8Matrix{constructor(e,t,i){const n=new Uint8Array(e*t);for(let r=0,s=e*t;r<s;r++)n[r]=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 StateMachine{constructor(e){let t=0,i=0;for(let r=0,s=e.length;r<s;r++){const[a,l,d]=e[r];l>t&&(t=l),a>i&&(i=a),d>i&&(i=d)}t++,i++;const n=new Uint8Matrix(i,t,0);for(let r=0,s=e.length;r<s;r++){const[a,l,d]=e[r];n.set(a,l,d)}this._states=n,this._maxCharCode=t}nextState(e,t){return t<0||t>=this._maxCharCode?0:this._states.get(e,t)}}let _stateMachine=null;function getStateMachine(){return _stateMachine===null&&(_stateMachine=new StateMachine([[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]])),_stateMachine}let _classifier=null;function getClassifier(){if(_classifier===null){_classifier=new CharacterClassifier(0);const o=` <>'"、。。、,.:;‘〈「『〔([{「」}])〕』」〉’`~…`;for(let t=0;t<o.length;t++)_classifier.set(o.charCodeAt(t),1);const e=".,;:";for(let t=0;t<e.length;t++)_classifier.set(e.charCodeAt(t),2)}return _classifier}class LinkComputer{static _createLink(e,t,i,n,r){let s=r-1;do{const a=t.charCodeAt(s);if(e.get(a)!==2)break;s--}while(s>n);if(n>0){const a=t.charCodeAt(n-1),l=t.charCodeAt(s);(a===40&&l===41||a===91&&l===93||a===123&&l===125)&&s--}return{range:{startLineNumber:i,startColumn:n+1,endLineNumber:i,endColumn:s+2},url:t.substring(n,s+1)}}static computeLinks(e,t=getStateMachine()){const i=getClassifier(),n=[];for(let r=1,s=e.getLineCount();r<=s;r++){const a=e.getLineContent(r),l=a.length;let d=0,c=0,u=0,g=1,f=!1,p=!1,m=!1,b=!1;for(;d<l;){let _=!1;const C=a.charCodeAt(d);if(g===13){let S;switch(C){case 40:f=!0,S=0;break;case 41:S=f?0:1;break;case 91:m=!0,p=!0,S=0;break;case 93:m=!1,S=p?0:1;break;case 123:b=!0,S=0;break;case 125:S=b?0:1;break;case 39:case 34:case 96:u===C?S=1:u===39||u===34||u===96?S=0:S=1;break;case 42:S=u===42?1:0;break;case 124:S=u===124?1:0;break;case 32:S=m?0:1;break;default:S=i.get(C)}S===1&&(n.push(LinkComputer._createLink(i,a,r,c,d)),_=!0)}else if(g===12){let S;C===91?(p=!0,S=0):S=i.get(C),S===1?_=!0:g=13}else g=t.nextState(g,C),g===0&&(_=!0);_&&(g=1,f=!1,p=!1,b=!1,c=d+1,u=C),d++}g===13&&n.push(LinkComputer._createLink(i,a,r,c,l))}return n}}function computeLinks(o){return!o||typeof o.getLineCount!="function"||typeof o.getLineContent!="function"?[]:LinkComputer.computeLinks(o)}class BasicInplaceReplace{constructor(){this._defaultValueSet=[["true","false"],["True","False"],["Private","Public","Friend","ReadOnly","Partial","Protected","WriteOnly"],["public","protected","private"]]}navigateValueSet(e,t,i,n,r){if(e&&t){const s=this.doNavigateValueSet(t,r);if(s)return{range:e,value:s}}if(i&&n){const s=this.doNavigateValueSet(n,r);if(s)return{range:i,value:s}}return null}doNavigateValueSet(e,t){const i=this.numberReplace(e,t);return i!==null?i:this.textReplace(e,t)}numberReplace(e,t){const i=Math.pow(10,e.length-(e.lastIndexOf(".")+1));let n=Number(e);const r=parseFloat(e);return!isNaN(n)&&!isNaN(r)&&n===r?n===0&&!t?null:(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 r=0,s=e.length;n===null&&r<s;r++)n=this.valueSetReplace(e[r],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}}BasicInplaceReplace.INSTANCE=new BasicInplaceReplace;class WordCharacterClassifier extends CharacterClassifier{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)}}function once(o){const e={};return t=>(e.hasOwnProperty(t)||(e[t]=o(t)),e[t])}const getMapForWordSeparators=once(o=>new WordCharacterClassifier(o));var OverviewRulerLane;(function(o){o[o.Left=1]="Left",o[o.Center=2]="Center",o[o.Right=4]="Right",o[o.Full=7]="Full"})(OverviewRulerLane||(OverviewRulerLane={}));var GlyphMarginLane;(function(o){o[o.Left=1]="Left",o[o.Right=2]="Right"})(GlyphMarginLane||(GlyphMarginLane={}));var MinimapPosition;(function(o){o[o.Inline=1]="Inline",o[o.Gutter=2]="Gutter"})(MinimapPosition||(MinimapPosition={}));var InjectedTextCursorStops;(function(o){o[o.Both=0]="Both",o[o.Right=1]="Right",o[o.Left=2]="Left",o[o.None=3]="None"})(InjectedTextCursorStops||(InjectedTextCursorStops={}));class TextModelResolvedOptions{get originalIndentSize(){return this._indentSizeIsTabSize?"tabSize":this.indentSize}constructor(e){this._textModelResolvedOptionsBrand=void 0,this.tabSize=Math.max(1,e.tabSize|0),e.indentSize==="tabSize"?(this.indentSize=this.tabSize,this._indentSizeIsTabSize=!0):(this.indentSize=Math.max(1,e.indentSize|0),this._indentSizeIsTabSize=!1),this.insertSpaces=!!e.insertSpaces,this.defaultEOL=e.defaultEOL|0,this.trimAutoWhitespace=!!e.trimAutoWhitespace,this.bracketPairColorizationOptions=e.bracketPairColorizationOptions}equals(e){return this.tabSize===e.tabSize&&this._indentSizeIsTabSize===e._indentSizeIsTabSize&&this.indentSize===e.indentSize&&this.insertSpaces===e.insertSpaces&&this.defaultEOL===e.defaultEOL&&this.trimAutoWhitespace===e.trimAutoWhitespace&&equals$1(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 FindMatch{constructor(e,t){this._findMatchBrand=void 0,this.range=e,this.matches=t}}function isITextSnapshot(o){return o&&typeof o.read=="function"}class ValidAnnotatedEditOperation{constructor(e,t,i,n,r,s){this.identifier=e,this.range=t,this.text=i,this.forceMoveMarkers=n,this.isAutoWhitespaceEdit=r,this._isTracked=s}}class SearchData{constructor(e,t,i){this.regex=e,this.wordSeparators=t,this.simpleSearch=i}}class ApplyEditsResult{constructor(e,t,i){this.reverseEdits=e,this.changes=t,this.trimAutoWhitespaceLineNumbers=i}}function shouldSynchronizeModel(o){return!o.isTooLargeForSyncing()&&!o.isForSimpleWidget}const LIMIT_FIND_COUNT$1=999;class SearchParams{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;this.isRegex?e=isMultilineRegexSource(this.searchString):e=this.searchString.indexOf(`
- `)>=0;let t=null;try{t=createRegExp(this.searchString,this.isRegex,{matchCase:this.matchCase,wholeWord:!1,multiline:e,global:!0,unicode:!0})}catch{return null}if(!t)return null;let i=!this.isRegex&&!e;return i&&this.searchString.toLowerCase()!==this.searchString.toUpperCase()&&(i=this.matchCase),new SearchData(t,this.wordSeparators?getMapForWordSeparators(this.wordSeparators):null,i?this.searchString:null)}}function isMultilineRegexSource(o){if(!o||o.length===0)return!1;for(let e=0,t=o.length;e<t;e++){const i=o.charCodeAt(e);if(i===10)return!0;if(i===92){if(e++,e>=t)break;const n=o.charCodeAt(e);if(n===110||n===114||n===87)return!0}}return!1}function createFindMatch(o,e,t){if(!t)return new FindMatch(o,null);const i=[];for(let n=0,r=e.length;n<r;n++)i[n]=e[n];return new FindMatch(o,i)}class LineFeedCounter{constructor(e){const t=[];let i=0;for(let n=0,r=e.length;n<r;n++)e.charCodeAt(n)===10&&(t[i++]=n);this._lineFeedsOffsets=t}findLineFeedCountBeforeOffset(e){const t=this._lineFeedsOffsets;let i=0,n=t.length-1;if(n===-1||e<=t[0])return 0;for(;i<n;){const r=i+((n-i)/2>>0);t[r]>=e?n=r-1:t[r+1]>=e?(i=r,n=r):i=r+1}return i+1}}class TextModelSearch{static findMatches(e,t,i,n,r){const s=t.parseSearchRequest();return s?s.regex.multiline?this._doFindMatchesMultiline(e,i,new Searcher(s.wordSeparators,s.regex),n,r):this._doFindMatchesLineByLine(e,i,s,n,r):[]}static _getMultilineMatchRange(e,t,i,n,r,s){let a,l=0;n?(l=n.findLineFeedCountBeforeOffset(r),a=t+r+l):a=t+r;let d;if(n){const f=n.findLineFeedCountBeforeOffset(r+s.length)-l;d=a+s.length+f}else d=a+s.length;const c=e.getPositionAt(a),u=e.getPositionAt(d);return new Range$2(c.lineNumber,c.column,u.lineNumber,u.column)}static _doFindMatchesMultiline(e,t,i,n,r){const s=e.getOffsetAt(t.getStartPosition()),a=e.getValueInRange(t,1),l=e.getEOL()===`\r
- `?new LineFeedCounter(a):null,d=[];let c=0,u;for(i.reset(0);u=i.next(a);)if(d[c++]=createFindMatch(this._getMultilineMatchRange(e,s,a,l,u.index,u[0]),u,n),c>=r)return d;return d}static _doFindMatchesLineByLine(e,t,i,n,r){const s=[];let a=0;if(t.startLineNumber===t.endLineNumber){const d=e.getLineContent(t.startLineNumber).substring(t.startColumn-1,t.endColumn-1);return a=this._findMatchesInLine(i,d,t.startLineNumber,t.startColumn-1,a,s,n,r),s}const l=e.getLineContent(t.startLineNumber).substring(t.startColumn-1);a=this._findMatchesInLine(i,l,t.startLineNumber,t.startColumn-1,a,s,n,r);for(let d=t.startLineNumber+1;d<t.endLineNumber&&a<r;d++)a=this._findMatchesInLine(i,e.getLineContent(d),d,0,a,s,n,r);if(a<r){const d=e.getLineContent(t.endLineNumber).substring(0,t.endColumn-1);a=this._findMatchesInLine(i,d,t.endLineNumber,0,a,s,n,r)}return s}static _findMatchesInLine(e,t,i,n,r,s,a,l){const d=e.wordSeparators;if(!a&&e.simpleSearch){const g=e.simpleSearch,f=g.length,p=t.length;let m=-f;for(;(m=t.indexOf(g,m+f))!==-1;)if((!d||isValidMatch(d,t,p,m,f))&&(s[r++]=new FindMatch(new Range$2(i,m+1+n,i,m+1+f+n),null),r>=l))return r;return r}const c=new Searcher(e.wordSeparators,e.regex);let u;c.reset(0);do if(u=c.next(t),u&&(s[r++]=createFindMatch(new Range$2(i,u.index+1+n,i,u.index+1+u[0].length+n),u,a),r>=l))return r;while(u);return r}static findNextMatch(e,t,i,n){const r=t.parseSearchRequest();if(!r)return null;const s=new Searcher(r.wordSeparators,r.regex);return r.regex.multiline?this._doFindNextMatchMultiline(e,i,s,n):this._doFindNextMatchLineByLine(e,i,s,n)}static _doFindNextMatchMultiline(e,t,i,n){const r=new Position$1(t.lineNumber,1),s=e.getOffsetAt(r),a=e.getLineCount(),l=e.getValueInRange(new Range$2(r.lineNumber,r.column,a,e.getLineMaxColumn(a)),1),d=e.getEOL()===`\r
- `?new LineFeedCounter(l):null;i.reset(t.column-1);const c=i.next(l);return c?createFindMatch(this._getMultilineMatchRange(e,s,l,d,c.index,c[0]),c,n):t.lineNumber!==1||t.column!==1?this._doFindNextMatchMultiline(e,new Position$1(1,1),i,n):null}static _doFindNextMatchLineByLine(e,t,i,n){const r=e.getLineCount(),s=t.lineNumber,a=e.getLineContent(s),l=this._findFirstMatchInLine(i,a,s,t.column,n);if(l)return l;for(let d=1;d<=r;d++){const c=(s+d-1)%r,u=e.getLineContent(c+1),g=this._findFirstMatchInLine(i,u,c+1,1,n);if(g)return g}return null}static _findFirstMatchInLine(e,t,i,n,r){e.reset(n-1);const s=e.next(t);return s?createFindMatch(new Range$2(i,s.index+1,i,s.index+1+s[0].length),s,r):null}static findPreviousMatch(e,t,i,n){const r=t.parseSearchRequest();if(!r)return null;const s=new Searcher(r.wordSeparators,r.regex);return r.regex.multiline?this._doFindPreviousMatchMultiline(e,i,s,n):this._doFindPreviousMatchLineByLine(e,i,s,n)}static _doFindPreviousMatchMultiline(e,t,i,n){const r=this._doFindMatchesMultiline(e,new Range$2(1,1,t.lineNumber,t.column),i,n,10*LIMIT_FIND_COUNT$1);if(r.length>0)return r[r.length-1];const s=e.getLineCount();return t.lineNumber!==s||t.column!==e.getLineMaxColumn(s)?this._doFindPreviousMatchMultiline(e,new Position$1(s,e.getLineMaxColumn(s)),i,n):null}static _doFindPreviousMatchLineByLine(e,t,i,n){const r=e.getLineCount(),s=t.lineNumber,a=e.getLineContent(s).substring(0,t.column-1),l=this._findLastMatchInLine(i,a,s,n);if(l)return l;for(let d=1;d<=r;d++){const c=(r+s-d-1)%r,u=e.getLineContent(c+1),g=this._findLastMatchInLine(i,u,c+1,n);if(g)return g}return null}static _findLastMatchInLine(e,t,i,n){let r=null,s;for(e.reset(0);s=e.next(t);)r=createFindMatch(new Range$2(i,s.index+1,i,s.index+1+s[0].length),s,n);return r}}function leftIsWordBounday(o,e,t,i,n){if(i===0)return!0;const r=e.charCodeAt(i-1);if(o.get(r)!==0||r===13||r===10)return!0;if(n>0){const s=e.charCodeAt(i);if(o.get(s)!==0)return!0}return!1}function rightIsWordBounday(o,e,t,i,n){if(i+n===t)return!0;const r=e.charCodeAt(i+n);if(o.get(r)!==0||r===13||r===10)return!0;if(n>0){const s=e.charCodeAt(i+n-1);if(o.get(s)!==0)return!0}return!1}function isValidMatch(o,e,t,i,n){return leftIsWordBounday(o,e,t,i,n)&&rightIsWordBounday(o,e,t,i,n)}class Searcher{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||(i=this._searchRegex.exec(e),!i))return null;const n=i.index,r=i[0].length;if(n===this._prevMatchStartIndex&&r===this._prevMatchLength){if(r===0){getNextCodePoint(e,t,this._searchRegex.lastIndex)>65535?this._searchRegex.lastIndex+=2:this._searchRegex.lastIndex+=1;continue}return null}if(this._prevMatchStartIndex=n,this._prevMatchLength=r,!this._wordSeparators||isValidMatch(this._wordSeparators,e,t,n,r))return i}while(i);return null}}class UnicodeTextModelHighlighter{static computeUnicodeHighlights(e,t,i){const n=i?i.startLineNumber:1,r=i?i.endLineNumber:e.getLineCount(),s=new CodePointHighlighter(t),a=s.getCandidateCodePoints();let l;a==="allNonBasicAscii"?l=new RegExp("[^\\t\\n\\r\\x20-\\x7E]","g"):l=new RegExp(`${buildRegExpCharClassExpr(Array.from(a))}`,"g");const d=new Searcher(null,l),c=[];let u=!1,g,f=0,p=0,m=0;e:for(let b=n,_=r;b<=_;b++){const C=e.getLineContent(b),S=C.length;d.reset(0);do if(g=d.next(C),g){let y=g.index,E=g.index+g[0].length;if(y>0){const D=C.charCodeAt(y-1);isHighSurrogate(D)&&y--}if(E+1<S){const D=C.charCodeAt(E-1);isHighSurrogate(D)&&E++}const x=C.substring(y,E);let L=getWordAtText(y+1,DEFAULT_WORD_REGEXP,C,0);L&&L.endColumn<=y+1&&(L=null);const I=s.shouldHighlightNonBasicASCII(x,L?L.word:null);if(I!==0){if(I===3?f++:I===2?p++:I===1?m++:assertNever(),c.length>=1e3){u=!0;break e}c.push(new Range$2(b,y+1,b,E+1))}}while(g)}return{ranges:c,hasMore:u,ambiguousCharacterCount:f,invisibleCharacterCount:p,nonBasicAsciiCharacterCount:m}}static computeUnicodeHighlightReason(e,t){const i=new CodePointHighlighter(t);switch(i.shouldHighlightNonBasicASCII(e,null)){case 0:return null;case 2:return{kind:1};case 3:{const r=e.codePointAt(0),s=i.ambiguousCharacters.getPrimaryConfusable(r),a=AmbiguousCharacters.getLocales().filter(l=>!AmbiguousCharacters.getInstance(new Set([...t.allowedLocales,l])).isAmbiguous(r));return{kind:0,confusableWith:String.fromCodePoint(s),notAmbiguousInLocales:a}}case 1:return{kind:2}}}}function buildRegExpCharClassExpr(o,e){return`[${escapeRegExpCharacters(o.map(i=>String.fromCodePoint(i)).join(""))}]`}class CodePointHighlighter{constructor(e){this.options=e,this.allowedCodePoints=new Set(e.allowedCodePoints),this.ambiguousCharacters=AmbiguousCharacters.getInstance(new Set(e.allowedLocales))}getCandidateCodePoints(){if(this.options.nonBasicASCII)return"allNonBasicAscii";const e=new Set;if(this.options.invisibleCharacters)for(const t of InvisibleCharacters.codePoints)isAllowedInvisibleCharacter(String.fromCodePoint(t))||e.add(t);if(this.options.ambiguousCharacters)for(const t of this.ambiguousCharacters.getConfusableCodePoints())e.add(t);for(const t of this.allowedCodePoints)e.delete(t);return e}shouldHighlightNonBasicASCII(e,t){const i=e.codePointAt(0);if(this.allowedCodePoints.has(i))return 0;if(this.options.nonBasicASCII)return 1;let n=!1,r=!1;if(t)for(const s of t){const a=s.codePointAt(0),l=isBasicASCII(s);n=n||l,!l&&!this.ambiguousCharacters.isAmbiguous(a)&&!InvisibleCharacters.isInvisibleCharacter(a)&&(r=!0)}return!n&&r?0:this.options.invisibleCharacters&&!isAllowedInvisibleCharacter(e)&&InvisibleCharacters.isInvisibleCharacter(i)?2:this.options.ambiguousCharacters&&this.ambiguousCharacters.isAmbiguous(i)?3:0}}function isAllowedInvisibleCharacter(o){return o===" "||o===`
- `||o===" "}class LinesDiff{constructor(e,t,i){this.changes=e,this.moves=t,this.hitTimeout=i}}class MovedText{constructor(e,t){this.lineRangeMapping=e,this.changes=t}}class OffsetRange{static addRange(e,t){let i=0;for(;i<t.length&&t[i].endExclusive<e.start;)i++;let n=i;for(;n<t.length&&t[n].start<=e.endExclusive;)n++;if(i===n)t.splice(i,0,e);else{const r=Math.min(e.start,t[i].start),s=Math.max(e.endExclusive,t[n-1].endExclusive);t.splice(i,n-i,new OffsetRange(r,s))}}static tryCreate(e,t){if(!(e>t))return new OffsetRange(e,t)}static ofLength(e){return new OffsetRange(0,e)}constructor(e,t){if(this.start=e,this.endExclusive=t,e>t)throw new BugIndicatingError(`Invalid range: ${this.toString()}`)}get isEmpty(){return this.start===this.endExclusive}delta(e){return new OffsetRange(this.start+e,this.endExclusive+e)}deltaStart(e){return new OffsetRange(this.start+e,this.endExclusive)}deltaEnd(e){return new OffsetRange(this.start,this.endExclusive+e)}get length(){return this.endExclusive-this.start}toString(){return`[${this.start}, ${this.endExclusive})`}equals(e){return this.start===e.start&&this.endExclusive===e.endExclusive}containsRange(e){return this.start<=e.start&&e.endExclusive<=this.endExclusive}contains(e){return this.start<=e&&e<this.endExclusive}join(e){return new OffsetRange(Math.min(this.start,e.start),Math.max(this.endExclusive,e.endExclusive))}intersect(e){const t=Math.max(this.start,e.start),i=Math.min(this.endExclusive,e.endExclusive);if(t<=i)return new OffsetRange(t,i)}slice(e){return e.slice(this.start,this.endExclusive)}clip(e){if(this.isEmpty)throw new BugIndicatingError(`Invalid clipping range: ${this.toString()}`);return Math.max(this.start,Math.min(this.endExclusive-1,e))}clipCyclic(e){if(this.isEmpty)throw new BugIndicatingError(`Invalid clipping range: ${this.toString()}`);return e<this.start?this.endExclusive-(this.start-e)%this.length:e>=this.endExclusive?this.start+(e-this.start)%this.length:e}forEach(e){for(let t=this.start;t<this.endExclusive;t++)e(t)}}class OffsetRangeSet{constructor(){this._sortedRanges=[]}addRange(e){let t=0;for(;t<this._sortedRanges.length&&this._sortedRanges[t].endExclusive<e.start;)t++;let i=t;for(;i<this._sortedRanges.length&&this._sortedRanges[i].start<=e.endExclusive;)i++;if(t===i)this._sortedRanges.splice(t,0,e);else{const n=Math.min(e.start,this._sortedRanges[t].start),r=Math.max(e.endExclusive,this._sortedRanges[i-1].endExclusive);this._sortedRanges.splice(t,i-t,new OffsetRange(n,r))}}toString(){return this._sortedRanges.map(e=>e.toString()).join(", ")}intersectsStrict(e){let t=0;for(;t<this._sortedRanges.length&&this._sortedRanges[t].endExclusive<=e.start;)t++;return t<this._sortedRanges.length&&this._sortedRanges[t].start<e.endExclusive}intersectWithRange(e){const t=new OffsetRangeSet;for(const i of this._sortedRanges){const n=i.intersect(e);n&&t.addRange(n)}return t}intersectWithRangeLength(e){return this.intersectWithRange(e).length}get length(){return this._sortedRanges.reduce((e,t)=>e+t.length,0)}}function findLast(o,e,t){const i=findLastIdx(o,e);if(i!==-1)return o[i]}function findLastIdx(o,e,t=o.length-1){for(let i=t;i>=0;i--){const n=o[i];if(e(n))return i}return-1}function findLastMonotonous(o,e){const t=findLastIdxMonotonous(o,e);return t===-1?void 0:o[t]}function findLastIdxMonotonous(o,e,t=0,i=o.length){let n=t,r=i;for(;n<r;){const s=Math.floor((n+r)/2);e(o[s])?n=s+1:r=s}return n-1}function findFirstMonotonous(o,e){const t=findFirstIdxMonotonousOrArrLen(o,e);return t===o.length?void 0:o[t]}function findFirstIdxMonotonousOrArrLen(o,e,t=0,i=o.length){let n=t,r=i;for(;n<r;){const s=Math.floor((n+r)/2);e(o[s])?r=s:n=s+1}return n}class MonotonousArray{constructor(e){this._array=e,this._findLastMonotonousLastIdx=0}findLastMonotonous(e){if(MonotonousArray.assertInvariants){if(this._prevFindLastPredicate){for(const i of this._array)if(this._prevFindLastPredicate(i)&&!e(i))throw new Error("MonotonousArray: current predicate must be weaker than (or equal to) the previous predicate.")}this._prevFindLastPredicate=e}const t=findLastIdxMonotonous(this._array,e,this._findLastMonotonousLastIdx);return this._findLastMonotonousLastIdx=t+1,t===-1?void 0:this._array[t]}}MonotonousArray.assertInvariants=!1;function findFirstMaxBy(o,e){if(o.length===0)return;let t=o[0];for(let i=1;i<o.length;i++){const n=o[i];e(n,t)>0&&(t=n)}return t}function findLastMaxBy(o,e){if(o.length===0)return;let t=o[0];for(let i=1;i<o.length;i++){const n=o[i];e(n,t)>=0&&(t=n)}return t}function findFirstMinBy(o,e){return findFirstMaxBy(o,(t,i)=>-e(t,i))}function findMaxIdxBy(o,e){if(o.length===0)return-1;let t=0;for(let i=1;i<o.length;i++){const n=o[i];e(n,o[t])>0&&(t=i)}return t}function mapFindFirst(o,e){for(const t of o){const i=e(t);if(i!==void 0)return i}}let LineRange$1=class Je{static fromRange(e){return new Je(e.startLineNumber,e.endLineNumber)}static joinMany(e){if(e.length===0)return[];let t=new LineRangeSet(e[0].slice());for(let i=1;i<e.length;i++)t=t.getUnion(new LineRangeSet(e[i].slice()));return t.ranges}static ofLength(e,t){return new Je(e,e+t)}static deserialize(e){return new Je(e[0],e[1])}constructor(e,t){if(e>t)throw new BugIndicatingError(`startLineNumber ${e} cannot be after endLineNumberExclusive ${t}`);this.startLineNumber=e,this.endLineNumberExclusive=t}contains(e){return this.startLineNumber<=e&&e<this.endLineNumberExclusive}get isEmpty(){return this.startLineNumber===this.endLineNumberExclusive}delta(e){return new Je(this.startLineNumber+e,this.endLineNumberExclusive+e)}deltaLength(e){return new Je(this.startLineNumber,this.endLineNumberExclusive+e)}get length(){return this.endLineNumberExclusive-this.startLineNumber}join(e){return new Je(Math.min(this.startLineNumber,e.startLineNumber),Math.max(this.endLineNumberExclusive,e.endLineNumberExclusive))}toString(){return`[${this.startLineNumber},${this.endLineNumberExclusive})`}intersect(e){const t=Math.max(this.startLineNumber,e.startLineNumber),i=Math.min(this.endLineNumberExclusive,e.endLineNumberExclusive);if(t<=i)return new Je(t,i)}intersectsStrict(e){return this.startLineNumber<e.endLineNumberExclusive&&e.startLineNumber<this.endLineNumberExclusive}overlapOrTouch(e){return this.startLineNumber<=e.endLineNumberExclusive&&e.startLineNumber<=this.endLineNumberExclusive}equals(e){return this.startLineNumber===e.startLineNumber&&this.endLineNumberExclusive===e.endLineNumberExclusive}toInclusiveRange(){return this.isEmpty?null:new Range$2(this.startLineNumber,1,this.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER)}toExclusiveRange(){return new Range$2(this.startLineNumber,1,this.endLineNumberExclusive,1)}mapToLineArray(e){const t=[];for(let i=this.startLineNumber;i<this.endLineNumberExclusive;i++)t.push(e(i));return t}forEach(e){for(let t=this.startLineNumber;t<this.endLineNumberExclusive;t++)e(t)}serialize(){return[this.startLineNumber,this.endLineNumberExclusive]}includes(e){return this.startLineNumber<=e&&e<this.endLineNumberExclusive}toOffsetRange(){return new OffsetRange(this.startLineNumber-1,this.endLineNumberExclusive-1)}};class LineRangeSet{constructor(e=[]){this._normalizedRanges=e}get ranges(){return this._normalizedRanges}addRange(e){if(e.length===0)return;const t=findFirstIdxMonotonousOrArrLen(this._normalizedRanges,n=>n.endLineNumberExclusive>=e.startLineNumber),i=findLastIdxMonotonous(this._normalizedRanges,n=>n.startLineNumber<=e.endLineNumberExclusive)+1;if(t===i)this._normalizedRanges.splice(t,0,e);else if(t===i-1){const n=this._normalizedRanges[t];this._normalizedRanges[t]=n.join(e)}else{const n=this._normalizedRanges[t].join(this._normalizedRanges[i-1]).join(e);this._normalizedRanges.splice(t,i-t,n)}}contains(e){const t=findLastMonotonous(this._normalizedRanges,i=>i.startLineNumber<=e);return!!t&&t.endLineNumberExclusive>e}getUnion(e){if(this._normalizedRanges.length===0)return e;if(e._normalizedRanges.length===0)return this;const t=[];let i=0,n=0,r=null;for(;i<this._normalizedRanges.length||n<e._normalizedRanges.length;){let s=null;if(i<this._normalizedRanges.length&&n<e._normalizedRanges.length){const a=this._normalizedRanges[i],l=e._normalizedRanges[n];a.startLineNumber<l.startLineNumber?(s=a,i++):(s=l,n++)}else i<this._normalizedRanges.length?(s=this._normalizedRanges[i],i++):(s=e._normalizedRanges[n],n++);r===null?r=s:r.endLineNumberExclusive>=s.startLineNumber?r=new LineRange$1(r.startLineNumber,Math.max(r.endLineNumberExclusive,s.endLineNumberExclusive)):(t.push(r),r=s)}return r!==null&&t.push(r),new LineRangeSet(t)}subtractFrom(e){const t=findFirstIdxMonotonousOrArrLen(this._normalizedRanges,s=>s.endLineNumberExclusive>=e.startLineNumber),i=findLastIdxMonotonous(this._normalizedRanges,s=>s.startLineNumber<=e.endLineNumberExclusive)+1;if(t===i)return new LineRangeSet([e]);const n=[];let r=e.startLineNumber;for(let s=t;s<i;s++){const a=this._normalizedRanges[s];a.startLineNumber>r&&n.push(new LineRange$1(r,a.startLineNumber)),r=a.endLineNumberExclusive}return r<e.endLineNumberExclusive&&n.push(new LineRange$1(r,e.endLineNumberExclusive)),new LineRangeSet(n)}toString(){return this._normalizedRanges.map(e=>e.toString()).join(", ")}getIntersection(e){const t=[];let i=0,n=0;for(;i<this._normalizedRanges.length&&n<e._normalizedRanges.length;){const r=this._normalizedRanges[i],s=e._normalizedRanges[n],a=r.intersect(s);a&&!a.isEmpty&&t.push(a),r.endLineNumberExclusive<s.endLineNumberExclusive?i++:n++}return new LineRangeSet(t)}getWithDelta(e){return new LineRangeSet(this._normalizedRanges.map(t=>t.delta(e)))}}class LineRangeMapping{static inverse(e,t,i){const n=[];let r=1,s=1;for(const l of e){const d=new DetailedLineRangeMapping(new LineRange$1(r,l.original.startLineNumber),new LineRange$1(s,l.modified.startLineNumber),void 0);d.modified.isEmpty||n.push(d),r=l.original.endLineNumberExclusive,s=l.modified.endLineNumberExclusive}const a=new DetailedLineRangeMapping(new LineRange$1(r,t+1),new LineRange$1(s,i+1),void 0);return a.modified.isEmpty||n.push(a),n}constructor(e,t){this.original=e,this.modified=t}toString(){return`{${this.original.toString()}->${this.modified.toString()}}`}flip(){return new LineRangeMapping(this.modified,this.original)}join(e){return new LineRangeMapping(this.original.join(e.original),this.modified.join(e.modified))}}class DetailedLineRangeMapping extends LineRangeMapping{constructor(e,t,i){super(e,t),this.innerChanges=i}flip(){var e;return new DetailedLineRangeMapping(this.modified,this.original,(e=this.innerChanges)===null||e===void 0?void 0:e.map(t=>t.flip()))}}class RangeMapping{constructor(e,t){this.originalRange=e,this.modifiedRange=t}toString(){return`{${this.originalRange.toString()}->${this.modifiedRange.toString()}}`}flip(){return new RangeMapping(this.modifiedRange,this.originalRange)}}const MINIMUM_MATCHING_CHARACTER_LENGTH=3;class LegacyLinesDiffComputer{computeDiff(e,t,i){var n;const s=new DiffComputer(e,t,{maxComputationTime:i.maxComputationTimeMs,shouldIgnoreTrimWhitespace:i.ignoreTrimWhitespace,shouldComputeCharChanges:!0,shouldMakePrettyDiff:!0,shouldPostProcessCharChanges:!0}).computeDiff(),a=[];let l=null;for(const d of s.changes){let c;d.originalEndLineNumber===0?c=new LineRange$1(d.originalStartLineNumber+1,d.originalStartLineNumber+1):c=new LineRange$1(d.originalStartLineNumber,d.originalEndLineNumber+1);let u;d.modifiedEndLineNumber===0?u=new LineRange$1(d.modifiedStartLineNumber+1,d.modifiedStartLineNumber+1):u=new LineRange$1(d.modifiedStartLineNumber,d.modifiedEndLineNumber+1);let g=new DetailedLineRangeMapping(c,u,(n=d.charChanges)===null||n===void 0?void 0:n.map(f=>new RangeMapping(new Range$2(f.originalStartLineNumber,f.originalStartColumn,f.originalEndLineNumber,f.originalEndColumn),new Range$2(f.modifiedStartLineNumber,f.modifiedStartColumn,f.modifiedEndLineNumber,f.modifiedEndColumn))));l&&(l.modified.endLineNumberExclusive===g.modified.startLineNumber||l.original.endLineNumberExclusive===g.original.startLineNumber)&&(g=new DetailedLineRangeMapping(l.original.join(g.original),l.modified.join(g.modified),l.innerChanges&&g.innerChanges?l.innerChanges.concat(g.innerChanges):void 0),a.pop()),a.push(g),l=g}return assertFn(()=>checkAdjacentItems(a,(d,c)=>c.original.startLineNumber-d.original.endLineNumberExclusive===c.modified.startLineNumber-d.modified.endLineNumberExclusive&&d.original.endLineNumberExclusive<c.original.startLineNumber&&d.modified.endLineNumberExclusive<c.modified.startLineNumber)),new LinesDiff(a,[],s.quitEarly)}}function computeDiff(o,e,t,i){return new LcsDiff(o,e,t).ComputeDiff(i)}let LineSequence$1=class{constructor(e){const t=[],i=[];for(let n=0,r=e.length;n<r;n++)t[n]=getFirstNonBlankColumn(e[n],1),i[n]=getLastNonBlankColumn(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=[],r=[],s=[];let a=0;for(let l=t;l<=i;l++){const d=this.lines[l],c=e?this._startColumns[l]:1,u=e?this._endColumns[l]:d.length+1;for(let g=c;g<u;g++)n[a]=d.charCodeAt(g-1),r[a]=l+1,s[a]=g,a++;!e&&l<i&&(n[a]=10,r[a]=l+1,s[a]=d.length+1,a++)}return new CharSequence(n,r,s)}};class CharSequence{constructor(e,t,i){this._charCodes=e,this._lineNumbers=t,this._columns=i}toString(){return"["+this._charCodes.map((e,t)=>(e===10?"\\n":String.fromCharCode(e))+`-(${this._lineNumbers[t]},${this._columns[t]})`).join(", ")+"]"}_assertIndex(e,t){if(e<0||e>=t.length)throw new Error("Illegal index")}getElements(){return this._charCodes}getStartLineNumber(e){return e>0&&e===this._lineNumbers.length?this.getEndLineNumber(e-1):(this._assertIndex(e,this._lineNumbers),this._lineNumbers[e])}getEndLineNumber(e){return e===-1?this.getStartLineNumber(e+1):(this._assertIndex(e,this._lineNumbers),this._charCodes[e]===10?this._lineNumbers[e]+1:this._lineNumbers[e])}getStartColumn(e){return e>0&&e===this._columns.length?this.getEndColumn(e-1):(this._assertIndex(e,this._columns),this._columns[e])}getEndColumn(e){return e===-1?this.getStartColumn(e+1):(this._assertIndex(e,this._columns),this._charCodes[e]===10?1:this._columns[e]+1)}}class CharChange{constructor(e,t,i,n,r,s,a,l){this.originalStartLineNumber=e,this.originalStartColumn=t,this.originalEndLineNumber=i,this.originalEndColumn=n,this.modifiedStartLineNumber=r,this.modifiedStartColumn=s,this.modifiedEndLineNumber=a,this.modifiedEndColumn=l}static createFromDiffChange(e,t,i){const n=t.getStartLineNumber(e.originalStart),r=t.getStartColumn(e.originalStart),s=t.getEndLineNumber(e.originalStart+e.originalLength-1),a=t.getEndColumn(e.originalStart+e.originalLength-1),l=i.getStartLineNumber(e.modifiedStart),d=i.getStartColumn(e.modifiedStart),c=i.getEndLineNumber(e.modifiedStart+e.modifiedLength-1),u=i.getEndColumn(e.modifiedStart+e.modifiedLength-1);return new CharChange(n,r,s,a,l,d,c,u)}}function postProcessCharChanges(o){if(o.length<=1)return o;const e=[o[0]];let t=e[0];for(let i=1,n=o.length;i<n;i++){const r=o[i],s=r.originalStart-(t.originalStart+t.originalLength),a=r.modifiedStart-(t.modifiedStart+t.modifiedLength);Math.min(s,a)<MINIMUM_MATCHING_CHARACTER_LENGTH?(t.originalLength=r.originalStart+r.originalLength-t.originalStart,t.modifiedLength=r.modifiedStart+r.modifiedLength-t.modifiedStart):(e.push(r),t=r)}return e}class LineChange{constructor(e,t,i,n,r){this.originalStartLineNumber=e,this.originalEndLineNumber=t,this.modifiedStartLineNumber=i,this.modifiedEndLineNumber=n,this.charChanges=r}static createFromDiffResult(e,t,i,n,r,s,a){let l,d,c,u,g;if(t.originalLength===0?(l=i.getStartLineNumber(t.originalStart)-1,d=0):(l=i.getStartLineNumber(t.originalStart),d=i.getEndLineNumber(t.originalStart+t.originalLength-1)),t.modifiedLength===0?(c=n.getStartLineNumber(t.modifiedStart)-1,u=0):(c=n.getStartLineNumber(t.modifiedStart),u=n.getEndLineNumber(t.modifiedStart+t.modifiedLength-1)),s&&t.originalLength>0&&t.originalLength<20&&t.modifiedLength>0&&t.modifiedLength<20&&r()){const f=i.createCharSequence(e,t.originalStart,t.originalStart+t.originalLength-1),p=n.createCharSequence(e,t.modifiedStart,t.modifiedStart+t.modifiedLength-1);if(f.getElements().length>0&&p.getElements().length>0){let m=computeDiff(f,p,r,!0).changes;a&&(m=postProcessCharChanges(m)),g=[];for(let b=0,_=m.length;b<_;b++)g.push(CharChange.createFromDiffChange(m[b],f,p))}}return new LineChange(l,d,c,u,g)}}class DiffComputer{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 LineSequence$1(e),this.modified=new LineSequence$1(t),this.continueLineDiff=createContinueProcessingPredicate(i.maxComputationTime),this.continueCharDiff=createContinueProcessingPredicate(i.maxComputationTime===0?0:Math.min(i.maxComputationTime,5e3))}computeDiff(){if(this.original.lines.length===1&&this.original.lines[0].length===0)return this.modified.lines.length===1&&this.modified.lines[0].length===0?{quitEarly:!1,changes:[]}:{quitEarly:!1,changes:[{originalStartLineNumber:1,originalEndLineNumber:1,modifiedStartLineNumber:1,modifiedEndLineNumber:this.modified.lines.length,charChanges:void 0}]};if(this.modified.lines.length===1&&this.modified.lines[0].length===0)return{quitEarly:!1,changes:[{originalStartLineNumber:1,originalEndLineNumber:this.original.lines.length,modifiedStartLineNumber:1,modifiedEndLineNumber:1,charChanges:void 0}]};const e=computeDiff(this.original,this.modified,this.continueLineDiff,this.shouldMakePrettyDiff),t=e.changes,i=e.quitEarly;if(this.shouldIgnoreTrimWhitespace){const a=[];for(let l=0,d=t.length;l<d;l++)a.push(LineChange.createFromDiffResult(this.shouldIgnoreTrimWhitespace,t[l],this.original,this.modified,this.continueCharDiff,this.shouldComputeCharChanges,this.shouldPostProcessCharChanges));return{quitEarly:i,changes:a}}const n=[];let r=0,s=0;for(let a=-1,l=t.length;a<l;a++){const d=a+1<l?t[a+1]:null,c=d?d.originalStart:this.originalLines.length,u=d?d.modifiedStart:this.modifiedLines.length;for(;r<c&&s<u;){const g=this.originalLines[r],f=this.modifiedLines[s];if(g!==f){{let p=getFirstNonBlankColumn(g,1),m=getFirstNonBlankColumn(f,1);for(;p>1&&m>1;){const b=g.charCodeAt(p-2),_=f.charCodeAt(m-2);if(b!==_)break;p--,m--}(p>1||m>1)&&this._pushTrimWhitespaceCharChange(n,r+1,1,p,s+1,1,m)}{let p=getLastNonBlankColumn(g,1),m=getLastNonBlankColumn(f,1);const b=g.length+1,_=f.length+1;for(;p<b&&m<_;){const C=g.charCodeAt(p-1),S=g.charCodeAt(m-1);if(C!==S)break;p++,m++}(p<b||m<_)&&this._pushTrimWhitespaceCharChange(n,r+1,p,b,s+1,m,_)}}r++,s++}d&&(n.push(LineChange.createFromDiffResult(this.shouldIgnoreTrimWhitespace,d,this.original,this.modified,this.continueCharDiff,this.shouldComputeCharChanges,this.shouldPostProcessCharChanges)),r+=d.originalLength,s+=d.modifiedLength)}return{quitEarly:i,changes:n}}_pushTrimWhitespaceCharChange(e,t,i,n,r,s,a){if(this._mergeTrimWhitespaceCharChange(e,t,i,n,r,s,a))return;let l;this.shouldComputeCharChanges&&(l=[new CharChange(t,i,t,n,r,s,r,a)]),e.push(new LineChange(t,t,r,r,l))}_mergeTrimWhitespaceCharChange(e,t,i,n,r,s,a){const l=e.length;if(l===0)return!1;const d=e[l-1];return d.originalEndLineNumber===0||d.modifiedEndLineNumber===0?!1:d.originalEndLineNumber===t&&d.modifiedEndLineNumber===r?(this.shouldComputeCharChanges&&d.charChanges&&d.charChanges.push(new CharChange(t,i,t,n,r,s,r,a)),!0):d.originalEndLineNumber+1===t&&d.modifiedEndLineNumber+1===r?(d.originalEndLineNumber=t,d.modifiedEndLineNumber=r,this.shouldComputeCharChanges&&d.charChanges&&d.charChanges.push(new CharChange(t,i,t,n,r,s,r,a)),!0):!1}}function getFirstNonBlankColumn(o,e){const t=firstNonWhitespaceIndex(o);return t===-1?e:t+1}function getLastNonBlankColumn(o,e){const t=lastNonWhitespaceIndex(o);return t===-1?e:t+2}function createContinueProcessingPredicate(o){if(o===0)return()=>!0;const e=Date.now();return()=>Date.now()-e<o}class DiffAlgorithmResult{static trivial(e,t){return new DiffAlgorithmResult([new SequenceDiff(OffsetRange.ofLength(e.length),OffsetRange.ofLength(t.length))],!1)}static trivialTimedOut(e,t){return new DiffAlgorithmResult([new SequenceDiff(OffsetRange.ofLength(e.length),OffsetRange.ofLength(t.length))],!0)}constructor(e,t){this.diffs=e,this.hitTimeout=t}}class SequenceDiff{static invert(e,t){const i=[];return forEachAdjacent(e,(n,r)=>{i.push(SequenceDiff.fromOffsetPairs(n?n.getEndExclusives():OffsetPair.zero,r?r.getStarts():new OffsetPair(t,(n?n.seq2Range.endExclusive-n.seq1Range.endExclusive:0)+t)))}),i}static fromOffsetPairs(e,t){return new SequenceDiff(new OffsetRange(e.offset1,t.offset1),new OffsetRange(e.offset2,t.offset2))}constructor(e,t){this.seq1Range=e,this.seq2Range=t}swap(){return new SequenceDiff(this.seq2Range,this.seq1Range)}toString(){return`${this.seq1Range} <-> ${this.seq2Range}`}join(e){return new SequenceDiff(this.seq1Range.join(e.seq1Range),this.seq2Range.join(e.seq2Range))}delta(e){return e===0?this:new SequenceDiff(this.seq1Range.delta(e),this.seq2Range.delta(e))}deltaStart(e){return e===0?this:new SequenceDiff(this.seq1Range.deltaStart(e),this.seq2Range.deltaStart(e))}deltaEnd(e){return e===0?this:new SequenceDiff(this.seq1Range.deltaEnd(e),this.seq2Range.deltaEnd(e))}intersect(e){const t=this.seq1Range.intersect(e.seq1Range),i=this.seq2Range.intersect(e.seq2Range);if(!(!t||!i))return new SequenceDiff(t,i)}getStarts(){return new OffsetPair(this.seq1Range.start,this.seq2Range.start)}getEndExclusives(){return new OffsetPair(this.seq1Range.endExclusive,this.seq2Range.endExclusive)}}class OffsetPair{constructor(e,t){this.offset1=e,this.offset2=t}toString(){return`${this.offset1} <-> ${this.offset2}`}}OffsetPair.zero=new OffsetPair(0,0);OffsetPair.max=new OffsetPair(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER);class InfiniteTimeout{isValid(){return!0}}InfiniteTimeout.instance=new InfiniteTimeout;class DateTimeout{constructor(e){if(this.timeout=e,this.startTime=Date.now(),this.valid=!0,e<=0)throw new BugIndicatingError("timeout must be positive")}isValid(){if(!(Date.now()-this.startTime<this.timeout)&&this.valid){this.valid=!1;debugger}return this.valid}}class Array2D{constructor(e,t){this.width=e,this.height=t,this.array=[],this.array=new Array(e*t)}get(e,t){return this.array[e+t*this.width]}set(e,t,i){this.array[e+t*this.width]=i}}function isSpace(o){return o===32||o===9}class LineRangeFragment{static getKey(e){let t=this.chrKeys.get(e);return t===void 0&&(t=this.chrKeys.size,this.chrKeys.set(e,t)),t}constructor(e,t,i){this.range=e,this.lines=t,this.source=i,this.histogram=[];let n=0;for(let r=e.startLineNumber-1;r<e.endLineNumberExclusive-1;r++){const s=t[r];for(let l=0;l<s.length;l++){n++;const d=s[l],c=LineRangeFragment.getKey(d);this.histogram[c]=(this.histogram[c]||0)+1}n++;const a=LineRangeFragment.getKey(`
- `);this.histogram[a]=(this.histogram[a]||0)+1}this.totalCount=n}computeSimilarity(e){var t,i;let n=0;const r=Math.max(this.histogram.length,e.histogram.length);for(let s=0;s<r;s++)n+=Math.abs(((t=this.histogram[s])!==null&&t!==void 0?t:0)-((i=e.histogram[s])!==null&&i!==void 0?i:0));return 1-n/(this.totalCount+e.totalCount)}}LineRangeFragment.chrKeys=new Map;class DynamicProgrammingDiffing{compute(e,t,i=InfiniteTimeout.instance,n){if(e.length===0||t.length===0)return DiffAlgorithmResult.trivial(e,t);const r=new Array2D(e.length,t.length),s=new Array2D(e.length,t.length),a=new Array2D(e.length,t.length);for(let p=0;p<e.length;p++)for(let m=0;m<t.length;m++){if(!i.isValid())return DiffAlgorithmResult.trivialTimedOut(e,t);const b=p===0?0:r.get(p-1,m),_=m===0?0:r.get(p,m-1);let C;e.getElement(p)===t.getElement(m)?(p===0||m===0?C=0:C=r.get(p-1,m-1),p>0&&m>0&&s.get(p-1,m-1)===3&&(C+=a.get(p-1,m-1)),C+=n?n(p,m):1):C=-1;const S=Math.max(b,_,C);if(S===C){const y=p>0&&m>0?a.get(p-1,m-1):0;a.set(p,m,y+1),s.set(p,m,3)}else S===b?(a.set(p,m,0),s.set(p,m,1)):S===_&&(a.set(p,m,0),s.set(p,m,2));r.set(p,m,S)}const l=[];let d=e.length,c=t.length;function u(p,m){(p+1!==d||m+1!==c)&&l.push(new SequenceDiff(new OffsetRange(p+1,d),new OffsetRange(m+1,c))),d=p,c=m}let g=e.length-1,f=t.length-1;for(;g>=0&&f>=0;)s.get(g,f)===3?(u(g,f),g--,f--):s.get(g,f)===1?g--:f--;return u(-1,-1),l.reverse(),new DiffAlgorithmResult(l,!1)}}class MyersDiffAlgorithm{compute(e,t,i=InfiniteTimeout.instance){if(e.length===0||t.length===0)return DiffAlgorithmResult.trivial(e,t);const n=e,r=t;function s(m,b){for(;m<n.length&&b<r.length&&n.getElement(m)===r.getElement(b);)m++,b++;return m}let a=0;const l=new FastInt32Array;l.set(0,s(0,0));const d=new FastArrayNegativeIndices;d.set(0,l.get(0)===0?null:new SnakePath(null,0,0,l.get(0)));let c=0;e:for(;;){if(a++,!i.isValid())return DiffAlgorithmResult.trivialTimedOut(n,r);const m=-Math.min(a,r.length+a%2),b=Math.min(a,n.length+a%2);for(c=m;c<=b;c+=2){const _=c===b?-1:l.get(c+1),C=c===m?-1:l.get(c-1)+1,S=Math.min(Math.max(_,C),n.length),y=S-c;if(S>n.length||y>r.length)continue;const E=s(S,y);l.set(c,E);const x=S===_?d.get(c+1):d.get(c-1);if(d.set(c,E!==S?new SnakePath(x,S,y,E-S):x),l.get(c)===n.length&&l.get(c)-c===r.length)break e}}let u=d.get(c);const g=[];let f=n.length,p=r.length;for(;;){const m=u?u.x+u.length:0,b=u?u.y+u.length:0;if((m!==f||b!==p)&&g.push(new SequenceDiff(new OffsetRange(m,f),new OffsetRange(b,p))),!u)break;f=u.x,p=u.y,u=u.prev}return g.reverse(),new DiffAlgorithmResult(g,!1)}}class SnakePath{constructor(e,t,i,n){this.prev=e,this.x=t,this.y=i,this.length=n}}class FastInt32Array{constructor(){this.positiveArr=new Int32Array(10),this.negativeArr=new Int32Array(10)}get(e){return e<0?(e=-e-1,this.negativeArr[e]):this.positiveArr[e]}set(e,t){if(e<0){if(e=-e-1,e>=this.negativeArr.length){const i=this.negativeArr;this.negativeArr=new Int32Array(i.length*2),this.negativeArr.set(i)}this.negativeArr[e]=t}else{if(e>=this.positiveArr.length){const i=this.positiveArr;this.positiveArr=new Int32Array(i.length*2),this.positiveArr.set(i)}this.positiveArr[e]=t}}}class FastArrayNegativeIndices{constructor(){this.positiveArr=[],this.negativeArr=[]}get(e){return e<0?(e=-e-1,this.negativeArr[e]):this.positiveArr[e]}set(e,t){e<0?(e=-e-1,this.negativeArr[e]=t):this.positiveArr[e]=t}}var _a$2,_b$1;class ResourceMapEntry{constructor(e,t){this.uri=e,this.value=t}}function isEntries(o){return Array.isArray(o)}class ResourceMap{constructor(e,t){if(this[_a$2]="ResourceMap",e instanceof ResourceMap)this.map=new Map(e.map),this.toKey=t??ResourceMap.defaultToKey;else if(isEntries(e)){this.map=new Map,this.toKey=t??ResourceMap.defaultToKey;for(const[i,n]of e)this.set(i,n)}else this.map=new Map,this.toKey=e??ResourceMap.defaultToKey}set(e,t){return this.map.set(this.toKey(e),new ResourceMapEntry(e,t)),this}get(e){var t;return(t=this.map.get(this.toKey(e)))===null||t===void 0?void 0:t.value}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){typeof t<"u"&&(e=e.bind(t));for(const[i,n]of this.map)e(n.value,n.uri,this)}*values(){for(const e of this.map.values())yield e.value}*keys(){for(const e of this.map.values())yield e.uri}*entries(){for(const e of this.map.values())yield[e.uri,e.value]}*[(_a$2=Symbol.toStringTag,Symbol.iterator)](){for(const[,e]of this.map)yield[e.uri,e.value]}}ResourceMap.defaultToKey=o=>o.toString();class LinkedMap{constructor(){this[_b$1]="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(e=this._head)===null||e===void 0?void 0:e.value}get last(){var e;return(e=this._tail)===null||e===void 0?void 0:e.value}has(e){return this._map.has(e)}get(e,t=0){const i=this._map.get(e);if(i)return t!==0&&this.touch(i,t),i.value}set(e,t,i=0){let n=this._map.get(e);if(n)n.value=t,i!==0&&this.touch(n,i);else{switch(n={key:e,value:t,next:void 0,previous:void 0},i){case 0:this.addItemLast(n);break;case 1:this.addItemFirst(n);break;case 2:this.addItemLast(n);break;default:this.addItemLast(n);break}this._map.set(e,n),this._size++}return 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](){return n},next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(i){const r={value:i.key,done:!1};return i=i.next,r}else return{value:void 0,done:!0}}};return n}values(){const e=this,t=this._state;let i=this._head;const n={[Symbol.iterator](){return n},next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(i){const r={value:i.value,done:!1};return i=i.next,r}else return{value:void 0,done:!0}}};return n}entries(){const e=this,t=this._state;let i=this._head;const n={[Symbol.iterator](){return n},next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(i){const r={value:[i.key,i.value],done:!1};return i=i.next,r}else return{value:void 0,done:!0}}};return n}[(_b$1=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size)return;if(e===0){this.clear();return}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)this._tail=e;else if(this._head)e.next=this._head,this._head.previous=e;else throw new Error("Invalid list");this._head=e,this._state++}addItemLast(e){if(!this._head&&!this._tail)this._head=e;else if(this._tail)e.previous=this._tail,this._tail.next=e;else throw new Error("Invalid list");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(!(t!==1&&t!==2)){if(t===1){if(e===this._head)return;const i=e.next,n=e.previous;e===this._tail?(n.next=void 0,this._tail=n):(i.previous=n,n.next=i),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(t===2){if(e===this._tail)return;const i=e.next,n=e.previous;e===this._head?(i.previous=void 0,this._head=i):(i.previous=n,n.next=i),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 LRUCache extends LinkedMap{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))}}class BidirectionalMap{constructor(e){if(this._m1=new Map,this._m2=new Map,e)for(const[t,i]of e)this.set(t,i)}clear(){this._m1.clear(),this._m2.clear()}set(e,t){this._m1.set(e,t),this._m2.set(t,e)}get(e){return this._m1.get(e)}getKey(e){return this._m2.get(e)}delete(e){const t=this._m1.get(e);return t===void 0?!1:(this._m1.delete(e),this._m2.delete(t),!0)}keys(){return this._m1.keys()}values(){return this._m1.values()}}class SetMap{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),i.size===0&&this.map.delete(e))}forEach(e,t){const i=this.map.get(e);i&&i.forEach(t)}get(e){const t=this.map.get(e);return t||new Set}}class LinesSliceCharSequence{constructor(e,t,i){this.lines=e,this.considerWhitespaceChanges=i,this.elements=[],this.firstCharOffsetByLine=[],this.additionalOffsetByLine=[];let n=!1;t.start>0&&t.endExclusive>=e.length&&(t=new OffsetRange(t.start-1,t.endExclusive),n=!0),this.lineRange=t,this.firstCharOffsetByLine[0]=0;for(let r=this.lineRange.start;r<this.lineRange.endExclusive;r++){let s=e[r],a=0;if(n)a=s.length,s="",n=!1;else if(!i){const l=s.trimStart();a=s.length-l.length,s=l.trimEnd()}this.additionalOffsetByLine.push(a);for(let l=0;l<s.length;l++)this.elements.push(s.charCodeAt(l));r<e.length-1&&(this.elements.push(10),this.firstCharOffsetByLine[r-this.lineRange.start+1]=this.elements.length)}this.additionalOffsetByLine.push(0)}toString(){return`Slice: "${this.text}"`}get text(){return this.getText(new OffsetRange(0,this.length))}getText(e){return this.elements.slice(e.start,e.endExclusive).map(t=>String.fromCharCode(t)).join("")}getElement(e){return this.elements[e]}get length(){return this.elements.length}getBoundaryScore(e){const t=getCategory(e>0?this.elements[e-1]:-1),i=getCategory(e<this.elements.length?this.elements[e]:-1);if(t===6&&i===7)return 0;let n=0;return t!==i&&(n+=10,t===0&&i===1&&(n+=1)),n+=getCategoryBoundaryScore(t),n+=getCategoryBoundaryScore(i),n}translateOffset(e){if(this.lineRange.isEmpty)return new Position$1(this.lineRange.start+1,1);const t=findLastIdxMonotonous(this.firstCharOffsetByLine,i=>i<=e);return new Position$1(this.lineRange.start+t+1,e-this.firstCharOffsetByLine[t]+this.additionalOffsetByLine[t]+1)}translateRange(e){return Range$2.fromPositions(this.translateOffset(e.start),this.translateOffset(e.endExclusive))}findWordContaining(e){if(e<0||e>=this.elements.length||!isWordChar(this.elements[e]))return;let t=e;for(;t>0&&isWordChar(this.elements[t-1]);)t--;let i=e;for(;i<this.elements.length&&isWordChar(this.elements[i]);)i++;return new OffsetRange(t,i)}countLinesIn(e){return this.translateOffset(e.endExclusive).lineNumber-this.translateOffset(e.start).lineNumber}isStronglyEqual(e,t){return this.elements[e]===this.elements[t]}extendToFullLines(e){var t,i;const n=(t=findLastMonotonous(this.firstCharOffsetByLine,s=>s<=e.start))!==null&&t!==void 0?t:0,r=(i=findFirstMonotonous(this.firstCharOffsetByLine,s=>e.endExclusive<=s))!==null&&i!==void 0?i:this.elements.length;return new OffsetRange(n,r)}}function isWordChar(o){return o>=97&&o<=122||o>=65&&o<=90||o>=48&&o<=57}const score$1={0:0,1:0,2:0,3:10,4:2,5:3,6:10,7:10};function getCategoryBoundaryScore(o){return score$1[o]}function getCategory(o){return o===10?7:o===13?6:isSpace(o)?5:o>=97&&o<=122?0:o>=65&&o<=90?1:o>=48&&o<=57?2:o===-1?3:4}function computeMovedLines(o,e,t,i,n,r){let{moves:s,excludedChanges:a}=computeMovesFromSimpleDeletionsToSimpleInsertions(o,e,t,r);if(!r.isValid())return[];const l=o.filter(c=>!a.has(c)),d=computeUnchangedMoves(l,i,n,e,t,r);return pushMany(s,d),s=joinCloseConsecutiveMoves(s),s=s.filter(c=>c.original.toOffsetRange().slice(e).map(g=>g.trim()).join(`
- `).length>=10),s=removeMovesInSameDiff(o,s),s}function computeMovesFromSimpleDeletionsToSimpleInsertions(o,e,t,i){const n=[],r=o.filter(l=>l.modified.isEmpty&&l.original.length>=3).map(l=>new LineRangeFragment(l.original,e,l)),s=new Set(o.filter(l=>l.original.isEmpty&&l.modified.length>=3).map(l=>new LineRangeFragment(l.modified,t,l))),a=new Set;for(const l of r){let d=-1,c;for(const u of s){const g=l.computeSimilarity(u);g>d&&(d=g,c=u)}if(d>.9&&c&&(s.delete(c),n.push(new LineRangeMapping(l.range,c.range)),a.add(l.source),a.add(c.source)),!i.isValid())return{moves:n,excludedChanges:a}}return{moves:n,excludedChanges:a}}function computeUnchangedMoves(o,e,t,i,n,r){const s=[],a=new SetMap;for(const g of o)for(let f=g.original.startLineNumber;f<g.original.endLineNumberExclusive-2;f++){const p=`${e[f-1]}:${e[f+1-1]}:${e[f+2-1]}`;a.add(p,{range:new LineRange$1(f,f+3)})}const l=[];o.sort(compareBy(g=>g.modified.startLineNumber,numberComparator));for(const g of o){let f=[];for(let p=g.modified.startLineNumber;p<g.modified.endLineNumberExclusive-2;p++){const m=`${t[p-1]}:${t[p+1-1]}:${t[p+2-1]}`,b=new LineRange$1(p,p+3),_=[];a.forEach(m,({range:C})=>{for(const y of f)if(y.originalLineRange.endLineNumberExclusive+1===C.endLineNumberExclusive&&y.modifiedLineRange.endLineNumberExclusive+1===b.endLineNumberExclusive){y.originalLineRange=new LineRange$1(y.originalLineRange.startLineNumber,C.endLineNumberExclusive),y.modifiedLineRange=new LineRange$1(y.modifiedLineRange.startLineNumber,b.endLineNumberExclusive),_.push(y);return}const S={modifiedLineRange:b,originalLineRange:C};l.push(S),_.push(S)}),f=_}if(!r.isValid())return[]}l.sort(reverseOrder(compareBy(g=>g.modifiedLineRange.length,numberComparator)));const d=new LineRangeSet,c=new LineRangeSet;for(const g of l){const f=g.modifiedLineRange.startLineNumber-g.originalLineRange.startLineNumber,p=d.subtractFrom(g.modifiedLineRange),m=c.subtractFrom(g.originalLineRange).getWithDelta(f),b=p.getIntersection(m);for(const _ of b.ranges){if(_.length<3)continue;const C=_,S=_.delta(-f);s.push(new LineRangeMapping(S,C)),d.addRange(C),c.addRange(S)}}s.sort(compareBy(g=>g.original.startLineNumber,numberComparator));const u=new MonotonousArray(o);for(let g=0;g<s.length;g++){const f=s[g],p=u.findLastMonotonous(x=>x.original.startLineNumber<=f.original.startLineNumber),m=findLastMonotonous(o,x=>x.modified.startLineNumber<=f.modified.startLineNumber),b=Math.max(f.original.startLineNumber-p.original.startLineNumber,f.modified.startLineNumber-m.modified.startLineNumber),_=u.findLastMonotonous(x=>x.original.startLineNumber<f.original.endLineNumberExclusive),C=findLastMonotonous(o,x=>x.modified.startLineNumber<f.modified.endLineNumberExclusive),S=Math.max(_.original.endLineNumberExclusive-f.original.endLineNumberExclusive,C.modified.endLineNumberExclusive-f.modified.endLineNumberExclusive);let y;for(y=0;y<b;y++){const x=f.original.startLineNumber-y-1,L=f.modified.startLineNumber-y-1;if(x>i.length||L>n.length||d.contains(L)||c.contains(x)||!areLinesSimilar(i[x-1],n[L-1],r))break}y>0&&(c.addRange(new LineRange$1(f.original.startLineNumber-y,f.original.startLineNumber)),d.addRange(new LineRange$1(f.modified.startLineNumber-y,f.modified.startLineNumber)));let E;for(E=0;E<S;E++){const x=f.original.endLineNumberExclusive+E,L=f.modified.endLineNumberExclusive+E;if(x>i.length||L>n.length||d.contains(L)||c.contains(x)||!areLinesSimilar(i[x-1],n[L-1],r))break}E>0&&(c.addRange(new LineRange$1(f.original.endLineNumberExclusive,f.original.endLineNumberExclusive+E)),d.addRange(new LineRange$1(f.modified.endLineNumberExclusive,f.modified.endLineNumberExclusive+E))),(y>0||E>0)&&(s[g]=new LineRangeMapping(new LineRange$1(f.original.startLineNumber-y,f.original.endLineNumberExclusive+E),new LineRange$1(f.modified.startLineNumber-y,f.modified.endLineNumberExclusive+E)))}return s}function areLinesSimilar(o,e,t){if(o.trim()===e.trim())return!0;if(o.length>300&&e.length>300)return!1;const n=new MyersDiffAlgorithm().compute(new LinesSliceCharSequence([o],new OffsetRange(0,1),!1),new LinesSliceCharSequence([e],new OffsetRange(0,1),!1),t);let r=0;const s=SequenceDiff.invert(n.diffs,o.length);for(const c of s)c.seq1Range.forEach(u=>{isSpace(o.charCodeAt(u))||r++});function a(c){let u=0;for(let g=0;g<o.length;g++)isSpace(c.charCodeAt(g))||u++;return u}const l=a(o.length>e.length?o:e);return r/l>.6&&l>10}function joinCloseConsecutiveMoves(o){if(o.length===0)return o;o.sort(compareBy(t=>t.original.startLineNumber,numberComparator));const e=[o[0]];for(let t=1;t<o.length;t++){const i=e[e.length-1],n=o[t],r=n.original.startLineNumber-i.original.endLineNumberExclusive,s=n.modified.startLineNumber-i.modified.endLineNumberExclusive;if(r>=0&&s>=0&&r+s<=2){e[e.length-1]=i.join(n);continue}e.push(n)}return e}function removeMovesInSameDiff(o,e){const t=new MonotonousArray(o);return e=e.filter(i=>{const n=t.findLastMonotonous(a=>a.original.endLineNumberExclusive<i.original.endLineNumberExclusive)||new LineRangeMapping(new LineRange$1(1,1),new LineRange$1(1,1)),r=findLastMonotonous(o,a=>a.modified.endLineNumberExclusive<i.modified.endLineNumberExclusive);return n!==r}),e}function optimizeSequenceDiffs(o,e,t){let i=t;return i=joinSequenceDiffsByShifting(o,e,i),i=shiftSequenceDiffs(o,e,i),i}function joinSequenceDiffsByShifting(o,e,t){if(t.length===0)return t;const i=[];i.push(t[0]);for(let r=1;r<t.length;r++){const s=i[i.length-1];let a=t[r];if(a.seq1Range.isEmpty||a.seq2Range.isEmpty){const l=a.seq1Range.start-s.seq1Range.endExclusive;let d;for(d=1;d<=l&&!(o.getElement(a.seq1Range.start-d)!==o.getElement(a.seq1Range.endExclusive-d)||e.getElement(a.seq2Range.start-d)!==e.getElement(a.seq2Range.endExclusive-d));d++);if(d--,d===l){i[i.length-1]=new SequenceDiff(new OffsetRange(s.seq1Range.start,a.seq1Range.endExclusive-l),new OffsetRange(s.seq2Range.start,a.seq2Range.endExclusive-l));continue}a=a.delta(-d)}i.push(a)}const n=[];for(let r=0;r<i.length-1;r++){const s=i[r+1];let a=i[r];if(a.seq1Range.isEmpty||a.seq2Range.isEmpty){const l=s.seq1Range.start-a.seq1Range.endExclusive;let d;for(d=0;d<l&&!(!o.isStronglyEqual(a.seq1Range.start+d,a.seq1Range.endExclusive+d)||!e.isStronglyEqual(a.seq2Range.start+d,a.seq2Range.endExclusive+d));d++);if(d===l){i[r+1]=new SequenceDiff(new OffsetRange(a.seq1Range.start+l,s.seq1Range.endExclusive),new OffsetRange(a.seq2Range.start+l,s.seq2Range.endExclusive));continue}d>0&&(a=a.delta(d))}n.push(a)}return i.length>0&&n.push(i[i.length-1]),n}function shiftSequenceDiffs(o,e,t){if(!o.getBoundaryScore||!e.getBoundaryScore)return t;for(let i=0;i<t.length;i++){const n=i>0?t[i-1]:void 0,r=t[i],s=i+1<t.length?t[i+1]:void 0,a=new OffsetRange(n?n.seq1Range.start+1:0,s?s.seq1Range.endExclusive-1:o.length),l=new OffsetRange(n?n.seq2Range.start+1:0,s?s.seq2Range.endExclusive-1:e.length);r.seq1Range.isEmpty?t[i]=shiftDiffToBetterPosition(r,o,e,a,l):r.seq2Range.isEmpty&&(t[i]=shiftDiffToBetterPosition(r.swap(),e,o,l,a).swap())}return t}function shiftDiffToBetterPosition(o,e,t,i,n){let s=1;for(;o.seq1Range.start-s>=i.start&&o.seq2Range.start-s>=n.start&&t.isStronglyEqual(o.seq2Range.start-s,o.seq2Range.endExclusive-s)&&s<100;)s++;s--;let a=0;for(;o.seq1Range.start+a<i.endExclusive&&o.seq2Range.endExclusive+a<n.endExclusive&&t.isStronglyEqual(o.seq2Range.start+a,o.seq2Range.endExclusive+a)&&a<100;)a++;if(s===0&&a===0)return o;let l=0,d=-1;for(let c=-s;c<=a;c++){const u=o.seq2Range.start+c,g=o.seq2Range.endExclusive+c,f=o.seq1Range.start+c,p=e.getBoundaryScore(f)+t.getBoundaryScore(u)+t.getBoundaryScore(g);p>d&&(d=p,l=c)}return o.delta(l)}function removeShortMatches(o,e,t){const i=[];for(const n of t){const r=i[i.length-1];if(!r){i.push(n);continue}n.seq1Range.start-r.seq1Range.endExclusive<=2||n.seq2Range.start-r.seq2Range.endExclusive<=2?i[i.length-1]=new SequenceDiff(r.seq1Range.join(n.seq1Range),r.seq2Range.join(n.seq2Range)):i.push(n)}return i}function extendDiffsToEntireWordIfAppropriate(o,e,t){const i=[];let n;function r(){if(!n)return;const a=n.s1Range.length-n.deleted;n.s2Range.length-n.added,Math.max(n.deleted,n.added)+(n.count-1)>a&&i.push(new SequenceDiff(n.s1Range,n.s2Range)),n=void 0}for(const a of t){let l=function(f,p){var m,b,_,C;if(!n||!n.s1Range.containsRange(f)||!n.s2Range.containsRange(p))if(n&&!(n.s1Range.endExclusive<f.start&&n.s2Range.endExclusive<p.start)){const E=OffsetRange.tryCreate(n.s1Range.endExclusive,f.start),x=OffsetRange.tryCreate(n.s2Range.endExclusive,p.start);n.deleted+=(m=E==null?void 0:E.length)!==null&&m!==void 0?m:0,n.added+=(b=x==null?void 0:x.length)!==null&&b!==void 0?b:0,n.s1Range=n.s1Range.join(f),n.s2Range=n.s2Range.join(p)}else r(),n={added:0,deleted:0,count:0,s1Range:f,s2Range:p};const S=f.intersect(a.seq1Range),y=p.intersect(a.seq2Range);n.count++,n.deleted+=(_=S==null?void 0:S.length)!==null&&_!==void 0?_:0,n.added+=(C=y==null?void 0:y.length)!==null&&C!==void 0?C:0};const d=o.findWordContaining(a.seq1Range.start-1),c=e.findWordContaining(a.seq2Range.start-1),u=o.findWordContaining(a.seq1Range.endExclusive),g=e.findWordContaining(a.seq2Range.endExclusive);d&&u&&c&&g&&d.equals(u)&&c.equals(g)?l(d,c):(d&&c&&l(d,c),u&&g&&l(u,g))}return r(),mergeSequenceDiffs(t,i)}function mergeSequenceDiffs(o,e){const t=[];for(;o.length>0||e.length>0;){const i=o[0],n=e[0];let r;i&&(!n||i.seq1Range.start<n.seq1Range.start)?r=o.shift():r=e.shift(),t.length>0&&t[t.length-1].seq1Range.endExclusive>=r.seq1Range.start?t[t.length-1]=t[t.length-1].join(r):t.push(r)}return t}function removeVeryShortMatchingLinesBetweenDiffs(o,e,t){let i=t;if(i.length===0)return i;let n=0,r;do{r=!1;const s=[i[0]];for(let a=1;a<i.length;a++){let c=function(g,f){const p=new OffsetRange(d.seq1Range.endExclusive,l.seq1Range.start);return o.getText(p).replace(/\s/g,"").length<=4&&(g.seq1Range.length+g.seq2Range.length>5||f.seq1Range.length+f.seq2Range.length>5)};const l=i[a],d=s[s.length-1];c(d,l)?(r=!0,s[s.length-1]=s[s.length-1].join(l)):s.push(l)}i=s}while(n++<10&&r);return i}function removeVeryShortMatchingTextBetweenLongDiffs(o,e,t){let i=t;if(i.length===0)return i;let n=0,r;do{r=!1;const a=[i[0]];for(let l=1;l<i.length;l++){let u=function(f,p){const m=new OffsetRange(c.seq1Range.endExclusive,d.seq1Range.start);if(o.countLinesIn(m)>5||m.length>500)return!1;const _=o.getText(m).trim();if(_.length>20||_.split(/\r\n|\r|\n/).length>1)return!1;const C=o.countLinesIn(f.seq1Range),S=f.seq1Range.length,y=e.countLinesIn(f.seq2Range),E=f.seq2Range.length,x=o.countLinesIn(p.seq1Range),L=p.seq1Range.length,I=e.countLinesIn(p.seq2Range),D=p.seq2Range.length,N=2*40+50;function F(R){return Math.min(R,N)}return Math.pow(Math.pow(F(C*40+S),1.5)+Math.pow(F(y*40+E),1.5),1.5)+Math.pow(Math.pow(F(x*40+L),1.5)+Math.pow(F(I*40+D),1.5),1.5)>Math.pow(Math.pow(N,1.5),1.5)*1.3};const d=i[l],c=a[a.length-1];u(c,d)?(r=!0,a[a.length-1]=a[a.length-1].join(d)):a.push(d)}i=a}while(n++<10&&r);const s=[];return forEachWithNeighbors(i,(a,l,d)=>{let c=l;function u(_){return _.length>0&&_.trim().length<=3&&l.seq1Range.length+l.seq2Range.length>100}const g=o.extendToFullLines(l.seq1Range),f=o.getText(new OffsetRange(g.start,l.seq1Range.start));u(f)&&(c=c.deltaStart(-f.length));const p=o.getText(new OffsetRange(l.seq1Range.endExclusive,g.endExclusive));u(p)&&(c=c.deltaEnd(p.length));const m=SequenceDiff.fromOffsetPairs(a?a.getEndExclusives():OffsetPair.zero,d?d.getStarts():OffsetPair.max),b=c.intersect(m);s.push(b)}),s}class LineSequence{constructor(e,t){this.trimmedHash=e,this.lines=t}getElement(e){return this.trimmedHash[e]}get length(){return this.trimmedHash.length}getBoundaryScore(e){const t=e===0?0:getIndentation(this.lines[e-1]),i=e===this.lines.length?0:getIndentation(this.lines[e]);return 1e3-(t+i)}getText(e){return this.lines.slice(e.start,e.endExclusive).join(`
- `)}isStronglyEqual(e,t){return this.lines[e]===this.lines[t]}}function getIndentation(o){let e=0;for(;e<o.length&&(o.charCodeAt(e)===32||o.charCodeAt(e)===9);)e++;return e}class DefaultLinesDiffComputer{constructor(){this.dynamicProgrammingDiffing=new DynamicProgrammingDiffing,this.myersDiffingAlgorithm=new MyersDiffAlgorithm}computeDiff(e,t,i){if(e.length<=1&&equals$2(e,t,(E,x)=>E===x))return new LinesDiff([],[],!1);if(e.length===1&&e[0].length===0||t.length===1&&t[0].length===0)return new LinesDiff([new DetailedLineRangeMapping(new LineRange$1(1,e.length+1),new LineRange$1(1,t.length+1),[new RangeMapping(new Range$2(1,1,e.length,e[0].length+1),new Range$2(1,1,t.length,t[0].length+1))])],[],!1);const n=i.maxComputationTimeMs===0?InfiniteTimeout.instance:new DateTimeout(i.maxComputationTimeMs),r=!i.ignoreTrimWhitespace,s=new Map;function a(E){let x=s.get(E);return x===void 0&&(x=s.size,s.set(E,x)),x}const l=e.map(E=>a(E.trim())),d=t.map(E=>a(E.trim())),c=new LineSequence(l,e),u=new LineSequence(d,t),g=c.length+u.length<1700?this.dynamicProgrammingDiffing.compute(c,u,n,(E,x)=>e[E]===t[x]?t[x].length===0?.1:1+Math.log(1+t[x].length):.99):this.myersDiffingAlgorithm.compute(c,u);let f=g.diffs,p=g.hitTimeout;f=optimizeSequenceDiffs(c,u,f),f=removeVeryShortMatchingLinesBetweenDiffs(c,u,f);const m=[],b=E=>{if(r)for(let x=0;x<E;x++){const L=_+x,I=C+x;if(e[L]!==t[I]){const D=this.refineDiff(e,t,new SequenceDiff(new OffsetRange(L,L+1),new OffsetRange(I,I+1)),n,r);for(const N of D.mappings)m.push(N);D.hitTimeout&&(p=!0)}}};let _=0,C=0;for(const E of f){assertFn(()=>E.seq1Range.start-_===E.seq2Range.start-C);const x=E.seq1Range.start-_;b(x),_=E.seq1Range.endExclusive,C=E.seq2Range.endExclusive;const L=this.refineDiff(e,t,E,n,r);L.hitTimeout&&(p=!0);for(const I of L.mappings)m.push(I)}b(e.length-_);const S=lineRangeMappingFromRangeMappings(m,e,t);let y=[];return i.computeMoves&&(y=this.computeMoves(S,e,t,l,d,n,r)),assertFn(()=>{function E(L,I){if(L.lineNumber<1||L.lineNumber>I.length)return!1;const D=I[L.lineNumber-1];return!(L.column<1||L.column>D.length+1)}function x(L,I){return!(L.startLineNumber<1||L.startLineNumber>I.length+1||L.endLineNumberExclusive<1||L.endLineNumberExclusive>I.length+1)}for(const L of S){if(!L.innerChanges)return!1;for(const I of L.innerChanges)if(!(E(I.modifiedRange.getStartPosition(),t)&&E(I.modifiedRange.getEndPosition(),t)&&E(I.originalRange.getStartPosition(),e)&&E(I.originalRange.getEndPosition(),e)))return!1;if(!x(L.modified,t)||!x(L.original,e))return!1}return!0}),new LinesDiff(S,y,p)}computeMoves(e,t,i,n,r,s,a){return computeMovedLines(e,t,i,n,r,s).map(c=>{const u=this.refineDiff(t,i,new SequenceDiff(c.original.toOffsetRange(),c.modified.toOffsetRange()),s,a),g=lineRangeMappingFromRangeMappings(u.mappings,t,i,!0);return new MovedText(c,g)})}refineDiff(e,t,i,n,r){const s=new LinesSliceCharSequence(e,i.seq1Range,r),a=new LinesSliceCharSequence(t,i.seq2Range,r),l=s.length+a.length<500?this.dynamicProgrammingDiffing.compute(s,a,n):this.myersDiffingAlgorithm.compute(s,a,n);let d=l.diffs;return d=optimizeSequenceDiffs(s,a,d),d=extendDiffsToEntireWordIfAppropriate(s,a,d),d=removeShortMatches(s,a,d),d=removeVeryShortMatchingTextBetweenLongDiffs(s,a,d),{mappings:d.map(u=>new RangeMapping(s.translateRange(u.seq1Range),a.translateRange(u.seq2Range))),hitTimeout:l.hitTimeout}}}function lineRangeMappingFromRangeMappings(o,e,t,i=!1){const n=[];for(const r of groupAdjacentBy(o.map(s=>getLineRangeMapping(s,e,t)),(s,a)=>s.original.overlapOrTouch(a.original)||s.modified.overlapOrTouch(a.modified))){const s=r[0],a=r[r.length-1];n.push(new DetailedLineRangeMapping(s.original.join(a.original),s.modified.join(a.modified),r.map(l=>l.innerChanges[0])))}return assertFn(()=>!i&&n.length>0&&n[0].original.startLineNumber!==n[0].modified.startLineNumber?!1:checkAdjacentItems(n,(r,s)=>s.original.startLineNumber-r.original.endLineNumberExclusive===s.modified.startLineNumber-r.modified.endLineNumberExclusive&&r.original.endLineNumberExclusive<s.original.startLineNumber&&r.modified.endLineNumberExclusive<s.modified.startLineNumber)),n}function getLineRangeMapping(o,e,t){let i=0,n=0;o.modifiedRange.endColumn===1&&o.originalRange.endColumn===1&&o.originalRange.startLineNumber+i<=o.originalRange.endLineNumber&&o.modifiedRange.startLineNumber+i<=o.modifiedRange.endLineNumber&&(n=-1),o.modifiedRange.startColumn-1>=t[o.modifiedRange.startLineNumber-1].length&&o.originalRange.startColumn-1>=e[o.originalRange.startLineNumber-1].length&&o.originalRange.startLineNumber<=o.originalRange.endLineNumber+n&&o.modifiedRange.startLineNumber<=o.modifiedRange.endLineNumber+n&&(i=1);const r=new LineRange$1(o.originalRange.startLineNumber+i,o.originalRange.endLineNumber+1+n),s=new LineRange$1(o.modifiedRange.startLineNumber+i,o.modifiedRange.endLineNumber+1+n);return new DetailedLineRangeMapping(r,s,[o])}const linesDiffComputers={getLegacy:()=>new LegacyLinesDiffComputer,getDefault:()=>new DefaultLinesDiffComputer};function roundFloat(o,e){const t=Math.pow(10,e);return Math.round(o*t)/t}class RGBA{constructor(e,t,i,n=1){this._rgbaBrand=void 0,this.r=Math.min(255,Math.max(0,e))|0,this.g=Math.min(255,Math.max(0,t))|0,this.b=Math.min(255,Math.max(0,i))|0,this.a=roundFloat(Math.max(Math.min(1,n),0),3)}static equals(e,t){return e.r===t.r&&e.g===t.g&&e.b===t.b&&e.a===t.a}}class HSLA{constructor(e,t,i,n){this._hslaBrand=void 0,this.h=Math.max(Math.min(360,e),0)|0,this.s=roundFloat(Math.max(Math.min(1,t),0),3),this.l=roundFloat(Math.max(Math.min(1,i),0),3),this.a=roundFloat(Math.max(Math.min(1,n),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,r=e.a,s=Math.max(t,i,n),a=Math.min(t,i,n);let l=0,d=0;const c=(a+s)/2,u=s-a;if(u>0){switch(d=Math.min(c<=.5?u/(2*c):u/(2-2*c),1),s){case t:l=(i-n)/u+(i<n?6:0);break;case i:l=(n-t)/u+2;break;case n:l=(t-i)/u+4;break}l*=60,l=Math.round(l)}return new HSLA(l,d,c,r)}static _hue2rgb(e,t,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?e+(t-e)*6*i:i<1/2?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:r}=e;let s,a,l;if(i===0)s=a=l=n;else{const d=n<.5?n*(1+i):n+i-n*i,c=2*n-d;s=HSLA._hue2rgb(c,d,t+1/3),a=HSLA._hue2rgb(c,d,t),l=HSLA._hue2rgb(c,d,t-1/3)}return new RGBA(Math.round(s*255),Math.round(a*255),Math.round(l*255),r)}}class HSVA{constructor(e,t,i,n){this._hsvaBrand=void 0,this.h=Math.max(Math.min(360,e),0)|0,this.s=roundFloat(Math.max(Math.min(1,t),0),3),this.v=roundFloat(Math.max(Math.min(1,i),0),3),this.a=roundFloat(Math.max(Math.min(1,n),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,r=Math.max(t,i,n),s=Math.min(t,i,n),a=r-s,l=r===0?0:a/r;let d;return a===0?d=0:r===t?d=((i-n)/a%6+6)%6:r===i?d=(n-t)/a+2:d=(t-i)/a+4,new HSVA(Math.round(d*60),l,r,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,u]=[0,0,0];return t<60?(d=s,c=a):t<120?(d=a,c=s):t<180?(c=s,u=a):t<240?(c=a,u=s):t<300?(d=a,u=s):t<=360&&(d=s,u=a),d=Math.round((d+l)*255),c=Math.round((c+l)*255),u=Math.round((u+l)*255),new RGBA(d,c,u,r)}}class Color{static fromHex(e){return Color.Format.CSS.parseHex(e)||Color.red}static equals(e,t){return!e&&!t?!0:!e||!t?!1:e.equals(t)}get hsla(){return this._hsla?this._hsla:HSLA.fromRGBA(this.rgba)}get hsva(){return this._hsva?this._hsva:HSVA.fromRGBA(this.rgba)}constructor(e){if(e)if(e instanceof RGBA)this.rgba=e;else if(e instanceof HSLA)this._hsla=e,this.rgba=HSLA.toRGBA(e);else if(e instanceof HSVA)this._hsva=e,this.rgba=HSVA.toRGBA(e);else throw new Error("Invalid color ctor argument");else throw new Error("Color needs a value")}equals(e){return!!e&&RGBA.equals(this.rgba,e.rgba)&&HSLA.equals(this.hsla,e.hsla)&&HSVA.equals(this.hsva,e.hsva)}getRelativeLuminance(){const e=Color._relativeLuminanceForComponent(this.rgba.r),t=Color._relativeLuminanceForComponent(this.rgba.g),i=Color._relativeLuminanceForComponent(this.rgba.b),n=.2126*e+.7152*t+.0722*i;return roundFloat(n,4)}static _relativeLuminanceForComponent(e){const t=e/255;return t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}isLighter(){return(this.rgba.r*299+this.rgba.g*587+this.rgba.b*114)/1e3>=128}isLighterThan(e){const t=this.getRelativeLuminance(),i=e.getRelativeLuminance();return t>i}isDarkerThan(e){const t=this.getRelativeLuminance(),i=e.getRelativeLuminance();return t<i}lighten(e){return new Color(new HSLA(this.hsla.h,this.hsla.s,this.hsla.l+this.hsla.l*e,this.hsla.a))}darken(e){return new Color(new HSLA(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 Color(new RGBA(t,i,n,r*e))}isTransparent(){return this.rgba.a===0}isOpaque(){return this.rgba.a===1}opposite(){return new Color(new RGBA(255-this.rgba.r,255-this.rgba.g,255-this.rgba.b,this.rgba.a))}makeOpaque(e){if(this.isOpaque()||e.rgba.a!==1)return this;const{r:t,g:i,b:n,a:r}=this.rgba;return new Color(new RGBA(e.rgba.r-r*(e.rgba.r-t),e.rgba.g-r*(e.rgba.g-i),e.rgba.b-r*(e.rgba.b-n),1))}toString(){return this._toString||(this._toString=Color.Format.CSS.format(this)),this._toString}static getLighterColor(e,t,i){if(e.isLighterThan(t))return e;i=i||.5;const n=e.getRelativeLuminance(),r=t.getRelativeLuminance();return i=i*(r-n)/r,e.lighten(i)}static getDarkerColor(e,t,i){if(e.isDarkerThan(t))return e;i=i||.5;const n=e.getRelativeLuminance(),r=t.getRelativeLuminance();return i=i*(n-r)/n,e.darken(i)}}Color.white=new Color(new RGBA(255,255,255,1));Color.black=new Color(new RGBA(0,0,0,1));Color.red=new Color(new RGBA(255,0,0,1));Color.blue=new Color(new RGBA(0,0,255,1));Color.green=new Color(new RGBA(0,255,0,1));Color.cyan=new Color(new RGBA(0,255,255,1));Color.lightgrey=new Color(new RGBA(211,211,211,1));Color.transparent=new Color(new RGBA(0,0,0,0));(function(o){(function(e){(function(t){function i(f){return f.rgba.a===1?`rgb(${f.rgba.r}, ${f.rgba.g}, ${f.rgba.b})`:o.Format.CSS.formatRGBA(f)}t.formatRGB=i;function n(f){return`rgba(${f.rgba.r}, ${f.rgba.g}, ${f.rgba.b}, ${+f.rgba.a.toFixed(2)})`}t.formatRGBA=n;function r(f){return f.hsla.a===1?`hsl(${f.hsla.h}, ${(f.hsla.s*100).toFixed(2)}%, ${(f.hsla.l*100).toFixed(2)}%)`:o.Format.CSS.formatHSLA(f)}t.formatHSL=r;function s(f){return`hsla(${f.hsla.h}, ${(f.hsla.s*100).toFixed(2)}%, ${(f.hsla.l*100).toFixed(2)}%, ${f.hsla.a.toFixed(2)})`}t.formatHSLA=s;function a(f){const p=f.toString(16);return p.length!==2?"0"+p:p}function l(f){return`#${a(f.rgba.r)}${a(f.rgba.g)}${a(f.rgba.b)}`}t.formatHex=l;function d(f,p=!1){return p&&f.rgba.a===1?o.Format.CSS.formatHex(f):`#${a(f.rgba.r)}${a(f.rgba.g)}${a(f.rgba.b)}${a(Math.round(f.rgba.a*255))}`}t.formatHexA=d;function c(f){return f.isOpaque()?o.Format.CSS.formatHex(f):o.Format.CSS.formatRGBA(f)}t.format=c;function u(f){const p=f.length;if(p===0||f.charCodeAt(0)!==35)return null;if(p===7){const m=16*g(f.charCodeAt(1))+g(f.charCodeAt(2)),b=16*g(f.charCodeAt(3))+g(f.charCodeAt(4)),_=16*g(f.charCodeAt(5))+g(f.charCodeAt(6));return new o(new RGBA(m,b,_,1))}if(p===9){const m=16*g(f.charCodeAt(1))+g(f.charCodeAt(2)),b=16*g(f.charCodeAt(3))+g(f.charCodeAt(4)),_=16*g(f.charCodeAt(5))+g(f.charCodeAt(6)),C=16*g(f.charCodeAt(7))+g(f.charCodeAt(8));return new o(new RGBA(m,b,_,C/255))}if(p===4){const m=g(f.charCodeAt(1)),b=g(f.charCodeAt(2)),_=g(f.charCodeAt(3));return new o(new RGBA(16*m+m,16*b+b,16*_+_))}if(p===5){const m=g(f.charCodeAt(1)),b=g(f.charCodeAt(2)),_=g(f.charCodeAt(3)),C=g(f.charCodeAt(4));return new o(new RGBA(16*m+m,16*b+b,16*_+_,(16*C+C)/255))}return null}t.parseHex=u;function g(f){switch(f){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:return 10;case 65:return 10;case 98:return 11;case 66:return 11;case 99:return 12;case 67:return 12;case 100:return 13;case 68:return 13;case 101:return 14;case 69:return 14;case 102:return 15;case 70:return 15}return 0}})(e.CSS||(e.CSS={}))})(o.Format||(o.Format={}))})(Color||(Color={}));function _parseCaptureGroups(o){const e=[];for(const t of o){const i=Number(t);(i||i===0&&t.replace(/\s/g,"")!=="")&&e.push(i)}return e}function _toIColor(o,e,t,i){return{red:o/255,blue:t/255,green:e/255,alpha:i}}function _findRange(o,e){const t=e.index,i=e[0].length;if(!t)return;const n=o.positionAt(t);return{startLineNumber:n.lineNumber,startColumn:n.column,endLineNumber:n.lineNumber,endColumn:n.column+i}}function _findHexColorInformation(o,e){if(!o)return;const t=Color.Format.CSS.parseHex(e);if(t)return{range:o,color:_toIColor(t.rgba.r,t.rgba.g,t.rgba.b,t.rgba.a)}}function _findRGBColorInformation(o,e,t){if(!o||e.length!==1)return;const n=e[0].values(),r=_parseCaptureGroups(n);return{range:o,color:_toIColor(r[0],r[1],r[2],t?r[3]:1)}}function _findHSLColorInformation(o,e,t){if(!o||e.length!==1)return;const n=e[0].values(),r=_parseCaptureGroups(n),s=new Color(new HSLA(r[0],r[1]/100,r[2]/100,t?r[3]:1));return{range:o,color:_toIColor(s.rgba.r,s.rgba.g,s.rgba.b,s.rgba.a)}}function _findMatches(o,e){return typeof o=="string"?[...o.matchAll(e)]:o.findMatches(e)}function computeColors(o){const e=[],i=_findMatches(o,/\b(rgb|rgba|hsl|hsla)(\([0-9\s,.\%]*\))|(#)([A-Fa-f0-9]{3})\b|(#)([A-Fa-f0-9]{4})\b|(#)([A-Fa-f0-9]{6})\b|(#)([A-Fa-f0-9]{8})\b/gm);if(i.length>0)for(const n of i){const r=n.filter(d=>d!==void 0),s=r[1],a=r[2];if(!a)continue;let l;if(s==="rgb"){const d=/^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*\)$/gm;l=_findRGBColorInformation(_findRange(o,n),_findMatches(a,d),!1)}else if(s==="rgba"){const d=/^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm;l=_findRGBColorInformation(_findRange(o,n),_findMatches(a,d),!0)}else if(s==="hsl"){const d=/^\(\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*\)$/gm;l=_findHSLColorInformation(_findRange(o,n),_findMatches(a,d),!1)}else if(s==="hsla"){const d=/^\(\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm;l=_findHSLColorInformation(_findRange(o,n),_findMatches(a,d),!0)}else s==="#"&&(l=_findHexColorInformation(_findRange(o,n),s+a));l&&e.push(l)}return e}function computeDefaultDocumentColors(o){return!o||typeof o.getValue!="function"||typeof o.positionAt!="function"?[]:computeColors(o)}var __awaiter$1y=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};class MirrorModel extends MirrorTextModel{get uri(){return this._uri}get eol(){return this._eol}getValue(){return this.getText()}findMatches(e){const t=[];for(let i=0;i<this._lines.length;i++){const n=this._lines[i],r=this.offsetAt(new Position$1(i+1,1)),s=n.matchAll(e);for(const a of s)(a.index||a.index===0)&&(a.index=a.index+r),t.push(a)}return t}getLinesContent(){return this._lines.slice(0)}getLineCount(){return this._lines.length}getLineContent(e){return this._lines[e-1]}getWordAtPosition(e,t){const i=getWordAtText(e.column,ensureValidWordDefinition(t),this._lines[e.lineNumber-1],0);return i?new Range$2(e.lineNumber,i.startColumn,e.lineNumber,i.endColumn):null}words(e){const t=this._lines,i=this._wordenize.bind(this);let n=0,r="",s=0,a=[];return{*[Symbol.iterator](){for(;;)if(s<a.length){const l=r.substring(a[s].start,a[s].end);s+=1,yield l}else if(n<t.length)r=t[n],a=i(r,e),s=0,n+=1;else break}}}getLineWords(e,t){const i=this._lines[e-1],n=this._wordenize(i,t),r=[];for(const s of n)r.push({word:i.substring(s.start,s.end),startColumn:s.start+1,endColumn:s.end+1});return r}_wordenize(e,t){const i=[];let n;for(t.lastIndex=0;(n=t.exec(e))&&n[0].length!==0;)i.push({start:n.index,end:n.index+n[0].length});return i}getValueInRange(e){if(e=this._validateRange(e),e.startLineNumber===e.endLineNumber)return this._lines[e.startLineNumber-1].substring(e.startColumn-1,e.endColumn-1);const t=this._eol,i=e.startLineNumber-1,n=e.endLineNumber-1,r=[];r.push(this._lines[i].substring(e.startColumn-1));for(let s=i+1;s<n;s++)r.push(this._lines[s]);return r.push(this._lines[n].substring(0,e.endColumn-1)),r.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();const 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(!Position$1.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{const r=this._lines[t-1].length+1;i<1?(i=1,n=!0):i>r&&(i=r,n=!0)}return n?{lineNumber:t,column:i}:e}}class EditorSimpleWorker{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(){const e=[];return Object.keys(this._models).forEach(t=>e.push(this._models[t])),e}acceptNewModel(e){this._models[e.url]=new MirrorModel(URI.parse(e.url),e.lines,e.EOL,e.versionId)}acceptModelChanged(e,t){if(!this._models[e])return;this._models[e].onEvents(t)}acceptRemovedModel(e){this._models[e]&&delete this._models[e]}computeUnicodeHighlights(e,t,i){return __awaiter$1y(this,void 0,void 0,function*(){const n=this._getModel(e);return n?UnicodeTextModelHighlighter.computeUnicodeHighlights(n,t,i):{ranges:[],hasMore:!1,ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0}})}computeDiff(e,t,i,n){return __awaiter$1y(this,void 0,void 0,function*(){const r=this._getModel(e),s=this._getModel(t);return!r||!s?null:EditorSimpleWorker.computeDiff(r,s,i,n)})}static computeDiff(e,t,i,n){const r=n==="advanced"?linesDiffComputers.getDefault():linesDiffComputers.getLegacy(),s=e.getLinesContent(),a=t.getLinesContent(),l=r.computeDiff(s,a,i),d=l.changes.length>0?!1:this._modelsAreIdentical(e,t);function c(u){return u.map(g=>{var f;return[g.original.startLineNumber,g.original.endLineNumberExclusive,g.modified.startLineNumber,g.modified.endLineNumberExclusive,(f=g.innerChanges)===null||f===void 0?void 0:f.map(p=>[p.originalRange.startLineNumber,p.originalRange.startColumn,p.originalRange.endLineNumber,p.originalRange.endColumn,p.modifiedRange.startLineNumber,p.modifiedRange.startColumn,p.modifiedRange.endLineNumber,p.modifiedRange.endColumn])]})}return{identical:d,quitEarly:l.hitTimeout,changes:c(l.changes),moves:l.moves.map(u=>[u.lineRangeMapping.original.startLineNumber,u.lineRangeMapping.original.endLineNumberExclusive,u.lineRangeMapping.modified.startLineNumber,u.lineRangeMapping.modified.endLineNumberExclusive,c(u.changes)])}}static _modelsAreIdentical(e,t){const i=e.getLineCount(),n=t.getLineCount();if(i!==n)return!1;for(let r=1;r<=i;r++){const s=e.getLineContent(r),a=t.getLineContent(r);if(s!==a)return!1}return!0}computeMoreMinimalEdits(e,t,i){return __awaiter$1y(this,void 0,void 0,function*(){const n=this._getModel(e);if(!n)return t;const r=[];let s;t=t.slice(0).sort((l,d)=>{if(l.range&&d.range)return Range$2.compareRangesUsingStarts(l.range,d.range);const c=l.range?0:1,u=d.range?0:1;return c-u});let a=0;for(let l=1;l<t.length;l++)Range$2.getEndPosition(t[a].range).equals(Range$2.getStartPosition(t[l].range))?(t[a].range=Range$2.fromPositions(Range$2.getStartPosition(t[a].range),Range$2.getEndPosition(t[l].range)),t[a].text+=t[l].text):(a++,t[a]=t[l]);t.length=a+1;for(let{range:l,text:d,eol:c}of t){if(typeof c=="number"&&(s=c),Range$2.isEmpty(l)&&!d)continue;const u=n.getValueInRange(l);if(d=d.replace(/\r\n|\n|\r/g,n.eol),u===d)continue;if(Math.max(d.length,u.length)>EditorSimpleWorker._diffLimit){r.push({range:l,text:d});continue}const g=stringDiff(u,d,i),f=n.offsetAt(Range$2.lift(l).getStartPosition());for(const p of g){const m=n.positionAt(f+p.originalStart),b=n.positionAt(f+p.originalStart+p.originalLength),_={text:d.substr(p.modifiedStart,p.modifiedLength),range:{startLineNumber:m.lineNumber,startColumn:m.column,endLineNumber:b.lineNumber,endColumn:b.column}};n.getValueInRange(_.range)!==_.text&&r.push(_)}}return typeof s=="number"&&r.push({eol:s,text:"",range:{startLineNumber:0,startColumn:0,endLineNumber:0,endColumn:0}}),r})}computeLinks(e){return __awaiter$1y(this,void 0,void 0,function*(){const t=this._getModel(e);return t?computeLinks(t):null})}computeDefaultDocumentColors(e){return __awaiter$1y(this,void 0,void 0,function*(){const t=this._getModel(e);return t?computeDefaultDocumentColors(t):null})}textualSuggest(e,t,i,n){return __awaiter$1y(this,void 0,void 0,function*(){const r=new StopWatch,s=new RegExp(i,n),a=new Set;e:for(const l of e){const d=this._getModel(l);if(d){for(const c of d.words(s))if(!(c===t||!isNaN(Number(c)))&&(a.add(c),a.size>EditorSimpleWorker._suggestionsLimit))break e}}return{words:Array.from(a),duration:r.elapsed()}})}computeWordRanges(e,t,i,n){return __awaiter$1y(this,void 0,void 0,function*(){const r=this._getModel(e);if(!r)return Object.create(null);const s=new RegExp(i,n),a=Object.create(null);for(let l=t.startLineNumber;l<t.endLineNumber;l++){const d=r.getLineWords(l,s);for(const c of d){if(!isNaN(Number(c.word)))continue;let u=a[c.word];u||(u=[],a[c.word]=u),u.push({startLineNumber:l,startColumn:c.startColumn,endLineNumber:l,endColumn:c.endColumn})}}return a})}navigateValueSet(e,t,i,n,r){return __awaiter$1y(this,void 0,void 0,function*(){const s=this._getModel(e);if(!s)return null;const a=new RegExp(n,r);t.startColumn===t.endColumn&&(t={startLineNumber:t.startLineNumber,startColumn:t.startColumn,endLineNumber:t.endLineNumber,endColumn:t.endColumn+1});const l=s.getValueInRange(t),d=s.getWordAtPosition({lineNumber:t.startLineNumber,column:t.startColumn},a);if(!d)return null;const c=s.getValueInRange(d);return BasicInplaceReplace.INSTANCE.navigateValueSet(t,l,d,c,i)})}loadForeignModule(e,t,i){const s={host:createProxyObject$1(i,(a,l)=>this._host.fhr(a,l)),getMirrorModels:()=>this._getModels()};return this._foreignModuleFactory?(this._foreignModule=this._foreignModuleFactory(s,t),Promise.resolve(getAllMethodNames(this._foreignModule))):Promise.reject(new Error("Unexpected usage"))}fmr(e,t){if(!this._foreignModule||typeof this._foreignModule[e]!="function")return Promise.reject(new Error("Missing requestHandler or method: "+e));try{return Promise.resolve(this._foreignModule[e].apply(this._foreignModule,t))}catch(i){return Promise.reject(i)}}}EditorSimpleWorker._diffLimit=1e5;EditorSimpleWorker._suggestionsLimit=1e4;typeof importScripts=="function"&&(globalThis.monaco=createMonacoBaseAPI());const ITextResourceConfigurationService=createDecorator("textResourceConfigurationService"),ITextResourcePropertiesService=createDecorator("textResourcePropertiesService"),ILanguageFeaturesService=createDecorator("ILanguageFeaturesService");var __decorate$29=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$22=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$1x=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};const STOP_SYNC_MODEL_DELTA_TIME_MS=60*1e3,STOP_WORKER_DELTA_TIME_MS=5*60*1e3;function canSyncModel(o,e){const t=o.getModel(e);return!(!t||t.isTooLargeForSyncing())}let EditorWorkerService=class extends Disposable{constructor(e,t,i,n,r){super(),this._modelService=e,this._workerManager=this._register(new WorkerManager(this._modelService,n)),this._logService=i,this._register(r.linkProvider.register({language:"*",hasAccessToAllModels:!0},{provideLinks:(s,a)=>canSyncModel(this._modelService,s.uri)?this._workerManager.withWorker().then(l=>l.computeLinks(s.uri)).then(l=>l&&{links:l}):Promise.resolve({links:[]})})),this._register(r.completionProvider.register("*",new WordBasedCompletionItemProvider(this._workerManager,t,this._modelService,n)))}dispose(){super.dispose()}canComputeUnicodeHighlights(e){return canSyncModel(this._modelService,e)}computedUnicodeHighlights(e,t,i){return this._workerManager.withWorker().then(n=>n.computedUnicodeHighlights(e,t,i))}computeDiff(e,t,i,n){return __awaiter$1x(this,void 0,void 0,function*(){const r=yield this._workerManager.withWorker().then(l=>l.computeDiff(e,t,i,n));if(!r)return null;return{identical:r.identical,quitEarly:r.quitEarly,changes:a(r.changes),moves:r.moves.map(l=>new MovedText(new LineRangeMapping(new LineRange$1(l[0],l[1]),new LineRange$1(l[2],l[3])),a(l[4])))};function a(l){return l.map(d=>{var c;return new DetailedLineRangeMapping(new LineRange$1(d[0],d[1]),new LineRange$1(d[2],d[3]),(c=d[4])===null||c===void 0?void 0:c.map(u=>new RangeMapping(new Range$2(u[0],u[1],u[2],u[3]),new Range$2(u[4],u[5],u[6],u[7]))))})}})}computeMoreMinimalEdits(e,t,i=!1){if(isNonEmptyArray(t)){if(!canSyncModel(this._modelService,e))return Promise.resolve(t);const n=StopWatch.create(),r=this._workerManager.withWorker().then(s=>s.computeMoreMinimalEdits(e,t,i));return r.finally(()=>this._logService.trace("FORMAT#computeMoreMinimalEdits",e.toString(!0),n.elapsed())),Promise.race([r,timeout(1e3).then(()=>t)])}else return Promise.resolve(void 0)}canNavigateValueSet(e){return canSyncModel(this._modelService,e)}navigateValueSet(e,t,i){return this._workerManager.withWorker().then(n=>n.navigateValueSet(e,t,i))}canComputeWordRanges(e){return canSyncModel(this._modelService,e)}computeWordRanges(e,t){return this._workerManager.withWorker().then(i=>i.computeWordRanges(e,t))}};EditorWorkerService=__decorate$29([__param$22(0,IModelService),__param$22(1,ITextResourceConfigurationService),__param$22(2,ILogService),__param$22(3,ILanguageConfigurationService),__param$22(4,ILanguageFeaturesService)],EditorWorkerService);class WordBasedCompletionItemProvider{constructor(e,t,i,n){this.languageConfigurationService=n,this._debugDisplayName="wordbasedCompletions",this._workerManager=e,this._configurationService=t,this._modelService=i}provideCompletionItems(e,t){return __awaiter$1x(this,void 0,void 0,function*(){const i=this._configurationService.getValue(e.uri,t,"editor");if(!i.wordBasedSuggestions)return;const n=[];if(i.wordBasedSuggestionsMode==="currentDocument")canSyncModel(this._modelService,e.uri)&&n.push(e.uri);else for(const u of this._modelService.getModels())canSyncModel(this._modelService,u.uri)&&(u===e?n.unshift(u.uri):(i.wordBasedSuggestionsMode==="allDocuments"||u.getLanguageId()===e.getLanguageId())&&n.push(u.uri));if(n.length===0)return;const r=this.languageConfigurationService.getLanguageConfiguration(e.getLanguageId()).getWordDefinition(),s=e.getWordAtPosition(t),a=s?new Range$2(t.lineNumber,s.startColumn,t.lineNumber,s.endColumn):Range$2.fromPositions(t),l=a.setEndPosition(t.lineNumber,t.column),c=yield(yield this._workerManager.withWorker()).textualSuggest(n,s==null?void 0:s.word,r);if(c)return{duration:c.duration,suggestions:c.words.map(u=>({kind:18,label:u,insertText:u,range:{insert:l,replace:a}}))}})}}class WorkerManager extends Disposable{constructor(e,t){super(),this.languageConfigurationService=t,this._modelService=e,this._editorWorkerClient=null,this._lastWorkerUsedTime=new Date().getTime(),this._register(new IntervalTimer).cancelAndSet(()=>this._checkStopIdleWorker(),Math.round(STOP_WORKER_DELTA_TIME_MS/2)),this._register(this._modelService.onModelRemoved(n=>this._checkStopEmptyWorker()))}dispose(){this._editorWorkerClient&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null),super.dispose()}_checkStopEmptyWorker(){if(!this._editorWorkerClient)return;this._modelService.getModels().length===0&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null)}_checkStopIdleWorker(){if(!this._editorWorkerClient)return;new Date().getTime()-this._lastWorkerUsedTime>STOP_WORKER_DELTA_TIME_MS&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null)}withWorker(){return this._lastWorkerUsedTime=new Date().getTime(),this._editorWorkerClient||(this._editorWorkerClient=new EditorWorkerClient(this._modelService,!1,"editorWorkerService",this.languageConfigurationService)),Promise.resolve(this._editorWorkerClient)}}class EditorModelManager extends Disposable{constructor(e,t,i){if(super(),this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),this._proxy=e,this._modelService=t,!i){const n=new IntervalTimer;n.cancelAndSet(()=>this._checkStopModelSync(),Math.round(STOP_SYNC_MODEL_DELTA_TIME_MS/2)),this._register(n)}}dispose(){for(const e in this._syncedModels)dispose(this._syncedModels[e]);this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),super.dispose()}ensureSyncedResources(e,t){for(const i of e){const n=i.toString();this._syncedModels[n]||this._beginModelSync(i,t),this._syncedModels[n]&&(this._syncedModelsLastUsedTime[n]=new Date().getTime())}}_checkStopModelSync(){const e=new Date().getTime(),t=[];for(const i in this._syncedModelsLastUsedTime)e-this._syncedModelsLastUsedTime[i]>STOP_SYNC_MODEL_DELTA_TIME_MS&&t.push(i);for(const i of t)this._stopModelSync(i)}_beginModelSync(e,t){const i=this._modelService.getModel(e);if(!i||!t&&i.isTooLargeForSyncing())return;const n=e.toString();this._proxy.acceptNewModel({url:i.uri.toString(),lines:i.getLinesContent(),EOL:i.getEOL(),versionId:i.getVersionId()});const r=new DisposableStore;r.add(i.onDidChangeContent(s=>{this._proxy.acceptModelChanged(n.toString(),s)})),r.add(i.onWillDispose(()=>{this._stopModelSync(n)})),r.add(toDisposable(()=>{this._proxy.acceptRemovedModel(n)})),this._syncedModels[n]=r}_stopModelSync(e){const t=this._syncedModels[e];delete this._syncedModels[e],delete this._syncedModelsLastUsedTime[e],dispose(t)}}class SynchronousWorkerClient{constructor(e){this._instance=e,this._proxyObj=Promise.resolve(this._instance)}dispose(){this._instance.dispose()}getProxyObject(){return this._proxyObj}}class EditorWorkerHost{constructor(e){this._workerClient=e}fhr(e,t){return this._workerClient.fhr(e,t)}}class EditorWorkerClient extends Disposable{constructor(e,t,i,n){super(),this.languageConfigurationService=n,this._disposed=!1,this._modelService=e,this._keepIdleModels=t,this._workerFactory=new DefaultWorkerFactory(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 SimpleWorkerClient(this._workerFactory,"vs/editor/common/services/editorSimpleWorker",new EditorWorkerHost(this)))}catch(e){logOnceWebWorkerWarning(e),this._worker=new SynchronousWorkerClient(new EditorSimpleWorker(new EditorWorkerHost(this),null))}return this._worker}_getProxy(){return this._getOrCreateWorker().getProxyObject().then(void 0,e=>(logOnceWebWorkerWarning(e),this._worker=new SynchronousWorkerClient(new EditorSimpleWorker(new EditorWorkerHost(this),null)),this._getOrCreateWorker().getProxyObject()))}_getOrCreateModelManager(e){return this._modelManager||(this._modelManager=this._register(new EditorModelManager(e,this._modelService,this._keepIdleModels))),this._modelManager}_withSyncedResources(e,t=!1){return __awaiter$1x(this,void 0,void 0,function*(){return this._disposed?Promise.reject(canceled()):this._getProxy().then(i=>(this._getOrCreateModelManager(i).ensureSyncedResources(e,t),i))})}computedUnicodeHighlights(e,t,i){return this._withSyncedResources([e]).then(n=>n.computeUnicodeHighlights(e.toString(),t,i))}computeDiff(e,t,i,n){return this._withSyncedResources([e,t],!0).then(r=>r.computeDiff(e.toString(),t.toString(),i,n))}computeMoreMinimalEdits(e,t,i){return this._withSyncedResources([e]).then(n=>n.computeMoreMinimalEdits(e.toString(),t,i))}computeLinks(e){return this._withSyncedResources([e]).then(t=>t.computeLinks(e.toString()))}computeDefaultDocumentColors(e){return this._withSyncedResources([e]).then(t=>t.computeDefaultDocumentColors(e.toString()))}textualSuggest(e,t,i){return __awaiter$1x(this,void 0,void 0,function*(){const n=yield this._withSyncedResources(e),r=i.source,s=i.flags;return n.textualSuggest(e.map(a=>a.toString()),t,r,s)})}computeWordRanges(e,t){return this._withSyncedResources([e]).then(i=>{const n=this._modelService.getModel(e);if(!n)return Promise.resolve(null);const r=this.languageConfigurationService.getLanguageConfiguration(n.getLanguageId()).getWordDefinition(),s=r.source,a=r.flags;return i.computeWordRanges(e.toString(),t,s,a)})}navigateValueSet(e,t,i){return this._withSyncedResources([e]).then(n=>{const r=this._modelService.getModel(e);if(!r)return null;const s=this.languageConfigurationService.getLanguageConfiguration(r.getLanguageId()).getWordDefinition(),a=s.source,l=s.flags;return n.navigateValueSet(e.toString(),t,i,a,l)})}dispose(){super.dispose(),this._disposed=!0}}function createWebWorker$1(o,e,t){return new MonacoWebWorkerImpl(o,e,t)}class MonacoWebWorkerImpl extends EditorWorkerClient{constructor(e,t,i){super(e,i.keepIdleModels||!1,i.label,t),this._foreignModuleId=i.moduleId,this._foreignModuleCreateData=i.createData||null,this._foreignModuleHost=i.host||null,this._foreignProxy=null}fhr(e,t){if(!this._foreignModuleHost||typeof this._foreignModuleHost[e]!="function")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(i){return Promise.reject(i)}}_getForeignProxy(){return this._foreignProxy||(this._foreignProxy=this._getProxy().then(e=>{const t=this._foreignModuleHost?getAllMethodNames(this._foreignModuleHost):[];return e.loadForeignModule(this._foreignModuleId,this._foreignModuleCreateData,t).then(i=>{this._foreignModuleCreateData=null;const n=(a,l)=>e.fmr(a,l),r=(a,l)=>function(){const d=Array.prototype.slice.call(arguments,0);return l(a,d)},s={};for(const a of i)s[a]=r(a,n);return s})})),this._foreignProxy}getProxy(){return this._getForeignProxy()}withSyncedResources(e){return this._withSyncedResources(e).then(t=>this.getProxy())}}const EditorType={ICodeEditor:"vs.editor.ICodeEditor",IDiffEditor:"vs.editor.IDiffEditor"},NullState=new class{clone(){return this}equals(o){return this===o}};function nullTokenize(o,e){return new TokenizationResult([new Token$2(0,"",o)],e)}function nullTokenizeEncoded(o,e){const t=new Uint32Array(2);return t[0]=0,t[1]=(o<<0|0|0|32768|2<<24)>>>0,new EncodedTokenizationResult(t,e===null?NullState:e)}class TokenMetadata{static getLanguageId(e){return(e&255)>>>0}static getTokenType(e){return(e&768)>>>8}static containsBalancedBrackets(e){return(e&1024)!==0}static getFontStyle(e){return(e&30720)>>>11}static getForeground(e){return(e&16744448)>>>15}static getBackground(e){return(e&4278190080)>>>24}static getClassNameFromMetadata(e){let i="mtk"+this.getForeground(e);const n=this.getFontStyle(e);return n&1&&(i+=" mtki"),n&2&&(i+=" mtkb"),n&4&&(i+=" mtku"),n&8&&(i+=" mtks"),i}static getInlineStyleFromMetadata(e,t){const i=this.getForeground(e),n=this.getFontStyle(e);let r=`color: ${t[i]};`;n&1&&(r+="font-style: italic;"),n&2&&(r+="font-weight: bold;");let s="";return n&4&&(s+=" underline"),n&8&&(s+=" line-through"),s&&(r+=`text-decoration:${s};`),r}static getPresentationFromMetadata(e){const t=this.getForeground(e),i=this.getFontStyle(e);return{foreground:t,italic:!!(i&1),bold:!!(i&2),underline:!!(i&4),strikethrough:!!(i&8)}}}class LineTokens{static createEmpty(e,t){const i=LineTokens.defaultTokenMetadata,n=new Uint32Array(2);return n[0]=e.length,n[1]=i,new LineTokens(n,e,t)}constructor(e,t,i){this._lineTokensBrand=void 0,this._tokens=e,this._tokensCount=this._tokens.length>>>1,this._text=t,this._languageIdCodec=i}equals(e){return e instanceof LineTokens?this.slicedEquals(e,0,this._tokensCount):!1}slicedEquals(e,t,i){if(this._text!==e._text||this._tokensCount!==e._tokensCount)return!1;const n=t<<1,r=n+(i<<1);for(let s=n;s<r;s++)if(this._tokens[s]!==e._tokens[s])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[(e<<1)+1]}getLanguageId(e){const t=this._tokens[(e<<1)+1],i=TokenMetadata.getLanguageId(t);return this._languageIdCodec.decodeLanguageId(i)}getStandardTokenType(e){const t=this._tokens[(e<<1)+1];return TokenMetadata.getTokenType(t)}getForeground(e){const t=this._tokens[(e<<1)+1];return TokenMetadata.getForeground(t)}getClassName(e){const t=this._tokens[(e<<1)+1];return TokenMetadata.getClassNameFromMetadata(t)}getInlineStyle(e,t){const i=this._tokens[(e<<1)+1];return TokenMetadata.getInlineStyleFromMetadata(i,t)}getPresentation(e){const t=this._tokens[(e<<1)+1];return TokenMetadata.getPresentationFromMetadata(t)}getEndOffset(e){return this._tokens[e<<1]}findTokenIndexAtOffset(e){return LineTokens.findIndexInTokensArray(this._tokens,e)}inflate(){return this}sliceAndInflate(e,t,i){return new SliceLineTokens(this,e,t,i)}static convertToEndOffset(e,t){const n=(e.length>>>1)-1;for(let r=0;r<n;r++)e[r<<1]=e[r+1<<1];e[n<<1]=t}static findIndexInTokensArray(e,t){if(e.length<=2)return 0;let i=0,n=(e.length>>>1)-1;for(;i<n;){const r=i+Math.floor((n-i)/2),s=e[r<<1];if(s===t)return r+1;s<t?i=r+1:s>t&&(n=r)}return i}withInserted(e){if(e.length===0)return this;let t=0,i=0,n="";const r=new Array;let s=0;for(;;){const a=t<this._tokensCount?this._tokens[t<<1]:-1,l=i<e.length?e[i]:null;if(a!==-1&&(l===null||a<=l.offset)){n+=this._text.substring(s,a);const d=this._tokens[(t<<1)+1];r.push(n.length,d),t++,s=a}else if(l){if(l.offset>s){n+=this._text.substring(s,l.offset);const d=this._tokens[(t<<1)+1];r.push(n.length,d),s=l.offset}n+=l.text,r.push(n.length,l.tokenMetadata),i++}else break}return new LineTokens(new Uint32Array(r),n,this._languageIdCodec)}}LineTokens.defaultTokenMetadata=(32768|2<<24)>>>0;class SliceLineTokens{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 r=this._firstTokenIndex,s=e.getCount();r<s&&!(e.getStartOffset(r)>=i);r++)this._tokensCount++}getMetadata(e){return this._source.getMetadata(this._firstTokenIndex+e)}getLanguageId(e){return this._source.getLanguageId(this._firstTokenIndex+e)}getLineContent(){return this._source.getLineContent().substring(this._startOffset,this._endOffset)}equals(e){return e instanceof SliceLineTokens?this._startOffset===e._startOffset&&this._endOffset===e._endOffset&&this._deltaOffset===e._deltaOffset&&this._source.slicedEquals(e._source,this._firstTokenIndex,this._tokensCount):!1}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)}getPresentation(e){return this._source.getPresentation(this._firstTokenIndex+e)}findTokenIndexAtOffset(e){return this._source.findTokenIndexAtOffset(e+this._startOffset-this._deltaOffset)-this._firstTokenIndex}}class LineDecoration{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,n=t.length;if(i!==n)return!1;for(let r=0;r<i;r++)if(!LineDecoration._equals(e[r],t[r]))return!1;return!0}static extractWrapped(e,t,i){if(e.length===0)return e;const n=t+1,r=i+1,s=i-t,a=[];let l=0;for(const d of e)d.endColumn<=n||d.startColumn>=r||(a[l++]=new LineDecoration(Math.max(1,d.startColumn-n+1),Math.min(s+1,d.endColumn-n+1),d.className,d.type));return a}static filter(e,t,i,n){if(e.length===0)return[];const r=[];let s=0;for(let a=0,l=e.length;a<l;a++){const d=e[a],c=d.range;if(c.endLineNumber<t||c.startLineNumber>t||c.isEmpty()&&(d.type===0||d.type===3))continue;const u=c.startLineNumber===t?c.startColumn:i,g=c.endLineNumber===t?c.endColumn:n;r[s++]=new LineDecoration(u,g,d.inlineClassName,d.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=LineDecoration._typeCompare(e.type,t.type);return i!==0?i:e.className!==t.className?e.className<t.className?-1:1:0}}class DecorationSegment{constructor(e,t,i,n){this.startOffset=e,this.endOffset=t,this.className=i,this.metadata=n}}class Stack{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 n=0;for(;n+1<this.count&&this.stopOffsets[n]===this.stopOffsets[n+1];)n++;i.push(new DecorationSegment(t,this.stopOffsets[n],this.classNames.join(" "),Stack._metadata(this.metadata))),t=this.stopOffsets[n]+1,this.stopOffsets.splice(0,n+1),this.classNames.splice(0,n+1),this.metadata.splice(0,n+1),this.count-=n+1}return this.count>0&&t<e&&(i.push(new DecorationSegment(t,e-1,this.classNames.join(" "),Stack._metadata(this.metadata))),t=e),t}insert(e,t,i){if(this.count===0||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 LineDecorationsNormalizer{static normalize(e,t){if(t.length===0)return[];const i=[],n=new Stack;let r=0;for(let s=0,a=t.length;s<a;s++){const l=t[s];let d=l.startColumn,c=l.endColumn;const u=l.className,g=l.type===1?2:l.type===2?4:0;if(d>1){const m=e.charCodeAt(d-2);isHighSurrogate(m)&&d--}if(c>1){const m=e.charCodeAt(c-2);isHighSurrogate(m)&&c--}const f=d-1,p=c-2;r=n.consumeLowerThan(f,r,i),n.count===0&&(r=f),n.insert(p,u,g)}return n.consumeLowerThan(1073741824,r,i),i}}class LinePart{constructor(e,t,i,n){this.endIndex=e,this.type=t,this.metadata=i,this.containsRTL=n,this._linePartBrand=void 0}isWhitespace(){return!!(this.metadata&1)}isPseudoAfter(){return!!(this.metadata&4)}}class LineRange{constructor(e,t){this.startOffset=e,this.endOffset=t}equals(e){return this.startOffset===e.startOffset&&this.endOffset===e.endOffset}}class RenderLineInput{constructor(e,t,i,n,r,s,a,l,d,c,u,g,f,p,m,b,_,C,S){this.useMonospaceOptimizations=e,this.canUseHalfwidthRightwardsArrow=t,this.lineContent=i,this.continuesWithWrappedLine=n,this.isBasicASCII=r,this.containsRTL=s,this.fauxIndentLength=a,this.lineTokens=l,this.lineDecorations=d.sort(LineDecoration.compare),this.tabSize=c,this.startVisibleColumn=u,this.spaceWidth=g,this.stopRenderingLineAfter=m,this.renderWhitespace=b==="all"?4:b==="boundary"?1:b==="selection"?2:b==="trailing"?3:0,this.renderControlCharacters=_,this.fontLigatures=C,this.selectionsOnLine=S&&S.sort((x,L)=>x.startOffset<L.startOffset?-1:1);const y=Math.abs(p-g),E=Math.abs(f-g);y<E?(this.renderSpaceWidth=p,this.renderSpaceCharCode=11825):(this.renderSpaceWidth=f,this.renderSpaceCharCode=183)}sameSelection(e){if(this.selectionsOnLine===null)return e===null;if(e===null||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&&LineDecoration.equalsArr(this.lineDecorations,e.lineDecorations)&&this.lineTokens.equals(e.lineTokens)&&this.sameSelection(e.selectionsOnLine)}}class DomPosition{constructor(e,t){this.partIndex=e,this.charIndex=t}}class CharacterMapping{static getPartIndex(e){return(e&4294901760)>>>16}static getCharIndex(e){return(e&65535)>>>0}constructor(e,t){this.length=e,this._data=new Uint32Array(this.length),this._horizontalOffset=new Uint32Array(this.length)}setColumnInfo(e,t,i,n){const r=(t<<16|i<<0)>>>0;this._data[e-1]=r,this._horizontalOffset[e-1]=n}getHorizontalOffset(e){return this._horizontalOffset.length===0?0:this._horizontalOffset[e-1]}charOffsetToPartData(e){return this.length===0?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=CharacterMapping.getPartIndex(t),n=CharacterMapping.getCharIndex(t);return new DomPosition(i,n)}getColumn(e,t){return this.partDataToCharOffset(e.partIndex,t,e.charIndex)+1}partDataToCharOffset(e,t,i){if(this.length===0)return 0;const n=(e<<16|i<<0)>>>0;let r=0,s=this.length-1;for(;r+1<s;){const m=r+s>>>1,b=this._data[m];if(b===n)return m;b>n?s=m:r=m}if(r===s)return r;const a=this._data[r],l=this._data[s];if(a===n)return r;if(l===n)return s;const d=CharacterMapping.getPartIndex(a),c=CharacterMapping.getCharIndex(a),u=CharacterMapping.getPartIndex(l);let g;d!==u?g=t:g=CharacterMapping.getCharIndex(l);const f=i-c,p=g-i;return f<=p?r:s}}class RenderLineOutput{constructor(e,t,i){this._renderLineOutputBrand=void 0,this.characterMapping=e,this.containsRTL=t,this.containsForeignElements=i}}function renderViewLine(o,e){if(o.lineContent.length===0){if(o.lineDecorations.length>0){e.appendString("<span>");let t=0,i=0,n=0;for(const s of o.lineDecorations)(s.type===1||s.type===2)&&(e.appendString('<span class="'),e.appendString(s.className),e.appendString('"></span>'),s.type===1&&(n|=1,t++),s.type===2&&(n|=2,i++));e.appendString("</span>");const r=new CharacterMapping(1,t+i);return r.setColumnInfo(1,t,0,0),new RenderLineOutput(r,!1,n)}return e.appendString("<span><span></span></span>"),new RenderLineOutput(new CharacterMapping(0,0),!1,0)}return _renderLine(resolveRenderLineInput(o),e)}class RenderLineOutput2{constructor(e,t,i,n){this.characterMapping=e,this.html=t,this.containsRTL=i,this.containsForeignElements=n}}function renderViewLine2(o){const e=new StringBuilder(1e4),t=renderViewLine(o,e);return new RenderLineOutput2(t.characterMapping,e.build(),t.containsRTL,t.containsForeignElements)}class ResolvedRenderLineInput{constructor(e,t,i,n,r,s,a,l,d,c,u,g,f,p,m,b){this.fontIsMonospace=e,this.canUseHalfwidthRightwardsArrow=t,this.lineContent=i,this.len=n,this.isOverflowing=r,this.overflowingCharCount=s,this.parts=a,this.containsForeignElements=l,this.fauxIndentLength=d,this.tabSize=c,this.startVisibleColumn=u,this.containsRTL=g,this.spaceWidth=f,this.renderSpaceCharCode=p,this.renderWhitespace=m,this.renderControlCharacters=b}}function resolveRenderLineInput(o){const e=o.lineContent;let t,i,n;o.stopRenderingLineAfter!==-1&&o.stopRenderingLineAfter<e.length?(t=!0,i=e.length-o.stopRenderingLineAfter,n=o.stopRenderingLineAfter):(t=!1,i=0,n=e.length);let r=transformAndRemoveOverflowing(e,o.containsRTL,o.lineTokens,o.fauxIndentLength,n);o.renderControlCharacters&&!o.isBasicASCII&&(r=extractControlCharacters(e,r)),(o.renderWhitespace===4||o.renderWhitespace===1||o.renderWhitespace===2&&o.selectionsOnLine||o.renderWhitespace===3&&!o.continuesWithWrappedLine)&&(r=_applyRenderWhitespace(o,e,n,r));let s=0;if(o.lineDecorations.length>0){for(let a=0,l=o.lineDecorations.length;a<l;a++){const d=o.lineDecorations[a];d.type===3||d.type===1?s|=1:d.type===2&&(s|=2)}r=_applyInlineDecorations(e,n,r,o.lineDecorations)}return o.containsRTL||(r=splitLargeTokens(e,r,!o.isBasicASCII||o.fontLigatures)),new ResolvedRenderLineInput(o.useMonospaceOptimizations,o.canUseHalfwidthRightwardsArrow,e,n,t,i,r,s,o.fauxIndentLength,o.tabSize,o.startVisibleColumn,o.containsRTL,o.spaceWidth,o.renderSpaceCharCode,o.renderWhitespace,o.renderControlCharacters)}function transformAndRemoveOverflowing(o,e,t,i,n){const r=[];let s=0;i>0&&(r[s++]=new LinePart(i,"",0,!1));let a=i;for(let l=0,d=t.getCount();l<d;l++){const c=t.getEndOffset(l);if(c<=i)continue;const u=t.getClassName(l);if(c>=n){const f=e?containsRTL(o.substring(a,n)):!1;r[s++]=new LinePart(n,u,0,f);break}const g=e?containsRTL(o.substring(a,c)):!1;r[s++]=new LinePart(c,u,0,g),a=c}return r}function splitLargeTokens(o,e,t){let i=0;const n=[];let r=0;if(t)for(let s=0,a=e.length;s<a;s++){const l=e[s],d=l.endIndex;if(i+50<d){const c=l.type,u=l.metadata,g=l.containsRTL;let f=-1,p=i;for(let m=i;m<d;m++)o.charCodeAt(m)===32&&(f=m),f!==-1&&m-p>=50&&(n[r++]=new LinePart(f+1,c,u,g),p=f+1,f=-1);p!==d&&(n[r++]=new LinePart(d,c,u,g))}else n[r++]=l;i=d}else for(let s=0,a=e.length;s<a;s++){const l=e[s],d=l.endIndex,c=d-i;if(c>50){const u=l.type,g=l.metadata,f=l.containsRTL,p=Math.ceil(c/50);for(let m=1;m<p;m++){const b=i+m*50;n[r++]=new LinePart(b,u,g,f)}n[r++]=new LinePart(d,u,g,f)}else n[r++]=l;i=d}return n}function isControlCharacter(o){return o<32?o!==9:o===127||o>=8234&&o<=8238||o>=8294&&o<=8297||o>=8206&&o<=8207||o===1564}function extractControlCharacters(o,e){const t=[];let i=new LinePart(0,"",0,!1),n=0;for(const r of e){const s=r.endIndex;for(;n<s;n++){const a=o.charCodeAt(n);isControlCharacter(a)&&(n>i.endIndex&&(i=new LinePart(n,r.type,r.metadata,r.containsRTL),t.push(i)),i=new LinePart(n+1,"mtkcontrol",r.metadata,!1),t.push(i))}n>i.endIndex&&(i=new LinePart(s,r.type,r.metadata,r.containsRTL),t.push(i))}return t}function _applyRenderWhitespace(o,e,t,i){const n=o.continuesWithWrappedLine,r=o.fauxIndentLength,s=o.tabSize,a=o.startVisibleColumn,l=o.useMonospaceOptimizations,d=o.selectionsOnLine,c=o.renderWhitespace===1,u=o.renderWhitespace===3,g=o.renderSpaceWidth!==o.spaceWidth,f=[];let p=0,m=0,b=i[m].type,_=i[m].containsRTL,C=i[m].endIndex;const S=i.length;let y=!1,E=firstNonWhitespaceIndex(e),x;E===-1?(y=!0,E=t,x=t):x=lastNonWhitespaceIndex(e);let L=!1,I=0,D=d&&d[I],N=a%s;for(let R=r;R<t;R++){const M=e.charCodeAt(R);D&&R>=D.endOffset&&(I++,D=d&&d[I]);let W;if(R<E||R>x)W=!0;else if(M===9)W=!0;else if(M===32)if(c)if(L)W=!0;else{const V=R+1<t?e.charCodeAt(R+1):0;W=V===32||V===9}else W=!0;else W=!1;if(W&&d&&(W=!!D&&D.startOffset<=R&&D.endOffset>R),W&&u&&(W=y||R>x),W&&_&&R>=E&&R<=x&&(W=!1),L){if(!W||!l&&N>=s){if(g){const V=p>0?f[p-1].endIndex:r;for(let A=V+1;A<=R;A++)f[p++]=new LinePart(A,"mtkw",1,!1)}else f[p++]=new LinePart(R,"mtkw",1,!1);N=N%s}}else(R===C||W&&R>r)&&(f[p++]=new LinePart(R,b,0,_),N=N%s);for(M===9?N=s:isFullWidthCharacter(M)?N+=2:N++,L=W;R===C&&(m++,m<S);)b=i[m].type,_=i[m].containsRTL,C=i[m].endIndex}let F=!1;if(L)if(n&&c){const R=t>0?e.charCodeAt(t-1):0,M=t>1?e.charCodeAt(t-2):0;R===32&&M!==32&&M!==9||(F=!0)}else F=!0;if(F)if(g){const R=p>0?f[p-1].endIndex:r;for(let M=R+1;M<=t;M++)f[p++]=new LinePart(M,"mtkw",1,!1)}else f[p++]=new LinePart(t,"mtkw",1,!1);else f[p++]=new LinePart(t,b,0,_);return f}function _applyInlineDecorations(o,e,t,i){i.sort(LineDecoration.compare);const n=LineDecorationsNormalizer.normalize(o,i),r=n.length;let s=0;const a=[];let l=0,d=0;for(let u=0,g=t.length;u<g;u++){const f=t[u],p=f.endIndex,m=f.type,b=f.metadata,_=f.containsRTL;for(;s<r&&n[s].startOffset<p;){const C=n[s];if(C.startOffset>d&&(d=C.startOffset,a[l++]=new LinePart(d,m,b,_)),C.endOffset+1<=p)d=C.endOffset+1,a[l++]=new LinePart(d,m+" "+C.className,b|C.metadata,_),s++;else{d=p,a[l++]=new LinePart(d,m+" "+C.className,b|C.metadata,_);break}}p>d&&(d=p,a[l++]=new LinePart(d,m,b,_))}const c=t[t.length-1].endIndex;if(s<r&&n[s].startOffset===c)for(;s<r&&n[s].startOffset===c;){const u=n[s];a[l++]=new LinePart(d,u.className,u.metadata,!1),s++}return a}function _renderLine(o,e){const t=o.fontIsMonospace,i=o.canUseHalfwidthRightwardsArrow,n=o.containsForeignElements,r=o.lineContent,s=o.len,a=o.isOverflowing,l=o.overflowingCharCount,d=o.parts,c=o.fauxIndentLength,u=o.tabSize,g=o.startVisibleColumn,f=o.containsRTL,p=o.spaceWidth,m=o.renderSpaceCharCode,b=o.renderWhitespace,_=o.renderControlCharacters,C=new CharacterMapping(s+1,d.length);let S=!1,y=0,E=g,x=0,L=0,I=0;f?e.appendString('<span dir="ltr">'):e.appendString("<span>");for(let D=0,N=d.length;D<N;D++){const F=d[D],R=F.endIndex,M=F.type,W=F.containsRTL,V=b!==0&&F.isWhitespace(),A=V&&!t&&(M==="mtkw"||!n),P=y===R&&F.isPseudoAfter();if(x=0,e.appendString("<span "),W&&e.appendString('style="unicode-bidi:isolate" '),e.appendString('class="'),e.appendString(A?"mtkz":M),e.appendASCIICharCode(34),V){let k=0;{let T=y,U=E;for(;T<R;T++){const J=(r.charCodeAt(T)===9?u-U%u:1)|0;k+=J,T>=c&&(U+=J)}}for(A&&(e.appendString(' style="width:'),e.appendString(String(p*k)),e.appendString('px"')),e.appendASCIICharCode(62);y<R;y++){C.setColumnInfo(y+1,D-I,x,L),I=0;const T=r.charCodeAt(y);let U,z;if(T===9){U=u-E%u|0,z=U,!i||z>1?e.appendCharCode(8594):e.appendCharCode(65515);for(let J=2;J<=z;J++)e.appendCharCode(160)}else U=2,z=1,e.appendCharCode(m),e.appendCharCode(8204);x+=U,L+=z,y>=c&&(E+=z)}}else for(e.appendASCIICharCode(62);y<R;y++){C.setColumnInfo(y+1,D-I,x,L),I=0;const k=r.charCodeAt(y);let T=1,U=1;switch(k){case 9:T=u-E%u,U=T;for(let z=1;z<=T;z++)e.appendCharCode(160);break;case 32:e.appendCharCode(160);break;case 60:e.appendString("<");break;case 62:e.appendString(">");break;case 38:e.appendString("&");break;case 0:_?e.appendCharCode(9216):e.appendString("�");break;case 65279:case 8232:case 8233:case 133:e.appendCharCode(65533);break;default:isFullWidthCharacter(k)&&U++,_&&k<32?e.appendCharCode(9216+k):_&&k===127?e.appendCharCode(9249):_&&isControlCharacter(k)?(e.appendString("[U+"),e.appendString(to4CharHex(k)),e.appendString("]"),T=8,U=T):e.appendCharCode(k)}x+=T,L+=U,y>=c&&(E+=U)}P?I++:I=0,y>=s&&!S&&F.isPseudoAfter()&&(S=!0,C.setColumnInfo(y+1,D,x,L)),e.appendString("</span>")}return S||C.setColumnInfo(s+1,d.length-1,x,L),a&&(e.appendString('<span class="mtkoverflow">'),e.appendString(localize("showMore","Show more ({0})",renderOverflowingCharCount(l))),e.appendString("</span>")),e.appendString("</span>"),new RenderLineOutput(C,f,n)}function to4CharHex(o){return o.toString(16).toUpperCase().padStart(4,"0")}function renderOverflowingCharCount(o){return o<1024?localize("overflow.chars","{0} chars",o):o<1024*1024?`${(o/1024).toFixed(1)} KB`:`${(o/1024/1024).toFixed(1)} MB`}class Viewport{constructor(e,t,i,n){this._viewportBrand=void 0,this.top=e|0,this.left=t|0,this.width=i|0,this.height=n|0}}class MinimapLinesRenderingData{constructor(e,t){this.tabSize=e,this.data=t}}class ViewLineData{constructor(e,t,i,n,r,s,a){this._viewLineDataBrand=void 0,this.content=e,this.continuesWithWrappedLine=t,this.minColumn=i,this.maxColumn=n,this.startVisibleColumn=r,this.tokens=s,this.inlineDecorations=a}}class ViewLineRenderingData{constructor(e,t,i,n,r,s,a,l,d,c){this.minColumn=e,this.maxColumn=t,this.content=i,this.continuesWithWrappedLine=n,this.isBasicASCII=ViewLineRenderingData.isBasicASCII(i,s),this.containsRTL=ViewLineRenderingData.containsRTL(i,this.isBasicASCII,r),this.tokens=a,this.inlineDecorations=l,this.tabSize=d,this.startVisibleColumn=c}static isBasicASCII(e,t){return t?isBasicASCII(e):!0}static containsRTL(e,t,i){return!t&&i?containsRTL(e):!1}}class InlineDecoration{constructor(e,t,i){this.range=e,this.inlineClassName=t,this.type=i}}class SingleLineInlineDecoration{constructor(e,t,i,n){this.startOffset=e,this.endOffset=t,this.inlineClassName=i,this.inlineClassNameAffectsLetterSpacing=n}toInlineDecoration(e){return new InlineDecoration(new Range$2(e,this.startOffset+1,e,this.endOffset+1),this.inlineClassName,this.inlineClassNameAffectsLetterSpacing?3:0)}}class ViewModelDecoration{constructor(e,t){this._viewModelDecorationBrand=void 0,this.range=e,this.options=t}}class OverviewRulerDecorationsGroup{constructor(e,t,i){this.color=e,this.zIndex=t,this.data=i}static compareByRenderingProps(e,t){return e.zIndex===t.zIndex?e.color<t.color?-1:e.color>t.color?1:0:e.zIndex-t.zIndex}static equals(e,t){return e.color===t.color&&e.zIndex===t.zIndex&&equals$2(e.data,t.data)}static equalsArr(e,t){return equals$2(e,t,OverviewRulerDecorationsGroup.equals)}}function isFuzzyActionArr(o){return Array.isArray(o)}function isFuzzyAction(o){return!isFuzzyActionArr(o)}function isString(o){return typeof o=="string"}function isIAction(o){return!isString(o)}function empty(o){return!o}function fixCase(o,e){return o.ignoreCase&&e?e.toLowerCase():e}function sanitize(o){return o.replace(/[&<>'"_]/g,"-")}function log(o,e){console.log(`${o.languageId}: ${e}`)}function createError(o,e){return new Error(`${o.languageId}: ${e}`)}function substituteMatches(o,e,t,i,n){const r=/\$((\$)|(#)|(\d\d?)|[sS](\d\d?)|@(\w+))/g;let s=null;return e.replace(r,function(a,l,d,c,u,g,f,p,m){return empty(d)?empty(c)?!empty(u)&&u<i.length?fixCase(o,i[u]):!empty(f)&&o&&typeof o[f]=="string"?o[f]:(s===null&&(s=n.split("."),s.unshift(n)),!empty(g)&&g<s.length?fixCase(o,s[g]):""):fixCase(o,t):"$"})}function findRules(o,e){let t=e;for(;t&&t.length>0;){const i=o.tokenizer[t];if(i)return i;const n=t.lastIndexOf(".");n<0?t=null:t=t.substr(0,n)}return null}function stateExists(o,e){let t=e;for(;t&&t.length>0;){if(o.stateNames[t])return!0;const n=t.lastIndexOf(".");n<0?t=null:t=t.substr(0,n)}return!1}var __decorate$28=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$21=function(o,e){return function(t,i){e(t,i,o)}},MonarchTokenizer_1;const CACHE_STACK_DEPTH=5;class MonarchStackElementFactory{static create(e,t){return this._INSTANCE.create(e,t)}constructor(e){this._maxCacheDepth=e,this._entries=Object.create(null)}create(e,t){if(e!==null&&e.depth>=this._maxCacheDepth)return new MonarchStackElement(e,t);let i=MonarchStackElement.getStackElementId(e);i.length>0&&(i+="|"),i+=t;let n=this._entries[i];return n||(n=new MonarchStackElement(e,t),this._entries[i]=n,n)}}MonarchStackElementFactory._INSTANCE=new MonarchStackElementFactory(CACHE_STACK_DEPTH);class MonarchStackElement{constructor(e,t){this.parent=e,this.state=t,this.depth=(this.parent?this.parent.depth:0)+1}static getStackElementId(e){let t="";for(;e!==null;)t.length>0&&(t+="|"),t+=e.state,e=e.parent;return t}static _equals(e,t){for(;e!==null&&t!==null;){if(e===t)return!0;if(e.state!==t.state)return!1;e=e.parent,t=t.parent}return e===null&&t===null}equals(e){return MonarchStackElement._equals(this,e)}push(e){return MonarchStackElementFactory.create(this,e)}pop(){return this.parent}popall(){let e=this;for(;e.parent;)e=e.parent;return e}switchTo(e){return MonarchStackElementFactory.create(this.parent,e)}}class EmbeddedLanguageData{constructor(e,t){this.languageId=e,this.state=t}equals(e){return this.languageId===e.languageId&&this.state.equals(e.state)}clone(){return this.state.clone()===this.state?this:new EmbeddedLanguageData(this.languageId,this.state)}}class MonarchLineStateFactory{static create(e,t){return this._INSTANCE.create(e,t)}constructor(e){this._maxCacheDepth=e,this._entries=Object.create(null)}create(e,t){if(t!==null)return new MonarchLineState(e,t);if(e!==null&&e.depth>=this._maxCacheDepth)return new MonarchLineState(e,t);const i=MonarchStackElement.getStackElementId(e);let n=this._entries[i];return n||(n=new MonarchLineState(e,null),this._entries[i]=n,n)}}MonarchLineStateFactory._INSTANCE=new MonarchLineStateFactory(CACHE_STACK_DEPTH);class MonarchLineState{constructor(e,t){this.stack=e,this.embeddedLanguageData=t}clone(){return(this.embeddedLanguageData?this.embeddedLanguageData.clone():null)===this.embeddedLanguageData?this:MonarchLineStateFactory.create(this.stack,this.embeddedLanguageData)}equals(e){return!(e instanceof MonarchLineState)||!this.stack.equals(e.stack)?!1:this.embeddedLanguageData===null&&e.embeddedLanguageData===null?!0:this.embeddedLanguageData===null||e.embeddedLanguageData===null?!1:this.embeddedLanguageData.equals(e.embeddedLanguageData)}}class MonarchClassicTokensCollector{constructor(){this._tokens=[],this._languageId=null,this._lastTokenType=null,this._lastTokenLanguage=null}enterLanguage(e){this._languageId=e}emit(e,t){this._lastTokenType===t&&this._lastTokenLanguage===this._languageId||(this._lastTokenType=t,this._lastTokenLanguage=this._languageId,this._tokens.push(new Token$2(e,t,this._languageId)))}nestedLanguageTokenize(e,t,i,n){const r=i.languageId,s=i.state,a=TokenizationRegistry.get(r);if(!a)return this.enterLanguage(r),this.emit(n,""),s;const l=a.tokenize(e,t,s);if(n!==0)for(const d of l.tokens)this._tokens.push(new Token$2(d.offset+n,d.type,d.language));else this._tokens=this._tokens.concat(l.tokens);return this._lastTokenType=null,this._lastTokenLanguage=null,this._languageId=null,l.endState}finalize(e){return new TokenizationResult(this._tokens,e)}}class MonarchModernTokensCollector{constructor(e,t){this._languageService=e,this._theme=t,this._prependTokens=null,this._tokens=[],this._currentLanguageId=0,this._lastTokenMetadata=0}enterLanguage(e){this._currentLanguageId=this._languageService.languageIdCodec.encodeLanguageId(e)}emit(e,t){const i=this._theme.match(this._currentLanguageId,t)|1024;this._lastTokenMetadata!==i&&(this._lastTokenMetadata=i,this._tokens.push(e),this._tokens.push(i))}static _merge(e,t,i){const n=e!==null?e.length:0,r=t.length,s=i!==null?i.length:0;if(n===0&&r===0&&s===0)return new Uint32Array(0);if(n===0&&r===0)return i;if(r===0&&s===0)return e;const a=new Uint32Array(n+r+s);e!==null&&a.set(e);for(let l=0;l<r;l++)a[n+l]=t[l];return i!==null&&a.set(i,n+r),a}nestedLanguageTokenize(e,t,i,n){const r=i.languageId,s=i.state,a=TokenizationRegistry.get(r);if(!a)return this.enterLanguage(r),this.emit(n,""),s;const l=a.tokenizeEncoded(e,t,s);if(n!==0)for(let d=0,c=l.tokens.length;d<c;d+=2)l.tokens[d]+=n;return this._prependTokens=MonarchModernTokensCollector._merge(this._prependTokens,this._tokens,l.tokens),this._tokens=[],this._currentLanguageId=0,this._lastTokenMetadata=0,l.endState}finalize(e){return new EncodedTokenizationResult(MonarchModernTokensCollector._merge(this._prependTokens,this._tokens,null),e)}}let MonarchTokenizer=MonarchTokenizer_1=class extends Disposable{constructor(e,t,i,n,r){super(),this._configurationService=r,this._languageService=e,this._standaloneThemeService=t,this._languageId=i,this._lexer=n,this._embeddedLanguages=Object.create(null),this.embeddedLoaded=Promise.resolve(void 0);let s=!1;this._register(TokenizationRegistry.onDidChange(a=>{if(s)return;let l=!1;for(let d=0,c=a.changedLanguages.length;d<c;d++){const u=a.changedLanguages[d];if(this._embeddedLanguages[u]){l=!0;break}}l&&(s=!0,TokenizationRegistry.handleChange([this._languageId]),s=!1)})),this._maxTokenizationLineLength=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:this._languageId}),this._register(this._configurationService.onDidChangeConfiguration(a=>{a.affectsConfiguration("editor.maxTokenizationLineLength")&&(this._maxTokenizationLineLength=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:this._languageId}))}))}getLoadStatus(){const e=[];for(const t in this._embeddedLanguages){const i=TokenizationRegistry.get(t);if(i){if(i instanceof MonarchTokenizer_1){const n=i.getLoadStatus();n.loaded===!1&&e.push(n.promise)}continue}TokenizationRegistry.isResolved(t)||e.push(TokenizationRegistry.getOrCreate(t))}return e.length===0?{loaded:!0}:{loaded:!1,promise:Promise.all(e).then(t=>{})}}getInitialState(){const e=MonarchStackElementFactory.create(null,this._lexer.start);return MonarchLineStateFactory.create(e,null)}tokenize(e,t,i){if(e.length>=this._maxTokenizationLineLength)return nullTokenize(this._languageId,i);const n=new MonarchClassicTokensCollector,r=this._tokenize(e,t,i,n);return n.finalize(r)}tokenizeEncoded(e,t,i){if(e.length>=this._maxTokenizationLineLength)return nullTokenizeEncoded(this._languageService.languageIdCodec.encodeLanguageId(this._languageId),i);const n=new MonarchModernTokensCollector(this._languageService,this._standaloneThemeService.getColorTheme().tokenTheme),r=this._tokenize(e,t,i,n);return n.finalize(r)}_tokenize(e,t,i,n){return i.embeddedLanguageData?this._nestedTokenize(e,t,i,0,n):this._myTokenize(e,t,i,0,n)}_findLeavingNestedLanguageOffset(e,t){let i=this._lexer.tokenizer[t.stack.state];if(!i&&(i=findRules(this._lexer,t.stack.state),!i))throw createError(this._lexer,"tokenizer state is not defined: "+t.stack.state);let n=-1,r=!1;for(const s of i){if(!isIAction(s.action)||s.action.nextEmbedded!=="@pop")continue;r=!0;let a=s.regex;const l=s.regex.source;if(l.substr(0,4)==="^(?:"&&l.substr(l.length-1,1)===")"){const c=(a.ignoreCase?"i":"")+(a.unicode?"u":"");a=new RegExp(l.substr(4,l.length-5),c)}const d=e.search(a);d===-1||d!==0&&s.matchOnlyAtLineStart||(n===-1||d<n)&&(n=d)}if(!r)throw createError(this._lexer,'no rule containing nextEmbedded: "@pop" in tokenizer embedded state: '+t.stack.state);return n}_nestedTokenize(e,t,i,n,r){const s=this._findLeavingNestedLanguageOffset(e,i);if(s===-1){const d=r.nestedLanguageTokenize(e,t,i.embeddedLanguageData,n);return MonarchLineStateFactory.create(i.stack,new EmbeddedLanguageData(i.embeddedLanguageData.languageId,d))}const a=e.substring(0,s);a.length>0&&r.nestedLanguageTokenize(a,!1,i.embeddedLanguageData,n);const l=e.substring(s);return this._myTokenize(l,t,i,n+s,r)}_safeRuleName(e){return e?e.name:"(unknown)"}_myTokenize(e,t,i,n,r){r.enterLanguage(this._languageId);const s=e.length,a=t&&this._lexer.includeLF?e+`
- `:e,l=a.length;let d=i.embeddedLanguageData,c=i.stack,u=0,g=null,f=!0;for(;f||u<l;){const p=u,m=c.depth,b=g?g.groups.length:0,_=c.state;let C=null,S=null,y=null,E=null,x=null;if(g){C=g.matches;const D=g.groups.shift();S=D.matched,y=D.action,E=g.rule,g.groups.length===0&&(g=null)}else{if(!f&&u>=l)break;f=!1;let D=this._lexer.tokenizer[_];if(!D&&(D=findRules(this._lexer,_),!D))throw createError(this._lexer,"tokenizer state is not defined: "+_);const N=a.substr(u);for(const F of D)if((u===0||!F.matchOnlyAtLineStart)&&(C=N.match(F.regex),C)){S=C[0],y=F.action;break}}if(C||(C=[""],S=""),y||(u<l&&(C=[a.charAt(u)],S=C[0]),y=this._lexer.defaultToken),S===null)break;for(u+=S.length;isFuzzyAction(y)&&isIAction(y)&&y.test;)y=y.test(S,C,_,u===l);let L=null;if(typeof y=="string"||Array.isArray(y))L=y;else if(y.group)L=y.group;else if(y.token!==null&&y.token!==void 0){if(y.tokenSubst?L=substituteMatches(this._lexer,y.token,S,C,_):L=y.token,y.nextEmbedded)if(y.nextEmbedded==="@pop"){if(!d)throw createError(this._lexer,"cannot pop embedded language if not inside one");d=null}else{if(d)throw createError(this._lexer,"cannot enter embedded language from within an embedded language");x=substituteMatches(this._lexer,y.nextEmbedded,S,C,_)}if(y.goBack&&(u=Math.max(0,u-y.goBack)),y.switchTo&&typeof y.switchTo=="string"){let D=substituteMatches(this._lexer,y.switchTo,S,C,_);if(D[0]==="@"&&(D=D.substr(1)),findRules(this._lexer,D))c=c.switchTo(D);else throw createError(this._lexer,"trying to switch to a state '"+D+"' that is undefined in rule: "+this._safeRuleName(E))}else{if(y.transform&&typeof y.transform=="function")throw createError(this._lexer,"action.transform not supported");if(y.next)if(y.next==="@push"){if(c.depth>=this._lexer.maxStack)throw createError(this._lexer,"maximum tokenizer stack size reached: ["+c.state+","+c.parent.state+",...]");c=c.push(_)}else if(y.next==="@pop"){if(c.depth<=1)throw createError(this._lexer,"trying to pop an empty stack in rule: "+this._safeRuleName(E));c=c.pop()}else if(y.next==="@popall")c=c.popall();else{let D=substituteMatches(this._lexer,y.next,S,C,_);if(D[0]==="@"&&(D=D.substr(1)),findRules(this._lexer,D))c=c.push(D);else throw createError(this._lexer,"trying to set a next state '"+D+"' that is undefined in rule: "+this._safeRuleName(E))}}y.log&&typeof y.log=="string"&&log(this._lexer,this._lexer.languageId+": "+substituteMatches(this._lexer,y.log,S,C,_))}if(L===null)throw createError(this._lexer,"lexer rule has no well-defined action in rule: "+this._safeRuleName(E));const I=D=>{const N=this._languageService.getLanguageIdByLanguageName(D)||this._languageService.getLanguageIdByMimeType(D)||D,F=this._getNestedEmbeddedLanguageData(N);if(u<l){const R=e.substr(u);return this._nestedTokenize(R,t,MonarchLineStateFactory.create(c,F),n+u,r)}else return MonarchLineStateFactory.create(c,F)};if(Array.isArray(L)){if(g&&g.groups.length>0)throw createError(this._lexer,"groups cannot be nested: "+this._safeRuleName(E));if(C.length!==L.length+1)throw createError(this._lexer,"matched number of groups does not match the number of actions in rule: "+this._safeRuleName(E));let D=0;for(let N=1;N<C.length;N++)D+=C[N].length;if(D!==S.length)throw createError(this._lexer,"with groups, all characters should be matched in consecutive groups in rule: "+this._safeRuleName(E));g={rule:E,matches:C,groups:[]};for(let N=0;N<L.length;N++)g.groups[N]={action:L[N],matched:C[N+1]};u-=S.length;continue}else{if(L==="@rematch"&&(u-=S.length,S="",C=null,L="",x!==null))return I(x);if(S.length===0){if(l===0||m!==c.depth||_!==c.state||(g?g.groups.length:0)!==b)continue;throw createError(this._lexer,"no progress in tokenizer in rule: "+this._safeRuleName(E))}let D=null;if(isString(L)&&L.indexOf("@brackets")===0){const N=L.substr(9),F=findBracket(this._lexer,S);if(!F)throw createError(this._lexer,"@brackets token returned but no bracket defined as: "+S);D=sanitize(F.token+N)}else{const N=L===""?"":L+this._lexer.tokenPostfix;D=sanitize(N)}p<s&&r.emit(p+n,D)}if(x!==null)return I(x)}return MonarchLineStateFactory.create(c,d)}_getNestedEmbeddedLanguageData(e){if(!this._languageService.isRegisteredLanguageId(e))return new EmbeddedLanguageData(e,NullState);e!==this._languageId&&(this._languageService.requestBasicLanguageFeatures(e),TokenizationRegistry.getOrCreate(e),this._embeddedLanguages[e]=!0);const t=TokenizationRegistry.get(e);return t?new EmbeddedLanguageData(e,t.getInitialState()):new EmbeddedLanguageData(e,NullState)}};MonarchTokenizer=MonarchTokenizer_1=__decorate$28([__param$21(4,IConfigurationService)],MonarchTokenizer);function findBracket(o,e){if(!e)return null;e=fixCase(o,e);const t=o.brackets;for(const i of t){if(i.open===e)return{token:i.token,bracketType:1};if(i.close===e)return{token:i.token,bracketType:-1}}return null}var __awaiter$1w=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};const ttPolicy$3=createTrustedTypesPolicy("standaloneColorizer",{createHTML:o=>o});class Colorizer{static colorizeElement(e,t,i,n){n=n||{};const r=n.theme||"vs",s=n.mimeType||i.getAttribute("lang")||i.getAttribute("data-lang");if(!s)return console.error("Mode not detected"),Promise.resolve();const a=t.getLanguageIdByMimeType(s)||s;e.setTheme(r);const l=i.firstChild?i.firstChild.nodeValue:"";i.className+=" "+r;const d=c=>{var u;const g=(u=ttPolicy$3==null?void 0:ttPolicy$3.createHTML(c))!==null&&u!==void 0?u:c;i.innerHTML=g};return this.colorize(t,l||"",a,n).then(d,c=>console.error(c))}static colorize(e,t,i,n){return __awaiter$1w(this,void 0,void 0,function*(){const r=e.languageIdCodec;let s=4;n&&typeof n.tabSize=="number"&&(s=n.tabSize),startsWithUTF8BOM(t)&&(t=t.substr(1));const a=splitLines(t);if(!e.isRegisteredLanguageId(i))return _fakeColorize(a,s,r);const l=yield TokenizationRegistry.getOrCreate(i);return l?_colorize(a,s,l,r):_fakeColorize(a,s,r)})}static colorizeLine(e,t,i,n,r=4){const s=ViewLineRenderingData.isBasicASCII(e,t),a=ViewLineRenderingData.containsRTL(e,s,i);return renderViewLine2(new RenderLineInput(!1,!0,e,!1,s,a,0,n,[],r,0,0,0,0,-1,"none",!1,!1,null)).html}static colorizeModelLine(e,t,i=4){const n=e.getLineContent(t);e.tokenization.forceTokenization(t);const s=e.tokenization.getLineTokens(t).inflate();return this.colorizeLine(n,e.mightContainNonBasicASCII(),e.mightContainRTL(),s,i)}}function _colorize(o,e,t,i){return new Promise((n,r)=>{const s=()=>{const a=_actualColorize(o,e,t,i);if(t instanceof MonarchTokenizer){const l=t.getLoadStatus();if(l.loaded===!1){l.promise.then(s,r);return}}n(a)};s()})}function _fakeColorize(o,e,t){let i=[];const r=new Uint32Array(2);r[0]=0,r[1]=33587200;for(let s=0,a=o.length;s<a;s++){const l=o[s];r[0]=l.length;const d=new LineTokens(r,l,t),c=ViewLineRenderingData.isBasicASCII(l,!0),u=ViewLineRenderingData.containsRTL(l,c,!0),g=renderViewLine2(new RenderLineInput(!1,!0,l,!1,c,u,0,d,[],e,0,0,0,0,-1,"none",!1,!1,null));i=i.concat(g.html),i.push("<br/>")}return i.join("")}function _actualColorize(o,e,t,i){let n=[],r=t.getInitialState();for(let s=0,a=o.length;s<a;s++){const l=o[s],d=t.tokenizeEncoded(l,!0,r);LineTokens.convertToEndOffset(d.tokens,l.length);const c=new LineTokens(d.tokens,l,i),u=ViewLineRenderingData.isBasicASCII(l,!0),g=ViewLineRenderingData.containsRTL(l,u,!0),f=renderViewLine2(new RenderLineInput(!1,!0,l,!1,u,g,0,c.inflate(),[],e,0,0,0,0,-1,"none",!1,!1,null));n=n.concat(f.html),n.push("<br/>"),r=d.endState}return n.join("")}const MAX_MESSAGE_LENGTH=2e4;let ariaContainer,alertContainer,alertContainer2,statusContainer,statusContainer2;function setARIAContainer(o){ariaContainer=document.createElement("div"),ariaContainer.className="monaco-aria-container";const e=()=>{const i=document.createElement("div");return i.className="monaco-alert",i.setAttribute("role","alert"),i.setAttribute("aria-atomic","true"),ariaContainer.appendChild(i),i};alertContainer=e(),alertContainer2=e();const t=()=>{const i=document.createElement("div");return i.className="monaco-status",i.setAttribute("aria-live","polite"),i.setAttribute("aria-atomic","true"),ariaContainer.appendChild(i),i};statusContainer=t(),statusContainer2=t(),o.appendChild(ariaContainer)}function alert(o){ariaContainer&&(alertContainer.textContent!==o?(clearNode(alertContainer2),insertMessage(alertContainer,o)):(clearNode(alertContainer),insertMessage(alertContainer2,o)))}function status(o){ariaContainer&&(statusContainer.textContent!==o?(clearNode(statusContainer2),insertMessage(statusContainer,o)):(clearNode(statusContainer),insertMessage(statusContainer2,o)))}function insertMessage(o,e){clearNode(o),e.length>MAX_MESSAGE_LENGTH&&(e=e.substr(0,MAX_MESSAGE_LENGTH)),o.textContent=e,o.style.visibility="hidden",o.style.visibility="visible"}const IMarkerDecorationsService=createDecorator("markerDecorationsService");var __decorate$27=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$20=function(o,e){return function(t,i){e(t,i,o)}};let MarkerDecorationsContribution=class{constructor(e,t){}dispose(){}};MarkerDecorationsContribution.ID="editor.contrib.markerDecorations";MarkerDecorationsContribution=__decorate$27([__param$20(1,IMarkerDecorationsService)],MarkerDecorationsContribution);registerEditorContribution(MarkerDecorationsContribution.ID,MarkerDecorationsContribution,0);class ElementSizeObserver extends Disposable{constructor(e,t){super(),this._onDidChange=this._register(new Emitter$1),this.onDidChange=this._onDidChange.event,this._referenceDomElement=e,this._width=-1,this._height=-1,this._resizeObserver=null,this.measureReferenceDomElement(!1,t)}dispose(){this.stopObserving(),super.dispose()}getWidth(){return this._width}getHeight(){return this._height}startObserving(){if(!this._resizeObserver&&this._referenceDomElement){let e=null;const t=()=>{e?this.observe({width:e.width,height:e.height}):this.observe()};let i=!1,n=!1;const r=()=>{if(i&&!n)try{i=!1,n=!0,t()}finally{requestAnimationFrame(()=>{n=!1,r()})}};this._resizeObserver=new ResizeObserver(s=>{e=s&&s[0]&&s[0].contentRect?s[0].contentRect:null,i=!0,r()}),this._resizeObserver.observe(this._referenceDomElement)}}stopObserving(){this._resizeObserver&&(this._resizeObserver.disconnect(),this._resizeObserver=null)}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._onDidChange.fire())}}class EditorSettingMigration{constructor(e,t){this.key=e,this.migrate=t}apply(e){const t=EditorSettingMigration._read(e,this.key),i=r=>EditorSettingMigration._read(e,r),n=(r,s)=>EditorSettingMigration._write(e,r,s);this.migrate(t,i,n)}static _read(e,t){if(typeof e>"u")return;const i=t.indexOf(".");if(i>=0){const n=t.substring(0,i);return this._read(e[n],t.substring(i+1))}return e[t]}static _write(e,t,i){const n=t.indexOf(".");if(n>=0){const r=t.substring(0,n);e[r]=e[r]||{},this._write(e[r],t.substring(n+1),i);return}e[t]=i}}EditorSettingMigration.items=[];function registerEditorSettingMigration(o,e){EditorSettingMigration.items.push(new EditorSettingMigration(o,e))}function registerSimpleEditorSettingMigration(o,e){registerEditorSettingMigration(o,(t,i,n)=>{if(typeof t<"u"){for(const[r,s]of e)if(t===r){n(o,s);return}}})}function migrateOptions(o){EditorSettingMigration.items.forEach(e=>e.apply(o))}registerSimpleEditorSettingMigration("wordWrap",[[!0,"on"],[!1,"off"]]);registerSimpleEditorSettingMigration("lineNumbers",[[!0,"on"],[!1,"off"]]);registerSimpleEditorSettingMigration("cursorBlinking",[["visible","solid"]]);registerSimpleEditorSettingMigration("renderWhitespace",[[!0,"boundary"],[!1,"none"]]);registerSimpleEditorSettingMigration("renderLineHighlight",[[!0,"line"],[!1,"none"]]);registerSimpleEditorSettingMigration("acceptSuggestionOnEnter",[[!0,"on"],[!1,"off"]]);registerSimpleEditorSettingMigration("tabCompletion",[[!1,"off"],[!0,"onlySnippets"]]);registerSimpleEditorSettingMigration("hover",[[!0,{enabled:!0}],[!1,{enabled:!1}]]);registerSimpleEditorSettingMigration("parameterHints",[[!0,{enabled:!0}],[!1,{enabled:!1}]]);registerSimpleEditorSettingMigration("autoIndent",[[!1,"advanced"],[!0,"full"]]);registerSimpleEditorSettingMigration("matchBrackets",[[!0,"always"],[!1,"never"]]);registerSimpleEditorSettingMigration("renderFinalNewline",[[!0,"on"],[!1,"off"]]);registerSimpleEditorSettingMigration("cursorSmoothCaretAnimation",[[!0,"on"],[!1,"off"]]);registerEditorSettingMigration("autoClosingBrackets",(o,e,t)=>{o===!1&&(t("autoClosingBrackets","never"),typeof e("autoClosingQuotes")>"u"&&t("autoClosingQuotes","never"),typeof e("autoSurround")>"u"&&t("autoSurround","never"))});registerEditorSettingMigration("renderIndentGuides",(o,e,t)=>{typeof o<"u"&&(t("renderIndentGuides",void 0),typeof e("guides.indentation")>"u"&&t("guides.indentation",!!o))});registerEditorSettingMigration("highlightActiveIndentGuide",(o,e,t)=>{typeof o<"u"&&(t("highlightActiveIndentGuide",void 0),typeof e("guides.highlightActiveIndentation")>"u"&&t("guides.highlightActiveIndentation",!!o))});const suggestFilteredTypesMapping={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"};registerEditorSettingMigration("suggest.filteredTypes",(o,e,t)=>{if(o&&typeof o=="object"){for(const i of Object.entries(suggestFilteredTypesMapping))o[i[0]]===!1&&typeof e(`suggest.${i[1]}`)>"u"&&t(`suggest.${i[1]}`,!1);t("suggest.filteredTypes",void 0)}});registerEditorSettingMigration("quickSuggestions",(o,e,t)=>{if(typeof o=="boolean"){const i=o?"on":"off";t("quickSuggestions",{comments:i,strings:i,other:i})}});registerEditorSettingMigration("experimental.stickyScroll.enabled",(o,e,t)=>{typeof o=="boolean"&&(t("experimental.stickyScroll.enabled",void 0),typeof e("stickyScroll.enabled")>"u"&&t("stickyScroll.enabled",o))});registerEditorSettingMigration("experimental.stickyScroll.maxLineCount",(o,e,t)=>{typeof o=="number"&&(t("experimental.stickyScroll.maxLineCount",void 0),typeof e("stickyScroll.maxLineCount")>"u"&&t("stickyScroll.maxLineCount",o))});class TabFocusImpl{constructor(){this._tabFocus=!1,this._onDidChangeTabFocus=new Emitter$1,this.onDidChangeTabFocus=this._onDidChangeTabFocus.event}getTabFocusMode(){return this._tabFocus}setTabFocusMode(e){this._tabFocus=e,this._onDidChangeTabFocus.fire(this._tabFocus)}}const TabFocus=new TabFocusImpl,IAccessibilityService=createDecorator("accessibilityService"),CONTEXT_ACCESSIBILITY_MODE_ENABLED=new RawContextKey("accessibilityModeEnabled",!1);var __decorate$26=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1$=function(o,e){return function(t,i){e(t,i,o)}};let EditorConfiguration=class extends Disposable{constructor(e,t,i,n){super(),this._accessibilityService=n,this._onDidChange=this._register(new Emitter$1),this.onDidChange=this._onDidChange.event,this._onDidChangeFast=this._register(new Emitter$1),this.onDidChangeFast=this._onDidChangeFast.event,this._isDominatedByLongLines=!1,this._viewLineCount=1,this._lineNumbersDigitCount=1,this._reservedHeight=0,this._glyphMarginDecorationLaneCount=1,this._computeOptionsMemory=new ComputeOptionsMemory,this.isSimpleWidget=e,this._containerObserver=this._register(new ElementSizeObserver(i,t.dimension)),this._rawOptions=deepCloneAndMigrateOptions(t),this._validatedOptions=EditorOptionsUtil.validateOptions(this._rawOptions),this.options=this._computeOptions(),this.options.get(13)&&this._containerObserver.startObserving(),this._register(EditorZoom.onDidChangeZoomLevel(()=>this._recomputeOptions())),this._register(TabFocus.onDidChangeTabFocus(()=>this._recomputeOptions())),this._register(this._containerObserver.onDidChange(()=>this._recomputeOptions())),this._register(FontMeasurements.onDidChange(()=>this._recomputeOptions())),this._register(PixelRatio.onDidChange(()=>this._recomputeOptions())),this._register(this._accessibilityService.onDidChangeScreenReaderOptimized(()=>this._recomputeOptions()))}_recomputeOptions(){const e=this._computeOptions(),t=EditorOptionsUtil.checkEquals(this.options,e);t!==null&&(this.options=e,this._onDidChangeFast.fire(t),this._onDidChange.fire(t))}_computeOptions(){const e=this._readEnvConfiguration(),t=BareFontInfo.createFromValidatedSettings(this._validatedOptions,e.pixelRatio,this.isSimpleWidget),i=this._readFontInfo(t),n={memory:this._computeOptionsMemory,outerWidth:e.outerWidth,outerHeight:e.outerHeight-this._reservedHeight,fontInfo:i,extraEditorClassName:e.extraEditorClassName,isDominatedByLongLines:this._isDominatedByLongLines,viewLineCount:this._viewLineCount,lineNumbersDigitCount:this._lineNumbersDigitCount,emptySelectionClipboard:e.emptySelectionClipboard,pixelRatio:e.pixelRatio,tabFocusMode:TabFocus.getTabFocusMode(),accessibilitySupport:e.accessibilitySupport,glyphMarginDecorationLaneCount:this._glyphMarginDecorationLaneCount};return EditorOptionsUtil.computeOptions(this._validatedOptions,n)}_readEnvConfiguration(){return{extraEditorClassName:getExtraEditorClassName(),outerWidth:this._containerObserver.getWidth(),outerHeight:this._containerObserver.getHeight(),emptySelectionClipboard:isWebKit||isFirefox,pixelRatio:PixelRatio.value,accessibilitySupport:this._accessibilityService.isScreenReaderOptimized()?2:this._accessibilityService.getAccessibilitySupport()}}_readFontInfo(e){return FontMeasurements.readFontInfo(e)}getRawOptions(){return this._rawOptions}updateOptions(e){const t=deepCloneAndMigrateOptions(e);EditorOptionsUtil.applyUpdate(this._rawOptions,t)&&(this._validatedOptions=EditorOptionsUtil.validateOptions(this._rawOptions),this._recomputeOptions())}observeContainer(e){this._containerObserver.observe(e)}setIsDominatedByLongLines(e){this._isDominatedByLongLines!==e&&(this._isDominatedByLongLines=e,this._recomputeOptions())}setModelLineCount(e){const t=digitCount(e);this._lineNumbersDigitCount!==t&&(this._lineNumbersDigitCount=t,this._recomputeOptions())}setViewLineCount(e){this._viewLineCount!==e&&(this._viewLineCount=e,this._recomputeOptions())}setReservedHeight(e){this._reservedHeight!==e&&(this._reservedHeight=e,this._recomputeOptions())}setGlyphMarginDecorationLaneCount(e){this._glyphMarginDecorationLaneCount!==e&&(this._glyphMarginDecorationLaneCount=e,this._recomputeOptions())}};EditorConfiguration=__decorate$26([__param$1$(3,IAccessibilityService)],EditorConfiguration);function digitCount(o){let e=0;for(;o;)o=Math.floor(o/10),e++;return e||1}function getExtraEditorClassName(){let o="";return!isSafari&&!isWebkitWebView&&(o+="no-user-select "),isSafari&&(o+="no-minimap-shadow ",o+="enable-user-select "),isMacintosh&&(o+="mac "),o}class ValidatedEditorOptions{constructor(){this._values=[]}_read(e){return this._values[e]}get(e){return this._values[e]}_write(e,t){this._values[e]=t}}class ComputedEditorOptions{constructor(){this._values=[]}_read(e){if(e>=this._values.length)throw new Error("Cannot read uninitialized value");return this._values[e]}get(e){return this._read(e)}_write(e,t){this._values[e]=t}}class EditorOptionsUtil{static validateOptions(e){const t=new ValidatedEditorOptions;for(const i of editorOptionsRegistry){const n=i.name==="_never_"?void 0:e[i.name];t._write(i.id,i.validate(n))}return t}static computeOptions(e,t){const i=new ComputedEditorOptions;for(const n of editorOptionsRegistry)i._write(n.id,n.compute(t,i,e._read(n.id)));return i}static _deepEquals(e,t){if(typeof e!="object"||typeof t!="object"||!e||!t)return e===t;if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)?equals$2(e,t):!1;if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const i in e)if(!EditorOptionsUtil._deepEquals(e[i],t[i]))return!1;return!0}static checkEquals(e,t){const i=[];let n=!1;for(const r of editorOptionsRegistry){const s=!EditorOptionsUtil._deepEquals(e._read(r.id),t._read(r.id));i[r.id]=s,s&&(n=!0)}return n?new ConfigurationChangedEvent(i):null}static applyUpdate(e,t){let i=!1;for(const n of editorOptionsRegistry)if(t.hasOwnProperty(n.name)){const r=n.applyUpdate(e[n.name],t[n.name]);e[n.name]=r.newValue,i=i||r.didChange}return i}}function deepCloneAndMigrateOptions(o){const e=deepClone(o);return migrateOptions(e),e}function memoize(o,e,t){let i=null,n=null;if(typeof t.value=="function"?(i="value",n=t.value,n.length!==0&&console.warn("Memoize should only be used in functions with zero parameters")):typeof t.get=="function"&&(i="get",n=t.get),!n)throw new Error("not supported");const r=`$memoize$${e}`;t[i]=function(...s){return this.hasOwnProperty(r)||Object.defineProperty(this,r,{configurable:!1,enumerable:!1,writable:!1,value:n.apply(this,s)}),this[r]}}var __decorate$25=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},EventType;(function(o){o.Tap="-monaco-gesturetap",o.Change="-monaco-gesturechange",o.Start="-monaco-gesturestart",o.End="-monaco-gesturesend",o.Contextmenu="-monaco-gesturecontextmenu"})(EventType||(EventType={}));class Gesture extends Disposable{constructor(){super(),this.dispatched=!1,this.targets=new LinkedList,this.ignoreTargets=new LinkedList,this.activeTouches={},this.handle=null,this._lastSetTapCountTime=0,this._register(addDisposableListener(document,"touchstart",e=>this.onTouchStart(e),{passive:!1})),this._register(addDisposableListener(document,"touchend",e=>this.onTouchEnd(e))),this._register(addDisposableListener(document,"touchmove",e=>this.onTouchMove(e),{passive:!1}))}static addTarget(e){if(!Gesture.isTouchDevice())return Disposable.None;Gesture.INSTANCE||(Gesture.INSTANCE=new Gesture);const t=Gesture.INSTANCE.targets.push(e);return toDisposable(t)}static ignoreTarget(e){if(!Gesture.isTouchDevice())return Disposable.None;Gesture.INSTANCE||(Gesture.INSTANCE=new Gesture);const t=Gesture.INSTANCE.ignoreTargets.push(e);return toDisposable(t)}static isTouchDevice(){return"ontouchstart"in window||navigator.maxTouchPoints>0}dispose(){this.handle&&(this.handle.dispose(),this.handle=null),super.dispose()}onTouchStart(e){const t=Date.now();this.handle&&(this.handle.dispose(),this.handle=null);for(let i=0,n=e.targetTouches.length;i<n;i++){const r=e.targetTouches.item(i);this.activeTouches[r.identifier]={id:r.identifier,initialTarget:r.target,initialTimeStamp:t,initialPageX:r.pageX,initialPageY:r.pageY,rollingTimestamps:[t],rollingPageX:[r.pageX],rollingPageY:[r.pageY]};const s=this.newGestureEvent(EventType.Start,r.target);s.pageX=r.pageX,s.pageY=r.pageY,this.dispatchEvent(s)}this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)}onTouchEnd(e){const t=Date.now(),i=Object.keys(this.activeTouches).length;for(let n=0,r=e.changedTouches.length;n<r;n++){const s=e.changedTouches.item(n);if(!this.activeTouches.hasOwnProperty(String(s.identifier))){console.warn("move of an UNKNOWN touch",s);continue}const a=this.activeTouches[s.identifier],l=Date.now()-a.initialTimeStamp;if(l<Gesture.HOLD_DELAY&&Math.abs(a.initialPageX-tail(a.rollingPageX))<30&&Math.abs(a.initialPageY-tail(a.rollingPageY))<30){const d=this.newGestureEvent(EventType.Tap,a.initialTarget);d.pageX=tail(a.rollingPageX),d.pageY=tail(a.rollingPageY),this.dispatchEvent(d)}else if(l>=Gesture.HOLD_DELAY&&Math.abs(a.initialPageX-tail(a.rollingPageX))<30&&Math.abs(a.initialPageY-tail(a.rollingPageY))<30){const d=this.newGestureEvent(EventType.Contextmenu,a.initialTarget);d.pageX=tail(a.rollingPageX),d.pageY=tail(a.rollingPageY),this.dispatchEvent(d)}else if(i===1){const d=tail(a.rollingPageX),c=tail(a.rollingPageY),u=tail(a.rollingTimestamps)-a.rollingTimestamps[0],g=d-a.rollingPageX[0],f=c-a.rollingPageY[0],p=[...this.targets].filter(m=>a.initialTarget instanceof Node&&m.contains(a.initialTarget));this.inertia(p,t,Math.abs(g)/u,g>0?1:-1,d,Math.abs(f)/u,f>0?1:-1,c)}this.dispatchEvent(this.newGestureEvent(EventType.End,a.initialTarget)),delete this.activeTouches[s.identifier]}this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)}newGestureEvent(e,t){const i=document.createEvent("CustomEvent");return i.initEvent(e,!1,!0),i.initialTarget=t,i.tapCount=0,i}dispatchEvent(e){if(e.type===EventType.Tap){const t=new Date().getTime();let i=0;t-this._lastSetTapCountTime>Gesture.CLEAR_TAP_COUNT_TIME?i=1:i=2,this._lastSetTapCountTime=t,e.tapCount=i}else(e.type===EventType.Change||e.type===EventType.Contextmenu)&&(this._lastSetTapCountTime=0);if(e.initialTarget instanceof Node){for(const t of this.ignoreTargets)if(t.contains(e.initialTarget))return;for(const t of this.targets)t.contains(e.initialTarget)&&(t.dispatchEvent(e),this.dispatched=!0)}}inertia(e,t,i,n,r,s,a,l){this.handle=scheduleAtNextAnimationFrame(()=>{const d=Date.now(),c=d-t;let u=0,g=0,f=!0;i+=Gesture.SCROLL_FRICTION*c,s+=Gesture.SCROLL_FRICTION*c,i>0&&(f=!1,u=n*i*c),s>0&&(f=!1,g=a*s*c);const p=this.newGestureEvent(EventType.Change);p.translationX=u,p.translationY=g,e.forEach(m=>m.dispatchEvent(p)),f||this.inertia(e,d,i,n,r+u,s,a,l+g)})}onTouchMove(e){const t=Date.now();for(let i=0,n=e.changedTouches.length;i<n;i++){const r=e.changedTouches.item(i);if(!this.activeTouches.hasOwnProperty(String(r.identifier))){console.warn("end of an UNKNOWN touch",r);continue}const s=this.activeTouches[r.identifier],a=this.newGestureEvent(EventType.Change,s.initialTarget);a.translationX=r.pageX-tail(s.rollingPageX),a.translationY=r.pageY-tail(s.rollingPageY),a.pageX=r.pageX,a.pageY=r.pageY,this.dispatchEvent(a),s.rollingPageX.length>3&&(s.rollingPageX.shift(),s.rollingPageY.shift(),s.rollingTimestamps.shift()),s.rollingPageX.push(r.pageX),s.rollingPageY.push(r.pageY),s.rollingTimestamps.push(t)}this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)}}Gesture.SCROLL_FRICTION=-.005;Gesture.HOLD_DELAY=700;Gesture.CLEAR_TAP_COUNT_TIME=400;__decorate$25([memoize],Gesture,"isTouchDevice",null);class GlobalPointerMoveMonitor{constructor(){this._hooks=new DisposableStore,this._pointerMoveCallback=null,this._onStopCallback=null}dispose(){this.stopMonitoring(!1),this._hooks.dispose()}stopMonitoring(e,t){if(!this.isMonitoring())return;this._hooks.clear(),this._pointerMoveCallback=null;const i=this._onStopCallback;this._onStopCallback=null,e&&i&&i(t)}isMonitoring(){return!!this._pointerMoveCallback}startMonitoring(e,t,i,n,r){this.isMonitoring()&&this.stopMonitoring(!1),this._pointerMoveCallback=n,this._onStopCallback=r;let s=e;try{e.setPointerCapture(t),this._hooks.add(toDisposable(()=>{try{e.releasePointerCapture(t)}catch{}}))}catch{s=window}this._hooks.add(addDisposableListener(s,EventType$1.POINTER_MOVE,a=>{if(a.buttons!==i){this.stopMonitoring(!0);return}a.preventDefault(),this._pointerMoveCallback(a)})),this._hooks.add(addDisposableListener(s,EventType$1.POINTER_UP,a=>this.stopMonitoring(!0)))}}function asCssVariableName(o){return`--vscode-${o.replace(/\./g,"-")}`}function asCssVariable(o){return`var(${asCssVariableName(o)})`}function asCssVariableWithDefault(o,e){return`var(${asCssVariableName(o)}, ${e})`}const Extensions$4={ColorContribution:"base.contributions.colors"};class ColorRegistry{constructor(){this._onDidChangeSchema=new Emitter$1,this.onDidChangeSchema=this._onDidChangeSchema.event,this.colorSchema={type:"object",properties:{}},this.colorReferenceSchema={type:"string",enum:[],enumDescriptions:[]},this.colorsById={}}registerColor(e,t,i,n=!1,r){const s={id:e,description:i,defaults:t,needsTransparency:n,deprecationMessage:r};this.colorsById[e]=s;const a={type:"string",description:i,format:"color-hex",defaultSnippets:[{body:"${1:#ff0000}"}]};return r&&(a.deprecationMessage=r),this.colorSchema.properties[e]=a,this.colorReferenceSchema.enum.push(e),this.colorReferenceSchema.enumDescriptions.push(i),this._onDidChangeSchema.fire(),e}getColors(){return Object.keys(this.colorsById).map(e=>this.colorsById[e])}resolveDefaultColor(e,t){const i=this.colorsById[e];if(i&&i.defaults){const n=i.defaults[t.type];return resolveColorValue(n,t)}}getColorSchema(){return this.colorSchema}toString(){const e=(t,i)=>{const n=t.indexOf(".")===-1?0:1,r=i.indexOf(".")===-1?0:1;return n!==r?n-r:t.localeCompare(i)};return Object.keys(this.colorsById).sort(e).map(t=>`- \`${t}\`: ${this.colorsById[t].description}`).join(`
- `)}}const colorRegistry$1=new ColorRegistry;Registry.add(Extensions$4.ColorContribution,colorRegistry$1);function registerColor(o,e,t,i,n){return colorRegistry$1.registerColor(o,e,t,i,n)}const foreground=registerColor("foreground",{dark:"#CCCCCC",light:"#616161",hcDark:"#FFFFFF",hcLight:"#292929"},localize("foreground","Overall foreground color. This color is only used if not overridden by a component."));registerColor("disabledForeground",{dark:"#CCCCCC80",light:"#61616180",hcDark:"#A5A5A5",hcLight:"#7F7F7F"},localize("disabledForeground","Overall foreground for disabled elements. This color is only used if not overridden by a component."));const errorForeground=registerColor("errorForeground",{dark:"#F48771",light:"#A1260D",hcDark:"#F48771",hcLight:"#B5200D"},localize("errorForeground","Overall foreground color for error messages. This color is only used if not overridden by a component."));registerColor("descriptionForeground",{light:"#717171",dark:transparent(foreground,.7),hcDark:transparent(foreground,.7),hcLight:transparent(foreground,.7)},localize("descriptionForeground","Foreground color for description text providing additional information, for example for a label."));const iconForeground=registerColor("icon.foreground",{dark:"#C5C5C5",light:"#424242",hcDark:"#FFFFFF",hcLight:"#292929"},localize("iconForeground","The default color for icons in the workbench.")),focusBorder=registerColor("focusBorder",{dark:"#007FD4",light:"#0090F1",hcDark:"#F38518",hcLight:"#006BBD"},localize("focusBorder","Overall border color for focused elements. This color is only used if not overridden by a component.")),contrastBorder=registerColor("contrastBorder",{light:null,dark:null,hcDark:"#6FC3DF",hcLight:"#0F4A85"},localize("contrastBorder","An extra border around elements to separate them from others for greater contrast.")),activeContrastBorder=registerColor("contrastActiveBorder",{light:null,dark:null,hcDark:focusBorder,hcLight:focusBorder},localize("activeContrastBorder","An extra border around active elements to separate them from others for greater contrast."));registerColor("selection.background",{light:null,dark:null,hcDark:null,hcLight:null},localize("selectionBackground","The background color of text selections in the workbench (e.g. for input fields or text areas). Note that this does not apply to selections within the editor."));registerColor("textSeparator.foreground",{light:"#0000002e",dark:"#ffffff2e",hcDark:Color.black,hcLight:"#292929"},localize("textSeparatorForeground","Color for text separators."));const textLinkForeground=registerColor("textLink.foreground",{light:"#006AB1",dark:"#3794FF",hcDark:"#3794FF",hcLight:"#0F4A85"},localize("textLinkForeground","Foreground color for links in text."));registerColor("textLink.activeForeground",{light:"#006AB1",dark:"#3794FF",hcDark:"#3794FF",hcLight:"#0F4A85"},localize("textLinkActiveForeground","Foreground color for links in text when clicked on and on mouse hover."));registerColor("textPreformat.foreground",{light:"#A31515",dark:"#D7BA7D",hcDark:"#D7BA7D",hcLight:"#292929"},localize("textPreformatForeground","Foreground color for preformatted text segments."));registerColor("textBlockQuote.background",{light:"#7f7f7f1a",dark:"#7f7f7f1a",hcDark:null,hcLight:"#F2F2F2"},localize("textBlockQuoteBackground","Background color for block quotes in text."));registerColor("textBlockQuote.border",{light:"#007acc80",dark:"#007acc80",hcDark:Color.white,hcLight:"#292929"},localize("textBlockQuoteBorder","Border color for block quotes in text."));registerColor("textCodeBlock.background",{light:"#dcdcdc66",dark:"#0a0a0a66",hcDark:Color.black,hcLight:"#F2F2F2"},localize("textCodeBlockBackground","Background color for code blocks in text."));const widgetShadow=registerColor("widget.shadow",{dark:transparent(Color.black,.36),light:transparent(Color.black,.16),hcDark:null,hcLight:null},localize("widgetShadow","Shadow color of widgets such as find/replace inside the editor.")),widgetBorder=registerColor("widget.border",{dark:null,light:null,hcDark:contrastBorder,hcLight:contrastBorder},localize("widgetBorder","Border color of widgets such as find/replace inside the editor.")),inputBackground=registerColor("input.background",{dark:"#3C3C3C",light:Color.white,hcDark:Color.black,hcLight:Color.white},localize("inputBoxBackground","Input box background.")),inputForeground=registerColor("input.foreground",{dark:foreground,light:foreground,hcDark:foreground,hcLight:foreground},localize("inputBoxForeground","Input box foreground.")),inputBorder=registerColor("input.border",{dark:null,light:null,hcDark:contrastBorder,hcLight:contrastBorder},localize("inputBoxBorder","Input box border.")),inputActiveOptionBorder=registerColor("inputOption.activeBorder",{dark:"#007ACC",light:"#007ACC",hcDark:contrastBorder,hcLight:contrastBorder},localize("inputBoxActiveOptionBorder","Border color of activated options in input fields."));registerColor("inputOption.hoverBackground",{dark:"#5a5d5e80",light:"#b8b8b850",hcDark:null,hcLight:null},localize("inputOption.hoverBackground","Background color of activated options in input fields."));const inputActiveOptionBackground=registerColor("inputOption.activeBackground",{dark:transparent(focusBorder,.4),light:transparent(focusBorder,.2),hcDark:Color.transparent,hcLight:Color.transparent},localize("inputOption.activeBackground","Background hover color of options in input fields.")),inputActiveOptionForeground=registerColor("inputOption.activeForeground",{dark:Color.white,light:Color.black,hcDark:foreground,hcLight:foreground},localize("inputOption.activeForeground","Foreground color of activated options in input fields."));registerColor("input.placeholderForeground",{light:transparent(foreground,.5),dark:transparent(foreground,.5),hcDark:transparent(foreground,.7),hcLight:transparent(foreground,.7)},localize("inputPlaceholderForeground","Input box foreground color for placeholder text."));const inputValidationInfoBackground=registerColor("inputValidation.infoBackground",{dark:"#063B49",light:"#D6ECF2",hcDark:Color.black,hcLight:Color.white},localize("inputValidationInfoBackground","Input validation background color for information severity.")),inputValidationInfoForeground=registerColor("inputValidation.infoForeground",{dark:null,light:null,hcDark:null,hcLight:foreground},localize("inputValidationInfoForeground","Input validation foreground color for information severity.")),inputValidationInfoBorder=registerColor("inputValidation.infoBorder",{dark:"#007acc",light:"#007acc",hcDark:contrastBorder,hcLight:contrastBorder},localize("inputValidationInfoBorder","Input validation border color for information severity.")),inputValidationWarningBackground=registerColor("inputValidation.warningBackground",{dark:"#352A05",light:"#F6F5D2",hcDark:Color.black,hcLight:Color.white},localize("inputValidationWarningBackground","Input validation background color for warning severity.")),inputValidationWarningForeground=registerColor("inputValidation.warningForeground",{dark:null,light:null,hcDark:null,hcLight:foreground},localize("inputValidationWarningForeground","Input validation foreground color for warning severity.")),inputValidationWarningBorder=registerColor("inputValidation.warningBorder",{dark:"#B89500",light:"#B89500",hcDark:contrastBorder,hcLight:contrastBorder},localize("inputValidationWarningBorder","Input validation border color for warning severity.")),inputValidationErrorBackground=registerColor("inputValidation.errorBackground",{dark:"#5A1D1D",light:"#F2DEDE",hcDark:Color.black,hcLight:Color.white},localize("inputValidationErrorBackground","Input validation background color for error severity.")),inputValidationErrorForeground=registerColor("inputValidation.errorForeground",{dark:null,light:null,hcDark:null,hcLight:foreground},localize("inputValidationErrorForeground","Input validation foreground color for error severity.")),inputValidationErrorBorder=registerColor("inputValidation.errorBorder",{dark:"#BE1100",light:"#BE1100",hcDark:contrastBorder,hcLight:contrastBorder},localize("inputValidationErrorBorder","Input validation border color for error severity.")),selectBackground=registerColor("dropdown.background",{dark:"#3C3C3C",light:Color.white,hcDark:Color.black,hcLight:Color.white},localize("dropdownBackground","Dropdown background.")),selectListBackground=registerColor("dropdown.listBackground",{dark:null,light:null,hcDark:Color.black,hcLight:Color.white},localize("dropdownListBackground","Dropdown list background.")),selectForeground=registerColor("dropdown.foreground",{dark:"#F0F0F0",light:foreground,hcDark:Color.white,hcLight:foreground},localize("dropdownForeground","Dropdown foreground.")),selectBorder=registerColor("dropdown.border",{dark:selectBackground,light:"#CECECE",hcDark:contrastBorder,hcLight:contrastBorder},localize("dropdownBorder","Dropdown border.")),buttonForeground=registerColor("button.foreground",{dark:Color.white,light:Color.white,hcDark:Color.white,hcLight:Color.white},localize("buttonForeground","Button foreground color.")),buttonSeparator=registerColor("button.separator",{dark:transparent(buttonForeground,.4),light:transparent(buttonForeground,.4),hcDark:transparent(buttonForeground,.4),hcLight:transparent(buttonForeground,.4)},localize("buttonSeparator","Button separator color.")),buttonBackground=registerColor("button.background",{dark:"#0E639C",light:"#007ACC",hcDark:null,hcLight:"#0F4A85"},localize("buttonBackground","Button background color.")),buttonHoverBackground=registerColor("button.hoverBackground",{dark:lighten(buttonBackground,.2),light:darken(buttonBackground,.2),hcDark:buttonBackground,hcLight:buttonBackground},localize("buttonHoverBackground","Button background color when hovering.")),buttonBorder=registerColor("button.border",{dark:contrastBorder,light:contrastBorder,hcDark:contrastBorder,hcLight:contrastBorder},localize("buttonBorder","Button border color.")),buttonSecondaryForeground=registerColor("button.secondaryForeground",{dark:Color.white,light:Color.white,hcDark:Color.white,hcLight:foreground},localize("buttonSecondaryForeground","Secondary button foreground color.")),buttonSecondaryBackground=registerColor("button.secondaryBackground",{dark:"#3A3D41",light:"#5F6A79",hcDark:null,hcLight:Color.white},localize("buttonSecondaryBackground","Secondary button background color.")),buttonSecondaryHoverBackground=registerColor("button.secondaryHoverBackground",{dark:lighten(buttonSecondaryBackground,.2),light:darken(buttonSecondaryBackground,.2),hcDark:null,hcLight:null},localize("buttonSecondaryHoverBackground","Secondary button background color when hovering.")),badgeBackground=registerColor("badge.background",{dark:"#4D4D4D",light:"#C4C4C4",hcDark:Color.black,hcLight:"#0F4A85"},localize("badgeBackground","Badge background color. Badges are small information labels, e.g. for search results count.")),badgeForeground=registerColor("badge.foreground",{dark:Color.white,light:"#333",hcDark:Color.white,hcLight:Color.white},localize("badgeForeground","Badge foreground color. Badges are small information labels, e.g. for search results count.")),scrollbarShadow=registerColor("scrollbar.shadow",{dark:"#000000",light:"#DDDDDD",hcDark:null,hcLight:null},localize("scrollbarShadow","Scrollbar shadow to indicate that the view is scrolled.")),scrollbarSliderBackground=registerColor("scrollbarSlider.background",{dark:Color.fromHex("#797979").transparent(.4),light:Color.fromHex("#646464").transparent(.4),hcDark:transparent(contrastBorder,.6),hcLight:transparent(contrastBorder,.4)},localize("scrollbarSliderBackground","Scrollbar slider background color.")),scrollbarSliderHoverBackground=registerColor("scrollbarSlider.hoverBackground",{dark:Color.fromHex("#646464").transparent(.7),light:Color.fromHex("#646464").transparent(.7),hcDark:transparent(contrastBorder,.8),hcLight:transparent(contrastBorder,.8)},localize("scrollbarSliderHoverBackground","Scrollbar slider background color when hovering.")),scrollbarSliderActiveBackground=registerColor("scrollbarSlider.activeBackground",{dark:Color.fromHex("#BFBFBF").transparent(.4),light:Color.fromHex("#000000").transparent(.6),hcDark:contrastBorder,hcLight:contrastBorder},localize("scrollbarSliderActiveBackground","Scrollbar slider background color when clicked on.")),progressBarBackground=registerColor("progressBar.background",{dark:Color.fromHex("#0E70C0"),light:Color.fromHex("#0E70C0"),hcDark:contrastBorder,hcLight:contrastBorder},localize("progressBarBackground","Background color of the progress bar that can show for long running operations."));registerColor("editorError.background",{dark:null,light:null,hcDark:null,hcLight:null},localize("editorError.background","Background color of error text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0);const editorErrorForeground=registerColor("editorError.foreground",{dark:"#F14C4C",light:"#E51400",hcDark:"#F48771",hcLight:"#B5200D"},localize("editorError.foreground","Foreground color of error squigglies in the editor.")),editorErrorBorder=registerColor("editorError.border",{dark:null,light:null,hcDark:Color.fromHex("#E47777").transparent(.8),hcLight:"#B5200D"},localize("errorBorder","If set, color of double underlines for errors in the editor."));registerColor("editorWarning.background",{dark:null,light:null,hcDark:null,hcLight:null},localize("editorWarning.background","Background color of warning text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0);const editorWarningForeground=registerColor("editorWarning.foreground",{dark:"#CCA700",light:"#BF8803",hcDark:"#FFD370",hcLight:"#895503"},localize("editorWarning.foreground","Foreground color of warning squigglies in the editor.")),editorWarningBorder=registerColor("editorWarning.border",{dark:null,light:null,hcDark:Color.fromHex("#FFCC00").transparent(.8),hcLight:Color.fromHex("#FFCC00").transparent(.8)},localize("warningBorder","If set, color of double underlines for warnings in the editor."));registerColor("editorInfo.background",{dark:null,light:null,hcDark:null,hcLight:null},localize("editorInfo.background","Background color of info text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0);const editorInfoForeground=registerColor("editorInfo.foreground",{dark:"#3794FF",light:"#1a85ff",hcDark:"#3794FF",hcLight:"#1a85ff"},localize("editorInfo.foreground","Foreground color of info squigglies in the editor.")),editorInfoBorder=registerColor("editorInfo.border",{dark:null,light:null,hcDark:Color.fromHex("#3794FF").transparent(.8),hcLight:"#292929"},localize("infoBorder","If set, color of double underlines for infos in the editor.")),editorHintForeground=registerColor("editorHint.foreground",{dark:Color.fromHex("#eeeeee").transparent(.7),light:"#6c6c6c",hcDark:null,hcLight:null},localize("editorHint.foreground","Foreground color of hint squigglies in the editor."));registerColor("editorHint.border",{dark:null,light:null,hcDark:Color.fromHex("#eeeeee").transparent(.8),hcLight:"#292929"},localize("hintBorder","If set, color of double underlines for hints in the editor."));registerColor("sash.hoverBorder",{dark:focusBorder,light:focusBorder,hcDark:focusBorder,hcLight:focusBorder},localize("sashActiveBorder","Border color of active sashes."));const editorBackground=registerColor("editor.background",{light:"#ffffff",dark:"#1E1E1E",hcDark:Color.black,hcLight:Color.white},localize("editorBackground","Editor background color.")),editorForeground=registerColor("editor.foreground",{light:"#333333",dark:"#BBBBBB",hcDark:Color.white,hcLight:foreground},localize("editorForeground","Editor default foreground color."));registerColor("editorStickyScroll.background",{light:editorBackground,dark:editorBackground,hcDark:editorBackground,hcLight:editorBackground},localize("editorStickyScrollBackground","Sticky scroll background color for the editor"));registerColor("editorStickyScrollHover.background",{dark:"#2A2D2E",light:"#F0F0F0",hcDark:null,hcLight:Color.fromHex("#0F4A85").transparent(.1)},localize("editorStickyScrollHoverBackground","Sticky scroll on hover background color for the editor"));const editorWidgetBackground=registerColor("editorWidget.background",{dark:"#252526",light:"#F3F3F3",hcDark:"#0C141F",hcLight:Color.white},localize("editorWidgetBackground","Background color of editor widgets, such as find/replace.")),editorWidgetForeground=registerColor("editorWidget.foreground",{dark:foreground,light:foreground,hcDark:foreground,hcLight:foreground},localize("editorWidgetForeground","Foreground color of editor widgets, such as find/replace.")),editorWidgetBorder=registerColor("editorWidget.border",{dark:"#454545",light:"#C8C8C8",hcDark:contrastBorder,hcLight:contrastBorder},localize("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.")),editorWidgetResizeBorder=registerColor("editorWidget.resizeBorder",{light:null,dark:null,hcDark:null,hcLight:null},localize("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.")),quickInputBackground=registerColor("quickInput.background",{dark:editorWidgetBackground,light:editorWidgetBackground,hcDark:editorWidgetBackground,hcLight:editorWidgetBackground},localize("pickerBackground","Quick picker background color. The quick picker widget is the container for pickers like the command palette.")),quickInputForeground=registerColor("quickInput.foreground",{dark:editorWidgetForeground,light:editorWidgetForeground,hcDark:editorWidgetForeground,hcLight:editorWidgetForeground},localize("pickerForeground","Quick picker foreground color. The quick picker widget is the container for pickers like the command palette.")),quickInputTitleBackground=registerColor("quickInputTitle.background",{dark:new Color(new RGBA(255,255,255,.105)),light:new Color(new RGBA(0,0,0,.06)),hcDark:"#000000",hcLight:Color.white},localize("pickerTitleBackground","Quick picker title background color. The quick picker widget is the container for pickers like the command palette.")),pickerGroupForeground=registerColor("pickerGroup.foreground",{dark:"#3794FF",light:"#0066BF",hcDark:Color.white,hcLight:"#0F4A85"},localize("pickerGroupForeground","Quick picker color for grouping labels.")),pickerGroupBorder=registerColor("pickerGroup.border",{dark:"#3F3F46",light:"#CCCEDB",hcDark:Color.white,hcLight:"#0F4A85"},localize("pickerGroupBorder","Quick picker color for grouping borders.")),keybindingLabelBackground=registerColor("keybindingLabel.background",{dark:new Color(new RGBA(128,128,128,.17)),light:new Color(new RGBA(221,221,221,.4)),hcDark:Color.transparent,hcLight:Color.transparent},localize("keybindingLabelBackground","Keybinding label background color. The keybinding label is used to represent a keyboard shortcut.")),keybindingLabelForeground=registerColor("keybindingLabel.foreground",{dark:Color.fromHex("#CCCCCC"),light:Color.fromHex("#555555"),hcDark:Color.white,hcLight:foreground},localize("keybindingLabelForeground","Keybinding label foreground color. The keybinding label is used to represent a keyboard shortcut.")),keybindingLabelBorder=registerColor("keybindingLabel.border",{dark:new Color(new RGBA(51,51,51,.6)),light:new Color(new RGBA(204,204,204,.4)),hcDark:new Color(new RGBA(111,195,223)),hcLight:contrastBorder},localize("keybindingLabelBorder","Keybinding label border color. The keybinding label is used to represent a keyboard shortcut.")),keybindingLabelBottomBorder=registerColor("keybindingLabel.bottomBorder",{dark:new Color(new RGBA(68,68,68,.6)),light:new Color(new RGBA(187,187,187,.4)),hcDark:new Color(new RGBA(111,195,223)),hcLight:foreground},localize("keybindingLabelBottomBorder","Keybinding label border bottom color. The keybinding label is used to represent a keyboard shortcut.")),editorSelectionBackground=registerColor("editor.selectionBackground",{light:"#ADD6FF",dark:"#264F78",hcDark:"#f3f518",hcLight:"#0F4A85"},localize("editorSelectionBackground","Color of the editor selection.")),editorSelectionForeground=registerColor("editor.selectionForeground",{light:null,dark:null,hcDark:"#000000",hcLight:Color.white},localize("editorSelectionForeground","Color of the selected text for high contrast.")),editorInactiveSelection=registerColor("editor.inactiveSelectionBackground",{light:transparent(editorSelectionBackground,.5),dark:transparent(editorSelectionBackground,.5),hcDark:transparent(editorSelectionBackground,.7),hcLight:transparent(editorSelectionBackground,.5)},localize("editorInactiveSelection","Color of the selection in an inactive editor. The color must not be opaque so as not to hide underlying decorations."),!0),editorSelectionHighlight=registerColor("editor.selectionHighlightBackground",{light:lessProminent(editorSelectionBackground,editorBackground,.3,.6),dark:lessProminent(editorSelectionBackground,editorBackground,.3,.6),hcDark:null,hcLight:null},localize("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);registerColor("editor.selectionHighlightBorder",{light:null,dark:null,hcDark:activeContrastBorder,hcLight:activeContrastBorder},localize("editorSelectionHighlightBorder","Border color for regions with the same content as the selection."));const editorFindMatch=registerColor("editor.findMatchBackground",{light:"#A8AC94",dark:"#515C6A",hcDark:null,hcLight:null},localize("editorFindMatch","Color of the current search match.")),editorFindMatchHighlight=registerColor("editor.findMatchHighlightBackground",{light:"#EA5C0055",dark:"#EA5C0055",hcDark:null,hcLight:null},localize("findMatchHighlight","Color of the other search matches. The color must not be opaque so as not to hide underlying decorations."),!0),editorFindRangeHighlight=registerColor("editor.findRangeHighlightBackground",{dark:"#3a3d4166",light:"#b4b4b44d",hcDark:null,hcLight:null},localize("findRangeHighlight","Color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations."),!0),editorFindMatchBorder=registerColor("editor.findMatchBorder",{light:null,dark:null,hcDark:activeContrastBorder,hcLight:activeContrastBorder},localize("editorFindMatchBorder","Border color of the current search match.")),editorFindMatchHighlightBorder=registerColor("editor.findMatchHighlightBorder",{light:null,dark:null,hcDark:activeContrastBorder,hcLight:activeContrastBorder},localize("findMatchHighlightBorder","Border color of the other search matches.")),editorFindRangeHighlightBorder=registerColor("editor.findRangeHighlightBorder",{dark:null,light:null,hcDark:transparent(activeContrastBorder,.4),hcLight:transparent(activeContrastBorder,.4)},localize("findRangeHighlightBorder","Border color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations."),!0);registerColor("searchEditor.findMatchBackground",{light:transparent(editorFindMatchHighlight,.66),dark:transparent(editorFindMatchHighlight,.66),hcDark:editorFindMatchHighlight,hcLight:editorFindMatchHighlight},localize("searchEditor.queryMatch","Color of the Search Editor query matches."));registerColor("searchEditor.findMatchBorder",{light:transparent(editorFindMatchHighlightBorder,.66),dark:transparent(editorFindMatchHighlightBorder,.66),hcDark:editorFindMatchHighlightBorder,hcLight:editorFindMatchHighlightBorder},localize("searchEditor.editorFindMatchBorder","Border color of the Search Editor query matches."));registerColor("search.resultsInfoForeground",{light:foreground,dark:transparent(foreground,.65),hcDark:foreground,hcLight:foreground},localize("search.resultsInfoForeground","Color of the text in the search viewlet's completion message."));registerColor("editor.hoverHighlightBackground",{light:"#ADD6FF26",dark:"#264f7840",hcDark:"#ADD6FF26",hcLight:null},localize("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);const editorHoverBackground=registerColor("editorHoverWidget.background",{light:editorWidgetBackground,dark:editorWidgetBackground,hcDark:editorWidgetBackground,hcLight:editorWidgetBackground},localize("hoverBackground","Background color of the editor hover."));registerColor("editorHoverWidget.foreground",{light:editorWidgetForeground,dark:editorWidgetForeground,hcDark:editorWidgetForeground,hcLight:editorWidgetForeground},localize("hoverForeground","Foreground color of the editor hover."));const editorHoverBorder=registerColor("editorHoverWidget.border",{light:editorWidgetBorder,dark:editorWidgetBorder,hcDark:editorWidgetBorder,hcLight:editorWidgetBorder},localize("hoverBorder","Border color of the editor hover."));registerColor("editorHoverWidget.statusBarBackground",{dark:lighten(editorHoverBackground,.2),light:darken(editorHoverBackground,.05),hcDark:editorWidgetBackground,hcLight:editorWidgetBackground},localize("statusBarBackground","Background color of the editor hover status bar."));const editorActiveLinkForeground=registerColor("editorLink.activeForeground",{dark:"#4E94CE",light:Color.blue,hcDark:Color.cyan,hcLight:"#292929"},localize("activeLinkForeground","Color of active links.")),editorInlayHintForeground=registerColor("editorInlayHint.foreground",{dark:"#969696",light:"#969696",hcDark:Color.white,hcLight:Color.black},localize("editorInlayHintForeground","Foreground color of inline hints")),editorInlayHintBackground=registerColor("editorInlayHint.background",{dark:transparent(badgeBackground,.1),light:transparent(badgeBackground,.1),hcDark:transparent(Color.white,.1),hcLight:transparent(badgeBackground,.1)},localize("editorInlayHintBackground","Background color of inline hints")),editorInlayHintTypeForeground=registerColor("editorInlayHint.typeForeground",{dark:editorInlayHintForeground,light:editorInlayHintForeground,hcDark:editorInlayHintForeground,hcLight:editorInlayHintForeground},localize("editorInlayHintForegroundTypes","Foreground color of inline hints for types")),editorInlayHintTypeBackground=registerColor("editorInlayHint.typeBackground",{dark:editorInlayHintBackground,light:editorInlayHintBackground,hcDark:editorInlayHintBackground,hcLight:editorInlayHintBackground},localize("editorInlayHintBackgroundTypes","Background color of inline hints for types")),editorInlayHintParameterForeground=registerColor("editorInlayHint.parameterForeground",{dark:editorInlayHintForeground,light:editorInlayHintForeground,hcDark:editorInlayHintForeground,hcLight:editorInlayHintForeground},localize("editorInlayHintForegroundParameter","Foreground color of inline hints for parameters")),editorInlayHintParameterBackground=registerColor("editorInlayHint.parameterBackground",{dark:editorInlayHintBackground,light:editorInlayHintBackground,hcDark:editorInlayHintBackground,hcLight:editorInlayHintBackground},localize("editorInlayHintBackgroundParameter","Background color of inline hints for parameters"));registerColor("editorLightBulb.foreground",{dark:"#FFCC00",light:"#DDB100",hcDark:"#FFCC00",hcLight:"#007ACC"},localize("editorLightBulbForeground","The color used for the lightbulb actions icon."));registerColor("editorLightBulbAutoFix.foreground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},localize("editorLightBulbAutoFixForeground","The color used for the lightbulb auto fix actions icon."));const defaultInsertColor=new Color(new RGBA(155,185,85,.2)),defaultRemoveColor=new Color(new RGBA(255,0,0,.2)),diffInserted=registerColor("diffEditor.insertedTextBackground",{dark:"#9ccc2c33",light:"#9ccc2c40",hcDark:null,hcLight:null},localize("diffEditorInserted","Background color for text that got inserted. The color must not be opaque so as not to hide underlying decorations."),!0),diffRemoved=registerColor("diffEditor.removedTextBackground",{dark:"#ff000033",light:"#ff000033",hcDark:null,hcLight:null},localize("diffEditorRemoved","Background color for text that got removed. The color must not be opaque so as not to hide underlying decorations."),!0);registerColor("diffEditor.insertedLineBackground",{dark:defaultInsertColor,light:defaultInsertColor,hcDark:null,hcLight:null},localize("diffEditorInsertedLines","Background color for lines that got inserted. The color must not be opaque so as not to hide underlying decorations."),!0);registerColor("diffEditor.removedLineBackground",{dark:defaultRemoveColor,light:defaultRemoveColor,hcDark:null,hcLight:null},localize("diffEditorRemovedLines","Background color for lines that got removed. The color must not be opaque so as not to hide underlying decorations."),!0);registerColor("diffEditorGutter.insertedLineBackground",{dark:null,light:null,hcDark:null,hcLight:null},localize("diffEditorInsertedLineGutter","Background color for the margin where lines got inserted."));registerColor("diffEditorGutter.removedLineBackground",{dark:null,light:null,hcDark:null,hcLight:null},localize("diffEditorRemovedLineGutter","Background color for the margin where lines got removed."));const diffOverviewRulerInserted=registerColor("diffEditorOverview.insertedForeground",{dark:null,light:null,hcDark:null,hcLight:null},localize("diffEditorOverviewInserted","Diff overview ruler foreground for inserted content.")),diffOverviewRulerRemoved=registerColor("diffEditorOverview.removedForeground",{dark:null,light:null,hcDark:null,hcLight:null},localize("diffEditorOverviewRemoved","Diff overview ruler foreground for removed content."));registerColor("diffEditor.insertedTextBorder",{dark:null,light:null,hcDark:"#33ff2eff",hcLight:"#374E06"},localize("diffEditorInsertedOutline","Outline color for the text that got inserted."));registerColor("diffEditor.removedTextBorder",{dark:null,light:null,hcDark:"#FF008F",hcLight:"#AD0707"},localize("diffEditorRemovedOutline","Outline color for text that got removed."));registerColor("diffEditor.border",{dark:null,light:null,hcDark:contrastBorder,hcLight:contrastBorder},localize("diffEditorBorder","Border color between the two text editors."));registerColor("diffEditor.diagonalFill",{dark:"#cccccc33",light:"#22222233",hcDark:null,hcLight:null},localize("diffDiagonalFill","Color of the diff editor's diagonal fill. The diagonal fill is used in side-by-side diff views."));registerColor("diffEditor.unchangedRegionBackground",{dark:"#3e3e3e",light:"#e4e4e4",hcDark:null,hcLight:null},localize("diffEditor.unchangedRegionBackground","The background color of unchanged blocks in the diff editor."));registerColor("diffEditor.unchangedRegionForeground",{dark:"#a3a2a2",light:"#4d4c4c",hcDark:null,hcLight:null},localize("diffEditor.unchangedRegionForeground","The foreground color of unchanged blocks in the diff editor."));registerColor("diffEditor.unchangedCodeBackground",{dark:"#74747429",light:"#b8b8b829",hcDark:null,hcLight:null},localize("diffEditor.unchangedCodeBackground","The background color of unchanged code in the diff editor."));const listFocusBackground=registerColor("list.focusBackground",{dark:null,light:null,hcDark:null,hcLight:null},localize("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.")),listFocusForeground=registerColor("list.focusForeground",{dark:null,light:null,hcDark:null,hcLight:null},localize("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.")),listFocusOutline=registerColor("list.focusOutline",{dark:focusBorder,light:focusBorder,hcDark:activeContrastBorder,hcLight:activeContrastBorder},localize("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.")),listFocusAndSelectionOutline=registerColor("list.focusAndSelectionOutline",{dark:null,light:null,hcDark:null,hcLight:null},localize("listFocusAndSelectionOutline","List/Tree outline color for the focused item when the list/tree is active and selected. An active list/tree has keyboard focus, an inactive does not.")),listActiveSelectionBackground=registerColor("list.activeSelectionBackground",{dark:"#04395E",light:"#0060C0",hcDark:null,hcLight:Color.fromHex("#0F4A85").transparent(.1)},localize("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.")),listActiveSelectionForeground=registerColor("list.activeSelectionForeground",{dark:Color.white,light:Color.white,hcDark:null,hcLight:null},localize("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.")),listActiveSelectionIconForeground=registerColor("list.activeSelectionIconForeground",{dark:null,light:null,hcDark:null,hcLight:null},localize("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.")),listInactiveSelectionBackground=registerColor("list.inactiveSelectionBackground",{dark:"#37373D",light:"#E4E6F1",hcDark:null,hcLight:Color.fromHex("#0F4A85").transparent(.1)},localize("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.")),listInactiveSelectionForeground=registerColor("list.inactiveSelectionForeground",{dark:null,light:null,hcDark:null,hcLight:null},localize("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.")),listInactiveSelectionIconForeground=registerColor("list.inactiveSelectionIconForeground",{dark:null,light:null,hcDark:null,hcLight:null},localize("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.")),listInactiveFocusBackground=registerColor("list.inactiveFocusBackground",{dark:null,light:null,hcDark:null,hcLight:null},localize("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.")),listInactiveFocusOutline=registerColor("list.inactiveFocusOutline",{dark:null,light:null,hcDark:null,hcLight:null},localize("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.")),listHoverBackground=registerColor("list.hoverBackground",{dark:"#2A2D2E",light:"#F0F0F0",hcDark:Color.white.transparent(.1),hcLight:Color.fromHex("#0F4A85").transparent(.1)},localize("listHoverBackground","List/Tree background when hovering over items using the mouse.")),listHoverForeground=registerColor("list.hoverForeground",{dark:null,light:null,hcDark:null,hcLight:null},localize("listHoverForeground","List/Tree foreground when hovering over items using the mouse.")),listDropBackground=registerColor("list.dropBackground",{dark:"#062F4A",light:"#D6EBFF",hcDark:null,hcLight:null},localize("listDropBackground","List/Tree drag and drop background when moving items around using the mouse.")),listHighlightForeground=registerColor("list.highlightForeground",{dark:"#2AAAFF",light:"#0066BF",hcDark:focusBorder,hcLight:focusBorder},localize("highlight","List/Tree foreground color of the match highlights when searching inside the list/tree.")),listFocusHighlightForeground=registerColor("list.focusHighlightForeground",{dark:listHighlightForeground,light:ifDefinedThenElse(listActiveSelectionBackground,listHighlightForeground,"#BBE7FF"),hcDark:listHighlightForeground,hcLight:listHighlightForeground},localize("listFocusHighlightForeground","List/Tree foreground color of the match highlights on actively focused items when searching inside the list/tree."));registerColor("list.invalidItemForeground",{dark:"#B89500",light:"#B89500",hcDark:"#B89500",hcLight:"#B5200D"},localize("invalidItemForeground","List/Tree foreground color for invalid items, for example an unresolved root in explorer."));registerColor("list.errorForeground",{dark:"#F88070",light:"#B01011",hcDark:null,hcLight:null},localize("listErrorForeground","Foreground color of list items containing errors."));registerColor("list.warningForeground",{dark:"#CCA700",light:"#855F00",hcDark:null,hcLight:null},localize("listWarningForeground","Foreground color of list items containing warnings."));const listFilterWidgetBackground=registerColor("listFilterWidget.background",{light:darken(editorWidgetBackground,0),dark:lighten(editorWidgetBackground,0),hcDark:editorWidgetBackground,hcLight:editorWidgetBackground},localize("listFilterWidgetBackground","Background color of the type filter widget in lists and trees.")),listFilterWidgetOutline=registerColor("listFilterWidget.outline",{dark:Color.transparent,light:Color.transparent,hcDark:"#f38518",hcLight:"#007ACC"},localize("listFilterWidgetOutline","Outline color of the type filter widget in lists and trees.")),listFilterWidgetNoMatchesOutline=registerColor("listFilterWidget.noMatchesOutline",{dark:"#BE1100",light:"#BE1100",hcDark:contrastBorder,hcLight:contrastBorder},localize("listFilterWidgetNoMatchesOutline","Outline color of the type filter widget in lists and trees, when there are no matches.")),listFilterWidgetShadow=registerColor("listFilterWidget.shadow",{dark:widgetShadow,light:widgetShadow,hcDark:widgetShadow,hcLight:widgetShadow},localize("listFilterWidgetShadow","Shadow color of the type filter widget in lists and trees."));registerColor("list.filterMatchBackground",{dark:editorFindMatchHighlight,light:editorFindMatchHighlight,hcDark:null,hcLight:null},localize("listFilterMatchHighlight","Background color of the filtered match."));registerColor("list.filterMatchBorder",{dark:editorFindMatchHighlightBorder,light:editorFindMatchHighlightBorder,hcDark:contrastBorder,hcLight:activeContrastBorder},localize("listFilterMatchHighlightBorder","Border color of the filtered match."));const treeIndentGuidesStroke=registerColor("tree.indentGuidesStroke",{dark:"#585858",light:"#a9a9a9",hcDark:"#a9a9a9",hcLight:"#a5a5a5"},localize("treeIndentGuidesStroke","Tree stroke color for the indentation guides.")),treeInactiveIndentGuidesStroke=registerColor("tree.inactiveIndentGuidesStroke",{dark:transparent(treeIndentGuidesStroke,.4),light:transparent(treeIndentGuidesStroke,.4),hcDark:transparent(treeIndentGuidesStroke,.4),hcLight:transparent(treeIndentGuidesStroke,.4)},localize("treeInactiveIndentGuidesStroke","Tree stroke color for the indentation guides that are not active.")),tableColumnsBorder=registerColor("tree.tableColumnsBorder",{dark:"#CCCCCC20",light:"#61616120",hcDark:null,hcLight:null},localize("tableColumnsBorder","Table border color between columns.")),tableOddRowsBackgroundColor=registerColor("tree.tableOddRowsBackground",{dark:transparent(foreground,.04),light:transparent(foreground,.04),hcDark:null,hcLight:null},localize("tableOddRowsBackgroundColor","Background color for odd table rows."));registerColor("list.deemphasizedForeground",{dark:"#8C8C8C",light:"#8E8E90",hcDark:"#A7A8A9",hcLight:"#666666"},localize("listDeemphasizedForeground","List/Tree foreground color for items that are deemphasized. "));const checkboxBackground=registerColor("checkbox.background",{dark:selectBackground,light:selectBackground,hcDark:selectBackground,hcLight:selectBackground},localize("checkbox.background","Background color of checkbox widget."));registerColor("checkbox.selectBackground",{dark:editorWidgetBackground,light:editorWidgetBackground,hcDark:editorWidgetBackground,hcLight:editorWidgetBackground},localize("checkbox.select.background","Background color of checkbox widget when the element it's in is selected."));const checkboxForeground=registerColor("checkbox.foreground",{dark:selectForeground,light:selectForeground,hcDark:selectForeground,hcLight:selectForeground},localize("checkbox.foreground","Foreground color of checkbox widget.")),checkboxBorder=registerColor("checkbox.border",{dark:selectBorder,light:selectBorder,hcDark:selectBorder,hcLight:selectBorder},localize("checkbox.border","Border color of checkbox widget."));registerColor("checkbox.selectBorder",{dark:iconForeground,light:iconForeground,hcDark:iconForeground,hcLight:iconForeground},localize("checkbox.select.border","Border color of checkbox widget when the element it's in is selected."));const _deprecatedQuickInputListFocusBackground=registerColor("quickInput.list.focusBackground",{dark:null,light:null,hcDark:null,hcLight:null},"",void 0,localize("quickInput.list.focusBackground deprecation","Please use quickInputList.focusBackground instead")),quickInputListFocusForeground=registerColor("quickInputList.focusForeground",{dark:listActiveSelectionForeground,light:listActiveSelectionForeground,hcDark:listActiveSelectionForeground,hcLight:listActiveSelectionForeground},localize("quickInput.listFocusForeground","Quick picker foreground color for the focused item.")),quickInputListFocusIconForeground=registerColor("quickInputList.focusIconForeground",{dark:listActiveSelectionIconForeground,light:listActiveSelectionIconForeground,hcDark:listActiveSelectionIconForeground,hcLight:listActiveSelectionIconForeground},localize("quickInput.listFocusIconForeground","Quick picker icon foreground color for the focused item.")),quickInputListFocusBackground=registerColor("quickInputList.focusBackground",{dark:oneOf(_deprecatedQuickInputListFocusBackground,listActiveSelectionBackground),light:oneOf(_deprecatedQuickInputListFocusBackground,listActiveSelectionBackground),hcDark:null,hcLight:null},localize("quickInput.listFocusBackground","Quick picker background color for the focused item.")),menuBorder=registerColor("menu.border",{dark:null,light:null,hcDark:contrastBorder,hcLight:contrastBorder},localize("menuBorder","Border color of menus.")),menuForeground=registerColor("menu.foreground",{dark:selectForeground,light:selectForeground,hcDark:selectForeground,hcLight:selectForeground},localize("menuForeground","Foreground color of menu items.")),menuBackground=registerColor("menu.background",{dark:selectBackground,light:selectBackground,hcDark:selectBackground,hcLight:selectBackground},localize("menuBackground","Background color of menu items.")),menuSelectionForeground=registerColor("menu.selectionForeground",{dark:listActiveSelectionForeground,light:listActiveSelectionForeground,hcDark:listActiveSelectionForeground,hcLight:listActiveSelectionForeground},localize("menuSelectionForeground","Foreground color of the selected menu item in menus.")),menuSelectionBackground=registerColor("menu.selectionBackground",{dark:listActiveSelectionBackground,light:listActiveSelectionBackground,hcDark:listActiveSelectionBackground,hcLight:listActiveSelectionBackground},localize("menuSelectionBackground","Background color of the selected menu item in menus.")),menuSelectionBorder=registerColor("menu.selectionBorder",{dark:null,light:null,hcDark:activeContrastBorder,hcLight:activeContrastBorder},localize("menuSelectionBorder","Border color of the selected menu item in menus.")),menuSeparatorBackground=registerColor("menu.separatorBackground",{dark:"#606060",light:"#D4D4D4",hcDark:contrastBorder,hcLight:contrastBorder},localize("menuSeparatorBackground","Color of a separator menu item in menus.")),toolbarHoverBackground=registerColor("toolbar.hoverBackground",{dark:"#5a5d5e50",light:"#b8b8b850",hcDark:null,hcLight:null},localize("toolbarHoverBackground","Toolbar background when hovering over actions using the mouse"));registerColor("toolbar.hoverOutline",{dark:null,light:null,hcDark:activeContrastBorder,hcLight:activeContrastBorder},localize("toolbarHoverOutline","Toolbar outline when hovering over actions using the mouse"));registerColor("toolbar.activeBackground",{dark:lighten(toolbarHoverBackground,.1),light:darken(toolbarHoverBackground,.1),hcDark:null,hcLight:null},localize("toolbarActiveBackground","Toolbar background when holding the mouse over actions"));registerColor("editor.snippetTabstopHighlightBackground",{dark:new Color(new RGBA(124,124,124,.3)),light:new Color(new RGBA(10,50,100,.2)),hcDark:new Color(new RGBA(124,124,124,.3)),hcLight:new Color(new RGBA(10,50,100,.2))},localize("snippetTabstopHighlightBackground","Highlight background color of a snippet tabstop."));registerColor("editor.snippetTabstopHighlightBorder",{dark:null,light:null,hcDark:null,hcLight:null},localize("snippetTabstopHighlightBorder","Highlight border color of a snippet tabstop."));registerColor("editor.snippetFinalTabstopHighlightBackground",{dark:null,light:null,hcDark:null,hcLight:null},localize("snippetFinalTabstopHighlightBackground","Highlight background color of the final tabstop of a snippet."));registerColor("editor.snippetFinalTabstopHighlightBorder",{dark:"#525252",light:new Color(new RGBA(10,50,100,.5)),hcDark:"#525252",hcLight:"#292929"},localize("snippetFinalTabstopHighlightBorder","Highlight border color of the final tabstop of a snippet."));const breadcrumbsForeground=registerColor("breadcrumb.foreground",{light:transparent(foreground,.8),dark:transparent(foreground,.8),hcDark:transparent(foreground,.8),hcLight:transparent(foreground,.8)},localize("breadcrumbsFocusForeground","Color of focused breadcrumb items.")),breadcrumbsBackground=registerColor("breadcrumb.background",{light:editorBackground,dark:editorBackground,hcDark:editorBackground,hcLight:editorBackground},localize("breadcrumbsBackground","Background color of breadcrumb items.")),breadcrumbsFocusForeground=registerColor("breadcrumb.focusForeground",{light:darken(foreground,.2),dark:lighten(foreground,.1),hcDark:lighten(foreground,.1),hcLight:lighten(foreground,.1)},localize("breadcrumbsFocusForeground","Color of focused breadcrumb items.")),breadcrumbsActiveSelectionForeground=registerColor("breadcrumb.activeSelectionForeground",{light:darken(foreground,.2),dark:lighten(foreground,.1),hcDark:lighten(foreground,.1),hcLight:lighten(foreground,.1)},localize("breadcrumbsSelectedForeground","Color of selected breadcrumb items."));registerColor("breadcrumbPicker.background",{light:editorWidgetBackground,dark:editorWidgetBackground,hcDark:editorWidgetBackground,hcLight:editorWidgetBackground},localize("breadcrumbsSelectedBackground","Background color of breadcrumb item picker."));const headerTransparency=.5,currentBaseColor=Color.fromHex("#40C8AE").transparent(headerTransparency),incomingBaseColor=Color.fromHex("#40A6FF").transparent(headerTransparency),commonBaseColor=Color.fromHex("#606060").transparent(.4),contentTransparency=.4,rulerTransparency=1,mergeCurrentHeaderBackground=registerColor("merge.currentHeaderBackground",{dark:currentBaseColor,light:currentBaseColor,hcDark:null,hcLight:null},localize("mergeCurrentHeaderBackground","Current header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);registerColor("merge.currentContentBackground",{dark:transparent(mergeCurrentHeaderBackground,contentTransparency),light:transparent(mergeCurrentHeaderBackground,contentTransparency),hcDark:transparent(mergeCurrentHeaderBackground,contentTransparency),hcLight:transparent(mergeCurrentHeaderBackground,contentTransparency)},localize("mergeCurrentContentBackground","Current content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);const mergeIncomingHeaderBackground=registerColor("merge.incomingHeaderBackground",{dark:incomingBaseColor,light:incomingBaseColor,hcDark:null,hcLight:null},localize("mergeIncomingHeaderBackground","Incoming header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);registerColor("merge.incomingContentBackground",{dark:transparent(mergeIncomingHeaderBackground,contentTransparency),light:transparent(mergeIncomingHeaderBackground,contentTransparency),hcDark:transparent(mergeIncomingHeaderBackground,contentTransparency),hcLight:transparent(mergeIncomingHeaderBackground,contentTransparency)},localize("mergeIncomingContentBackground","Incoming content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);const mergeCommonHeaderBackground=registerColor("merge.commonHeaderBackground",{dark:commonBaseColor,light:commonBaseColor,hcDark:null,hcLight:null},localize("mergeCommonHeaderBackground","Common ancestor header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);registerColor("merge.commonContentBackground",{dark:transparent(mergeCommonHeaderBackground,contentTransparency),light:transparent(mergeCommonHeaderBackground,contentTransparency),hcDark:transparent(mergeCommonHeaderBackground,contentTransparency),hcLight:transparent(mergeCommonHeaderBackground,contentTransparency)},localize("mergeCommonContentBackground","Common ancestor content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);const mergeBorder=registerColor("merge.border",{dark:null,light:null,hcDark:"#C3DF6F",hcLight:"#007ACC"},localize("mergeBorder","Border color on headers and the splitter in inline merge-conflicts."));registerColor("editorOverviewRuler.currentContentForeground",{dark:transparent(mergeCurrentHeaderBackground,rulerTransparency),light:transparent(mergeCurrentHeaderBackground,rulerTransparency),hcDark:mergeBorder,hcLight:mergeBorder},localize("overviewRulerCurrentContentForeground","Current overview ruler foreground for inline merge-conflicts."));registerColor("editorOverviewRuler.incomingContentForeground",{dark:transparent(mergeIncomingHeaderBackground,rulerTransparency),light:transparent(mergeIncomingHeaderBackground,rulerTransparency),hcDark:mergeBorder,hcLight:mergeBorder},localize("overviewRulerIncomingContentForeground","Incoming overview ruler foreground for inline merge-conflicts."));registerColor("editorOverviewRuler.commonContentForeground",{dark:transparent(mergeCommonHeaderBackground,rulerTransparency),light:transparent(mergeCommonHeaderBackground,rulerTransparency),hcDark:mergeBorder,hcLight:mergeBorder},localize("overviewRulerCommonContentForeground","Common ancestor overview ruler foreground for inline merge-conflicts."));const overviewRulerFindMatchForeground=registerColor("editorOverviewRuler.findMatchForeground",{dark:"#d186167e",light:"#d186167e",hcDark:"#AB5A00",hcLight:""},localize("overviewRulerFindMatchForeground","Overview ruler marker color for find matches. The color must not be opaque so as not to hide underlying decorations."),!0),overviewRulerSelectionHighlightForeground=registerColor("editorOverviewRuler.selectionHighlightForeground",{dark:"#A0A0A0CC",light:"#A0A0A0CC",hcDark:"#A0A0A0CC",hcLight:"#A0A0A0CC"},localize("overviewRulerSelectionHighlightForeground","Overview ruler marker color for selection highlights. The color must not be opaque so as not to hide underlying decorations."),!0),minimapFindMatch=registerColor("minimap.findMatchHighlight",{light:"#d18616",dark:"#d18616",hcDark:"#AB5A00",hcLight:"#0F4A85"},localize("minimapFindMatchHighlight","Minimap marker color for find matches."),!0),minimapSelectionOccurrenceHighlight=registerColor("minimap.selectionOccurrenceHighlight",{light:"#c9c9c9",dark:"#676767",hcDark:"#ffffff",hcLight:"#0F4A85"},localize("minimapSelectionOccurrenceHighlight","Minimap marker color for repeating editor selections."),!0),minimapSelection=registerColor("minimap.selectionHighlight",{light:"#ADD6FF",dark:"#264F78",hcDark:"#ffffff",hcLight:"#0F4A85"},localize("minimapSelectionHighlight","Minimap marker color for the editor selection."),!0),minimapInfo=registerColor("minimap.infoHighlight",{dark:editorInfoForeground,light:editorInfoForeground,hcDark:editorInfoBorder,hcLight:editorInfoBorder},localize("minimapInfo","Minimap marker color for infos.")),minimapWarning=registerColor("minimap.warningHighlight",{dark:editorWarningForeground,light:editorWarningForeground,hcDark:editorWarningBorder,hcLight:editorWarningBorder},localize("overviewRuleWarning","Minimap marker color for warnings.")),minimapError=registerColor("minimap.errorHighlight",{dark:new Color(new RGBA(255,18,18,.7)),light:new Color(new RGBA(255,18,18,.7)),hcDark:new Color(new RGBA(255,50,50,1)),hcLight:"#B5200D"},localize("minimapError","Minimap marker color for errors.")),minimapBackground=registerColor("minimap.background",{dark:null,light:null,hcDark:null,hcLight:null},localize("minimapBackground","Minimap background color.")),minimapForegroundOpacity=registerColor("minimap.foregroundOpacity",{dark:Color.fromHex("#000f"),light:Color.fromHex("#000f"),hcDark:Color.fromHex("#000f"),hcLight:Color.fromHex("#000f")},localize("minimapForegroundOpacity",'Opacity of foreground elements rendered in the minimap. For example, "#000000c0" will render the elements with 75% opacity.'));registerColor("minimapSlider.background",{light:transparent(scrollbarSliderBackground,.5),dark:transparent(scrollbarSliderBackground,.5),hcDark:transparent(scrollbarSliderBackground,.5),hcLight:transparent(scrollbarSliderBackground,.5)},localize("minimapSliderBackground","Minimap slider background color."));registerColor("minimapSlider.hoverBackground",{light:transparent(scrollbarSliderHoverBackground,.5),dark:transparent(scrollbarSliderHoverBackground,.5),hcDark:transparent(scrollbarSliderHoverBackground,.5),hcLight:transparent(scrollbarSliderHoverBackground,.5)},localize("minimapSliderHoverBackground","Minimap slider background color when hovering."));registerColor("minimapSlider.activeBackground",{light:transparent(scrollbarSliderActiveBackground,.5),dark:transparent(scrollbarSliderActiveBackground,.5),hcDark:transparent(scrollbarSliderActiveBackground,.5),hcLight:transparent(scrollbarSliderActiveBackground,.5)},localize("minimapSliderActiveBackground","Minimap slider background color when clicked on."));const problemsErrorIconForeground=registerColor("problemsErrorIcon.foreground",{dark:editorErrorForeground,light:editorErrorForeground,hcDark:editorErrorForeground,hcLight:editorErrorForeground},localize("problemsErrorIconForeground","The color used for the problems error icon.")),problemsWarningIconForeground=registerColor("problemsWarningIcon.foreground",{dark:editorWarningForeground,light:editorWarningForeground,hcDark:editorWarningForeground,hcLight:editorWarningForeground},localize("problemsWarningIconForeground","The color used for the problems warning icon.")),problemsInfoIconForeground=registerColor("problemsInfoIcon.foreground",{dark:editorInfoForeground,light:editorInfoForeground,hcDark:editorInfoForeground,hcLight:editorInfoForeground},localize("problemsInfoIconForeground","The color used for the problems info icon."));registerColor("charts.foreground",{dark:foreground,light:foreground,hcDark:foreground,hcLight:foreground},localize("chartsForeground","The foreground color used in charts."));registerColor("charts.lines",{dark:transparent(foreground,.5),light:transparent(foreground,.5),hcDark:transparent(foreground,.5),hcLight:transparent(foreground,.5)},localize("chartsLines","The color used for horizontal lines in charts."));registerColor("charts.red",{dark:editorErrorForeground,light:editorErrorForeground,hcDark:editorErrorForeground,hcLight:editorErrorForeground},localize("chartsRed","The red color used in chart visualizations."));registerColor("charts.blue",{dark:editorInfoForeground,light:editorInfoForeground,hcDark:editorInfoForeground,hcLight:editorInfoForeground},localize("chartsBlue","The blue color used in chart visualizations."));registerColor("charts.yellow",{dark:editorWarningForeground,light:editorWarningForeground,hcDark:editorWarningForeground,hcLight:editorWarningForeground},localize("chartsYellow","The yellow color used in chart visualizations."));registerColor("charts.orange",{dark:minimapFindMatch,light:minimapFindMatch,hcDark:minimapFindMatch,hcLight:minimapFindMatch},localize("chartsOrange","The orange color used in chart visualizations."));registerColor("charts.green",{dark:"#89D185",light:"#388A34",hcDark:"#89D185",hcLight:"#374e06"},localize("chartsGreen","The green color used in chart visualizations."));registerColor("charts.purple",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},localize("chartsPurple","The purple color used in chart visualizations."));function executeTransform(o,e){var t,i,n,r;switch(o.op){case 0:return(t=resolveColorValue(o.value,e))===null||t===void 0?void 0:t.darken(o.factor);case 1:return(i=resolveColorValue(o.value,e))===null||i===void 0?void 0:i.lighten(o.factor);case 2:return(n=resolveColorValue(o.value,e))===null||n===void 0?void 0:n.transparent(o.factor);case 3:{const s=resolveColorValue(o.background,e);return s?(r=resolveColorValue(o.value,e))===null||r===void 0?void 0:r.makeOpaque(s):resolveColorValue(o.value,e)}case 4:for(const s of o.values){const a=resolveColorValue(s,e);if(a)return a}return;case 6:return resolveColorValue(e.defines(o.if)?o.then:o.else,e);case 5:{const s=resolveColorValue(o.value,e);if(!s)return;const a=resolveColorValue(o.background,e);return a?s.isDarkerThan(a)?Color.getLighterColor(s,a,o.factor).transparent(o.transparency):Color.getDarkerColor(s,a,o.factor).transparent(o.transparency):s.transparent(o.factor*o.transparency)}default:throw assertNever()}}function darken(o,e){return{op:0,value:o,factor:e}}function lighten(o,e){return{op:1,value:o,factor:e}}function transparent(o,e){return{op:2,value:o,factor:e}}function oneOf(...o){return{op:4,values:o}}function ifDefinedThenElse(o,e,t){return{op:6,if:o,then:e,else:t}}function lessProminent(o,e,t,i){return{op:5,value:o,background:e,factor:t,transparency:i}}function resolveColorValue(o,e){if(o!==null){if(typeof o=="string")return o[0]==="#"?Color.fromHex(o):e.getColor(o);if(o instanceof Color)return o;if(typeof o=="object")return executeTransform(o,e)}}const workbenchColorsSchemaId="vscode://schemas/workbench-colors",schemaRegistry$1=Registry.as(Extensions$7.JSONContribution);schemaRegistry$1.registerSchema(workbenchColorsSchemaId,colorRegistry$1.getColorSchema());const delayer$1=new RunOnceScheduler(()=>schemaRegistry$1.notifySchemaChanged(workbenchColorsSchemaId),200);colorRegistry$1.onDidChangeSchema(()=>{delayer$1.isScheduled()||delayer$1.schedule()});class PageCoordinates{constructor(e,t){this.x=e,this.y=t,this._pageCoordinatesBrand=void 0}toClientCoordinates(){return new ClientCoordinates(this.x-window.scrollX,this.y-window.scrollY)}}class ClientCoordinates{constructor(e,t){this.clientX=e,this.clientY=t,this._clientCoordinatesBrand=void 0}toPageCoordinates(){return new PageCoordinates(this.clientX+window.scrollX,this.clientY+window.scrollY)}}class EditorPagePosition{constructor(e,t,i,n){this.x=e,this.y=t,this.width=i,this.height=n,this._editorPagePositionBrand=void 0}}class CoordinatesRelativeToEditor{constructor(e,t){this.x=e,this.y=t,this._positionRelativeToEditorBrand=void 0}}function createEditorPagePosition(o){const e=getDomNodePagePosition(o);return new EditorPagePosition(e.left,e.top,e.width,e.height)}function createCoordinatesRelativeToEditor(o,e,t){const i=e.width/o.offsetWidth,n=e.height/o.offsetHeight,r=(t.x-e.x)/i,s=(t.y-e.y)/n;return new CoordinatesRelativeToEditor(r,s)}class EditorMouseEvent extends StandardMouseEvent{constructor(e,t,i){super(e),this._editorMouseEventBrand=void 0,this.isFromPointerCapture=t,this.pos=new PageCoordinates(this.posx,this.posy),this.editorPos=createEditorPagePosition(i),this.relativePos=createCoordinatesRelativeToEditor(i,this.editorPos,this.pos)}}class EditorMouseEventFactory{constructor(e){this._editorViewDomNode=e}_create(e){return new EditorMouseEvent(e,!1,this._editorViewDomNode)}onContextMenu(e,t){return addDisposableListener(e,"contextmenu",i=>{t(this._create(i))})}onMouseUp(e,t){return addDisposableListener(e,"mouseup",i=>{t(this._create(i))})}onMouseDown(e,t){return addDisposableListener(e,EventType$1.MOUSE_DOWN,i=>{t(this._create(i))})}onPointerDown(e,t){return addDisposableListener(e,EventType$1.POINTER_DOWN,i=>{t(this._create(i),i.pointerId)})}onMouseLeave(e,t){return addDisposableListener(e,EventType$1.MOUSE_LEAVE,i=>{t(this._create(i))})}onMouseMove(e,t){return addDisposableListener(e,"mousemove",i=>t(this._create(i)))}}class EditorPointerEventFactory{constructor(e){this._editorViewDomNode=e}_create(e){return new EditorMouseEvent(e,!1,this._editorViewDomNode)}onPointerUp(e,t){return addDisposableListener(e,"pointerup",i=>{t(this._create(i))})}onPointerDown(e,t){return addDisposableListener(e,EventType$1.POINTER_DOWN,i=>{t(this._create(i),i.pointerId)})}onPointerLeave(e,t){return addDisposableListener(e,EventType$1.POINTER_LEAVE,i=>{t(this._create(i))})}onPointerMove(e,t){return addDisposableListener(e,"pointermove",i=>t(this._create(i)))}}class GlobalEditorPointerMoveMonitor extends Disposable{constructor(e){super(),this._editorViewDomNode=e,this._globalPointerMoveMonitor=this._register(new GlobalPointerMoveMonitor),this._keydownListener=null}startMonitoring(e,t,i,n,r){this._keydownListener=addStandardDisposableListener(e.ownerDocument,"keydown",s=>{s.toKeyCodeChord().isModifierKey()||this._globalPointerMoveMonitor.stopMonitoring(!0,s.browserEvent)},!0),this._globalPointerMoveMonitor.startMonitoring(e,t,i,s=>{n(new EditorMouseEvent(s,!0,this._editorViewDomNode))},s=>{this._keydownListener.dispose(),r(s)})}stopMonitoring(){this._globalPointerMoveMonitor.stopMonitoring(!0)}}class DynamicCssRules{constructor(e){this._editor=e,this._instanceId=++DynamicCssRules._idPool,this._counter=0,this._rules=new Map,this._garbageCollectionScheduler=new RunOnceScheduler(()=>this.garbageCollect(),1e3)}createClassNameRef(e){const t=this.getOrCreateRule(e);return t.increaseRefCount(),{className:t.className,dispose:()=>{t.decreaseRefCount(),this._garbageCollectionScheduler.schedule()}}}getOrCreateRule(e){const t=this.computeUniqueKey(e);let i=this._rules.get(t);if(!i){const n=this._counter++;i=new RefCountedCssRule(t,`dyn-rule-${this._instanceId}-${n}`,isInShadowDOM(this._editor.getContainerDomNode())?this._editor.getContainerDomNode():void 0,e),this._rules.set(t,i)}return i}computeUniqueKey(e){return JSON.stringify(e)}garbageCollect(){for(const e of this._rules.values())e.hasReferences()||(this._rules.delete(e.key),e.dispose())}}DynamicCssRules._idPool=0;class RefCountedCssRule{constructor(e,t,i,n){this.key=e,this.className=t,this.properties=n,this._referenceCount=0,this._styleElement=createStyleSheet(i),this._styleElement.textContent=this.getCssText(this.className,this.properties)}getCssText(e,t){let i=`.${e} {`;for(const n in t){const r=t[n];let s;typeof r=="object"?s=asCssVariable(r.id):s=r;const a=camelToDashes(n);i+=`
- ${a}: ${s};`}return i+=`
- }`,i}dispose(){this._styleElement.remove()}increaseRefCount(){this._referenceCount++}decreaseRefCount(){this._referenceCount--}hasReferences(){return this._referenceCount>0}}function camelToDashes(o){return o.replace(/(^[A-Z])/,([e])=>e.toLowerCase()).replace(/([A-Z])/g,([e])=>`-${e.toLowerCase()}`)}class ViewEventHandler extends Disposable{constructor(){super(),this._shouldRender=!0}shouldRender(){return this._shouldRender}forceShouldRender(){this._shouldRender=!0}setShouldRender(){this._shouldRender=!0}onDidRender(){this._shouldRender=!1}onCompositionStart(e){return!1}onCompositionEnd(e){return!1}onConfigurationChanged(e){return!1}onCursorStateChanged(e){return!1}onDecorationsChanged(e){return!1}onFlushed(e){return!1}onFocusChanged(e){return!1}onLanguageConfigurationChanged(e){return!1}onLineMappingChanged(e){return!1}onLinesChanged(e){return!1}onLinesDeleted(e){return!1}onLinesInserted(e){return!1}onRevealRangeRequest(e){return!1}onScrollChanged(e){return!1}onThemeChanged(e){return!1}onTokensChanged(e){return!1}onTokensColorsChanged(e){return!1}onZonesChanged(e){return!1}handleEvents(e){let t=!1;for(let i=0,n=e.length;i<n;i++){const r=e[i];switch(r.type){case 0:this.onCompositionStart(r)&&(t=!0);break;case 1:this.onCompositionEnd(r)&&(t=!0);break;case 2:this.onConfigurationChanged(r)&&(t=!0);break;case 3:this.onCursorStateChanged(r)&&(t=!0);break;case 4:this.onDecorationsChanged(r)&&(t=!0);break;case 5:this.onFlushed(r)&&(t=!0);break;case 6:this.onFocusChanged(r)&&(t=!0);break;case 7:this.onLanguageConfigurationChanged(r)&&(t=!0);break;case 8:this.onLineMappingChanged(r)&&(t=!0);break;case 9:this.onLinesChanged(r)&&(t=!0);break;case 10:this.onLinesDeleted(r)&&(t=!0);break;case 11:this.onLinesInserted(r)&&(t=!0);break;case 12:this.onRevealRangeRequest(r)&&(t=!0);break;case 13:this.onScrollChanged(r)&&(t=!0);break;case 15:this.onTokensChanged(r)&&(t=!0);break;case 14:this.onThemeChanged(r)&&(t=!0);break;case 16:this.onTokensColorsChanged(r)&&(t=!0);break;case 17:this.onZonesChanged(r)&&(t=!0);break;default:console.info("View received unknown event: "),console.info(r)}}t&&(this._shouldRender=!0)}}class ViewPart extends ViewEventHandler{constructor(e){super(),this._context=e,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}}class PartFingerprints{static write(e,t){e.setAttribute("data-mprt",String(t))}static read(e){const t=e.getAttribute("data-mprt");return t===null?0:parseInt(t,10)}static collect(e,t){const i=[];let n=0;for(;e&&e!==e.ownerDocument.body&&e!==t;)e.nodeType===e.ELEMENT_NODE&&(i[n++]=this.read(e)),e=e.parentElement;const r=new Uint8Array(n);for(let s=0;s<n;s++)r[s]=i[n-s-1];return r}}class RestrictedRenderingContext{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,t){return this._viewLayout.getVerticalOffsetForLineNumber(e,t)}getVerticalOffsetAfterLineNumber(e,t){return this._viewLayout.getVerticalOffsetAfterLineNumber(e,t)}getDecorationsInViewport(){return this.viewportData.getDecorationsInViewport()}}class RenderingContext extends RestrictedRenderingContext{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 LineVisibleRanges{constructor(e,t,i,n){this.outsideRenderedLine=e,this.lineNumber=t,this.ranges=i,this.continuesOnNextLine=n}}class HorizontalRange{static from(e){const t=new Array(e.length);for(let i=0,n=e.length;i<n;i++){const r=e[i];t[i]=new HorizontalRange(r.left,r.width)}return t}constructor(e,t){this._horizontalRangeBrand=void 0,this.left=Math.round(e),this.width=Math.round(t)}toString(){return`[${this.left},${this.width}]`}}class FloatHorizontalRange{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 HorizontalPosition{constructor(e,t){this.outsideRenderedLine=e,this.originalLeft=t,this.left=Math.round(this.originalLeft)}}class VisibleRanges{constructor(e,t){this.outsideRenderedLine=e,this.ranges=t}}class RangeUtil{static _createRange(){return this._handyReadyRange||(this._handyReadyRange=document.createRange()),this._handyReadyRange}static _detachRange(e,t){e.selectNodeContents(t)}static _readClientRects(e,t,i,n,r){const s=this._createRange();try{return s.setStart(e,t),s.setEnd(i,n),s.getClientRects()}catch{return null}finally{this._detachRange(s,r)}}static _mergeAdjacentRanges(e){if(e.length===1)return e;e.sort(FloatHorizontalRange.compare);const t=[];let i=0,n=e[0];for(let r=1,s=e.length;r<s;r++){const a=e[r];n.left+n.width+.9>=a.left?n.width=Math.max(n.width,a.left+a.width-n.left):(t[i++]=n,n=a)}return t[i++]=n,t}static _createHorizontalRangesFromClientRects(e,t,i){if(!e||e.length===0)return null;const n=[];for(let r=0,s=e.length;r<s;r++){const a=e[r];n[r]=new FloatHorizontalRange(Math.max(0,(a.left-t)/i),a.width/i)}return this._mergeAdjacentRanges(n)}static readHorizontalRanges(e,t,i,n,r,s){const l=e.children.length-1;if(0>l)return null;if(t=Math.min(l,Math.max(0,t)),n=Math.min(l,Math.max(0,n)),t===n&&i===r&&i===0&&!e.children[t].firstChild){const g=e.children[t].getClientRects();return s.markDidDomLayout(),this._createHorizontalRangesFromClientRects(g,s.clientRectDeltaLeft,s.clientRectScale)}t!==n&&n>0&&r===0&&(n--,r=1073741824);let d=e.children[t].firstChild,c=e.children[n].firstChild;if((!d||!c)&&(!d&&i===0&&t>0&&(d=e.children[t-1].firstChild,i=1073741824),!c&&r===0&&n>0&&(c=e.children[n-1].firstChild,r=1073741824)),!d||!c)return null;i=Math.min(d.textContent.length,Math.max(0,i)),r=Math.min(c.textContent.length,Math.max(0,r));const u=this._readClientRects(d,i,c,r,s.endNode);return s.markDidDomLayout(),this._createHorizontalRangesFromClientRects(u,s.clientRectDeltaLeft,s.clientRectScale)}}var ColorScheme;(function(o){o.DARK="dark",o.LIGHT="light",o.HIGH_CONTRAST_DARK="hcDark",o.HIGH_CONTRAST_LIGHT="hcLight"})(ColorScheme||(ColorScheme={}));function isHighContrast(o){return o===ColorScheme.HIGH_CONTRAST_DARK||o===ColorScheme.HIGH_CONTRAST_LIGHT}function isDark(o){return o===ColorScheme.DARK||o===ColorScheme.HIGH_CONTRAST_DARK}const canUseFastRenderedViewLine=function(){return isNative?!0:!(isLinux||isFirefox||isSafari)}();let monospaceAssumptionsAreValid=!0;class ViewLineOptions{constructor(e,t){this.themeType=t;const i=e.options,n=i.get(50);i.get(38)==="off"?this.renderWhitespace=i.get(98):this.renderWhitespace="none",this.renderControlCharacters=i.get(93),this.spaceWidth=n.spaceWidth,this.middotWidth=n.middotWidth,this.wsmiddotWidth=n.wsmiddotWidth,this.useMonospaceOptimizations=n.isMonospace&&!i.get(33),this.canUseHalfwidthRightwardsArrow=n.canUseHalfwidthRightwardsArrow,this.lineHeight=i.get(66),this.stopRenderingLineAfter=i.get(116),this.fontLigatures=i.get(51)}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 ViewLine{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)this._renderedViewLine.domNode=createFastDomNode(e);else throw new Error("I have no rendered view line to set the dom node to...")}onContentChanged(){this._isMaybeInvalid=!0}onTokensChanged(){this._isMaybeInvalid=!0}onDecorationsChanged(){this._isMaybeInvalid=!0}onOptionsChanged(e){this._isMaybeInvalid=!0,this._options=e}onSelectionChanged(){return isHighContrast(this._options.themeType)||this._options.renderWhitespace==="selection"?(this._isMaybeInvalid=!0,!0):!1}renderLine(e,t,i,n){if(this._isMaybeInvalid===!1)return!1;this._isMaybeInvalid=!1;const r=i.getViewLineRenderingData(e),s=this._options,a=LineDecoration.filter(r.inlineDecorations,e,r.minColumn,r.maxColumn);let l=null;if(isHighContrast(s.themeType)||this._options.renderWhitespace==="selection"){const g=i.selections;for(const f of g){if(f.endLineNumber<e||f.startLineNumber>e)continue;const p=f.startLineNumber===e?f.startColumn:r.minColumn,m=f.endLineNumber===e?f.endColumn:r.maxColumn;p<m&&(isHighContrast(s.themeType)&&a.push(new LineDecoration(p,m,"inline-selected-text",0)),this._options.renderWhitespace==="selection"&&(l||(l=[]),l.push(new LineRange(p-1,m-1))))}}const d=new RenderLineInput(s.useMonospaceOptimizations,s.canUseHalfwidthRightwardsArrow,r.content,r.continuesWithWrappedLine,r.isBasicASCII,r.containsRTL,r.minColumn-1,r.tokens,a,r.tabSize,r.startVisibleColumn,s.spaceWidth,s.middotWidth,s.wsmiddotWidth,s.stopRenderingLineAfter,s.renderWhitespace,s.renderControlCharacters,s.fontLigatures!==EditorFontLigatures.OFF,l);if(this._renderedViewLine&&this._renderedViewLine.input.equals(d))return!1;n.appendString('<div style="top:'),n.appendString(String(t)),n.appendString("px;height:"),n.appendString(String(this._options.lineHeight)),n.appendString('px;" class="'),n.appendString(ViewLine.CLASS_NAME),n.appendString('">');const c=renderViewLine(d,n);n.appendString("</div>");let u=null;return monospaceAssumptionsAreValid&&canUseFastRenderedViewLine&&r.isBasicASCII&&s.useMonospaceOptimizations&&c.containsForeignElements===0&&(u=new FastRenderedViewLine(this._renderedViewLine?this._renderedViewLine.domNode:null,d,c.characterMapping)),u||(u=createRenderedLine(this._renderedViewLine?this._renderedViewLine.domNode:null,d,c.characterMapping,c.containsRTL,c.containsForeignElements)),this._renderedViewLine=u,!0}layoutLine(e,t){this._renderedViewLine&&this._renderedViewLine.domNode&&(this._renderedViewLine.domNode.setTop(t),this._renderedViewLine.domNode.setHeight(this._options.lineHeight))}getWidth(e){return this._renderedViewLine?this._renderedViewLine.getWidth(e):0}getWidthIsFast(){return this._renderedViewLine?this._renderedViewLine.getWidthIsFast():!0}needsMonospaceFontCheck(){return this._renderedViewLine?this._renderedViewLine instanceof FastRenderedViewLine:!1}monospaceAssumptionsAreValid(){return this._renderedViewLine&&this._renderedViewLine instanceof FastRenderedViewLine?this._renderedViewLine.monospaceAssumptionsAreValid():monospaceAssumptionsAreValid}onMonospaceAssumptionsInvalidated(){this._renderedViewLine&&this._renderedViewLine instanceof FastRenderedViewLine&&(this._renderedViewLine=this._renderedViewLine.toSlowRenderedLine())}getVisibleRangesForRange(e,t,i,n){if(!this._renderedViewLine)return null;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 r=this._renderedViewLine.input.stopRenderingLineAfter;if(r!==-1&&t>r+1&&i>r+1)return new VisibleRanges(!0,[new FloatHorizontalRange(this.getWidth(n),0)]);r!==-1&&t>r+1&&(t=r+1),r!==-1&&i>r+1&&(i=r+1);const s=this._renderedViewLine.getVisibleRangesForRange(e,t,i,n);return s&&s.length>0?new VisibleRanges(!1,s):null}getColumnOfNodeOffset(e,t){return this._renderedViewLine?this._renderedViewLine.getColumnOfNodeOffset(e,t):1}}ViewLine.CLASS_NAME="view-line";class FastRenderedViewLine{constructor(e,t,i){this._cachedWidth=-1,this.domNode=e,this.input=t;const n=Math.floor(t.lineContent.length/300);if(n>0){this._keyColumnPixelOffsetCache=new Float32Array(n);for(let r=0;r<n;r++)this._keyColumnPixelOffsetCache[r]=-1}else this._keyColumnPixelOffsetCache=null;this._characterMapping=i,this._charWidth=t.spaceWidth}getWidth(e){if(!this.domNode||this.input.lineContent.length<300){const t=this._characterMapping.getHorizontalOffset(this._characterMapping.length);return Math.round(this._charWidth*t)}return this._cachedWidth===-1&&(this._cachedWidth=this._getReadingTarget(this.domNode).offsetWidth,e==null||e.markDidDomLayout()),this._cachedWidth}getWidthIsFast(){return this.input.lineContent.length<300||this._cachedWidth!==-1}monospaceAssumptionsAreValid(){if(!this.domNode)return monospaceAssumptionsAreValid;if(this.input.lineContent.length<300){const e=this.getWidth(null),t=this.domNode.domNode.firstChild.offsetWidth;Math.abs(e-t)>=2&&(console.warn("monospace assumptions have been violated, therefore disabling monospace optimizations!"),monospaceAssumptionsAreValid=!1)}return monospaceAssumptionsAreValid}toSlowRenderedLine(){return createRenderedLine(this.domNode,this.input,this._characterMapping,!1,0)}getVisibleRangesForRange(e,t,i,n){const r=this._getColumnPixelOffset(e,t,n),s=this._getColumnPixelOffset(e,i,n);return[new FloatHorizontalRange(r,s-r)]}_getColumnPixelOffset(e,t,i){if(t<=300){const d=this._characterMapping.getHorizontalOffset(t);return this._charWidth*d}const n=Math.floor((t-1)/300)-1,r=(n+1)*300+1;let s=-1;if(this._keyColumnPixelOffsetCache&&(s=this._keyColumnPixelOffsetCache[n],s===-1&&(s=this._actualReadPixelOffset(e,r,i),this._keyColumnPixelOffsetCache[n]=s)),s===-1){const d=this._characterMapping.getHorizontalOffset(t);return this._charWidth*d}const a=this._characterMapping.getHorizontalOffset(r),l=this._characterMapping.getHorizontalOffset(t);return s+this._charWidth*(l-a)}_getReadingTarget(e){return e.domNode.firstChild}_actualReadPixelOffset(e,t,i){if(!this.domNode)return-1;const n=this._characterMapping.getDomPosition(t),r=RangeUtil.readHorizontalRanges(this._getReadingTarget(this.domNode),n.partIndex,n.charIndex,n.partIndex,n.charIndex,i);return!r||r.length===0?-1:r[0].left}getColumnOfNodeOffset(e,t){return getColumnOfNodeOffset(this._characterMapping,e,t)}}class RenderedViewLine{constructor(e,t,i,n,r){if(this.domNode=e,this.input=t,this._characterMapping=i,this._isWhitespaceOnly=/^\s*$/.test(t.lineContent),this._containsForeignElements=r,this._cachedWidth=-1,this._pixelOffsetCache=null,!n||this._characterMapping.length===0){this._pixelOffsetCache=new Float32Array(Math.max(2,this._characterMapping.length+1));for(let s=0,a=this._characterMapping.length;s<=a;s++)this._pixelOffsetCache[s]=-1}}_getReadingTarget(e){return e.domNode.firstChild}getWidth(e){return this.domNode?(this._cachedWidth===-1&&(this._cachedWidth=this._getReadingTarget(this.domNode).offsetWidth,e==null||e.markDidDomLayout()),this._cachedWidth):0}getWidthIsFast(){return this._cachedWidth!==-1}getVisibleRangesForRange(e,t,i,n){if(!this.domNode)return null;if(this._pixelOffsetCache!==null){const r=this._readPixelOffset(this.domNode,e,t,n);if(r===-1)return null;const s=this._readPixelOffset(this.domNode,e,i,n);return s===-1?null:[new FloatHorizontalRange(r,s-r)]}return this._readVisibleRangesForRange(this.domNode,e,t,i,n)}_readVisibleRangesForRange(e,t,i,n,r){if(i===n){const s=this._readPixelOffset(e,t,i,r);return s===-1?null:[new FloatHorizontalRange(s,0)]}else return this._readRawVisibleRangesForRange(e,i,n,r)}_readPixelOffset(e,t,i,n){if(this._characterMapping.length===0){if(this._containsForeignElements===0||this._containsForeignElements===2)return 0;if(this._containsForeignElements===1)return this.getWidth(n);const r=this._getReadingTarget(e);return r.firstChild?(n.markDidDomLayout(),r.firstChild.offsetWidth):0}if(this._pixelOffsetCache!==null){const r=this._pixelOffsetCache[i];if(r!==-1)return r;const s=this._actualReadPixelOffset(e,t,i,n);return this._pixelOffsetCache[i]=s,s}return this._actualReadPixelOffset(e,t,i,n)}_actualReadPixelOffset(e,t,i,n){if(this._characterMapping.length===0){const l=RangeUtil.readHorizontalRanges(this._getReadingTarget(e),0,0,0,0,n);return!l||l.length===0?-1:l[0].left}if(i===this._characterMapping.length&&this._isWhitespaceOnly&&this._containsForeignElements===0)return this.getWidth(n);const r=this._characterMapping.getDomPosition(i),s=RangeUtil.readHorizontalRanges(this._getReadingTarget(e),r.partIndex,r.charIndex,r.partIndex,r.charIndex,n);if(!s||s.length===0)return-1;const a=s[0].left;if(this.input.isBasicASCII){const l=this._characterMapping.getHorizontalOffset(i),d=Math.round(this.input.spaceWidth*l);if(Math.abs(d-a)<=1)return d}return a}_readRawVisibleRangesForRange(e,t,i,n){if(t===1&&i===this._characterMapping.length)return[new FloatHorizontalRange(0,this.getWidth(n))];const r=this._characterMapping.getDomPosition(t),s=this._characterMapping.getDomPosition(i);return RangeUtil.readHorizontalRanges(this._getReadingTarget(e),r.partIndex,r.charIndex,s.partIndex,s.charIndex,n)}getColumnOfNodeOffset(e,t){return getColumnOfNodeOffset(this._characterMapping,e,t)}}class WebKitRenderedViewLine extends RenderedViewLine{_readVisibleRangesForRange(e,t,i,n,r){const s=super._readVisibleRangesForRange(e,t,i,n,r);if(!s||s.length===0||i===n||i===1&&n===this._characterMapping.length)return s;if(!this.input.containsRTL){const a=this._readPixelOffset(e,t,n,r);if(a!==-1){const l=s[s.length-1];l.left<a&&(l.width=a-l.left)}}return s}}const createRenderedLine=function(){return isWebKit?createWebKitRenderedLine:createNormalRenderedLine}();function createWebKitRenderedLine(o,e,t,i,n){return new WebKitRenderedViewLine(o,e,t,i,n)}function createNormalRenderedLine(o,e,t,i,n){return new RenderedViewLine(o,e,t,i,n)}function getColumnOfNodeOffset(o,e,t){const i=e.textContent.length;let n=-1;for(;e;)e=e.previousSibling,n++;return o.getColumn(new DomPosition(n,t),i)}class CursorColumns{static _nextVisibleColumn(e,t,i){return e===9?CursorColumns.nextRenderTabStop(t,i):isFullWidthCharacter(e)||isEmojiImprecise(e)?t+2:t+1}static visibleColumnFromColumn(e,t,i){const n=Math.min(t-1,e.length),r=e.substring(0,n),s=new GraphemeIterator(r);let a=0;for(;!s.eol();){const l=getNextCodePoint(r,n,s.offset);s.nextGraphemeLength(),a=this._nextVisibleColumn(l,a,i)}return a}static columnFromVisibleColumn(e,t,i){if(t<=0)return 1;const n=e.length,r=new GraphemeIterator(e);let s=0,a=1;for(;!r.eol();){const l=getNextCodePoint(e,n,r.offset);r.nextGraphemeLength();const d=this._nextVisibleColumn(l,s,i),c=r.offset+1;if(d>=t){const u=t-s;return d-t<u?c:a}s=d,a=c}return n+1}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)}}class AtomicTabMoveOperations{static whitespaceVisibleColumn(e,t,i){const n=e.length;let r=0,s=-1,a=-1;for(let l=0;l<n;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=CursorColumns.nextRenderTabStop(r,i);break;default:return[-1,-1,-1]}}return t===n?[s,a,r]:[-1,-1,-1]}static atomicPosition(e,t,i,n){const r=e.length,[s,a,l]=AtomicTabMoveOperations.whitespaceVisibleColumn(e,t,i);if(l===-1)return-1;let d;switch(n){case 0:d=!0;break;case 1:d=!1;break;case 2:if(l%i===0)return t;d=l%i<=i/2;break}if(d){if(s===-1)return-1;let g=a;for(let f=s;f<r;++f){if(g===a+i)return s;switch(e.charCodeAt(f)){case 32:g+=1;break;case 9:g=CursorColumns.nextRenderTabStop(g,i);break;default:return-1}}return g===a+i?s:-1}const c=CursorColumns.nextRenderTabStop(l,i);let u=l;for(let g=t;g<r;g++){if(u===c)return g;switch(e.charCodeAt(g)){case 32:u+=1;break;case 9:u=CursorColumns.nextRenderTabStop(u,i);break;default:return-1}}return u===c?r:-1}}class UnknownHitTestResult{constructor(e=null){this.hitTarget=e,this.type=0}}class ContentHitTestResult{constructor(e,t,i){this.position=e,this.spanNode=t,this.injectedText=i,this.type=1}}var HitTestResult;(function(o){function e(t,i,n){const r=t.getPositionFromDOMInfo(i,n);return r?new ContentHitTestResult(r,i,null):new UnknownHitTestResult(i)}o.createFromDOMInfo=e})(HitTestResult||(HitTestResult={}));class PointerHandlerLastRenderData{constructor(e,t){this.lastViewCursorsRenderData=e,this.lastTextareaPosition=t}}class MouseTarget{static _deduceRage(e,t=null){return!t&&e?new Range$2(e.lineNumber,e.column,e.lineNumber,e.column):t??null}static createUnknown(e,t,i){return{type:0,element:e,mouseColumn:t,position:i,range:this._deduceRage(i)}}static createTextarea(e,t){return{type:1,element:e,mouseColumn:t,position:null,range:null}}static createMargin(e,t,i,n,r,s){return{type:e,element:t,mouseColumn:i,position:n,range:r,detail:s}}static createViewZone(e,t,i,n,r){return{type:e,element:t,mouseColumn:i,position:n,range:this._deduceRage(n),detail:r}}static createContentText(e,t,i,n,r){return{type:6,element:e,mouseColumn:t,position:i,range:this._deduceRage(i,n),detail:r}}static createContentEmpty(e,t,i,n){return{type:7,element:e,mouseColumn:t,position:i,range:this._deduceRage(i),detail:n}}static createContentWidget(e,t,i){return{type:9,element:e,mouseColumn:t,position:null,range:null,detail:i}}static createScrollbar(e,t,i){return{type:11,element:e,mouseColumn:t,position:i,range:this._deduceRage(i)}}static createOverlayWidget(e,t,i){return{type:12,element:e,mouseColumn:t,position:null,range:null,detail:i}}static createOutsideEditor(e,t,i,n){return{type:13,element:null,mouseColumn:e,position:t,range:this._deduceRage(t),outsidePosition:i,outsideDistance:n}}static _typeToString(e){return e===1?"TEXTAREA":e===2?"GUTTER_GLYPH_MARGIN":e===3?"GUTTER_LINE_NUMBERS":e===4?"GUTTER_LINE_DECORATIONS":e===5?"GUTTER_VIEW_ZONE":e===6?"CONTENT_TEXT":e===7?"CONTENT_EMPTY":e===8?"CONTENT_VIEW_ZONE":e===9?"CONTENT_WIDGET":e===10?"OVERVIEW_RULER":e===11?"SCROLLBAR":e===12?"OVERLAY_WIDGET":"UNKNOWN"}static toString(e){return this._typeToString(e.type)+": "+e.position+" - "+e.range+" - "+JSON.stringify(e.detail)}}class ElementPath{static isTextArea(e){return e.length===2&&e[0]===3&&e[1]===6}static isChildOfViewLines(e){return e.length>=4&&e[0]===3&&e[3]===7}static isStrictChildOfViewLines(e){return e.length>4&&e[0]===3&&e[3]===7}static isChildOfScrollableElement(e){return e.length>=2&&e[0]===3&&e[1]===5}static isChildOfMinimap(e){return e.length>=2&&e[0]===3&&e[1]===8}static isChildOfContentWidgets(e){return e.length>=4&&e[0]===3&&e[3]===1}static isChildOfOverflowGuard(e){return e.length>=1&&e[0]===3}static isChildOfOverflowingContentWidgets(e){return e.length>=1&&e[0]===2}static isChildOfOverlayWidgets(e){return e.length>=2&&e[0]===3&&e[1]===4}}class HitTestContext{constructor(e,t,i){this.viewModel=e.viewModel;const n=e.configuration.options;this.layoutInfo=n.get(143),this.viewDomNode=t.viewDomNode,this.lineHeight=n.get(66),this.stickyTabStops=n.get(115),this.typicalHalfwidthCharacterWidth=n.get(50).typicalHalfwidthCharacterWidth,this.lastRenderData=i,this._context=e,this._viewHelper=t}getZoneAtCoord(e){return HitTestContext.getZoneAtCoord(this._context,e)}static getZoneAtCoord(e,t){const i=e.viewLayout.getWhitespaceAtVerticalOffset(t);if(i){const n=i.verticalOffset+i.height/2,r=e.viewModel.getLineCount();let s=null,a,l=null;return i.afterLineNumber!==r&&(l=new Position$1(i.afterLineNumber+1,1)),i.afterLineNumber>0&&(s=new Position$1(i.afterLineNumber,e.viewModel.getLineMaxColumn(i.afterLineNumber))),l===null?a=s:s===null?a=l:t<n?a=s:a=l,{viewZoneId:i.id,afterLineNumber:i.afterLineNumber,positionBefore:s,positionAfter:l,position:a}}return null}getFullLineRangeAtCoord(e){if(this._context.viewLayout.isAfterLines(e)){const n=this._context.viewModel.getLineCount(),r=this._context.viewModel.getLineMaxColumn(n);return{range:new Range$2(n,r,n,r),isAfterLines:!0}}const t=this._context.viewLayout.getLineNumberAtVerticalOffset(e),i=this._context.viewModel.getLineMaxColumn(t);return{range:new Range$2(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 HitTestContext._findAttribute(e,t,this._viewHelper.viewDomNode)}static _findAttribute(e,t,i){for(;e&&e!==e.ownerDocument.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 BareHitTestRequest{constructor(e,t,i,n){this.editorPos=t,this.pos=i,this.relativePos=n,this.mouseVerticalOffset=Math.max(0,e.getCurrentScrollTop()+this.relativePos.y),this.mouseContentHorizontalOffset=e.getCurrentScrollLeft()+this.relativePos.x-e.layoutInfo.contentLeft,this.isInMarginArea=this.relativePos.x<e.layoutInfo.contentLeft&&this.relativePos.x>=e.layoutInfo.glyphMarginLeft,this.isInContentArea=!this.isInMarginArea,this.mouseColumn=Math.max(0,MouseTargetFactory._getMouseColumn(this.mouseContentHorizontalOffset,e.typicalHalfwidthCharacterWidth))}}class HitTestRequest extends BareHitTestRequest{constructor(e,t,i,n,r){super(e,t,i,n),this._ctx=e,r?(this.target=r,this.targetPath=PartFingerprints.collect(r,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}), relativePos(${this.relativePos.x},${this.relativePos.y}), mouseVerticalOffset: ${this.mouseVerticalOffset}, mouseContentHorizontalOffset: ${this.mouseContentHorizontalOffset}
- target: ${this.target?this.target.outerHTML:null}`}_getMouseColumn(e=null){return e&&e.column<this._ctx.viewModel.getLineMaxColumn(e.lineNumber)?CursorColumns.visibleColumnFromColumn(this._ctx.viewModel.getLineContent(e.lineNumber),e.column,this._ctx.viewModel.model.getOptions().tabSize)+1:this.mouseColumn}fulfillUnknown(e=null){return MouseTarget.createUnknown(this.target,this._getMouseColumn(e),e)}fulfillTextarea(){return MouseTarget.createTextarea(this.target,this._getMouseColumn())}fulfillMargin(e,t,i,n){return MouseTarget.createMargin(e,this.target,this._getMouseColumn(t),t,i,n)}fulfillViewZone(e,t,i){return MouseTarget.createViewZone(e,this.target,this._getMouseColumn(t),t,i)}fulfillContentText(e,t,i){return MouseTarget.createContentText(this.target,this._getMouseColumn(e),e,t,i)}fulfillContentEmpty(e,t){return MouseTarget.createContentEmpty(this.target,this._getMouseColumn(e),e,t)}fulfillContentWidget(e){return MouseTarget.createContentWidget(this.target,this._getMouseColumn(),e)}fulfillScrollbar(e){return MouseTarget.createScrollbar(this.target,this._getMouseColumn(e),e)}fulfillOverlayWidget(e){return MouseTarget.createOverlayWidget(this.target,this._getMouseColumn(),e)}withTarget(e){return new HitTestRequest(this._ctx,this.editorPos,this.pos,this.relativePos,e)}}const EMPTY_CONTENT_AFTER_LINES={isAfterLines:!0};function createEmptyContentDataInLines(o){return{isAfterLines:!1,horizontalDistanceToText:o}}class MouseTargetFactory{constructor(e,t){this._context=e,this._viewHelper=t}mouseTargetIsWidget(e){const t=e.target,i=PartFingerprints.collect(t,this._viewHelper.viewDomNode);return!!(ElementPath.isChildOfContentWidgets(i)||ElementPath.isChildOfOverflowingContentWidgets(i)||ElementPath.isChildOfOverlayWidgets(i))}createMouseTarget(e,t,i,n,r){const s=new HitTestContext(this._context,this._viewHelper,e),a=new HitTestRequest(s,t,i,n,r);try{const l=MouseTargetFactory._createMouseTarget(s,a,!1);if(l.type===6&&s.stickyTabStops&&l.position!==null){const d=MouseTargetFactory._snapToSoftTabBoundary(l.position,s.viewModel),c=Range$2.fromPositions(d,d).plusRange(l.range);return a.fulfillContentText(d,c,l.detail)}return l}catch{return a.fulfillUnknown()}}static _createMouseTarget(e,t,i){if(t.target===null){if(i)return t.fulfillUnknown();const s=MouseTargetFactory._doHitTest(e,t);return s.type===1?MouseTargetFactory.createMouseTargetFromHitTestPosition(e,t,s.spanNode,s.position,s.injectedText):this._createMouseTarget(e,t.withTarget(s.hitTarget),!0)}const n=t;let r=null;return!ElementPath.isChildOfOverflowGuard(t.targetPath)&&!ElementPath.isChildOfOverflowingContentWidgets(t.targetPath)&&(r=r||t.fulfillUnknown()),r=r||MouseTargetFactory._hitTestContentWidget(e,n),r=r||MouseTargetFactory._hitTestOverlayWidget(e,n),r=r||MouseTargetFactory._hitTestMinimap(e,n),r=r||MouseTargetFactory._hitTestScrollbarSlider(e,n),r=r||MouseTargetFactory._hitTestViewZone(e,n),r=r||MouseTargetFactory._hitTestMargin(e,n),r=r||MouseTargetFactory._hitTestViewCursor(e,n),r=r||MouseTargetFactory._hitTestTextArea(e,n),r=r||MouseTargetFactory._hitTestViewLines(e,n,i),r=r||MouseTargetFactory._hitTestScrollbar(e,n),r||t.fulfillUnknown()}static _hitTestContentWidget(e,t){if(ElementPath.isChildOfContentWidgets(t.targetPath)||ElementPath.isChildOfOverflowingContentWidgets(t.targetPath)){const i=e.findAttribute(t.target,"widgetId");return i?t.fulfillContentWidget(i):t.fulfillUnknown()}return null}static _hitTestOverlayWidget(e,t){if(ElementPath.isChildOfOverlayWidgets(t.targetPath)){const i=e.findAttribute(t.target,"widgetId");return i?t.fulfillOverlayWidget(i):t.fulfillUnknown()}return null}static _hitTestViewCursor(e,t){if(t.target){const i=e.lastRenderData.lastViewCursorsRenderData;for(const n of i)if(t.target===n.domNode)return t.fulfillContentText(n.position,null,{mightBeForeignElement:!1,injectedText:null})}if(t.isInContentArea){const i=e.lastRenderData.lastViewCursorsRenderData,n=t.mouseContentHorizontalOffset,r=t.mouseVerticalOffset;for(const s of i){if(n<s.contentLeft||n>s.contentLeft+s.width)continue;const a=e.getVerticalOffsetForLineNumber(s.position.lineNumber);if(a<=r&&r<=a+s.height)return t.fulfillContentText(s.position,null,{mightBeForeignElement:!1,injectedText:null})}}return null}static _hitTestViewZone(e,t){const i=e.getZoneAtCoord(t.mouseVerticalOffset);if(i){const n=t.isInContentArea?8:5;return t.fulfillViewZone(n,i.position,i)}return null}static _hitTestTextArea(e,t){return ElementPath.isTextArea(t.targetPath)?e.lastRenderData.lastTextareaPosition?t.fulfillContentText(e.lastRenderData.lastTextareaPosition,null,{mightBeForeignElement:!1,injectedText:null}):t.fulfillTextarea():null}static _hitTestMargin(e,t){if(t.isInMarginArea){const i=e.getFullLineRangeAtCoord(t.mouseVerticalOffset),n=i.range.getStartPosition();let r=Math.abs(t.relativePos.x);const s={isAfterLines:i.isAfterLines,glyphMarginLeft:e.layoutInfo.glyphMarginLeft,glyphMarginWidth:e.layoutInfo.glyphMarginWidth,lineNumbersWidth:e.layoutInfo.lineNumbersWidth,offsetX:r};return r-=e.layoutInfo.glyphMarginLeft,r<=e.layoutInfo.glyphMarginWidth?t.fulfillMargin(2,n,i.range,s):(r-=e.layoutInfo.glyphMarginWidth,r<=e.layoutInfo.lineNumbersWidth?t.fulfillMargin(3,n,i.range,s):(r-=e.layoutInfo.lineNumbersWidth,t.fulfillMargin(4,n,i.range,s)))}return null}static _hitTestViewLines(e,t,i){if(!ElementPath.isChildOfViewLines(t.targetPath))return null;if(e.isInTopPadding(t.mouseVerticalOffset))return t.fulfillContentEmpty(new Position$1(1,1),EMPTY_CONTENT_AFTER_LINES);if(e.isAfterLines(t.mouseVerticalOffset)||e.isInBottomPadding(t.mouseVerticalOffset)){const r=e.viewModel.getLineCount(),s=e.viewModel.getLineMaxColumn(r);return t.fulfillContentEmpty(new Position$1(r,s),EMPTY_CONTENT_AFTER_LINES)}if(i){if(ElementPath.isStrictChildOfViewLines(t.targetPath)){const r=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset);if(e.viewModel.getLineLength(r)===0){const a=e.getLineWidth(r),l=createEmptyContentDataInLines(t.mouseContentHorizontalOffset-a);return t.fulfillContentEmpty(new Position$1(r,1),l)}const s=e.getLineWidth(r);if(t.mouseContentHorizontalOffset>=s){const a=createEmptyContentDataInLines(t.mouseContentHorizontalOffset-s),l=new Position$1(r,e.viewModel.getLineMaxColumn(r));return t.fulfillContentEmpty(l,a)}}return t.fulfillUnknown()}const n=MouseTargetFactory._doHitTest(e,t);return n.type===1?MouseTargetFactory.createMouseTargetFromHitTestPosition(e,t,n.spanNode,n.position,n.injectedText):this._createMouseTarget(e,t.withTarget(n.hitTarget),!0)}static _hitTestMinimap(e,t){if(ElementPath.isChildOfMinimap(t.targetPath)){const i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),n=e.viewModel.getLineMaxColumn(i);return t.fulfillScrollbar(new Position$1(i,n))}return null}static _hitTestScrollbarSlider(e,t){if(ElementPath.isChildOfScrollableElement(t.targetPath)&&t.target&&t.target.nodeType===1){const i=t.target.className;if(i&&/\b(slider|scrollbar)\b/.test(i)){const n=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),r=e.viewModel.getLineMaxColumn(n);return t.fulfillScrollbar(new Position$1(n,r))}}return null}static _hitTestScrollbar(e,t){if(ElementPath.isChildOfScrollableElement(t.targetPath)){const i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),n=e.viewModel.getLineMaxColumn(i);return t.fulfillScrollbar(new Position$1(i,n))}return null}getMouseColumn(e){const t=this._context.configuration.options,i=t.get(143),n=this._context.viewLayout.getCurrentScrollLeft()+e.x-i.contentLeft;return MouseTargetFactory._getMouseColumn(n,t.get(50).typicalHalfwidthCharacterWidth)}static _getMouseColumn(e,t){return e<0?1:Math.round(e/t)+1}static createMouseTargetFromHitTestPosition(e,t,i,n,r){const s=n.lineNumber,a=n.column,l=e.getLineWidth(s);if(t.mouseContentHorizontalOffset>l){const _=createEmptyContentDataInLines(t.mouseContentHorizontalOffset-l);return t.fulfillContentEmpty(n,_)}const d=e.visibleRangeForPosition(s,a);if(!d)return t.fulfillUnknown(n);const c=d.left;if(Math.abs(t.mouseContentHorizontalOffset-c)<1)return t.fulfillContentText(n,null,{mightBeForeignElement:!!r,injectedText:r});const u=[];if(u.push({offset:d.left,column:a}),a>1){const _=e.visibleRangeForPosition(s,a-1);_&&u.push({offset:_.left,column:a-1})}const g=e.viewModel.getLineMaxColumn(s);if(a<g){const _=e.visibleRangeForPosition(s,a+1);_&&u.push({offset:_.left,column:a+1})}u.sort((_,C)=>_.offset-C.offset);const f=t.pos.toClientCoordinates(),p=i.getBoundingClientRect(),m=p.left<=f.clientX&&f.clientX<=p.right;let b=null;for(let _=1;_<u.length;_++){const C=u[_-1],S=u[_];if(C.offset<=t.mouseContentHorizontalOffset&&t.mouseContentHorizontalOffset<=S.offset){b=new Range$2(s,C.column,s,S.column);const y=Math.abs(C.offset-t.mouseContentHorizontalOffset),E=Math.abs(S.offset-t.mouseContentHorizontalOffset);n=y<E?new Position$1(s,C.column):new Position$1(s,S.column);break}}return t.fulfillContentText(n,b,{mightBeForeignElement:!m||!!r,injectedText:r})}static _doHitTestWithCaretRangeFromPoint(e,t){const i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),n=e.getVerticalOffsetForLineNumber(i),r=n+e.lineHeight;if(!(i===e.viewModel.getLineCount()&&t.mouseVerticalOffset>r)){const a=Math.floor((n+r)/2);let l=t.pos.y+(a-t.mouseVerticalOffset);l<=t.editorPos.y&&(l=t.editorPos.y+1),l>=t.editorPos.y+t.editorPos.height&&(l=t.editorPos.y+t.editorPos.height-1);const d=new PageCoordinates(t.pos.x,l),c=this._actualDoHitTestWithCaretRangeFromPoint(e,d.toClientCoordinates());if(c.type===1)return c}return this._actualDoHitTestWithCaretRangeFromPoint(e,t.pos.toClientCoordinates())}static _actualDoHitTestWithCaretRangeFromPoint(e,t){const i=getShadowRoot(e.viewDomNode);let n;if(i?typeof i.caretRangeFromPoint>"u"?n=shadowCaretRangeFromPoint(i,t.clientX,t.clientY):n=i.caretRangeFromPoint(t.clientX,t.clientY):n=e.viewDomNode.ownerDocument.caretRangeFromPoint(t.clientX,t.clientY),!n||!n.startContainer)return new UnknownHitTestResult;const r=n.startContainer;if(r.nodeType===r.TEXT_NODE){const s=r.parentNode,a=s?s.parentNode:null,l=a?a.parentNode:null;return(l&&l.nodeType===l.ELEMENT_NODE?l.className:null)===ViewLine.CLASS_NAME?HitTestResult.createFromDOMInfo(e,s,n.startOffset):new UnknownHitTestResult(r.parentNode)}else if(r.nodeType===r.ELEMENT_NODE){const s=r.parentNode,a=s?s.parentNode:null;return(a&&a.nodeType===a.ELEMENT_NODE?a.className:null)===ViewLine.CLASS_NAME?HitTestResult.createFromDOMInfo(e,r,r.textContent.length):new UnknownHitTestResult(r)}return new UnknownHitTestResult}static _doHitTestWithCaretPositionFromPoint(e,t){const i=e.viewDomNode.ownerDocument.caretPositionFromPoint(t.clientX,t.clientY);if(i.offsetNode.nodeType===i.offsetNode.TEXT_NODE){const n=i.offsetNode.parentNode,r=n?n.parentNode:null,s=r?r.parentNode:null;return(s&&s.nodeType===s.ELEMENT_NODE?s.className:null)===ViewLine.CLASS_NAME?HitTestResult.createFromDOMInfo(e,i.offsetNode.parentNode,i.offset):new UnknownHitTestResult(i.offsetNode.parentNode)}if(i.offsetNode.nodeType===i.offsetNode.ELEMENT_NODE){const n=i.offsetNode.parentNode,r=n&&n.nodeType===n.ELEMENT_NODE?n.className:null,s=n?n.parentNode:null,a=s&&s.nodeType===s.ELEMENT_NODE?s.className:null;if(r===ViewLine.CLASS_NAME){const l=i.offsetNode.childNodes[Math.min(i.offset,i.offsetNode.childNodes.length-1)];if(l)return HitTestResult.createFromDOMInfo(e,l,0)}else if(a===ViewLine.CLASS_NAME)return HitTestResult.createFromDOMInfo(e,i.offsetNode,0)}return new UnknownHitTestResult(i.offsetNode)}static _snapToSoftTabBoundary(e,t){const i=t.getLineContent(e.lineNumber),{tabSize:n}=t.model.getOptions(),r=AtomicTabMoveOperations.atomicPosition(i,e.column-1,n,2);return r!==-1?new Position$1(e.lineNumber,r+1):e}static _doHitTest(e,t){let i=new UnknownHitTestResult;if(typeof e.viewDomNode.ownerDocument.caretRangeFromPoint=="function"?i=this._doHitTestWithCaretRangeFromPoint(e,t):e.viewDomNode.ownerDocument.caretPositionFromPoint&&(i=this._doHitTestWithCaretPositionFromPoint(e,t.pos.toClientCoordinates())),i.type===1){const n=e.viewModel.getInjectedTextAt(i.position),r=e.viewModel.normalizePosition(i.position,2);(n||!r.equals(i.position))&&(i=new ContentHitTestResult(r,i.spanNode,n))}return i}}function shadowCaretRangeFromPoint(o,e,t){const i=document.createRange();let n=o.elementFromPoint(e,t);if(n!==null){for(;n&&n.firstChild&&n.firstChild.nodeType!==n.firstChild.TEXT_NODE&&n.lastChild&&n.lastChild.firstChild;)n=n.lastChild;const r=n.getBoundingClientRect(),s=window.getComputedStyle(n,null).getPropertyValue("font-style"),a=window.getComputedStyle(n,null).getPropertyValue("font-variant"),l=window.getComputedStyle(n,null).getPropertyValue("font-weight"),d=window.getComputedStyle(n,null).getPropertyValue("font-size"),c=window.getComputedStyle(n,null).getPropertyValue("line-height"),u=window.getComputedStyle(n,null).getPropertyValue("font-family"),g=`${s} ${a} ${l} ${d}/${c} ${u}`,f=n.innerText;let p=r.left,m=0,b;if(e>r.left+r.width)m=f.length;else{const _=CharWidthReader.getInstance();for(let C=0;C<f.length+1;C++){if(b=_.getCharWidth(f.charAt(C),g)/2,p+=b,e<p){m=C;break}p+=b}}i.setStart(n.firstChild,m),i.setEnd(n.firstChild,m)}return i}class CharWidthReader{static getInstance(){return CharWidthReader._INSTANCE||(CharWidthReader._INSTANCE=new CharWidthReader),CharWidthReader._INSTANCE}constructor(){this._cache={},this._canvas=document.createElement("canvas")}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 s=n.measureText(e).width;return this._cache[i]=s,s}}CharWidthReader._INSTANCE=null;let Widget$1=class extends Disposable{onclick(e,t){this._register(addDisposableListener(e,EventType$1.CLICK,i=>t(new StandardMouseEvent(i))))}onmousedown(e,t){this._register(addDisposableListener(e,EventType$1.MOUSE_DOWN,i=>t(new StandardMouseEvent(i))))}onmouseover(e,t){this._register(addDisposableListener(e,EventType$1.MOUSE_OVER,i=>t(new StandardMouseEvent(i))))}onmouseleave(e,t){this._register(addDisposableListener(e,EventType$1.MOUSE_LEAVE,i=>t(new StandardMouseEvent(i))))}onkeydown(e,t){this._register(addDisposableListener(e,EventType$1.KEY_DOWN,i=>t(new StandardKeyboardEvent(i))))}onkeyup(e,t){this._register(addDisposableListener(e,EventType$1.KEY_UP,i=>t(new StandardKeyboardEvent(i))))}oninput(e,t){this._register(addDisposableListener(e,EventType$1.INPUT,t))}onblur(e,t){this._register(addDisposableListener(e,EventType$1.BLUR,t))}onfocus(e,t){this._register(addDisposableListener(e,EventType$1.FOCUS,t))}ignoreGesture(e){return Gesture.ignoreTarget(e)}};const ARROW_IMG_SIZE=11;class ScrollbarArrow extends Widget$1{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",typeof e.top<"u"&&(this.bgDomNode.style.top="0px"),typeof e.left<"u"&&(this.bgDomNode.style.left="0px"),typeof e.bottom<"u"&&(this.bgDomNode.style.bottom="0px"),typeof e.right<"u"&&(this.bgDomNode.style.right="0px"),this.domNode=document.createElement("div"),this.domNode.className=e.className,this.domNode.classList.add(...ThemeIcon.asClassNameArray(e.icon)),this.domNode.style.position="absolute",this.domNode.style.width=ARROW_IMG_SIZE+"px",this.domNode.style.height=ARROW_IMG_SIZE+"px",typeof e.top<"u"&&(this.domNode.style.top=e.top+"px"),typeof e.left<"u"&&(this.domNode.style.left=e.left+"px"),typeof e.bottom<"u"&&(this.domNode.style.bottom=e.bottom+"px"),typeof e.right<"u"&&(this.domNode.style.right=e.right+"px"),this._pointerMoveMonitor=this._register(new GlobalPointerMoveMonitor),this._register(addStandardDisposableListener(this.bgDomNode,EventType$1.POINTER_DOWN,t=>this._arrowPointerDown(t))),this._register(addStandardDisposableListener(this.domNode,EventType$1.POINTER_DOWN,t=>this._arrowPointerDown(t))),this._pointerdownRepeatTimer=this._register(new IntervalTimer),this._pointerdownScheduleRepeatTimer=this._register(new TimeoutTimer)}_arrowPointerDown(e){if(!e.target||!(e.target instanceof Element))return;const t=()=>{this._pointerdownRepeatTimer.cancelAndSet(()=>this._onActivate(),1e3/24)};this._onActivate(),this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancelAndSet(t,200),this._pointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,i=>{},()=>{this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancel()}),e.preventDefault()}}class ScrollbarVisibilityController extends Disposable{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 TimeoutTimer)}setVisibility(e){this._visibility!==e&&(this._visibility=e,this._updateShouldBeVisible())}setShouldBeVisible(e){this._rawShouldBeVisible=e,this._updateShouldBeVisible()}_applyVisibilitySetting(){return this._visibility===2?!1:this._visibility===3?!0: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(){if(!this._isNeeded){this._hide(!1);return}this._shouldBeVisible?this._reveal():this._hide(!0)}_reveal(){this._isVisible||(this._isVisible=!0,this._revealTimer.setIfNotSet(()=>{var e;(e=this._domNode)===null||e===void 0||e.setClassName(this._visibleClassName)},0))}_hide(e){var t;this._revealTimer.cancel(),this._isVisible&&(this._isVisible=!1,(t=this._domNode)===null||t===void 0||t.setClassName(this._invisibleClassName+(e?" fade":"")))}}const POINTER_DRAG_RESET_DISTANCE$1=140;class AbstractScrollbar extends Widget$1{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 ScrollbarVisibilityController(e.visibility,"visible scrollbar "+e.extraScrollbarClassName,"invisible scrollbar "+e.extraScrollbarClassName)),this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._pointerMoveMonitor=this._register(new GlobalPointerMoveMonitor),this._shouldRender=!0,this.domNode=createFastDomNode(document.createElement("div")),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this._visibilityController.setDomNode(this.domNode),this.domNode.setPosition("absolute"),this._register(addDisposableListener(this.domNode.domNode,EventType$1.POINTER_DOWN,t=>this._domNodePointerDown(t)))}_createArrow(e){const t=this._register(new ScrollbarArrow(e));this.domNode.domNode.appendChild(t.bgDomNode),this.domNode.domNode.appendChild(t.domNode)}_createSlider(e,t,i,n){this.slider=createFastDomNode(document.createElement("div")),this.slider.setClassName("slider"),this.slider.setPosition("absolute"),this.slider.setTop(e),this.slider.setLeft(t),typeof i=="number"&&this.slider.setWidth(i),typeof n=="number"&&this.slider.setHeight(n),this.slider.setLayerHinting(!0),this.slider.setContain("strict"),this.domNode.domNode.appendChild(this.slider.domNode),this._register(addDisposableListener(this.slider.domNode,EventType$1.POINTER_DOWN,r=>{r.button===0&&(r.preventDefault(),this._sliderPointerDown(r))})),this.onclick(this.slider.domNode,r=>{r.leftButton&&r.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()))}_domNodePointerDown(e){e.target===this.domNode.domNode&&this._onPointerDown(e)}delegatePointerDown(e){const t=this.domNode.domNode.getClientRects()[0].top,i=t+this._scrollbarState.getSliderPosition(),n=t+this._scrollbarState.getSliderPosition()+this._scrollbarState.getSliderSize(),r=this._sliderPointerPosition(e);i<=r&&r<=n?e.button===0&&(e.preventDefault(),this._sliderPointerDown(e)):this._onPointerDown(e)}_onPointerDown(e){let t,i;if(e.target===this.domNode.domNode&&typeof e.offsetX=="number"&&typeof e.offsetY=="number")t=e.offsetX,i=e.offsetY;else{const r=getDomNodePagePosition(this.domNode.domNode);t=e.pageX-r.left,i=e.pageY-r.top}const n=this._pointerDownRelativePosition(t,i);this._setDesiredScrollPositionNow(this._scrollByPage?this._scrollbarState.getDesiredScrollPositionFromOffsetPaged(n):this._scrollbarState.getDesiredScrollPositionFromOffset(n)),e.button===0&&(e.preventDefault(),this._sliderPointerDown(e))}_sliderPointerDown(e){if(!e.target||!(e.target instanceof Element))return;const t=this._sliderPointerPosition(e),i=this._sliderOrthogonalPointerPosition(e),n=this._scrollbarState.clone();this.slider.toggleClassName("active",!0),this._pointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,r=>{const s=this._sliderOrthogonalPointerPosition(r),a=Math.abs(s-i);if(isWindows&&a>POINTER_DRAG_RESET_DISTANCE$1){this._setDesiredScrollPositionNow(n.getScrollPosition());return}const d=this._sliderPointerPosition(r)-t;this._setDesiredScrollPositionNow(n.getDesiredScrollPositionFromDelta(d))},()=>{this.slider.toggleClassName("active",!1),this._host.onDragEnd()}),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()}}const MINIMUM_SLIDER_SIZE=20;class ScrollbarState{constructor(e,t,i,n,r,s){this._scrollbarSize=Math.round(t),this._oppositeScrollbarSize=Math.round(i),this._arrowSize=Math.round(e),this._visibleSize=n,this._scrollSize=r,this._scrollPosition=s,this._computedAvailableSize=0,this._computedIsNeeded=!1,this._computedSliderSize=0,this._computedSliderRatio=0,this._computedSliderPosition=0,this._refreshComputedValues()}clone(){return new ScrollbarState(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):!1}setScrollSize(e){const t=Math.round(e);return this._scrollSize!==t?(this._scrollSize=t,this._refreshComputedValues(),!0):!1}setScrollPosition(e){const t=Math.round(e);return this._scrollPosition!==t?(this._scrollPosition=t,this._refreshComputedValues(),!0):!1}setScrollbarSize(e){this._scrollbarSize=Math.round(e)}setOppositeScrollbarSize(e){this._oppositeScrollbarSize=Math.round(e)}static _computeValues(e,t,i,n,r){const s=Math.max(0,i-e),a=Math.max(0,s-2*t),l=n>0&&n>i;if(!l)return{computedAvailableSize:Math.round(s),computedIsNeeded:l,computedSliderSize:Math.round(a),computedSliderRatio:0,computedSliderPosition:0};const d=Math.round(Math.max(MINIMUM_SLIDER_SIZE,Math.floor(i*a/n))),c=(a-d)/(n-i),u=r*c;return{computedAvailableSize:Math.round(s),computedIsNeeded:l,computedSliderSize:Math.round(d),computedSliderRatio:c,computedSliderPosition:Math.round(u)}}_refreshComputedValues(){const e=ScrollbarState._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)}}class HorizontalScrollbar extends AbstractScrollbar{constructor(e,t,i){const n=e.getScrollDimensions(),r=e.getCurrentScrollPosition();if(super({lazyRender:t.lazyRender,host:i,scrollbarState:new ScrollbarState(t.horizontalHasArrows?t.arrowSize:0,t.horizontal===2?0:t.horizontalScrollbarSize,t.vertical===2?0:t.verticalScrollbarSize,n.width,n.scrollWidth,r.scrollLeft),visibility:t.horizontal,extraScrollbarClassName:"horizontal",scrollable:e,scrollByPage:t.scrollByPage}),t.horizontalHasArrows){const s=(t.arrowSize-ARROW_IMG_SIZE)/2,a=(t.horizontalScrollbarSize-ARROW_IMG_SIZE)/2;this._createArrow({className:"scra",icon:Codicon.scrollbarButtonLeft,top:a,left:s,bottom:void 0,right:void 0,bgWidth:t.arrowSize,bgHeight:t.horizontalScrollbarSize,onActivate:()=>this._host.onMouseWheel(new StandardWheelEvent(null,1,0))}),this._createArrow({className:"scra",icon:Codicon.scrollbarButtonRight,top:a,left:void 0,bottom:void 0,right:s,bgWidth:t.arrowSize,bgHeight:t.horizontalScrollbarSize,onActivate:()=>this._host.onMouseWheel(new StandardWheelEvent(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}_pointerDownRelativePosition(e,t){return e}_sliderPointerPosition(e){return e.pageX}_sliderOrthogonalPointerPosition(e){return e.pageY}_updateScrollbarSize(e){this.slider.setHeight(e)}writeScrollPosition(e,t){e.scrollLeft=t}updateOptions(e){this.updateScrollbarSize(e.horizontal===2?0:e.horizontalScrollbarSize),this._scrollbarState.setOppositeScrollbarSize(e.vertical===2?0:e.verticalScrollbarSize),this._visibilityController.setVisibility(e.horizontal),this._scrollByPage=e.scrollByPage}}class VerticalScrollbar extends AbstractScrollbar{constructor(e,t,i){const n=e.getScrollDimensions(),r=e.getCurrentScrollPosition();if(super({lazyRender:t.lazyRender,host:i,scrollbarState:new ScrollbarState(t.verticalHasArrows?t.arrowSize:0,t.vertical===2?0:t.verticalScrollbarSize,0,n.height,n.scrollHeight,r.scrollTop),visibility:t.vertical,extraScrollbarClassName:"vertical",scrollable:e,scrollByPage:t.scrollByPage}),t.verticalHasArrows){const s=(t.arrowSize-ARROW_IMG_SIZE)/2,a=(t.verticalScrollbarSize-ARROW_IMG_SIZE)/2;this._createArrow({className:"scra",icon:Codicon.scrollbarButtonUp,top:s,left:a,bottom:void 0,right:void 0,bgWidth:t.verticalScrollbarSize,bgHeight:t.arrowSize,onActivate:()=>this._host.onMouseWheel(new StandardWheelEvent(null,0,1))}),this._createArrow({className:"scra",icon:Codicon.scrollbarButtonDown,top:void 0,left:a,bottom:s,right:void 0,bgWidth:t.verticalScrollbarSize,bgHeight:t.arrowSize,onActivate:()=>this._host.onMouseWheel(new StandardWheelEvent(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}_pointerDownRelativePosition(e,t){return t}_sliderPointerPosition(e){return e.pageY}_sliderOrthogonalPointerPosition(e){return e.pageX}_updateScrollbarSize(e){this.slider.setWidth(e)}writeScrollPosition(e,t){e.scrollTop=t}updateOptions(e){this.updateScrollbarSize(e.vertical===2?0:e.verticalScrollbarSize),this._scrollbarState.setOppositeScrollbarSize(0),this._visibilityController.setVisibility(e.vertical),this._scrollByPage=e.scrollByPage}}class ScrollState{constructor(e,t,i,n,r,s,a){this._forceIntegerValues=e,this._scrollStateBrand=void 0,this._forceIntegerValues&&(t=t|0,i=i|0,n=n|0,r=r|0,s=s|0,a=a|0),this.rawScrollLeft=n,this.rawScrollTop=a,t<0&&(t=0),n+t>i&&(n=i-t),n<0&&(n=0),r<0&&(r=0),a+r>s&&(a=s-r),a<0&&(a=0),this.width=t,this.scrollWidth=i,this.scrollLeft=n,this.height=r,this.scrollHeight=s,this.scrollTop=a}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 ScrollState(this._forceIntegerValues,typeof e.width<"u"?e.width:this.width,typeof e.scrollWidth<"u"?e.scrollWidth:this.scrollWidth,t?this.rawScrollLeft:this.scrollLeft,typeof e.height<"u"?e.height:this.height,typeof e.scrollHeight<"u"?e.scrollHeight:this.scrollHeight,t?this.rawScrollTop:this.scrollTop)}withScrollPosition(e){return new ScrollState(this._forceIntegerValues,this.width,this.scrollWidth,typeof e.scrollLeft<"u"?e.scrollLeft:this.rawScrollLeft,this.height,this.scrollHeight,typeof e.scrollTop<"u"?e.scrollTop:this.rawScrollTop)}createScrollEvent(e,t){const i=this.width!==e.width,n=this.scrollWidth!==e.scrollWidth,r=this.scrollLeft!==e.scrollLeft,s=this.height!==e.height,a=this.scrollHeight!==e.scrollHeight,l=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:r,heightChanged:s,scrollHeightChanged:a,scrollTopChanged:l}}}class Scrollable extends Disposable{constructor(e){super(),this._scrollableBrand=void 0,this._onScroll=this._register(new Emitter$1),this.onScroll=this._onScroll.event,this._smoothScrollDuration=e.smoothScrollDuration,this._scheduleAtNextAnimationFrame=e.scheduleAtNextAnimationFrame,this._state=new ScrollState(e.forceIntegerValues,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){var i;const n=this._state.withScrollDimensions(e,t);this._setState(n,!!this._smoothScrolling),(i=this._smoothScrolling)===null||i===void 0||i.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(this._smoothScrollDuration===0)return this.setScrollPositionNow(e);if(this._smoothScrolling){e={scrollLeft:typeof e.scrollLeft>"u"?this._smoothScrolling.to.scrollLeft:e.scrollLeft,scrollTop:typeof e.scrollTop>"u"?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;t?n=new SmoothScrollingOperation(this._smoothScrolling.from,i,this._smoothScrolling.startTime,this._smoothScrolling.duration):n=this._smoothScrolling.combine(this._state,i,this._smoothScrollDuration),this._smoothScrolling.dispose(),this._smoothScrolling=n}else{const i=this._state.withScrollPosition(e);this._smoothScrolling=SmoothScrollingOperation.start(this._state,i,this._smoothScrollDuration)}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame(()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())})}hasPendingScrollAnimation(){return!!this._smoothScrolling}_performSmoothScrolling(){if(!this._smoothScrolling)return;const e=this._smoothScrolling.tick(),t=this._state.withScrollPosition(e);if(this._setState(t,!0),!!this._smoothScrolling){if(e.isDone){this._smoothScrolling.dispose(),this._smoothScrolling=null;return}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame(()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())})}}_setState(e,t){const i=this._state;i.equals(e)||(this._state=e,this._onScroll.fire(this._state.createScrollEvent(i,t)))}}class SmoothScrollingUpdate{constructor(e,t,i){this.scrollLeft=e,this.scrollTop=t,this.isDone=i}}function createEaseOutCubic(o,e){const t=e-o;return function(i){return o+t*easeOutCubic(i)}}function createComposed(o,e,t){return function(i){return i<t?o(i/t):e((i-t)/(1-t))}}class SmoothScrollingOperation{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 r,s;return e<t?(r=e+.75*i,s=t-.75*i):(r=e-.75*i,s=t+.75*i),createComposed(createEaseOutCubic(e,r),createEaseOutCubic(s,t),.33)}return createEaseOutCubic(e,t)}dispose(){this.animationFrameDisposable!==null&&(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 i=this.scrollLeft(t),n=this.scrollTop(t);return new SmoothScrollingUpdate(i,n,!1)}return new SmoothScrollingUpdate(this.to.scrollLeft,this.to.scrollTop,!0)}combine(e,t,i){return SmoothScrollingOperation.start(e,t,i)}static start(e,t,i){i=i+10;const n=Date.now()-10;return new SmoothScrollingOperation(e,t,n,i)}}function easeInCubic(o){return Math.pow(o,3)}function easeOutCubic(o){return 1-easeInCubic(1-o)}const HIDE_TIMEOUT=500,SCROLL_WHEEL_SENSITIVITY=50;class MouseWheelClassifierItem{constructor(e,t,i){this.timestamp=e,this.deltaX=t,this.deltaY=i,this.score=0}}class MouseWheelClassifier{constructor(){this._capacity=5,this._memory=[],this._front=-1,this._rear=-1}isPhysicalMouseWheel(){if(this._front===-1&&this._rear===-1)return!1;let e=1,t=0,i=1,n=this._rear;do{const r=n===this._front?e:Math.pow(2,-i);if(e-=r,t+=this._memory[n].score*r,n===this._front)break;n=(this._capacity+n-1)%this._capacity,i++}while(!0);return t<=.5}acceptStandardWheelEvent(e){const t=window.devicePixelRatio/getZoomFactor();isWindows||isLinux?this.accept(Date.now(),e.deltaX/t,e.deltaY/t):this.accept(Date.now(),e.deltaX,e.deltaY)}accept(e,t,i){const n=new MouseWheelClassifierItem(e,t,i);n.score=this._computeScore(n),this._front===-1&&this._rear===-1?(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 this._front===-1&&this._rear===-1||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}}MouseWheelClassifier.INSTANCE=new MouseWheelClassifier;class AbstractScrollableElement extends Widget$1{get options(){return this._options}constructor(e,t,i){super(),this._onScroll=this._register(new Emitter$1),this.onScroll=this._onScroll.event,this._onWillScroll=this._register(new Emitter$1),e.style.overflow="hidden",this._options=resolveOptions$1(t),this._scrollable=i,this._register(this._scrollable.onScroll(r=>{this._onWillScroll.fire(r),this._onDidScroll(r),this._onScroll.fire(r)}));const n={onMouseWheel:r=>this._onMouseWheel(r),onDragStart:()=>this._onDragStart(),onDragEnd:()=>this._onDragEnd()};this._verticalScrollbar=this._register(new VerticalScrollbar(this._scrollable,this._options,n)),this._horizontalScrollbar=this._register(new HorizontalScrollbar(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=createFastDomNode(document.createElement("div")),this._leftShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._leftShadowDomNode.domNode),this._topShadowDomNode=createFastDomNode(document.createElement("div")),this._topShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._topShadowDomNode.domNode),this._topLeftShadowDomNode=createFastDomNode(document.createElement("div")),this._topLeftShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._topLeftShadowDomNode.domNode)):(this._leftShadowDomNode=null,this._topShadowDomNode=null,this._topLeftShadowDomNode=null),this._listenOnDomNode=this._options.listenOnDomNode||this._domNode,this._mouseWheelToDispose=[],this._setListeningToMouseWheel(this._options.handleMouseWheel),this.onmouseover(this._listenOnDomNode,r=>this._onMouseOver(r)),this.onmouseleave(this._listenOnDomNode,r=>this._onMouseLeave(r)),this._hideTimeout=this._register(new TimeoutTimer),this._isDragging=!1,this._mouseIsOver=!1,this._shouldRender=!0,this._revealOnScroll=!0}dispose(){this._mouseWheelToDispose=dispose(this._mouseWheelToDispose),super.dispose()}getDomNode(){return this._domNode}getOverviewRulerLayoutInfo(){return{parent:this._domNode,insertBefore:this._verticalScrollbar.domNode.domNode}}delegateVerticalScrollbarPointerDown(e){this._verticalScrollbar.delegatePointerDown(e)}getScrollDimensions(){return this._scrollable.getScrollDimensions()}setScrollDimensions(e){this._scrollable.setScrollDimensions(e,!1)}updateClassName(e){this._options.className=e,isMacintosh&&(this._options.className+=" mac"),this._domNode.className="monaco-scrollable-element "+this._options.className}updateOptions(e){typeof e.handleMouseWheel<"u"&&(this._options.handleMouseWheel=e.handleMouseWheel,this._setListeningToMouseWheel(this._options.handleMouseWheel)),typeof e.mouseWheelScrollSensitivity<"u"&&(this._options.mouseWheelScrollSensitivity=e.mouseWheelScrollSensitivity),typeof e.fastScrollSensitivity<"u"&&(this._options.fastScrollSensitivity=e.fastScrollSensitivity),typeof e.scrollPredominantAxis<"u"&&(this._options.scrollPredominantAxis=e.scrollPredominantAxis),typeof e.horizontal<"u"&&(this._options.horizontal=e.horizontal),typeof e.vertical<"u"&&(this._options.vertical=e.vertical),typeof e.horizontalScrollbarSize<"u"&&(this._options.horizontalScrollbarSize=e.horizontalScrollbarSize),typeof e.verticalScrollbarSize<"u"&&(this._options.verticalScrollbarSize=e.verticalScrollbarSize),typeof e.scrollByPage<"u"&&(this._options.scrollByPage=e.scrollByPage),this._horizontalScrollbar.updateOptions(this._options),this._verticalScrollbar.updateOptions(this._options),this._options.lazyRender||this._render()}delegateScrollFromMouseWheelEvent(e){this._onMouseWheel(new StandardWheelEvent(e))}_setListeningToMouseWheel(e){if(this._mouseWheelToDispose.length>0!==e&&(this._mouseWheelToDispose=dispose(this._mouseWheelToDispose),e)){const i=n=>{this._onMouseWheel(new StandardWheelEvent(n))};this._mouseWheelToDispose.push(addDisposableListener(this._listenOnDomNode,EventType$1.MOUSE_WHEEL,i,{passive:!1}))}}_onMouseWheel(e){var t;if(!((t=e.browserEvent)===null||t===void 0)&&t.defaultPrevented)return;const i=MouseWheelClassifier.INSTANCE;i.acceptStandardWheelEvent(e);let n=!1;if(e.deltaY||e.deltaX){let s=e.deltaY*this._options.mouseWheelScrollSensitivity,a=e.deltaX*this._options.mouseWheelScrollSensitivity;this._options.scrollPredominantAxis&&(this._options.scrollYToX&&a+s===0?a=s=0:Math.abs(s)>=Math.abs(a)?a=0:s=0),this._options.flipAxes&&([s,a]=[a,s]);const l=!isMacintosh&&e.browserEvent&&e.browserEvent.shiftKey;(this._options.scrollYToX||l)&&!a&&(a=s,s=0),e.browserEvent&&e.browserEvent.altKey&&(a=a*this._options.fastScrollSensitivity,s=s*this._options.fastScrollSensitivity);const d=this._scrollable.getFutureScrollPosition();let c={};if(s){const u=SCROLL_WHEEL_SENSITIVITY*s,g=d.scrollTop-(u<0?Math.floor(u):Math.ceil(u));this._verticalScrollbar.writeScrollPosition(c,g)}if(a){const u=SCROLL_WHEEL_SENSITIVITY*a,g=d.scrollLeft-(u<0?Math.floor(u):Math.ceil(u));this._horizontalScrollbar.writeScrollPosition(c,g)}c=this._scrollable.validateScrollPosition(c),(d.scrollLeft!==c.scrollLeft||d.scrollTop!==c.scrollTop)&&(this._options.mouseWheelSmoothScroll&&i.isPhysicalMouseWheel()?this._scrollable.setScrollPositionSmooth(c):this._scrollable.setScrollPositionNow(c),n=!0)}let r=n;!r&&this._options.alwaysConsumeMouseWheel&&(r=!0),!r&&this._options.consumeMouseWheelIfScrollbarIsNeeded&&(this._verticalScrollbar.isNeeded()||this._horizontalScrollbar.isNeeded())&&(r=!0),r&&(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":"",r=t?" top":"",s=i||t?" top-left-corner":"";this._leftShadowDomNode.setClassName(`shadow${n}`),this._topShadowDomNode.setClassName(`shadow${r}`),this._topLeftShadowDomNode.setClassName(`shadow${s}${r}${n}`)}}_onDragStart(){this._isDragging=!0,this._reveal()}_onDragEnd(){this._isDragging=!1,this._hide()}_onMouseLeave(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(),HIDE_TIMEOUT)}}class ScrollableElement extends AbstractScrollableElement{constructor(e,t){t=t||{},t.mouseWheelSmoothScroll=!1;const i=new Scrollable({forceIntegerValues:!0,smoothScrollDuration:0,scheduleAtNextAnimationFrame:n=>scheduleAtNextAnimationFrame(n)});super(e,t,i),this._register(i)}setScrollPosition(e){this._scrollable.setScrollPositionNow(e)}}class SmoothScrollableElement extends AbstractScrollableElement{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 DomScrollableElement extends AbstractScrollableElement{constructor(e,t){t=t||{},t.mouseWheelSmoothScroll=!1;const i=new Scrollable({forceIntegerValues:!1,smoothScrollDuration:0,scheduleAtNextAnimationFrame:n=>scheduleAtNextAnimationFrame(n)});super(e,t,i),this._register(i),this._element=e,this._register(this.onScroll(n=>{n.scrollTopChanged&&(this._element.scrollTop=n.scrollTop),n.scrollLeftChanged&&(this._element.scrollLeft=n.scrollLeft)})),this.scanDomNode()}setScrollPosition(e){this._scrollable.setScrollPositionNow(e)}getScrollPosition(){return this._scrollable.getCurrentScrollPosition()}scanDomNode(){this.setScrollDimensions({width:this._element.clientWidth,scrollWidth:this._element.scrollWidth,height:this._element.clientHeight,scrollHeight:this._element.scrollHeight}),this.setScrollPosition({scrollLeft:this._element.scrollLeft,scrollTop:this._element.scrollTop})}}function resolveOptions$1(o){const e={lazyRender:typeof o.lazyRender<"u"?o.lazyRender:!1,className:typeof o.className<"u"?o.className:"",useShadows:typeof o.useShadows<"u"?o.useShadows:!0,handleMouseWheel:typeof o.handleMouseWheel<"u"?o.handleMouseWheel:!0,flipAxes:typeof o.flipAxes<"u"?o.flipAxes:!1,consumeMouseWheelIfScrollbarIsNeeded:typeof o.consumeMouseWheelIfScrollbarIsNeeded<"u"?o.consumeMouseWheelIfScrollbarIsNeeded:!1,alwaysConsumeMouseWheel:typeof o.alwaysConsumeMouseWheel<"u"?o.alwaysConsumeMouseWheel:!1,scrollYToX:typeof o.scrollYToX<"u"?o.scrollYToX:!1,mouseWheelScrollSensitivity:typeof o.mouseWheelScrollSensitivity<"u"?o.mouseWheelScrollSensitivity:1,fastScrollSensitivity:typeof o.fastScrollSensitivity<"u"?o.fastScrollSensitivity:5,scrollPredominantAxis:typeof o.scrollPredominantAxis<"u"?o.scrollPredominantAxis:!0,mouseWheelSmoothScroll:typeof o.mouseWheelSmoothScroll<"u"?o.mouseWheelSmoothScroll:!0,arrowSize:typeof o.arrowSize<"u"?o.arrowSize:11,listenOnDomNode:typeof o.listenOnDomNode<"u"?o.listenOnDomNode:null,horizontal:typeof o.horizontal<"u"?o.horizontal:1,horizontalScrollbarSize:typeof o.horizontalScrollbarSize<"u"?o.horizontalScrollbarSize:10,horizontalSliderSize:typeof o.horizontalSliderSize<"u"?o.horizontalSliderSize:0,horizontalHasArrows:typeof o.horizontalHasArrows<"u"?o.horizontalHasArrows:!1,vertical:typeof o.vertical<"u"?o.vertical:1,verticalScrollbarSize:typeof o.verticalScrollbarSize<"u"?o.verticalScrollbarSize:10,verticalHasArrows:typeof o.verticalHasArrows<"u"?o.verticalHasArrows:!1,verticalSliderSize:typeof o.verticalSliderSize<"u"?o.verticalSliderSize:0,scrollByPage:typeof o.scrollByPage<"u"?o.scrollByPage:!1};return e.horizontalSliderSize=typeof o.horizontalSliderSize<"u"?o.horizontalSliderSize:e.horizontalScrollbarSize,e.verticalSliderSize=typeof o.verticalSliderSize<"u"?o.verticalSliderSize:e.verticalScrollbarSize,isMacintosh&&(e.className+=" mac"),e}class MouseHandler extends ViewEventHandler{constructor(e,t,i){super(),this._mouseLeaveMonitor=null,this._context=e,this.viewController=t,this.viewHelper=i,this.mouseTargetFactory=new MouseTargetFactory(this._context,i),this._mouseDownOperation=this._register(new MouseDownOperation(this._context,this.viewController,this.viewHelper,this.mouseTargetFactory,(s,a)=>this._createMouseTarget(s,a),s=>this._getMouseColumn(s))),this.lastMouseLeaveTime=-1,this._height=this._context.configuration.options.get(143).height;const n=new EditorMouseEventFactory(this.viewHelper.viewDomNode);this._register(n.onContextMenu(this.viewHelper.viewDomNode,s=>this._onContextMenu(s,!0))),this._register(n.onMouseMove(this.viewHelper.viewDomNode,s=>{this._onMouseMove(s),this._mouseLeaveMonitor||(this._mouseLeaveMonitor=addDisposableListener(this.viewHelper.viewDomNode.ownerDocument,"mousemove",a=>{this.viewHelper.viewDomNode.contains(a.target)||this._onMouseLeave(new EditorMouseEvent(a,!1,this.viewHelper.viewDomNode))}))})),this._register(n.onMouseUp(this.viewHelper.viewDomNode,s=>this._onMouseUp(s))),this._register(n.onMouseLeave(this.viewHelper.viewDomNode,s=>this._onMouseLeave(s)));let r=0;this._register(n.onPointerDown(this.viewHelper.viewDomNode,(s,a)=>{r=a})),this._register(addDisposableListener(this.viewHelper.viewDomNode,EventType$1.POINTER_UP,s=>{this._mouseDownOperation.onPointerUp()})),this._register(n.onMouseDown(this.viewHelper.viewDomNode,s=>this._onMouseDown(s,r))),this._setupMouseWheelZoomListener(),this._context.addEventHandler(this)}_setupMouseWheelZoomListener(){const e=MouseWheelClassifier.INSTANCE;let t=0,i=EditorZoom.getZoomLevel(),n=!1,r=0;const s=l=>{if(this.viewController.emitMouseWheel(l),!this._context.configuration.options.get(75))return;const d=new StandardWheelEvent(l);if(e.acceptStandardWheelEvent(d),e.isPhysicalMouseWheel()){if(a(l)){const c=EditorZoom.getZoomLevel(),u=d.deltaY>0?1:-1;EditorZoom.setZoomLevel(c+u),d.preventDefault(),d.stopPropagation()}}else Date.now()-t>50&&(i=EditorZoom.getZoomLevel(),n=a(l),r=0),t=Date.now(),r+=d.deltaY,n&&(EditorZoom.setZoomLevel(i+r/5),d.preventDefault(),d.stopPropagation())};this._register(addDisposableListener(this.viewHelper.viewDomNode,EventType$1.MOUSE_WHEEL,s,{capture:!0,passive:!1}));function a(l){return isMacintosh?(l.metaKey||l.ctrlKey)&&!l.shiftKey&&!l.altKey:l.ctrlKey&&!l.metaKey&&!l.shiftKey&&!l.altKey}}dispose(){this._context.removeEventHandler(this),this._mouseLeaveMonitor&&(this._mouseLeaveMonitor.dispose(),this._mouseLeaveMonitor=null),super.dispose()}onConfigurationChanged(e){if(e.hasChanged(143)){const t=this._context.configuration.options.get(143).height;this._height!==t&&(this._height=t,this._mouseDownOperation.onHeightChanged())}return!1}onCursorStateChanged(e){return this._mouseDownOperation.onCursorStateChanged(e),!1}onFocusChanged(e){return!1}getTargetAtClientPoint(e,t){const n=new ClientCoordinates(e,t).toPageCoordinates(),r=createEditorPagePosition(this.viewHelper.viewDomNode);if(n.y<r.y||n.y>r.y+r.height||n.x<r.x||n.x>r.x+r.width)return null;const s=createCoordinatesRelativeToEditor(this.viewHelper.viewDomNode,r,n);return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),r,n,s,null)}_createMouseTarget(e,t){let i=e.target;if(!this.viewHelper.viewDomNode.contains(i)){const n=getShadowRoot(this.viewHelper.viewDomNode);n&&(i=n.elementsFromPoint(e.posx,e.posy).find(r=>this.viewHelper.viewDomNode.contains(r)))}return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),e.editorPos,e.pos,e.relativePos,t?i:null)}_getMouseColumn(e){return this.mouseTargetFactory.getMouseColumn(e.relativePos)}_onContextMenu(e,t){this.viewController.emitContextMenu({event:e,target:this._createMouseTarget(e,t)})}_onMouseMove(e){this.mouseTargetFactory.mouseTargetIsWidget(e)||e.preventDefault(),!(this._mouseDownOperation.isActive()||e.timestamp<this.lastMouseLeaveTime)&&this.viewController.emitMouseMove({event:e,target:this._createMouseTarget(e,!0)})}_onMouseLeave(e){this._mouseLeaveMonitor&&(this._mouseLeaveMonitor.dispose(),this._mouseLeaveMonitor=null),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,t){const i=this._createMouseTarget(e,!0),n=i.type===6||i.type===7,r=i.type===2||i.type===3||i.type===4,s=i.type===3,a=this._context.configuration.options.get(108),l=i.type===8||i.type===5,d=i.type===9;let c=e.leftButton||e.middleButton;isMacintosh&&e.leftButton&&e.ctrlKey&&(c=!1);const u=()=>{e.preventDefault(),this.viewHelper.focusTextArea()};if(c&&(n||s&&a))u(),this._mouseDownOperation.start(i.type,e,t);else if(r)e.preventDefault();else if(l){const g=i.detail;c&&this.viewHelper.shouldSuppressMouseDownOnViewZone(g.viewZoneId)&&(u(),this._mouseDownOperation.start(i.type,e,t),e.preventDefault())}else d&&this.viewHelper.shouldSuppressMouseDownOnWidget(i.detail)&&(u(),e.preventDefault());this.viewController.emitMouseDown({event:e,target:i})}}class MouseDownOperation extends Disposable{constructor(e,t,i,n,r,s){super(),this._context=e,this._viewController=t,this._viewHelper=i,this._mouseTargetFactory=n,this._createMouseTarget=r,this._getMouseColumn=s,this._mouseMoveMonitor=this._register(new GlobalEditorPointerMoveMonitor(this._viewHelper.viewDomNode)),this._topBottomDragScrolling=this._register(new TopBottomDragScrolling(this._context,this._viewHelper,this._mouseTargetFactory,(a,l,d)=>this._dispatchMouse(a,l,d))),this._mouseState=new MouseDownState,this._currentSelection=new Selection$1(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,!1);t&&(this._mouseState.isDragAndDrop?this._viewController.emitMouseDrag({event:e,target:t}):t.type===13&&(t.outsidePosition==="above"||t.outsidePosition==="below")?this._topBottomDragScrolling.start(t,e):(this._topBottomDragScrolling.stop(),this._dispatchMouse(t,!0,1)))}start(e,t,i){this._lastMouseEvent=t,this._mouseState.setStartedOnLineNumbers(e===3),this._mouseState.setStartButtons(t),this._mouseState.setModifiers(t);const n=this._findMousePosition(t,!0);if(!n||!n.position)return;this._mouseState.trySetCount(t.detail,n.position),t.detail=this._mouseState.count;const r=this._context.configuration.options;if(!r.get(90)&&r.get(35)&&!r.get(22)&&!this._mouseState.altKey&&t.detail<2&&!this._isActive&&!this._currentSelection.isEmpty()&&n.type===6&&n.position&&this._currentSelection.containsPosition(n.position)){this._mouseState.isDragAndDrop=!0,this._isActive=!0,this._mouseMoveMonitor.startMonitoring(this._viewHelper.viewLinesDomNode,i,t.buttons,s=>this._onMouseDownThenMove(s),s=>{const a=this._findMousePosition(this._lastMouseEvent,!1);s&&s instanceof KeyboardEvent?this._viewController.emitMouseDropCanceled():this._viewController.emitMouseDrop({event:this._lastMouseEvent,target:a?this._createMouseTarget(this._lastMouseEvent,!0):null}),this._stop()});return}this._mouseState.isDragAndDrop=!1,this._dispatchMouse(n,t.shiftKey,1),this._isActive||(this._isActive=!0,this._mouseMoveMonitor.startMonitoring(this._viewHelper.viewLinesDomNode,i,t.buttons,s=>this._onMouseDownThenMove(s),()=>this._stop()))}_stop(){this._isActive=!1,this._topBottomDragScrolling.stop()}onHeightChanged(){this._mouseMoveMonitor.stopMonitoring()}onPointerUp(){this._mouseMoveMonitor.stopMonitoring()}onCursorStateChanged(e){this._currentSelection=e.selections[0]}_getPositionOutsideEditor(e){const t=e.editorPos,i=this._context.viewModel,n=this._context.viewLayout,r=this._getMouseColumn(e);if(e.posy<t.y){const a=t.y-e.posy,l=Math.max(n.getCurrentScrollTop()-a,0),d=HitTestContext.getZoneAtCoord(this._context,l);if(d){const u=this._helpPositionJumpOverViewZone(d);if(u)return MouseTarget.createOutsideEditor(r,u,"above",a)}const c=n.getLineNumberAtVerticalOffset(l);return MouseTarget.createOutsideEditor(r,new Position$1(c,1),"above",a)}if(e.posy>t.y+t.height){const a=e.posy-t.y-t.height,l=n.getCurrentScrollTop()+e.relativePos.y,d=HitTestContext.getZoneAtCoord(this._context,l);if(d){const u=this._helpPositionJumpOverViewZone(d);if(u)return MouseTarget.createOutsideEditor(r,u,"below",a)}const c=n.getLineNumberAtVerticalOffset(l);return MouseTarget.createOutsideEditor(r,new Position$1(c,i.getLineMaxColumn(c)),"below",a)}const s=n.getLineNumberAtVerticalOffset(n.getCurrentScrollTop()+e.relativePos.y);if(e.posx<t.x){const a=t.x-e.posx;return MouseTarget.createOutsideEditor(r,new Position$1(s,1),"left",a)}if(e.posx>t.x+t.width){const a=e.posx-t.x-t.width;return MouseTarget.createOutsideEditor(r,new Position$1(s,i.getLineMaxColumn(s)),"right",a)}return 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(n.type===8||n.type===5){const s=this._helpPositionJumpOverViewZone(n.detail);if(s)return MouseTarget.createViewZone(n.type,n.element,n.mouseColumn,s,n.detail)}return n}_helpPositionJumpOverViewZone(e){const t=new Position$1(this._currentSelection.selectionStartLineNumber,this._currentSelection.selectionStartColumn),i=e.positionBefore,n=e.positionAfter;return i&&n?i.isBefore(t)?i:n:null}_dispatchMouse(e,t,i){e.position&&this._viewController.dispatchMouse({position:e.position,mouseColumn:e.mouseColumn,startedOnLineNumbers:this._mouseState.startedOnLineNumbers,revealType:i,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,onInjectedText:e.type===6&&e.detail.injectedText!==null})}}class TopBottomDragScrolling extends Disposable{constructor(e,t,i,n){super(),this._context=e,this._viewHelper=t,this._mouseTargetFactory=i,this._dispatchMouse=n,this._operation=null}dispose(){super.dispose(),this.stop()}start(e,t){this._operation?this._operation.setPosition(e,t):this._operation=new TopBottomDragScrollingOperation(this._context,this._viewHelper,this._mouseTargetFactory,this._dispatchMouse,e,t)}stop(){this._operation&&(this._operation.dispose(),this._operation=null)}}class TopBottomDragScrollingOperation extends Disposable{constructor(e,t,i,n,r,s){super(),this._context=e,this._viewHelper=t,this._mouseTargetFactory=i,this._dispatchMouse=n,this._position=r,this._mouseEvent=s,this._lastTime=Date.now(),this._animationFrameDisposable=scheduleAtNextAnimationFrame(()=>this._execute())}dispose(){this._animationFrameDisposable.dispose()}setPosition(e,t){this._position=e,this._mouseEvent=t}_tick(){const e=Date.now(),t=e-this._lastTime;return this._lastTime=e,t}_getScrollSpeed(){const e=this._context.configuration.options.get(66),t=this._context.configuration.options.get(143).height/e,i=this._position.outsideDistance/e;return i<=1.5?Math.max(30,t*(1+i)):i<=3?Math.max(60,t*(2+i)):Math.max(200,t*(7+i))}_execute(){const e=this._context.configuration.options.get(66),t=this._getScrollSpeed(),i=this._tick(),n=t*(i/1e3)*e,r=this._position.outsidePosition==="above"?-n:n;this._context.viewModel.viewLayout.deltaScrollNow(0,r),this._viewHelper.renderNow();const s=this._context.viewLayout.getLinesViewportData(),a=this._position.outsidePosition==="above"?s.startLineNumber:s.endLineNumber;let l;{const d=createEditorPagePosition(this._viewHelper.viewDomNode),c=this._context.configuration.options.get(143).horizontalScrollbarHeight,u=new PageCoordinates(this._mouseEvent.pos.x,d.y+d.height-c-.1),g=createCoordinatesRelativeToEditor(this._viewHelper.viewDomNode,d,u);l=this._mouseTargetFactory.createMouseTarget(this._viewHelper.getLastRenderData(),d,u,g,null)}(!l.position||l.position.lineNumber!==a)&&(this._position.outsidePosition==="above"?l=MouseTarget.createOutsideEditor(this._position.mouseColumn,new Position$1(a,1),"above",this._position.outsideDistance):l=MouseTarget.createOutsideEditor(this._position.mouseColumn,new Position$1(a,this._context.viewModel.getLineMaxColumn(a)),"below",this._position.outsideDistance)),this._dispatchMouse(l,!0,2),this._animationFrameDisposable=scheduleAtNextAnimationFrame(()=>this._execute())}}class MouseDownState{get altKey(){return this._altKey}get ctrlKey(){return this._ctrlKey}get metaKey(){return this._metaKey}get shiftKey(){return this._shiftKey}get leftButton(){return this._leftButton}get middleButton(){return this._middleButton}get startedOnLineNumbers(){return this._startedOnLineNumbers}constructor(){this._altKey=!1,this._ctrlKey=!1,this._metaKey=!1,this._shiftKey=!1,this._leftButton=!1,this._middleButton=!1,this._startedOnLineNumbers=!1,this._lastMouseDownPosition=null,this._lastMouseDownPositionEqualCount=0,this._lastMouseDownCount=0,this._lastSetMouseDownCountTime=0,this.isDragAndDrop=!1}get count(){return this._lastMouseDownCount}setModifiers(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>MouseDownState.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)}}MouseDownState.CLEAR_MOUSE_DOWN_COUNT_TIME=400;class DomEmitter{get event(){return this.emitter.event}constructor(e,t,i){const n=r=>this.emitter.fire(r);this.emitter=new Emitter$1({onWillAddFirstListener:()=>e.addEventListener(t,n,i),onDidRemoveLastListener:()=>e.removeEventListener(t,n,i)})}dispose(){this.emitter.dispose()}}var inputLatency;(function(o){const e={total:0,min:Number.MAX_VALUE,max:0},t=Object.assign({},e),i=Object.assign({},e),n=Object.assign({},e);let r=0;const s={keydown:0,input:0,render:0};function a(){_(),performance.mark("inputlatency/start"),performance.mark("keydown/start"),s.keydown=1,queueMicrotask(l)}o.onKeyDown=a;function l(){s.keydown===1&&(performance.mark("keydown/end"),s.keydown=2)}function d(){performance.mark("input/start"),s.input=1,b()}o.onBeforeInput=d;function c(){s.input===0&&d(),queueMicrotask(u)}o.onInput=c;function u(){s.input===1&&(performance.mark("input/end"),s.input=2)}function g(){_()}o.onKeyUp=g;function f(){_()}o.onSelectionChange=f;function p(){s.keydown===2&&s.input===2&&s.render===0&&(performance.mark("render/start"),s.render=1,queueMicrotask(m),b())}o.onRenderStart=p;function m(){s.render===1&&(performance.mark("render/end"),s.render=2)}function b(){setTimeout(_)}function _(){s.keydown===2&&s.input===2&&s.render===2&&(performance.mark("inputlatency/end"),performance.measure("keydown","keydown/start","keydown/end"),performance.measure("input","input/start","input/end"),performance.measure("render","render/start","render/end"),performance.measure("inputlatency","inputlatency/start","inputlatency/end"),C("keydown",e),C("input",t),C("render",i),C("inputlatency",n),r++,S())}function C(L,I){const D=performance.getEntriesByName(L)[0].duration;I.total+=D,I.min=Math.min(I.min,D),I.max=Math.max(I.max,D)}function S(){performance.clearMarks("keydown/start"),performance.clearMarks("keydown/end"),performance.clearMarks("input/start"),performance.clearMarks("input/end"),performance.clearMarks("render/start"),performance.clearMarks("render/end"),performance.clearMarks("inputlatency/start"),performance.clearMarks("inputlatency/end"),performance.clearMeasures("keydown"),performance.clearMeasures("input"),performance.clearMeasures("render"),performance.clearMeasures("inputlatency"),s.keydown=0,s.input=0,s.render=0}function y(){if(r===0)return;const L={keydown:E(e),input:E(t),render:E(i),total:E(n),sampleCount:r};return x(e),x(t),x(i),x(n),r=0,L}o.getAndClearMeasurements=y;function E(L){return{average:L.total/r,max:L.max,min:L.min}}function x(L){L.total=0,L.min=Number.MAX_VALUE,L.max=0}})(inputLatency||(inputLatency={}));class TextAreaState{constructor(e,t,i,n,r){this.value=e,this.selectionStart=t,this.selectionEnd=i,this.selection=n,this.newlineCountBeforeSelection=r}toString(){return`[ <${this.value}>, selectionStart: ${this.selectionStart}, selectionEnd: ${this.selectionEnd}]`}static readFromTextArea(e,t){const i=e.getValue(),n=e.getSelectionStart(),r=e.getSelectionEnd();let s;if(t){const a=i.substring(0,n),l=t.value.substring(0,t.selectionStart);a===l&&(s=t.newlineCountBeforeSelection)}return new TextAreaState(i,n,r,null,s)}collapseSelection(){return this.selectionStart===this.value.length?this:new TextAreaState(this.value,this.value.length,this.value.length,null,void 0)}writeToTextArea(e,t,i){t.setValue(e,this.value),i&&t.setSelectionRange(e,this.selectionStart,this.selectionEnd)}deduceEditorPosition(e){var t,i,n,r,s,a,l,d;if(e<=this.selectionStart){const g=this.value.substring(e,this.selectionStart);return this._finishDeduceEditorPosition((i=(t=this.selection)===null||t===void 0?void 0:t.getStartPosition())!==null&&i!==void 0?i:null,g,-1)}if(e>=this.selectionEnd){const g=this.value.substring(this.selectionEnd,e);return this._finishDeduceEditorPosition((r=(n=this.selection)===null||n===void 0?void 0:n.getEndPosition())!==null&&r!==void 0?r:null,g,1)}const c=this.value.substring(this.selectionStart,e);if(c.indexOf("…")===-1)return this._finishDeduceEditorPosition((a=(s=this.selection)===null||s===void 0?void 0:s.getStartPosition())!==null&&a!==void 0?a:null,c,1);const u=this.value.substring(e,this.selectionEnd);return this._finishDeduceEditorPosition((d=(l=this.selection)===null||l===void 0?void 0:l.getEndPosition())!==null&&d!==void 0?d:null,u,-1)}_finishDeduceEditorPosition(e,t,i){let n=0,r=-1;for(;(r=t.indexOf(`
- `,r+1))!==-1;)n++;return[e,i*t.length,n]}static deduceInput(e,t,i){if(!e)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0};const n=Math.min(commonPrefixLength(e.value,t.value),e.selectionStart,t.selectionStart),r=Math.min(commonSuffixLength(e.value,t.value),e.value.length-e.selectionEnd,t.value.length-t.selectionEnd);e.value.substring(n,e.value.length-r);const s=t.value.substring(n,t.value.length-r),a=e.selectionStart-n,l=e.selectionEnd-n,d=t.selectionStart-n,c=t.selectionEnd-n;if(d===c){const g=e.selectionStart-n;return{text:s,replacePrevCharCnt:g,replaceNextCharCnt:0,positionDelta:0}}const u=l-a;return{text:s,replacePrevCharCnt:u,replaceNextCharCnt:0,positionDelta:0}}static deduceAndroidCompositionInput(e,t){if(!e)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0};if(e.value===t.value)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:t.selectionEnd-e.selectionEnd};const i=Math.min(commonPrefixLength(e.value,t.value),e.selectionEnd),n=Math.min(commonSuffixLength(e.value,t.value),e.value.length-e.selectionEnd),r=e.value.substring(i,e.value.length-n),s=t.value.substring(i,t.value.length-n);e.selectionStart-i;const a=e.selectionEnd-i;t.selectionStart-i;const l=t.selectionEnd-i;return{text:s,replacePrevCharCnt:a,replaceNextCharCnt:r.length-a,positionDelta:l-s.length}}}TextAreaState.EMPTY=new TextAreaState("",0,0,null,void 0);class PagedScreenReaderStrategy{static _getPageOfLine(e,t){return Math.floor((e-1)/t)}static _getRangeForPage(e,t){const i=e*t,n=i+1,r=i+t;return new Range$2(n,1,r+1,1)}static fromEditorSelection(e,t,i,n){const s=PagedScreenReaderStrategy._getPageOfLine(t.startLineNumber,i),a=PagedScreenReaderStrategy._getRangeForPage(s,i),l=PagedScreenReaderStrategy._getPageOfLine(t.endLineNumber,i),d=PagedScreenReaderStrategy._getRangeForPage(l,i);let c=a.intersectRanges(new Range$2(1,1,t.startLineNumber,t.startColumn));if(n&&e.getValueLengthInRange(c,1)>500){const _=e.modifyPosition(c.getEndPosition(),-500);c=Range$2.fromPositions(_,c.getEndPosition())}const u=e.getValueInRange(c,1),g=e.getLineCount(),f=e.getLineMaxColumn(g);let p=d.intersectRanges(new Range$2(t.endLineNumber,t.endColumn,g,f));if(n&&e.getValueLengthInRange(p,1)>500){const _=e.modifyPosition(p.getStartPosition(),500);p=Range$2.fromPositions(p.getStartPosition(),_)}const m=e.getValueInRange(p,1);let b;if(s===l||s+1===l)b=e.getValueInRange(t,1);else{const _=a.intersectRanges(t),C=d.intersectRanges(t);b=e.getValueInRange(_,1)+"…"+e.getValueInRange(C,1)}return n&&b.length>2*500&&(b=b.substring(0,500)+"…"+b.substring(b.length-500,b.length)),new TextAreaState(u+b+m,u.length,u.length+b.length,t,c.endLineNumber-c.startLineNumber)}}var TextAreaSyntethicEvents;(function(o){o.Tap="-monaco-textarea-synthetic-tap"})(TextAreaSyntethicEvents||(TextAreaSyntethicEvents={}));const CopyOptions={forceCopyWithSyntaxHighlighting:!1};class InMemoryClipboardMetadataManager{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)}}InMemoryClipboardMetadataManager.INSTANCE=new InMemoryClipboardMetadataManager;class CompositionContext{constructor(){this._lastTypeTextLength=0}handleCompositionUpdate(e){e=e||"";const t={text:e,replacePrevCharCnt:this._lastTypeTextLength,replaceNextCharCnt:0,positionDelta:0};return this._lastTypeTextLength=e.length,t}}class TextAreaInput extends Disposable{get textAreaState(){return this._textAreaState}constructor(e,t,i,n){super(),this._host=e,this._textArea=t,this._OS=i,this._browser=n,this._onFocus=this._register(new Emitter$1),this.onFocus=this._onFocus.event,this._onBlur=this._register(new Emitter$1),this.onBlur=this._onBlur.event,this._onKeyDown=this._register(new Emitter$1),this.onKeyDown=this._onKeyDown.event,this._onKeyUp=this._register(new Emitter$1),this.onKeyUp=this._onKeyUp.event,this._onCut=this._register(new Emitter$1),this.onCut=this._onCut.event,this._onPaste=this._register(new Emitter$1),this.onPaste=this._onPaste.event,this._onType=this._register(new Emitter$1),this.onType=this._onType.event,this._onCompositionStart=this._register(new Emitter$1),this.onCompositionStart=this._onCompositionStart.event,this._onCompositionUpdate=this._register(new Emitter$1),this.onCompositionUpdate=this._onCompositionUpdate.event,this._onCompositionEnd=this._register(new Emitter$1),this.onCompositionEnd=this._onCompositionEnd.event,this._onSelectionChangeRequest=this._register(new Emitter$1),this.onSelectionChangeRequest=this._onSelectionChangeRequest.event,this._asyncTriggerCut=this._register(new RunOnceScheduler(()=>this._onCut.fire(),0)),this._asyncFocusGainWriteScreenReaderContent=this._register(new RunOnceScheduler(()=>this.writeScreenReaderContent("asyncFocusGain"),0)),this._textAreaState=TextAreaState.EMPTY,this._selectionChangeListener=null,this.writeScreenReaderContent("ctor"),this._hasFocus=!1,this._currentComposition=null;let r=null;this._register(this._textArea.onKeyDown(s=>{const a=new StandardKeyboardEvent(s);(a.keyCode===114||this._currentComposition&&a.keyCode===1)&&a.stopPropagation(),a.equals(9)&&a.preventDefault(),r=a,this._onKeyDown.fire(a)})),this._register(this._textArea.onKeyUp(s=>{const a=new StandardKeyboardEvent(s);this._onKeyUp.fire(a)})),this._register(this._textArea.onCompositionStart(s=>{const a=new CompositionContext;if(this._currentComposition){this._currentComposition=a;return}if(this._currentComposition=a,this._OS===2&&r&&r.equals(114)&&this._textAreaState.selectionStart===this._textAreaState.selectionEnd&&this._textAreaState.selectionStart>0&&this._textAreaState.value.substr(this._textAreaState.selectionStart-1,1)===s.data&&(r.code==="ArrowRight"||r.code==="ArrowLeft")){a.handleCompositionUpdate("x"),this._onCompositionStart.fire({data:s.data});return}if(this._browser.isAndroid){this._onCompositionStart.fire({data:s.data});return}this._onCompositionStart.fire({data:s.data})})),this._register(this._textArea.onCompositionUpdate(s=>{const a=this._currentComposition;if(!a)return;if(this._browser.isAndroid){const d=TextAreaState.readFromTextArea(this._textArea,this._textAreaState),c=TextAreaState.deduceAndroidCompositionInput(this._textAreaState,d);this._textAreaState=d,this._onType.fire(c),this._onCompositionUpdate.fire(s);return}const l=a.handleCompositionUpdate(s.data);this._textAreaState=TextAreaState.readFromTextArea(this._textArea,this._textAreaState),this._onType.fire(l),this._onCompositionUpdate.fire(s)})),this._register(this._textArea.onCompositionEnd(s=>{const a=this._currentComposition;if(!a)return;if(this._currentComposition=null,this._browser.isAndroid){const d=TextAreaState.readFromTextArea(this._textArea,this._textAreaState),c=TextAreaState.deduceAndroidCompositionInput(this._textAreaState,d);this._textAreaState=d,this._onType.fire(c),this._onCompositionEnd.fire();return}const l=a.handleCompositionUpdate(s.data);this._textAreaState=TextAreaState.readFromTextArea(this._textArea,this._textAreaState),this._onType.fire(l),this._onCompositionEnd.fire()})),this._register(this._textArea.onInput(s=>{if(this._textArea.setIgnoreSelectionChangeTime("received input event"),this._currentComposition)return;const a=TextAreaState.readFromTextArea(this._textArea,this._textAreaState),l=TextAreaState.deduceInput(this._textAreaState,a,this._OS===2);l.replacePrevCharCnt===0&&l.text.length===1&&(isHighSurrogate(l.text.charCodeAt(0))||l.text.charCodeAt(0)===127)||(this._textAreaState=a,(l.text!==""||l.replacePrevCharCnt!==0||l.replaceNextCharCnt!==0||l.positionDelta!==0)&&this._onType.fire(l))})),this._register(this._textArea.onCut(s=>{this._textArea.setIgnoreSelectionChangeTime("received cut event"),this._ensureClipboardGetsEditorSelection(s),this._asyncTriggerCut.schedule()})),this._register(this._textArea.onCopy(s=>{this._ensureClipboardGetsEditorSelection(s)})),this._register(this._textArea.onPaste(s=>{if(this._textArea.setIgnoreSelectionChangeTime("received paste event"),s.preventDefault(),!s.clipboardData)return;let[a,l]=ClipboardEventUtils.getTextData(s.clipboardData);a&&(l=l||InMemoryClipboardMetadataManager.INSTANCE.get(a),this._onPaste.fire({text:a,metadata:l}))})),this._register(this._textArea.onFocus(()=>{const s=this._hasFocus;this._setHasFocus(!0),this._browser.isSafari&&!s&&this._hasFocus&&this._asyncFocusGainWriteScreenReaderContent.schedule()})),this._register(this._textArea.onBlur(()=>{this._currentComposition&&(this._currentComposition=null,this.writeScreenReaderContent("blurWithoutCompositionEnd"),this._onCompositionEnd.fire()),this._setHasFocus(!1)})),this._register(this._textArea.onSyntheticTap(()=>{this._browser.isAndroid&&this._currentComposition&&(this._currentComposition=null,this.writeScreenReaderContent("tapWithoutCompositionEnd"),this._onCompositionEnd.fire())}))}_installSelectionChangeListener(){let e=0;return addDisposableListener(this._textArea.ownerDocument,"selectionchange",t=>{if(inputLatency.onSelectionChange(),!this._hasFocus||this._currentComposition||!this._browser.isChrome)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||!this._textAreaState.selection)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]),u=this._textAreaState.deduceEditorPosition(l),g=this._host.deduceModelPosition(u[0],u[1],u[2]),f=new Selection$1(c.lineNumber,c.column,g.lineNumber,g.column);this._onSelectionChangeRequest.fire(f)})}dispose(){super.dispose(),this._selectionChangeListener&&(this._selectionChangeListener.dispose(),this._selectionChangeListener=null)}focusTextArea(){this._setHasFocus(!0),this.refreshFocusState()}isFocused(){return this._hasFocus}refreshFocusState(){this._setHasFocus(this._textArea.hasFocus())}_setHasFocus(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._currentComposition||this._setAndWriteTextAreaState(e,this._host.getScreenReaderContent())}_ensureClipboardGetsEditorSelection(e){const t=this._host.getDataToCopy(),i={version:1,isFromEmptySelection:t.isFromEmptySelection,multicursorText:t.multicursorText,mode:t.mode};InMemoryClipboardMetadataManager.INSTANCE.set(this._browser.isFirefox?t.text.replace(/\r\n/g,`
- `):t.text,i),e.preventDefault(),e.clipboardData&&ClipboardEventUtils.setTextData(e.clipboardData,t.text,t.html,i)}}const ClipboardEventUtils={getTextData(o){const e=o.getData(Mimes.text);let t=null;const i=o.getData("vscode-editor-data");if(typeof i=="string")try{t=JSON.parse(i),t.version!==1&&(t=null)}catch{}return e.length===0&&t===null&&o.files.length>0?[Array.prototype.slice.call(o.files,0).map(r=>r.name).join(`
- `),null]:[e,t]},setTextData(o,e,t,i){o.setData(Mimes.text,e),typeof t=="string"&&o.setData("text/html",t),o.setData("vscode-editor-data",JSON.stringify(i))}};class TextAreaWrapper extends Disposable{get ownerDocument(){return this._actual.ownerDocument}constructor(e){super(),this._actual=e,this.onKeyDown=this._register(new DomEmitter(this._actual,"keydown")).event,this.onKeyUp=this._register(new DomEmitter(this._actual,"keyup")).event,this.onCompositionStart=this._register(new DomEmitter(this._actual,"compositionstart")).event,this.onCompositionUpdate=this._register(new DomEmitter(this._actual,"compositionupdate")).event,this.onCompositionEnd=this._register(new DomEmitter(this._actual,"compositionend")).event,this.onBeforeInput=this._register(new DomEmitter(this._actual,"beforeinput")).event,this.onInput=this._register(new DomEmitter(this._actual,"input")).event,this.onCut=this._register(new DomEmitter(this._actual,"cut")).event,this.onCopy=this._register(new DomEmitter(this._actual,"copy")).event,this.onPaste=this._register(new DomEmitter(this._actual,"paste")).event,this.onFocus=this._register(new DomEmitter(this._actual,"focus")).event,this.onBlur=this._register(new DomEmitter(this._actual,"blur")).event,this._onSyntheticTap=this._register(new Emitter$1),this.onSyntheticTap=this._onSyntheticTap.event,this._ignoreSelectionChangeTime=0,this._register(this.onKeyDown(()=>inputLatency.onKeyDown())),this._register(this.onBeforeInput(()=>inputLatency.onBeforeInput())),this._register(this.onInput(()=>inputLatency.onInput())),this._register(this.onKeyUp(()=>inputLatency.onKeyUp())),this._register(addDisposableListener(this._actual,TextAreaSyntethicEvents.Tap,()=>this._onSyntheticTap.fire()))}hasFocus(){const e=getShadowRoot(this._actual);return e?e.activeElement===this._actual:isInDOM(this._actual)?this._actual.ownerDocument.activeElement===this._actual:!1}setIgnoreSelectionChangeTime(e){this._ignoreSelectionChangeTime=Date.now()}getIgnoreSelectionChangeTime(){return this._ignoreSelectionChangeTime}resetSelectionChangeTime(){this._ignoreSelectionChangeTime=0}getValue(){return this._actual.value}setValue(e,t){const i=this._actual;i.value!==t&&(this.setIgnoreSelectionChangeTime("setValue"),i.value=t)}getSelectionStart(){return this._actual.selectionDirection==="backward"?this._actual.selectionEnd:this._actual.selectionStart}getSelectionEnd(){return this._actual.selectionDirection==="backward"?this._actual.selectionStart:this._actual.selectionEnd}setSelectionRange(e,t,i){const n=this._actual;let r=null;const s=getShadowRoot(n);s?r=s.activeElement:r=n.ownerDocument.activeElement;const a=r===n,l=n.selectionStart,d=n.selectionEnd;if(a&&l===t&&d===i){isFirefox&&window.parent!==window&&n.focus();return}if(a){this.setIgnoreSelectionChangeTime("setSelectionRange"),n.setSelectionRange(t,i),isFirefox&&window.parent!==window&&n.focus();return}try{const c=saveParentsScrollTop(n);this.setIgnoreSelectionChangeTime("setSelectionRange"),n.focus(),n.setSelectionRange(t,i),restoreParentsScrollTop(n,c)}catch{}}}class PointerEventHandler extends MouseHandler{constructor(e,t,i){super(e,t,i),this._register(Gesture.addTarget(this.viewHelper.linesContentDomNode)),this._register(addDisposableListener(this.viewHelper.linesContentDomNode,EventType.Tap,r=>this.onTap(r))),this._register(addDisposableListener(this.viewHelper.linesContentDomNode,EventType.Change,r=>this.onChange(r))),this._register(addDisposableListener(this.viewHelper.linesContentDomNode,EventType.Contextmenu,r=>this._onContextMenu(new EditorMouseEvent(r,!1,this.viewHelper.viewDomNode),!1))),this._lastPointerType="mouse",this._register(addDisposableListener(this.viewHelper.linesContentDomNode,"pointerdown",r=>{const s=r.pointerType;if(s==="mouse"){this._lastPointerType="mouse";return}else s==="touch"?this._lastPointerType="touch":this._lastPointerType="pen"}));const n=new EditorPointerEventFactory(this.viewHelper.viewDomNode);this._register(n.onPointerMove(this.viewHelper.viewDomNode,r=>this._onMouseMove(r))),this._register(n.onPointerUp(this.viewHelper.viewDomNode,r=>this._onMouseUp(r))),this._register(n.onPointerLeave(this.viewHelper.viewDomNode,r=>this._onMouseLeave(r))),this._register(n.onPointerDown(this.viewHelper.viewDomNode,(r,s)=>this._onMouseDown(r,s)))}onTap(e){if(!e.initialTarget||!this.viewHelper.linesContentDomNode.contains(e.initialTarget))return;e.preventDefault(),this.viewHelper.focusTextArea();const t=this._createMouseTarget(new EditorMouseEvent(e,!1,this.viewHelper.viewDomNode),!1);t.position&&this.viewController.dispatchMouse({position:t.position,mouseColumn:t.position.column,startedOnLineNumbers:!1,revealType:1,mouseDownCount:e.tapCount,inSelectionMode:!1,altKey:!1,ctrlKey:!1,metaKey:!1,shiftKey:!1,leftButton:!1,middleButton:!1,onInjectedText:t.type===6&&t.detail.injectedText!==null})}onChange(e){this._lastPointerType==="touch"&&this._context.viewModel.viewLayout.deltaScrollNow(-e.translationX,-e.translationY)}_onMouseDown(e,t){e.browserEvent.pointerType!=="touch"&&super._onMouseDown(e,t)}}class TouchHandler extends MouseHandler{constructor(e,t,i){super(e,t,i),this._register(Gesture.addTarget(this.viewHelper.linesContentDomNode)),this._register(addDisposableListener(this.viewHelper.linesContentDomNode,EventType.Tap,n=>this.onTap(n))),this._register(addDisposableListener(this.viewHelper.linesContentDomNode,EventType.Change,n=>this.onChange(n))),this._register(addDisposableListener(this.viewHelper.linesContentDomNode,EventType.Contextmenu,n=>this._onContextMenu(new EditorMouseEvent(n,!1,this.viewHelper.viewDomNode),!1)))}onTap(e){e.preventDefault(),this.viewHelper.focusTextArea();const t=this._createMouseTarget(new EditorMouseEvent(e,!1,this.viewHelper.viewDomNode),!1);if(t.position){const i=document.createEvent("CustomEvent");i.initEvent(TextAreaSyntethicEvents.Tap,!1,!0),this.viewHelper.dispatchTextAreaEvent(i),this.viewController.moveTo(t.position,1)}}onChange(e){this._context.viewModel.viewLayout.deltaScrollNow(-e.translationX,-e.translationY)}}class PointerHandler extends Disposable{constructor(e,t,i){super(),isIOS&&BrowserFeatures.pointerEvents?this.handler=this._register(new PointerEventHandler(e,t,i)):window.TouchEvent?this.handler=this._register(new TouchHandler(e,t,i)):this.handler=this._register(new MouseHandler(e,t,i))}getTargetAtClientPoint(e,t){return this.handler.getTargetAtClientPoint(e,t)}}class DynamicViewOverlay extends ViewEventHandler{}const IThemeService=createDecorator("themeService");function themeColorFromId(o){return{id:o}}function getThemeTypeSelector(o){switch(o){case ColorScheme.DARK:return"vs-dark";case ColorScheme.HIGH_CONTRAST_DARK:return"hc-black";case ColorScheme.HIGH_CONTRAST_LIGHT:return"hc-light";default:return"vs"}}const Extensions$3={ThemingContribution:"base.contributions.theming"};class ThemingRegistry{constructor(){this.themingParticipants=[],this.themingParticipants=[],this.onThemingParticipantAddedEmitter=new Emitter$1}onColorThemeChange(e){return this.themingParticipants.push(e),this.onThemingParticipantAddedEmitter.fire(e),toDisposable(()=>{const t=this.themingParticipants.indexOf(e);this.themingParticipants.splice(t,1)})}getThemingParticipants(){return this.themingParticipants}}const themingRegistry$1=new ThemingRegistry;Registry.add(Extensions$3.ThemingContribution,themingRegistry$1);function registerThemingParticipant(o){return themingRegistry$1.onColorThemeChange(o)}class Themable extends Disposable{constructor(e){super(),this.themeService=e,this.theme=e.getColorTheme(),this._register(this.themeService.onDidColorThemeChange(t=>this.onThemeChange(t)))}onThemeChange(e){this.theme=e,this.updateStyles()}updateStyles(){}}const editorLineHighlight=registerColor("editor.lineHighlightBackground",{dark:null,light:null,hcDark:null,hcLight:null},localize("lineHighlight","Background color for the highlight of line at the cursor position.")),editorLineHighlightBorder=registerColor("editor.lineHighlightBorder",{dark:"#282828",light:"#eeeeee",hcDark:"#f38518",hcLight:contrastBorder},localize("lineHighlightBorderBox","Background color for the border around the line at the cursor position."));registerColor("editor.rangeHighlightBackground",{dark:"#ffffff0b",light:"#fdff0033",hcDark:null,hcLight:null},localize("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);registerColor("editor.rangeHighlightBorder",{dark:null,light:null,hcDark:activeContrastBorder,hcLight:activeContrastBorder},localize("rangeHighlightBorder","Background color of the border around highlighted ranges."),!0);registerColor("editor.symbolHighlightBackground",{dark:editorFindMatchHighlight,light:editorFindMatchHighlight,hcDark:null,hcLight:null},localize("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);registerColor("editor.symbolHighlightBorder",{dark:null,light:null,hcDark:activeContrastBorder,hcLight:activeContrastBorder},localize("symbolHighlightBorder","Background color of the border around highlighted symbols."),!0);const editorCursorForeground=registerColor("editorCursor.foreground",{dark:"#AEAFAD",light:Color.black,hcDark:Color.white,hcLight:"#0F4A85"},localize("caret","Color of the editor cursor.")),editorCursorBackground=registerColor("editorCursor.background",null,localize("editorCursorBackground","The background color of the editor cursor. Allows customizing the color of a character overlapped by a block cursor.")),editorWhitespaces=registerColor("editorWhitespace.foreground",{dark:"#e3e4e229",light:"#33333333",hcDark:"#e3e4e229",hcLight:"#CCCCCC"},localize("editorWhitespaces","Color of whitespace characters in the editor.")),editorLineNumbers=registerColor("editorLineNumber.foreground",{dark:"#858585",light:"#237893",hcDark:Color.white,hcLight:"#292929"},localize("editorLineNumbers","Color of editor line numbers.")),deprecatedEditorIndentGuides=registerColor("editorIndentGuide.background",{dark:editorWhitespaces,light:editorWhitespaces,hcDark:editorWhitespaces,hcLight:editorWhitespaces},localize("editorIndentGuides","Color of the editor indentation guides."),!1,localize("deprecatedEditorIndentGuides","'editorIndentGuide.background' is deprecated. Use 'editorIndentGuide.background1' instead.")),deprecatedEditorActiveIndentGuides=registerColor("editorIndentGuide.activeBackground",{dark:editorWhitespaces,light:editorWhitespaces,hcDark:editorWhitespaces,hcLight:editorWhitespaces},localize("editorActiveIndentGuide","Color of the active editor indentation guides."),!1,localize("deprecatedEditorActiveIndentGuide","'editorIndentGuide.activeBackground' is deprecated. Use 'editorIndentGuide.activeBackground1' instead.")),editorIndentGuide1=registerColor("editorIndentGuide.background1",{dark:deprecatedEditorIndentGuides,light:deprecatedEditorIndentGuides,hcDark:deprecatedEditorIndentGuides,hcLight:deprecatedEditorIndentGuides},localize("editorIndentGuides1","Color of the editor indentation guides (1).")),editorIndentGuide2=registerColor("editorIndentGuide.background2",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorIndentGuides2","Color of the editor indentation guides (2).")),editorIndentGuide3=registerColor("editorIndentGuide.background3",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorIndentGuides3","Color of the editor indentation guides (3).")),editorIndentGuide4=registerColor("editorIndentGuide.background4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorIndentGuides4","Color of the editor indentation guides (4).")),editorIndentGuide5=registerColor("editorIndentGuide.background5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorIndentGuides5","Color of the editor indentation guides (5).")),editorIndentGuide6=registerColor("editorIndentGuide.background6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorIndentGuides6","Color of the editor indentation guides (6).")),editorActiveIndentGuide1=registerColor("editorIndentGuide.activeBackground1",{dark:deprecatedEditorActiveIndentGuides,light:deprecatedEditorActiveIndentGuides,hcDark:deprecatedEditorActiveIndentGuides,hcLight:deprecatedEditorActiveIndentGuides},localize("editorActiveIndentGuide1","Color of the active editor indentation guides (1).")),editorActiveIndentGuide2=registerColor("editorIndentGuide.activeBackground2",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorActiveIndentGuide2","Color of the active editor indentation guides (2).")),editorActiveIndentGuide3=registerColor("editorIndentGuide.activeBackground3",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorActiveIndentGuide3","Color of the active editor indentation guides (3).")),editorActiveIndentGuide4=registerColor("editorIndentGuide.activeBackground4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorActiveIndentGuide4","Color of the active editor indentation guides (4).")),editorActiveIndentGuide5=registerColor("editorIndentGuide.activeBackground5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorActiveIndentGuide5","Color of the active editor indentation guides (5).")),editorActiveIndentGuide6=registerColor("editorIndentGuide.activeBackground6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorActiveIndentGuide6","Color of the active editor indentation guides (6).")),deprecatedEditorActiveLineNumber=registerColor("editorActiveLineNumber.foreground",{dark:"#c6c6c6",light:"#0B216F",hcDark:activeContrastBorder,hcLight:activeContrastBorder},localize("editorActiveLineNumber","Color of editor active line number"),!1,localize("deprecatedEditorActiveLineNumber","Id is deprecated. Use 'editorLineNumber.activeForeground' instead."));registerColor("editorLineNumber.activeForeground",{dark:deprecatedEditorActiveLineNumber,light:deprecatedEditorActiveLineNumber,hcDark:deprecatedEditorActiveLineNumber,hcLight:deprecatedEditorActiveLineNumber},localize("editorActiveLineNumber","Color of editor active line number"));const editorDimmedLineNumber=registerColor("editorLineNumber.dimmedForeground",{dark:null,light:null,hcDark:null,hcLight:null},localize("editorDimmedLineNumber","Color of the final editor line when editor.renderFinalNewline is set to dimmed."));registerColor("editorRuler.foreground",{dark:"#5A5A5A",light:Color.lightgrey,hcDark:Color.white,hcLight:"#292929"},localize("editorRuler","Color of the editor rulers."));registerColor("editorCodeLens.foreground",{dark:"#999999",light:"#919191",hcDark:"#999999",hcLight:"#292929"},localize("editorCodeLensForeground","Foreground color of editor CodeLens"));registerColor("editorBracketMatch.background",{dark:"#0064001a",light:"#0064001a",hcDark:"#0064001a",hcLight:"#0000"},localize("editorBracketMatchBackground","Background color behind matching brackets"));registerColor("editorBracketMatch.border",{dark:"#888",light:"#B9B9B9",hcDark:contrastBorder,hcLight:contrastBorder},localize("editorBracketMatchBorder","Color for matching brackets boxes"));const editorOverviewRulerBorder=registerColor("editorOverviewRuler.border",{dark:"#7f7f7f4d",light:"#7f7f7f4d",hcDark:"#7f7f7f4d",hcLight:"#666666"},localize("editorOverviewRulerBorder","Color of the overview ruler border.")),editorOverviewRulerBackground=registerColor("editorOverviewRuler.background",null,localize("editorOverviewRulerBackground","Background color of the editor overview ruler."));registerColor("editorGutter.background",{dark:editorBackground,light:editorBackground,hcDark:editorBackground,hcLight:editorBackground},localize("editorGutter","Background color of the editor gutter. The gutter contains the glyph margins and the line numbers."));registerColor("editorUnnecessaryCode.border",{dark:null,light:null,hcDark:Color.fromHex("#fff").transparent(.8),hcLight:contrastBorder},localize("unnecessaryCodeBorder","Border color of unnecessary (unused) source code in the editor."));const editorUnnecessaryCodeOpacity=registerColor("editorUnnecessaryCode.opacity",{dark:Color.fromHex("#000a"),light:Color.fromHex("#0007"),hcDark:null,hcLight:null},localize("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.`));registerColor("editorGhostText.border",{dark:null,light:null,hcDark:Color.fromHex("#fff").transparent(.8),hcLight:Color.fromHex("#292929").transparent(.8)},localize("editorGhostTextBorder","Border color of ghost text in the editor."));registerColor("editorGhostText.foreground",{dark:Color.fromHex("#ffffff56"),light:Color.fromHex("#0007"),hcDark:null,hcLight:null},localize("editorGhostTextForeground","Foreground color of the ghost text in the editor."));registerColor("editorGhostText.background",{dark:null,light:null,hcDark:null,hcLight:null},localize("editorGhostTextBackground","Background color of the ghost text in the editor."));const rulerRangeDefault=new Color(new RGBA(0,122,204,.6)),overviewRulerRangeHighlight=registerColor("editorOverviewRuler.rangeHighlightForeground",{dark:rulerRangeDefault,light:rulerRangeDefault,hcDark:rulerRangeDefault,hcLight:rulerRangeDefault},localize("overviewRulerRangeHighlight","Overview ruler marker color for range highlights. The color must not be opaque so as not to hide underlying decorations."),!0),overviewRulerError=registerColor("editorOverviewRuler.errorForeground",{dark:new Color(new RGBA(255,18,18,.7)),light:new Color(new RGBA(255,18,18,.7)),hcDark:new Color(new RGBA(255,50,50,1)),hcLight:"#B5200D"},localize("overviewRuleError","Overview ruler marker color for errors.")),overviewRulerWarning=registerColor("editorOverviewRuler.warningForeground",{dark:editorWarningForeground,light:editorWarningForeground,hcDark:editorWarningBorder,hcLight:editorWarningBorder},localize("overviewRuleWarning","Overview ruler marker color for warnings.")),overviewRulerInfo=registerColor("editorOverviewRuler.infoForeground",{dark:editorInfoForeground,light:editorInfoForeground,hcDark:editorInfoBorder,hcLight:editorInfoBorder},localize("overviewRuleInfo","Overview ruler marker color for infos.")),editorBracketHighlightingForeground1=registerColor("editorBracketHighlight.foreground1",{dark:"#FFD700",light:"#0431FAFF",hcDark:"#FFD700",hcLight:"#0431FAFF"},localize("editorBracketHighlightForeground1","Foreground color of brackets (1). Requires enabling bracket pair colorization.")),editorBracketHighlightingForeground2=registerColor("editorBracketHighlight.foreground2",{dark:"#DA70D6",light:"#319331FF",hcDark:"#DA70D6",hcLight:"#319331FF"},localize("editorBracketHighlightForeground2","Foreground color of brackets (2). Requires enabling bracket pair colorization.")),editorBracketHighlightingForeground3=registerColor("editorBracketHighlight.foreground3",{dark:"#179FFF",light:"#7B3814FF",hcDark:"#87CEFA",hcLight:"#7B3814FF"},localize("editorBracketHighlightForeground3","Foreground color of brackets (3). Requires enabling bracket pair colorization.")),editorBracketHighlightingForeground4=registerColor("editorBracketHighlight.foreground4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorBracketHighlightForeground4","Foreground color of brackets (4). Requires enabling bracket pair colorization.")),editorBracketHighlightingForeground5=registerColor("editorBracketHighlight.foreground5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorBracketHighlightForeground5","Foreground color of brackets (5). Requires enabling bracket pair colorization.")),editorBracketHighlightingForeground6=registerColor("editorBracketHighlight.foreground6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorBracketHighlightForeground6","Foreground color of brackets (6). Requires enabling bracket pair colorization.")),editorBracketHighlightingUnexpectedBracketForeground=registerColor("editorBracketHighlight.unexpectedBracket.foreground",{dark:new Color(new RGBA(255,18,18,.8)),light:new Color(new RGBA(255,18,18,.8)),hcDark:new Color(new RGBA(255,50,50,1)),hcLight:""},localize("editorBracketHighlightUnexpectedBracketForeground","Foreground color of unexpected brackets.")),editorBracketPairGuideBackground1=registerColor("editorBracketPairGuide.background1",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorBracketPairGuide.background1","Background color of inactive bracket pair guides (1). Requires enabling bracket pair guides.")),editorBracketPairGuideBackground2=registerColor("editorBracketPairGuide.background2",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorBracketPairGuide.background2","Background color of inactive bracket pair guides (2). Requires enabling bracket pair guides.")),editorBracketPairGuideBackground3=registerColor("editorBracketPairGuide.background3",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorBracketPairGuide.background3","Background color of inactive bracket pair guides (3). Requires enabling bracket pair guides.")),editorBracketPairGuideBackground4=registerColor("editorBracketPairGuide.background4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorBracketPairGuide.background4","Background color of inactive bracket pair guides (4). Requires enabling bracket pair guides.")),editorBracketPairGuideBackground5=registerColor("editorBracketPairGuide.background5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorBracketPairGuide.background5","Background color of inactive bracket pair guides (5). Requires enabling bracket pair guides.")),editorBracketPairGuideBackground6=registerColor("editorBracketPairGuide.background6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorBracketPairGuide.background6","Background color of inactive bracket pair guides (6). Requires enabling bracket pair guides.")),editorBracketPairGuideActiveBackground1=registerColor("editorBracketPairGuide.activeBackground1",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorBracketPairGuide.activeBackground1","Background color of active bracket pair guides (1). Requires enabling bracket pair guides.")),editorBracketPairGuideActiveBackground2=registerColor("editorBracketPairGuide.activeBackground2",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorBracketPairGuide.activeBackground2","Background color of active bracket pair guides (2). Requires enabling bracket pair guides.")),editorBracketPairGuideActiveBackground3=registerColor("editorBracketPairGuide.activeBackground3",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorBracketPairGuide.activeBackground3","Background color of active bracket pair guides (3). Requires enabling bracket pair guides.")),editorBracketPairGuideActiveBackground4=registerColor("editorBracketPairGuide.activeBackground4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorBracketPairGuide.activeBackground4","Background color of active bracket pair guides (4). Requires enabling bracket pair guides.")),editorBracketPairGuideActiveBackground5=registerColor("editorBracketPairGuide.activeBackground5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorBracketPairGuide.activeBackground5","Background color of active bracket pair guides (5). Requires enabling bracket pair guides.")),editorBracketPairGuideActiveBackground6=registerColor("editorBracketPairGuide.activeBackground6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},localize("editorBracketPairGuide.activeBackground6","Background color of active bracket pair guides (6). Requires enabling bracket pair guides."));registerColor("editorUnicodeHighlight.border",{dark:"#BD9B03",light:"#CEA33D",hcDark:"#ff0000",hcLight:"#CEA33D"},localize("editorUnicodeHighlight.border","Border color used to highlight unicode characters."));registerColor("editorUnicodeHighlight.background",{dark:"#bd9b0326",light:"#cea33d14",hcDark:"#00000000",hcLight:"#cea33d14"},localize("editorUnicodeHighlight.background","Background color used to highlight unicode characters."));registerThemingParticipant((o,e)=>{const t=o.getColor(editorBackground),i=o.getColor(editorLineHighlight),n=i&&!i.isTransparent()?i:t;n&&e.addRule(`.monaco-editor .inputarea.ime-input { background-color: ${n}; }`)});class LineNumbersOverlay extends DynamicViewOverlay{constructor(e){super(),this._context=e,this._readConfig(),this._lastCursorModelPosition=new Position$1(1,1),this._renderResult=null,this._activeLineNumber=1,this._context.addEventHandler(this)}_readConfig(){const e=this._context.configuration.options;this._lineHeight=e.get(66);const t=e.get(67);this._renderLineNumbers=t.renderType,this._renderCustomLineNumbers=t.renderFn,this._renderFinalNewline=e.get(94);const i=e.get(143);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.viewModel.coordinatesConverter.convertViewPositionToModelPosition(t);let i=!1;return this._activeLineNumber!==t.lineNumber&&(this._activeLineNumber=t.lineNumber,i=!0),(this._renderLineNumbers===2||this._renderLineNumbers===3)&&(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.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new Position$1(e,1));if(t.column!==1)return"";const i=t.lineNumber;if(this._renderCustomLineNumbers)return this._renderCustomLineNumbers(i);if(this._renderLineNumbers===2){const n=Math.abs(this._lastCursorModelPosition.lineNumber-i);return n===0?'<span class="relative-current-line-number">'+i+"</span>":String(n)}return this._renderLineNumbers===3?this._lastCursorModelPosition.lineNumber===i||i%10===0?String(i):"":String(i)}prepareRender(e){if(this._renderLineNumbers===0){this._renderResult=null;return}const t=isLinux?this._lineHeight%2===0?" lh-even":" lh-odd":"",i=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber,r=this._context.viewModel.getLineCount(),s=[];for(let a=i;a<=n;a++){const l=a-i,d=this._getLineRenderLineNumber(a);if(!d){s[l]="";continue}let c="";if(a===r&&this._context.viewModel.getLineLength(a)===0){if(this._renderFinalNewline==="off"){s[l]="";continue}this._renderFinalNewline==="dimmed"&&(c=" dimmed-line-number")}a===this._activeLineNumber&&(c=" active-line-number"),s[l]=`<div class="${LineNumbersOverlay.CLASS_NAME}${t}${c}" style="left:${this._lineNumbersLeft}px;width:${this._lineNumbersWidth}px;">${d}</div>`}this._renderResult=s}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}LineNumbersOverlay.CLASS_NAME="line-numbers";registerThemingParticipant((o,e)=>{const t=o.getColor(editorLineNumbers),i=o.getColor(editorDimmedLineNumber);i?e.addRule(`.monaco-editor .line-numbers.dimmed-line-number { color: ${i}; }`):t&&e.addRule(`.monaco-editor .line-numbers.dimmed-line-number { color: ${t.transparent(.4)}; }`)});class Margin extends ViewPart{constructor(e){super(e);const t=this._context.configuration.options,i=t.get(143);this._canUseLayerHinting=!t.get(32),this._contentLeft=i.contentLeft,this._glyphMarginLeft=i.glyphMarginLeft,this._glyphMarginWidth=i.glyphMarginWidth,this._domNode=createFastDomNode(document.createElement("div")),this._domNode.setClassName(Margin.OUTER_CLASS_NAME),this._domNode.setPosition("absolute"),this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true"),this._glyphMarginBackgroundDomNode=createFastDomNode(document.createElement("div")),this._glyphMarginBackgroundDomNode.setClassName(Margin.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(143);return this._canUseLayerHinting=!t.get(32),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)}}Margin.CLASS_NAME="glyph-margin";Margin.OUTER_CLASS_NAME="margin";const MOUSE_CURSOR_TEXT_CSS_CLASS_NAME="monaco-mouse-cursor-text";class IMEImpl{constructor(){this._onDidChange=new Emitter$1,this.onDidChange=this._onDidChange.event,this._enabled=!0}get enabled(){return this._enabled}enable(){this._enabled=!0,this._onDidChange.fire()}disable(){this._enabled=!1,this._onDidChange.fire()}}const IME=new IMEImpl,IKeybindingService=createDecorator("keybindingService");var __decorate$24=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1_=function(o,e){return function(t,i){e(t,i,o)}};class VisibleTextAreaData{constructor(e,t,i,n,r){this._context=e,this.modelLineNumber=t,this.distanceToModelLineStart=i,this.widthOfHiddenLineTextBefore=n,this.distanceToModelLineEnd=r,this._visibleTextAreaBrand=void 0,this.startPosition=null,this.endPosition=null,this.visibleTextareaStart=null,this.visibleTextareaEnd=null,this._previousPresentation=null}prepareRender(e){const t=new Position$1(this.modelLineNumber,this.distanceToModelLineStart+1),i=new Position$1(this.modelLineNumber,this._context.viewModel.model.getLineMaxColumn(this.modelLineNumber)-this.distanceToModelLineEnd);this.startPosition=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(t),this.endPosition=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(i),this.startPosition.lineNumber===this.endPosition.lineNumber?(this.visibleTextareaStart=e.visibleRangeForPosition(this.startPosition),this.visibleTextareaEnd=e.visibleRangeForPosition(this.endPosition)):(this.visibleTextareaStart=null,this.visibleTextareaEnd=null)}definePresentation(e){return this._previousPresentation||(e?this._previousPresentation=e:this._previousPresentation={foreground:1,italic:!1,bold:!1,underline:!1,strikethrough:!1}),this._previousPresentation}}const canUseZeroSizeTextarea=isFirefox;let TextAreaHandler=class extends ViewPart{constructor(e,t,i,n){super(e),this._keybindingService=n,this._primaryCursorPosition=new Position$1(1,1),this._primaryCursorVisibleRange=null,this._viewController=t,this._visibleRangeProvider=i,this._scrollLeft=0,this._scrollTop=0;const r=this._context.configuration.options,s=r.get(143);this._setAccessibilityOptions(r),this._contentLeft=s.contentLeft,this._contentWidth=s.contentWidth,this._contentHeight=s.height,this._fontInfo=r.get(50),this._lineHeight=r.get(66),this._emptySelectionClipboard=r.get(37),this._copyWithSyntaxHighlighting=r.get(25),this._visibleTextArea=null,this._selections=[new Selection$1(1,1,1,1)],this._modelSelections=[new Selection$1(1,1,1,1)],this._lastRenderPosition=null,this.textArea=createFastDomNode(document.createElement("textarea")),PartFingerprints.write(this.textArea,6),this.textArea.setClassName(`inputarea ${MOUSE_CURSOR_TEXT_CSS_CLASS_NAME}`),this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off");const{tabSize:a}=this._context.viewModel.model.getOptions();this.textArea.domNode.style.tabSize=`${a*this._fontInfo.spaceWidth}px`,this.textArea.setAttribute("autocorrect","off"),this.textArea.setAttribute("autocapitalize","off"),this.textArea.setAttribute("autocomplete","off"),this.textArea.setAttribute("spellcheck","false"),this.textArea.setAttribute("aria-label",this._getAriaLabel(r)),this.textArea.setAttribute("aria-required",r.get(5)?"true":"false"),this.textArea.setAttribute("tabindex",String(r.get(123))),this.textArea.setAttribute("role","textbox"),this.textArea.setAttribute("aria-roledescription",localize("editor","editor")),this.textArea.setAttribute("aria-multiline","true"),this.textArea.setAttribute("aria-autocomplete",r.get(90)?"none":"both"),this._ensureReadOnlyAttribute(),this.textAreaCover=createFastDomNode(document.createElement("div")),this.textAreaCover.setPosition("absolute");const l={getLineCount:()=>this._context.viewModel.getLineCount(),getLineMaxColumn:u=>this._context.viewModel.getLineMaxColumn(u),getValueInRange:(u,g)=>this._context.viewModel.getValueInRange(u,g),getValueLengthInRange:(u,g)=>this._context.viewModel.getValueLengthInRange(u,g),modifyPosition:(u,g)=>this._context.viewModel.modifyPosition(u,g)},d={getDataToCopy:()=>{const u=this._context.viewModel.getPlainTextToCopy(this._modelSelections,this._emptySelectionClipboard,isWindows),g=this._context.viewModel.model.getEOL(),f=this._emptySelectionClipboard&&this._modelSelections.length===1&&this._modelSelections[0].isEmpty(),p=Array.isArray(u)?u:null,m=Array.isArray(u)?u.join(g):u;let b,_=null;if(CopyOptions.forceCopyWithSyntaxHighlighting||this._copyWithSyntaxHighlighting&&m.length<65536){const C=this._context.viewModel.getRichTextToCopy(this._modelSelections,this._emptySelectionClipboard);C&&(b=C.html,_=C.mode)}return{isFromEmptySelection:f,multicursorText:p,text:m,html:b,mode:_}},getScreenReaderContent:()=>{if(this._accessibilitySupport===1){const u=this._selections[0];if(isMacintosh&&u.isEmpty()){const f=u.getStartPosition();let p=this._getWordBeforePosition(f);if(p.length===0&&(p=this._getCharacterBeforePosition(f)),p.length>0)return new TextAreaState(p,p.length,p.length,Range$2.fromPositions(f),0)}if(isMacintosh&&!u.isEmpty()&&l.getValueLengthInRange(u,0)<500){const f=l.getValueInRange(u,0);return new TextAreaState(f,0,f.length,u,0)}if(isSafari&&!u.isEmpty()){const f="vscode-placeholder";return new TextAreaState(f,0,f.length,null,void 0)}return TextAreaState.EMPTY}if(isAndroid){const u=this._selections[0];if(u.isEmpty()){const g=u.getStartPosition(),[f,p]=this._getAndroidWordAtPosition(g);if(f.length>0)return new TextAreaState(f,p,p,Range$2.fromPositions(g),0)}return TextAreaState.EMPTY}return PagedScreenReaderStrategy.fromEditorSelection(l,this._selections[0],this._accessibilityPageSize,this._accessibilitySupport===0)},deduceModelPosition:(u,g,f)=>this._context.viewModel.deduceModelPositionRelativeToViewPosition(u,g,f)},c=this._register(new TextAreaWrapper(this.textArea.domNode));this._textAreaInput=this._register(new TextAreaInput(d,c,OS,{isAndroid,isChrome,isFirefox,isSafari})),this._register(this._textAreaInput.onKeyDown(u=>{this._viewController.emitKeyDown(u)})),this._register(this._textAreaInput.onKeyUp(u=>{this._viewController.emitKeyUp(u)})),this._register(this._textAreaInput.onPaste(u=>{let g=!1,f=null,p=null;u.metadata&&(g=this._emptySelectionClipboard&&!!u.metadata.isFromEmptySelection,f=typeof u.metadata.multicursorText<"u"?u.metadata.multicursorText:null,p=u.metadata.mode),this._viewController.paste(u.text,g,f,p)})),this._register(this._textAreaInput.onCut(()=>{this._viewController.cut()})),this._register(this._textAreaInput.onType(u=>{u.replacePrevCharCnt||u.replaceNextCharCnt||u.positionDelta?this._viewController.compositionType(u.text,u.replacePrevCharCnt,u.replaceNextCharCnt,u.positionDelta):this._viewController.type(u.text)})),this._register(this._textAreaInput.onSelectionChangeRequest(u=>{this._viewController.setSelection(u)})),this._register(this._textAreaInput.onCompositionStart(u=>{const g=this.textArea.domNode,f=this._modelSelections[0],{distanceToModelLineStart:p,widthOfHiddenTextBefore:m}=(()=>{const _=g.value.substring(0,Math.min(g.selectionStart,g.selectionEnd)),C=_.lastIndexOf(`
- `),S=_.substring(C+1),y=S.lastIndexOf(" "),E=S.length-y-1,x=f.getStartPosition(),L=Math.min(x.column-1,E),I=x.column-1-L,D=S.substring(0,S.length-L),{tabSize:N}=this._context.viewModel.model.getOptions(),F=measureText(this.textArea.domNode.ownerDocument,D,this._fontInfo,N);return{distanceToModelLineStart:I,widthOfHiddenTextBefore:F}})(),{distanceToModelLineEnd:b}=(()=>{const _=g.value.substring(Math.max(g.selectionStart,g.selectionEnd)),C=_.indexOf(`
- `),S=C===-1?_:_.substring(0,C),y=S.indexOf(" "),E=y===-1?S.length:S.length-y-1,x=f.getEndPosition(),L=Math.min(this._context.viewModel.model.getLineMaxColumn(x.lineNumber)-x.column,E);return{distanceToModelLineEnd:this._context.viewModel.model.getLineMaxColumn(x.lineNumber)-x.column-L}})();this._context.viewModel.revealRange("keyboard",!0,Range$2.fromPositions(this._selections[0].getStartPosition()),0,1),this._visibleTextArea=new VisibleTextAreaData(this._context,f.startLineNumber,p,m,b),this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off"),this._visibleTextArea.prepareRender(this._visibleRangeProvider),this._render(),this.textArea.setClassName(`inputarea ${MOUSE_CURSOR_TEXT_CSS_CLASS_NAME} ime-input`),this._viewController.compositionStart(),this._context.viewModel.onCompositionStart()})),this._register(this._textAreaInput.onCompositionUpdate(u=>{this._visibleTextArea&&(this._visibleTextArea.prepareRender(this._visibleRangeProvider),this._render())})),this._register(this._textAreaInput.onCompositionEnd(()=>{this._visibleTextArea=null,this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off"),this._render(),this.textArea.setClassName(`inputarea ${MOUSE_CURSOR_TEXT_CSS_CLASS_NAME}`),this._viewController.compositionEnd(),this._context.viewModel.onCompositionEnd()})),this._register(this._textAreaInput.onFocus(()=>{this._context.viewModel.setHasFocus(!0)})),this._register(this._textAreaInput.onBlur(()=>{this._context.viewModel.setHasFocus(!1)})),this._register(IME.onDidChange(()=>{this._ensureReadOnlyAttribute()}))}writeScreenReaderContent(e){this._textAreaInput.writeScreenReaderContent(e)}dispose(){super.dispose()}_getAndroidWordAtPosition(e){const t='`~!@#$%^&*()-=+[{]}\\|;:",.<>/?',i=this._context.viewModel.getLineContent(e.lineNumber),n=getMapForWordSeparators(t);let r=!0,s=e.column,a=!0,l=e.column,d=0;for(;d<50&&(r||a);){if(r&&s<=1&&(r=!1),r){const c=i.charCodeAt(s-2);n.get(c)!==0?r=!1:s--}if(a&&l>i.length&&(a=!1),a){const c=i.charCodeAt(l-1);n.get(c)!==0?a=!1:l++}d++}return[i.substring(s-1,l-1),e.column-s]}_getWordBeforePosition(e){const t=this._context.viewModel.getLineContent(e.lineNumber),i=getMapForWordSeparators(this._context.configuration.options.get(129));let n=e.column,r=0;for(;n>1;){const s=t.charCodeAt(n-2);if(i.get(s)!==0||r>50)return t.substring(n-1,e.column-1);r++,n--}return t.substring(0,e.column-1)}_getCharacterBeforePosition(e){if(e.column>1){const i=this._context.viewModel.getLineContent(e.lineNumber).charAt(e.column-2);if(!isHighSurrogate(i.charCodeAt(0)))return i}return""}_getAriaLabel(e){var t,i,n;if(e.get(2)===1){const s=(t=this._keybindingService.lookupKeybinding("editor.action.toggleScreenReaderAccessibilityMode"))===null||t===void 0?void 0:t.getAriaLabel(),a=(i=this._keybindingService.lookupKeybinding("workbench.action.showCommands"))===null||i===void 0?void 0:i.getAriaLabel(),l=(n=this._keybindingService.lookupKeybinding("workbench.action.openGlobalKeybindings"))===null||n===void 0?void 0:n.getAriaLabel(),d=localize("accessibilityModeOff","The editor is not accessible at this time.");return s?localize("accessibilityOffAriaLabel","{0} To enable screen reader optimized mode, use {1}",d,s):a?localize("accessibilityOffAriaLabelNoKb","{0} To enable screen reader optimized mode, open the quick pick with {1} and run the command Toggle Screen Reader Accessibility Mode, which is currently not triggerable via keyboard.",d,a):l?localize("accessibilityOffAriaLabelNoKbs","{0} Please assign a keybinding for the command Toggle Screen Reader Accessibility Mode by accessing the keybindings editor with {1} and run it.",d,l):d}return e.get(4)}_setAccessibilityOptions(e){this._accessibilitySupport=e.get(2);const t=e.get(3);this._accessibilitySupport===2&&t===EditorOptions.accessibilityPageSize.defaultValue?this._accessibilityPageSize=500:this._accessibilityPageSize=t;const n=e.get(143).wrappingColumn;if(n!==-1&&this._accessibilitySupport!==1){const r=e.get(50);this._textAreaWrapping=!0,this._textAreaWidth=Math.round(n*r.typicalHalfwidthCharacterWidth)}else this._textAreaWrapping=!1,this._textAreaWidth=canUseZeroSizeTextarea?0:1}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(143);this._setAccessibilityOptions(t),this._contentLeft=i.contentLeft,this._contentWidth=i.contentWidth,this._contentHeight=i.height,this._fontInfo=t.get(50),this._lineHeight=t.get(66),this._emptySelectionClipboard=t.get(37),this._copyWithSyntaxHighlighting=t.get(25),this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off");const{tabSize:n}=this._context.viewModel.model.getOptions();return this.textArea.domNode.style.tabSize=`${n*this._fontInfo.spaceWidth}px`,this.textArea.setAttribute("aria-label",this._getAriaLabel(t)),this.textArea.setAttribute("aria-required",t.get(5)?"true":"false"),this.textArea.setAttribute("tabindex",String(t.get(123))),(e.hasChanged(34)||e.hasChanged(90))&&this._ensureReadOnlyAttribute(),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)}_ensureReadOnlyAttribute(){const e=this._context.configuration.options;!IME.enabled||e.get(34)&&e.get(90)?this.textArea.setAttribute("readonly","true"):this.textArea.removeAttribute("readonly")}prepareRender(e){var t;this._primaryCursorPosition=new Position$1(this._selections[0].positionLineNumber,this._selections[0].positionColumn),this._primaryCursorVisibleRange=e.visibleRangeForPosition(this._primaryCursorPosition),(t=this._visibleTextArea)===null||t===void 0||t.prepareRender(e)}render(e){this._textAreaInput.writeScreenReaderContent("render"),this._render()}_render(){var e;if(this._visibleTextArea){const n=this._visibleTextArea.visibleTextareaStart,r=this._visibleTextArea.visibleTextareaEnd,s=this._visibleTextArea.startPosition,a=this._visibleTextArea.endPosition;if(s&&a&&n&&r&&r.left>=this._scrollLeft&&n.left<=this._scrollLeft+this._contentWidth){const l=this._context.viewLayout.getVerticalOffsetForLineNumber(this._primaryCursorPosition.lineNumber)-this._scrollTop,d=this._newlinecount(this.textArea.domNode.value.substr(0,this.textArea.domNode.selectionStart));let c=this._visibleTextArea.widthOfHiddenLineTextBefore,u=this._contentLeft+n.left-this._scrollLeft,g=r.left-n.left+1;if(u<this._contentLeft){const C=this._contentLeft-u;u+=C,c+=C,g-=C}g>this._contentWidth&&(g=this._contentWidth);const f=this._context.viewModel.getViewLineData(s.lineNumber),p=f.tokens.findTokenIndexAtOffset(s.column-1),m=f.tokens.findTokenIndexAtOffset(a.column-1),b=p===m,_=this._visibleTextArea.definePresentation(b?f.tokens.getPresentation(p):null);this.textArea.domNode.scrollTop=d*this._lineHeight,this.textArea.domNode.scrollLeft=c,this._doRender({lastRenderPosition:null,top:l,left:u,width:g,height:this._lineHeight,useCover:!1,color:(TokenizationRegistry.getColorMap()||[])[_.foreground],italic:_.italic,bold:_.bold,underline:_.underline,strikethrough:_.strikethrough})}return}if(!this._primaryCursorVisibleRange){this._renderAtTopLeft();return}const t=this._contentLeft+this._primaryCursorVisibleRange.left-this._scrollLeft;if(t<this._contentLeft||t>this._contentLeft+this._contentWidth){this._renderAtTopLeft();return}const i=this._context.viewLayout.getVerticalOffsetForLineNumber(this._selections[0].positionLineNumber)-this._scrollTop;if(i<0||i>this._contentHeight){this._renderAtTopLeft();return}if(isMacintosh){this._doRender({lastRenderPosition:this._primaryCursorPosition,top:i,left:this._textAreaWrapping?this._contentLeft:t,width:this._textAreaWidth,height:this._lineHeight,useCover:!1}),this.textArea.domNode.scrollLeft=this._primaryCursorVisibleRange.left;const n=(e=this._textAreaInput.textAreaState.newlineCountBeforeSelection)!==null&&e!==void 0?e:this._newlinecount(this.textArea.domNode.value.substr(0,this.textArea.domNode.selectionStart));this.textArea.domNode.scrollTop=n*this._lineHeight;return}this._doRender({lastRenderPosition:this._primaryCursorPosition,top:i,left:this._textAreaWrapping?this._contentLeft:t,width:this._textAreaWidth,height:canUseZeroSizeTextarea?0:1,useCover:!1})}_newlinecount(e){let t=0,i=-1;do{if(i=e.indexOf(`
- `,i+1),i===-1)break;t++}while(!0);return t}_renderAtTopLeft(){this._doRender({lastRenderPosition:null,top:0,left:0,width:this._textAreaWidth,height:canUseZeroSizeTextarea?0:1,useCover:!0})}_doRender(e){this._lastRenderPosition=e.lastRenderPosition;const t=this.textArea,i=this.textAreaCover;applyFontInfo(t,this._fontInfo),t.setTop(e.top),t.setLeft(e.left),t.setWidth(e.width),t.setHeight(e.height),t.setColor(e.color?Color.Format.CSS.formatHex(e.color):""),t.setFontStyle(e.italic?"italic":""),e.bold&&t.setFontWeight("bold"),t.setTextDecoration(`${e.underline?" underline":""}${e.strikethrough?" line-through":""}`),i.setTop(e.useCover?e.top:0),i.setLeft(e.useCover?e.left:0),i.setWidth(e.useCover?e.width:0),i.setHeight(e.useCover?e.height:0);const n=this._context.configuration.options;n.get(57)?i.setClassName("monaco-editor-background textAreaCover "+Margin.OUTER_CLASS_NAME):n.get(67).renderType!==0?i.setClassName("monaco-editor-background textAreaCover "+LineNumbersOverlay.CLASS_NAME):i.setClassName("monaco-editor-background textAreaCover")}};TextAreaHandler=__decorate$24([__param$1_(3,IKeybindingService)],TextAreaHandler);function measureText(o,e,t,i){if(e.length===0)return 0;const n=o.createElement("div");n.style.position="absolute",n.style.top="-50000px",n.style.width="50000px";const r=o.createElement("span");applyFontInfo(r,t),r.style.whiteSpace="pre",r.style.tabSize=`${i*t.spaceWidth}px`,r.append(e),n.appendChild(r),o.body.appendChild(n);const s=r.offsetWidth;return o.body.removeChild(n),s}function _normalizeIndentationFromWhitespace(o,e,t){let i=0;for(let r=0;r<o.length;r++)o.charAt(r)===" "?i=CursorColumns.nextIndentTabStop(i,e):i++;let n="";if(!t){const r=Math.floor(i/e);i=i%e;for(let s=0;s<r;s++)n+=" "}for(let r=0;r<i;r++)n+=" ";return n}function normalizeIndentation(o,e,t){let i=firstNonWhitespaceIndex(o);return i===-1&&(i=o.length),_normalizeIndentationFromWhitespace(o.substring(0,i),e,t)+o.substring(i)}const autoCloseAlways=()=>!0,autoCloseNever=()=>!1,autoCloseBeforeWhitespace=o=>o===" "||o===" ";class CursorConfiguration{static shouldRecreate(e){return e.hasChanged(143)||e.hasChanged(129)||e.hasChanged(37)||e.hasChanged(76)||e.hasChanged(78)||e.hasChanged(79)||e.hasChanged(6)||e.hasChanged(7)||e.hasChanged(11)||e.hasChanged(9)||e.hasChanged(10)||e.hasChanged(14)||e.hasChanged(127)||e.hasChanged(50)||e.hasChanged(90)}constructor(e,t,i,n){var r;this.languageConfigurationService=n,this._cursorMoveConfigurationBrand=void 0,this._languageId=e;const s=i.options,a=s.get(143),l=s.get(50);this.readOnly=s.get(90),this.tabSize=t.tabSize,this.indentSize=t.indentSize,this.insertSpaces=t.insertSpaces,this.stickyTabStops=s.get(115),this.lineHeight=l.lineHeight,this.typicalHalfwidthCharacterWidth=l.typicalHalfwidthCharacterWidth,this.pageSize=Math.max(1,Math.floor(a.height/this.lineHeight)-2),this.useTabStops=s.get(127),this.wordSeparators=s.get(129),this.emptySelectionClipboard=s.get(37),this.copyWithSyntaxHighlighting=s.get(25),this.multiCursorMergeOverlapping=s.get(76),this.multiCursorPaste=s.get(78),this.multiCursorLimit=s.get(79),this.autoClosingBrackets=s.get(6),this.autoClosingComments=s.get(7),this.autoClosingQuotes=s.get(11),this.autoClosingDelete=s.get(9),this.autoClosingOvertype=s.get(10),this.autoSurround=s.get(14),this.autoIndent=s.get(12),this.surroundingPairs={},this._electricChars=null,this.shouldAutoCloseBefore={quote:this._getShouldAutoClose(e,this.autoClosingQuotes,!0),comment:this._getShouldAutoClose(e,this.autoClosingComments,!1),bracket:this._getShouldAutoClose(e,this.autoClosingBrackets,!1)},this.autoClosingPairs=this.languageConfigurationService.getLanguageConfiguration(e).getAutoClosingPairs();const d=this.languageConfigurationService.getLanguageConfiguration(e).getSurroundingPairs();if(d)for(const u of d)this.surroundingPairs[u.open]=u.close;const c=this.languageConfigurationService.getLanguageConfiguration(e).comments;this.blockCommentStartToken=(r=c==null?void 0:c.blockCommentStartToken)!==null&&r!==void 0?r:null}get electricChars(){var e;if(!this._electricChars){this._electricChars={};const t=(e=this.languageConfigurationService.getLanguageConfiguration(this._languageId).electricCharacter)===null||e===void 0?void 0:e.getElectricCharacters();if(t)for(const i of t)this._electricChars[i]=!0}return this._electricChars}onElectricCharacter(e,t,i){const n=createScopedLineTokens(t,i-1),r=this.languageConfigurationService.getLanguageConfiguration(n.languageId).electricCharacter;return r?r.onElectricCharacter(e,n,i-n.firstCharOffset):null}normalizeIndentation(e){return normalizeIndentation(e,this.indentSize,this.insertSpaces)}_getShouldAutoClose(e,t,i){switch(t){case"beforeWhitespace":return autoCloseBeforeWhitespace;case"languageDefined":return this._getLanguageDefinedShouldAutoClose(e,i);case"always":return autoCloseAlways;case"never":return autoCloseNever}}_getLanguageDefinedShouldAutoClose(e,t){const i=this.languageConfigurationService.getLanguageConfiguration(e).getAutoCloseBeforeSet(t);return n=>i.indexOf(n)!==-1}visibleColumnFromColumn(e,t){return CursorColumns.visibleColumnFromColumn(e.getLineContent(t.lineNumber),t.column,this.tabSize)}columnFromVisibleColumn(e,t,i){const n=CursorColumns.columnFromVisibleColumn(e.getLineContent(t),i,this.tabSize),r=e.getLineMinColumn(t);if(n<r)return r;const s=e.getLineMaxColumn(t);return n>s?s:n}}let CursorState$1=class mt{static fromModelState(e){return new PartialModelCursorState(e)}static fromViewState(e){return new PartialViewCursorState(e)}static fromModelSelection(e){const t=Selection$1.liftSelection(e),i=new SingleCursorState(Range$2.fromPositions(t.getSelectionStart()),0,0,t.getPosition(),0);return mt.fromModelState(i)}static fromModelSelections(e){const t=[];for(let i=0,n=e.length;i<n;i++)t[i]=this.fromModelSelection(e[i]);return t}constructor(e,t){this._cursorStateBrand=void 0,this.modelState=e,this.viewState=t}equals(e){return this.viewState.equals(e.viewState)&&this.modelState.equals(e.modelState)}};class PartialModelCursorState{constructor(e){this.modelState=e,this.viewState=null}}class PartialViewCursorState{constructor(e){this.modelState=null,this.viewState=e}}class SingleCursorState{constructor(e,t,i,n,r){this.selectionStart=e,this.selectionStartKind=t,this.selectionStartLeftoverVisibleColumns=i,this.position=n,this.leftoverVisibleColumns=r,this._singleCursorStateBrand=void 0,this.selection=SingleCursorState._computeSelection(this.selectionStart,this.position)}equals(e){return this.selectionStartLeftoverVisibleColumns===e.selectionStartLeftoverVisibleColumns&&this.leftoverVisibleColumns===e.leftoverVisibleColumns&&this.selectionStartKind===e.selectionStartKind&&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 SingleCursorState(this.selectionStart,this.selectionStartKind,this.selectionStartLeftoverVisibleColumns,new Position$1(t,i),n):new SingleCursorState(new Range$2(t,i,t,i),0,n,new Position$1(t,i),n)}static _computeSelection(e,t){return e.isEmpty()||!t.isBeforeOrEqual(e.getStartPosition())?Selection$1.fromPositions(e.getStartPosition(),t):Selection$1.fromPositions(e.getEndPosition(),t)}}class EditOperationResult{constructor(e,t,i){this._editOperationResultBrand=void 0,this.type=e,this.commands=t,this.shouldPushStackElementBefore=i.shouldPushStackElementBefore,this.shouldPushStackElementAfter=i.shouldPushStackElementAfter}}function isQuote(o){return o==="'"||o==='"'||o==="`"}class ColumnSelection{static columnSelect(e,t,i,n,r,s){const a=Math.abs(r-i)+1,l=i>r,d=n>s,c=n<s,u=[];for(let g=0;g<a;g++){const f=i+(l?-g:g),p=e.columnFromVisibleColumn(t,f,n),m=e.columnFromVisibleColumn(t,f,s),b=e.visibleColumnFromColumn(t,new Position$1(f,p)),_=e.visibleColumnFromColumn(t,new Position$1(f,m));c&&(b>s||_<n)||d&&(_>n||b<s)||u.push(new SingleCursorState(new Range$2(f,p,f,p),0,0,new Position$1(f,m),0))}if(u.length===0)for(let g=0;g<a;g++){const f=i+(l?-g:g),p=t.getLineMaxColumn(f);u.push(new SingleCursorState(new Range$2(f,p,f,p),0,0,new Position$1(f,p),0))}return{viewStates:u,reversed:l,fromLineNumber:i,fromVisualColumn:n,toLineNumber:r,toVisualColumn:s}}static columnSelectLeft(e,t,i){let n=i.toViewVisualColumn;return n>0&&n--,ColumnSelection.columnSelect(e,t,i.fromViewLineNumber,i.fromViewVisualColumn,i.toViewLineNumber,n)}static columnSelectRight(e,t,i){let n=0;const r=Math.min(i.fromViewLineNumber,i.toViewLineNumber),s=Math.max(i.fromViewLineNumber,i.toViewLineNumber);for(let l=r;l<=s;l++){const d=t.getLineMaxColumn(l),c=e.visibleColumnFromColumn(t,new Position$1(l,d));n=Math.max(n,c)}let a=i.toViewVisualColumn;return a<n&&a++,this.columnSelect(e,t,i.fromViewLineNumber,i.fromViewVisualColumn,i.toViewLineNumber,a)}static columnSelectUp(e,t,i,n){const r=n?e.pageSize:1,s=Math.max(1,i.toViewLineNumber-r);return this.columnSelect(e,t,i.fromViewLineNumber,i.fromViewVisualColumn,s,i.toViewVisualColumn)}static columnSelectDown(e,t,i,n){const r=n?e.pageSize:1,s=Math.min(t.getLineCount(),i.toViewLineNumber+r);return this.columnSelect(e,t,i.fromViewLineNumber,i.fromViewVisualColumn,s,i.toViewVisualColumn)}}class ReplaceCommand{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){const n=t.getInverseEditOperations()[0].range;return Selection$1.fromPositions(n.getEndPosition())}}class ReplaceCommandThatSelectsText{constructor(e,t){this._range=e,this._text=t}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text)}computeCursorState(e,t){const n=t.getInverseEditOperations()[0].range;return Selection$1.fromRange(n,0)}}class ReplaceCommandWithoutChangingPosition{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){const n=t.getInverseEditOperations()[0].range;return Selection$1.fromPositions(n.getStartPosition())}}class ReplaceCommandWithOffsetCursorState{constructor(e,t,i,n,r=!1){this._range=e,this._text=t,this._columnDeltaOffset=n,this._lineNumberDeltaOffset=i,this.insertsAutoWhitespace=r}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text)}computeCursorState(e,t){const n=t.getInverseEditOperations()[0].range;return Selection$1.fromPositions(n.getEndPosition().delta(this._lineNumberDeltaOffset,this._columnDeltaOffset))}}class ReplaceCommandThatPreservesSelection{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)}}class CursorPosition{constructor(e,t,i){this._cursorPositionBrand=void 0,this.lineNumber=e,this.column=t,this.leftoverVisibleColumns=i}}class MoveOperations{static leftPosition(e,t){if(t.column>e.getLineMinColumn(t.lineNumber))return t.delta(void 0,-prevCharLength(e.getLineContent(t.lineNumber),t.column-1));if(t.lineNumber>1){const i=t.lineNumber-1;return new Position$1(i,e.getLineMaxColumn(i))}else 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=AtomicTabMoveOperations.atomicPosition(r,t.column-1,i,0);if(s!==-1&&s+1>=n)return new Position$1(t.lineNumber,s+1)}return this.leftPosition(e,t)}static left(e,t,i){const n=e.stickyTabStops?MoveOperations.leftPositionAtomicSoftTabs(t,i,e.tabSize):MoveOperations.leftPosition(t,i);return new CursorPosition(n.lineNumber,n.column,0)}static moveLeft(e,t,i,n,r){let s,a;if(i.hasSelection()&&!n)s=i.selection.startLineNumber,a=i.selection.startColumn;else{const l=i.position.delta(void 0,-(r-1)),d=t.normalizePosition(MoveOperations.clipPositionColumn(l,t),0),c=MoveOperations.left(e,t,d);s=c.lineNumber,a=c.column}return i.move(n,s,a,0)}static clipPositionColumn(e,t){return new Position$1(e.lineNumber,MoveOperations.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=i+nextCharLength(e.getLineContent(t),i-1):t<e.getLineCount()&&(t=t+1,i=e.getLineMinColumn(t)),new Position$1(t,i)}static rightPositionAtomicSoftTabs(e,t,i,n,r){if(i<e.getLineIndentColumn(t)){const s=e.getLineContent(t),a=AtomicTabMoveOperations.atomicPosition(s,i-1,n,1);if(a!==-1)return new Position$1(t,a+1)}return this.rightPosition(e,t,i)}static right(e,t,i){const n=e.stickyTabStops?MoveOperations.rightPositionAtomicSoftTabs(t,i.lineNumber,i.column,e.tabSize,e.indentSize):MoveOperations.rightPosition(t,i.lineNumber,i.column);return new CursorPosition(n.lineNumber,n.column,0)}static moveRight(e,t,i,n,r){let s,a;if(i.hasSelection()&&!n)s=i.selection.endLineNumber,a=i.selection.endColumn;else{const l=i.position.delta(void 0,r-1),d=t.normalizePosition(MoveOperations.clipPositionColumn(l,t),1),c=MoveOperations.right(e,t,d);s=c.lineNumber,a=c.column}return i.move(n,s,a,0)}static vertical(e,t,i,n,r,s,a,l){const d=CursorColumns.visibleColumnFromColumn(t.getLineContent(i),n,e.tabSize)+r,c=t.getLineCount(),u=i===1&&n===1,g=i===c&&n===t.getLineMaxColumn(i),f=s<i?u:g;if(i=s,i<1?(i=1,a?n=t.getLineMinColumn(i):n=Math.min(t.getLineMaxColumn(i),n)):i>c?(i=c,a?n=t.getLineMaxColumn(i):n=Math.min(t.getLineMaxColumn(i),n)):n=e.columnFromVisibleColumn(t,i,d),f?r=0:r=d-CursorColumns.visibleColumnFromColumn(t.getLineContent(i),n,e.tabSize),l!==void 0){const p=new Position$1(i,n),m=t.normalizePosition(p,l);r=r+(n-m.column),i=m.lineNumber,n=m.column}return new CursorPosition(i,n,r)}static down(e,t,i,n,r,s,a){return this.vertical(e,t,i,n,r,i+s,a,4)}static moveDown(e,t,i,n,r){let s,a;i.hasSelection()&&!n?(s=i.selection.endLineNumber,a=i.selection.endColumn):(s=i.position.lineNumber,a=i.position.column);let l=0,d;do if(d=MoveOperations.down(e,t,s+l,a,i.leftoverVisibleColumns,r,!0),t.normalizePosition(new Position$1(d.lineNumber,d.column),2).lineNumber>s)break;while(l++<10&&s+l<t.getLineCount());return i.move(n,d.lineNumber,d.column,d.leftoverVisibleColumns)}static translateDown(e,t,i){const n=i.selection,r=MoveOperations.down(e,t,n.selectionStartLineNumber,n.selectionStartColumn,i.selectionStartLeftoverVisibleColumns,1,!1),s=MoveOperations.down(e,t,n.positionLineNumber,n.positionColumn,i.leftoverVisibleColumns,1,!1);return new SingleCursorState(new Range$2(r.lineNumber,r.column,r.lineNumber,r.column),0,r.leftoverVisibleColumns,new Position$1(s.lineNumber,s.column),s.leftoverVisibleColumns)}static up(e,t,i,n,r,s,a){return this.vertical(e,t,i,n,r,i-s,a,3)}static moveUp(e,t,i,n,r){let s,a;i.hasSelection()&&!n?(s=i.selection.startLineNumber,a=i.selection.startColumn):(s=i.position.lineNumber,a=i.position.column);const l=MoveOperations.up(e,t,s,a,i.leftoverVisibleColumns,r,!0);return i.move(n,l.lineNumber,l.column,l.leftoverVisibleColumns)}static translateUp(e,t,i){const n=i.selection,r=MoveOperations.up(e,t,n.selectionStartLineNumber,n.selectionStartColumn,i.selectionStartLeftoverVisibleColumns,1,!1),s=MoveOperations.up(e,t,n.positionLineNumber,n.positionColumn,i.leftoverVisibleColumns,1,!1);return new SingleCursorState(new Range$2(r.lineNumber,r.column,r.lineNumber,r.column),0,r.leftoverVisibleColumns,new Position$1(s.lineNumber,s.column),s.leftoverVisibleColumns)}static _isBlankLine(e,t){return e.getLineFirstNonWhitespaceColumn(t)===0}static moveToPrevBlankLine(e,t,i,n){let r=i.position.lineNumber;for(;r>1&&this._isBlankLine(t,r);)r--;for(;r>1&&!this._isBlankLine(t,r);)r--;return i.move(n,r,t.getLineMinColumn(r),0)}static moveToNextBlankLine(e,t,i,n){const r=t.getLineCount();let s=i.position.lineNumber;for(;s<r&&this._isBlankLine(t,s);)s++;for(;s<r&&!this._isBlankLine(t,s);)s++;return i.move(n,s,t.getLineMinColumn(s),0)}static moveToBeginningOfLine(e,t,i,n){const r=i.position.lineNumber,s=t.getLineMinColumn(r),a=t.getLineFirstNonWhitespaceColumn(r)||s;let l;return i.position.column===a?l=s:l=a,i.move(n,r,l,0)}static moveToEndOfLine(e,t,i,n,r){const s=i.position.lineNumber,a=t.getLineMaxColumn(s);return i.move(n,s,a,r?1073741824-a:0)}static moveToBeginningOfBuffer(e,t,i,n){return i.move(n,1,1,0)}static moveToEndOfBuffer(e,t,i,n){const r=t.getLineCount(),s=t.getLineMaxColumn(r);return i.move(n,r,s,0)}}class DeleteOperations{static deleteRight(e,t,i,n){const r=[];let s=e!==3;for(let a=0,l=n.length;a<l;a++){const d=n[a];let c=d;if(c.isEmpty()){const u=d.getPosition(),g=MoveOperations.right(t,i,u);c=new Range$2(g.lineNumber,g.column,u.lineNumber,u.column)}if(c.isEmpty()){r[a]=null;continue}c.startLineNumber!==c.endLineNumber&&(s=!0),r[a]=new ReplaceCommand(c,"")}return[s,r]}static isAutoClosingPairDelete(e,t,i,n,r,s,a){if(t==="never"&&i==="never"||e==="never")return!1;for(let l=0,d=s.length;l<d;l++){const c=s[l],u=c.getPosition();if(!c.isEmpty())return!1;const g=r.getLineContent(u.lineNumber);if(u.column<2||u.column>=g.length+1)return!1;const f=g.charAt(u.column-2),p=n.get(f);if(!p)return!1;if(isQuote(f)){if(i==="never")return!1}else if(t==="never")return!1;const m=g.charAt(u.column-1);let b=!1;for(const _ of p)_.open===f&&_.close===m&&(b=!0);if(!b)return!1;if(e==="auto"){let _=!1;for(let C=0,S=a.length;C<S;C++){const y=a[C];if(u.lineNumber===y.startLineNumber&&u.column===y.startColumn){_=!0;break}}if(!_)return!1}}return!0}static _runAutoClosingPairDelete(e,t,i){const n=[];for(let r=0,s=i.length;r<s;r++){const a=i[r].getPosition(),l=new Range$2(a.lineNumber,a.column-1,a.lineNumber,a.column+1);n[r]=new ReplaceCommand(l,"")}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=e!==2;for(let l=0,d=n.length;l<d;l++){const c=DeleteOperations.getDeleteRange(n[l],i,t);if(c.isEmpty()){s[l]=null;continue}c.startLineNumber!==c.endLineNumber&&(a=!0),s[l]=new ReplaceCommand(c,"")}return[a,s]}static getDeleteRange(e,t,i){if(!e.isEmpty())return e;const n=e.getPosition();if(i.useTabStops&&n.column>1){const r=t.getLineContent(n.lineNumber),s=firstNonWhitespaceIndex(r),a=s===-1?r.length+1:s+1;if(n.column<=a){const l=i.visibleColumnFromColumn(t,n),d=CursorColumns.prevIndentTabStop(l,i.indentSize),c=i.columnFromVisibleColumn(t,n.lineNumber,d);return new Range$2(n.lineNumber,c,n.lineNumber,n.column)}}return Range$2.fromPositions(DeleteOperations.getPositionAfterDeleteLeft(n,t),n)}static getPositionAfterDeleteLeft(e,t){if(e.column>1){const i=getLeftDeleteOffset(e.column-1,t.getLineContent(e.lineNumber));return e.with(void 0,i+1)}else if(e.lineNumber>1){const i=e.lineNumber-1;return new Position$1(i,t.getLineMaxColumn(i))}else return e}static cut(e,t,i){const n=[];let r=null;i.sort((s,a)=>Position$1.compare(s.getStartPosition(),a.getEndPosition()));for(let s=0,a=i.length;s<a;s++){const l=i[s];if(l.isEmpty())if(e.emptySelectionClipboard){const d=l.getPosition();let c,u,g,f;d.lineNumber<t.getLineCount()?(c=d.lineNumber,u=1,g=d.lineNumber+1,f=1):d.lineNumber>1&&(r==null?void 0:r.endLineNumber)!==d.lineNumber?(c=d.lineNumber-1,u=t.getLineMaxColumn(d.lineNumber-1),g=d.lineNumber,f=t.getLineMaxColumn(d.lineNumber)):(c=d.lineNumber,u=1,g=d.lineNumber,f=t.getLineMaxColumn(d.lineNumber));const p=new Range$2(c,u,g,f);r=p,p.isEmpty()?n[s]=null:n[s]=new ReplaceCommand(p,"")}else n[s]=null;else n[s]=new ReplaceCommand(l,"")}return new EditOperationResult(0,n,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}}class WordOperations{static _createWord(e,t,i,n,r){return{start:n,end:r,wordType:t,nextCharClass:i}}static _findPreviousWordOnLine(e,t,i){const n=t.getLineContent(i.lineNumber);return this._doFindPreviousWordOnLine(n,e,i)}static _doFindPreviousWordOnLine(e,t,i){let n=0;for(let r=i.column-2;r>=0;r--){const s=e.charCodeAt(r),a=t.get(s);if(a===0){if(n===2)return this._createWord(e,n,a,r+1,this._findEndOfWord(e,t,n,r+1));n=1}else if(a===2){if(n===1)return this._createWord(e,n,a,r+1,this._findEndOfWord(e,t,n,r+1));n=2}else if(a===1&&n!==0)return this._createWord(e,n,a,r+1,this._findEndOfWord(e,t,n,r+1))}return n!==0?this._createWord(e,n,1,0,this._findEndOfWord(e,t,n,0)):null}static _findEndOfWord(e,t,i,n){const r=e.length;for(let s=n;s<r;s++){const a=e.charCodeAt(s),l=t.get(a);if(l===1||i===1&&l===2||i===2&&l===0)return s}return r}static _findNextWordOnLine(e,t,i){const n=t.getLineContent(i.lineNumber);return this._doFindNextWordOnLine(n,e,i)}static _doFindNextWordOnLine(e,t,i){let n=0;const r=e.length;for(let s=i.column-1;s<r;s++){const a=e.charCodeAt(s),l=t.get(a);if(l===0){if(n===2)return this._createWord(e,n,l,this._findStartOfWord(e,t,n,s-1),s);n=1}else if(l===2){if(n===1)return this._createWord(e,n,l,this._findStartOfWord(e,t,n,s-1),s);n=2}else if(l===1&&n!==0)return this._createWord(e,n,l,this._findStartOfWord(e,t,n,s-1),s)}return n!==0?this._createWord(e,n,1,this._findStartOfWord(e,t,n,r-1),r):null}static _findStartOfWord(e,t,i,n){for(let r=n;r>=0;r--){const s=e.charCodeAt(r),a=t.get(s);if(a===1||i===1&&a===2||i===2&&a===0)return r+1}return 0}static moveWordLeft(e,t,i,n){let r=i.lineNumber,s=i.column;s===1&&r>1&&(r=r-1,s=t.getLineMaxColumn(r));let a=WordOperations._findPreviousWordOnLine(e,t,new Position$1(r,s));if(n===0)return new Position$1(r,a?a.start+1:1);if(n===1)return a&&a.wordType===2&&a.end-a.start===1&&a.nextCharClass===0&&(a=WordOperations._findPreviousWordOnLine(e,t,new Position$1(r,a.start+1))),new Position$1(r,a?a.start+1:1);if(n===3){for(;a&&a.wordType===2;)a=WordOperations._findPreviousWordOnLine(e,t,new Position$1(r,a.start+1));return new Position$1(r,a?a.start+1:1)}return a&&s<=a.end+1&&(a=WordOperations._findPreviousWordOnLine(e,t,new Position$1(r,a.start+1))),new Position$1(r,a?a.end+1:1)}static _moveWordPartLeft(e,t){const i=t.lineNumber,n=e.getLineMaxColumn(i);if(t.column===1)return i>1?new Position$1(i-1,e.getLineMaxColumn(i-1)):t;const r=e.getLineContent(i);for(let s=t.column-1;s>1;s--){const a=r.charCodeAt(s-2),l=r.charCodeAt(s-1);if(a===95&&l!==95)return new Position$1(i,s);if(a===45&&l!==45)return new Position$1(i,s);if((isLowerAsciiLetter(a)||isAsciiDigit(a))&&isUpperAsciiLetter(l))return new Position$1(i,s);if(isUpperAsciiLetter(a)&&isUpperAsciiLetter(l)&&s+1<n){const d=r.charCodeAt(s);if(isLowerAsciiLetter(d)||isAsciiDigit(d))return new Position$1(i,s)}}return new Position$1(i,1)}static moveWordRight(e,t,i,n){let r=i.lineNumber,s=i.column,a=!1;s===t.getLineMaxColumn(r)&&r<t.getLineCount()&&(a=!0,r=r+1,s=1);let l=WordOperations._findNextWordOnLine(e,t,new Position$1(r,s));if(n===2)l&&l.wordType===2&&l.end-l.start===1&&l.nextCharClass===0&&(l=WordOperations._findNextWordOnLine(e,t,new Position$1(r,l.end+1))),l?s=l.end+1:s=t.getLineMaxColumn(r);else if(n===3){for(a&&(s=0);l&&(l.wordType===2||l.start+1<=s);)l=WordOperations._findNextWordOnLine(e,t,new Position$1(r,l.end+1));l?s=l.start+1:s=t.getLineMaxColumn(r)}else l&&!a&&s>=l.start+1&&(l=WordOperations._findNextWordOnLine(e,t,new Position$1(r,l.end+1))),l?s=l.start+1:s=t.getLineMaxColumn(r);return new Position$1(r,s)}static _moveWordPartRight(e,t){const i=t.lineNumber,n=e.getLineMaxColumn(i);if(t.column===n)return i<e.getLineCount()?new Position$1(i+1,1):t;const r=e.getLineContent(i);for(let s=t.column+1;s<n;s++){const a=r.charCodeAt(s-2),l=r.charCodeAt(s-1);if(a!==95&&l===95)return new Position$1(i,s);if(a!==45&&l===45)return new Position$1(i,s);if((isLowerAsciiLetter(a)||isAsciiDigit(a))&&isUpperAsciiLetter(l))return new Position$1(i,s);if(isUpperAsciiLetter(a)&&isUpperAsciiLetter(l)&&s+1<n){const d=r.charCodeAt(s);if(isLowerAsciiLetter(d)||isAsciiDigit(d))return new Position$1(i,s)}}return new Position$1(i,n)}static _deleteWordLeftWhitespace(e,t){const i=e.getLineContent(t.lineNumber),n=t.column-2,r=lastNonWhitespaceIndex(i,n);return r+1<n?new Range$2(t.lineNumber,r+2,t.lineNumber,t.column):null}static deleteWordLeft(e,t){const i=e.wordSeparators,n=e.model,r=e.selection,s=e.whitespaceHeuristics;if(!r.isEmpty())return r;if(DeleteOperations.isAutoClosingPairDelete(e.autoClosingDelete,e.autoClosingBrackets,e.autoClosingQuotes,e.autoClosingPairs.autoClosingPairsOpenByEnd,e.model,[e.selection],e.autoClosedCharacters)){const u=e.selection.getPosition();return new Range$2(u.lineNumber,u.column-1,u.lineNumber,u.column+1)}const a=new Position$1(r.positionLineNumber,r.positionColumn);let l=a.lineNumber,d=a.column;if(l===1&&d===1)return null;if(s){const u=this._deleteWordLeftWhitespace(n,a);if(u)return u}let c=WordOperations._findPreviousWordOnLine(i,n,a);return t===0?c?d=c.start+1:d>1?d=1:(l--,d=n.getLineMaxColumn(l)):(c&&d<=c.end+1&&(c=WordOperations._findPreviousWordOnLine(i,n,new Position$1(l,c.start+1))),c?d=c.end+1:d>1?d=1:(l--,d=n.getLineMaxColumn(l))),new Range$2(l,d,a.lineNumber,a.column)}static deleteInsideWord(e,t,i){if(!i.isEmpty())return i;const n=new Position$1(i.positionLineNumber,i.positionColumn),r=this._deleteInsideWordWhitespace(t,n);return r||this._deleteInsideWordDetermineDeleteRange(e,t,n)}static _charAtIsWhitespace(e,t){const i=e.charCodeAt(t);return i===32||i===9}static _deleteInsideWordWhitespace(e,t){const i=e.getLineContent(t.lineNumber),n=i.length;if(n===0)return null;let r=Math.max(t.column-2,0);if(!this._charAtIsWhitespace(i,r))return null;let s=Math.min(t.column-1,n-1);if(!this._charAtIsWhitespace(i,s))return null;for(;r>0&&this._charAtIsWhitespace(i,r-1);)r--;for(;s+1<n&&this._charAtIsWhitespace(i,s+1);)s++;return new Range$2(t.lineNumber,r+1,t.lineNumber,s+2)}static _deleteInsideWordDetermineDeleteRange(e,t,i){const n=t.getLineContent(i.lineNumber),r=n.length;if(r===0)return i.lineNumber>1?new Range$2(i.lineNumber-1,t.getLineMaxColumn(i.lineNumber-1),i.lineNumber,1):i.lineNumber<t.getLineCount()?new Range$2(i.lineNumber,1,i.lineNumber+1,1):new Range$2(i.lineNumber,1,i.lineNumber,1);const s=u=>u.start+1<=i.column&&i.column<=u.end+1,a=(u,g)=>(u=Math.min(u,i.column),g=Math.max(g,i.column),new Range$2(i.lineNumber,u,i.lineNumber,g)),l=u=>{let g=u.start+1,f=u.end+1,p=!1;for(;f-1<r&&this._charAtIsWhitespace(n,f-1);)p=!0,f++;if(!p)for(;g>1&&this._charAtIsWhitespace(n,g-2);)g--;return a(g,f)},d=WordOperations._findPreviousWordOnLine(e,t,i);if(d&&s(d))return l(d);const c=WordOperations._findNextWordOnLine(e,t,i);return c&&s(c)?l(c):d&&c?a(d.end+1,c.start+1):d?a(d.start+1,d.end+1):c?a(c.start+1,c.end+1):a(1,r+1)}static _deleteWordPartLeft(e,t){if(!t.isEmpty())return t;const i=t.getPosition(),n=WordOperations._moveWordPartLeft(e,i);return new Range$2(i.lineNumber,i.column,n.lineNumber,n.column)}static _findFirstNonWhitespaceChar(e,t){const i=e.length;for(let n=t;n<i;n++){const r=e.charAt(n);if(r!==" "&&r!==" ")return n}return i}static _deleteWordRightWhitespace(e,t){const i=e.getLineContent(t.lineNumber),n=t.column-1,r=this._findFirstNonWhitespaceChar(i,n);return n+1<r?new Range$2(t.lineNumber,t.column,t.lineNumber,r+1):null}static deleteWordRight(e,t){const i=e.wordSeparators,n=e.model,r=e.selection,s=e.whitespaceHeuristics;if(!r.isEmpty())return r;const a=new Position$1(r.positionLineNumber,r.positionColumn);let l=a.lineNumber,d=a.column;const c=n.getLineCount(),u=n.getLineMaxColumn(l);if(l===c&&d===u)return null;if(s){const f=this._deleteWordRightWhitespace(n,a);if(f)return f}let g=WordOperations._findNextWordOnLine(i,n,a);return t===2?g?d=g.end+1:d<u||l===c?d=u:(l++,g=WordOperations._findNextWordOnLine(i,n,new Position$1(l,1)),g?d=g.start+1:d=n.getLineMaxColumn(l)):(g&&d>=g.start+1&&(g=WordOperations._findNextWordOnLine(i,n,new Position$1(l,g.end+1))),g?d=g.start+1:d<u||l===c?d=u:(l++,g=WordOperations._findNextWordOnLine(i,n,new Position$1(l,1)),g?d=g.start+1:d=n.getLineMaxColumn(l))),new Range$2(l,d,a.lineNumber,a.column)}static _deleteWordPartRight(e,t){if(!t.isEmpty())return t;const i=t.getPosition(),n=WordOperations._moveWordPartRight(e,i);return new Range$2(i.lineNumber,i.column,n.lineNumber,n.column)}static _createWordAtPosition(e,t,i){const n=new Range$2(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=getMapForWordSeparators(t),r=WordOperations._findPreviousWordOnLine(n,e,i);if(r&&r.wordType===1&&r.start<=i.column-1&&i.column-1<=r.end)return WordOperations._createWordAtPosition(e,i.lineNumber,r);const s=WordOperations._findNextWordOnLine(n,e,i);return s&&s.wordType===1&&s.start<=i.column-1&&i.column-1<=s.end?WordOperations._createWordAtPosition(e,i.lineNumber,s):null}static word(e,t,i,n,r){const s=getMapForWordSeparators(e.wordSeparators),a=WordOperations._findPreviousWordOnLine(s,t,r),l=WordOperations._findNextWordOnLine(s,t,r);if(!n){let f,p;return a&&a.wordType===1&&a.start<=r.column-1&&r.column-1<=a.end?(f=a.start+1,p=a.end+1):l&&l.wordType===1&&l.start<=r.column-1&&r.column-1<=l.end?(f=l.start+1,p=l.end+1):(a?f=a.end+1:f=1,l?p=l.start+1:p=t.getLineMaxColumn(r.lineNumber)),new SingleCursorState(new Range$2(r.lineNumber,f,r.lineNumber,p),1,0,new Position$1(r.lineNumber,p),0)}let d,c;a&&a.wordType===1&&a.start<r.column-1&&r.column-1<a.end?(d=a.start+1,c=a.end+1):l&&l.wordType===1&&l.start<r.column-1&&r.column-1<l.end?(d=l.start+1,c=l.end+1):(d=r.column,c=r.column);const u=r.lineNumber;let g;if(i.selectionStart.containsPosition(r))g=i.selectionStart.endColumn;else if(r.isBeforeOrEqual(i.selectionStart.getStartPosition())){g=d;const f=new Position$1(u,g);i.selectionStart.containsPosition(f)&&(g=i.selectionStart.endColumn)}else{g=c;const f=new Position$1(u,g);i.selectionStart.containsPosition(f)&&(g=i.selectionStart.startColumn)}return i.move(!0,u,g,0)}}class WordPartOperations extends WordOperations{static deleteWordPartLeft(e){const t=enforceDefined([WordOperations.deleteWordLeft(e,0),WordOperations.deleteWordLeft(e,2),WordOperations._deleteWordPartLeft(e.model,e.selection)]);return t.sort(Range$2.compareRangesUsingEnds),t[2]}static deleteWordPartRight(e){const t=enforceDefined([WordOperations.deleteWordRight(e,0),WordOperations.deleteWordRight(e,2),WordOperations._deleteWordPartRight(e.model,e.selection)]);return t.sort(Range$2.compareRangesUsingStarts),t[0]}static moveWordPartLeft(e,t,i){const n=enforceDefined([WordOperations.moveWordLeft(e,t,i,0),WordOperations.moveWordLeft(e,t,i,2),WordOperations._moveWordPartLeft(t,i)]);return n.sort(Position$1.compare),n[2]}static moveWordPartRight(e,t,i){const n=enforceDefined([WordOperations.moveWordRight(e,t,i,0),WordOperations.moveWordRight(e,t,i,2),WordOperations._moveWordPartRight(t,i)]);return n.sort(Position$1.compare),n[0]}}function enforceDefined(o){return o.filter(e=>!!e)}class CursorMoveCommands{static addCursorDown(e,t,i){const n=[];let r=0;for(let s=0,a=t.length;s<a;s++){const l=t[s];n[r++]=new CursorState$1(l.modelState,l.viewState),i?n[r++]=CursorState$1.fromModelState(MoveOperations.translateDown(e.cursorConfig,e.model,l.modelState)):n[r++]=CursorState$1.fromViewState(MoveOperations.translateDown(e.cursorConfig,e,l.viewState))}return n}static addCursorUp(e,t,i){const n=[];let r=0;for(let s=0,a=t.length;s<a;s++){const l=t[s];n[r++]=new CursorState$1(l.modelState,l.viewState),i?n[r++]=CursorState$1.fromModelState(MoveOperations.translateUp(e.cursorConfig,e.model,l.modelState)):n[r++]=CursorState$1.fromViewState(MoveOperations.translateUp(e.cursorConfig,e,l.viewState))}return n}static moveToBeginningOfLine(e,t,i){const n=[];for(let r=0,s=t.length;r<s;r++){const a=t[r];n[r]=this._moveToLineStart(e,a,i)}return n}static _moveToLineStart(e,t,i){const n=t.viewState.position.column,r=t.modelState.position.column,s=n===r,a=t.viewState.position.lineNumber,l=e.getLineFirstNonWhitespaceColumn(a);return!s&&!(n===l)?this._moveToLineStartByView(e,t,i):this._moveToLineStartByModel(e,t,i)}static _moveToLineStartByView(e,t,i){return CursorState$1.fromViewState(MoveOperations.moveToBeginningOfLine(e.cursorConfig,e,t.viewState,i))}static _moveToLineStartByModel(e,t,i){return CursorState$1.fromModelState(MoveOperations.moveToBeginningOfLine(e.cursorConfig,e.model,t.modelState,i))}static moveToEndOfLine(e,t,i,n){const r=[];for(let s=0,a=t.length;s<a;s++){const l=t[s];r[s]=this._moveToLineEnd(e,l,i,n)}return r}static _moveToLineEnd(e,t,i,n){const r=t.viewState.position,s=e.getLineMaxColumn(r.lineNumber),a=r.column===s,l=t.modelState.position,d=e.model.getLineMaxColumn(l.lineNumber),c=s-r.column===d-l.column;return a||c?this._moveToLineEndByModel(e,t,i,n):this._moveToLineEndByView(e,t,i,n)}static _moveToLineEndByView(e,t,i,n){return CursorState$1.fromViewState(MoveOperations.moveToEndOfLine(e.cursorConfig,e,t.viewState,i,n))}static _moveToLineEndByModel(e,t,i,n){return CursorState$1.fromModelState(MoveOperations.moveToEndOfLine(e.cursorConfig,e.model,t.modelState,i,n))}static expandLineSelection(e,t){const i=[];for(let n=0,r=t.length;n<r;n++){const s=t[n],a=s.modelState.selection.startLineNumber,l=e.model.getLineCount();let d=s.modelState.selection.endLineNumber,c;d===l?c=e.model.getLineMaxColumn(l):(d++,c=1),i[n]=CursorState$1.fromModelState(new SingleCursorState(new Range$2(a,1,a,1),0,0,new Position$1(d,c),0))}return i}static moveToBeginningOfBuffer(e,t,i){const n=[];for(let r=0,s=t.length;r<s;r++){const a=t[r];n[r]=CursorState$1.fromModelState(MoveOperations.moveToBeginningOfBuffer(e.cursorConfig,e.model,a.modelState,i))}return n}static moveToEndOfBuffer(e,t,i){const n=[];for(let r=0,s=t.length;r<s;r++){const a=t[r];n[r]=CursorState$1.fromModelState(MoveOperations.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 CursorState$1.fromModelState(new SingleCursorState(new Range$2(1,1,1,1),0,0,new Position$1(i,n),0))}static line(e,t,i,n,r){const s=e.model.validatePosition(n),a=r?e.coordinatesConverter.validateViewPosition(new Position$1(r.lineNumber,r.column),s):e.coordinatesConverter.convertModelPositionToViewPosition(s);if(!i){const d=e.model.getLineCount();let c=s.lineNumber+1,u=1;return c>d&&(c=d,u=e.model.getLineMaxColumn(c)),CursorState$1.fromModelState(new SingleCursorState(new Range$2(s.lineNumber,1,c,u),2,0,new Position$1(c,u),0))}const l=t.modelState.selectionStart.getStartPosition().lineNumber;if(s.lineNumber<l)return CursorState$1.fromViewState(t.viewState.move(!0,a.lineNumber,1,0));if(s.lineNumber>l){const d=e.getLineCount();let c=a.lineNumber+1,u=1;return c>d&&(c=d,u=e.getLineMaxColumn(c)),CursorState$1.fromViewState(t.viewState.move(!0,c,u,0))}else{const d=t.modelState.selectionStart.getEndPosition();return CursorState$1.fromModelState(t.modelState.move(!0,d.lineNumber,d.column,0))}}static word(e,t,i,n){const r=e.model.validatePosition(n);return CursorState$1.fromModelState(WordOperations.word(e.cursorConfig,e.model,t.modelState,i,r))}static cancelSelection(e,t){if(!t.modelState.hasSelection())return new CursorState$1(t.modelState,t.viewState);const i=t.viewState.position.lineNumber,n=t.viewState.position.column;return CursorState$1.fromViewState(new SingleCursorState(new Range$2(i,n,i,n),0,0,new Position$1(i,n),0))}static moveTo(e,t,i,n,r){if(i){if(t.modelState.selectionStartKind===1)return this.word(e,t,i,n);if(t.modelState.selectionStartKind===2)return this.line(e,t,i,n,r)}const s=e.model.validatePosition(n),a=r?e.coordinatesConverter.validateViewPosition(new Position$1(r.lineNumber,r.column),s):e.coordinatesConverter.convertModelPositionToViewPosition(s);return CursorState$1.fromViewState(t.viewState.move(i,a.lineNumber,a.column,0))}static simpleMove(e,t,i,n,r,s){switch(i){case 0:return s===4?this._moveHalfLineLeft(e,t,n):this._moveLeft(e,t,n,r);case 1:return s===4?this._moveHalfLineRight(e,t,n):this._moveRight(e,t,n,r);case 2:return s===2?this._moveUpByViewLines(e,t,n,r):this._moveUpByModelLines(e,t,n,r);case 3:return s===2?this._moveDownByViewLines(e,t,n,r):this._moveDownByModelLines(e,t,n,r);case 4:return s===2?t.map(a=>CursorState$1.fromViewState(MoveOperations.moveToPrevBlankLine(e.cursorConfig,e,a.viewState,n))):t.map(a=>CursorState$1.fromModelState(MoveOperations.moveToPrevBlankLine(e.cursorConfig,e.model,a.modelState,n)));case 5:return s===2?t.map(a=>CursorState$1.fromViewState(MoveOperations.moveToNextBlankLine(e.cursorConfig,e,a.viewState,n))):t.map(a=>CursorState$1.fromModelState(MoveOperations.moveToNextBlankLine(e.cursorConfig,e.model,a.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,r){const s=e.getCompletelyVisibleViewRange(),a=e.coordinatesConverter.convertViewRangeToModelRange(s);switch(i){case 11:{const l=this._firstLineNumberInRange(e.model,a,r),d=e.model.getLineFirstNonWhitespaceColumn(l);return[this._moveToModelPosition(e,t[0],n,l,d)]}case 13:{const l=this._lastLineNumberInRange(e.model,a,r),d=e.model.getLineFirstNonWhitespaceColumn(l);return[this._moveToModelPosition(e,t[0],n,l,d)]}case 12:{const l=Math.round((a.startLineNumber+a.endLineNumber)/2),d=e.model.getLineFirstNonWhitespaceColumn(l);return[this._moveToModelPosition(e,t[0],n,l,d)]}case 14:{const l=[];for(let d=0,c=t.length;d<c;d++){const u=t[d];l[d]=this.findPositionInViewportIfOutside(e,u,s,n)}return l}default:return null}}static findPositionInViewportIfOutside(e,t,i,n){const r=t.viewState.position.lineNumber;if(i.startLineNumber<=r&&r<=i.endLineNumber-1)return new CursorState$1(t.modelState,t.viewState);{let s;r>i.endLineNumber-1?s=i.endLineNumber-1:r<i.startLineNumber?s=i.startLineNumber:s=r;const a=MoveOperations.vertical(e.cursorConfig,e,r,t.viewState.position.column,t.viewState.leftoverVisibleColumns,s,!1);return CursorState$1.fromViewState(t.viewState.move(n,a.lineNumber,a.column,a.leftoverVisibleColumns))}}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(r=>CursorState$1.fromViewState(MoveOperations.moveLeft(e.cursorConfig,e,r.viewState,i,n)))}static _moveHalfLineLeft(e,t,i){const n=[];for(let r=0,s=t.length;r<s;r++){const a=t[r],l=a.viewState.position.lineNumber,d=Math.round(e.getLineContent(l).length/2);n[r]=CursorState$1.fromViewState(MoveOperations.moveLeft(e.cursorConfig,e,a.viewState,i,d))}return n}static _moveRight(e,t,i,n){return t.map(r=>CursorState$1.fromViewState(MoveOperations.moveRight(e.cursorConfig,e,r.viewState,i,n)))}static _moveHalfLineRight(e,t,i){const n=[];for(let r=0,s=t.length;r<s;r++){const a=t[r],l=a.viewState.position.lineNumber,d=Math.round(e.getLineContent(l).length/2);n[r]=CursorState$1.fromViewState(MoveOperations.moveRight(e.cursorConfig,e,a.viewState,i,d))}return n}static _moveDownByViewLines(e,t,i,n){const r=[];for(let s=0,a=t.length;s<a;s++){const l=t[s];r[s]=CursorState$1.fromViewState(MoveOperations.moveDown(e.cursorConfig,e,l.viewState,i,n))}return r}static _moveDownByModelLines(e,t,i,n){const r=[];for(let s=0,a=t.length;s<a;s++){const l=t[s];r[s]=CursorState$1.fromModelState(MoveOperations.moveDown(e.cursorConfig,e.model,l.modelState,i,n))}return r}static _moveUpByViewLines(e,t,i,n){const r=[];for(let s=0,a=t.length;s<a;s++){const l=t[s];r[s]=CursorState$1.fromViewState(MoveOperations.moveUp(e.cursorConfig,e,l.viewState,i,n))}return r}static _moveUpByModelLines(e,t,i,n){const r=[];for(let s=0,a=t.length;s<a;s++){const l=t[s];r[s]=CursorState$1.fromModelState(MoveOperations.moveUp(e.cursorConfig,e.model,l.modelState,i,n))}return r}static _moveToViewPosition(e,t,i,n,r){return CursorState$1.fromViewState(t.viewState.move(i,n,r,0))}static _moveToModelPosition(e,t,i,n,r){return CursorState$1.fromModelState(t.modelState.move(i,n,r,0))}static _moveToViewMinColumn(e,t,i){const n=[];for(let r=0,s=t.length;r<s;r++){const a=t[r],l=a.viewState.position.lineNumber,d=e.getLineMinColumn(l);n[r]=this._moveToViewPosition(e,a,i,l,d)}return n}static _moveToViewFirstNonWhitespaceColumn(e,t,i){const n=[];for(let r=0,s=t.length;r<s;r++){const a=t[r],l=a.viewState.position.lineNumber,d=e.getLineFirstNonWhitespaceColumn(l);n[r]=this._moveToViewPosition(e,a,i,l,d)}return n}static _moveToViewCenterColumn(e,t,i){const n=[];for(let r=0,s=t.length;r<s;r++){const a=t[r],l=a.viewState.position.lineNumber,d=Math.round((e.getLineMaxColumn(l)+e.getLineMinColumn(l))/2);n[r]=this._moveToViewPosition(e,a,i,l,d)}return n}static _moveToViewMaxColumn(e,t,i){const n=[];for(let r=0,s=t.length;r<s;r++){const a=t[r],l=a.viewState.position.lineNumber,d=e.getLineMaxColumn(l);n[r]=this._moveToViewPosition(e,a,i,l,d)}return n}static _moveToViewLastNonWhitespaceColumn(e,t,i){const n=[];for(let r=0,s=t.length;r<s;r++){const a=t[r],l=a.viewState.position.lineNumber,d=e.getLineLastNonWhitespaceColumn(l);n[r]=this._moveToViewPosition(e,a,i,l,d)}return n}}var CursorMove;(function(o){const e=function(i){if(!isObject(i))return!1;const n=i;return!(!isString$1(n.to)||!isUndefined(n.select)&&!isBoolean(n.select)||!isUndefined(n.by)&&!isString$1(n.by)||!isUndefined(n.value)&&!isNumber$1(n.value))};o.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:
- * 'to': A mandatory logical position value providing where to move the cursor.
- \`\`\`
- 'left', 'right', 'up', 'down', 'prevBlankLine', 'nextBlankLine',
- 'wrappedLineStart', 'wrappedLineEnd', 'wrappedLineColumnCenter'
- 'wrappedLineFirstNonWhitespaceCharacter', 'wrappedLineLastNonWhitespaceCharacter'
- 'viewPortTop', 'viewPortCenter', 'viewPortBottom', 'viewPortIfOutside'
- \`\`\`
- * 'by': Unit to move. Default is computed based on 'to' value.
- \`\`\`
- 'line', 'wrappedLine', 'character', 'halfLine'
- \`\`\`
- * 'value': Number of units to move. Default is '1'.
- * 'select': If 'true' makes the selection. Default is 'false'.
- `,constraint:e,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}}}}]},o.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"},o.RawUnit={Line:"line",WrappedLine:"wrappedLine",Character:"character",HalfLine:"halfLine"};function t(i){if(!i.to)return null;let n;switch(i.to){case o.RawDirection.Left:n=0;break;case o.RawDirection.Right:n=1;break;case o.RawDirection.Up:n=2;break;case o.RawDirection.Down:n=3;break;case o.RawDirection.PrevBlankLine:n=4;break;case o.RawDirection.NextBlankLine:n=5;break;case o.RawDirection.WrappedLineStart:n=6;break;case o.RawDirection.WrappedLineFirstNonWhitespaceCharacter:n=7;break;case o.RawDirection.WrappedLineColumnCenter:n=8;break;case o.RawDirection.WrappedLineEnd:n=9;break;case o.RawDirection.WrappedLineLastNonWhitespaceCharacter:n=10;break;case o.RawDirection.ViewPortTop:n=11;break;case o.RawDirection.ViewPortBottom:n=13;break;case o.RawDirection.ViewPortCenter:n=12;break;case o.RawDirection.ViewPortIfOutside:n=14;break;default:return null}let r=0;switch(i.by){case o.RawUnit.Line:r=1;break;case o.RawUnit.WrappedLine:r=2;break;case o.RawUnit.Character:r=3;break;case o.RawUnit.HalfLine:r=4;break}return{direction:n,unit:r,select:!!i.select,value:i.value||1}}o.parse=t})(CursorMove||(CursorMove={}));function getEnterAction(o,e,t,i){const n=getScopedLineTokens(e,t.startLineNumber,t.startColumn),r=i.getLanguageConfiguration(n.languageId);if(!r)return null;const s=n.getLineContent(),a=s.substr(0,t.startColumn-1-n.firstCharOffset);let l;t.isEmpty()?l=s.substr(t.startColumn-1-n.firstCharOffset):l=getScopedLineTokens(e,t.endLineNumber,t.endColumn).getLineContent().substr(t.endColumn-1-n.firstCharOffset);let d="";if(t.startLineNumber>1&&n.firstCharOffset===0){const m=getScopedLineTokens(e,t.startLineNumber-1);m.languageId===n.languageId&&(d=m.getLineContent())}const c=r.onEnter(o,d,a,l);if(!c)return null;const u=c.indentAction;let g=c.appendText;const f=c.removeText||0;g?u===IndentAction.Indent&&(g=" "+g):u===IndentAction.Indent||u===IndentAction.IndentOutdent?g=" ":g="";let p=getIndentationAtPosition(e,t.startLineNumber,t.startColumn);return f&&(p=p.substring(0,p.length-f)),{indentAction:u,appendText:g,removeText:f,indentation:p}}var __decorate$23=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1Z=function(o,e){return function(t,i){e(t,i,o)}},ShiftCommand_1;const repeatCache=Object.create(null);function cachedStringRepeat(o,e){if(e<=0)return"";repeatCache[o]||(repeatCache[o]=["",o]);const t=repeatCache[o];for(let i=t.length;i<=e;i++)t[i]=t[i-1]+o;return t[e]}let ShiftCommand=ShiftCommand_1=class{static unshiftIndent(e,t,i,n,r){const s=CursorColumns.visibleColumnFromColumn(e,t,i);if(r){const a=cachedStringRepeat(" ",n),d=CursorColumns.prevIndentTabStop(s,n)/n;return cachedStringRepeat(a,d)}else{const a=" ",d=CursorColumns.prevRenderTabStop(s,i)/i;return cachedStringRepeat(a,d)}}static shiftIndent(e,t,i,n,r){const s=CursorColumns.visibleColumnFromColumn(e,t,i);if(r){const a=cachedStringRepeat(" ",n),d=CursorColumns.nextIndentTabStop(s,n)/n;return cachedStringRepeat(a,d)}else{const a=" ",d=CursorColumns.nextRenderTabStop(s,i)/i;return cachedStringRepeat(a,d)}}constructor(e,t,i){this._languageConfigurationService=i,this._opts=t,this._selection=e,this._selectionId=null,this._useLastEditRangeForCursorEndPosition=!1,this._selectionStartColumnStaysPut=!1}_addEditOperation(e,t,i){this._useLastEditRangeForCursorEndPosition?e.addTrackedEditOperation(t,i):e.addEditOperation(t,i)}getEditOperations(e,t){const i=this._selection.startLineNumber;let n=this._selection.endLineNumber;this._selection.endColumn===1&&i!==n&&(n=n-1);const{tabSize:r,indentSize:s,insertSpaces:a}=this._opts,l=i===n;if(this._opts.useTabStops){this._selection.isEmpty()&&/^\s*$/.test(e.getLineContent(i))&&(this._useLastEditRangeForCursorEndPosition=!0);let d=0,c=0;for(let u=i;u<=n;u++,d=c){c=0;const g=e.getLineContent(u);let f=firstNonWhitespaceIndex(g);if(this._opts.isUnshift&&(g.length===0||f===0)||!l&&!this._opts.isUnshift&&g.length===0)continue;if(f===-1&&(f=g.length),u>1&&CursorColumns.visibleColumnFromColumn(g,f+1,r)%s!==0&&e.tokenization.isCheapToTokenize(u-1)){const b=getEnterAction(this._opts.autoIndent,e,new Range$2(u-1,e.getLineMaxColumn(u-1),u-1,e.getLineMaxColumn(u-1)),this._languageConfigurationService);if(b){if(c=d,b.appendText)for(let _=0,C=b.appendText.length;_<C&&c<s&&b.appendText.charCodeAt(_)===32;_++)c++;b.removeText&&(c=Math.max(0,c-b.removeText));for(let _=0;_<c&&!(f===0||g.charCodeAt(f-1)!==32);_++)f--}}if(this._opts.isUnshift&&f===0)continue;let p;this._opts.isUnshift?p=ShiftCommand_1.unshiftIndent(g,f+1,r,s,a):p=ShiftCommand_1.shiftIndent(g,f+1,r,s,a),this._addEditOperation(t,new Range$2(u,1,u,f+1),p),u===i&&!this._selection.isEmpty()&&(this._selectionStartColumnStaysPut=this._selection.startColumn<=f+1)}}else{!this._opts.isUnshift&&this._selection.isEmpty()&&e.getLineLength(i)===0&&(this._useLastEditRangeForCursorEndPosition=!0);const d=a?cachedStringRepeat(" ",s):" ";for(let c=i;c<=n;c++){const u=e.getLineContent(c);let g=firstNonWhitespaceIndex(u);if(!(this._opts.isUnshift&&(u.length===0||g===0))&&!(!l&&!this._opts.isUnshift&&u.length===0)&&(g===-1&&(g=u.length),!(this._opts.isUnshift&&g===0)))if(this._opts.isUnshift){g=Math.min(g,s);for(let f=0;f<g;f++)if(u.charCodeAt(f)===9){g=f+1;break}this._addEditOperation(t,new Range$2(c,1,c,g+1),"")}else this._addEditOperation(t,new Range$2(c,1,c,1),d),c===i&&!this._selection.isEmpty()&&(this._selectionStartColumnStaysPut=this._selection.startColumn===1)}}this._selectionId=t.trackSelection(this._selection)}computeCursorState(e,t){if(this._useLastEditRangeForCursorEndPosition){const n=t.getInverseEditOperations()[0];return new Selection$1(n.range.endLineNumber,n.range.endColumn,n.range.endLineNumber,n.range.endColumn)}const i=t.getTrackedSelection(this._selectionId);if(this._selectionStartColumnStaysPut){const n=this._selection.startColumn;return i.startColumn<=n?i:i.getDirection()===0?new Selection$1(i.startLineNumber,n,i.endLineNumber,i.endColumn):new Selection$1(i.endLineNumber,i.endColumn,i.startLineNumber,n)}return i}};ShiftCommand=ShiftCommand_1=__decorate$23([__param$1Z(2,ILanguageConfigurationService)],ShiftCommand);class SurroundSelectionCommand{constructor(e,t,i){this._range=e,this._charBeforeSelection=t,this._charAfterSelection=i}getEditOperations(e,t){t.addTrackedEditOperation(new Range$2(this._range.startLineNumber,this._range.startColumn,this._range.startLineNumber,this._range.startColumn),this._charBeforeSelection),t.addTrackedEditOperation(new Range$2(this._range.endLineNumber,this._range.endColumn,this._range.endLineNumber,this._range.endColumn),this._charAfterSelection)}computeCursorState(e,t){const i=t.getInverseEditOperations(),n=i[0].range,r=i[1].range;return new Selection$1(n.endLineNumber,n.endColumn,r.endLineNumber,r.endColumn-this._charAfterSelection.length)}}class CompositionSurroundSelectionCommand{constructor(e,t,i){this._position=e,this._text=t,this._charAfter=i}getEditOperations(e,t){t.addTrackedEditOperation(new Range$2(this._position.lineNumber,this._position.column,this._position.lineNumber,this._position.column),this._text+this._charAfter)}computeCursorState(e,t){const n=t.getInverseEditOperations()[0].range;return new Selection$1(n.endLineNumber,n.startColumn,n.endLineNumber,n.endColumn-this._charAfter.length)}}function getPrecedingValidLine(o,e,t){const i=o.tokenization.getLanguageIdAtPosition(e,0);if(e>1){let n,r=-1;for(n=e-1;n>=1;n--){if(o.tokenization.getLanguageIdAtPosition(n,0)!==i)return r;const s=o.getLineContent(n);if(t.shouldIgnore(s)||/^\s+$/.test(s)||s===""){r=n;continue}return n}}return-1}function getInheritIndentForLine(o,e,t,i=!0,n){if(o<4)return null;const r=n.getLanguageConfiguration(e.tokenization.getLanguageId()).indentRulesSupport;if(!r)return null;if(t<=1)return{indentation:"",action:null};for(let l=t-1;l>0&&e.getLineContent(l)==="";l--)if(l===1)return{indentation:"",action:null};const s=getPrecedingValidLine(e,t,r);if(s<0)return null;if(s<1)return{indentation:"",action:null};const a=e.getLineContent(s);if(r.shouldIncrease(a)||r.shouldIndentNextLine(a))return{indentation:getLeadingWhitespace(a),action:IndentAction.Indent,line:s};if(r.shouldDecrease(a))return{indentation:getLeadingWhitespace(a),action:null,line:s};{if(s===1)return{indentation:getLeadingWhitespace(e.getLineContent(s)),action:null,line:s};const l=s-1,d=r.getIndentMetadata(e.getLineContent(l));if(!(d&3)&&d&4){let c=0;for(let u=l-1;u>0;u--)if(!r.shouldIndentNextLine(e.getLineContent(u))){c=u;break}return{indentation:getLeadingWhitespace(e.getLineContent(c+1)),action:null,line:c+1}}if(i)return{indentation:getLeadingWhitespace(e.getLineContent(s)),action:null,line:s};for(let c=s;c>0;c--){const u=e.getLineContent(c);if(r.shouldIncrease(u))return{indentation:getLeadingWhitespace(u),action:IndentAction.Indent,line:c};if(r.shouldIndentNextLine(u)){let g=0;for(let f=c-1;f>0;f--)if(!r.shouldIndentNextLine(e.getLineContent(c))){g=f;break}return{indentation:getLeadingWhitespace(e.getLineContent(g+1)),action:null,line:g+1}}else if(r.shouldDecrease(u))return{indentation:getLeadingWhitespace(u),action:null,line:c}}return{indentation:getLeadingWhitespace(e.getLineContent(1)),action:null,line:1}}}function getGoodIndentForLine(o,e,t,i,n,r){if(o<4)return null;const s=r.getLanguageConfiguration(t);if(!s)return null;const a=r.getLanguageConfiguration(t).indentRulesSupport;if(!a)return null;const l=getInheritIndentForLine(o,e,i,void 0,r),d=e.getLineContent(i);if(l){const c=l.line;if(c!==void 0){let u=!0;for(let g=c;g<i-1;g++)if(!/^\s*$/.test(e.getLineContent(g))){u=!1;break}if(u){const g=s.onEnter(o,"",e.getLineContent(c),"");if(g){let f=getLeadingWhitespace(e.getLineContent(c));return g.removeText&&(f=f.substring(0,f.length-g.removeText)),g.indentAction===IndentAction.Indent||g.indentAction===IndentAction.IndentOutdent?f=n.shiftIndent(f):g.indentAction===IndentAction.Outdent&&(f=n.unshiftIndent(f)),a.shouldDecrease(d)&&(f=n.unshiftIndent(f)),g.appendText&&(f+=g.appendText),getLeadingWhitespace(f)}}}return a.shouldDecrease(d)?l.action===IndentAction.Indent?l.indentation:n.unshiftIndent(l.indentation):l.action===IndentAction.Indent?n.shiftIndent(l.indentation):l.indentation}return null}function getIndentForEnter(o,e,t,i,n){if(o<4)return null;e.tokenization.forceTokenization(t.startLineNumber);const r=e.tokenization.getLineTokens(t.startLineNumber),s=createScopedLineTokens(r,t.startColumn-1),a=s.getLineContent();let l=!1,d;s.firstCharOffset>0&&r.getLanguageId(0)!==s.languageId?(l=!0,d=a.substr(0,t.startColumn-1-s.firstCharOffset)):d=r.getLineContent().substring(0,t.startColumn-1);let c;t.isEmpty()?c=a.substr(t.startColumn-1-s.firstCharOffset):c=getScopedLineTokens(e,t.endLineNumber,t.endColumn).getLineContent().substr(t.endColumn-1-s.firstCharOffset);const u=n.getLanguageConfiguration(s.languageId).indentRulesSupport;if(!u)return null;const g=d,f=getLeadingWhitespace(d),p={tokenization:{getLineTokens:C=>e.tokenization.getLineTokens(C),getLanguageId:()=>e.getLanguageId(),getLanguageIdAtPosition:(C,S)=>e.getLanguageIdAtPosition(C,S)},getLineContent:C=>C===t.startLineNumber?g:e.getLineContent(C)},m=getLeadingWhitespace(r.getLineContent()),b=getInheritIndentForLine(o,p,t.startLineNumber+1,void 0,n);if(!b){const C=l?m:f;return{beforeEnter:C,afterEnter:C}}let _=l?m:b.indentation;return b.action===IndentAction.Indent&&(_=i.shiftIndent(_)),u.shouldDecrease(c)&&(_=i.unshiftIndent(_)),{beforeEnter:l?m:f,afterEnter:_}}function getIndentActionForType(o,e,t,i,n,r){if(o<4)return null;const s=getScopedLineTokens(e,t.startLineNumber,t.startColumn);if(s.firstCharOffset)return null;const a=r.getLanguageConfiguration(s.languageId).indentRulesSupport;if(!a)return null;const l=s.getLineContent(),d=l.substr(0,t.startColumn-1-s.firstCharOffset);let c;if(t.isEmpty()?c=l.substr(t.startColumn-1-s.firstCharOffset):c=getScopedLineTokens(e,t.endLineNumber,t.endColumn).getLineContent().substr(t.endColumn-1-s.firstCharOffset),!a.shouldDecrease(d+c)&&a.shouldDecrease(d+i+c)){const u=getInheritIndentForLine(o,e,t.startLineNumber,!1,r);if(!u)return null;let g=u.indentation;return u.action!==IndentAction.Indent&&(g=n.unshiftIndent(g)),g}return null}function getIndentMetadata(o,e,t){const i=t.getLanguageConfiguration(o.getLanguageId()).indentRulesSupport;return!i||e<1||e>o.getLineCount()?null:i.getIndentMetadata(o.getLineContent(e))}class TypeOperations{static indent(e,t,i){if(t===null||i===null)return[];const n=[];for(let r=0,s=i.length;r<s;r++)n[r]=new ShiftCommand(i[r],{isUnshift:!1,tabSize:e.tabSize,indentSize:e.indentSize,insertSpaces:e.insertSpaces,useTabStops:e.useTabStops,autoIndent:e.autoIndent},e.languageConfigurationService);return n}static outdent(e,t,i){const n=[];for(let r=0,s=i.length;r<s;r++)n[r]=new ShiftCommand(i[r],{isUnshift:!0,tabSize:e.tabSize,indentSize:e.indentSize,insertSpaces:e.insertSpaces,useTabStops:e.useTabStops,autoIndent:e.autoIndent},e.languageConfigurationService);return n}static shiftIndent(e,t,i){return i=i||1,ShiftCommand.shiftIndent(t,t.length+i,e.tabSize,e.indentSize,e.insertSpaces)}static unshiftIndent(e,t,i){return i=i||1,ShiftCommand.unshiftIndent(t,t.length+i,e.tabSize,e.indentSize,e.insertSpaces)}static _distributedPaste(e,t,i,n){const r=[];for(let s=0,a=i.length;s<a;s++)r[s]=new ReplaceCommand(i[s],n[s]);return new EditOperationResult(0,r,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}static _simplePaste(e,t,i,n,r){const s=[];for(let a=0,l=i.length;a<l;a++){const d=i[a],c=d.getPosition();if(r&&!d.isEmpty()&&(r=!1),r&&n.indexOf(`
- `)!==n.length-1&&(r=!1),r){const u=new Range$2(c.lineNumber,1,c.lineNumber,1);s[a]=new ReplaceCommandThatPreservesSelection(u,n,d,!0)}else s[a]=new ReplaceCommand(d,n)}return new EditOperationResult(0,s,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}static _distributePasteToCursors(e,t,i,n,r){if(n||t.length===1)return null;if(r&&r.length===t.length)return r;if(e.multiCursorPaste==="spread"){i.charCodeAt(i.length-1)===10&&(i=i.substr(0,i.length-1)),i.charCodeAt(i.length-1)===13&&(i=i.substr(0,i.length-1));const s=splitLines(i);if(s.length===t.length)return s}return null}static paste(e,t,i,n,r,s){const a=this._distributePasteToCursors(e,i,n,r,s);return a?(i=i.sort(Range$2.compareRangesUsingStarts),this._distributedPaste(e,t,i,a)):this._simplePaste(e,t,i,n,r)}static _goodIndentForLine(e,t,i){let n=null,r="";const s=getInheritIndentForLine(e.autoIndent,t,i,!1,e.languageConfigurationService);if(s)n=s.action,r=s.indentation;else if(i>1){let a;for(a=i-1;a>=1;a--){const c=t.getLineContent(a);if(lastNonWhitespaceIndex(c)>=0)break}if(a<1)return null;const l=t.getLineMaxColumn(a),d=getEnterAction(e.autoIndent,t,new Range$2(a,l,a,l),e.languageConfigurationService);d&&(r=d.indentation+d.appendText)}return n&&(n===IndentAction.Indent&&(r=TypeOperations.shiftIndent(e,r)),n===IndentAction.Outdent&&(r=TypeOperations.unshiftIndent(e,r)),r=e.normalizeIndentation(r)),r||null}static _replaceJumpToNextIndent(e,t,i,n){let r="";const s=i.getStartPosition();if(e.insertSpaces){const a=e.visibleColumnFromColumn(t,s),l=e.indentSize,d=l-a%l;for(let c=0;c<d;c++)r+=" "}else r=" ";return new ReplaceCommand(i,r,n)}static tab(e,t,i){const n=[];for(let r=0,s=i.length;r<s;r++){const a=i[r];if(a.isEmpty()){const l=t.getLineContent(a.startLineNumber);if(/^\s*$/.test(l)&&t.tokenization.isCheapToTokenize(a.startLineNumber)){let d=this._goodIndentForLine(e,t,a.startLineNumber);d=d||" ";const c=e.normalizeIndentation(d);if(!l.startsWith(c)){n[r]=new ReplaceCommand(new Range$2(a.startLineNumber,1,a.startLineNumber,l.length+1),c,!0);continue}}n[r]=this._replaceJumpToNextIndent(e,t,a,!0)}else{if(a.startLineNumber===a.endLineNumber){const l=t.getLineMaxColumn(a.startLineNumber);if(a.startColumn!==1||a.endColumn!==l){n[r]=this._replaceJumpToNextIndent(e,t,a,!1);continue}}n[r]=new ShiftCommand(a,{isUnshift:!1,tabSize:e.tabSize,indentSize:e.indentSize,insertSpaces:e.insertSpaces,useTabStops:e.useTabStops,autoIndent:e.autoIndent},e.languageConfigurationService)}}return n}static compositionType(e,t,i,n,r,s,a,l){const d=n.map(c=>this._compositionType(i,c,r,s,a,l));return new EditOperationResult(4,d,{shouldPushStackElementBefore:shouldPushStackElementBetween(e,4),shouldPushStackElementAfter:!1})}static _compositionType(e,t,i,n,r,s){if(!t.isEmpty())return null;const a=t.getPosition(),l=Math.max(1,a.column-n),d=Math.min(e.getLineMaxColumn(a.lineNumber),a.column+r),c=new Range$2(a.lineNumber,l,a.lineNumber,d);return e.getValueInRange(c)===i&&s===0?null:new ReplaceCommandWithOffsetCursorState(c,i,0,s)}static _typeCommand(e,t,i){return i?new ReplaceCommandWithoutChangingPosition(e,t,!0):new ReplaceCommand(e,t,!0)}static _enter(e,t,i,n){if(e.autoIndent===0)return TypeOperations._typeCommand(n,`
- `,i);if(!t.tokenization.isCheapToTokenize(n.getStartPosition().lineNumber)||e.autoIndent===1){const l=t.getLineContent(n.startLineNumber),d=getLeadingWhitespace(l).substring(0,n.startColumn-1);return TypeOperations._typeCommand(n,`
- `+e.normalizeIndentation(d),i)}const r=getEnterAction(e.autoIndent,t,n,e.languageConfigurationService);if(r){if(r.indentAction===IndentAction.None)return TypeOperations._typeCommand(n,`
- `+e.normalizeIndentation(r.indentation+r.appendText),i);if(r.indentAction===IndentAction.Indent)return TypeOperations._typeCommand(n,`
- `+e.normalizeIndentation(r.indentation+r.appendText),i);if(r.indentAction===IndentAction.IndentOutdent){const l=e.normalizeIndentation(r.indentation),d=e.normalizeIndentation(r.indentation+r.appendText),c=`
- `+d+`
- `+l;return i?new ReplaceCommandWithoutChangingPosition(n,c,!0):new ReplaceCommandWithOffsetCursorState(n,c,-1,d.length-l.length,!0)}else if(r.indentAction===IndentAction.Outdent){const l=TypeOperations.unshiftIndent(e,r.indentation);return TypeOperations._typeCommand(n,`
- `+e.normalizeIndentation(l+r.appendText),i)}}const s=t.getLineContent(n.startLineNumber),a=getLeadingWhitespace(s).substring(0,n.startColumn-1);if(e.autoIndent>=4){const l=getIndentForEnter(e.autoIndent,t,n,{unshiftIndent:d=>TypeOperations.unshiftIndent(e,d),shiftIndent:d=>TypeOperations.shiftIndent(e,d),normalizeIndentation:d=>e.normalizeIndentation(d)},e.languageConfigurationService);if(l){let d=e.visibleColumnFromColumn(t,n.getEndPosition());const c=n.endColumn,u=t.getLineContent(n.endLineNumber),g=firstNonWhitespaceIndex(u);if(g>=0?n=n.setEndPosition(n.endLineNumber,Math.max(n.endColumn,g+1)):n=n.setEndPosition(n.endLineNumber,t.getLineMaxColumn(n.endLineNumber)),i)return new ReplaceCommandWithoutChangingPosition(n,`
- `+e.normalizeIndentation(l.afterEnter),!0);{let f=0;return c<=g+1&&(e.insertSpaces||(d=Math.ceil(d/e.indentSize)),f=Math.min(d+1-e.normalizeIndentation(l.afterEnter).length-1,0)),new ReplaceCommandWithOffsetCursorState(n,`
- `+e.normalizeIndentation(l.afterEnter),0,f,!0)}}}return TypeOperations._typeCommand(n,`
- `+e.normalizeIndentation(a),i)}static _isAutoIndentType(e,t,i){if(e.autoIndent<4)return!1;for(let n=0,r=i.length;n<r;n++)if(!t.tokenization.isCheapToTokenize(i[n].getEndPosition().lineNumber))return!1;return!0}static _runAutoIndentType(e,t,i,n){const r=getIndentationAtPosition(t,i.startLineNumber,i.startColumn),s=getIndentActionForType(e.autoIndent,t,i,n,{shiftIndent:a=>TypeOperations.shiftIndent(e,a),unshiftIndent:a=>TypeOperations.unshiftIndent(e,a)},e.languageConfigurationService);if(s===null)return null;if(s!==e.normalizeIndentation(r)){const a=t.getLineFirstNonWhitespaceColumn(i.startLineNumber);return a===0?TypeOperations._typeCommand(new Range$2(i.startLineNumber,1,i.endLineNumber,i.endColumn),e.normalizeIndentation(s)+n,!1):TypeOperations._typeCommand(new Range$2(i.startLineNumber,1,i.endLineNumber,i.endColumn),e.normalizeIndentation(s)+t.getLineContent(i.startLineNumber).substring(a-1,i.startColumn-1)+n,!1)}return null}static _isAutoClosingOvertype(e,t,i,n,r){if(e.autoClosingOvertype==="never"||!e.autoClosingPairs.autoClosingPairsCloseSingleChar.has(r))return!1;for(let s=0,a=i.length;s<a;s++){const l=i[s];if(!l.isEmpty())return!1;const d=l.getPosition(),c=t.getLineContent(d.lineNumber);if(c.charAt(d.column-1)!==r)return!1;const g=isQuote(r);if((d.column>2?c.charCodeAt(d.column-2):0)===92&&g)return!1;if(e.autoClosingOvertype==="auto"){let p=!1;for(let m=0,b=n.length;m<b;m++){const _=n[m];if(d.lineNumber===_.startLineNumber&&d.column===_.startColumn){p=!0;break}}if(!p)return!1}}return!0}static _runAutoClosingOvertype(e,t,i,n,r){const s=[];for(let a=0,l=n.length;a<l;a++){const c=n[a].getPosition(),u=new Range$2(c.lineNumber,c.column,c.lineNumber,c.column+1);s[a]=new ReplaceCommand(u,r)}return new EditOperationResult(4,s,{shouldPushStackElementBefore:shouldPushStackElementBetween(e,4),shouldPushStackElementAfter:!1})}static _isBeforeClosingBrace(e,t){const i=t.charAt(0),n=e.autoClosingPairs.autoClosingPairsOpenByStart.get(i)||[],r=e.autoClosingPairs.autoClosingPairsCloseByStart.get(i)||[],s=n.some(l=>t.startsWith(l.open)),a=r.some(l=>t.startsWith(l.close));return!s&&a}static _findAutoClosingPairOpen(e,t,i,n){const r=e.autoClosingPairs.autoClosingPairsOpenByEnd.get(n);if(!r)return null;let s=null;for(const a of r)if(s===null||a.open.length>s.open.length){let l=!0;for(const d of i)if(t.getValueInRange(new Range$2(d.lineNumber,d.column-a.open.length+1,d.lineNumber,d.column))+n!==a.open){l=!1;break}l&&(s=a)}return s}static _findContainedAutoClosingPair(e,t){if(t.open.length<=1)return null;const i=t.close.charAt(t.close.length-1),n=e.autoClosingPairs.autoClosingPairsCloseByEnd.get(i)||[];let r=null;for(const s of n)s.open!==t.open&&t.open.includes(s.open)&&t.close.endsWith(s.close)&&(!r||s.open.length>r.open.length)&&(r=s);return r}static _getAutoClosingPairClose(e,t,i,n,r){for(const p of i)if(!p.isEmpty())return null;const s=i.map(p=>{const m=p.getPosition();return r?{lineNumber:m.lineNumber,beforeColumn:m.column-n.length,afterColumn:m.column}:{lineNumber:m.lineNumber,beforeColumn:m.column,afterColumn:m.column}}),a=this._findAutoClosingPairOpen(e,t,s.map(p=>new Position$1(p.lineNumber,p.beforeColumn)),n);if(!a)return null;let l,d;if(isQuote(n)?(l=e.autoClosingQuotes,d=e.shouldAutoCloseBefore.quote):(e.blockCommentStartToken?a.open.includes(e.blockCommentStartToken):!1)?(l=e.autoClosingComments,d=e.shouldAutoCloseBefore.comment):(l=e.autoClosingBrackets,d=e.shouldAutoCloseBefore.bracket),l==="never")return null;const u=this._findContainedAutoClosingPair(e,a),g=u?u.close:"";let f=!0;for(const p of s){const{lineNumber:m,beforeColumn:b,afterColumn:_}=p,C=t.getLineContent(m),S=C.substring(0,b-1),y=C.substring(_-1);if(y.startsWith(g)||(f=!1),y.length>0){const I=y.charAt(0);if(!TypeOperations._isBeforeClosingBrace(e,y)&&!d(I))return null}if(a.open.length===1&&(n==="'"||n==='"')&&l!=="always"){const I=getMapForWordSeparators(e.wordSeparators);if(S.length>0){const D=S.charCodeAt(S.length-1);if(I.get(D)===0)return null}}if(!t.tokenization.isCheapToTokenize(m))return null;t.tokenization.forceTokenization(m);const E=t.tokenization.getLineTokens(m),x=createScopedLineTokens(E,b-1);if(!a.shouldAutoClose(x,b-x.firstCharOffset))return null;const L=a.findNeutralCharacter();if(L){const I=t.tokenization.getTokenTypeIfInsertingCharacter(m,b,L);if(!a.isOK(I))return null}}return f?a.close.substring(0,a.close.length-g.length):a.close}static _runAutoClosingOpenCharType(e,t,i,n,r,s,a){const l=[];for(let d=0,c=n.length;d<c;d++){const u=n[d];l[d]=new TypeWithAutoClosingCommand(u,r,!s,a)}return new EditOperationResult(4,l,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}static _shouldSurroundChar(e,t){return isQuote(t)?e.autoSurround==="quotes"||e.autoSurround==="languageDefined":e.autoSurround==="brackets"||e.autoSurround==="languageDefined"}static _isSurroundSelectionType(e,t,i,n){if(!TypeOperations._shouldSurroundChar(e,n)||!e.surroundingPairs.hasOwnProperty(n))return!1;const r=isQuote(n);for(const s of i){if(s.isEmpty())return!1;let a=!0;for(let l=s.startLineNumber;l<=s.endLineNumber;l++){const d=t.getLineContent(l),c=l===s.startLineNumber?s.startColumn-1:0,u=l===s.endLineNumber?s.endColumn-1:d.length,g=d.substring(c,u);if(/[^ \t]/.test(g)){a=!1;break}}if(a)return!1;if(r&&s.startLineNumber===s.endLineNumber&&s.startColumn+1===s.endColumn){const l=t.getValueInRange(s);if(isQuote(l))return!1}}return!0}static _runSurroundSelectionType(e,t,i,n,r){const s=[];for(let a=0,l=n.length;a<l;a++){const d=n[a],c=t.surroundingPairs[r];s[a]=new SurroundSelectionCommand(d,r,c)}return new EditOperationResult(0,s,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}static _isTypeInterceptorElectricChar(e,t,i){return!!(i.length===1&&t.tokenization.isCheapToTokenize(i[0].getEndPosition().lineNumber))}static _typeInterceptorElectricChar(e,t,i,n,r){if(!t.electricChars.hasOwnProperty(r)||!n.isEmpty())return null;const s=n.getPosition();i.tokenization.forceTokenization(s.lineNumber);const a=i.tokenization.getLineTokens(s.lineNumber);let l;try{l=t.onElectricCharacter(r,a,s.column)}catch(d){return onUnexpectedError(d),null}if(!l)return null;if(l.matchOpenBracket){const d=(a.getLineContent()+r).lastIndexOf(l.matchOpenBracket)+1,c=i.bracketPairs.findMatchingBracketUp(l.matchOpenBracket,{lineNumber:s.lineNumber,column:d},500);if(c){if(c.startLineNumber===s.lineNumber)return null;const u=i.getLineContent(c.startLineNumber),g=getLeadingWhitespace(u),f=t.normalizeIndentation(g),p=i.getLineContent(s.lineNumber),m=i.getLineFirstNonWhitespaceColumn(s.lineNumber)||s.column,b=p.substring(m-1,s.column-1),_=f+b+r,C=new Range$2(s.lineNumber,1,s.lineNumber,s.column),S=new ReplaceCommand(C,_);return new EditOperationResult(getTypingOperation(_,e),[S],{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!0})}}return null}static compositionEndWithInterceptors(e,t,i,n,r,s){if(!n)return null;let a=null;for(const u of n)if(a===null)a=u.insertedText;else if(a!==u.insertedText)return null;if(!a||a.length!==1)return null;const l=a;let d=!1;for(const u of n)if(u.deletedText.length!==0){d=!0;break}if(d){if(!TypeOperations._shouldSurroundChar(t,l)||!t.surroundingPairs.hasOwnProperty(l))return null;const u=isQuote(l);for(const p of n)if(p.deletedSelectionStart!==0||p.deletedSelectionEnd!==p.deletedText.length||/^[ \t]+$/.test(p.deletedText)||u&&isQuote(p.deletedText))return null;const g=[];for(const p of r){if(!p.isEmpty())return null;g.push(p.getPosition())}if(g.length!==n.length)return null;const f=[];for(let p=0,m=g.length;p<m;p++)f.push(new CompositionSurroundSelectionCommand(g[p],n[p].deletedText,t.surroundingPairs[l]));return new EditOperationResult(4,f,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}if(this._isAutoClosingOvertype(t,i,r,s,l)){const u=r.map(g=>new ReplaceCommand(new Range$2(g.positionLineNumber,g.positionColumn,g.positionLineNumber,g.positionColumn+1),"",!1));return new EditOperationResult(4,u,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}const c=this._getAutoClosingPairClose(t,i,r,l,!0);return c!==null?this._runAutoClosingOpenCharType(e,t,i,r,l,!0,c):null}static typeWithInterceptors(e,t,i,n,r,s,a){if(!e&&a===`
- `){const c=[];for(let u=0,g=r.length;u<g;u++)c[u]=TypeOperations._enter(i,n,!1,r[u]);return new EditOperationResult(4,c,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}if(!e&&this._isAutoIndentType(i,n,r)){const c=[];let u=!1;for(let g=0,f=r.length;g<f;g++)if(c[g]=this._runAutoIndentType(i,n,r[g],a),!c[g]){u=!0;break}if(!u)return new EditOperationResult(4,c,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}if(this._isAutoClosingOvertype(i,n,r,s,a))return this._runAutoClosingOvertype(t,i,n,r,a);if(!e){const c=this._getAutoClosingPairClose(i,n,r,a,!1);if(c)return this._runAutoClosingOpenCharType(t,i,n,r,a,!1,c)}if(!e&&this._isSurroundSelectionType(i,n,r,a))return this._runSurroundSelectionType(t,i,n,r,a);if(!e&&this._isTypeInterceptorElectricChar(i,n,r)){const c=this._typeInterceptorElectricChar(t,i,n,r[0],a);if(c)return c}const l=[];for(let c=0,u=r.length;c<u;c++)l[c]=new ReplaceCommand(r[c],a);const d=getTypingOperation(a,t);return new EditOperationResult(d,l,{shouldPushStackElementBefore:shouldPushStackElementBetween(t,d),shouldPushStackElementAfter:!1})}static typeWithoutInterceptors(e,t,i,n,r){const s=[];for(let l=0,d=n.length;l<d;l++)s[l]=new ReplaceCommand(n[l],r);const a=getTypingOperation(r,e);return new EditOperationResult(a,s,{shouldPushStackElementBefore:shouldPushStackElementBetween(e,a),shouldPushStackElementAfter:!1})}static lineInsertBefore(e,t,i){if(t===null||i===null)return[];const n=[];for(let r=0,s=i.length;r<s;r++){let a=i[r].positionLineNumber;if(a===1)n[r]=new ReplaceCommandWithoutChangingPosition(new Range$2(1,1,1,1),`
- `);else{a--;const l=t.getLineMaxColumn(a);n[r]=this._enter(e,t,!1,new Range$2(a,l,a,l))}}return n}static lineInsertAfter(e,t,i){if(t===null||i===null)return[];const n=[];for(let r=0,s=i.length;r<s;r++){const a=i[r].positionLineNumber,l=t.getLineMaxColumn(a);n[r]=this._enter(e,t,!1,new Range$2(a,l,a,l))}return n}static lineBreakInsert(e,t,i){const n=[];for(let r=0,s=i.length;r<s;r++)n[r]=this._enter(e,t,!0,i[r]);return n}}class TypeWithAutoClosingCommand extends ReplaceCommandWithOffsetCursorState{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){const n=t.getInverseEditOperations()[0].range;return this.closeCharacterRange=new Range$2(n.startLineNumber,n.endColumn-this._closeCharacter.length,n.endLineNumber,n.endColumn),this.enclosingRange=new Range$2(n.startLineNumber,n.endColumn-this._openCharacter.length-this._closeCharacter.length,n.endLineNumber,n.endColumn),super.computeCursorState(e,t)}}class CompositionOutcome{constructor(e,t,i,n,r,s){this.deletedText=e,this.deletedSelectionStart=t,this.deletedSelectionEnd=i,this.insertedText=n,this.insertedSelectionStart=r,this.insertedSelectionEnd=s}}function getTypingOperation(o,e){return o===" "?e===5||e===6?6:5:4}function shouldPushStackElementBetween(o,e){return isTypingOperation(o)&&!isTypingOperation(e)?!0:o===5?!1:normalizeOperationType(o)!==normalizeOperationType(e)}function normalizeOperationType(o){return o===6||o===5?"space":o}function isTypingOperation(o){return o===4||o===5||o===6}var EditorContextKeys;(function(o){o.editorSimpleInput=new RawContextKey("editorSimpleInput",!1,!0),o.editorTextFocus=new RawContextKey("editorTextFocus",!1,localize("editorTextFocus","Whether the editor text has focus (cursor is blinking)")),o.focus=new RawContextKey("editorFocus",!1,localize("editorFocus","Whether the editor or an editor widget has focus (e.g. focus is in the find widget)")),o.textInputFocus=new RawContextKey("textInputFocus",!1,localize("textInputFocus","Whether an editor or a rich text input has focus (cursor is blinking)")),o.readOnly=new RawContextKey("editorReadonly",!1,localize("editorReadonly","Whether the editor is read-only")),o.inDiffEditor=new RawContextKey("inDiffEditor",!1,localize("inDiffEditor","Whether the context is a diff editor")),o.isEmbeddedDiffEditor=new RawContextKey("isEmbeddedDiffEditor",!1,localize("isEmbeddedDiffEditor","Whether the context is an embedded diff editor")),o.comparingMovedCode=new RawContextKey("comparingMovedCode",!1,localize("comparingMovedCode","Whether a moved code block is selected for comparison")),o.accessibleDiffViewerVisible=new RawContextKey("accessibleDiffViewerVisible",!1,localize("accessibleDiffViewerVisible","Whether the accessible diff viewer is visible")),o.diffEditorRenderSideBySideInlineBreakpointReached=new RawContextKey("diffEditorRenderSideBySideInlineBreakpointReached",!1,localize("diffEditorRenderSideBySideInlineBreakpointReached","Whether the diff editor render side by side inline breakpoint is reached")),o.columnSelection=new RawContextKey("editorColumnSelection",!1,localize("editorColumnSelection","Whether `editor.columnSelection` is enabled")),o.writable=o.readOnly.toNegated(),o.hasNonEmptySelection=new RawContextKey("editorHasSelection",!1,localize("editorHasSelection","Whether the editor has text selected")),o.hasOnlyEmptySelection=o.hasNonEmptySelection.toNegated(),o.hasMultipleSelections=new RawContextKey("editorHasMultipleSelections",!1,localize("editorHasMultipleSelections","Whether the editor has multiple selections")),o.hasSingleSelection=o.hasMultipleSelections.toNegated(),o.tabMovesFocus=new RawContextKey("editorTabMovesFocus",!1,localize("editorTabMovesFocus","Whether `Tab` will move focus out of the editor")),o.tabDoesNotMoveFocus=o.tabMovesFocus.toNegated(),o.isInWalkThroughSnippet=new RawContextKey("isInEmbeddedEditor",!1,!0),o.canUndo=new RawContextKey("canUndo",!1,!0),o.canRedo=new RawContextKey("canRedo",!1,!0),o.hoverVisible=new RawContextKey("editorHoverVisible",!1,localize("editorHoverVisible","Whether the editor hover is visible")),o.hoverFocused=new RawContextKey("editorHoverFocused",!1,localize("editorHoverFocused","Whether the editor hover is focused")),o.stickyScrollFocused=new RawContextKey("stickyScrollFocused",!1,localize("stickyScrollFocused","Whether the sticky scroll is focused")),o.stickyScrollVisible=new RawContextKey("stickyScrollVisible",!1,localize("stickyScrollVisible","Whether the sticky scroll is visible")),o.standaloneColorPickerVisible=new RawContextKey("standaloneColorPickerVisible",!1,localize("standaloneColorPickerVisible","Whether the standalone color picker is visible")),o.standaloneColorPickerFocused=new RawContextKey("standaloneColorPickerFocused",!1,localize("standaloneColorPickerFocused","Whether the standalone color picker is focused")),o.inCompositeEditor=new RawContextKey("inCompositeEditor",void 0,localize("inCompositeEditor","Whether the editor is part of a larger editor (e.g. notebooks)")),o.notInCompositeEditor=o.inCompositeEditor.toNegated(),o.languageId=new RawContextKey("editorLangId","",localize("editorLangId","The language identifier of the editor")),o.hasCompletionItemProvider=new RawContextKey("editorHasCompletionItemProvider",!1,localize("editorHasCompletionItemProvider","Whether the editor has a completion item provider")),o.hasCodeActionsProvider=new RawContextKey("editorHasCodeActionsProvider",!1,localize("editorHasCodeActionsProvider","Whether the editor has a code actions provider")),o.hasCodeLensProvider=new RawContextKey("editorHasCodeLensProvider",!1,localize("editorHasCodeLensProvider","Whether the editor has a code lens provider")),o.hasDefinitionProvider=new RawContextKey("editorHasDefinitionProvider",!1,localize("editorHasDefinitionProvider","Whether the editor has a definition provider")),o.hasDeclarationProvider=new RawContextKey("editorHasDeclarationProvider",!1,localize("editorHasDeclarationProvider","Whether the editor has a declaration provider")),o.hasImplementationProvider=new RawContextKey("editorHasImplementationProvider",!1,localize("editorHasImplementationProvider","Whether the editor has an implementation provider")),o.hasTypeDefinitionProvider=new RawContextKey("editorHasTypeDefinitionProvider",!1,localize("editorHasTypeDefinitionProvider","Whether the editor has a type definition provider")),o.hasHoverProvider=new RawContextKey("editorHasHoverProvider",!1,localize("editorHasHoverProvider","Whether the editor has a hover provider")),o.hasDocumentHighlightProvider=new RawContextKey("editorHasDocumentHighlightProvider",!1,localize("editorHasDocumentHighlightProvider","Whether the editor has a document highlight provider")),o.hasDocumentSymbolProvider=new RawContextKey("editorHasDocumentSymbolProvider",!1,localize("editorHasDocumentSymbolProvider","Whether the editor has a document symbol provider")),o.hasReferenceProvider=new RawContextKey("editorHasReferenceProvider",!1,localize("editorHasReferenceProvider","Whether the editor has a reference provider")),o.hasRenameProvider=new RawContextKey("editorHasRenameProvider",!1,localize("editorHasRenameProvider","Whether the editor has a rename provider")),o.hasSignatureHelpProvider=new RawContextKey("editorHasSignatureHelpProvider",!1,localize("editorHasSignatureHelpProvider","Whether the editor has a signature help provider")),o.hasInlayHintsProvider=new RawContextKey("editorHasInlayHintsProvider",!1,localize("editorHasInlayHintsProvider","Whether the editor has an inline hints provider")),o.hasDocumentFormattingProvider=new RawContextKey("editorHasDocumentFormattingProvider",!1,localize("editorHasDocumentFormattingProvider","Whether the editor has a document formatting provider")),o.hasDocumentSelectionFormattingProvider=new RawContextKey("editorHasDocumentSelectionFormattingProvider",!1,localize("editorHasDocumentSelectionFormattingProvider","Whether the editor has a document selection formatting provider")),o.hasMultipleDocumentFormattingProvider=new RawContextKey("editorHasMultipleDocumentFormattingProvider",!1,localize("editorHasMultipleDocumentFormattingProvider","Whether the editor has multiple document formatting providers")),o.hasMultipleDocumentSelectionFormattingProvider=new RawContextKey("editorHasMultipleDocumentSelectionFormattingProvider",!1,localize("editorHasMultipleDocumentSelectionFormattingProvider","Whether the editor has multiple document selection formatting providers"))})(EditorContextKeys||(EditorContextKeys={}));const CORE_WEIGHT=0;class CoreEditorCommand extends EditorCommand{runEditorCommand(e,t,i){const n=t._getViewModel();n&&this.runCoreEditorCommand(n,i||{})}}var EditorScroll_;(function(o){const e=function(i){if(!isObject(i))return!1;const n=i;return!(!isString$1(n.to)||!isUndefined(n.by)&&!isString$1(n.by)||!isUndefined(n.value)&&!isNumber$1(n.value)||!isUndefined(n.revealCursor)&&!isBoolean(n.revealCursor))};o.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 * 'to': A mandatory direction value.\n ```\n 'up', 'down'\n ```\n * 'by': Unit to move. Default is computed based on 'to' value.\n ```\n 'line', 'wrappedLine', 'page', 'halfPage', 'editor'\n ```\n * 'value': Number of units to move. Default is '1'.\n * 'revealCursor': If 'true' reveals the cursor if it is outside view port.\n ",constraint:e,schema:{type:"object",required:["to"],properties:{to:{type:"string",enum:["up","down"]},by:{type:"string",enum:["line","wrappedLine","page","halfPage","editor"]},value:{type:"number",default:1},revealCursor:{type:"boolean"}}}}]},o.RawDirection={Up:"up",Right:"right",Down:"down",Left:"left"},o.RawUnit={Line:"line",WrappedLine:"wrappedLine",Page:"page",HalfPage:"halfPage",Editor:"editor",Column:"column"};function t(i){let n;switch(i.to){case o.RawDirection.Up:n=1;break;case o.RawDirection.Right:n=2;break;case o.RawDirection.Down:n=3;break;case o.RawDirection.Left:n=4;break;default:return null}let r;switch(i.by){case o.RawUnit.Line:r=1;break;case o.RawUnit.WrappedLine:r=2;break;case o.RawUnit.Page:r=3;break;case o.RawUnit.HalfPage:r=4;break;case o.RawUnit.Editor:r=5;break;case o.RawUnit.Column:r=6;break;default:r=2}const s=Math.floor(i.value||1),a=!!i.revealCursor;return{direction:n,unit:r,value:s,revealCursor:a,select:!!i.select}}o.parse=t})(EditorScroll_||(EditorScroll_={}));var RevealLine_;(function(o){const e=function(t){if(!isObject(t))return!1;const i=t;return!(!isNumber$1(i.lineNumber)&&!isString$1(i.lineNumber)||!isUndefined(i.at)&&!isString$1(i.at))};o.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 * 'lineNumber': A mandatory line number value.\n * 'at': Logical position at which line has to be revealed.\n ```\n 'top', 'center', 'bottom'\n ```\n ",constraint:e,schema:{type:"object",required:["lineNumber"],properties:{lineNumber:{type:["number","string"]},at:{type:"string",enum:["top","center","bottom"]}}}}]},o.RawAtArgument={Top:"top",Center:"center",Bottom:"bottom"}})(RevealLine_||(RevealLine_={}));class EditorOrNativeTextInputCommand{constructor(e){e.addImplementation(1e4,"code-editor",(t,i)=>{const n=t.get(ICodeEditorService).getFocusedCodeEditor();return n&&n.hasTextFocus()?this._runEditorCommand(t,n,i):!1}),e.addImplementation(1e3,"generic-dom-input-textarea",(t,i)=>{const n=getActiveElement();return n&&["input","textarea"].indexOf(n.tagName.toLowerCase())>=0?(this.runDOMCommand(n),!0):!1}),e.addImplementation(0,"generic-dom",(t,i)=>{const n=t.get(ICodeEditorService).getActiveCodeEditor();return n?(n.focus(),this._runEditorCommand(t,n,i)):!1})}_runEditorCommand(e,t,i){const n=this.runEditorCommand(e,t,i);return n||!0}}var CoreNavigationCommands;(function(o){class e extends CoreEditorCommand{constructor(C){super(C),this._inSelectionMode=C.inSelectionMode}runCoreEditorCommand(C,S){if(!S.position)return;C.model.pushStackElement(),C.setCursorStates(S.source,3,[CursorMoveCommands.moveTo(C,C.getPrimaryCursorState(),this._inSelectionMode,S.position,S.viewPosition)])&&S.revealType!==2&&C.revealPrimaryCursor(S.source,!0,!0)}}o.MoveTo=registerEditorCommand(new e({id:"_moveTo",inSelectionMode:!1,precondition:void 0})),o.MoveToSelect=registerEditorCommand(new e({id:"_moveToSelect",inSelectionMode:!0,precondition:void 0}));class t extends CoreEditorCommand{runCoreEditorCommand(C,S){C.model.pushStackElement();const y=this._getColumnSelectResult(C,C.getPrimaryCursorState(),C.getCursorColumnSelectData(),S);y!==null&&(C.setCursorStates(S.source,3,y.viewStates.map(E=>CursorState$1.fromViewState(E))),C.setCursorColumnSelectData({isReal:!0,fromViewLineNumber:y.fromLineNumber,fromViewVisualColumn:y.fromVisualColumn,toViewLineNumber:y.toLineNumber,toViewVisualColumn:y.toVisualColumn}),y.reversed?C.revealTopMostCursor(S.source):C.revealBottomMostCursor(S.source))}}o.ColumnSelect=registerEditorCommand(new class extends t{constructor(){super({id:"columnSelect",precondition:void 0})}_getColumnSelectResult(_,C,S,y){if(typeof y.position>"u"||typeof y.viewPosition>"u"||typeof y.mouseColumn>"u")return null;const E=_.model.validatePosition(y.position),x=_.coordinatesConverter.validateViewPosition(new Position$1(y.viewPosition.lineNumber,y.viewPosition.column),E),L=y.doColumnSelect?S.fromViewLineNumber:x.lineNumber,I=y.doColumnSelect?S.fromViewVisualColumn:y.mouseColumn-1;return ColumnSelection.columnSelect(_.cursorConfig,_,L,I,x.lineNumber,y.mouseColumn-1)}}),o.CursorColumnSelectLeft=registerEditorCommand(new class extends t{constructor(){super({id:"cursorColumnSelectLeft",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:3599,linux:{primary:0}}})}_getColumnSelectResult(_,C,S,y){return ColumnSelection.columnSelectLeft(_.cursorConfig,_,S)}}),o.CursorColumnSelectRight=registerEditorCommand(new class extends t{constructor(){super({id:"cursorColumnSelectRight",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:3601,linux:{primary:0}}})}_getColumnSelectResult(_,C,S,y){return ColumnSelection.columnSelectRight(_.cursorConfig,_,S)}});class i extends t{constructor(C){super(C),this._isPaged=C.isPaged}_getColumnSelectResult(C,S,y,E){return ColumnSelection.columnSelectUp(C.cursorConfig,C,y,this._isPaged)}}o.CursorColumnSelectUp=registerEditorCommand(new i({isPaged:!1,id:"cursorColumnSelectUp",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:3600,linux:{primary:0}}})),o.CursorColumnSelectPageUp=registerEditorCommand(new i({isPaged:!0,id:"cursorColumnSelectPageUp",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:3595,linux:{primary:0}}}));class n extends t{constructor(C){super(C),this._isPaged=C.isPaged}_getColumnSelectResult(C,S,y,E){return ColumnSelection.columnSelectDown(C.cursorConfig,C,y,this._isPaged)}}o.CursorColumnSelectDown=registerEditorCommand(new n({isPaged:!1,id:"cursorColumnSelectDown",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:3602,linux:{primary:0}}})),o.CursorColumnSelectPageDown=registerEditorCommand(new n({isPaged:!0,id:"cursorColumnSelectPageDown",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:3596,linux:{primary:0}}}));class r extends CoreEditorCommand{constructor(){super({id:"cursorMove",precondition:void 0,description:CursorMove.description})}runCoreEditorCommand(C,S){const y=CursorMove.parse(S);y&&this._runCursorMove(C,S.source,y)}_runCursorMove(C,S,y){C.model.pushStackElement(),C.setCursorStates(S,3,r._move(C,C.getCursorStates(),y)),C.revealPrimaryCursor(S,!0)}static _move(C,S,y){const E=y.select,x=y.value;switch(y.direction){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return CursorMoveCommands.simpleMove(C,S,y.direction,E,x,y.unit);case 11:case 13:case 12:case 14:return CursorMoveCommands.viewportMove(C,S,y.direction,E,x);default:return null}}}o.CursorMoveImpl=r,o.CursorMove=registerEditorCommand(new r);class s extends CoreEditorCommand{constructor(C){super(C),this._staticArgs=C.args}runCoreEditorCommand(C,S){let y=this._staticArgs;this._staticArgs.value===-1&&(y={direction:this._staticArgs.direction,unit:this._staticArgs.unit,select:this._staticArgs.select,value:S.pageSize||C.cursorConfig.pageSize}),C.model.pushStackElement(),C.setCursorStates(S.source,3,CursorMoveCommands.simpleMove(C,C.getCursorStates(),y.direction,y.select,y.value,y.unit)),C.revealPrimaryCursor(S.source,!0)}}o.CursorLeft=registerEditorCommand(new s({args:{direction:0,unit:0,select:!1,value:1},id:"cursorLeft",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:15,mac:{primary:15,secondary:[288]}}})),o.CursorLeftSelect=registerEditorCommand(new s({args:{direction:0,unit:0,select:!0,value:1},id:"cursorLeftSelect",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:1039}})),o.CursorRight=registerEditorCommand(new s({args:{direction:1,unit:0,select:!1,value:1},id:"cursorRight",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:17,mac:{primary:17,secondary:[292]}}})),o.CursorRightSelect=registerEditorCommand(new s({args:{direction:1,unit:0,select:!0,value:1},id:"cursorRightSelect",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:1041}})),o.CursorUp=registerEditorCommand(new s({args:{direction:2,unit:2,select:!1,value:1},id:"cursorUp",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:16,mac:{primary:16,secondary:[302]}}})),o.CursorUpSelect=registerEditorCommand(new s({args:{direction:2,unit:2,select:!0,value:1},id:"cursorUpSelect",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:1040,secondary:[3088],mac:{primary:1040},linux:{primary:1040}}})),o.CursorPageUp=registerEditorCommand(new s({args:{direction:2,unit:2,select:!1,value:-1},id:"cursorPageUp",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:11}})),o.CursorPageUpSelect=registerEditorCommand(new s({args:{direction:2,unit:2,select:!0,value:-1},id:"cursorPageUpSelect",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:1035}})),o.CursorDown=registerEditorCommand(new s({args:{direction:3,unit:2,select:!1,value:1},id:"cursorDown",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:18,mac:{primary:18,secondary:[300]}}})),o.CursorDownSelect=registerEditorCommand(new s({args:{direction:3,unit:2,select:!0,value:1},id:"cursorDownSelect",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:1042,secondary:[3090],mac:{primary:1042},linux:{primary:1042}}})),o.CursorPageDown=registerEditorCommand(new s({args:{direction:3,unit:2,select:!1,value:-1},id:"cursorPageDown",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:12}})),o.CursorPageDownSelect=registerEditorCommand(new s({args:{direction:3,unit:2,select:!0,value:-1},id:"cursorPageDownSelect",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:1036}})),o.CreateCursor=registerEditorCommand(new class extends CoreEditorCommand{constructor(){super({id:"createCursor",precondition:void 0})}runCoreEditorCommand(_,C){if(!C.position)return;let S;C.wholeLine?S=CursorMoveCommands.line(_,_.getPrimaryCursorState(),!1,C.position,C.viewPosition):S=CursorMoveCommands.moveTo(_,_.getPrimaryCursorState(),!1,C.position,C.viewPosition);const y=_.getCursorStates();if(y.length>1){const E=S.modelState?S.modelState.position:null,x=S.viewState?S.viewState.position:null;for(let L=0,I=y.length;L<I;L++){const D=y[L];if(!(E&&!D.modelState.selection.containsPosition(E))&&!(x&&!D.viewState.selection.containsPosition(x))){y.splice(L,1),_.model.pushStackElement(),_.setCursorStates(C.source,3,y);return}}}y.push(S),_.model.pushStackElement(),_.setCursorStates(C.source,3,y)}}),o.LastCursorMoveToSelect=registerEditorCommand(new class extends CoreEditorCommand{constructor(){super({id:"_lastCursorMoveToSelect",precondition:void 0})}runCoreEditorCommand(_,C){if(!C.position)return;const S=_.getLastAddedCursorIndex(),y=_.getCursorStates(),E=y.slice(0);E[S]=CursorMoveCommands.moveTo(_,y[S],!0,C.position,C.viewPosition),_.model.pushStackElement(),_.setCursorStates(C.source,3,E)}});class a extends CoreEditorCommand{constructor(C){super(C),this._inSelectionMode=C.inSelectionMode}runCoreEditorCommand(C,S){C.model.pushStackElement(),C.setCursorStates(S.source,3,CursorMoveCommands.moveToBeginningOfLine(C,C.getCursorStates(),this._inSelectionMode)),C.revealPrimaryCursor(S.source,!0)}}o.CursorHome=registerEditorCommand(new a({inSelectionMode:!1,id:"cursorHome",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:14,mac:{primary:14,secondary:[2063]}}})),o.CursorHomeSelect=registerEditorCommand(new a({inSelectionMode:!0,id:"cursorHomeSelect",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:1038,mac:{primary:1038,secondary:[3087]}}}));class l extends CoreEditorCommand{constructor(C){super(C),this._inSelectionMode=C.inSelectionMode}runCoreEditorCommand(C,S){C.model.pushStackElement(),C.setCursorStates(S.source,3,this._exec(C.getCursorStates())),C.revealPrimaryCursor(S.source,!0)}_exec(C){const S=[];for(let y=0,E=C.length;y<E;y++){const x=C[y],L=x.modelState.position.lineNumber;S[y]=CursorState$1.fromModelState(x.modelState.move(this._inSelectionMode,L,1,0))}return S}}o.CursorLineStart=registerEditorCommand(new l({inSelectionMode:!1,id:"cursorLineStart",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:287}}})),o.CursorLineStartSelect=registerEditorCommand(new l({inSelectionMode:!0,id:"cursorLineStartSelect",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:1311}}}));class d extends CoreEditorCommand{constructor(C){super(C),this._inSelectionMode=C.inSelectionMode}runCoreEditorCommand(C,S){C.model.pushStackElement(),C.setCursorStates(S.source,3,CursorMoveCommands.moveToEndOfLine(C,C.getCursorStates(),this._inSelectionMode,S.sticky||!1)),C.revealPrimaryCursor(S.source,!0)}}o.CursorEnd=registerEditorCommand(new d({inSelectionMode:!1,id:"cursorEnd",precondition:void 0,kbOpts:{args:{sticky:!1},weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:13,mac:{primary:13,secondary:[2065]}},description:{description:"Go to End",args:[{name:"args",schema:{type:"object",properties:{sticky:{description:localize("stickydesc","Stick to the end even when going to longer lines"),type:"boolean",default:!1}}}}]}})),o.CursorEndSelect=registerEditorCommand(new d({inSelectionMode:!0,id:"cursorEndSelect",precondition:void 0,kbOpts:{args:{sticky:!1},weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:1037,mac:{primary:1037,secondary:[3089]}},description:{description:"Select to End",args:[{name:"args",schema:{type:"object",properties:{sticky:{description:localize("stickydesc","Stick to the end even when going to longer lines"),type:"boolean",default:!1}}}}]}}));class c extends CoreEditorCommand{constructor(C){super(C),this._inSelectionMode=C.inSelectionMode}runCoreEditorCommand(C,S){C.model.pushStackElement(),C.setCursorStates(S.source,3,this._exec(C,C.getCursorStates())),C.revealPrimaryCursor(S.source,!0)}_exec(C,S){const y=[];for(let E=0,x=S.length;E<x;E++){const L=S[E],I=L.modelState.position.lineNumber,D=C.model.getLineMaxColumn(I);y[E]=CursorState$1.fromModelState(L.modelState.move(this._inSelectionMode,I,D,0))}return y}}o.CursorLineEnd=registerEditorCommand(new c({inSelectionMode:!1,id:"cursorLineEnd",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:291}}})),o.CursorLineEndSelect=registerEditorCommand(new c({inSelectionMode:!0,id:"cursorLineEndSelect",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:1315}}}));class u extends CoreEditorCommand{constructor(C){super(C),this._inSelectionMode=C.inSelectionMode}runCoreEditorCommand(C,S){C.model.pushStackElement(),C.setCursorStates(S.source,3,CursorMoveCommands.moveToBeginningOfBuffer(C,C.getCursorStates(),this._inSelectionMode)),C.revealPrimaryCursor(S.source,!0)}}o.CursorTop=registerEditorCommand(new u({inSelectionMode:!1,id:"cursorTop",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:2062,mac:{primary:2064}}})),o.CursorTopSelect=registerEditorCommand(new u({inSelectionMode:!0,id:"cursorTopSelect",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:3086,mac:{primary:3088}}}));class g extends CoreEditorCommand{constructor(C){super(C),this._inSelectionMode=C.inSelectionMode}runCoreEditorCommand(C,S){C.model.pushStackElement(),C.setCursorStates(S.source,3,CursorMoveCommands.moveToEndOfBuffer(C,C.getCursorStates(),this._inSelectionMode)),C.revealPrimaryCursor(S.source,!0)}}o.CursorBottom=registerEditorCommand(new g({inSelectionMode:!1,id:"cursorBottom",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:2061,mac:{primary:2066}}})),o.CursorBottomSelect=registerEditorCommand(new g({inSelectionMode:!0,id:"cursorBottomSelect",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:3085,mac:{primary:3090}}}));class f extends CoreEditorCommand{constructor(){super({id:"editorScroll",precondition:void 0,description:EditorScroll_.description})}determineScrollMethod(C){const S=[6],y=[1,2,3,4,5,6],E=[4,2],x=[1,3];return S.includes(C.unit)&&E.includes(C.direction)?this._runHorizontalEditorScroll.bind(this):y.includes(C.unit)&&x.includes(C.direction)?this._runVerticalEditorScroll.bind(this):null}runCoreEditorCommand(C,S){const y=EditorScroll_.parse(S);if(!y)return;const E=this.determineScrollMethod(y);E&&E(C,S.source,y)}_runVerticalEditorScroll(C,S,y){const E=this._computeDesiredScrollTop(C,y);if(y.revealCursor){const x=C.getCompletelyVisibleViewRangeAtScrollTop(E);C.setCursorStates(S,3,[CursorMoveCommands.findPositionInViewportIfOutside(C,C.getPrimaryCursorState(),x,y.select)])}C.viewLayout.setScrollPosition({scrollTop:E},0)}_computeDesiredScrollTop(C,S){if(S.unit===1){const x=C.viewLayout.getFutureViewport(),L=C.getCompletelyVisibleViewRangeAtScrollTop(x.top),I=C.coordinatesConverter.convertViewRangeToModelRange(L);let D;S.direction===1?D=Math.max(1,I.startLineNumber-S.value):D=Math.min(C.model.getLineCount(),I.startLineNumber+S.value);const N=C.coordinatesConverter.convertModelPositionToViewPosition(new Position$1(D,1));return C.viewLayout.getVerticalOffsetForLineNumber(N.lineNumber)}if(S.unit===5){let x=0;return S.direction===3&&(x=C.model.getLineCount()-C.cursorConfig.pageSize),C.viewLayout.getVerticalOffsetForLineNumber(x)}let y;S.unit===3?y=C.cursorConfig.pageSize*S.value:S.unit===4?y=Math.round(C.cursorConfig.pageSize/2)*S.value:y=S.value;const E=(S.direction===1?-1:1)*y;return C.viewLayout.getCurrentScrollTop()+E*C.cursorConfig.lineHeight}_runHorizontalEditorScroll(C,S,y){const E=this._computeDesiredScrollLeft(C,y);C.viewLayout.setScrollPosition({scrollLeft:E},0)}_computeDesiredScrollLeft(C,S){const y=(S.direction===4?-1:1)*S.value;return C.viewLayout.getCurrentScrollLeft()+y*C.cursorConfig.typicalHalfwidthCharacterWidth}}o.EditorScrollImpl=f,o.EditorScroll=registerEditorCommand(new f),o.ScrollLineUp=registerEditorCommand(new class extends CoreEditorCommand{constructor(){super({id:"scrollLineUp",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:2064,mac:{primary:267}}})}runCoreEditorCommand(_,C){o.EditorScroll.runCoreEditorCommand(_,{to:EditorScroll_.RawDirection.Up,by:EditorScroll_.RawUnit.WrappedLine,value:1,revealCursor:!1,select:!1,source:C.source})}}),o.ScrollPageUp=registerEditorCommand(new class extends CoreEditorCommand{constructor(){super({id:"scrollPageUp",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:2059,win:{primary:523},linux:{primary:523}}})}runCoreEditorCommand(_,C){o.EditorScroll.runCoreEditorCommand(_,{to:EditorScroll_.RawDirection.Up,by:EditorScroll_.RawUnit.Page,value:1,revealCursor:!1,select:!1,source:C.source})}}),o.ScrollEditorTop=registerEditorCommand(new class extends CoreEditorCommand{constructor(){super({id:"scrollEditorTop",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus}})}runCoreEditorCommand(_,C){o.EditorScroll.runCoreEditorCommand(_,{to:EditorScroll_.RawDirection.Up,by:EditorScroll_.RawUnit.Editor,value:1,revealCursor:!1,select:!1,source:C.source})}}),o.ScrollLineDown=registerEditorCommand(new class extends CoreEditorCommand{constructor(){super({id:"scrollLineDown",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:2066,mac:{primary:268}}})}runCoreEditorCommand(_,C){o.EditorScroll.runCoreEditorCommand(_,{to:EditorScroll_.RawDirection.Down,by:EditorScroll_.RawUnit.WrappedLine,value:1,revealCursor:!1,select:!1,source:C.source})}}),o.ScrollPageDown=registerEditorCommand(new class extends CoreEditorCommand{constructor(){super({id:"scrollPageDown",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:2060,win:{primary:524},linux:{primary:524}}})}runCoreEditorCommand(_,C){o.EditorScroll.runCoreEditorCommand(_,{to:EditorScroll_.RawDirection.Down,by:EditorScroll_.RawUnit.Page,value:1,revealCursor:!1,select:!1,source:C.source})}}),o.ScrollEditorBottom=registerEditorCommand(new class extends CoreEditorCommand{constructor(){super({id:"scrollEditorBottom",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus}})}runCoreEditorCommand(_,C){o.EditorScroll.runCoreEditorCommand(_,{to:EditorScroll_.RawDirection.Down,by:EditorScroll_.RawUnit.Editor,value:1,revealCursor:!1,select:!1,source:C.source})}}),o.ScrollLeft=registerEditorCommand(new class extends CoreEditorCommand{constructor(){super({id:"scrollLeft",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus}})}runCoreEditorCommand(_,C){o.EditorScroll.runCoreEditorCommand(_,{to:EditorScroll_.RawDirection.Left,by:EditorScroll_.RawUnit.Column,value:2,revealCursor:!1,select:!1,source:C.source})}}),o.ScrollRight=registerEditorCommand(new class extends CoreEditorCommand{constructor(){super({id:"scrollRight",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus}})}runCoreEditorCommand(_,C){o.EditorScroll.runCoreEditorCommand(_,{to:EditorScroll_.RawDirection.Right,by:EditorScroll_.RawUnit.Column,value:2,revealCursor:!1,select:!1,source:C.source})}});class p extends CoreEditorCommand{constructor(C){super(C),this._inSelectionMode=C.inSelectionMode}runCoreEditorCommand(C,S){S.position&&(C.model.pushStackElement(),C.setCursorStates(S.source,3,[CursorMoveCommands.word(C,C.getPrimaryCursorState(),this._inSelectionMode,S.position)]),S.revealType!==2&&C.revealPrimaryCursor(S.source,!0,!0))}}o.WordSelect=registerEditorCommand(new p({inSelectionMode:!1,id:"_wordSelect",precondition:void 0})),o.WordSelectDrag=registerEditorCommand(new p({inSelectionMode:!0,id:"_wordSelectDrag",precondition:void 0})),o.LastCursorWordSelect=registerEditorCommand(new class extends CoreEditorCommand{constructor(){super({id:"lastCursorWordSelect",precondition:void 0})}runCoreEditorCommand(_,C){if(!C.position)return;const S=_.getLastAddedCursorIndex(),y=_.getCursorStates(),E=y.slice(0),x=y[S];E[S]=CursorMoveCommands.word(_,x,x.modelState.hasSelection(),C.position),_.model.pushStackElement(),_.setCursorStates(C.source,3,E)}});class m extends CoreEditorCommand{constructor(C){super(C),this._inSelectionMode=C.inSelectionMode}runCoreEditorCommand(C,S){S.position&&(C.model.pushStackElement(),C.setCursorStates(S.source,3,[CursorMoveCommands.line(C,C.getPrimaryCursorState(),this._inSelectionMode,S.position,S.viewPosition)]),S.revealType!==2&&C.revealPrimaryCursor(S.source,!1,!0))}}o.LineSelect=registerEditorCommand(new m({inSelectionMode:!1,id:"_lineSelect",precondition:void 0})),o.LineSelectDrag=registerEditorCommand(new m({inSelectionMode:!0,id:"_lineSelectDrag",precondition:void 0}));class b extends CoreEditorCommand{constructor(C){super(C),this._inSelectionMode=C.inSelectionMode}runCoreEditorCommand(C,S){if(!S.position)return;const y=C.getLastAddedCursorIndex(),E=C.getCursorStates(),x=E.slice(0);x[y]=CursorMoveCommands.line(C,E[y],this._inSelectionMode,S.position,S.viewPosition),C.model.pushStackElement(),C.setCursorStates(S.source,3,x)}}o.LastCursorLineSelect=registerEditorCommand(new b({inSelectionMode:!1,id:"lastCursorLineSelect",precondition:void 0})),o.LastCursorLineSelectDrag=registerEditorCommand(new b({inSelectionMode:!0,id:"lastCursorLineSelectDrag",precondition:void 0})),o.CancelSelection=registerEditorCommand(new class extends CoreEditorCommand{constructor(){super({id:"cancelSelection",precondition:EditorContextKeys.hasNonEmptySelection,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:9,secondary:[1033]}})}runCoreEditorCommand(_,C){_.model.pushStackElement(),_.setCursorStates(C.source,3,[CursorMoveCommands.cancelSelection(_,_.getPrimaryCursorState())]),_.revealPrimaryCursor(C.source,!0)}}),o.RemoveSecondaryCursors=registerEditorCommand(new class extends CoreEditorCommand{constructor(){super({id:"removeSecondaryCursors",precondition:EditorContextKeys.hasMultipleSelections,kbOpts:{weight:CORE_WEIGHT+1,kbExpr:EditorContextKeys.textInputFocus,primary:9,secondary:[1033]}})}runCoreEditorCommand(_,C){_.model.pushStackElement(),_.setCursorStates(C.source,3,[_.getPrimaryCursorState()]),_.revealPrimaryCursor(C.source,!0),status(localize("removedCursor","Removed secondary cursors"))}}),o.RevealLine=registerEditorCommand(new class extends CoreEditorCommand{constructor(){super({id:"revealLine",precondition:void 0,description:RevealLine_.description})}runCoreEditorCommand(_,C){const S=C,y=S.lineNumber||0;let E=typeof y=="number"?y+1:parseInt(y)+1;E<1&&(E=1);const x=_.model.getLineCount();E>x&&(E=x);const L=new Range$2(E,1,E,_.model.getLineMaxColumn(E));let I=0;if(S.at)switch(S.at){case RevealLine_.RawAtArgument.Top:I=3;break;case RevealLine_.RawAtArgument.Center:I=1;break;case RevealLine_.RawAtArgument.Bottom:I=4;break}const D=_.coordinatesConverter.convertModelRangeToViewRange(L);_.revealRange(C.source,!1,D,I,0)}}),o.SelectAll=new class extends EditorOrNativeTextInputCommand{constructor(){super(SelectAllCommand)}runDOMCommand(_){isFirefox&&(_.focus(),_.select()),_.ownerDocument.execCommand("selectAll")}runEditorCommand(_,C,S){const y=C._getViewModel();y&&this.runCoreEditorCommand(y,S)}runCoreEditorCommand(_,C){_.model.pushStackElement(),_.setCursorStates("keyboard",3,[CursorMoveCommands.selectAll(_,_.getPrimaryCursorState())])}},o.SetSelection=registerEditorCommand(new class extends CoreEditorCommand{constructor(){super({id:"setSelection",precondition:void 0})}runCoreEditorCommand(_,C){C.selection&&(_.model.pushStackElement(),_.setCursorStates(C.source,3,[CursorState$1.fromModelSelection(C.selection)]))}})})(CoreNavigationCommands||(CoreNavigationCommands={}));const columnSelectionCondition=ContextKeyExpr.and(EditorContextKeys.textInputFocus,EditorContextKeys.columnSelection);function registerColumnSelection(o,e){KeybindingsRegistry.registerKeybindingRule({id:o,primary:e,when:columnSelectionCondition,weight:CORE_WEIGHT+1})}registerColumnSelection(CoreNavigationCommands.CursorColumnSelectLeft.id,1039);registerColumnSelection(CoreNavigationCommands.CursorColumnSelectRight.id,1041);registerColumnSelection(CoreNavigationCommands.CursorColumnSelectUp.id,1040);registerColumnSelection(CoreNavigationCommands.CursorColumnSelectPageUp.id,1035);registerColumnSelection(CoreNavigationCommands.CursorColumnSelectDown.id,1042);registerColumnSelection(CoreNavigationCommands.CursorColumnSelectPageDown.id,1036);function registerCommand$2(o){return o.register(),o}var CoreEditingCommands;(function(o){class e extends EditorCommand{runEditorCommand(i,n,r){const s=n._getViewModel();s&&this.runCoreEditingCommand(n,s,r||{})}}o.CoreEditingCommand=e,o.LineBreakInsert=registerEditorCommand(new class extends e{constructor(){super({id:"lineBreakInsert",precondition:EditorContextKeys.writable,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:301}}})}runCoreEditingCommand(t,i,n){t.pushUndoStop(),t.executeCommands(this.id,TypeOperations.lineBreakInsert(i.cursorConfig,i.model,i.getCursorStates().map(r=>r.modelState.selection)))}}),o.Outdent=registerEditorCommand(new class extends e{constructor(){super({id:"outdent",precondition:EditorContextKeys.writable,kbOpts:{weight:CORE_WEIGHT,kbExpr:ContextKeyExpr.and(EditorContextKeys.editorTextFocus,EditorContextKeys.tabDoesNotMoveFocus),primary:1026}})}runCoreEditingCommand(t,i,n){t.pushUndoStop(),t.executeCommands(this.id,TypeOperations.outdent(i.cursorConfig,i.model,i.getCursorStates().map(r=>r.modelState.selection))),t.pushUndoStop()}}),o.Tab=registerEditorCommand(new class extends e{constructor(){super({id:"tab",precondition:EditorContextKeys.writable,kbOpts:{weight:CORE_WEIGHT,kbExpr:ContextKeyExpr.and(EditorContextKeys.editorTextFocus,EditorContextKeys.tabDoesNotMoveFocus),primary:2}})}runCoreEditingCommand(t,i,n){t.pushUndoStop(),t.executeCommands(this.id,TypeOperations.tab(i.cursorConfig,i.model,i.getCursorStates().map(r=>r.modelState.selection))),t.pushUndoStop()}}),o.DeleteLeft=registerEditorCommand(new class extends e{constructor(){super({id:"deleteLeft",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:1,secondary:[1025],mac:{primary:1,secondary:[1025,294,257]}}})}runCoreEditingCommand(t,i,n){const[r,s]=DeleteOperations.deleteLeft(i.getPrevEditOperationType(),i.cursorConfig,i.model,i.getCursorStates().map(a=>a.modelState.selection),i.getCursorAutoClosedCharacters());r&&t.pushUndoStop(),t.executeCommands(this.id,s),i.setPrevEditOperationType(2)}}),o.DeleteRight=registerEditorCommand(new class extends e{constructor(){super({id:"deleteRight",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:20,mac:{primary:20,secondary:[290,276]}}})}runCoreEditingCommand(t,i,n){const[r,s]=DeleteOperations.deleteRight(i.getPrevEditOperationType(),i.cursorConfig,i.model,i.getCursorStates().map(a=>a.modelState.selection));r&&t.pushUndoStop(),t.executeCommands(this.id,s),i.setPrevEditOperationType(3)}}),o.Undo=new class extends EditorOrNativeTextInputCommand{constructor(){super(UndoCommand)}runDOMCommand(t){t.ownerDocument.execCommand("undo")}runEditorCommand(t,i,n){if(!(!i.hasModel()||i.getOption(90)===!0))return i.getModel().undo()}},o.Redo=new class extends EditorOrNativeTextInputCommand{constructor(){super(RedoCommand)}runDOMCommand(t){t.ownerDocument.execCommand("redo")}runEditorCommand(t,i,n){if(!(!i.hasModel()||i.getOption(90)===!0))return i.getModel().redo()}}})(CoreEditingCommands||(CoreEditingCommands={}));class EditorHandlerCommand extends Command{constructor(e,t,i){super({id:e,precondition:void 0,description:i}),this._handlerId=t}runCommand(e,t){const i=e.get(ICodeEditorService).getFocusedCodeEditor();i&&i.trigger("keyboard",this._handlerId,t)}}function registerOverwritableCommand(o,e){registerCommand$2(new EditorHandlerCommand("default:"+o,o)),registerCommand$2(new EditorHandlerCommand(o,o,e))}registerOverwritableCommand("type",{description:"Type",args:[{name:"args",schema:{type:"object",required:["text"],properties:{text:{type:"string"}}}}]});registerOverwritableCommand("replacePreviousChar");registerOverwritableCommand("compositionType");registerOverwritableCommand("compositionStart");registerOverwritableCommand("compositionEnd");registerOverwritableCommand("paste");registerOverwritableCommand("cut");class ViewController{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){CoreNavigationCommands.SetSelection.runCoreEditorCommand(this.viewModel,{source:"keyboard",selection:e})}_validateViewColumn(e){const t=this.viewModel.getLineMinColumn(e.lineNumber);return e.column<t?new Position$1(e.lineNumber,t):e}_hasMulticursorModifier(e){switch(this.configuration.options.get(77)){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(77)){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=isLinux&&t.get(106),n=t.get(22);e.middleButton&&!i?this._columnSelect(e.position,e.mouseColumn,e.inSelectionMode):e.startedOnLineNumbers?this._hasMulticursorModifier(e)?e.inSelectionMode?this._lastCursorLineSelect(e.position,e.revealType):this._createCursor(e.position,!0):e.inSelectionMode?this._lineSelectDrag(e.position,e.revealType):this._lineSelect(e.position,e.revealType):e.mouseDownCount>=4?this._selectAll():e.mouseDownCount===3?this._hasMulticursorModifier(e)?e.inSelectionMode?this._lastCursorLineSelectDrag(e.position,e.revealType):this._lastCursorLineSelect(e.position,e.revealType):e.inSelectionMode?this._lineSelectDrag(e.position,e.revealType):this._lineSelect(e.position,e.revealType):e.mouseDownCount===2?e.onInjectedText||(this._hasMulticursorModifier(e)?this._lastCursorWordSelect(e.position,e.revealType):e.inSelectionMode?this._wordSelectDrag(e.position,e.revealType):this._wordSelect(e.position,e.revealType)):this._hasMulticursorModifier(e)?this._hasNonMulticursorModifier(e)||(e.shiftKey?this._columnSelect(e.position,e.mouseColumn,!0):e.inSelectionMode?this._lastCursorMoveToSelect(e.position,e.revealType):this._createCursor(e.position,!1)):e.inSelectionMode?e.altKey?this._columnSelect(e.position,e.mouseColumn,!0):n?this._columnSelect(e.position,e.mouseColumn,!0):this._moveToSelect(e.position,e.revealType):this.moveTo(e.position,e.revealType)}_usualArgs(e,t){return e=this._validateViewColumn(e),{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e,revealType:t}}moveTo(e,t){CoreNavigationCommands.MoveTo.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_moveToSelect(e,t){CoreNavigationCommands.MoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_columnSelect(e,t,i){e=this._validateViewColumn(e),CoreNavigationCommands.ColumnSelect.runCoreEditorCommand(this.viewModel,{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e,mouseColumn:t,doColumnSelect:i})}_createCursor(e,t){e=this._validateViewColumn(e),CoreNavigationCommands.CreateCursor.runCoreEditorCommand(this.viewModel,{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e,wholeLine:t})}_lastCursorMoveToSelect(e,t){CoreNavigationCommands.LastCursorMoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_wordSelect(e,t){CoreNavigationCommands.WordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_wordSelectDrag(e,t){CoreNavigationCommands.WordSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lastCursorWordSelect(e,t){CoreNavigationCommands.LastCursorWordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lineSelect(e,t){CoreNavigationCommands.LineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lineSelectDrag(e,t){CoreNavigationCommands.LineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lastCursorLineSelect(e,t){CoreNavigationCommands.LastCursorLineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lastCursorLineSelectDrag(e,t){CoreNavigationCommands.LastCursorLineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_selectAll(){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 ViewUserInputEvents{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){var t;(t=this.onKeyDown)===null||t===void 0||t.call(this,e)}emitKeyUp(e){var t;(t=this.onKeyUp)===null||t===void 0||t.call(this,e)}emitContextMenu(e){var t;(t=this.onContextMenu)===null||t===void 0||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseMove(e){var t;(t=this.onMouseMove)===null||t===void 0||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseLeave(e){var t;(t=this.onMouseLeave)===null||t===void 0||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseDown(e){var t;(t=this.onMouseDown)===null||t===void 0||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseUp(e){var t;(t=this.onMouseUp)===null||t===void 0||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseDrag(e){var t;(t=this.onMouseDrag)===null||t===void 0||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseDrop(e){var t;(t=this.onMouseDrop)===null||t===void 0||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseDropCanceled(){var e;(e=this.onMouseDropCanceled)===null||e===void 0||e.call(this)}emitMouseWheel(e){var t;(t=this.onMouseWheel)===null||t===void 0||t.call(this,e)}_convertViewToModelMouseEvent(e){return e.target?{event:e.event,target:this._convertViewToModelMouseTarget(e.target)}:e}_convertViewToModelMouseTarget(e){return ViewUserInputEvents.convertViewToModelMouseTarget(e,this._coordinatesConverter)}static convertViewToModelMouseTarget(e,t){const i=Object.assign({},e);return i.position&&(i.position=t.convertViewPositionToModelPosition(i.position)),i.range&&(i.range=t.convertViewRangeToModelRange(i.range)),(i.type===5||i.type===8)&&(i.detail=this.convertViewToModelViewZoneData(i.detail,t)),i}static convertViewToModelViewZoneData(e,t){return{viewZoneId:e.viewZoneId,positionBefore:e.positionBefore?t.convertViewPositionToModelPosition(e.positionBefore):e.positionBefore,positionAfter:e.positionAfter?t.convertViewPositionToModelPosition(e.positionAfter):e.positionAfter,position:t.convertViewPositionToModelPosition(e.position),afterLineNumber:t.convertViewPositionToModelPosition(new Position$1(e.afterLineNumber,1)).lineNumber}}}class RenderedLinesCollection{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 BugIndicatingError("Illegal value for lineNumber");return this._lines[t]}onLinesDeleted(e,t){if(this.getCount()===0)return null;const i=this.getStartLineNumber(),n=this.getEndLineNumber();if(t<i){const l=t-e+1;return this._rendLineNumberStart-=l,null}if(e>n)return null;let r=0,s=0;for(let l=i;l<=n;l++){const d=l-this._rendLineNumberStart;e<=l&&l<=t&&(s===0?(r=d,s=1):s++)}if(e<i){let l=0;t<i?l=t-e+1:l=i-e,this._rendLineNumberStart-=l}return this._lines.splice(r,s)}onLinesChanged(e,t){const i=e+t-1;if(this.getCount()===0)return!1;const n=this.getStartLineNumber(),r=this.getEndLineNumber();let s=!1;for(let a=e;a<=i;a++)a>=n&&a<=r&&(this._lines[a-this._rendLineNumberStart].onContentChanged(),s=!0);return s}onLinesInserted(e,t){if(this.getCount()===0)return null;const i=t-e+1,n=this.getStartLineNumber(),r=this.getEndLineNumber();if(e<=n)return this._rendLineNumberStart+=i,null;if(e>r)return null;if(i+e>r)return this._lines.splice(e-this._rendLineNumberStart,r-e+1);const s=[];for(let u=0;u<i;u++)s[u]=this._createLine();const a=e-this._rendLineNumberStart,l=this._lines.slice(0,a),d=this._lines.slice(a,this._lines.length-i),c=this._lines.slice(this._lines.length-i,this._lines.length);return this._lines=l.concat(s).concat(d),c}onTokensChanged(e){if(this.getCount()===0)return!1;const t=this.getStartLineNumber(),i=this.getEndLineNumber();let n=!1;for(let r=0,s=e.length;r<s;r++){const a=e[r];if(a.toLineNumber<t||a.fromLineNumber>i)continue;const l=Math.max(t,a.fromLineNumber),d=Math.min(i,a.toLineNumber);for(let c=l;c<=d;c++){const u=c-this._rendLineNumberStart;this._lines[u].onTokensChanged(),n=!0}}return n}}class VisibleLinesCollection{constructor(e){this._host=e,this.domNode=this._createDomNode(),this._linesCollection=new RenderedLinesCollection(()=>this._host.createVisibleLine())}_createDomNode(){const e=createFastDomNode(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(143)}onFlushed(e){return this._linesCollection.flush(),!0}onLinesChanged(e){return this._linesCollection.onLinesChanged(e.fromLineNumber,e.count)}onLinesDeleted(e){const t=this._linesCollection.onLinesDeleted(e.fromLineNumber,e.toLineNumber);if(t)for(let i=0,n=t.length;i<n;i++){const r=t[i].getDomNode();r&&this.domNode.domNode.removeChild(r)}return!0}onLinesInserted(e){const t=this._linesCollection.onLinesInserted(e.fromLineNumber,e.toLineNumber);if(t)for(let i=0,n=t.length;i<n;i++){const r=t[i].getDomNode();r&&this.domNode.domNode.removeChild(r)}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 ViewLayerRenderer(this.domNode.domNode,this._host,e),n={rendLineNumberStart:t.rendLineNumberStart,lines:t.lines,linesLength:t.lines.length},r=i.render(n,e.startLineNumber,e.endLineNumber,e.relativeVerticalOffset);this._linesCollection._set(r.rendLineNumberStart,r.lines)}}class ViewLayerRenderer{constructor(e,t,i){this.domNode=e,this.host=t,this.viewportData=i}render(e,t,i,n){const r={rendLineNumberStart:e.rendLineNumberStart,lines:e.lines.slice(0),linesLength:e.linesLength};if(r.rendLineNumberStart+r.linesLength-1<t||i<r.rendLineNumberStart){r.rendLineNumberStart=t,r.linesLength=i-t+1,r.lines=[];for(let s=t;s<=i;s++)r.lines[s-t]=this.host.createVisibleLine();return this._finishRendering(r,!0,n),r}if(this._renderUntouchedLines(r,Math.max(t-r.rendLineNumberStart,0),Math.min(i-r.rendLineNumberStart,r.linesLength-1),n,t),r.rendLineNumberStart>t){const s=t,a=Math.min(i,r.rendLineNumberStart-1);s<=a&&(this._insertLinesBefore(r,s,a,n,t),r.linesLength+=a-s+1)}else if(r.rendLineNumberStart<t){const s=Math.min(r.linesLength,t-r.rendLineNumberStart);s>0&&(this._removeLinesBefore(r,s),r.linesLength-=s)}if(r.rendLineNumberStart=t,r.rendLineNumberStart+r.linesLength-1<i){const s=r.rendLineNumberStart+r.linesLength,a=i;s<=a&&(this._insertLinesAfter(r,s,a,n,t),r.linesLength+=a-s+1)}else if(r.rendLineNumberStart+r.linesLength-1>i){const s=Math.max(0,i-r.rendLineNumberStart+1),l=r.linesLength-1-s+1;l>0&&(this._removeLinesAfter(r,l),r.linesLength-=l)}return this._finishRendering(r,!1,n),r}_renderUntouchedLines(e,t,i,n,r){const s=e.rendLineNumberStart,a=e.lines;for(let l=t;l<=i;l++){const d=s+l;a[l].layoutLine(d,n[d-r])}}_insertLinesBefore(e,t,i,n,r){const s=[];let a=0;for(let l=t;l<=i;l++)s[a++]=this.host.createVisibleLine();e.lines=s.concat(e.lines)}_removeLinesBefore(e,t){for(let i=0;i<t;i++){const n=e.lines[i].getDomNode();n&&this.domNode.removeChild(n)}e.lines.splice(0,t)}_insertLinesAfter(e,t,i,n,r){const s=[];let a=0;for(let l=t;l<=i;l++)s[a++]=this.host.createVisibleLine();e.lines=e.lines.concat(s)}_removeLinesAfter(e,t){const i=e.linesLength-t;for(let n=0;n<t;n++){const r=e.lines[i+n].getDomNode();r&&this.domNode.removeChild(r)}e.lines.splice(i,t)}_finishRenderingNewLines(e,t,i,n){ViewLayerRenderer._ttPolicy&&(i=ViewLayerRenderer._ttPolicy.createHTML(i));const r=this.domNode.lastChild;t||!r?this.domNode.innerHTML=i:r.insertAdjacentHTML("afterend",i);let s=this.domNode.lastChild;for(let a=e.linesLength-1;a>=0;a--){const l=e.lines[a];n[a]&&(l.setDomNode(s),s=s.previousSibling)}}_finishRenderingInvalidLines(e,t,i){const n=document.createElement("div");ViewLayerRenderer._ttPolicy&&(t=ViewLayerRenderer._ttPolicy.createHTML(t)),n.innerHTML=t;for(let r=0;r<e.linesLength;r++){const s=e.lines[r];if(i[r]){const a=n.firstChild,l=s.getDomNode();l.parentNode.replaceChild(a,l),s.setDomNode(a)}}}_finishRendering(e,t,i){const n=ViewLayerRenderer._sb,r=e.linesLength,s=e.lines,a=e.rendLineNumberStart,l=[];{n.reset();let d=!1;for(let c=0;c<r;c++){const u=s[c];l[c]=!1,!(u.getDomNode()||!u.renderLine(c+a,i[c],this.viewportData,n))&&(l[c]=!0,d=!0)}d&&this._finishRenderingNewLines(e,t,n.build(),l)}{n.reset();let d=!1;const c=[];for(let u=0;u<r;u++){const g=s[u];c[u]=!1,!(l[u]||!g.renderLine(u+a,i[u],this.viewportData,n))&&(c[u]=!0,d=!0)}d&&this._finishRenderingInvalidLines(e,n.build(),c)}}}ViewLayerRenderer._ttPolicy=createTrustedTypesPolicy("editorViewLayer",{createHTML:o=>o});ViewLayerRenderer._sb=new StringBuilder(1e5);class ViewOverlays extends ViewPart{constructor(e){super(e),this._visibleLines=new VisibleLinesCollection(this),this.domNode=this._visibleLines.domNode;const i=this._context.configuration.options.get(50);applyFontInfo(this.domNode,i),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 ViewOverlayLine(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 s=t;s<=i;s++)this._visibleLines.getVisibleLine(s).onConfigurationChanged(e);const r=this._context.configuration.options.get(50);return applyFontInfo(this.domNode,r),!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(i=>i.shouldRender());for(let i=0,n=t.length;i<n;i++){const r=t[i];r.prepareRender(e),r.onDidRender()}}render(e){this._viewOverlaysRender(e),this.domNode.toggleClassName("focused",this._isFocused)}_viewOverlaysRender(e){this._visibleLines.renderLines(e.viewportData)}}class ViewOverlayLine{constructor(e,t){this._configuration=e,this._lineHeight=this._configuration.options.get(66),this._dynamicOverlays=t,this._domNode=null,this._renderedContent=null}getDomNode(){return this._domNode?this._domNode.domNode:null}setDomNode(e){this._domNode=createFastDomNode(e)}onContentChanged(){}onTokensChanged(){}onConfigurationChanged(e){this._lineHeight=this._configuration.options.get(66)}renderLine(e,t,i,n){let r="";for(let s=0,a=this._dynamicOverlays.length;s<a;s++){const l=this._dynamicOverlays[s];r+=l.render(i.startLineNumber,e)}return this._renderedContent===r?!1:(this._renderedContent=r,n.appendString('<div style="position:absolute;top:'),n.appendString(String(t)),n.appendString("px;width:100%;height:"),n.appendString(String(this._lineHeight)),n.appendString('px;">'),n.appendString(r),n.appendString("</div>"),!0)}layoutLine(e,t){this._domNode&&(this._domNode.setTop(t),this._domNode.setHeight(this._lineHeight))}}class ContentViewOverlays extends ViewOverlays{constructor(e){super(e);const i=this._context.configuration.options.get(143);this._contentWidth=i.contentWidth,this.domNode.setHeight(0)}onConfigurationChanged(e){const i=this._context.configuration.options.get(143);return this._contentWidth=i.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 MarginViewOverlays extends ViewOverlays{constructor(e){super(e);const t=this._context.configuration.options,i=t.get(143);this._contentLeft=i.contentLeft,this.domNode.setClassName("margin-view-overlays"),this.domNode.setWidth(1),applyFontInfo(this.domNode,t.get(50))}onConfigurationChanged(e){const t=this._context.configuration.options;applyFontInfo(this.domNode,t.get(50));const i=t.get(143);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 ViewContentWidgets extends ViewPart{constructor(e,t){super(e),this._viewDomNode=t,this._widgets={},this.domNode=createFastDomNode(document.createElement("div")),PartFingerprints.write(this.domNode,1),this.domNode.setClassName("contentWidgets"),this.domNode.setPosition("absolute"),this.domNode.setTop(0),this.overflowingContentWidgetsDomNode=createFastDomNode(document.createElement("div")),PartFingerprints.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){return this._updateAnchorsViewPositions(),!0}onLinesChanged(e){return this._updateAnchorsViewPositions(),!0}onLinesDeleted(e){return this._updateAnchorsViewPositions(),!0}onLinesInserted(e){return this._updateAnchorsViewPositions(),!0}onScrollChanged(e){return!0}onZonesChanged(e){return!0}_updateAnchorsViewPositions(){const e=Object.keys(this._widgets);for(const t of e)this._widgets[t].updateAnchorViewPosition()}addWidget(e){const t=new Widget(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,n,r){this._widgets[e.getId()].setPosition(t,i,n,r),this.setShouldRender()}removeWidget(e){const t=e.getId();if(this._widgets.hasOwnProperty(t)){const i=this._widgets[t];delete this._widgets[t];const n=i.domNode.domNode;n.parentNode.removeChild(n),n.removeAttribute("monaco-visible-content-widget"),this.setShouldRender()}}shouldSuppressMouseDownOnWidget(e){return this._widgets.hasOwnProperty(e)?this._widgets[e].suppressMouseDown:!1}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 Widget{constructor(e,t,i){this._primaryAnchor=new PositionPair(null,null),this._secondaryAnchor=new PositionPair(null,null),this._context=e,this._viewDomNode=t,this._actual=i,this.domNode=createFastDomNode(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,r=n.get(143);this._fixedOverflowWidgets=n.get(42),this._contentWidth=r.contentWidth,this._contentLeft=r.contentLeft,this._lineHeight=n.get(66),this._affinity=null,this._preference=[],this._cachedDomNodeOffsetWidth=-1,this._cachedDomNodeOffsetHeight=-1,this._maxWidth=this._getMaxWidth(),this._isVisible=!1,this._renderData=null,this.domNode.setPosition(this._fixedOverflowWidgets&&this.allowEditorOverflow?"fixed":"absolute"),this.domNode.setDisplay("none"),this.domNode.setVisibility("hidden"),this.domNode.setAttribute("widgetId",this.id),this.domNode.setMaxWidth(this._maxWidth)}onConfigurationChanged(e){const t=this._context.configuration.options;if(this._lineHeight=t.get(66),e.hasChanged(143)){const i=t.get(143);this._contentLeft=i.contentLeft,this._contentWidth=i.contentWidth,this._maxWidth=this._getMaxWidth()}}updateAnchorViewPosition(){this._setPosition(this._affinity,this._primaryAnchor.modelPosition,this._secondaryAnchor.modelPosition)}_setPosition(e,t,i){this._affinity=e,this._primaryAnchor=n(t,this._context.viewModel,this._affinity),this._secondaryAnchor=n(i,this._context.viewModel,this._affinity);function n(r,s,a){if(!r)return new PositionPair(null,null);const l=s.model.validatePosition(r);if(s.coordinatesConverter.modelPositionIsVisible(l)){const d=s.coordinatesConverter.convertModelPositionToViewPosition(l,a??void 0);return new PositionPair(r,d)}return new PositionPair(r,null)}}_getMaxWidth(){const e=this.domNode.domNode.ownerDocument,t=e.defaultView;return this.allowEditorOverflow?(t==null?void 0:t.innerWidth)||e.documentElement.offsetWidth||e.body.offsetWidth:this._contentWidth}setPosition(e,t,i,n){this._setPosition(n,e,t),this._preference=i,this._primaryAnchor.viewPosition&&this._preference&&this._preference.length>0?this.domNode.setDisplay("block"):this.domNode.setDisplay("none"),this._cachedDomNodeOffsetWidth=-1,this._cachedDomNodeOffsetHeight=-1}_layoutBoxInViewport(e,t,i,n){const r=e.top,s=r,a=e.top+e.height,l=n.viewportHeight-a,d=r-i,c=s>=i,u=a,g=l>=i;let f=e.left;return f+t>n.scrollLeft+n.viewportWidth&&(f=n.scrollLeft+n.viewportWidth-t),f<n.scrollLeft&&(f=n.scrollLeft),{fitsAbove:c,aboveTop:d,fitsBelow:g,belowTop:u,left:f}}_layoutHorizontalSegmentInPage(e,t,i,n){var r;const l=Math.max(15,t.left-n),d=Math.min(t.left+t.width+n,e.width-15),u=this._viewDomNode.domNode.ownerDocument.defaultView;let g=t.left+i-((r=u==null?void 0:u.scrollX)!==null&&r!==void 0?r:0);if(g+n>d){const f=g-(d-n);g-=f,i-=f}if(g<l){const f=g-l;g-=f,i-=f}return[i,g]}_layoutBoxInPage(e,t,i,n){var r,s;const a=e.top-i,l=e.top+e.height,d=getDomNodePagePosition(this._viewDomNode.domNode),c=this._viewDomNode.domNode.ownerDocument,u=c.defaultView,g=d.top+a-((r=u==null?void 0:u.scrollY)!==null&&r!==void 0?r:0),f=d.top+l-((s=u==null?void 0:u.scrollY)!==null&&s!==void 0?s:0),p=getClientArea(c.body),[m,b]=this._layoutHorizontalSegmentInPage(p,d,e.left-n.scrollLeft+this._contentLeft,t),_=22,C=22,S=g>=_,y=f+i<=p.height-C;return this._fixedOverflowWidgets?{fitsAbove:S,aboveTop:Math.max(g,_),fitsBelow:y,belowTop:f,left:b}:{fitsAbove:S,aboveTop:a,fitsBelow:y,belowTop:l,left:m}}_prepareRenderWidgetAtExactPositionOverflowing(e){return new Coordinate(e.top,e.left+this._contentLeft)}_getAnchorsCoordinates(e){var t,i;const n=a(this._primaryAnchor.viewPosition,this._affinity,this._lineHeight),r=((t=this._secondaryAnchor.viewPosition)===null||t===void 0?void 0:t.lineNumber)===((i=this._primaryAnchor.viewPosition)===null||i===void 0?void 0:i.lineNumber)?this._secondaryAnchor.viewPosition:null,s=a(r,this._affinity,this._lineHeight);return{primary:n,secondary:s};function a(l,d,c){if(!l)return null;const u=e.visibleRangeForPosition(l);if(!u)return null;const g=l.column===1&&d===3?0:u.left,f=e.getVerticalOffsetForLineNumber(l.lineNumber)-e.scrollTop;return new AnchorCoordinate(f,g,c)}}_reduceAnchorCoordinates(e,t,i){if(!t)return e;const n=this._context.configuration.options.get(50);let r=t.left;return r<e.left?r=Math.max(r,e.left-i+n.typicalFullwidthCharacterWidth):r=Math.min(r,e.left+i-n.typicalFullwidthCharacterWidth),new AnchorCoordinate(e.top,r,e.height)}_prepareRenderWidget(e){if(!this._preference||this._preference.length===0)return null;const{primary:t,secondary:i}=this._getAnchorsCoordinates(e);if(!t)return null;if(this._cachedDomNodeOffsetWidth===-1||this._cachedDomNodeOffsetHeight===-1){let s=null;if(typeof this._actual.beforeRender=="function"&&(s=safeInvoke(this._actual.beforeRender,this._actual)),s)this._cachedDomNodeOffsetWidth=s.width,this._cachedDomNodeOffsetHeight=s.height;else{const l=this.domNode.domNode.getBoundingClientRect();this._cachedDomNodeOffsetWidth=Math.round(l.width),this._cachedDomNodeOffsetHeight=Math.round(l.height)}}const n=this._reduceAnchorCoordinates(t,i,this._cachedDomNodeOffsetWidth);let r;this.allowEditorOverflow?r=this._layoutBoxInPage(n,this._cachedDomNodeOffsetWidth,this._cachedDomNodeOffsetHeight,e):r=this._layoutBoxInViewport(n,this._cachedDomNodeOffsetWidth,this._cachedDomNodeOffsetHeight,e);for(let s=1;s<=2;s++)for(const a of this._preference)if(a===1){if(!r)return null;if(s===2||r.fitsAbove)return{coordinate:new Coordinate(r.aboveTop,r.left),position:1}}else if(a===2){if(!r)return null;if(s===2||r.fitsBelow)return{coordinate:new Coordinate(r.belowTop,r.left),position:2}}else return this.allowEditorOverflow?{coordinate:this._prepareRenderWidgetAtExactPositionOverflowing(new Coordinate(n.top,n.left)),position:0}:{coordinate:new Coordinate(n.top,n.left),position:0};return null}onBeforeRender(e){!this._primaryAnchor.viewPosition||!this._preference||this._primaryAnchor.viewPosition.lineNumber<e.startLineNumber||this._primaryAnchor.viewPosition.lineNumber>e.endLineNumber||this.domNode.setMaxWidth(this._maxWidth)}prepareRender(e){this._renderData=this._prepareRenderWidget(e)}render(e){if(!this._renderData){this._isVisible&&(this.domNode.removeAttribute("monaco-visible-content-widget"),this._isVisible=!1,this.domNode.setVisibility("hidden")),typeof this._actual.afterRender=="function"&&safeInvoke(this._actual.afterRender,this._actual,null);return}this.allowEditorOverflow?(this.domNode.setTop(this._renderData.coordinate.top),this.domNode.setLeft(this._renderData.coordinate.left)):(this.domNode.setTop(this._renderData.coordinate.top+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),typeof this._actual.afterRender=="function"&&safeInvoke(this._actual.afterRender,this._actual,this._renderData.position)}}class PositionPair{constructor(e,t){this.modelPosition=e,this.viewPosition=t}}class Coordinate{constructor(e,t){this.top=e,this.left=t,this._coordinateBrand=void 0}}class AnchorCoordinate{constructor(e,t,i){this.top=e,this.left=t,this.height=i,this._anchorCoordinateBrand=void 0}}function safeInvoke(o,e,...t){try{return o.call(e,...t)}catch{return null}}class AbstractLineHighlightOverlay extends DynamicViewOverlay{constructor(e){super(),this._context=e;const t=this._context.configuration.options,i=t.get(143);this._lineHeight=t.get(66),this._renderLineHighlight=t.get(95),this._renderLineHighlightOnlyWhenFocus=t.get(96),this._contentLeft=i.contentLeft,this._contentWidth=i.contentWidth,this._selectionIsEmpty=!0,this._focused=!1,this._cursorLineNumbers=[1],this._selections=[new Selection$1(1,1,1,1)],this._renderData=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}_readFromSelections(){let e=!1;const t=this._selections.map(n=>n.positionLineNumber);t.sort((n,r)=>n-r),equals$2(this._cursorLineNumbers,t)||(this._cursorLineNumbers=t,e=!0);const i=this._selections.every(n=>n.isEmpty());return this._selectionIsEmpty!==i&&(this._selectionIsEmpty=i,e=!0),e}onThemeChanged(e){return this._readFromSelections()}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(143);return this._lineHeight=t.get(66),this._renderLineHighlight=t.get(95),this._renderLineHighlightOnlyWhenFocus=t.get(96),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):!1}prepareRender(e){if(!this._shouldRenderThis()){this._renderData=null;return}const t=this._renderOne(e),i=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber,r=this._cursorLineNumbers.length;let s=0;const a=[];for(let l=i;l<=n;l++){const d=l-i;for(;s<r&&this._cursorLineNumbers[s]<l;)s++;s<r&&this._cursorLineNumbers[s]===l?a[d]=t:a[d]=""}this._renderData=a}render(e,t){if(!this._renderData)return"";const i=t-e;return i>=this._renderData.length?"":this._renderData[i]}_shouldRenderInMargin(){return(this._renderLineHighlight==="gutter"||this._renderLineHighlight==="all")&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}_shouldRenderInContent(){return(this._renderLineHighlight==="line"||this._renderLineHighlight==="all")&&this._selectionIsEmpty&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}}class CurrentLineHighlightOverlay extends AbstractLineHighlightOverlay{_renderOne(e){return`<div class="${"current-line"+(this._shouldRenderOther()?" current-line-both":"")}" style="width:${Math.max(e.scrollWidth,this._contentWidth)}px; height:${this._lineHeight}px;"></div>`}_shouldRenderThis(){return this._shouldRenderInContent()}_shouldRenderOther(){return this._shouldRenderInMargin()}}class CurrentLineMarginHighlightOverlay extends AbstractLineHighlightOverlay{_renderOne(e){return`<div class="${"current-line"+(this._shouldRenderInMargin()?" current-line-margin":"")+(this._shouldRenderOther()?" current-line-margin-both":"")}" style="width:${this._contentLeft}px; height:${this._lineHeight}px;"></div>`}_shouldRenderThis(){return!0}_shouldRenderOther(){return this._shouldRenderInContent()}}registerThemingParticipant((o,e)=>{const t=o.getColor(editorLineHighlight);if(t&&(e.addRule(`.monaco-editor .view-overlays .current-line { background-color: ${t}; }`),e.addRule(`.monaco-editor .margin-view-overlays .current-line-margin { background-color: ${t}; border: none; }`)),!t||t.isTransparent()||o.defines(editorLineHighlightBorder)){const i=o.getColor(editorLineHighlightBorder);i&&(e.addRule(`.monaco-editor .view-overlays .current-line { border: 2px solid ${i}; }`),e.addRule(`.monaco-editor .margin-view-overlays .current-line-margin { border: 2px solid ${i}; }`),isHighContrast(o.type)&&(e.addRule(".monaco-editor .view-overlays .current-line { border-width: 1px; }"),e.addRule(".monaco-editor .margin-view-overlays .current-line-margin { border-width: 1px; }")))}});class DecorationsOverlay extends DynamicViewOverlay{constructor(e){super(),this._context=e;const t=this._context.configuration.options;this._lineHeight=t.get(66),this._typicalHalfwidthCharacterWidth=t.get(50).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(66),this._typicalHalfwidthCharacterWidth=t.get(50).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 l=0,d=t.length;l<d;l++){const c=t[l];c.options.className&&(i[n++]=c)}i=i.sort((l,d)=>{if(l.options.zIndex<d.options.zIndex)return-1;if(l.options.zIndex>d.options.zIndex)return 1;const c=l.options.className,u=d.options.className;return c<u?-1:c>u?1:Range$2.compareRangesUsingStarts(l.range,d.range)});const r=e.visibleRange.startLineNumber,s=e.visibleRange.endLineNumber,a=[];for(let l=r;l<=s;l++){const d=l-r;a[d]=""}this._renderWholeLineDecorations(e,i,a),this._renderNormalDecorations(e,i,a),this._renderResult=a}_renderWholeLineDecorations(e,t,i){const n=String(this._lineHeight),r=e.visibleRange.startLineNumber,s=e.visibleRange.endLineNumber;for(let a=0,l=t.length;a<l;a++){const d=t[a];if(!d.options.isWholeLine)continue;const c='<div class="cdr '+d.options.className+'" style="left:0;width:100%;height:'+n+'px;"></div>',u=Math.max(d.range.startLineNumber,r),g=Math.min(d.range.endLineNumber,s);for(let f=u;f<=g;f++){const p=f-r;i[p]+=c}}}_renderNormalDecorations(e,t,i){var n;const r=String(this._lineHeight),s=e.visibleRange.startLineNumber;let a=null,l=!1,d=null,c=!1;for(let u=0,g=t.length;u<g;u++){const f=t[u];if(f.options.isWholeLine)continue;const p=f.options.className,m=!!f.options.showIfCollapsed;let b=f.range;if(m&&b.endColumn===1&&b.endLineNumber!==b.startLineNumber&&(b=new Range$2(b.startLineNumber,b.startColumn,b.endLineNumber-1,this._context.viewModel.getLineMaxColumn(b.endLineNumber-1))),a===p&&l===m&&Range$2.areIntersectingOrTouching(d,b)){d=Range$2.plusRange(d,b);continue}a!==null&&this._renderNormalDecoration(e,d,a,c,l,r,s,i),a=p,l=m,d=b,c=(n=f.options.shouldFillLineOnLineBreak)!==null&&n!==void 0?n:!1}a!==null&&this._renderNormalDecoration(e,d,a,c,l,r,s,i)}_renderNormalDecoration(e,t,i,n,r,s,a,l){const d=e.linesVisibleRangesForRange(t,i==="findMatch");if(d)for(let c=0,u=d.length;c<u;c++){const g=d[c];if(g.outsideRenderedLine)continue;const f=g.lineNumber-a;if(r&&g.ranges.length===1){const p=g.ranges[0];if(p.width<this._typicalHalfwidthCharacterWidth){const m=Math.round(p.left+p.width/2),b=Math.max(0,Math.round(m-this._typicalHalfwidthCharacterWidth/2));g.ranges[0]=new HorizontalRange(b,this._typicalHalfwidthCharacterWidth)}}for(let p=0,m=g.ranges.length;p<m;p++){const b=n&&g.continuesOnNextLine&&m===1,_=g.ranges[p],C='<div class="cdr '+i+'" style="left:'+String(_.left)+(b?"px;width:100%;height:":"px;width:"+String(_.width)+"px;height:")+s+'px;"></div>';l[f]+=C}}}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}class EditorScrollbar extends ViewPart{constructor(e,t,i,n){super(e);const r=this._context.configuration.options,s=r.get(102),a=r.get(74),l=r.get(40),d=r.get(105),c={listenOnDomNode:i.domNode,className:"editor-scrollable "+getThemeTypeSelector(e.theme.type),useShadows:!1,lazyRender:!0,vertical:s.vertical,horizontal:s.horizontal,verticalHasArrows:s.verticalHasArrows,horizontalHasArrows:s.horizontalHasArrows,verticalScrollbarSize:s.verticalScrollbarSize,verticalSliderSize:s.verticalSliderSize,horizontalScrollbarSize:s.horizontalScrollbarSize,horizontalSliderSize:s.horizontalSliderSize,handleMouseWheel:s.handleMouseWheel,alwaysConsumeMouseWheel:s.alwaysConsumeMouseWheel,arrowSize:s.arrowSize,mouseWheelScrollSensitivity:a,fastScrollSensitivity:l,scrollPredominantAxis:d,scrollByPage:s.scrollByPage};this.scrollbar=this._register(new SmoothScrollableElement(t.domNode,c,this._context.viewLayout.getScrollable())),PartFingerprints.write(this.scrollbar.getDomNode(),5),this.scrollbarDomNode=createFastDomNode(this.scrollbar.getDomNode()),this.scrollbarDomNode.setPosition("absolute"),this._setLayout();const u=(g,f,p)=>{const m={};{const b=g.scrollTop;b&&(m.scrollTop=this._context.viewLayout.getCurrentScrollTop()+b,g.scrollTop=0)}if(p){const b=g.scrollLeft;b&&(m.scrollLeft=this._context.viewLayout.getCurrentScrollLeft()+b,g.scrollLeft=0)}this._context.viewModel.viewLayout.setScrollPosition(m,1)};this._register(addDisposableListener(i.domNode,"scroll",g=>u(i.domNode,!0,!0))),this._register(addDisposableListener(t.domNode,"scroll",g=>u(t.domNode,!0,!1))),this._register(addDisposableListener(n.domNode,"scroll",g=>u(n.domNode,!0,!1))),this._register(addDisposableListener(this.scrollbarDomNode.domNode,"scroll",g=>u(this.scrollbarDomNode.domNode,!0,!1)))}dispose(){super.dispose()}_setLayout(){const e=this._context.configuration.options,t=e.get(143);this.scrollbarDomNode.setLeft(t.contentLeft),e.get(72).side==="right"?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}delegateVerticalScrollbarPointerDown(e){this.scrollbar.delegateVerticalScrollbarPointerDown(e)}delegateScrollFromMouseWheelEvent(e){this.scrollbar.delegateScrollFromMouseWheelEvent(e)}onConfigurationChanged(e){if(e.hasChanged(102)||e.hasChanged(74)||e.hasChanged(40)){const t=this._context.configuration.options,i=t.get(102),n=t.get(74),r=t.get(40),s=t.get(105),a={vertical:i.vertical,horizontal:i.horizontal,verticalScrollbarSize:i.verticalScrollbarSize,horizontalScrollbarSize:i.horizontalScrollbarSize,scrollByPage:i.scrollByPage,handleMouseWheel:i.handleMouseWheel,mouseWheelScrollSensitivity:n,fastScrollSensitivity:r,scrollPredominantAxis:s};this.scrollbar.updateOptions(a)}return e.hasChanged(143)&&this._setLayout(),!0}onScrollChanged(e){return!0}onThemeChanged(e){return this.scrollbar.updateClassName("editor-scrollable "+getThemeTypeSelector(this._context.theme.type)),!0}prepareRender(e){}render(e){this.scrollbar.renderNow()}}class TextModelPart extends Disposable{constructor(){super(...arguments),this._isDisposed=!1}dispose(){super.dispose(),this._isDisposed=!0}assertNotDisposed(){if(this._isDisposed)throw new Error("TextModelPart is disposed!")}}function computeIndentLevel(o,e){let t=0,i=0;const n=o.length;for(;i<n;){const r=o.charCodeAt(i);if(r===32)t++;else if(r===9)t=t-t%e+e;else break;i++}return i===n?-1:t}var HorizontalGuidesState;(function(o){o[o.Disabled=0]="Disabled",o[o.EnabledForActive=1]="EnabledForActive",o[o.Enabled=2]="Enabled"})(HorizontalGuidesState||(HorizontalGuidesState={}));class IndentGuide{constructor(e,t,i,n,r,s){if(this.visibleColumn=e,this.column=t,this.className=i,this.horizontalLine=n,this.forWrappedLinesAfterColumn=r,this.forWrappedLinesBeforeOrAtColumn=s,e!==-1==(t!==-1))throw new Error}}class IndentGuideHorizontalLine{constructor(e,t){this.top=e,this.endColumn=t}}class GuidesTextModelPart extends TextModelPart{constructor(e,t){super(),this.textModel=e,this.languageConfigurationService=t}getLanguageConfiguration(e){return this.languageConfigurationService.getLanguageConfiguration(e)}_computeIndentLevel(e){return computeIndentLevel(this.textModel.getLineContent(e+1),this.textModel.getOptions().tabSize)}getActiveIndentGuide(e,t,i){this.assertNotDisposed();const n=this.textModel.getLineCount();if(e<1||e>n)throw new BugIndicatingError("Illegal value for lineNumber");const r=this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules,s=!!(r&&r.offSide);let a=-2,l=-1,d=-2,c=-1;const u=L=>{if(a!==-1&&(a===-2||a>L-1)){a=-1,l=-1;for(let I=L-2;I>=0;I--){const D=this._computeIndentLevel(I);if(D>=0){a=I,l=D;break}}}if(d===-2){d=-1,c=-1;for(let I=L;I<n;I++){const D=this._computeIndentLevel(I);if(D>=0){d=I,c=D;break}}}};let g=-2,f=-1,p=-2,m=-1;const b=L=>{if(g===-2){g=-1,f=-1;for(let I=L-2;I>=0;I--){const D=this._computeIndentLevel(I);if(D>=0){g=I,f=D;break}}}if(p!==-1&&(p===-2||p<L-1)){p=-1,m=-1;for(let I=L;I<n;I++){const D=this._computeIndentLevel(I);if(D>=0){p=I,m=D;break}}}};let _=0,C=!0,S=0,y=!0,E=0,x=0;for(let L=0;C||y;L++){const I=e-L,D=e+L;L>1&&(I<1||I<t)&&(C=!1),L>1&&(D>n||D>i)&&(y=!1),L>5e4&&(C=!1,y=!1);let N=-1;if(C&&I>=1){const R=this._computeIndentLevel(I-1);R>=0?(d=I-1,c=R,N=Math.ceil(R/this.textModel.getOptions().indentSize)):(u(I),N=this._getIndentLevelForWhitespaceLine(s,l,c))}let F=-1;if(y&&D<=n){const R=this._computeIndentLevel(D-1);R>=0?(g=D-1,f=R,F=Math.ceil(R/this.textModel.getOptions().indentSize)):(b(D),F=this._getIndentLevelForWhitespaceLine(s,f,m))}if(L===0){x=N;continue}if(L===1){if(D<=n&&F>=0&&x+1===F){C=!1,_=D,S=D,E=F;continue}if(I>=1&&N>=0&&N-1===x){y=!1,_=I,S=I,E=N;continue}if(_=e,S=e,E=x,E===0)return{startLineNumber:_,endLineNumber:S,indent:E}}C&&(N>=E?_=I:C=!1),y&&(F>=E?S=D:y=!1)}return{startLineNumber:_,endLineNumber:S,indent:E}}getLinesBracketGuides(e,t,i,n){var r;const s=[];for(let g=e;g<=t;g++)s.push([]);const a=!0,l=this.textModel.bracketPairs.getBracketPairsInRangeWithMinIndentation(new Range$2(e,1,t,this.textModel.getLineMaxColumn(t))).toArray();let d;if(i&&l.length>0){const g=(e<=i.lineNumber&&i.lineNumber<=t?l:this.textModel.bracketPairs.getBracketPairsInRange(Range$2.fromPositions(i)).toArray()).filter(f=>Range$2.strictContainsPosition(f.range,i));d=(r=findLast(g,f=>a))===null||r===void 0?void 0:r.range}const c=this.textModel.getOptions().bracketPairColorizationOptions.independentColorPoolPerBracketType,u=new BracketPairGuidesClassNames;for(const g of l){if(!g.closingBracketRange)continue;const f=d&&g.range.equalsRange(d);if(!f&&!n.includeInactive)continue;const p=u.getInlineClassName(g.nestingLevel,g.nestingLevelOfEqualBracketType,c)+(n.highlightActive&&f?" "+u.activeClassName:""),m=g.openingBracketRange.getStartPosition(),b=g.closingBracketRange.getStartPosition(),_=n.horizontalGuides===HorizontalGuidesState.Enabled||n.horizontalGuides===HorizontalGuidesState.EnabledForActive&&f;if(g.range.startLineNumber===g.range.endLineNumber){_&&s[g.range.startLineNumber-e].push(new IndentGuide(-1,g.openingBracketRange.getEndPosition().column,p,new IndentGuideHorizontalLine(!1,b.column),-1,-1));continue}const C=this.getVisibleColumnFromPosition(b),S=this.getVisibleColumnFromPosition(g.openingBracketRange.getStartPosition()),y=Math.min(S,C,g.minVisibleColumnIndentation+1);let E=!1;firstNonWhitespaceIndex(this.textModel.getLineContent(g.closingBracketRange.startLineNumber))<g.closingBracketRange.startColumn-1&&(E=!0);const I=Math.max(m.lineNumber,e),D=Math.min(b.lineNumber,t),N=E?1:0;for(let F=I;F<D+N;F++)s[F-e].push(new IndentGuide(y,-1,p,null,F===m.lineNumber?m.column:-1,F===b.lineNumber?b.column:-1));_&&(m.lineNumber>=e&&S>y&&s[m.lineNumber-e].push(new IndentGuide(y,-1,p,new IndentGuideHorizontalLine(!1,m.column),-1,-1)),b.lineNumber<=t&&C>y&&s[b.lineNumber-e].push(new IndentGuide(y,-1,p,new IndentGuideHorizontalLine(!E,b.column),-1,-1)))}for(const g of s)g.sort((f,p)=>f.visibleColumn-p.visibleColumn);return s}getVisibleColumnFromPosition(e){return CursorColumns.visibleColumnFromColumn(this.textModel.getLineContent(e.lineNumber),e.column,this.textModel.getOptions().tabSize)+1}getLinesIndentGuides(e,t){this.assertNotDisposed();const i=this.textModel.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=this.textModel.getOptions(),r=this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules,s=!!(r&&r.offSide),a=new Array(t-e+1);let l=-2,d=-1,c=-2,u=-1;for(let g=e;g<=t;g++){const f=g-e,p=this._computeIndentLevel(g-1);if(p>=0){l=g-1,d=p,a[f]=Math.ceil(p/n.indentSize);continue}if(l===-2){l=-1,d=-1;for(let m=g-2;m>=0;m--){const b=this._computeIndentLevel(m);if(b>=0){l=m,d=b;break}}}if(c!==-1&&(c===-2||c<g-1)){c=-1,u=-1;for(let m=g;m<i;m++){const b=this._computeIndentLevel(m);if(b>=0){c=m,u=b;break}}}a[f]=this._getIndentLevelForWhitespaceLine(s,d,u)}return a}_getIndentLevelForWhitespaceLine(e,t,i){const n=this.textModel.getOptions();return t===-1||i===-1?0:t<i?1+Math.floor(t/n.indentSize):t===i||e?Math.ceil(i/n.indentSize):1+Math.floor(i/n.indentSize)}}class BracketPairGuidesClassNames{constructor(){this.activeClassName="indent-active"}getInlineClassName(e,t,i){return this.getInlineClassNameOfLevel(i?t:e)}getInlineClassNameOfLevel(e){return`bracket-indent-guide lvl-${e%30}`}}class IndentGuidesOverlay extends DynamicViewOverlay{constructor(e){super(),this._context=e,this._primaryPosition=null;const t=this._context.configuration.options,i=t.get(144),n=t.get(50);this._lineHeight=t.get(66),this._spaceWidth=n.spaceWidth,this._maxIndentLeft=i.wrappingColumn===-1?-1:i.wrappingColumn*n.typicalHalfwidthCharacterWidth,this._bracketPairGuideOptions=t.get(16),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(144),n=t.get(50);return this._lineHeight=t.get(66),this._spaceWidth=n.spaceWidth,this._maxIndentLeft=i.wrappingColumn===-1?-1:i.wrappingColumn*n.typicalHalfwidthCharacterWidth,this._bracketPairGuideOptions=t.get(16),!0}onCursorStateChanged(e){var t;const n=e.selections[0].getPosition();return!((t=this._primaryPosition)===null||t===void 0)&&t.equals(n)?!1:(this._primaryPosition=n,!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){var t,i,n,r;if(!this._bracketPairGuideOptions.indentation&&this._bracketPairGuideOptions.bracketPairs===!1){this._renderResult=null;return}const s=e.visibleRange.startLineNumber,a=e.visibleRange.endLineNumber,l=e.scrollWidth,d=this._lineHeight,c=this._primaryPosition,u=this.getGuidesByLine(s,Math.min(a+1,this._context.viewModel.getLineCount()),c),g=[];for(let f=s;f<=a;f++){const p=f-s,m=u[p];let b="";const _=(i=(t=e.visibleRangeForPosition(new Position$1(f,1)))===null||t===void 0?void 0:t.left)!==null&&i!==void 0?i:0;for(const C of m){const S=C.column===-1?_+(C.visibleColumn-1)*this._spaceWidth:e.visibleRangeForPosition(new Position$1(f,C.column)).left;if(S>l||this._maxIndentLeft>0&&S>this._maxIndentLeft)break;const y=C.horizontalLine?C.horizontalLine.top?"horizontal-top":"horizontal-bottom":"vertical",E=C.horizontalLine?((r=(n=e.visibleRangeForPosition(new Position$1(f,C.horizontalLine.endColumn)))===null||n===void 0?void 0:n.left)!==null&&r!==void 0?r:S+this._spaceWidth)-S:this._spaceWidth;b+=`<div class="core-guide ${C.className} ${y}" style="left:${S}px;height:${d}px;width:${E}px"></div>`}g[p]=b}this._renderResult=g}getGuidesByLine(e,t,i){const n=this._bracketPairGuideOptions.bracketPairs!==!1?this._context.viewModel.getBracketGuidesInRangeByLine(e,t,i,{highlightActive:this._bracketPairGuideOptions.highlightActiveBracketPair,horizontalGuides:this._bracketPairGuideOptions.bracketPairsHorizontal===!0?HorizontalGuidesState.Enabled:this._bracketPairGuideOptions.bracketPairsHorizontal==="active"?HorizontalGuidesState.EnabledForActive:HorizontalGuidesState.Disabled,includeInactive:this._bracketPairGuideOptions.bracketPairs===!0}):null,r=this._bracketPairGuideOptions.indentation?this._context.viewModel.getLinesIndentGuides(e,t):null;let s=0,a=0,l=0;if(this._bracketPairGuideOptions.highlightActiveIndentation!==!1&&i){const u=this._context.viewModel.getActiveIndentGuide(i.lineNumber,e,t);s=u.startLineNumber,a=u.endLineNumber,l=u.indent}const{indentSize:d}=this._context.viewModel.model.getOptions(),c=[];for(let u=e;u<=t;u++){const g=new Array;c.push(g);const f=n?n[u-e]:[],p=new ArrayQueue(f),m=r?r[u-e]:0;for(let b=1;b<=m;b++){const _=(b-1)*d+1,C=(this._bracketPairGuideOptions.highlightActiveIndentation==="always"||f.length===0)&&s<=u&&u<=a&&b===l;g.push(...p.takeWhile(y=>y.visibleColumn<_)||[]);const S=p.peek();(!S||S.visibleColumn!==_||S.horizontalLine)&&g.push(new IndentGuide(_,-1,`core-guide-indent lvl-${(b-1)%30}`+(C?" indent-active":""),null,-1,-1))}g.push(...p.takeWhile(b=>!0)||[])}return c}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}function transparentToUndefined(o){if(!(o&&o.isTransparent()))return o}registerThemingParticipant((o,e)=>{const t=[{bracketColor:editorBracketHighlightingForeground1,guideColor:editorBracketPairGuideBackground1,guideColorActive:editorBracketPairGuideActiveBackground1},{bracketColor:editorBracketHighlightingForeground2,guideColor:editorBracketPairGuideBackground2,guideColorActive:editorBracketPairGuideActiveBackground2},{bracketColor:editorBracketHighlightingForeground3,guideColor:editorBracketPairGuideBackground3,guideColorActive:editorBracketPairGuideActiveBackground3},{bracketColor:editorBracketHighlightingForeground4,guideColor:editorBracketPairGuideBackground4,guideColorActive:editorBracketPairGuideActiveBackground4},{bracketColor:editorBracketHighlightingForeground5,guideColor:editorBracketPairGuideBackground5,guideColorActive:editorBracketPairGuideActiveBackground5},{bracketColor:editorBracketHighlightingForeground6,guideColor:editorBracketPairGuideBackground6,guideColorActive:editorBracketPairGuideActiveBackground6}],i=new BracketPairGuidesClassNames,n=[{indentColor:editorIndentGuide1,indentColorActive:editorActiveIndentGuide1},{indentColor:editorIndentGuide2,indentColorActive:editorActiveIndentGuide2},{indentColor:editorIndentGuide3,indentColorActive:editorActiveIndentGuide3},{indentColor:editorIndentGuide4,indentColorActive:editorActiveIndentGuide4},{indentColor:editorIndentGuide5,indentColorActive:editorActiveIndentGuide5},{indentColor:editorIndentGuide6,indentColorActive:editorActiveIndentGuide6}],r=t.map(a=>{var l,d;const c=o.getColor(a.bracketColor),u=o.getColor(a.guideColor),g=o.getColor(a.guideColorActive),f=transparentToUndefined((l=transparentToUndefined(u))!==null&&l!==void 0?l:c==null?void 0:c.transparent(.3)),p=transparentToUndefined((d=transparentToUndefined(g))!==null&&d!==void 0?d:c);if(!(!f||!p))return{guideColor:f,guideColorActive:p}}).filter(isDefined),s=n.map(a=>{const l=o.getColor(a.indentColor),d=o.getColor(a.indentColorActive),c=transparentToUndefined(l),u=transparentToUndefined(d);if(!(!c||!u))return{indentColor:c,indentColorActive:u}}).filter(isDefined);if(r.length>0){for(let a=0;a<30;a++){const l=r[a%r.length];e.addRule(`.monaco-editor .${i.getInlineClassNameOfLevel(a).replace(/ /g,".")} { --guide-color: ${l.guideColor}; --guide-color-active: ${l.guideColorActive}; }`)}e.addRule(".monaco-editor .vertical { box-shadow: 1px 0 0 0 var(--guide-color) inset; }"),e.addRule(".monaco-editor .horizontal-top { border-top: 1px solid var(--guide-color); }"),e.addRule(".monaco-editor .horizontal-bottom { border-bottom: 1px solid var(--guide-color); }"),e.addRule(`.monaco-editor .vertical.${i.activeClassName} { box-shadow: 1px 0 0 0 var(--guide-color-active) inset; }`),e.addRule(`.monaco-editor .horizontal-top.${i.activeClassName} { border-top: 1px solid var(--guide-color-active); }`),e.addRule(`.monaco-editor .horizontal-bottom.${i.activeClassName} { border-bottom: 1px solid var(--guide-color-active); }`)}if(s.length>0){for(let a=0;a<30;a++){const l=s[a%s.length];e.addRule(`.monaco-editor .lines-content .core-guide-indent.lvl-${a} { --indent-color: ${l.indentColor}; --indent-color-active: ${l.indentColorActive}; }`)}e.addRule(".monaco-editor .lines-content .core-guide-indent { box-shadow: 1px 0 0 0 var(--indent-color) inset; }"),e.addRule(".monaco-editor .lines-content .core-guide-indent.indent-active { box-shadow: 1px 0 0 0 var(--indent-color-active) inset; }")}});class DomReadingContext{get didDomLayout(){return this._didDomLayout}readClientRect(){if(!this._clientRectRead){this._clientRectRead=!0;const e=this._domNode.getBoundingClientRect();this.markDidDomLayout(),this._clientRectDeltaLeft=e.left,this._clientRectScale=e.width/this._domNode.offsetWidth}}get clientRectDeltaLeft(){return this._clientRectRead||this.readClientRect(),this._clientRectDeltaLeft}get clientRectScale(){return this._clientRectRead||this.readClientRect(),this._clientRectScale}constructor(e,t){this._domNode=e,this.endNode=t,this._didDomLayout=!1,this._clientRectDeltaLeft=0,this._clientRectScale=1,this._clientRectRead=!1}markDidDomLayout(){this._didDomLayout=!0}}class LastRenderedData{constructor(){this._currentVisibleRange=new Range$2(1,1,1,1)}getCurrentVisibleRange(){return this._currentVisibleRange}setCurrentVisibleRange(e){this._currentVisibleRange=e}}class HorizontalRevealRangeRequest{constructor(e,t,i,n,r,s,a){this.minimalReveal=e,this.lineNumber=t,this.startColumn=i,this.endColumn=n,this.startScrollTop=r,this.stopScrollTop=s,this.scrollType=a,this.type="range",this.minLineNumber=t,this.maxLineNumber=t}}class HorizontalRevealSelectionsRequest{constructor(e,t,i,n,r){this.minimalReveal=e,this.selections=t,this.startScrollTop=i,this.stopScrollTop=n,this.scrollType=r,this.type="selections";let s=t[0].startLineNumber,a=t[0].endLineNumber;for(let l=1,d=t.length;l<d;l++){const c=t[l];s=Math.min(s,c.startLineNumber),a=Math.max(a,c.endLineNumber)}this.minLineNumber=s,this.maxLineNumber=a}}class ViewLines extends ViewPart{constructor(e,t){super(e),this._linesContent=t,this._textRangeRestingSpot=document.createElement("div"),this._visibleLines=new VisibleLinesCollection(this),this.domNode=this._visibleLines.domNode;const i=this._context.configuration,n=this._context.configuration.options,r=n.get(50),s=n.get(144);this._lineHeight=n.get(66),this._typicalHalfwidthCharacterWidth=r.typicalHalfwidthCharacterWidth,this._isViewportWrapping=s.isViewportWrapping,this._revealHorizontalRightPadding=n.get(99),this._cursorSurroundingLines=n.get(29),this._cursorSurroundingLinesStyle=n.get(30),this._canUseLayerHinting=!n.get(32),this._viewLineOptions=new ViewLineOptions(i,this._context.theme.type),PartFingerprints.write(this.domNode,7),this.domNode.setClassName(`view-lines ${MOUSE_CURSOR_TEXT_CSS_CLASS_NAME}`),applyFontInfo(this.domNode,r),this._maxLineWidth=0,this._asyncUpdateLineWidths=new RunOnceScheduler(()=>{this._updateLineWidthsSlow()},200),this._asyncCheckMonospaceFontAssumptions=new RunOnceScheduler(()=>{this._checkMonospaceFontAssumptions()},2e3),this._lastRenderedData=new LastRenderedData,this._horizontalRevealRequest=null,this._stickyScrollEnabled=n.get(114).enabled,this._maxNumberStickyLines=n.get(114).maxLineCount}dispose(){this._asyncUpdateLineWidths.dispose(),this._asyncCheckMonospaceFontAssumptions.dispose(),super.dispose()}getDomNode(){return this.domNode}createVisibleLine(){return new ViewLine(this._viewLineOptions)}onConfigurationChanged(e){this._visibleLines.onConfigurationChanged(e),e.hasChanged(144)&&(this._maxLineWidth=0);const t=this._context.configuration.options,i=t.get(50),n=t.get(144);return this._lineHeight=t.get(66),this._typicalHalfwidthCharacterWidth=i.typicalHalfwidthCharacterWidth,this._isViewportWrapping=n.isViewportWrapping,this._revealHorizontalRightPadding=t.get(99),this._cursorSurroundingLines=t.get(29),this._cursorSurroundingLinesStyle=t.get(30),this._canUseLayerHinting=!t.get(32),this._stickyScrollEnabled=t.get(114).enabled,this._maxNumberStickyLines=t.get(114).maxLineCount,applyFontInfo(this.domNode,i),this._onOptionsMaybeChanged(),e.hasChanged(143)&&(this._maxLineWidth=0),!0}_onOptionsMaybeChanged(){const e=this._context.configuration,t=new ViewLineOptions(e,this._context.theme.type);if(!this._viewLineOptions.equals(t)){this._viewLineOptions=t;const i=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber();for(let r=i;r<=n;r++)this._visibleLines.getVisibleLine(r).onOptionsChanged(this._viewLineOptions);return!0}return!1}onCursorStateChanged(e){const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();let n=!1;for(let r=t;r<=i;r++)n=this._visibleLines.getVisibleLine(r).onSelectionChanged()||n;return n}onDecorationsChanged(e){{const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();for(let n=t;n<=i;n++)this._visibleLines.getVisibleLine(n).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.minimalReveal,e.range,e.selections,e.verticalType);if(t===-1)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 HorizontalRevealRangeRequest(e.minimalReveal,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 HorizontalRevealSelectionsRequest(e.minimalReveal,e.selections,this._context.viewLayout.getCurrentScrollTop(),i.scrollTop,e.scrollType)):this._horizontalRevealRequest=null;const r=Math.abs(this._context.viewLayout.getCurrentScrollTop()-i.scrollTop)<=this._lineHeight?1:e.scrollType;return this._context.viewModel.viewLayout.setScrollPosition(i,r),!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.viewModel.viewLayout.setMaxLineWidth(this._maxLineWidth),this._visibleLines.onZonesChanged(e)}onThemeChanged(e){return this._onOptionsMaybeChanged()}getPositionFromDOMInfo(e,t){const i=this._getViewLineDomNode(e);if(i===null)return null;const n=this._getLineNumberFor(i);if(n===-1||n<1||n>this._context.viewModel.getLineCount())return null;if(this._context.viewModel.getLineMaxColumn(n)===1)return new Position$1(n,1);const r=this._visibleLines.getStartLineNumber(),s=this._visibleLines.getEndLineNumber();if(n<r||n>s)return null;let a=this._visibleLines.getVisibleLine(n).getColumnOfNodeOffset(e,t);const l=this._context.viewModel.getLineMinColumn(n);return a<l&&(a=l),new Position$1(n,a)}_getViewLineDomNode(e){for(;e&&e.nodeType===1;){if(e.className===ViewLine.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++){const r=this._visibleLines.getVisibleLine(n);if(e===r.getDomNode())return n}return-1}getLineWidth(e){const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();if(e<t||e>i)return-1;const n=new DomReadingContext(this.domNode.domNode,this._textRangeRestingSpot),r=this._visibleLines.getVisibleLine(e).getWidth(n);return this._updateLineWidthsSlowIfDomDidLayout(n),r}linesVisibleRangesForRange(e,t){if(this.shouldRender())return null;const i=e.endLineNumber,n=Range$2.intersectRanges(e,this._lastRenderedData.getCurrentVisibleRange());if(!n)return null;const r=[];let s=0;const a=new DomReadingContext(this.domNode.domNode,this._textRangeRestingSpot);let l=0;t&&(l=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new Position$1(n.startLineNumber,1)).lineNumber);const d=this._visibleLines.getStartLineNumber(),c=this._visibleLines.getEndLineNumber();for(let u=n.startLineNumber;u<=n.endLineNumber;u++){if(u<d||u>c)continue;const g=u===n.startLineNumber?n.startColumn:1,f=u!==n.endLineNumber,p=f?this._context.viewModel.getLineMaxColumn(u):n.endColumn,m=this._visibleLines.getVisibleLine(u).getVisibleRangesForRange(u,g,p,a);if(m){if(t&&u<i){const b=l;l=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new Position$1(u+1,1)).lineNumber,b!==l&&(m.ranges[m.ranges.length-1].width+=this._typicalHalfwidthCharacterWidth)}r[s++]=new LineVisibleRanges(m.outsideRenderedLine,u,HorizontalRange.from(m.ranges),f)}}return this._updateLineWidthsSlowIfDomDidLayout(a),s===0?null:r}_visibleRangesForLineRange(e,t,i){if(this.shouldRender()||e<this._visibleLines.getStartLineNumber()||e>this._visibleLines.getEndLineNumber())return null;const n=new DomReadingContext(this.domNode.domNode,this._textRangeRestingSpot),r=this._visibleLines.getVisibleLine(e).getVisibleRangesForRange(e,t,i,n);return this._updateLineWidthsSlowIfDomDidLayout(n),r}visibleRangeForPosition(e){const t=this._visibleRangesForLineRange(e.lineNumber,e.column,e.column);return t?new HorizontalPosition(t.outsideRenderedLine,t.ranges[0].left):null}_updateLineWidthsFast(){return this._updateLineWidths(!0)}_updateLineWidthsSlow(){this._updateLineWidths(!1)}_updateLineWidthsSlowIfDomDidLayout(e){e.didDomLayout&&(this._asyncUpdateLineWidths.isScheduled()||(this._asyncUpdateLineWidths.cancel(),this._updateLineWidthsSlow()))}_updateLineWidths(e){const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();let n=1,r=!0;for(let s=t;s<=i;s++){const a=this._visibleLines.getVisibleLine(s);if(e&&!a.getWidthIsFast()){r=!1;continue}n=Math.max(n,a.getWidth(null))}return r&&t===1&&i===this._context.viewModel.getLineCount()&&(this._maxLineWidth=0),this._ensureMaxLineWidth(n),r}_checkMonospaceFontAssumptions(){let e=-1,t=-1;const i=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber();for(let r=i;r<=n;r++){const s=this._visibleLines.getVisibleLine(r);if(s.needsMonospaceFontCheck()){const a=s.getWidth(null);a>t&&(t=a,e=r)}}if(e!==-1&&!this._visibleLines.getVisibleLine(e).monospaceAssumptionsAreValid())for(let r=i;r<=n;r++)this._visibleLines.getVisibleLine(r).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 i=this._horizontalRevealRequest;if(e.startLineNumber<=i.minLineNumber&&i.maxLineNumber<=e.endLineNumber){this._horizontalRevealRequest=null,this.onDidRender();const n=this._computeScrollLeftToReveal(i);n&&(this._isViewportWrapping||this._ensureMaxLineWidth(n.maxHorizontalOffset),this._context.viewModel.viewLayout.setScrollPosition({scrollLeft:n.scrollLeft},i.scrollType))}}if(this._updateLineWidthsFast()?this._asyncUpdateLineWidths.cancel():this._asyncUpdateLineWidths.schedule(),isLinux&&!this._asyncCheckMonospaceFontAssumptions.isScheduled()){const i=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber();for(let r=i;r<=n;r++)if(this._visibleLines.getVisibleLine(r).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.viewModel.viewLayout.setMaxLineWidth(this._maxLineWidth))}_computeScrollTopToRevealRange(e,t,i,n,r,s){const a=e.top,l=e.height,d=a+l;let c,u,g;if(r&&r.length>0){let _=r[0].startLineNumber,C=r[0].endLineNumber;for(let S=1,y=r.length;S<y;S++){const E=r[S];_=Math.min(_,E.startLineNumber),C=Math.max(C,E.endLineNumber)}c=!1,u=this._context.viewLayout.getVerticalOffsetForLineNumber(_),g=this._context.viewLayout.getVerticalOffsetForLineNumber(C)+this._lineHeight}else if(n)c=!0,u=this._context.viewLayout.getVerticalOffsetForLineNumber(n.startLineNumber),g=this._context.viewLayout.getVerticalOffsetForLineNumber(n.endLineNumber)+this._lineHeight;else return-1;const f=(t==="mouse"||i)&&this._cursorSurroundingLinesStyle==="default";let p=0,m=0;if(f)i||(p=this._lineHeight);else{const _=Math.min(l/this._lineHeight/2,this._cursorSurroundingLines);this._stickyScrollEnabled?p=Math.max(_,this._maxNumberStickyLines)*this._lineHeight:p=_*this._lineHeight,m=Math.max(0,_-1)*this._lineHeight}i||(s===0||s===4)&&(m+=this._lineHeight),u-=p,g+=m;let b;if(g-u>l){if(!c)return-1;b=u}else if(s===5||s===6)if(s===6&&a<=u&&g<=d)b=a;else{const _=Math.max(5*this._lineHeight,l*.2),C=u-_,S=g-l;b=Math.max(S,C)}else if(s===1||s===2)if(s===2&&a<=u&&g<=d)b=a;else{const _=(u+g)/2;b=Math.max(0,_-l/2)}else b=this._computeMinimumScrolling(a,d,u,g,s===3,s===4);return b}_computeScrollLeftToReveal(e){const t=this._context.viewLayout.getCurrentViewport(),i=this._context.configuration.options.get(143),n=t.left,r=n+t.width-i.verticalScrollbarWidth;let s=1073741824,a=0;if(e.type==="range"){const d=this._visibleRangesForLineRange(e.lineNumber,e.startColumn,e.endColumn);if(!d)return null;for(const c of d.ranges)s=Math.min(s,Math.round(c.left)),a=Math.max(a,Math.round(c.left+c.width))}else for(const d of e.selections){if(d.startLineNumber!==d.endLineNumber)return null;const c=this._visibleRangesForLineRange(d.startLineNumber,d.startColumn,d.endColumn);if(!c)return null;for(const u of c.ranges)s=Math.min(s,Math.round(u.left)),a=Math.max(a,Math.round(u.left+u.width))}return e.minimalReveal||(s=Math.max(0,s-ViewLines.HORIZONTAL_EXTRA_PX),a+=this._revealHorizontalRightPadding),e.type==="selections"&&a-s>t.width?null:{scrollLeft:this._computeMinimumScrolling(n,r,s,a),maxHorizontalOffset:a}}_computeMinimumScrolling(e,t,i,n,r,s){e=e|0,t=t|0,i=i|0,n=n|0,r=!!r,s=!!s;const a=t-e;if(n-i<a){if(r)return i;if(s)return Math.max(0,n-a);if(i<e)return i;if(n>t)return Math.max(0,n-a)}else return i;return e}}ViewLines.HORIZONTAL_EXTRA_PX=30;class DecorationToRender{constructor(e,t,i,n){this._decorationToRenderBrand=void 0,this.startLineNumber=+e,this.endLineNumber=+t,this.className=String(i),this.zIndex=n??0}}class LineDecorationToRender{constructor(e,t){this.className=e,this.zIndex=t}}class VisibleLineDecorationsToRender{constructor(){this.decorations=[]}add(e){this.decorations.push(e)}getDecorations(){return this.decorations}}class DedupOverlay extends DynamicViewOverlay{_render(e,t,i){const n=[];for(let a=e;a<=t;a++){const l=a-e;n[l]=new VisibleLineDecorationsToRender}if(i.length===0)return n;i.sort((a,l)=>a.className===l.className?a.startLineNumber===l.startLineNumber?a.endLineNumber-l.endLineNumber:a.startLineNumber-l.startLineNumber:a.className<l.className?-1:1);let r=null,s=0;for(let a=0,l=i.length;a<l;a++){const d=i[a],c=d.className,u=d.zIndex;let g=Math.max(d.startLineNumber,e)-e;const f=Math.min(d.endLineNumber,t)-e;r===c?(g=Math.max(s+1,g),s=Math.max(s,f)):(r=c,s=f);for(let p=g;p<=s;p++)n[p].add(new LineDecorationToRender(c,u))}return n}}class GlyphMarginWidgets extends ViewPart{constructor(e){super(e),this._widgets={},this._context=e;const t=this._context.configuration.options,i=t.get(143);this.domNode=createFastDomNode(document.createElement("div")),this.domNode.setClassName("glyph-margin-widgets"),this.domNode.setPosition("absolute"),this.domNode.setTop(0),this._lineHeight=t.get(66),this._glyphMargin=t.get(57),this._glyphMarginLeft=i.glyphMarginLeft,this._glyphMarginWidth=i.glyphMarginWidth,this._glyphMarginDecorationLaneCount=i.glyphMarginDecorationLaneCount,this._managedDomNodes=[],this._decorationGlyphsToRender=[]}dispose(){this._managedDomNodes=[],this._decorationGlyphsToRender=[],this._widgets={},super.dispose()}getWidgets(){return Object.values(this._widgets)}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(143);return this._lineHeight=t.get(66),this._glyphMargin=t.get(57),this._glyphMarginLeft=i.glyphMarginLeft,this._glyphMarginWidth=i.glyphMarginWidth,this._glyphMarginDecorationLaneCount=i.glyphMarginDecorationLaneCount,!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}addWidget(e){const t=createFastDomNode(e.getDomNode());this._widgets[e.getId()]={widget:e,preference:e.getPosition(),domNode:t,renderInfo:null},t.setPosition("absolute"),t.setDisplay("none"),t.setAttribute("widgetId",e.getId()),this.domNode.appendChild(t),this.setShouldRender()}setWidgetPosition(e,t){const i=this._widgets[e.getId()];return i.preference.lane===t.lane&&i.preference.zIndex===t.zIndex&&Range$2.equalsRange(i.preference.range,t.range)?!1:(i.preference=t,this.setShouldRender(),!0)}removeWidget(e){var t;const i=e.getId();if(this._widgets[i]){const r=this._widgets[i].domNode.domNode;delete this._widgets[i],(t=r.parentNode)===null||t===void 0||t.removeChild(r),this.setShouldRender()}}_collectDecorationBasedGlyphRenderRequest(e,t){var i,n,r;const s=e.visibleRange.startLineNumber,a=e.visibleRange.endLineNumber,l=e.getDecorationsInViewport();for(const d of l){const c=d.options.glyphMarginClassName;if(!c)continue;const u=Math.max(d.range.startLineNumber,s),g=Math.min(d.range.endLineNumber,a),f=Math.min((n=(i=d.options.glyphMargin)===null||i===void 0?void 0:i.position)!==null&&n!==void 0?n:1,this._glyphMarginDecorationLaneCount),p=(r=d.options.zIndex)!==null&&r!==void 0?r:0;for(let m=u;m<=g;m++)t.push(new DecorationBasedGlyphRenderRequest(m,f,p,c))}}_collectWidgetBasedGlyphRenderRequest(e,t){const i=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber;for(const r of Object.values(this._widgets)){const s=r.preference.range;if(s.endLineNumber<i||s.startLineNumber>n)continue;const a=Math.max(s.startLineNumber,i),l=Math.min(r.preference.lane,this._glyphMarginDecorationLaneCount);t.push(new WidgetBasedGlyphRenderRequest(a,l,r.preference.zIndex,r))}}_collectSortedGlyphRenderRequests(e){const t=[];return this._collectDecorationBasedGlyphRenderRequest(e,t),this._collectWidgetBasedGlyphRenderRequest(e,t),t.sort((i,n)=>i.lineNumber===n.lineNumber?i.lane===n.lane?i.zIndex===n.zIndex?n.type===i.type?i.type===0&&n.type===0?i.className<n.className?-1:1:0:n.type-i.type:n.zIndex-i.zIndex:i.lane-n.lane:i.lineNumber-n.lineNumber),t}prepareRender(e){if(!this._glyphMargin){this._decorationGlyphsToRender=[];return}for(const n of Object.values(this._widgets))n.renderInfo=null;const t=new ArrayQueue(this._collectSortedGlyphRenderRequests(e)),i=[];for(;t.length>0;){const n=t.peek();if(!n)break;const r=t.takeWhile(a=>a.lineNumber===n.lineNumber&&a.lane===n.lane);if(!r||r.length===0)break;const s=r[0];if(s.type===0){const a=[];for(const l of r){if(l.zIndex!==s.zIndex||l.type!==s.type)break;(a.length===0||a[a.length-1]!==l.className)&&a.push(l.className)}i.push(s.accept(a.join(" ")))}else s.widget.renderInfo={lineNumber:s.lineNumber,lane:s.lane}}this._decorationGlyphsToRender=i}render(e){if(!this._glyphMargin){for(const i of Object.values(this._widgets))i.domNode.setDisplay("none");for(;this._managedDomNodes.length>0;){const i=this._managedDomNodes.pop();i==null||i.domNode.remove()}return}const t=Math.round(this._glyphMarginWidth/this._glyphMarginDecorationLaneCount);for(const i of Object.values(this._widgets))if(!i.renderInfo)i.domNode.setDisplay("none");else{const n=e.viewportData.relativeVerticalOffset[i.renderInfo.lineNumber-e.viewportData.startLineNumber],r=this._glyphMarginLeft+(i.renderInfo.lane-1)*this._lineHeight;i.domNode.setDisplay("block"),i.domNode.setTop(n),i.domNode.setLeft(r),i.domNode.setWidth(t),i.domNode.setHeight(this._lineHeight)}for(let i=0;i<this._decorationGlyphsToRender.length;i++){const n=this._decorationGlyphsToRender[i],r=e.viewportData.relativeVerticalOffset[n.lineNumber-e.viewportData.startLineNumber],s=this._glyphMarginLeft+(n.lane-1)*this._lineHeight;let a;i<this._managedDomNodes.length?a=this._managedDomNodes[i]:(a=createFastDomNode(document.createElement("div")),this._managedDomNodes.push(a),this.domNode.appendChild(a)),a.setClassName("cgmr codicon "+n.combinedClassName),a.setPosition("absolute"),a.setTop(r),a.setLeft(s),a.setWidth(t),a.setHeight(this._lineHeight)}for(;this._managedDomNodes.length>this._decorationGlyphsToRender.length;){const i=this._managedDomNodes.pop();i==null||i.domNode.remove()}}}class DecorationBasedGlyphRenderRequest{constructor(e,t,i,n){this.lineNumber=e,this.lane=t,this.zIndex=i,this.className=n,this.type=0}accept(e){return new DecorationBasedGlyph(this.lineNumber,this.lane,e)}}class WidgetBasedGlyphRenderRequest{constructor(e,t,i,n){this.lineNumber=e,this.lane=t,this.zIndex=i,this.widget=n,this.type=1}}class DecorationBasedGlyph{constructor(e,t,i){this.lineNumber=e,this.lane=t,this.combinedClassName=i}}class LinesDecorationsOverlay extends DedupOverlay{constructor(e){super(),this._context=e;const i=this._context.configuration.options.get(143);this._decorationsLeft=i.decorationsLeft,this._decorationsWidth=i.decorationsWidth,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const i=this._context.configuration.options.get(143);return this._decorationsLeft=i.decorationsLeft,this._decorationsWidth=i.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(),i=[];let n=0;for(let r=0,s=t.length;r<s;r++){const a=t[r],l=a.options.linesDecorationsClassName,d=a.options.zIndex;l&&(i[n++]=new DecorationToRender(a.range.startLineNumber,a.range.endLineNumber,l,d));const c=a.options.firstLineDecorationClassName;c&&(i[n++]=new DecorationToRender(a.range.startLineNumber,a.range.startLineNumber,c,d))}return i}prepareRender(e){const t=e.visibleRange.startLineNumber,i=e.visibleRange.endLineNumber,n=this._render(t,i,this._getDecorations(e)),r=this._decorationsLeft.toString(),s=this._decorationsWidth.toString(),a='" style="left:'+r+"px;width:"+s+'px;"></div>',l=[];for(let d=t;d<=i;d++){const c=d-t,u=n[c].getDecorations();let g="";for(const f of u)g+='<div class="cldr '+f.className+a;l[c]=g}this._renderResult=l}render(e,t){return this._renderResult?this._renderResult[t-e]:""}}class MarginViewLineDecorationsOverlay extends DedupOverlay{constructor(e){super(),this._context=e,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){return!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(),i=[];let n=0;for(let r=0,s=t.length;r<s;r++){const a=t[r],l=a.options.marginClassName,d=a.options.zIndex;l&&(i[n++]=new DecorationToRender(a.range.startLineNumber,a.range.endLineNumber,l,d))}return i}prepareRender(e){const t=e.visibleRange.startLineNumber,i=e.visibleRange.endLineNumber,n=this._render(t,i,this._getDecorations(e)),r=[];for(let s=t;s<=i;s++){const a=s-t,l=n[a].getDecorations();let d="";for(const c of l)d+='<div class="cmdr '+c.className+'" style=""></div>';r[a]=d}this._renderResult=r}render(e,t){return this._renderResult?this._renderResult[t-e]:""}}class RGBA8{constructor(e,t,i,n){this._rgba8Brand=void 0,this.r=RGBA8._clamp(e),this.g=RGBA8._clamp(t),this.b=RGBA8._clamp(i),this.a=RGBA8._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:e|0}}RGBA8.Empty=new RGBA8(0,0,0,0);class MinimapTokensColorTracker extends Disposable{static getInstance(){return this._INSTANCE||(this._INSTANCE=new MinimapTokensColorTracker),this._INSTANCE}constructor(){super(),this._onDidChange=new Emitter$1,this.onDidChange=this._onDidChange.event,this._updateColorMap(),this._register(TokenizationRegistry.onDidChange(e=>{e.changedColorMap&&this._updateColorMap()}))}_updateColorMap(){const e=TokenizationRegistry.getColorMap();if(!e){this._colors=[RGBA8.Empty],this._backgroundIsLight=!0;return}this._colors=[RGBA8.Empty];for(let i=1;i<e.length;i++){const n=e[i].rgba;this._colors[i]=new RGBA8(n.r,n.g,n.b,Math.round(n.a*255))}const 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}}MinimapTokensColorTracker._INSTANCE=null;const allCharCodes=(()=>{const o=[];for(let e=32;e<=126;e++)o.push(e);return o.push(65533),o})(),getCharIndex=(o,e)=>(o-=32,o<0||o>96?e<=2?(o+96)%96:95:o);class MinimapCharRenderer{constructor(e,t){this.scale=t,this._minimapCharRendererBrand=void 0,this.charDataNormal=MinimapCharRenderer.soften(e,12/15),this.charDataLight=MinimapCharRenderer.soften(e,50/60)}static soften(e,t){const i=new Uint8ClampedArray(e.length);for(let n=0,r=e.length;n<r;n++)i[n]=toUint8(e[n]*t);return i}renderChar(e,t,i,n,r,s,a,l,d,c,u){const g=1*this.scale,f=2*this.scale,p=u?1:f;if(t+g>e.width||i+p>e.height){console.warn("bad render request outside image data");return}const m=c?this.charDataLight:this.charDataNormal,b=getCharIndex(n,d),_=e.width*4,C=a.r,S=a.g,y=a.b,E=r.r-C,x=r.g-S,L=r.b-y,I=Math.max(s,l),D=e.data;let N=b*g*f,F=i*_+t*4;for(let R=0;R<p;R++){let M=F;for(let W=0;W<g;W++){const V=m[N++]/255*(s/255);D[M++]=C+E*V,D[M++]=S+x*V,D[M++]=y+L*V,D[M++]=I}F+=_}}blockRenderChar(e,t,i,n,r,s,a,l){const d=1*this.scale,c=2*this.scale,u=l?1:c;if(t+d>e.width||i+u>e.height){console.warn("bad render request outside image data");return}const g=e.width*4,f=.5*(r/255),p=s.r,m=s.g,b=s.b,_=n.r-p,C=n.g-m,S=n.b-b,y=p+_*f,E=m+C*f,x=b+S*f,L=Math.max(r,a),I=e.data;let D=i*g+t*4;for(let N=0;N<u;N++){let F=D;for(let R=0;R<d;R++)I[F++]=y,I[F++]=E,I[F++]=x,I[F++]=L;D+=g}}}const charTable={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},decodeData=o=>{const e=new Uint8ClampedArray(o.length/2);for(let t=0;t<o.length;t+=2)e[t>>1]=charTable[o[t]]<<4|charTable[o[t+1]]&15;return e},prebakedMiniMaps={1:createSingleCallFunction(()=>decodeData("0000511D6300CF609C709645A78432005642574171487021003C451900274D35D762755E8B629C5BA856AF57BA649530C167D1512A272A3F6038604460398526BCA2A968DB6F8957C768BE5FBE2FB467CF5D8D5B795DC7625B5DFF50DE64C466DB2FC47CD860A65E9A2EB96CB54CE06DA763AB2EA26860524D3763536601005116008177A8705E53AB738E6A982F88BAA35B5F5B626D9C636B449B737E5B7B678598869A662F6B5B8542706C704C80736A607578685B70594A49715A4522E792")),2:createSingleCallFunction(()=>decodeData("000000000000000055394F383D2800008B8B1F210002000081B1CBCBCC820000847AAF6B9AAF2119BE08B8881AD60000A44FD07DCCF107015338130C00000000385972265F390B406E2437634B4B48031B12B8A0847000001E15B29A402F0000000000004B33460B00007A752C2A0000000000004D3900000084394B82013400ABA5CFC7AD9C0302A45A3E5A98AB000089A43382D97900008BA54AA087A70A0248A6A7AE6DBE0000BF6F94987EA40A01A06DCFA7A7A9030496C32F77891D0000A99FB1A0AFA80603B29AB9CA75930D010C0948354D3900000C0948354F37460D0028BE673D8400000000AF9D7B6E00002B007AA8933400007AA642675C2700007984CFB9C3985B768772A8A6B7B20000CAAECAAFC4B700009F94A6009F840009D09F9BA4CA9C0000CC8FC76DC87F0000C991C472A2000000A894A48CA7B501079BA2C9C69BA20000B19A5D3FA89000005CA6009DA2960901B0A7F0669FB200009D009E00B7890000DAD0F5D092820000D294D4C48BD10000B5A7A4A3B1A50402CAB6CBA6A2000000B5A7A4A3B1A8044FCDADD19D9CB00000B7778F7B8AAE0803C9AB5D3F5D3F00009EA09EA0BAB006039EA0989A8C7900009B9EF4D6B7C00000A9A7816CACA80000ABAC84705D3F000096DA635CDC8C00006F486F266F263D4784006124097B00374F6D2D6D2D6D4A3A95872322000000030000000000008D8939130000000000002E22A5C9CBC70600AB25C0B5C9B400061A2DB04CA67001082AA6BEBEBFC606002321DACBC19E03087AA08B6768380000282FBAC0B8CA7A88AD25BBA5A29900004C396C5894A6000040485A6E356E9442A32CD17EADA70000B4237923628600003E2DE9C1D7B500002F25BBA5A2990000231DB6AFB4A804023025C0B5CAB588062B2CBDBEC0C706882435A75CA20000002326BD6A82A908048B4B9A5A668000002423A09CB4BB060025259C9D8A7900001C1FCAB2C7C700002A2A9387ABA200002626A4A47D6E9D14333163A0C87500004B6F9C2D643A257049364936493647358A34438355497F1A0000A24C1D590000D38DFFBDD4CD3126"))};class MinimapCharRendererFactory{static create(e,t){if(this.lastCreated&&e===this.lastCreated.scale&&t===this.lastFontFamily)return this.lastCreated;let i;return prebakedMiniMaps[e]?i=new MinimapCharRenderer(prebakedMiniMaps[e](),e):i=MinimapCharRendererFactory.createFromSampleData(MinimapCharRendererFactory.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=96*10,t.style.width=96*10+"px",i.fillStyle="#ffffff",i.font=`bold 16px ${e}`,i.textBaseline="middle";let n=0;for(const r of allCharCodes)i.fillText(String.fromCharCode(r),n,16/2),n+=10;return i.getImageData(0,0,96*10,16)}static createFromSampleData(e,t){if(e.length!==61440)throw new Error("Unexpected source in MinimapCharRenderer");const n=MinimapCharRendererFactory._downsample(e,t);return new MinimapCharRenderer(n,t)}static _downsampleChar(e,t,i,n,r){const s=1*r,a=2*r;let l=n,d=0;for(let c=0;c<a;c++){const u=c/a*16,g=(c+1)/a*16;for(let f=0;f<s;f++){const p=f/s*10,m=(f+1)/s*10;let b=0,_=0;for(let S=u;S<g;S++){const y=t+Math.floor(S)*3840,E=1-(S-Math.floor(S));for(let x=p;x<m;x++){const L=1-(x-Math.floor(x)),I=y+Math.floor(x)*4,D=L*E;_+=D,b+=e[I]*e[I+3]/255*D}}const C=b/_;d=Math.max(d,C),i[l++]=toUint8(C)}}return d}static _downsample(e,t){const i=2*t*1*t,n=i*96,r=new Uint8ClampedArray(n);let s=0,a=0,l=0;for(let d=0;d<96;d++)l=Math.max(l,this._downsampleChar(e,a,r,s,t)),s+=i,a+=10*4;if(l>0){const d=255/l;for(let c=0;c<n;c++)r[c]*=d}return r}}const POINTER_DRAG_RESET_DISTANCE=140,GUTTER_DECORATION_WIDTH=2;class MinimapOptions{constructor(e,t,i){const n=e.options,r=n.get(141),s=n.get(143),a=s.minimap,l=n.get(50),d=n.get(72);this.renderMinimap=a.renderMinimap,this.size=d.size,this.minimapHeightIsEditorHeight=a.minimapHeightIsEditorHeight,this.scrollBeyondLastLine=n.get(104),this.paddingTop=n.get(83).top,this.paddingBottom=n.get(83).bottom,this.showSlider=d.showSlider,this.autohide=d.autohide,this.pixelRatio=r,this.typicalHalfwidthCharacterWidth=l.typicalHalfwidthCharacterWidth,this.lineHeight=n.get(66),this.minimapLeft=a.minimapLeft,this.minimapWidth=a.minimapWidth,this.minimapHeight=s.height,this.canvasInnerWidth=a.minimapCanvasInnerWidth,this.canvasInnerHeight=a.minimapCanvasInnerHeight,this.canvasOuterWidth=a.minimapCanvasOuterWidth,this.canvasOuterHeight=a.minimapCanvasOuterHeight,this.isSampling=a.minimapIsSampling,this.editorHeight=s.height,this.fontScale=a.minimapScale,this.minimapLineHeight=a.minimapLineHeight,this.minimapCharWidth=1*this.fontScale,this.charRenderer=createSingleCallFunction(()=>MinimapCharRendererFactory.create(this.fontScale,l.fontFamily)),this.defaultBackgroundColor=i.getColor(2),this.backgroundColor=MinimapOptions._getMinimapBackground(t,this.defaultBackgroundColor),this.foregroundAlpha=MinimapOptions._getMinimapForegroundOpacity(t)}static _getMinimapBackground(e,t){const i=e.getColor(minimapBackground);return i?new RGBA8(i.rgba.r,i.rgba.g,i.rgba.b,Math.round(255*i.rgba.a)):t}static _getMinimapForegroundOpacity(e){const t=e.getColor(minimapForegroundOpacity);return t?RGBA8._clamp(Math.round(255*t.rgba.a)):255}equals(e){return this.renderMinimap===e.renderMinimap&&this.size===e.size&&this.minimapHeightIsEditorHeight===e.minimapHeightIsEditorHeight&&this.scrollBeyondLastLine===e.scrollBeyondLastLine&&this.paddingTop===e.paddingTop&&this.paddingBottom===e.paddingBottom&&this.showSlider===e.showSlider&&this.autohide===e.autohide&&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.defaultBackgroundColor&&this.defaultBackgroundColor.equals(e.defaultBackgroundColor)&&this.backgroundColor&&this.backgroundColor.equals(e.backgroundColor)&&this.foregroundAlpha===e.foregroundAlpha}}class MinimapLayout{constructor(e,t,i,n,r,s,a,l,d){this.scrollTop=e,this.scrollHeight=t,this.sliderNeeded=i,this._computedSliderRatio=n,this.sliderTop=r,this.sliderHeight=s,this.topPaddingLineCount=a,this.startLineNumber=l,this.endLineNumber=d}getDesiredScrollTopFromDelta(e){return Math.round(this.scrollTop+e/this._computedSliderRatio)}getDesiredScrollTopFromTouchLocation(e){return Math.round((e-this.sliderHeight/2)/this._computedSliderRatio)}intersectWithViewport(e){const t=Math.max(this.startLineNumber,e.startLineNumber),i=Math.min(this.endLineNumber,e.endLineNumber);return t>i?null:[t,i]}getYForLineNumber(e,t){return+(e-this.startLineNumber+this.topPaddingLineCount)*t}static create(e,t,i,n,r,s,a,l,d,c,u){const g=e.pixelRatio,f=e.minimapLineHeight,p=Math.floor(e.canvasInnerHeight/f),m=e.lineHeight;if(e.minimapHeightIsEditorHeight){let x=l*e.lineHeight+e.paddingTop+e.paddingBottom;e.scrollBeyondLastLine&&(x+=Math.max(0,r-e.lineHeight-e.paddingBottom));const L=Math.max(1,Math.floor(r*r/x)),I=Math.max(0,e.minimapHeight-L),D=I/(c-r),N=d*D,F=I>0,R=Math.floor(e.canvasInnerHeight/e.minimapLineHeight),M=Math.floor(e.paddingTop/e.lineHeight);return new MinimapLayout(d,c,F,D,N,L,M,1,Math.min(a,R))}let b;if(s&&i!==a){const x=i-t+1;b=Math.floor(x*f/g)}else{const x=r/m;b=Math.floor(x*f/g)}const _=Math.floor(e.paddingTop/m);let C=Math.floor(e.paddingBottom/m);if(e.scrollBeyondLastLine){const x=r/m;C=Math.max(C,x-1)}let S;if(C>0){const x=r/m;S=(_+a+C-x-1)*f/g}else S=Math.max(0,(_+a)*f/g-b);S=Math.min(e.minimapHeight-b,S);const y=S/(c-r),E=d*y;if(p>=_+a+C){const x=S>0;return new MinimapLayout(d,c,x,y,E,b,_,1,a)}else{let x;t>1?x=t+_:x=Math.max(1,d/m);let L,I=Math.max(1,Math.floor(x-E*g/f));I<_?(L=_-I+1,I=1):(L=0,I=Math.max(1,I-_)),u&&u.scrollHeight===c&&(u.scrollTop>d&&(I=Math.min(I,u.startLineNumber),L=Math.max(L,u.topPaddingLineCount)),u.scrollTop<d&&(I=Math.max(I,u.startLineNumber),L=Math.min(L,u.topPaddingLineCount)));const D=Math.min(a,I-L+p-1),N=(d-n)/m;let F;return d>=e.paddingTop?F=(t-I+L+N)*f/g:F=d/e.paddingTop*(L+N)*f/g,new MinimapLayout(d,c,!0,y,F,b,L,I,D)}}}class MinimapLine{constructor(e){this.dy=e}onContentChanged(){this.dy=-1}onTokensChanged(){this.dy=-1}}MinimapLine.INVALID=new MinimapLine(-1);class RenderData{constructor(e,t,i){this.renderedLayout=e,this._imageData=t,this._renderedLines=new RenderedLinesCollection(()=>MinimapLine.INVALID),this._renderedLines._set(e.startLineNumber,i)}linesEquals(e){if(!this.scrollEquals(e))return!1;const i=this._renderedLines._get().lines;for(let n=0,r=i.length;n<r;n++)if(i[n].dy===-1)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 MinimapBuffers{constructor(e,t,i,n){this._backgroundFillData=MinimapBuffers._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,r=i.g,s=i.b,a=i.a,l=new Uint8ClampedArray(e*t*4);let d=0;for(let c=0;c<t;c++)for(let u=0;u<e;u++)l[d]=n,l[d+1]=r,l[d+2]=s,l[d+3]=a,d+=4;return l}}class MinimapSamplingState{static compute(e,t,i){if(e.renderMinimap===0||!e.isSampling)return[null,[]];const{minimapLineCount:n}=EditorLayoutInfoComputer.computeContainedMinimapLineCount({viewLineCount:t,scrollBeyondLastLine:e.scrollBeyondLastLine,paddingTop:e.paddingTop,paddingBottom:e.paddingBottom,height:e.editorHeight,lineHeight:e.lineHeight,pixelRatio:e.pixelRatio}),r=t/n,s=r/2;if(!i||i.minimapLines.length===0){const b=[];if(b[0]=1,n>1){for(let _=0,C=n-1;_<C;_++)b[_]=Math.round(_*r+s);b[n-1]=t}return[new MinimapSamplingState(r,b),[]]}const a=i.minimapLines,l=a.length,d=[];let c=0,u=0,g=1;const f=10;let p=[],m=null;for(let b=0;b<n;b++){const _=Math.max(g,Math.round(b*r)),C=Math.max(_,Math.round((b+1)*r));for(;c<l&&a[c]<_;){if(p.length<f){const y=c+1+u;m&&m.type==="deleted"&&m._oldIndex===c-1?m.deleteToLineNumber++:(m={type:"deleted",_oldIndex:c,deleteFromLineNumber:y,deleteToLineNumber:y},p.push(m)),u--}c++}let S;if(c<l&&a[c]<=C)S=a[c],c++;else if(b===0?S=1:b+1===n?S=t:S=Math.round(b*r+s),p.length<f){const y=c+1+u;m&&m.type==="inserted"&&m._i===b-1?m.insertToLineNumber++:(m={type:"inserted",_i:b,insertFromLineNumber:y,insertToLineNumber:y},p.push(m)),u++}d[b]=S,g=S}if(p.length<f)for(;c<l;){const b=c+1+u;m&&m.type==="deleted"&&m._oldIndex===c-1?m.deleteToLineNumber++:(m={type:"deleted",_oldIndex:c,deleteFromLineNumber:b,deleteToLineNumber:b},p.push(m)),u--,c++}else p=[{type:"flush"}];return[new MinimapSamplingState(r,d),p]}constructor(e,t){this.samplingRatio=e,this.minimapLines=t}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 r=this.minimapLines[i];if(r<e||r>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 r=this.minimapLines.length-1;r>=0&&!(this.minimapLines[r]<e.fromLineNumber);r--)this.minimapLines[r]<=e.toLineNumber?(this.minimapLines[r]=Math.max(1,e.fromLineNumber-1),i=Math.min(i,r),n=Math.max(n,r)):this.minimapLines[r]-=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 Minimap extends ViewPart{constructor(e){super(e),this.tokensColorTracker=MinimapTokensColorTracker.getInstance(),this._selections=[],this._minimapSelections=null,this.options=new MinimapOptions(this._context.configuration,this._context.theme,this.tokensColorTracker);const[t]=MinimapSamplingState.compute(this.options,this._context.viewModel.getLineCount(),null);this._samplingState=t,this._shouldCheckSampling=!1,this._actual=new InnerMinimap(e.theme,this)}dispose(){this._actual.dispose(),super.dispose()}getDomNode(){return this._actual.getDomNode()}_onOptionsMaybeChanged(){const e=new MinimapOptions(this._context.configuration,this._context.theme,this.tokensColorTracker);return this.options.equals(e)?!1:(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():!1}onFlushed(e){return this._samplingState&&(this._shouldCheckSampling=!0),this._actual.onFlushed()}onLinesChanged(e){if(this._samplingState){const t=this._samplingState.modelLineRangeToMinimapLineRange(e.fromLineNumber,e.fromLineNumber+e.count-1);return t?this._actual.onLinesChanged(t[0],t[1]-t[0]+1):!1}else return this._actual.onLinesChanged(e.fromLineNumber,e.count)}onLinesDeleted(e){if(this._samplingState){const[t,i]=this._samplingState.onLinesDeleted(e);return t<=i&&this._actual.onLinesChanged(t+1,i-t+1),this._shouldCheckSampling=!0,!0}else 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._actual.onThemeChanged(),this._onOptionsMaybeChanged(),!0}onTokensChanged(e){if(this._samplingState){const t=[];for(const i of e.ranges){const n=this._samplingState.modelLineRangeToMinimapLineRange(i.fromLineNumber,i.toLineNumber);n&&t.push({fromLineNumber:n[0],toLineNumber:n[1]})}return t.length?this._actual.onTokensChanged(t):!1}else 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=!!this._samplingState,[t,i]=MinimapSamplingState.compute(this.options,this._context.viewModel.getLineCount(),this._samplingState);if(this._samplingState=t,e&&this._samplingState)for(const n of i)switch(n.type){case"deleted":this._actual.onLinesDeleted(n.deleteFromLineNumber,n.deleteToLineNumber);break;case"inserted":this._actual.onLinesInserted(n.insertFromLineNumber,n.insertToLineNumber);break;case"flush":this._actual.onFlushed();break}}getLineCount(){return this._samplingState?this._samplingState.minimapLines.length:this._context.viewModel.getLineCount()}getRealLineCount(){return this._context.viewModel.getLineCount()}getLineContent(e){return this._samplingState?this._context.viewModel.getLineContent(this._samplingState.minimapLines[e-1]):this._context.viewModel.getLineContent(e)}getLineMaxColumn(e){return this._samplingState?this._context.viewModel.getLineMaxColumn(this._samplingState.minimapLines[e-1]):this._context.viewModel.getLineMaxColumn(e)}getMinimapLinesRenderingData(e,t,i){if(this._samplingState){const n=[];for(let r=0,s=t-e+1;r<s;r++)i[r]?n[r]=this._context.viewModel.getViewLineData(this._samplingState.minimapLines[e+r-1]):n[r]=null;return n}return this._context.viewModel.getMinimapLinesRenderingData(e,t,i).data}getSelections(){if(this._minimapSelections===null)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 Selection$1(t,e.startColumn,i,e.endColumn))}}else this._minimapSelections=this._selections;return this._minimapSelections}getMinimapDecorationsInViewport(e,t){let i;if(this._samplingState){const r=this._samplingState.minimapLines[e-1],s=this._samplingState.minimapLines[t-1];i=new Range$2(r,1,s,this._context.viewModel.getLineMaxColumn(s))}else i=new Range$2(e,1,t,this._context.viewModel.getLineMaxColumn(t));const n=this._context.viewModel.getMinimapDecorationsInRange(i);if(this._samplingState){const r=[];for(const s of n){if(!s.options.minimap)continue;const a=s.range,l=this._samplingState.modelLineToMinimapLine(a.startLineNumber),d=this._samplingState.modelLineToMinimapLine(a.endLineNumber);r.push(new ViewModelDecoration(new Range$2(l,a.startColumn,d,a.endColumn),s.options))}return r}return n}getOptions(){return this._context.viewModel.model.getOptions()}revealLineNumber(e){this._samplingState&&(e=this._samplingState.minimapLines[e-1]),this._context.viewModel.revealRange("mouse",!1,new Range$2(e,1,e,1),1,0)}setScrollTop(e){this._context.viewModel.viewLayout.setScrollPosition({scrollTop:e},1)}}class InnerMinimap extends Disposable{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(minimapSelection),this._domNode=createFastDomNode(document.createElement("div")),PartFingerprints.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=createFastDomNode(document.createElement("div")),this._shadow.setClassName("minimap-shadow-hidden"),this._domNode.appendChild(this._shadow),this._canvas=createFastDomNode(document.createElement("canvas")),this._canvas.setPosition("absolute"),this._canvas.setLeft(0),this._domNode.appendChild(this._canvas),this._decorationsCanvas=createFastDomNode(document.createElement("canvas")),this._decorationsCanvas.setPosition("absolute"),this._decorationsCanvas.setClassName("minimap-decorations-layer"),this._decorationsCanvas.setLeft(0),this._domNode.appendChild(this._decorationsCanvas),this._slider=createFastDomNode(document.createElement("div")),this._slider.setPosition("absolute"),this._slider.setClassName("minimap-slider"),this._slider.setLayerHinting(!0),this._slider.setContain("strict"),this._domNode.appendChild(this._slider),this._sliderHorizontal=createFastDomNode(document.createElement("div")),this._sliderHorizontal.setPosition("absolute"),this._sliderHorizontal.setClassName("minimap-slider-horizontal"),this._slider.appendChild(this._sliderHorizontal),this._applyLayout(),this._pointerDownListener=addStandardDisposableListener(this._domNode.domNode,EventType$1.POINTER_DOWN,i=>{if(i.preventDefault(),this._model.options.renderMinimap===0||!this._lastRenderData)return;if(this._model.options.size!=="proportional"){if(i.button===0&&this._lastRenderData){const d=getDomNodePagePosition(this._slider.domNode),c=d.top+d.height/2;this._startSliderDragging(i,c,this._lastRenderData.renderedLayout)}return}const r=this._model.options.minimapLineHeight,s=this._model.options.canvasInnerHeight/this._model.options.canvasOuterHeight*i.offsetY;let l=Math.floor(s/r)+this._lastRenderData.renderedLayout.startLineNumber-this._lastRenderData.renderedLayout.topPaddingLineCount;l=Math.min(l,this._model.getLineCount()),this._model.revealLineNumber(l)}),this._sliderPointerMoveMonitor=new GlobalPointerMoveMonitor,this._sliderPointerDownListener=addStandardDisposableListener(this._slider.domNode,EventType$1.POINTER_DOWN,i=>{i.preventDefault(),i.stopPropagation(),i.button===0&&this._lastRenderData&&this._startSliderDragging(i,i.pageY,this._lastRenderData.renderedLayout)}),this._gestureDisposable=Gesture.addTarget(this._domNode.domNode),this._sliderTouchStartListener=addDisposableListener(this._domNode.domNode,EventType.Start,i=>{i.preventDefault(),i.stopPropagation(),this._lastRenderData&&(this._slider.toggleClassName("active",!0),this._gestureInProgress=!0,this.scrollDueToTouchEvent(i))},{passive:!1}),this._sliderTouchMoveListener=addDisposableListener(this._domNode.domNode,EventType.Change,i=>{i.preventDefault(),i.stopPropagation(),this._lastRenderData&&this._gestureInProgress&&this.scrollDueToTouchEvent(i)},{passive:!1}),this._sliderTouchEndListener=addStandardDisposableListener(this._domNode.domNode,EventType.End,i=>{i.preventDefault(),i.stopPropagation(),this._gestureInProgress=!1,this._slider.toggleClassName("active",!1)})}_startSliderDragging(e,t,i){if(!e.target||!(e.target instanceof Element))return;const n=e.pageX;this._slider.toggleClassName("active",!0);const r=(s,a)=>{const l=getDomNodePagePosition(this._domNode.domNode),d=Math.min(Math.abs(a-n),Math.abs(a-l.left),Math.abs(a-l.left-l.width));if(isWindows&&d>POINTER_DRAG_RESET_DISTANCE){this._model.setScrollTop(i.scrollTop);return}const c=s-t;this._model.setScrollTop(i.getDesiredScrollTopFromDelta(c))};e.pageY!==t&&r(e.pageY,n),this._sliderPointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,s=>r(s.pageY,s.pageX),()=>{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._pointerDownListener.dispose(),this._sliderPointerMoveMonitor.dispose(),this._sliderPointerDownListener.dispose(),this._gestureDisposable.dispose(),this._sliderTouchStartListener.dispose(),this._sliderTouchMoveListener.dispose(),this._sliderTouchEndListener.dispose(),super.dispose()}_getMinimapDomNodeClassName(){const e=["minimap"];return this._model.options.showSlider==="always"?e.push("slider-always"):e.push("slider-mouseover"),this._model.options.autohide&&e.push("autohide"),e.join(" ")}getDomNode(){return this._domNode}_applyLayout(){this._domNode.setLeft(this._model.options.minimapLeft),this._domNode.setWidth(this._model.options.minimapWidth),this._domNode.setHeight(this._model.options.minimapHeight),this._shadow.setHeight(this._model.options.minimapHeight),this._canvas.setWidth(this._model.options.canvasOuterWidth),this._canvas.setHeight(this._model.options.canvasOuterHeight),this._canvas.domNode.width=this._model.options.canvasInnerWidth,this._canvas.domNode.height=this._model.options.canvasInnerHeight,this._decorationsCanvas.setWidth(this._model.options.canvasOuterWidth),this._decorationsCanvas.setHeight(this._model.options.canvasOuterHeight),this._decorationsCanvas.domNode.width=this._model.options.canvasInnerWidth,this._decorationsCanvas.domNode.height=this._model.options.canvasInnerHeight,this._slider.setWidth(this._model.options.minimapWidth)}_getBuffer(){return this._buffers||this._model.options.canvasInnerWidth>0&&this._model.options.canvasInnerHeight>0&&(this._buffers=new MinimapBuffers(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):!1}onLinesDeleted(e,t){var i;return(i=this._lastRenderData)===null||i===void 0||i.onLinesDeleted(e,t),!0}onLinesInserted(e,t){var i;return(i=this._lastRenderData)===null||i===void 0||i.onLinesInserted(e,t),!0}onScrollChanged(){return this._renderDecorations=!0,!0}onThemeChanged(){return this._selectionColor=this._theme.getColor(minimapSelection),this._renderDecorations=!0,!0}onTokensChanged(e){return this._lastRenderData?this._lastRenderData.onTokensChanged(e):!1}onTokensColorsChanged(){return this._lastRenderData=null,this._buffers=null,!0}onZonesChanged(){return this._lastRenderData=null,!0}render(e){if(this._model.options.renderMinimap===0){this._shadow.setClassName("minimap-shadow-hidden"),this._sliderHorizontal.setWidth(0),this._sliderHorizontal.setHeight(0);return}e.scrollLeft+e.viewportWidth>=e.scrollWidth?this._shadow.setClassName("minimap-shadow-hidden"):this._shadow.setClassName("minimap-shadow-visible");const i=MinimapLayout.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(i.sliderNeeded?"block":"none"),this._slider.setTop(i.sliderTop),this._slider.setHeight(i.sliderHeight),this._sliderHorizontal.setLeft(0),this._sliderHorizontal.setWidth(this._model.options.minimapWidth),this._sliderHorizontal.setTop(0),this._sliderHorizontal.setHeight(i.sliderHeight),this.renderDecorations(i),this._lastRenderData=this.renderLines(i)}renderDecorations(e){if(this._renderDecorations){this._renderDecorations=!1;const t=this._model.getSelections();t.sort(Range$2.compareRangesUsingStarts);const i=this._model.getMinimapDecorationsInViewport(e.startLineNumber,e.endLineNumber);i.sort((g,f)=>(g.options.zIndex||0)-(f.options.zIndex||0));const{canvasInnerWidth:n,canvasInnerHeight:r}=this._model.options,s=this._model.options.minimapLineHeight,a=this._model.options.minimapCharWidth,l=this._model.getOptions().tabSize,d=this._decorationsCanvas.domNode.getContext("2d");d.clearRect(0,0,n,r);const c=new ContiguousLineMap(e.startLineNumber,e.endLineNumber,!1);this._renderSelectionLineHighlights(d,t,c,e,s),this._renderDecorationsLineHighlights(d,i,c,e,s);const u=new ContiguousLineMap(e.startLineNumber,e.endLineNumber,null);this._renderSelectionsHighlights(d,t,u,e,s,l,a,n),this._renderDecorationsHighlights(d,i,u,e,s,l,a,n)}}_renderSelectionLineHighlights(e,t,i,n,r){if(!this._selectionColor||this._selectionColor.isTransparent())return;e.fillStyle=this._selectionColor.transparent(.5).toString();let s=0,a=0;for(const l of t){const d=n.intersectWithViewport(l);if(!d)continue;const[c,u]=d;for(let p=c;p<=u;p++)i.set(p,!0);const g=n.getYForLineNumber(c,r),f=n.getYForLineNumber(u,r);a>=g||(a>s&&e.fillRect(MINIMAP_GUTTER_WIDTH,s,e.canvas.width,a-s),s=g),a=f}a>s&&e.fillRect(MINIMAP_GUTTER_WIDTH,s,e.canvas.width,a-s)}_renderDecorationsLineHighlights(e,t,i,n,r){const s=new Map;for(let a=t.length-1;a>=0;a--){const l=t[a],d=l.options.minimap;if(!d||d.position!==MinimapPosition.Inline)continue;const c=n.intersectWithViewport(l.range);if(!c)continue;const[u,g]=c,f=d.getColor(this._theme.value);if(!f||f.isTransparent())continue;let p=s.get(f.toString());p||(p=f.transparent(.5).toString(),s.set(f.toString(),p)),e.fillStyle=p;for(let m=u;m<=g;m++){if(i.has(m))continue;i.set(m,!0);const b=n.getYForLineNumber(u,r);e.fillRect(MINIMAP_GUTTER_WIDTH,b,e.canvas.width,r)}}}_renderSelectionsHighlights(e,t,i,n,r,s,a,l){if(!(!this._selectionColor||this._selectionColor.isTransparent()))for(const d of t){const c=n.intersectWithViewport(d);if(!c)continue;const[u,g]=c;for(let f=u;f<=g;f++)this.renderDecorationOnLine(e,i,d,this._selectionColor,n,f,r,r,s,a,l)}}_renderDecorationsHighlights(e,t,i,n,r,s,a,l){for(const d of t){const c=d.options.minimap;if(!c)continue;const u=n.intersectWithViewport(d.range);if(!u)continue;const[g,f]=u,p=c.getColor(this._theme.value);if(!(!p||p.isTransparent()))for(let m=g;m<=f;m++)switch(c.position){case MinimapPosition.Inline:this.renderDecorationOnLine(e,i,d.range,p,n,m,r,r,s,a,l);continue;case MinimapPosition.Gutter:{const b=n.getYForLineNumber(m,r);this.renderDecoration(e,p,2,b,GUTTER_DECORATION_WIDTH,r);continue}}}}renderDecorationOnLine(e,t,i,n,r,s,a,l,d,c,u){const g=r.getYForLineNumber(s,l);if(g+a<0||g>this._model.options.canvasInnerHeight)return;const{startLineNumber:f,endLineNumber:p}=i,m=f===s?i.startColumn:1,b=p===s?i.endColumn:this._model.getLineMaxColumn(s),_=this.getXOffsetForPosition(t,s,m,d,c,u),C=this.getXOffsetForPosition(t,s,b,d,c,u);this.renderDecoration(e,n,_,g,C-_,a)}getXOffsetForPosition(e,t,i,n,r,s){if(i===1)return MINIMAP_GUTTER_WIDTH;if((i-1)*r>=s)return s;let l=e.get(t);if(!l){const d=this._model.getLineContent(t);l=[MINIMAP_GUTTER_WIDTH];let c=MINIMAP_GUTTER_WIDTH;for(let u=1;u<d.length+1;u++){const g=d.charCodeAt(u-1),f=g===9?n*r:isFullWidthCharacter(g)?2*r:r,p=c+f;if(p>=s){l[u]=s;break}l[u]=p,c=p}e.set(t,l)}return i-1<l.length?l[i-1]:s}renderDecoration(e,t,i,n,r,s){e.fillStyle=t&&t.toString()||"",e.fillRect(i,n,r,s)}renderLines(e){const t=e.startLineNumber,i=e.endLineNumber,n=this._model.options.minimapLineHeight;if(this._lastRenderData&&this._lastRenderData.linesEquals(e)){const V=this._lastRenderData._get();return new RenderData(e,V.imageData,V.lines)}const r=this._getBuffer();if(!r)return null;const[s,a,l]=InnerMinimap._renderUntouchedLines(r,e.topPaddingLineCount,t,i,n,this._lastRenderData),d=this._model.getMinimapLinesRenderingData(t,i,l),c=this._model.getOptions().tabSize,u=this._model.options.defaultBackgroundColor,g=this._model.options.backgroundColor,f=this._model.options.foregroundAlpha,p=this._model.tokensColorTracker,m=p.backgroundIsLight(),b=this._model.options.renderMinimap,_=this._model.options.charRenderer(),C=this._model.options.fontScale,S=this._model.options.minimapCharWidth,E=(b===1?2:3)*C,x=n>E?Math.floor((n-E)/2):0,L=g.a/255,I=new RGBA8(Math.round((g.r-u.r)*L+u.r),Math.round((g.g-u.g)*L+u.g),Math.round((g.b-u.b)*L+u.b),255);let D=e.topPaddingLineCount*n;const N=[];for(let V=0,A=i-t+1;V<A;V++)l[V]&&InnerMinimap._renderLine(r,I,g.a,m,b,S,p,f,_,D,x,c,d[V],C,n),N[V]=new MinimapLine(D),D+=n;const F=s===-1?0:s,M=(a===-1?r.height:a)-F;return this._canvas.domNode.getContext("2d").putImageData(r,0,0,0,F,r.width,M),new RenderData(e,r,N)}static _renderUntouchedLines(e,t,i,n,r,s){const a=[];if(!s){for(let D=0,N=n-i+1;D<N;D++)a[D]=!0;return[-1,-1,a]}const l=s._get(),d=l.imageData.data,c=l.rendLineNumberStart,u=l.lines,g=u.length,f=e.width,p=e.data,m=(n-i+1)*r*f*4;let b=-1,_=-1,C=-1,S=-1,y=-1,E=-1,x=t*r;for(let D=i;D<=n;D++){const N=D-i,F=D-c,R=F>=0&&F<g?u[F].dy:-1;if(R===-1){a[N]=!0,x+=r;continue}const M=R*f*4,W=(R+r)*f*4,V=x*f*4,A=(x+r)*f*4;S===M&&E===V?(S=W,E=A):(C!==-1&&(p.set(d.subarray(C,S),y),b===-1&&C===0&&C===y&&(b=S),_===-1&&S===m&&C===y&&(_=C)),C=M,S=W,y=V,E=A),a[N]=!1,x+=r}C!==-1&&(p.set(d.subarray(C,S),y),b===-1&&C===0&&C===y&&(b=S),_===-1&&S===m&&C===y&&(_=C));const L=b===-1?-1:b/(f*4),I=_===-1?-1:_/(f*4);return[L,I,a]}static _renderLine(e,t,i,n,r,s,a,l,d,c,u,g,f,p,m){const b=f.content,_=f.tokens,C=e.width-s,S=m===1;let y=MINIMAP_GUTTER_WIDTH,E=0,x=0;for(let L=0,I=_.getCount();L<I;L++){const D=_.getEndOffset(L),N=_.getForeground(L),F=a.getColor(N);for(;E<D;E++){if(y>C)return;const R=b.charCodeAt(E);if(R===9){const M=g-(E+x)%g;x+=M-1,y+=M*s}else if(R===32)y+=s;else{const M=isFullWidthCharacter(R)?2:1;for(let W=0;W<M;W++)if(r===2?d.blockRenderChar(e,y,c+u,F,l,t,i,S):d.renderChar(e,y,c+u,R,F,l,t,i,p,n,S),y+=s,y>C)return}}}}}class ContiguousLineMap{constructor(e,t,i){this._startLineNumber=e,this._endLineNumber=t,this._defaultValue=i,this._values=[];for(let n=0,r=this._endLineNumber-this._startLineNumber+1;n<r;n++)this._values[n]=i}has(e){return this.get(e)!==this._defaultValue}set(e,t){e<this._startLineNumber||e>this._endLineNumber||(this._values[e-this._startLineNumber]=t)}get(e){return e<this._startLineNumber||e>this._endLineNumber?this._defaultValue:this._values[e-this._startLineNumber]}}class ViewOverlayWidgets extends ViewPart{constructor(e){super(e);const i=this._context.configuration.options.get(143);this._widgets={},this._verticalScrollbarWidth=i.verticalScrollbarWidth,this._minimapWidth=i.minimap.minimapWidth,this._horizontalScrollbarHeight=i.horizontalScrollbarHeight,this._editorHeight=i.height,this._editorWidth=i.width,this._domNode=createFastDomNode(document.createElement("div")),PartFingerprints.write(this._domNode,4),this._domNode.setClassName("overlayWidgets")}dispose(){super.dispose(),this._widgets={}}getDomNode(){return this._domNode}onConfigurationChanged(e){const i=this._context.configuration.options.get(143);return this._verticalScrollbarWidth=i.verticalScrollbarWidth,this._minimapWidth=i.minimap.minimapWidth,this._horizontalScrollbarHeight=i.horizontalScrollbarHeight,this._editorHeight=i.height,this._editorWidth=i.width,!0}addWidget(e){const t=createFastDomNode(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(),this._updateMaxMinWidth()}setWidgetPosition(e,t){const i=this._widgets[e.getId()];return i.preference===t?(this._updateMaxMinWidth(),!1):(i.preference=t,this.setShouldRender(),this._updateMaxMinWidth(),!0)}removeWidget(e){const t=e.getId();if(this._widgets.hasOwnProperty(t)){const n=this._widgets[t].domNode.domNode;delete this._widgets[t],n.parentNode.removeChild(n),this.setShouldRender(),this._updateMaxMinWidth()}}_updateMaxMinWidth(){var e,t;let i=0;const n=Object.keys(this._widgets);for(let r=0,s=n.length;r<s;r++){const a=n[r],d=(t=(e=this._widgets[a].widget).getMinContentWidthInPx)===null||t===void 0?void 0:t.call(e);typeof d<"u"&&(i=Math.max(i,d))}this._context.viewLayout.setOverlayWidgetsMinWidth(i)}_renderWidget(e){const t=e.domNode;if(e.preference===null){t.setTop("");return}if(e.preference===0)t.setTop(0),t.setRight(2*this._verticalScrollbarWidth+this._minimapWidth);else if(e.preference===1){const i=t.domNode.clientHeight;t.setTop(this._editorHeight-i-2*this._horizontalScrollbarHeight),t.setRight(2*this._verticalScrollbarWidth+this._minimapWidth)}else e.preference===2&&(t.setTop(0),t.domNode.style.right="50%")}prepareRender(e){}render(e){this._domNode.setWidth(this._editorWidth);const t=Object.keys(this._widgets);for(let i=0,n=t.length;i<n;i++){const r=t[i];this._renderWidget(this._widgets[r])}}}class Settings{constructor(e,t){const i=e.options;this.lineHeight=i.get(66),this.pixelRatio=i.get(141),this.overviewRulerLanes=i.get(82),this.renderBorder=i.get(81);const n=t.getColor(editorOverviewRulerBorder);this.borderColor=n?n.toString():null,this.hideCursor=i.get(59);const r=t.getColor(editorCursorForeground);this.cursorColor=r?r.transparent(.7).toString():null,this.themeType=t.type;const s=i.get(72),a=s.enabled,l=s.side,d=t.getColor(editorOverviewRulerBackground),c=TokenizationRegistry.getDefaultBackground();d?this.backgroundColor=d:a&&l==="right"?this.backgroundColor=c:this.backgroundColor=null;const g=i.get(143).overviewRuler;this.top=g.top,this.right=g.right,this.domWidth=g.width,this.domHeight=g.height,this.overviewRulerLanes===0?(this.canvasWidth=0,this.canvasHeight=0):(this.canvasWidth=this.domWidth*this.pixelRatio|0,this.canvasHeight=this.domHeight*this.pixelRatio|0);const[f,p]=this._initLanes(1,this.canvasWidth,this.overviewRulerLanes);this.x=f,this.w=p}_initLanes(e,t,i){const n=t-e;if(i>=3){const r=Math.floor(n/3),s=Math.floor(n/3),a=n-r-s,l=e,d=l+r,c=l+r+a;return[[0,l,d,l,c,l,d,l],[0,r,a,r+a,s,r+a+s,a+s,r+a+s]]}else if(i===2){const r=Math.floor(n/2),s=n-r,a=e,l=a+r;return[[0,a,a,a,l,a,a,a],[0,r,r,r,s,r+s,r+s,r+s]]}else{const r=e,s=n;return[[0,r,r,r,r,r,r,r],[0,s,s,s,s,s,s,s]]}}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&&Color.equals(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 DecorationsOverviewRuler extends ViewPart{constructor(e){super(e),this._actualShouldRender=0,this._renderedDecorations=[],this._renderedCursorPositions=[],this._domNode=createFastDomNode(document.createElement("canvas")),this._domNode.setClassName("decorationsOverviewRuler"),this._domNode.setPosition("absolute"),this._domNode.setLayerHinting(!0),this._domNode.setContain("strict"),this._domNode.setAttribute("aria-hidden","true"),this._updateSettings(!1),this._tokensColorTrackerListener=TokenizationRegistry.onDidChange(t=>{t.changedColorMap&&this._updateSettings(!0)}),this._cursorPositions=[]}dispose(){super.dispose(),this._tokensColorTrackerListener.dispose()}_updateSettings(e){const t=new Settings(this._context.configuration,this._context.theme);return this._settings&&this._settings.equals(t)?!1:(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)}_markRenderingIsNeeded(){return this._actualShouldRender=2,!0}_markRenderingIsMaybeNeeded(){return this._actualShouldRender=1,!0}onConfigurationChanged(e){return this._updateSettings(!1)?this._markRenderingIsNeeded():!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(Position$1.compare),this._markRenderingIsMaybeNeeded()}onDecorationsChanged(e){return e.affectsOverviewRuler?this._markRenderingIsMaybeNeeded():!1}onFlushed(e){return this._markRenderingIsNeeded()}onScrollChanged(e){return e.scrollHeightChanged?this._markRenderingIsNeeded():!1}onZonesChanged(e){return this._markRenderingIsNeeded()}onThemeChanged(e){return this._updateSettings(!1)?this._markRenderingIsNeeded():!1}getDomNode(){return this._domNode.domNode}prepareRender(e){}render(e){this._render(),this._actualShouldRender=0}_render(){const e=this._settings.backgroundColor;if(this._settings.overviewRulerLanes===0){this._domNode.setBackgroundColor(e?Color.Format.CSS.formatHexA(e):""),this._domNode.setDisplay("none");return}const t=this._context.viewModel.getAllOverviewRulerDecorations(this._context.theme);if(t.sort(OverviewRulerDecorationsGroup.compareByRenderingProps),this._actualShouldRender===1&&!OverviewRulerDecorationsGroup.equalsArr(this._renderedDecorations,t)&&(this._actualShouldRender=2),this._actualShouldRender===1&&!equals$2(this._renderedCursorPositions,this._cursorPositions,(p,m)=>p.lineNumber===m.lineNumber)&&(this._actualShouldRender=2),this._actualShouldRender===1)return;this._renderedDecorations=t,this._renderedCursorPositions=this._cursorPositions,this._domNode.setDisplay("block");const i=this._settings.canvasWidth,n=this._settings.canvasHeight,r=this._settings.lineHeight,s=this._context.viewLayout,a=this._context.viewLayout.getScrollHeight(),l=n/a,d=6*this._settings.pixelRatio|0,c=d/2|0,u=this._domNode.domNode.getContext("2d");e?e.isOpaque()?(u.fillStyle=Color.Format.CSS.formatHexA(e),u.fillRect(0,0,i,n)):(u.clearRect(0,0,i,n),u.fillStyle=Color.Format.CSS.formatHexA(e),u.fillRect(0,0,i,n)):u.clearRect(0,0,i,n);const g=this._settings.x,f=this._settings.w;for(const p of t){const m=p.color,b=p.data;u.fillStyle=m;let _=0,C=0,S=0;for(let y=0,E=b.length/3;y<E;y++){const x=b[3*y],L=b[3*y+1],I=b[3*y+2];let D=s.getVerticalOffsetForLineNumber(L)*l|0,N=(s.getVerticalOffsetForLineNumber(I)+r)*l|0;if(N-D<d){let R=(D+N)/2|0;R<c?R=c:R+c>n&&(R=n-c),D=R-c,N=R+c}D>S+1||x!==_?(y!==0&&u.fillRect(g[_],C,f[_],S-C),_=x,C=D,S=N):N>S&&(S=N)}u.fillRect(g[_],C,f[_],S-C)}if(!this._settings.hideCursor&&this._settings.cursorColor){const p=2*this._settings.pixelRatio|0,m=p/2|0,b=this._settings.x[7],_=this._settings.w[7];u.fillStyle=this._settings.cursorColor;let C=-100,S=-100;for(let y=0,E=this._cursorPositions.length;y<E;y++){const x=this._cursorPositions[y];let L=s.getVerticalOffsetForLineNumber(x.lineNumber)*l|0;L<m?L=m:L+m>n&&(L=n-m);const I=L-m,D=I+p;I>S+1?(y!==0&&u.fillRect(b,C,_,S-C),C=I,S=D):D>S&&(S=D)}u.fillRect(b,C,_,S-C)}this._settings.renderBorder&&this._settings.borderColor&&this._settings.overviewRulerLanes>0&&(u.beginPath(),u.lineWidth=1,u.strokeStyle=this._settings.borderColor,u.moveTo(0,0),u.lineTo(0,n),u.stroke(),u.moveTo(0,0),u.lineTo(i,0),u.stroke())}}class ColorZone{constructor(e,t,i){this._colorZoneBrand=void 0,this.from=e|0,this.to=t|0,this.colorId=i|0}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 OverviewRulerZone{constructor(e,t,i,n){this._overviewRulerZoneBrand=void 0,this.startLineNumber=e,this.endLineNumber=t,this.heightInLines=i,this.color=n,this._colorZone=null}static compare(e,t){return e.color===t.color?e.startLineNumber===t.startLineNumber?e.heightInLines===t.heightInLines?e.endLineNumber-t.endLineNumber:e.heightInLines-t.heightInLines:e.startLineNumber-t.startLineNumber:e.color<t.color?-1:1}setColorZone(e){this._colorZone=e}getColorZones(){return this._colorZone}}class OverviewZoneManager{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(OverviewRulerZone.compare)}setLineHeight(e){return this._lineHeight===e?!1:(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?!1:(this._domWidth=e,this._colorZonesInvalid=!0,!0)}getDOMHeight(){return this._domHeight}getCanvasHeight(){return this._domHeight*this._pixelRatio}setDOMHeight(e){return this._domHeight===e?!1:(this._domHeight=e,this._colorZonesInvalid=!0,!0)}getOuterHeight(){return this._outerHeight}setOuterHeight(e){return this._outerHeight===e?!1:(this._outerHeight=e,this._colorZonesInvalid=!0,!0)}resolveColorZones(){const e=this._colorZonesInvalid,t=Math.floor(this._lineHeight),i=Math.floor(this.getCanvasHeight()),n=Math.floor(this._outerHeight),r=i/n,s=Math.floor(4*this._pixelRatio/2),a=[];for(let l=0,d=this._zones.length;l<d;l++){const c=this._zones[l];if(!e){const y=c.getColorZones();if(y){a.push(y);continue}}const u=this._getVerticalOffsetForLine(c.startLineNumber),g=c.heightInLines===0?this._getVerticalOffsetForLine(c.endLineNumber)+t:u+c.heightInLines*t,f=Math.floor(r*u),p=Math.floor(r*g);let m=Math.floor((f+p)/2),b=p-m;b<s&&(b=s),m-b<0&&(m=b),m+b>i&&(m=i-b);const _=c.color;let C=this._color2Id[_];C||(C=++this._lastAssignedId,this._color2Id[_]=C,this._id2Color[C]=_);const S=new ColorZone(m-b,m+b,C);c.setColorZone(S),a.push(S)}return this._colorZonesInvalid=!1,a.sort(ColorZone.compare),a}}class OverviewRuler extends ViewEventHandler{constructor(e,t){super(),this._context=e;const i=this._context.configuration.options;this._domNode=createFastDomNode(document.createElement("canvas")),this._domNode.setClassName(t),this._domNode.setPosition("absolute"),this._domNode.setLayerHinting(!0),this._domNode.setContain("strict"),this._zoneManager=new OverviewZoneManager(n=>this._context.viewLayout.getVerticalOffsetForLineNumber(n)),this._zoneManager.setDOMWidth(0),this._zoneManager.setDOMHeight(0),this._zoneManager.setOuterHeight(this._context.viewLayout.getScrollHeight()),this._zoneManager.setLineHeight(i.get(66)),this._zoneManager.setPixelRatio(i.get(141)),this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return e.hasChanged(66)&&(this._zoneManager.setLineHeight(t.get(66)),this._render()),e.hasChanged(141)&&(this._zoneManager.setPixelRatio(t.get(141)),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(this._zoneManager.getOuterHeight()===0)return!1;const e=this._zoneManager.getCanvasWidth(),t=this._zoneManager.getCanvasHeight(),i=this._zoneManager.resolveColorZones(),n=this._zoneManager.getId2Color(),r=this._domNode.domNode.getContext("2d");return r.clearRect(0,0,e,t),i.length>0&&this._renderOneLane(r,i,n,e),!0}_renderOneLane(e,t,i,n){let r=0,s=0,a=0;for(const l of t){const d=l.colorId,c=l.from,u=l.to;d!==r?(e.fillRect(0,s,n,a-s),r=d,e.fillStyle=i[r],s=c,a=u):a>=c?a=Math.max(a,u):(e.fillRect(0,s,n,a-s),s=c,a=u)}e.fillRect(0,s,n,a-s)}}class Rulers extends ViewPart{constructor(e){super(e),this.domNode=createFastDomNode(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(101),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth}dispose(){super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return this._rulers=t.get(101),this._typicalHalfwidthCharacterWidth=t.get(50).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:n}=this._context.viewModel.model.getOptions(),r=n;let s=t-e;for(;s>0;){const a=createFastDomNode(document.createElement("div"));a.setClassName("view-ruler"),a.setWidth(r),this.domNode.appendChild(a),this._renderedRulers.push(a),s--}return}let i=e-t;for(;i>0;){const n=this._renderedRulers.pop();this.domNode.removeChild(n),i--}}render(e){this._ensureRulersCount();for(let t=0,i=this._rulers.length;t<i;t++){const n=this._renderedRulers[t],r=this._rulers[t];n.setBoxShadow(r.color?`1px 0 0 0 ${r.color} inset`:""),n.setHeight(Math.min(e.scrollHeight,1e6)),n.setLeft(r.column*this._typicalHalfwidthCharacterWidth)}}}class ScrollDecorationViewPart extends ViewPart{constructor(e){super(e),this._scrollTop=0,this._width=0,this._updateWidth(),this._shouldShow=!1;const i=this._context.configuration.options.get(102);this._useShadows=i.useShadows,this._domNode=createFastDomNode(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):!1}getDomNode(){return this._domNode}_updateWidth(){const t=this._context.configuration.options.get(143);t.minimap.renderMinimap===0||t.minimap.minimapWidth>0&&t.minimap.minimapLeft===0?this._width=t.width:this._width=t.width-t.verticalScrollbarWidth}onConfigurationChanged(e){const i=this._context.configuration.options.get(102);return this._useShadows=i.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":"")}}class HorizontalRangeWithStyle{constructor(e){this.left=e.left,this.width=e.width,this.startStyle=null,this.endStyle=null}}class LineVisibleRangesWithStyle{constructor(e,t){this.lineNumber=e,this.ranges=t}}function toStyledRange(o){return new HorizontalRangeWithStyle(o)}function toStyled(o){return new LineVisibleRangesWithStyle(o.lineNumber,o.ranges.map(toStyledRange))}class SelectionsOverlay extends DynamicViewOverlay{constructor(e){super(),this._previousFrameVisibleRangesWithStyle=[],this._context=e;const t=this._context.configuration.options;this._lineHeight=t.get(66),this._roundedSelection=t.get(100),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,this._selections=[],this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return this._lineHeight=t.get(66),this._roundedSelection=t.get(100),this._typicalHalfwidthCharacterWidth=t.get(50).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 r=null,s=null;if(i&&i.length>0&&t.length>0){const a=t[0].lineNumber;if(a===e.startLineNumber)for(let d=0;!r&&d<i.length;d++)i[d].lineNumber===a&&(r=i[d].ranges[0]);const l=t[t.length-1].lineNumber;if(l===e.endLineNumber)for(let d=i.length-1;!s&&d>=0;d--)i[d].lineNumber===l&&(s=i[d].ranges[0]);r&&!r.startStyle&&(r=null),s&&!s.startStyle&&(s=null)}for(let a=0,l=t.length;a<l;a++){const d=t[a].ranges[0],c=d.left,u=d.left+d.width,g={top:0,bottom:0},f={top:0,bottom:0};if(a>0){const p=t[a-1].ranges[0].left,m=t[a-1].ranges[0].left+t[a-1].ranges[0].width;abs(c-p)<n?g.top=2:c>p&&(g.top=1),abs(u-m)<n?f.top=2:p<u&&u<m&&(f.top=1)}else r&&(g.top=r.startStyle.top,f.top=r.endStyle.top);if(a+1<l){const p=t[a+1].ranges[0].left,m=t[a+1].ranges[0].left+t[a+1].ranges[0].width;abs(c-p)<n?g.bottom=2:p<c&&c<m&&(g.bottom=1),abs(u-m)<n?f.bottom=2:u<m&&(f.bottom=1)}else s&&(g.bottom=s.startStyle.bottom,f.bottom=s.endStyle.bottom);d.startStyle=g,d.endStyle=f}}_getVisibleRangesWithStyle(e,t,i){const r=(t.linesVisibleRangesForRange(e,!0)||[]).map(toStyled);return!this._visibleRangesHaveGaps(r)&&this._roundedSelection&&this._enrichVisibleRangesWithStyle(t.visibleRange,r,i),r}_createSelectionPiece(e,t,i,n,r){return'<div class="cslr '+i+'" style="top:'+e.toString()+"px;left:"+n.toString()+"px;width:"+r.toString()+"px;height:"+t+'px;"></div>'}_actualRenderOneSelection(e,t,i,n){if(n.length===0)return;const r=!!n[0].ranges[0].startStyle,s=this._lineHeight.toString(),a=(this._lineHeight-1).toString(),l=n[0].lineNumber,d=n[n.length-1].lineNumber;for(let c=0,u=n.length;c<u;c++){const g=n[c],f=g.lineNumber,p=f-t,m=i&&(f===d||f===l)?a:s,b=i&&f===l?1:0;let _="",C="";for(let S=0,y=g.ranges.length;S<y;S++){const E=g.ranges[S];if(r){const L=E.startStyle,I=E.endStyle;if(L.top===1||L.bottom===1){_+=this._createSelectionPiece(b,m,SelectionsOverlay.SELECTION_CLASS_NAME,E.left-SelectionsOverlay.ROUNDED_PIECE_WIDTH,SelectionsOverlay.ROUNDED_PIECE_WIDTH);let D=SelectionsOverlay.EDITOR_BACKGROUND_CLASS_NAME;L.top===1&&(D+=" "+SelectionsOverlay.SELECTION_TOP_RIGHT),L.bottom===1&&(D+=" "+SelectionsOverlay.SELECTION_BOTTOM_RIGHT),_+=this._createSelectionPiece(b,m,D,E.left-SelectionsOverlay.ROUNDED_PIECE_WIDTH,SelectionsOverlay.ROUNDED_PIECE_WIDTH)}if(I.top===1||I.bottom===1){_+=this._createSelectionPiece(b,m,SelectionsOverlay.SELECTION_CLASS_NAME,E.left+E.width,SelectionsOverlay.ROUNDED_PIECE_WIDTH);let D=SelectionsOverlay.EDITOR_BACKGROUND_CLASS_NAME;I.top===1&&(D+=" "+SelectionsOverlay.SELECTION_TOP_LEFT),I.bottom===1&&(D+=" "+SelectionsOverlay.SELECTION_BOTTOM_LEFT),_+=this._createSelectionPiece(b,m,D,E.left+E.width,SelectionsOverlay.ROUNDED_PIECE_WIDTH)}}let x=SelectionsOverlay.SELECTION_CLASS_NAME;if(r){const L=E.startStyle,I=E.endStyle;L.top===0&&(x+=" "+SelectionsOverlay.SELECTION_TOP_LEFT),L.bottom===0&&(x+=" "+SelectionsOverlay.SELECTION_BOTTOM_LEFT),I.top===0&&(x+=" "+SelectionsOverlay.SELECTION_TOP_RIGHT),I.bottom===0&&(x+=" "+SelectionsOverlay.SELECTION_BOTTOM_RIGHT)}C+=this._createSelectionPiece(b,m,x,E.left,E.width)}e[p][0]+=_,e[p][1]+=C}}prepareRender(e){const t=[],i=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber;for(let s=i;s<=n;s++){const a=s-i;t[a]=["",""]}const r=[];for(let s=0,a=this._selections.length;s<a;s++){const l=this._selections[s];if(l.isEmpty()){r[s]=null;continue}const d=this._getVisibleRangesWithStyle(l,e,this._previousFrameVisibleRangesWithStyle[s]);r[s]=d,this._actualRenderOneSelection(t,i,this._selections.length>1,d)}this._previousFrameVisibleRangesWithStyle=r,this._renderResult=t.map(([s,a])=>s+a)}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}SelectionsOverlay.SELECTION_CLASS_NAME="selected-text";SelectionsOverlay.SELECTION_TOP_LEFT="top-left-radius";SelectionsOverlay.SELECTION_BOTTOM_LEFT="bottom-left-radius";SelectionsOverlay.SELECTION_TOP_RIGHT="top-right-radius";SelectionsOverlay.SELECTION_BOTTOM_RIGHT="bottom-right-radius";SelectionsOverlay.EDITOR_BACKGROUND_CLASS_NAME="monaco-editor-background";SelectionsOverlay.ROUNDED_PIECE_WIDTH=10;registerThemingParticipant((o,e)=>{const t=o.getColor(editorSelectionForeground);t&&!t.isTransparent()&&e.addRule(`.monaco-editor .view-line span.inline-selected-text { color: ${t}; }`)});function abs(o){return o<0?-o:o}class ViewCursorRenderData{constructor(e,t,i,n,r,s,a){this.top=e,this.left=t,this.paddingLeft=i,this.width=n,this.height=r,this.textContent=s,this.textContentClassName=a}}class ViewCursor{constructor(e){this._context=e;const t=this._context.configuration.options,i=t.get(50);this._cursorStyle=t.get(28),this._lineHeight=t.get(66),this._typicalHalfwidthCharacterWidth=i.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(t.get(31),this._typicalHalfwidthCharacterWidth),this._isVisible=!0,this._domNode=createFastDomNode(document.createElement("div")),this._domNode.setClassName(`cursor ${MOUSE_CURSOR_TEXT_CSS_CLASS_NAME}`),this._domNode.setHeight(this._lineHeight),this._domNode.setTop(0),this._domNode.setLeft(0),applyFontInfo(this._domNode,i),this._domNode.setDisplay("none"),this._position=new Position$1(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(50);return this._cursorStyle=t.get(28),this._lineHeight=t.get(66),this._typicalHalfwidthCharacterWidth=i.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(t.get(31),this._typicalHalfwidthCharacterWidth),applyFontInfo(this._domNode,i),!0}onCursorPositionChanged(e,t){return t?this._domNode.domNode.style.transitionProperty="none":this._domNode.domNode.style.transitionProperty="",this._position=e,!0}_getGraphemeAwarePosition(){const{lineNumber:e,column:t}=this._position,i=this._context.viewModel.getLineContent(e),[n,r]=getCharContainingOffset(i,t-1);return[new Position$1(e,n+1),i.substring(n,r)]}_prepareRender(e){let t="",i="";const[n,r]=this._getGraphemeAwarePosition();if(this._cursorStyle===TextEditorCursorStyle$1.Line||this._cursorStyle===TextEditorCursorStyle$1.LineThin){const g=e.visibleRangeForPosition(n);if(!g||g.outsideRenderedLine)return null;let f;this._cursorStyle===TextEditorCursorStyle$1.Line?(f=computeScreenAwareSize(this._lineCursorWidth>0?this._lineCursorWidth:2),f>2&&(t=r,i=this._getTokenClassName(n))):f=computeScreenAwareSize(1);let p=g.left,m=0;f>=2&&p>=1&&(m=1,p-=m);const b=e.getVerticalOffsetForLineNumber(n.lineNumber)-e.bigNumbersDelta;return new ViewCursorRenderData(b,p,m,f,this._lineHeight,t,i)}const s=e.linesVisibleRangesForRange(new Range$2(n.lineNumber,n.column,n.lineNumber,n.column+r.length),!1);if(!s||s.length===0)return null;const a=s[0];if(a.outsideRenderedLine||a.ranges.length===0)return null;const l=a.ranges[0],d=r===" "?this._typicalHalfwidthCharacterWidth:l.width<1?this._typicalHalfwidthCharacterWidth:l.width;this._cursorStyle===TextEditorCursorStyle$1.Block&&(t=r,i=this._getTokenClassName(n));let c=e.getVerticalOffsetForLineNumber(n.lineNumber)-e.bigNumbersDelta,u=this._lineHeight;return(this._cursorStyle===TextEditorCursorStyle$1.Underline||this._cursorStyle===TextEditorCursorStyle$1.UnderlineThin)&&(c+=this._lineHeight-2,u=2),new ViewCursorRenderData(c,l.left,0,d,u,t,i)}_getTokenClassName(e){const t=this._context.viewModel.getViewLineData(e.lineNumber),i=t.tokens.findTokenIndexAtOffset(e.column-1);return t.tokens.getClassName(i)}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 ${MOUSE_CURSOR_TEXT_CSS_CLASS_NAME} ${this._renderData.textContentClassName}`),this._domNode.setDisplay("block"),this._domNode.setTop(this._renderData.top),this._domNode.setLeft(this._renderData.left),this._domNode.setPaddingLeft(this._renderData.paddingLeft),this._domNode.setWidth(this._renderData.width),this._domNode.setLineHeight(this._renderData.height),this._domNode.setHeight(this._renderData.height),{domNode:this._domNode.domNode,position:this._position,contentLeft:this._renderData.left,height:this._renderData.height,width:2}):(this._domNode.setDisplay("none"),null)}}class ViewCursors extends ViewPart{constructor(e){super(e);const t=this._context.configuration.options;this._readOnly=t.get(90),this._cursorBlinking=t.get(26),this._cursorStyle=t.get(28),this._cursorSmoothCaretAnimation=t.get(27),this._selectionIsEmpty=!0,this._isComposingInput=!1,this._isVisible=!1,this._primaryCursor=new ViewCursor(this._context),this._secondaryCursors=[],this._renderData=[],this._domNode=createFastDomNode(document.createElement("div")),this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true"),this._updateDomClassName(),this._domNode.appendChild(this._primaryCursor.getDomNode()),this._startCursorBlinkAnimation=new TimeoutTimer,this._cursorFlatBlinkInterval=new IntervalTimer,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(90),this._cursorBlinking=t.get(26),this._cursorStyle=t.get(28),this._cursorSmoothCaretAnimation=t.get(27),this._updateBlinking(),this._updateDomClassName(),this._primaryCursor.onConfigurationChanged(e);for(let i=0,n=this._secondaryCursors.length;i<n;i++)this._secondaryCursors[i].onConfigurationChanged(e);return!0}_onCursorPositionChanged(e,t,i){const n=this._secondaryCursors.length!==t.length||this._cursorSmoothCaretAnimation==="explicit"&&i!==3;if(this._primaryCursor.onCursorPositionChanged(e,n),this._updateBlinking(),this._secondaryCursors.length<t.length){const r=t.length-this._secondaryCursors.length;for(let s=0;s<r;s++){const a=new ViewCursor(this._context);this._domNode.domNode.insertBefore(a.getDomNode().domNode,this._primaryCursor.getDomNode().domNode.nextSibling),this._secondaryCursors.push(a)}}else if(this._secondaryCursors.length>t.length){const r=this._secondaryCursors.length-t.length;for(let s=0;s<r;s++)this._domNode.removeChild(this._secondaryCursors[0].getDomNode()),this._secondaryCursors.splice(0,1)}for(let r=0;r<t.length;r++)this._secondaryCursors[r].onCursorPositionChanged(t[r],n)}onCursorStateChanged(e){const t=[];for(let n=0,r=e.selections.length;n<r;n++)t[n]=e.selections[n].getPosition();this._onCursorPositionChanged(t[0],t.slice(1),e.reason);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=i=>{for(let n=0,r=e.ranges.length;n<r;n++)if(e.ranges[n].fromLineNumber<=i.lineNumber&&i.lineNumber<=e.ranges[n].toLineNumber)return!0;return!1};if(t(this._primaryCursor.getPosition()))return!0;for(const i of this._secondaryCursors)if(t(i.getPosition()))return!0;return!1}onZonesChanged(e){return!0}_getCursorBlinking(){return this._isComposingInput||!this._editorHasFocus?0:this._readOnly?5:this._cursorBlinking}_updateBlinking(){this._startCursorBlinkAnimation.cancel(),this._cursorFlatBlinkInterval.cancel();const e=this._getCursorBlinking(),t=e===0,i=e===5;t?this._hide():this._show(),this._blinkingEnabled=!1,this._updateDomClassName(),!t&&!i&&(e===1?this._cursorFlatBlinkInterval.cancelAndSet(()=>{this._isVisible?this._hide():this._show()},ViewCursors.BLINK_INTERVAL):this._startCursorBlinkAnimation.setIfNotSet(()=>{this._blinkingEnabled=!0,this._updateDomClassName()},ViewCursors.BLINK_INTERVAL))}_updateDomClassName(){this._domNode.setClassName(this._getClassName())}_getClassName(){let e="cursors-layer";switch(this._selectionIsEmpty||(e+=" has-selection"),this._cursorStyle){case TextEditorCursorStyle$1.Line:e+=" cursor-line-style";break;case TextEditorCursorStyle$1.Block:e+=" cursor-block-style";break;case TextEditorCursorStyle$1.Underline:e+=" cursor-underline-style";break;case TextEditorCursorStyle$1.LineThin:e+=" cursor-line-thin-style";break;case TextEditorCursorStyle$1.BlockOutline:e+=" cursor-block-outline-style";break;case TextEditorCursorStyle$1.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;case 5:e+=" cursor-solid";break;default:e+=" cursor-solid"}else e+=" cursor-solid";return(this._cursorSmoothCaretAnimation==="on"||this._cursorSmoothCaretAnimation==="explicit")&&(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){const t=[];let i=0;const n=this._primaryCursor.render(e);n&&(t[i++]=n);for(let r=0,s=this._secondaryCursors.length;r<s;r++){const a=this._secondaryCursors[r].render(e);a&&(t[i++]=a)}this._renderData=t}getLastRenderData(){return this._renderData}}ViewCursors.BLINK_INTERVAL=500;registerThemingParticipant((o,e)=>{const t=o.getColor(editorCursorForeground);if(t){let i=o.getColor(editorCursorBackground);i||(i=t.opposite()),e.addRule(`.monaco-editor .cursors-layer .cursor { background-color: ${t}; border-color: ${t}; color: ${i}; }`),isHighContrast(o.type)&&e.addRule(`.monaco-editor .cursors-layer.has-selection .cursor { border-left: 1px solid ${i}; border-right: 1px solid ${i}; }`)}});const invalidFunc$1=()=>{throw new Error("Invalid change accessor")};class ViewZones extends ViewPart{constructor(e){super(e);const t=this._context.configuration.options,i=t.get(143);this._lineHeight=t.get(66),this._contentWidth=i.contentWidth,this._contentLeft=i.contentLeft,this.domNode=createFastDomNode(document.createElement("div")),this.domNode.setClassName("view-zones"),this.domNode.setPosition("absolute"),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this.marginDomNode=createFastDomNode(document.createElement("div")),this.marginDomNode.setClassName("margin-view-zones"),this.marginDomNode.setPosition("absolute"),this.marginDomNode.setAttribute("role","presentation"),this.marginDomNode.setAttribute("aria-hidden","true"),this._zones={}}dispose(){super.dispose(),this._zones={}}_recomputeWhitespacesProps(){const e=this._context.viewLayout.getWhitespaces(),t=new Map;for(const n of e)t.set(n.id,n);let i=!1;return this._context.viewModel.changeWhitespace(n=>{const r=Object.keys(this._zones);for(let s=0,a=r.length;s<a;s++){const l=r[s],d=this._zones[l],c=this._computeWhitespaceProps(d.delegate);d.isInHiddenArea=c.isInHiddenArea;const u=t.get(l);u&&(u.afterLineNumber!==c.afterViewLineNumber||u.height!==c.heightInPx)&&(n.changeOneWhitespace(l,c.afterViewLineNumber,c.heightInPx),this._safeCallOnComputedHeight(d.delegate,c.heightInPx),i=!0)}}),i}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(143);return this._lineHeight=t.get(66),this._contentWidth=i.contentWidth,this._contentLeft=i.contentLeft,e.hasChanged(66)&&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){var t,i;return(i=(t=e.ordinal)!==null&&t!==void 0?t:e.afterColumn)!==null&&i!==void 0?i:1e4}_computeWhitespaceProps(e){if(e.afterLineNumber===0)return{isInHiddenArea:!1,afterViewLineNumber:0,heightInPx:this._heightInPixels(e),minWidthInPx:this._minWidthInPixels(e)};let t;if(typeof e.afterColumn<"u")t=this._context.viewModel.model.validatePosition({lineNumber:e.afterLineNumber,column:e.afterColumn});else{const s=this._context.viewModel.model.validatePosition({lineNumber:e.afterLineNumber,column:1}).lineNumber;t=new Position$1(s,this._context.viewModel.model.getLineMaxColumn(s))}let i;t.column===this._context.viewModel.model.getLineMaxColumn(t.lineNumber)?i=this._context.viewModel.model.validatePosition({lineNumber:t.lineNumber+1,column:1}):i=this._context.viewModel.model.validatePosition({lineNumber:t.lineNumber,column:t.column+1});const n=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(t,e.afterColumnAffinity,!0),r=e.showInHiddenAreas||this._context.viewModel.coordinatesConverter.modelPositionIsVisible(i);return{isInHiddenArea:!r,afterViewLineNumber:n.lineNumber,heightInPx:r?this._heightInPixels(e):0,minWidthInPx:this._minWidthInPixels(e)}}changeViewZones(e){let t=!1;return this._context.viewModel.changeWhitespace(i=>{const n={addZone:r=>(t=!0,this._addZone(i,r)),removeZone:r=>{r&&(t=this._removeZone(i,r)||t)},layoutZone:r=>{r&&(t=this._layoutZone(i,r)||t)}};safeInvoke1Arg(e,n),n.addZone=invalidFunc$1,n.removeZone=invalidFunc$1,n.layoutZone=invalidFunc$1}),t}_addZone(e,t){const i=this._computeWhitespaceProps(t),r={whitespaceId:e.insertWhitespace(i.afterViewLineNumber,this._getZoneOrdinal(t),i.heightInPx,i.minWidthInPx),delegate:t,isInHiddenArea:i.isInHiddenArea,isVisible:!1,domNode:createFastDomNode(t.domNode),marginDomNode:t.marginDomNode?createFastDomNode(t.marginDomNode):null};return this._safeCallOnComputedHeight(r.delegate,i.heightInPx),r.domNode.setPosition("absolute"),r.domNode.domNode.style.width="100%",r.domNode.setDisplay("none"),r.domNode.setAttribute("monaco-view-zone",r.whitespaceId),this.domNode.appendChild(r.domNode),r.marginDomNode&&(r.marginDomNode.setPosition("absolute"),r.marginDomNode.domNode.style.width="100%",r.marginDomNode.setDisplay("none"),r.marginDomNode.setAttribute("monaco-view-zone",r.whitespaceId),this.marginDomNode.appendChild(r.marginDomNode)),this._zones[r.whitespaceId]=r,this.setShouldRender(),r.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 i.isInHiddenArea=n.isInHiddenArea,e.changeOneWhitespace(i.whitespaceId,n.afterViewLineNumber,n.heightInPx),this._safeCallOnComputedHeight(i.delegate,n.heightInPx),this.setShouldRender(),!0}return!1}shouldSuppressMouseDownOnViewZone(e){return this._zones.hasOwnProperty(e)?!!this._zones[e].delegate.suppressMouseDown:!1}_heightInPixels(e){return typeof e.heightInPx=="number"?e.heightInPx:typeof e.heightInLines=="number"?this._lineHeight*e.heightInLines:this._lineHeight}_minWidthInPixels(e){return typeof e.minWidthInPx=="number"?e.minWidthInPx:0}_safeCallOnComputedHeight(e,t){if(typeof e.onComputedHeight=="function")try{e.onComputedHeight(t)}catch(i){onUnexpectedError(i)}}_safeCallOnDomNodeTop(e,t){if(typeof e.onDomNodeTop=="function")try{e.onDomNodeTop(t)}catch(i){onUnexpectedError(i)}}prepareRender(e){}render(e){const t=e.viewportData.whitespaceViewportData,i={};let n=!1;for(const s of t)this._zones[s.id].isInHiddenArea||(i[s.id]=s,n=!0);const r=Object.keys(this._zones);for(let s=0,a=r.length;s<a;s++){const l=r[s],d=this._zones[l];let c=0,u=0,g="none";i.hasOwnProperty(l)?(c=i[l].verticalOffset-e.bigNumbersDelta,u=i[l].height,g="block",d.isVisible||(d.domNode.setAttribute("monaco-visible-view-zone","true"),d.isVisible=!0),this._safeCallOnDomNodeTop(d.delegate,e.getScrolledTopFromAbsoluteTop(i[l].verticalOffset))):(d.isVisible&&(d.domNode.removeAttribute("monaco-visible-view-zone"),d.isVisible=!1),this._safeCallOnDomNodeTop(d.delegate,e.getScrolledTopFromAbsoluteTop(-1e6))),d.domNode.setTop(c),d.domNode.setHeight(u),d.domNode.setDisplay(g),d.marginDomNode&&(d.marginDomNode.setTop(c),d.marginDomNode.setHeight(u),d.marginDomNode.setDisplay(g))}n&&(this.domNode.setWidth(Math.max(e.scrollWidth,this._contentWidth)),this.marginDomNode.setWidth(this._contentLeft))}}function safeInvoke1Arg(o,e){try{return o(e)}catch(t){onUnexpectedError(t)}}class EditorTheme{get type(){return this._theme.type}get value(){return this._theme}constructor(e){this._theme=e}update(e){this._theme=e}getColor(e){return this._theme.getColor(e)}}class ViewContext{constructor(e,t,i){this.configuration=e,this.theme=new EditorTheme(t),this.viewModel=i,this.viewLayout=i.viewLayout}addEventHandler(e){this.viewModel.addViewEventHandler(e)}removeEventHandler(e){this.viewModel.removeViewEventHandler(e)}}class ViewportData{constructor(e,t,i,n){this.selections=e,this.startLineNumber=t.startLineNumber|0,this.endLineNumber=t.endLineNumber|0,this.relativeVerticalOffset=t.relativeVerticalOffset,this.bigNumbersDelta=t.bigNumbersDelta|0,this.whitespaceViewportData=i,this._model=n,this.visibleRange=new Range$2(t.startLineNumber,this._model.getLineMinColumn(t.startLineNumber),t.endLineNumber,this._model.getLineMaxColumn(t.endLineNumber))}getViewLineRenderingData(e){return this._model.getViewportViewLineRenderingData(this.visibleRange,e)}getDecorationsInViewport(){return this._model.getDecorationsInViewport(this.visibleRange)}}class BlockDecorations extends ViewPart{constructor(e){super(e),this.blocks=[],this.contentWidth=-1,this.contentLeft=0,this.domNode=createFastDomNode(document.createElement("div")),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this.domNode.setClassName("blockDecorations-container"),this.update()}update(){let e=!1;const i=this._context.configuration.options.get(143),n=i.contentWidth-i.verticalScrollbarWidth;this.contentWidth!==n&&(this.contentWidth=n,e=!0);const r=i.contentLeft;return this.contentLeft!==r&&(this.contentLeft=r,e=!0),e}dispose(){super.dispose()}onConfigurationChanged(e){return this.update()}onScrollChanged(e){return e.scrollTopChanged||e.scrollLeftChanged}onDecorationsChanged(e){return!0}onZonesChanged(e){return!0}prepareRender(e){}render(e){var t;let i=0;const n=e.getDecorationsInViewport();for(const r of n){if(!r.options.blockClassName)continue;let s=this.blocks[i];s||(s=this.blocks[i]=createFastDomNode(document.createElement("div")),this.domNode.appendChild(s));let a,l;r.options.blockIsAfterEnd?(a=e.getVerticalOffsetAfterLineNumber(r.range.endLineNumber,!1),l=e.getVerticalOffsetAfterLineNumber(r.range.endLineNumber,!0)):(a=e.getVerticalOffsetForLineNumber(r.range.startLineNumber,!0),l=r.range.isEmpty()&&!r.options.blockDoesNotCollapse?e.getVerticalOffsetForLineNumber(r.range.startLineNumber,!1):e.getVerticalOffsetAfterLineNumber(r.range.endLineNumber,!0));const[d,c,u,g]=(t=r.options.blockPadding)!==null&&t!==void 0?t:[0,0,0,0];s.setClassName("blockDecorations-block "+r.options.blockClassName),s.setLeft(this.contentLeft-g),s.setWidth(this.contentWidth+g+c),s.setTop(a-e.scrollTop-d),s.setHeight(l-a+d+u),i++}for(let r=i;r<this.blocks.length;r++)this.blocks[r].domNode.remove();this.blocks.length=i}}class WhitespaceOverlay extends DynamicViewOverlay{constructor(e){super(),this._context=e,this._options=new WhitespaceOptions(this._context.configuration),this._selection=[],this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const t=new WhitespaceOptions(this._context.configuration);return this._options.equals(t)?e.hasChanged(143):(this._options=t,!0)}onCursorStateChanged(e){return this._selection=e.selections,this._options.renderWhitespace==="selection"}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}prepareRender(e){if(this._options.renderWhitespace==="none"){this._renderResult=null;return}const t=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber-t+1,r=new Array(n);for(let a=0;a<n;a++)r[a]=!0;const s=this._context.viewModel.getMinimapLinesRenderingData(e.viewportData.startLineNumber,e.viewportData.endLineNumber,r);this._renderResult=[];for(let a=e.viewportData.startLineNumber;a<=e.viewportData.endLineNumber;a++){const l=a-e.viewportData.startLineNumber,d=s.data[l];let c=null;if(this._options.renderWhitespace==="selection"){const u=this._selection;for(const g of u){if(g.endLineNumber<a||g.startLineNumber>a)continue;const f=g.startLineNumber===a?g.startColumn:d.minColumn,p=g.endLineNumber===a?g.endColumn:d.maxColumn;f<p&&(c||(c=[]),c.push(new LineRange(f-1,p-1)))}}this._renderResult[l]=this._applyRenderWhitespace(e,a,c,d)}}_applyRenderWhitespace(e,t,i,n){if(this._options.renderWhitespace==="selection"&&!i||this._options.renderWhitespace==="trailing"&&n.continuesWithWrappedLine)return"";const r=this._context.theme.getColor(editorWhitespaces),s=this._options.renderWithSVG,a=n.content,l=this._options.stopRenderingLineAfter===-1?a.length:Math.min(this._options.stopRenderingLineAfter,a.length),d=n.continuesWithWrappedLine,c=n.minColumn-1,u=this._options.renderWhitespace==="boundary",g=this._options.renderWhitespace==="trailing",f=this._options.lineHeight,p=this._options.middotWidth,m=this._options.wsmiddotWidth,b=this._options.spaceWidth,_=Math.abs(m-b),C=Math.abs(p-b),S=_<C?11825:183,y=this._options.canUseHalfwidthRightwardsArrow;let E="",x=!1,L=firstNonWhitespaceIndex(a),I;L===-1?(x=!0,L=l,I=l):I=lastNonWhitespaceIndex(a);let D=0,N=i&&i[D],F=0;for(let R=c;R<l;R++){const M=a.charCodeAt(R);if(N&&R>=N.endOffset&&(D++,N=i&&i[D]),M!==9&&M!==32||g&&!x&&R<=I)continue;if(u&&R>=L&&R<=I&&M===32){const V=R-1>=0?a.charCodeAt(R-1):0,A=R+1<l?a.charCodeAt(R+1):0;if(V!==32&&A!==32)continue}if(u&&d&&R===l-1){const V=R-1>=0?a.charCodeAt(R-1):0;if(M===32&&V!==32&&V!==9)continue}if(i&&(!N||N.startOffset>R||N.endOffset<=R))continue;const W=e.visibleRangeForPosition(new Position$1(t,R+1));W&&(s?(F=Math.max(F,W.left),M===9?E+=this._renderArrow(f,b,W.left):E+=`<circle cx="${(W.left+b/2).toFixed(2)}" cy="${(f/2).toFixed(2)}" r="${(b/7).toFixed(2)}" />`):M===9?E+=`<div class="mwh" style="left:${W.left}px;height:${f}px;">${y?"→":"→"}</div>`:E+=`<div class="mwh" style="left:${W.left}px;height:${f}px;">${String.fromCharCode(S)}</div>`)}return s?(F=Math.round(F+b),`<svg style="position:absolute;width:${F}px;height:${f}px" viewBox="0 0 ${F} ${f}" xmlns="http://www.w3.org/2000/svg" fill="${r}">`+E+"</svg>"):E}_renderArrow(e,t,i){const n=t/7,r=t,s=e/2,a=i,l={x:0,y:n/2},d={x:100/125*r,y:l.y},c={x:d.x-.2*d.x,y:d.y+.2*d.x},u={x:c.x+.1*d.x,y:c.y+.1*d.x},g={x:u.x+.35*d.x,y:u.y-.35*d.x},f={x:g.x,y:-g.y},p={x:u.x,y:-u.y},m={x:c.x,y:-c.y},b={x:d.x,y:-d.y},_={x:l.x,y:-l.y};return`<path d="M ${[l,d,c,u,g,f,p,m,b,_].map(y=>`${(a+y.x).toFixed(2)} ${(s+y.y).toFixed(2)}`).join(" L ")}" />`}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}class WhitespaceOptions{constructor(e){const t=e.options,i=t.get(50),n=t.get(38);n==="off"?(this.renderWhitespace="none",this.renderWithSVG=!1):n==="svg"?(this.renderWhitespace=t.get(98),this.renderWithSVG=!0):(this.renderWhitespace=t.get(98),this.renderWithSVG=!1),this.spaceWidth=i.spaceWidth,this.middotWidth=i.middotWidth,this.wsmiddotWidth=i.wsmiddotWidth,this.canUseHalfwidthRightwardsArrow=i.canUseHalfwidthRightwardsArrow,this.lineHeight=t.get(66),this.stopRenderingLineAfter=t.get(116)}equals(e){return this.renderWhitespace===e.renderWhitespace&&this.renderWithSVG===e.renderWithSVG&&this.spaceWidth===e.spaceWidth&&this.middotWidth===e.middotWidth&&this.wsmiddotWidth===e.wsmiddotWidth&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.lineHeight===e.lineHeight&&this.stopRenderingLineAfter===e.stopRenderingLineAfter}}var __decorate$22=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1Y=function(o,e){return function(t,i){e(t,i,o)}};let View$1=class extends ViewEventHandler{constructor(e,t,i,n,r,s,a){super(),this._instantiationService=a,this._shouldRecomputeGlyphMarginLanes=!1,this._selections=[new Selection$1(1,1,1,1)],this._renderAnimationFrame=null;const l=new ViewController(t,n,r,e);this._context=new ViewContext(t,i,n),this._context.addEventHandler(this),this._viewParts=[],this._textAreaHandler=this._instantiationService.createInstance(TextAreaHandler,this._context,l,this._createTextAreaHandlerHelper()),this._viewParts.push(this._textAreaHandler),this._linesContent=createFastDomNode(document.createElement("div")),this._linesContent.setClassName("lines-content monaco-editor-background"),this._linesContent.setPosition("absolute"),this.domNode=createFastDomNode(document.createElement("div")),this.domNode.setClassName(this._getEditorClassName()),this.domNode.setAttribute("role","code"),this._overflowGuardContainer=createFastDomNode(document.createElement("div")),PartFingerprints.write(this._overflowGuardContainer,3),this._overflowGuardContainer.setClassName("overflow-guard"),this._scrollbar=new EditorScrollbar(this._context,this._linesContent,this.domNode,this._overflowGuardContainer),this._viewParts.push(this._scrollbar),this._viewLines=new ViewLines(this._context,this._linesContent),this._viewZones=new ViewZones(this._context),this._viewParts.push(this._viewZones);const d=new DecorationsOverviewRuler(this._context);this._viewParts.push(d);const c=new ScrollDecorationViewPart(this._context);this._viewParts.push(c);const u=new ContentViewOverlays(this._context);this._viewParts.push(u),u.addDynamicOverlay(new CurrentLineHighlightOverlay(this._context)),u.addDynamicOverlay(new SelectionsOverlay(this._context)),u.addDynamicOverlay(new IndentGuidesOverlay(this._context)),u.addDynamicOverlay(new DecorationsOverlay(this._context)),u.addDynamicOverlay(new WhitespaceOverlay(this._context));const g=new MarginViewOverlays(this._context);this._viewParts.push(g),g.addDynamicOverlay(new CurrentLineMarginHighlightOverlay(this._context)),g.addDynamicOverlay(new MarginViewLineDecorationsOverlay(this._context)),g.addDynamicOverlay(new LinesDecorationsOverlay(this._context)),g.addDynamicOverlay(new LineNumbersOverlay(this._context)),this._glyphMarginWidgets=new GlyphMarginWidgets(this._context),this._viewParts.push(this._glyphMarginWidgets);const f=new Margin(this._context);f.getDomNode().appendChild(this._viewZones.marginDomNode),f.getDomNode().appendChild(g.getDomNode()),f.getDomNode().appendChild(this._glyphMarginWidgets.domNode),this._viewParts.push(f),this._contentWidgets=new ViewContentWidgets(this._context,this.domNode),this._viewParts.push(this._contentWidgets),this._viewCursors=new ViewCursors(this._context),this._viewParts.push(this._viewCursors),this._overlayWidgets=new ViewOverlayWidgets(this._context),this._viewParts.push(this._overlayWidgets);const p=new Rulers(this._context);this._viewParts.push(p);const m=new BlockDecorations(this._context);this._viewParts.push(m);const b=new Minimap(this._context);if(this._viewParts.push(b),d){const _=this._scrollbar.getOverviewRulerLayoutInfo();_.parent.insertBefore(d.getDomNode(),_.insertBefore)}this._linesContent.appendChild(u.getDomNode()),this._linesContent.appendChild(p.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(f.getDomNode()),this._overflowGuardContainer.appendChild(this._scrollbar.getDomNode()),this._overflowGuardContainer.appendChild(c.getDomNode()),this._overflowGuardContainer.appendChild(this._textAreaHandler.textArea),this._overflowGuardContainer.appendChild(this._textAreaHandler.textAreaCover),this._overflowGuardContainer.appendChild(this._overlayWidgets.getDomNode()),this._overflowGuardContainer.appendChild(b.getDomNode()),this._overflowGuardContainer.appendChild(m.domNode),this.domNode.appendChild(this._overflowGuardContainer),s?s.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode.domNode):this.domNode.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode),this._applyLayout(),this._pointerHandler=this._register(new PointerHandler(this._context,l,this._createPointerHandlerHelper()))}_flushAccumulatedAndRenderNow(){this._shouldRecomputeGlyphMarginLanes&&(this._shouldRecomputeGlyphMarginLanes=!1,this._context.configuration.setGlyphMarginDecorationLaneCount(this._computeGlyphMarginLaneCount())),inputLatency.onRenderStart(),this._renderNow()}_computeGlyphMarginLaneCount(){const e=this._context.viewModel.model;let t=[];t=t.concat(e.getAllMarginDecorations().map(r=>{var s,a;const l=(a=(s=r.options.glyphMargin)===null||s===void 0?void 0:s.position)!==null&&a!==void 0?a:GlyphMarginLane.Left;return{range:r.range,lane:l}})),t=t.concat(this._glyphMarginWidgets.getWidgets().map(r=>({range:e.validateRange(r.preference.range),lane:r.preference.lane}))),t.sort((r,s)=>Range$2.compareRangesUsingStarts(r.range,s.range));let i=null,n=null;for(const r of t)if(r.lane===GlyphMarginLane.Left&&(!i||Range$2.compareRangesUsingEnds(i,r.range)<0)&&(i=r.range),r.lane===GlyphMarginLane.Right&&(!n||Range$2.compareRangesUsingEnds(n,r.range)<0)&&(n=r.range),i&&n){if(i.endLineNumber<n.startLineNumber){i=null;continue}if(n.endLineNumber<i.startLineNumber){n=null;continue}return 2}return 1}_createPointerHandlerHelper(){return{viewDomNode:this.domNode.domNode,linesContentDomNode:this._linesContent.domNode,viewLinesDomNode:this._viewLines.getDomNode().domNode,focusTextArea:()=>{this.focus()},dispatchTextAreaEvent:e=>{this._textAreaHandler.textArea.domNode.dispatchEvent(e)},getLastRenderData:()=>{const e=this._viewCursors.getLastRenderData()||[],t=this._textAreaHandler.getLastRenderData();return new PointerHandlerLastRenderData(e,t)},renderNow:()=>{this.render(!0,!1)},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 Position$1(e,t))),getLineWidth:e=>(this._flushAccumulatedAndRenderNow(),this._viewLines.getLineWidth(e))}}_createTextAreaHandlerHelper(){return{visibleRangeForPosition:e=>(this._flushAccumulatedAndRenderNow(),this._viewLines.visibleRangeForPosition(e))}}_applyLayout(){const t=this._context.configuration.options.get(143);this.domNode.setWidth(t.width),this.domNode.setHeight(t.height),this._overflowGuardContainer.setWidth(t.width),this._overflowGuardContainer.setHeight(t.height),this._linesContent.setWidth(1e6),this._linesContent.setHeight(1e6)}_getEditorClassName(){const e=this._textAreaHandler.isFocused()?" focused":"";return this._context.configuration.options.get(140)+" "+getThemeTypeSelector(this._context.theme.type)+e}handleEvents(e){super.handleEvents(e),this._scheduleRender()}onConfigurationChanged(e){return this.domNode.setClassName(this._getEditorClassName()),this._applyLayout(),!1}onCursorStateChanged(e){return this._selections=e.selections,!1}onDecorationsChanged(e){return e.affectsGlyphMargin&&(this._shouldRecomputeGlyphMarginLanes=!0),!1}onFocusChanged(e){return this.domNode.setClassName(this._getEditorClassName()),!1}onThemeChanged(e){return this._context.theme.update(e.theme),this.domNode.setClassName(this._getEditorClassName()),!1}dispose(){this._renderAnimationFrame!==null&&(this._renderAnimationFrame.dispose(),this._renderAnimationFrame=null),this._contentWidgets.overflowingContentWidgetsDomNode.domNode.remove(),this._context.removeEventHandler(this),this._viewLines.dispose();for(const e of this._viewParts)e.dispose();super.dispose()}_scheduleRender(){this._renderAnimationFrame===null&&(this._renderAnimationFrame=runAtThisOrScheduleAtNextAnimationFrame(this._onRenderScheduled.bind(this),100))}_onRenderScheduled(){this._renderAnimationFrame=null,this._flushAccumulatedAndRenderNow()}_renderNow(){safeInvokeNoArg(()=>this._actualRender())}_getViewPartsToRender(){const e=[];let t=0;for(const i of this._viewParts)i.shouldRender()&&(e[t++]=i);return e}_actualRender(){if(!isInDOM(this.domNode.domNode))return;let e=this._getViewPartsToRender();if(!this._viewLines.shouldRender()&&e.length===0)return;const t=this._context.viewLayout.getLinesViewportData();this._context.viewModel.setViewport(t.startLineNumber,t.endLineNumber,t.centeredLineNumber);const i=new ViewportData(this._selections,t,this._context.viewLayout.getWhitespaceViewportData(),this._context.viewModel);this._contentWidgets.shouldRender()&&this._contentWidgets.onBeforeRender(i),this._viewLines.shouldRender()&&(this._viewLines.renderText(i),this._viewLines.onDidRender(),e=this._getViewPartsToRender());const n=new RenderingContext(this._context.viewLayout,i,this._viewLines);for(const r of e)r.prepareRender(n);for(const r of e)r.render(n),r.onDidRender()}delegateVerticalScrollbarPointerDown(e){this._scrollbar.delegateVerticalScrollbarPointerDown(e)}delegateScrollFromMouseWheelEvent(e){this._scrollbar.delegateScrollFromMouseWheelEvent(e)}restoreState(e){this._context.viewModel.viewLayout.setScrollPosition({scrollTop:e.scrollTop,scrollLeft:e.scrollLeft},1),this._context.viewModel.visibleLinesStabilized()}getOffsetForColumn(e,t){const i=this._context.viewModel.model.validatePosition({lineNumber:e,column:t}),n=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(i);this._flushAccumulatedAndRenderNow();const r=this._viewLines.visibleRangeForPosition(new Position$1(n.lineNumber,n.column));return r?r.left:-1}getTargetAtClientPoint(e,t){const i=this._pointerHandler.getTargetAtClientPoint(e,t);return i?ViewUserInputEvents.convertViewToModelMouseTarget(i,this._context.viewModel.coordinatesConverter):null}createOverviewRuler(e){return new OverviewRuler(this._context,e)}change(e){this._viewZones.changeViewZones(e),this._scheduleRender()}render(e,t){if(t){this._viewLines.forceShouldRender();for(const i of this._viewParts)i.forceShouldRender()}e?this._flushAccumulatedAndRenderNow():this._scheduleRender()}writeScreenReaderContent(e){this._textAreaHandler.writeScreenReaderContent(e)}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){var t,i,n,r,s,a,l,d;this._contentWidgets.setWidgetPosition(e.widget,(i=(t=e.position)===null||t===void 0?void 0:t.position)!==null&&i!==void 0?i:null,(r=(n=e.position)===null||n===void 0?void 0:n.secondaryPosition)!==null&&r!==void 0?r:null,(a=(s=e.position)===null||s===void 0?void 0:s.preference)!==null&&a!==void 0?a:null,(d=(l=e.position)===null||l===void 0?void 0:l.positionAffinity)!==null&&d!==void 0?d:null),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()}addGlyphMarginWidget(e){this._glyphMarginWidgets.addWidget(e.widget),this._shouldRecomputeGlyphMarginLanes=!0,this._scheduleRender()}layoutGlyphMarginWidget(e){const t=e.position;this._glyphMarginWidgets.setWidgetPosition(e.widget,t)&&(this._shouldRecomputeGlyphMarginLanes=!0,this._scheduleRender())}removeGlyphMarginWidget(e){this._glyphMarginWidgets.removeWidget(e.widget),this._shouldRecomputeGlyphMarginLanes=!0,this._scheduleRender()}};View$1=__decorate$22([__param$1Y(6,IInstantiationService)],View$1);function safeInvokeNoArg(o){try{return o()}catch(e){onUnexpectedError(e)}}class InternalEditorAction{constructor(e,t,i,n,r,s){this.id=e,this.label=t,this.alias=i,this._precondition=n,this._run=r,this._contextKeyService=s}isSupported(){return this._contextKeyService.contextMatchesRules(this._precondition)}run(e){return this.isSupported()?this._run(e):Promise.resolve(void 0)}}function countEOL(o){let e=0,t=0,i=0,n=0;for(let r=0,s=o.length;r<s;r++){const a=o.charCodeAt(r);a===13?(e===0&&(t=r),e++,r+1<s&&o.charCodeAt(r+1)===10?(n|=2,r++):n|=3,i=r+1):a===10&&(n|=1,e===0&&(t=r),e++,i=r+1)}return e===0&&(t=o.length),[e,t,o.length-i,n]}class BracketInfo{constructor(e,t,i,n){this.range=e,this.nestingLevel=t,this.nestingLevelOfEqualBracketType=i,this.isInvalid=n}}class BracketPairInfo{constructor(e,t,i,n,r,s){this.range=e,this.openingBracketRange=t,this.closingBracketRange=i,this.nestingLevel=n,this.nestingLevelOfEqualBracketType=r,this.bracketPairNode=s}get openingBracketInfo(){return this.bracketPairNode.openingBracket.bracketInfo}}class BracketPairWithMinIndentationInfo extends BracketPairInfo{constructor(e,t,i,n,r,s,a){super(e,t,i,n,r,s),this.minVisibleColumnIndentation=a}}class LengthObj{constructor(e,t){this.lineCount=e,this.columnCount=t}toString(){return`${this.lineCount},${this.columnCount}`}}LengthObj.zero=new LengthObj(0,0);function lengthDiff(o,e,t,i){return o!==t?toLength(t-o,i):toLength(0,i-e)}const lengthZero=0;function lengthIsZero(o){return o===0}const factor=Math.pow(2,26);function toLength(o,e){return o*factor+e}function lengthToObj(o){const e=o,t=Math.floor(e/factor),i=e-t*factor;return new LengthObj(t,i)}function lengthGetLineCount(o){return Math.floor(o/factor)}function lengthGetColumnCountIfZeroLineCount(o){return o}function lengthAdd(o,e){let t=o+e;return e>=factor&&(t=t-o%factor),t}function sumLengths(o,e){return o.reduce((t,i)=>lengthAdd(t,e(i)),lengthZero)}function lengthEquals(o,e){return o===e}function lengthDiffNonNegative(o,e){const t=o,i=e;if(i-t<=0)return lengthZero;const r=Math.floor(t/factor),s=Math.floor(i/factor),a=i-s*factor;if(r===s){const l=t-r*factor;return toLength(0,a-l)}else return toLength(s-r,a)}function lengthLessThan(o,e){return o<e}function lengthLessThanEqual(o,e){return o<=e}function lengthGreaterThanEqual(o,e){return o>=e}function positionToLength(o){return toLength(o.lineNumber-1,o.column-1)}function lengthsToRange(o,e){const t=o,i=Math.floor(t/factor),n=t-i*factor,r=e,s=Math.floor(r/factor),a=r-s*factor;return new Range$2(i+1,n+1,s+1,a+1)}function lengthOfString(o){const e=splitLines(o);return toLength(e.length-1,e[e.length-1].length)}class TextEditInfo{static fromModelContentChanges(e){return e.map(i=>{const n=Range$2.lift(i.range);return new TextEditInfo(positionToLength(n.getStartPosition()),positionToLength(n.getEndPosition()),lengthOfString(i.text))}).reverse()}constructor(e,t,i){this.startOffset=e,this.endOffset=t,this.newLength=i}toString(){return`[${lengthToObj(this.startOffset)}...${lengthToObj(this.endOffset)}) -> ${lengthToObj(this.newLength)}`}}class BeforeEditPositionMapper{constructor(e){this.nextEditIdx=0,this.deltaOldToNewLineCount=0,this.deltaOldToNewColumnCount=0,this.deltaLineIdxInOld=-1,this.edits=e.map(t=>TextEditInfoCache.from(t))}getOffsetBeforeChange(e){return this.adjustNextEdit(e),this.translateCurToOld(e)}getDistanceToNextChange(e){this.adjustNextEdit(e);const t=this.edits[this.nextEditIdx],i=t?this.translateOldToCur(t.offsetObj):null;return i===null?null:lengthDiffNonNegative(e,i)}translateOldToCur(e){return e.lineCount===this.deltaLineIdxInOld?toLength(e.lineCount+this.deltaOldToNewLineCount,e.columnCount+this.deltaOldToNewColumnCount):toLength(e.lineCount+this.deltaOldToNewLineCount,e.columnCount)}translateCurToOld(e){const t=lengthToObj(e);return t.lineCount-this.deltaOldToNewLineCount===this.deltaLineIdxInOld?toLength(t.lineCount-this.deltaOldToNewLineCount,t.columnCount-this.deltaOldToNewColumnCount):toLength(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(lengthLessThanEqual(i,e)){this.nextEditIdx++;const n=lengthToObj(i),r=lengthToObj(this.translateOldToCur(t.endOffsetBeforeObj)),s=n.lineCount-r.lineCount;this.deltaOldToNewLineCount+=s;const a=this.deltaLineIdxInOld===t.endOffsetBeforeObj.lineCount?this.deltaOldToNewColumnCount:0,l=n.columnCount-r.columnCount;this.deltaOldToNewColumnCount=a+l,this.deltaLineIdxInOld=t.endOffsetBeforeObj.lineCount}else break}}}class TextEditInfoCache{static from(e){return new TextEditInfoCache(e.startOffset,e.endOffset,e.newLength)}constructor(e,t,i){this.endOffsetBeforeObj=lengthToObj(t),this.endOffsetAfterObj=lengthToObj(lengthAdd(e,i)),this.offsetObj=lengthToObj(e)}}const emptyArr=[];class SmallImmutableSet{static create(e,t){if(e<=128&&t.length===0){let i=SmallImmutableSet.cache[e];return i||(i=new SmallImmutableSet(e,t),SmallImmutableSet.cache[e]=i),i}return new SmallImmutableSet(e,t)}static getEmpty(){return this.empty}constructor(e,t){this.items=e,this.additionalItems=t}add(e,t){const i=t.getKey(e);let n=i>>5;if(n===0){const s=1<<i|this.items;return s===this.items?this:SmallImmutableSet.create(s,this.additionalItems)}n--;const r=this.additionalItems.slice(0);for(;r.length<n;)r.push(0);return r[n]|=1<<(i&31),SmallImmutableSet.create(this.items,r)}merge(e){const t=this.items|e.items;if(this.additionalItems===emptyArr&&e.additionalItems===emptyArr)return t===this.items?this:t===e.items?e:SmallImmutableSet.create(t,emptyArr);const i=[];for(let n=0;n<Math.max(this.additionalItems.length,e.additionalItems.length);n++){const r=this.additionalItems[n]||0,s=e.additionalItems[n]||0;i.push(r|s)}return SmallImmutableSet.create(t,i)}intersects(e){if((this.items&e.items)!==0)return!0;for(let t=0;t<Math.min(this.additionalItems.length,e.additionalItems.length);t++)if((this.additionalItems[t]&e.additionalItems[t])!==0)return!0;return!1}}SmallImmutableSet.cache=new Array(129);SmallImmutableSet.empty=SmallImmutableSet.create(0,emptyArr);const identityKeyProvider={getKey(o){return o}};class DenseKeyProvider{constructor(){this.items=new Map}getKey(e){let t=this.items.get(e);return t===void 0&&(t=this.items.size,this.items.set(e,t)),t}}class BaseAstNode{get length(){return this._length}constructor(e){this._length=e}}class PairAstNode extends BaseAstNode{static create(e,t,i){let n=e.length;return t&&(n=lengthAdd(n,t.length)),i&&(n=lengthAdd(n,i.length)),new PairAstNode(n,e,t,i,t?t.missingOpeningBracketIds:SmallImmutableSet.getEmpty())}get kind(){return 2}get listHeight(){return 0}get childrenLength(){return 3}getChild(e){switch(e){case 0:return this.openingBracket;case 1:return this.child;case 2:return this.closingBracket}throw new Error("Invalid child index")}get children(){const e=[];return e.push(this.openingBracket),this.child&&e.push(this.child),this.closingBracket&&e.push(this.closingBracket),e}constructor(e,t,i,n,r){super(e),this.openingBracket=t,this.child=i,this.closingBracket=n,this.missingOpeningBracketIds=r}canBeReused(e){return!(this.closingBracket===null||e.intersects(this.missingOpeningBracketIds))}deepClone(){return new PairAstNode(this.length,this.openingBracket.deepClone(),this.child&&this.child.deepClone(),this.closingBracket&&this.closingBracket.deepClone(),this.missingOpeningBracketIds)}computeMinIndentation(e,t){return this.child?this.child.computeMinIndentation(lengthAdd(e,this.openingBracket.length),t):Number.MAX_SAFE_INTEGER}}class ListAstNode extends BaseAstNode{static create23(e,t,i,n=!1){let r=e.length,s=e.missingOpeningBracketIds;if(e.listHeight!==t.listHeight)throw new Error("Invalid list heights");if(r=lengthAdd(r,t.length),s=s.merge(t.missingOpeningBracketIds),i){if(e.listHeight!==i.listHeight)throw new Error("Invalid list heights");r=lengthAdd(r,i.length),s=s.merge(i.missingOpeningBracketIds)}return n?new Immutable23ListAstNode(r,e.listHeight+1,e,t,i,s):new TwoThreeListAstNode(r,e.listHeight+1,e,t,i,s)}static getEmpty(){return new ImmutableArrayListAstNode(lengthZero,0,[],SmallImmutableSet.getEmpty())}get kind(){return 4}get missingOpeningBracketIds(){return this._missingOpeningBracketIds}constructor(e,t,i){super(e),this.listHeight=t,this._missingOpeningBracketIds=i,this.cachedMinIndentation=-1}throwIfImmutable(){}makeLastElementMutable(){this.throwIfImmutable();const e=this.childrenLength;if(e===0)return;const t=this.getChild(e-1),i=t.kind===4?t.toMutable():t;return t!==i&&this.setChild(e-1,i),i}makeFirstElementMutable(){if(this.throwIfImmutable(),this.childrenLength===0)return;const t=this.getChild(0),i=t.kind===4?t.toMutable():t;return t!==i&&this.setChild(0,i),i}canBeReused(e){if(e.intersects(this.missingOpeningBracketIds)||this.childrenLength===0)return!1;let t=this;for(;t.kind===4;){const i=t.childrenLength;if(i===0)throw new BugIndicatingError;t=t.getChild(i-1)}return t.canBeReused(e)}handleChildrenChanged(){this.throwIfImmutable();const e=this.childrenLength;let t=this.getChild(0).length,i=this.getChild(0).missingOpeningBracketIds;for(let n=1;n<e;n++){const r=this.getChild(n);t=lengthAdd(t,r.length),i=i.merge(r.missingOpeningBracketIds)}this._length=t,this._missingOpeningBracketIds=i,this.cachedMinIndentation=-1}computeMinIndentation(e,t){if(this.cachedMinIndentation!==-1)return this.cachedMinIndentation;let i=Number.MAX_SAFE_INTEGER,n=e;for(let r=0;r<this.childrenLength;r++){const s=this.getChild(r);s&&(i=Math.min(i,s.computeMinIndentation(n,t)),n=lengthAdd(n,s.length))}return this.cachedMinIndentation=i,i}}class TwoThreeListAstNode extends ListAstNode{get childrenLength(){return this._item3!==null?3:2}getChild(e){switch(e){case 0:return this._item1;case 1:return this._item2;case 2:return this._item3}throw new Error("Invalid child index")}setChild(e,t){switch(e){case 0:this._item1=t;return;case 1:this._item2=t;return;case 2:this._item3=t;return}throw new Error("Invalid child index")}get children(){return this._item3?[this._item1,this._item2,this._item3]:[this._item1,this._item2]}get item1(){return this._item1}get item2(){return this._item2}get item3(){return this._item3}constructor(e,t,i,n,r,s){super(e,t,s),this._item1=i,this._item2=n,this._item3=r}deepClone(){return new TwoThreeListAstNode(this.length,this.listHeight,this._item1.deepClone(),this._item2.deepClone(),this._item3?this._item3.deepClone():null,this.missingOpeningBracketIds)}appendChildOfSameHeight(e){if(this._item3)throw new Error("Cannot append to a full (2,3) tree node");this.throwIfImmutable(),this._item3=e,this.handleChildrenChanged()}unappendChild(){if(!this._item3)throw new Error("Cannot remove from a non-full (2,3) tree node");this.throwIfImmutable();const e=this._item3;return this._item3=null,this.handleChildrenChanged(),e}prependChildOfSameHeight(e){if(this._item3)throw new Error("Cannot prepend to a full (2,3) tree node");this.throwIfImmutable(),this._item3=this._item2,this._item2=this._item1,this._item1=e,this.handleChildrenChanged()}unprependChild(){if(!this._item3)throw new Error("Cannot remove from a non-full (2,3) tree node");this.throwIfImmutable();const e=this._item1;return this._item1=this._item2,this._item2=this._item3,this._item3=null,this.handleChildrenChanged(),e}toMutable(){return this}}class Immutable23ListAstNode extends TwoThreeListAstNode{toMutable(){return new TwoThreeListAstNode(this.length,this.listHeight,this.item1,this.item2,this.item3,this.missingOpeningBracketIds)}throwIfImmutable(){throw new Error("this instance is immutable")}}class ArrayListAstNode extends ListAstNode{get childrenLength(){return this._children.length}getChild(e){return this._children[e]}setChild(e,t){this._children[e]=t}get children(){return this._children}constructor(e,t,i,n){super(e,t,n),this._children=i}deepClone(){const e=new Array(this._children.length);for(let t=0;t<this._children.length;t++)e[t]=this._children[t].deepClone();return new ArrayListAstNode(this.length,this.listHeight,e,this.missingOpeningBracketIds)}appendChildOfSameHeight(e){this.throwIfImmutable(),this._children.push(e),this.handleChildrenChanged()}unappendChild(){this.throwIfImmutable();const e=this._children.pop();return this.handleChildrenChanged(),e}prependChildOfSameHeight(e){this.throwIfImmutable(),this._children.unshift(e),this.handleChildrenChanged()}unprependChild(){this.throwIfImmutable();const e=this._children.shift();return this.handleChildrenChanged(),e}toMutable(){return this}}class ImmutableArrayListAstNode extends ArrayListAstNode{toMutable(){return new ArrayListAstNode(this.length,this.listHeight,[...this.children],this.missingOpeningBracketIds)}throwIfImmutable(){throw new Error("this instance is immutable")}}const emptyArray=[];class ImmutableLeafAstNode extends BaseAstNode{get listHeight(){return 0}get childrenLength(){return 0}getChild(e){return null}get children(){return emptyArray}deepClone(){return this}}class TextAstNode extends ImmutableLeafAstNode{get kind(){return 0}get missingOpeningBracketIds(){return SmallImmutableSet.getEmpty()}canBeReused(e){return!0}computeMinIndentation(e,t){const i=lengthToObj(e),n=(i.columnCount===0?i.lineCount:i.lineCount+1)+1,r=lengthGetLineCount(lengthAdd(e,this.length))+1;let s=Number.MAX_SAFE_INTEGER;for(let a=n;a<=r;a++){const l=t.getLineFirstNonWhitespaceColumn(a),d=t.getLineContent(a);if(l===0)continue;const c=CursorColumns.visibleColumnFromColumn(d,l,t.getOptions().tabSize);s=Math.min(s,c)}return s}}class BracketAstNode extends ImmutableLeafAstNode{static create(e,t,i){return new BracketAstNode(e,t,i)}get kind(){return 1}get missingOpeningBracketIds(){return SmallImmutableSet.getEmpty()}constructor(e,t,i){super(e),this.bracketInfo=t,this.bracketIds=i}get text(){return this.bracketInfo.bracketText}get languageId(){return this.bracketInfo.languageId}canBeReused(e){return!1}computeMinIndentation(e,t){return Number.MAX_SAFE_INTEGER}}class InvalidBracketAstNode extends ImmutableLeafAstNode{get kind(){return 3}constructor(e,t){super(t),this.missingOpeningBracketIds=e}canBeReused(e){return!e.intersects(this.missingOpeningBracketIds)}computeMinIndentation(e,t){return Number.MAX_SAFE_INTEGER}}let Token$1=class{constructor(e,t,i,n,r){this.length=e,this.kind=t,this.bracketId=i,this.bracketIds=n,this.astNode=r}};class TextBufferTokenizer{constructor(e,t){this.textModel=e,this.bracketTokens=t,this.reader=new NonPeekableTextBufferTokenizer(this.textModel,this.bracketTokens),this._offset=lengthZero,this.didPeek=!1,this.peeked=null,this.textBufferLineCount=e.getLineCount(),this.textBufferLastLineLength=e.getLineLength(this.textBufferLineCount)}get offset(){return this._offset}get length(){return toLength(this.textBufferLineCount-1,this.textBufferLastLineLength)}skip(e){this.didPeek=!1,this._offset=lengthAdd(this._offset,e);const t=lengthToObj(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=lengthAdd(this._offset,e.length)),e}peek(){return this.didPeek||(this.peeked=this.reader.read(),this.didPeek=!0),this.peeked}}class NonPeekableTextBufferTokenizer{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.line!==null&&(this.lineTokenOffset=this.lineCharOffset===0?0:this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset))):(this.lineIdx=e,this.lineCharOffset=t,this.line=null),this.peekedToken=null}read(){if(this.peekedToken){const r=this.peekedToken;return this.peekedToken=null,this.lineCharOffset+=r.length,r}if(this.lineIdx>this.textBufferLineCount-1||this.lineIdx===this.textBufferLineCount-1&&this.lineCharOffset>=this.textBufferLastLineLength)return null;this.line===null&&(this.lineTokens=this.textModel.tokenization.getLineTokens(this.lineIdx+1),this.line=this.lineTokens.getLineContent(),this.lineTokenOffset=this.lineCharOffset===0?0:this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset));const e=this.lineIdx,t=this.lineCharOffset;let i=0;for(;;){const r=this.lineTokens,s=r.getCount();let a=null;if(this.lineTokenOffset<s){const l=r.getMetadata(this.lineTokenOffset);for(;this.lineTokenOffset+1<s&&l===r.getMetadata(this.lineTokenOffset+1);)this.lineTokenOffset++;const d=TokenMetadata.getTokenType(l)===0,c=TokenMetadata.containsBalancedBrackets(l),u=r.getEndOffset(this.lineTokenOffset);if(c&&d&&this.lineCharOffset<u){const g=r.getLanguageId(this.lineTokenOffset),f=this.line.substring(this.lineCharOffset,u),p=this.bracketTokens.getSingleLanguageBracketTokens(g),m=p.regExpGlobal;if(m){m.lastIndex=0;const b=m.exec(f);b&&(a=p.getToken(b[0]),a&&(this.lineCharOffset+=b.index))}}if(i+=u-this.lineCharOffset,a)if(e!==this.lineIdx||t!==this.lineCharOffset){this.peekedToken=a;break}else return this.lineCharOffset+=a.length,a;else this.lineTokenOffset++,this.lineCharOffset=u}else if(this.lineIdx===this.textBufferLineCount-1||(this.lineIdx++,this.lineTokens=this.textModel.tokenization.getLineTokens(this.lineIdx+1),this.lineTokenOffset=0,this.line=this.lineTokens.getLineContent(),this.lineCharOffset=0,i+=33,i>1e3))break;if(i>1500)break}const n=lengthDiff(e,t,this.lineIdx,this.lineCharOffset);return new Token$1(n,0,-1,SmallImmutableSet.getEmpty(),new TextAstNode(n))}}class FastTokenizer{constructor(e,t){this.text=e,this._offset=lengthZero,this.idx=0;const i=t.getRegExpStr(),n=i?new RegExp(i+`|
- `,"gi"):null,r=[];let s,a=0,l=0,d=0,c=0;const u=[];for(let p=0;p<60;p++)u.push(new Token$1(toLength(0,p),0,-1,SmallImmutableSet.getEmpty(),new TextAstNode(toLength(0,p))));const g=[];for(let p=0;p<60;p++)g.push(new Token$1(toLength(1,p),0,-1,SmallImmutableSet.getEmpty(),new TextAstNode(toLength(1,p))));if(n)for(n.lastIndex=0;(s=n.exec(e))!==null;){const p=s.index,m=s[0];if(m===`
- `)a++,l=p+1;else{if(d!==p){let b;if(c===a){const _=p-d;if(_<u.length)b=u[_];else{const C=toLength(0,_);b=new Token$1(C,0,-1,SmallImmutableSet.getEmpty(),new TextAstNode(C))}}else{const _=a-c,C=p-l;if(_===1&&C<g.length)b=g[C];else{const S=toLength(_,C);b=new Token$1(S,0,-1,SmallImmutableSet.getEmpty(),new TextAstNode(S))}}r.push(b)}r.push(t.getToken(m)),d=p+m.length,c=a}}const f=e.length;if(d!==f){const p=c===a?toLength(0,f-d):toLength(a-c,f-l);r.push(new Token$1(p,0,-1,SmallImmutableSet.getEmpty(),new TextAstNode(p)))}this.length=toLength(a,f-l),this.tokens=r}get offset(){return this._offset}read(){return this.tokens[this.idx++]||null}peek(){return this.tokens[this.idx]||null}skip(e){throw new NotSupportedError}}class BracketTokens{static createFromLanguage(e,t){function i(r){return t.getKey(`${r.languageId}:::${r.bracketText}`)}const n=new Map;for(const r of e.bracketsNew.openingBrackets){const s=toLength(0,r.bracketText.length),a=i(r),l=SmallImmutableSet.getEmpty().add(a,identityKeyProvider);n.set(r.bracketText,new Token$1(s,1,a,l,BracketAstNode.create(s,r,l)))}for(const r of e.bracketsNew.closingBrackets){const s=toLength(0,r.bracketText.length);let a=SmallImmutableSet.getEmpty();const l=r.getOpeningBrackets();for(const d of l)a=a.add(i(d),identityKeyProvider);n.set(r.bracketText,new Token$1(s,2,i(l[0]),a,BracketAstNode.create(s,r,a)))}return new BracketTokens(n)}constructor(e){this.map=e,this.hasRegExp=!1,this._regExpGlobal=null}getRegExpStr(){if(this.isEmpty)return null;{const e=[...this.map.keys()];return e.sort(),e.reverse(),e.map(t=>prepareBracketForRegExp(t)).join("|")}}get regExpGlobal(){if(!this.hasRegExp){const e=this.getRegExpStr();this._regExpGlobal=e?new RegExp(e,"gi"):null,this.hasRegExp=!0}return this._regExpGlobal}getToken(e){return this.map.get(e.toLowerCase())}findClosingTokenText(e){for(const[t,i]of this.map)if(i.kind===2&&i.bracketIds.intersects(e))return t}get isEmpty(){return this.map.size===0}}function prepareBracketForRegExp(o){let e=escapeRegExpCharacters(o);return/^[\w ]+/.test(o)&&(e=`\\b${e}`),/[\w ]+$/.test(o)&&(e=`${e}\\b`),e}class LanguageAgnosticBracketTokens{constructor(e,t){this.denseKeyProvider=e,this.getLanguageConfiguration=t,this.languageIdToBracketTokens=new Map}didLanguageChange(e){return this.languageIdToBracketTokens.has(e)}getSingleLanguageBracketTokens(e){let t=this.languageIdToBracketTokens.get(e);return t||(t=BracketTokens.createFromLanguage(this.getLanguageConfiguration(e),this.denseKeyProvider),this.languageIdToBracketTokens.set(e,t)),t}}function concat23Trees(o){if(o.length===0)return null;if(o.length===1)return o[0];let e=0;function t(){if(e>=o.length)return null;const s=e,a=o[s].listHeight;for(e++;e<o.length&&o[e].listHeight===a;)e++;return e-s>=2?concat23TreesOfSameHeight(s===0&&e===o.length?o:o.slice(s,e),!1):o[s]}let i=t(),n=t();if(!n)return i;for(let s=t();s;s=t())heightDiff(i,n)<=heightDiff(n,s)?(i=concat$1(i,n),n=s):n=concat$1(n,s);return concat$1(i,n)}function concat23TreesOfSameHeight(o,e=!1){if(o.length===0)return null;if(o.length===1)return o[0];let t=o.length;for(;t>3;){const i=t>>1;for(let n=0;n<i;n++){const r=n<<1;o[n]=ListAstNode.create23(o[r],o[r+1],r+3===t?o[r+2]:null,e)}t=i}return ListAstNode.create23(o[0],o[1],t>=3?o[2]:null,e)}function heightDiff(o,e){return Math.abs(o.listHeight-e.listHeight)}function concat$1(o,e){return o.listHeight===e.listHeight?ListAstNode.create23(o,e,null,!1):o.listHeight>e.listHeight?append(o,e):prepend(e,o)}function append(o,e){o=o.toMutable();let t=o;const i=[];let n;for(;;){if(e.listHeight===t.listHeight){n=e;break}if(t.kind!==4)throw new Error("unexpected");i.push(t),t=t.makeLastElementMutable()}for(let r=i.length-1;r>=0;r--){const s=i[r];n?s.childrenLength>=3?n=ListAstNode.create23(s.unappendChild(),n,null,!1):(s.appendChildOfSameHeight(n),n=void 0):s.handleChildrenChanged()}return n?ListAstNode.create23(o,n,null,!1):o}function prepend(o,e){o=o.toMutable();let t=o;const i=[];for(;e.listHeight!==t.listHeight;){if(t.kind!==4)throw new Error("unexpected");i.push(t),t=t.makeFirstElementMutable()}let n=e;for(let r=i.length-1;r>=0;r--){const s=i[r];n?s.childrenLength>=3?n=ListAstNode.create23(n,s.unprependChild(),null,!1):(s.prependChildOfSameHeight(n),n=void 0):s.handleChildrenChanged()}return n?ListAstNode.create23(n,o,null,!1):o}class NodeReader{constructor(e){this.lastOffset=lengthZero,this.nextNodes=[e],this.offsets=[lengthZero],this.idxs=[]}readLongestNodeAt(e,t){if(lengthLessThan(e,this.lastOffset))throw new Error("Invalid offset");for(this.lastOffset=e;;){const i=lastOrUndefined(this.nextNodes);if(!i)return;const n=lastOrUndefined(this.offsets);if(lengthLessThan(e,n))return;if(lengthLessThan(n,e))if(lengthAdd(n,i.length)<=e)this.nextNodeAfterCurrent();else{const r=getNextChildIdx(i);r!==-1?(this.nextNodes.push(i.getChild(r)),this.offsets.push(n),this.idxs.push(r)):this.nextNodeAfterCurrent()}else{if(t(i))return this.nextNodeAfterCurrent(),i;{const r=getNextChildIdx(i);if(r===-1){this.nextNodeAfterCurrent();return}else this.nextNodes.push(i.getChild(r)),this.offsets.push(n),this.idxs.push(r)}}}}nextNodeAfterCurrent(){for(;;){const e=lastOrUndefined(this.offsets),t=lastOrUndefined(this.nextNodes);if(this.nextNodes.pop(),this.offsets.pop(),this.idxs.length===0)break;const i=lastOrUndefined(this.nextNodes),n=getNextChildIdx(i,this.idxs[this.idxs.length-1]);if(n!==-1){this.nextNodes.push(i.getChild(n)),this.offsets.push(lengthAdd(e,t.length)),this.idxs[this.idxs.length-1]=n;break}else this.idxs.pop()}}}function getNextChildIdx(o,e=-1){for(;;){if(e++,e>=o.childrenLength)return-1;if(o.getChild(e))return e}}function lastOrUndefined(o){return o.length>0?o[o.length-1]:void 0}function parseDocument(o,e,t,i){return new Parser(o,e,t,i).parseDocument()}class Parser{constructor(e,t,i,n){if(this.tokenizer=e,this.createImmutableLists=n,this._itemsConstructed=0,this._itemsFromCache=0,i&&n)throw new Error("Not supported");this.oldNodeReader=i?new NodeReader(i):void 0,this.positionMapper=new BeforeEditPositionMapper(t)}parseDocument(){this._itemsConstructed=0,this._itemsFromCache=0;let e=this.parseList(SmallImmutableSet.getEmpty(),0);return e||(e=ListAstNode.getEmpty()),e}parseList(e,t){const i=[];for(;;){let r=this.tryReadChildFromCache(e);if(!r){const s=this.tokenizer.peek();if(!s||s.kind===2&&s.bracketIds.intersects(e))break;r=this.parseChild(e,t+1)}r.kind===4&&r.childrenLength===0||i.push(r)}return this.oldNodeReader?concat23Trees(i):concat23TreesOfSameHeight(i,this.createImmutableLists)}tryReadChildFromCache(e){if(this.oldNodeReader){const t=this.positionMapper.getDistanceToNextChange(this.tokenizer.offset);if(t===null||!lengthIsZero(t)){const i=this.oldNodeReader.readLongestNodeAt(this.positionMapper.getOffsetBeforeChange(this.tokenizer.offset),n=>t!==null&&!lengthLessThan(n.length,t)?!1:n.canBeReused(e));if(i)return this._itemsFromCache++,this.tokenizer.skip(i.length),i}}}parseChild(e,t){this._itemsConstructed++;const i=this.tokenizer.read();switch(i.kind){case 2:return new InvalidBracketAstNode(i.bracketIds,i.length);case 0:return i.astNode;case 1:{if(t>300)return new TextAstNode(i.length);const n=e.merge(i.bracketIds),r=this.parseList(n,t+1),s=this.tokenizer.peek();return s&&s.kind===2&&(s.bracketId===i.bracketId||s.bracketIds.intersects(i.bracketIds))?(this.tokenizer.read(),PairAstNode.create(i.astNode,r,s.astNode)):PairAstNode.create(i.astNode,r,null)}default:throw new Error("unexpected")}}}function combineTextEditInfos(o,e){if(o.length===0)return e;if(e.length===0)return o;const t=new ArrayQueue(toLengthMapping(o)),i=toLengthMapping(e);i.push({modified:!1,lengthBefore:void 0,lengthAfter:void 0});let n=t.dequeue();function r(d){if(d===void 0){const u=t.takeWhile(g=>!0)||[];return n&&u.unshift(n),u}const c=[];for(;n&&!lengthIsZero(d);){const[u,g]=n.splitAt(d);c.push(u),d=lengthDiffNonNegative(u.lengthAfter,d),n=g??t.dequeue()}return lengthIsZero(d)||c.push(new LengthMapping(!1,d,d)),c}const s=[];function a(d,c,u){if(s.length>0&&lengthEquals(s[s.length-1].endOffset,d)){const g=s[s.length-1];s[s.length-1]=new TextEditInfo(g.startOffset,c,lengthAdd(g.newLength,u))}else s.push({startOffset:d,endOffset:c,newLength:u})}let l=lengthZero;for(const d of i){const c=r(d.lengthBefore);if(d.modified){const u=sumLengths(c,f=>f.lengthBefore),g=lengthAdd(l,u);a(l,g,d.lengthAfter),l=g}else for(const u of c){const g=l;l=lengthAdd(l,u.lengthBefore),u.modified&&a(g,l,u.lengthAfter)}}return s}class LengthMapping{constructor(e,t,i){this.modified=e,this.lengthBefore=t,this.lengthAfter=i}splitAt(e){const t=lengthDiffNonNegative(e,this.lengthAfter);return lengthEquals(t,lengthZero)?[this,void 0]:this.modified?[new LengthMapping(this.modified,this.lengthBefore,e),new LengthMapping(this.modified,lengthZero,t)]:[new LengthMapping(this.modified,e,e),new LengthMapping(this.modified,t,t)]}toString(){return`${this.modified?"M":"U"}:${lengthToObj(this.lengthBefore)} -> ${lengthToObj(this.lengthAfter)}`}}function toLengthMapping(o){const e=[];let t=lengthZero;for(const i of o){const n=lengthDiffNonNegative(t,i.startOffset);lengthIsZero(n)||e.push(new LengthMapping(!1,n,n));const r=lengthDiffNonNegative(i.startOffset,i.endOffset);e.push(new LengthMapping(!0,r,i.newLength)),t=i.endOffset}return e}class BracketPairsTree extends Disposable{didLanguageChange(e){return this.brackets.didLanguageChange(e)}constructor(e,t){if(super(),this.textModel=e,this.getLanguageConfiguration=t,this.didChangeEmitter=new Emitter$1,this.denseKeyProvider=new DenseKeyProvider,this.brackets=new LanguageAgnosticBracketTokens(this.denseKeyProvider,this.getLanguageConfiguration),this.onDidChange=this.didChangeEmitter.event,this.queuedTextEditsForInitialAstWithoutTokens=[],this.queuedTextEdits=[],e.tokenization.hasTokens)e.tokenization.backgroundTokenizationState===2?(this.initialAstWithoutTokens=void 0,this.astWithTokens=this.parseDocumentFromTextBuffer([],void 0,!1)):(this.initialAstWithoutTokens=this.parseDocumentFromTextBuffer([],void 0,!0),this.astWithTokens=this.initialAstWithoutTokens);else{const i=this.brackets.getSingleLanguageBracketTokens(this.textModel.getLanguageId()),n=new FastTokenizer(this.textModel.getValue(),i);this.initialAstWithoutTokens=parseDocument(n,[],void 0,!0),this.astWithTokens=this.initialAstWithoutTokens}}handleDidChangeBackgroundTokenizationState(){if(this.textModel.tokenization.backgroundTokenizationState===2){const e=this.initialAstWithoutTokens===void 0;this.initialAstWithoutTokens=void 0,e||this.didChangeEmitter.fire()}}handleDidChangeTokens({ranges:e}){const t=e.map(i=>new TextEditInfo(toLength(i.fromLineNumber-1,0),toLength(i.toLineNumber,0),toLength(i.toLineNumber-i.fromLineNumber+1,0)));this.handleEdits(t,!0),this.initialAstWithoutTokens||this.didChangeEmitter.fire()}handleContentChanged(e){const t=TextEditInfo.fromModelContentChanges(e.changes);this.handleEdits(t,!1)}handleEdits(e,t){const i=combineTextEditInfos(this.queuedTextEdits,e);this.queuedTextEdits=i,this.initialAstWithoutTokens&&!t&&(this.queuedTextEditsForInitialAstWithoutTokens=combineTextEditInfos(this.queuedTextEditsForInitialAstWithoutTokens,e))}flushQueue(){this.queuedTextEdits.length>0&&(this.astWithTokens=this.parseDocumentFromTextBuffer(this.queuedTextEdits,this.astWithTokens,!1),this.queuedTextEdits=[]),this.queuedTextEditsForInitialAstWithoutTokens.length>0&&(this.initialAstWithoutTokens&&(this.initialAstWithoutTokens=this.parseDocumentFromTextBuffer(this.queuedTextEditsForInitialAstWithoutTokens,this.initialAstWithoutTokens,!1)),this.queuedTextEditsForInitialAstWithoutTokens=[])}parseDocumentFromTextBuffer(e,t,i){const n=t,r=new TextBufferTokenizer(this.textModel,this.brackets);return parseDocument(r,e,n,i)}getBracketsInRange(e,t){this.flushQueue();const i=toLength(e.startLineNumber-1,e.startColumn-1),n=toLength(e.endLineNumber-1,e.endColumn-1);return new CallbackIterable(r=>{const s=this.initialAstWithoutTokens||this.astWithTokens;collectBrackets(s,lengthZero,s.length,i,n,r,0,0,new Map,t)})}getBracketPairsInRange(e,t){this.flushQueue();const i=positionToLength(e.getStartPosition()),n=positionToLength(e.getEndPosition());return new CallbackIterable(r=>{const s=this.initialAstWithoutTokens||this.astWithTokens,a=new CollectBracketPairsContext(r,t,this.textModel);collectBracketPairs(s,lengthZero,s.length,i,n,a,0,new Map)})}getFirstBracketAfter(e){this.flushQueue();const t=this.initialAstWithoutTokens||this.astWithTokens;return getFirstBracketAfter(t,lengthZero,t.length,positionToLength(e))}getFirstBracketBefore(e){this.flushQueue();const t=this.initialAstWithoutTokens||this.astWithTokens;return getFirstBracketBefore(t,lengthZero,t.length,positionToLength(e))}}function getFirstBracketBefore(o,e,t,i){if(o.kind===4||o.kind===2){const n=[];for(const r of o.children)t=lengthAdd(e,r.length),n.push({nodeOffsetStart:e,nodeOffsetEnd:t}),e=t;for(let r=n.length-1;r>=0;r--){const{nodeOffsetStart:s,nodeOffsetEnd:a}=n[r];if(lengthLessThan(s,i)){const l=getFirstBracketBefore(o.children[r],s,a,i);if(l)return l}}return null}else{if(o.kind===3)return null;if(o.kind===1){const n=lengthsToRange(e,t);return{bracketInfo:o.bracketInfo,range:n}}}return null}function getFirstBracketAfter(o,e,t,i){if(o.kind===4||o.kind===2){for(const n of o.children){if(t=lengthAdd(e,n.length),lengthLessThan(i,t)){const r=getFirstBracketAfter(n,e,t,i);if(r)return r}e=t}return null}else{if(o.kind===3)return null;if(o.kind===1){const n=lengthsToRange(e,t);return{bracketInfo:o.bracketInfo,range:n}}}return null}function collectBrackets(o,e,t,i,n,r,s,a,l,d,c=!1){if(s>200)return!0;e:for(;;)switch(o.kind){case 4:{const u=o.childrenLength;for(let g=0;g<u;g++){const f=o.getChild(g);if(f){if(t=lengthAdd(e,f.length),lengthLessThanEqual(e,n)&&lengthGreaterThanEqual(t,i)){if(lengthGreaterThanEqual(t,n)){o=f;continue e}if(!collectBrackets(f,e,t,i,n,r,s,0,l,d))return!1}e=t}}return!0}case 2:{const u=!d||!o.closingBracket||o.closingBracket.bracketInfo.closesColorized(o.openingBracket.bracketInfo);let g=0;if(l){let p=l.get(o.openingBracket.text);p===void 0&&(p=0),g=p,u&&(p++,l.set(o.openingBracket.text,p))}const f=o.childrenLength;for(let p=0;p<f;p++){const m=o.getChild(p);if(m){if(t=lengthAdd(e,m.length),lengthLessThanEqual(e,n)&&lengthGreaterThanEqual(t,i)){if(lengthGreaterThanEqual(t,n)&&m.kind!==1){o=m,u?(s++,a=g+1):a=g;continue e}if((u||m.kind!==1||!o.closingBracket)&&!collectBrackets(m,e,t,i,n,r,u?s+1:s,u?g+1:g,l,d,!o.closingBracket))return!1}e=t}}return l==null||l.set(o.openingBracket.text,g),!0}case 3:{const u=lengthsToRange(e,t);return r(new BracketInfo(u,s-1,0,!0))}case 1:{const u=lengthsToRange(e,t);return r(new BracketInfo(u,s-1,a-1,c))}case 0:return!0}}class CollectBracketPairsContext{constructor(e,t,i){this.push=e,this.includeMinIndentation=t,this.textModel=i}}function collectBracketPairs(o,e,t,i,n,r,s,a){var l;if(s>200)return!0;let d=!0;if(o.kind===2){let c=0;if(a){let f=a.get(o.openingBracket.text);f===void 0&&(f=0),c=f,f++,a.set(o.openingBracket.text,f)}const u=lengthAdd(e,o.openingBracket.length);let g=-1;if(r.includeMinIndentation&&(g=o.computeMinIndentation(e,r.textModel)),d=r.push(new BracketPairWithMinIndentationInfo(lengthsToRange(e,t),lengthsToRange(e,u),o.closingBracket?lengthsToRange(lengthAdd(u,((l=o.child)===null||l===void 0?void 0:l.length)||lengthZero),t):void 0,s,c,o,g)),e=u,d&&o.child){const f=o.child;if(t=lengthAdd(e,f.length),lengthLessThanEqual(e,n)&&lengthGreaterThanEqual(t,i)&&(d=collectBracketPairs(f,e,t,i,n,r,s+1,a),!d))return!1}a==null||a.set(o.openingBracket.text,c)}else{let c=e;for(const u of o.children){const g=c;if(c=lengthAdd(c,u.length),lengthLessThanEqual(g,n)&&lengthLessThanEqual(i,c)&&(d=collectBracketPairs(u,g,c,i,n,r,s,a),!d))return!1}}return d}class BracketPairsTextModelPart extends Disposable{get canBuildAST(){return this.textModel.getValueLength()<=5e6}constructor(e,t){super(),this.textModel=e,this.languageConfigurationService=t,this.bracketPairsTree=this._register(new MutableDisposable),this.onDidChangeEmitter=new Emitter$1,this.onDidChange=this.onDidChangeEmitter.event,this.bracketsRequested=!1,this._register(this.languageConfigurationService.onDidChange(i=>{var n;(!i.languageId||!((n=this.bracketPairsTree.value)===null||n===void 0)&&n.object.didLanguageChange(i.languageId))&&(this.bracketPairsTree.clear(),this.updateBracketPairsTree())}))}handleDidChangeOptions(e){this.bracketPairsTree.clear(),this.updateBracketPairsTree()}handleDidChangeLanguage(e){this.bracketPairsTree.clear(),this.updateBracketPairsTree()}handleDidChangeContent(e){var t;(t=this.bracketPairsTree.value)===null||t===void 0||t.object.handleContentChanged(e)}handleDidChangeBackgroundTokenizationState(){var e;(e=this.bracketPairsTree.value)===null||e===void 0||e.object.handleDidChangeBackgroundTokenizationState()}handleDidChangeTokens(e){var t;(t=this.bracketPairsTree.value)===null||t===void 0||t.object.handleDidChangeTokens(e)}updateBracketPairsTree(){if(this.bracketsRequested&&this.canBuildAST){if(!this.bracketPairsTree.value){const e=new DisposableStore;this.bracketPairsTree.value=createDisposableRef(e.add(new BracketPairsTree(this.textModel,t=>this.languageConfigurationService.getLanguageConfiguration(t))),e),e.add(this.bracketPairsTree.value.object.onDidChange(t=>this.onDidChangeEmitter.fire(t))),this.onDidChangeEmitter.fire()}}else this.bracketPairsTree.value&&(this.bracketPairsTree.clear(),this.onDidChangeEmitter.fire())}getBracketPairsInRange(e){var t;return this.bracketsRequested=!0,this.updateBracketPairsTree(),((t=this.bracketPairsTree.value)===null||t===void 0?void 0:t.object.getBracketPairsInRange(e,!1))||CallbackIterable.empty}getBracketPairsInRangeWithMinIndentation(e){var t;return this.bracketsRequested=!0,this.updateBracketPairsTree(),((t=this.bracketPairsTree.value)===null||t===void 0?void 0:t.object.getBracketPairsInRange(e,!0))||CallbackIterable.empty}getBracketsInRange(e,t=!1){var i;return this.bracketsRequested=!0,this.updateBracketPairsTree(),((i=this.bracketPairsTree.value)===null||i===void 0?void 0:i.object.getBracketsInRange(e,t))||CallbackIterable.empty}findMatchingBracketUp(e,t,i){const n=this.textModel.validatePosition(t),r=this.textModel.getLanguageIdAtPosition(n.lineNumber,n.column);if(this.canBuildAST){const s=this.languageConfigurationService.getLanguageConfiguration(r).bracketsNew.getClosingBracketInfo(e);if(!s)return null;const a=this.getBracketPairsInRange(Range$2.fromPositions(t,t)).findLast(l=>s.closes(l.openingBracketInfo));return a?a.openingBracketRange:null}else{const s=e.toLowerCase(),a=this.languageConfigurationService.getLanguageConfiguration(r).brackets;if(!a)return null;const l=a.textIsBracket[s];return l?stripBracketSearchCanceled(this._findMatchingBracketUp(l,n,createTimeBasedContinueBracketSearchPredicate(i))):null}}matchBracket(e,t){if(this.canBuildAST){const i=this.getBracketPairsInRange(Range$2.fromPositions(e,e)).filter(n=>n.closingBracketRange!==void 0&&(n.openingBracketRange.containsPosition(e)||n.closingBracketRange.containsPosition(e))).findLastMaxBy(compareBy(n=>n.openingBracketRange.containsPosition(e)?n.openingBracketRange:n.closingBracketRange,Range$2.compareRangesUsingStarts));return i?[i.openingBracketRange,i.closingBracketRange]:null}else{const i=createTimeBasedContinueBracketSearchPredicate(t);return this._matchBracket(this.textModel.validatePosition(e),i)}}_establishBracketSearchOffsets(e,t,i,n){const r=t.getCount(),s=t.getLanguageId(n);let a=Math.max(0,e.column-1-i.maxBracketLength);for(let d=n-1;d>=0;d--){const c=t.getEndOffset(d);if(c<=a)break;if(ignoreBracketsInToken(t.getStandardTokenType(d))||t.getLanguageId(d)!==s){a=c;break}}let l=Math.min(t.getLineContent().length,e.column-1+i.maxBracketLength);for(let d=n+1;d<r;d++){const c=t.getStartOffset(d);if(c>=l)break;if(ignoreBracketsInToken(t.getStandardTokenType(d))||t.getLanguageId(d)!==s){l=c;break}}return{searchStartOffset:a,searchEndOffset:l}}_matchBracket(e,t){const i=e.lineNumber,n=this.textModel.tokenization.getLineTokens(i),r=this.textModel.getLineContent(i),s=n.findTokenIndexAtOffset(e.column-1);if(s<0)return null;const a=this.languageConfigurationService.getLanguageConfiguration(n.getLanguageId(s)).brackets;if(a&&!ignoreBracketsInToken(n.getStandardTokenType(s))){let{searchStartOffset:l,searchEndOffset:d}=this._establishBracketSearchOffsets(e,n,a,s),c=null;for(;;){const u=BracketsUtils.findNextBracketInRange(a.forwardRegex,i,r,l,d);if(!u)break;if(u.startColumn<=e.column&&e.column<=u.endColumn){const g=r.substring(u.startColumn-1,u.endColumn-1).toLowerCase(),f=this._matchFoundBracket(u,a.textIsBracket[g],a.textIsOpenBracket[g],t);if(f){if(f instanceof BracketSearchCanceled)return null;c=f}}l=u.endColumn-1}if(c)return c}if(s>0&&n.getStartOffset(s)===e.column-1){const l=s-1,d=this.languageConfigurationService.getLanguageConfiguration(n.getLanguageId(l)).brackets;if(d&&!ignoreBracketsInToken(n.getStandardTokenType(l))){const{searchStartOffset:c,searchEndOffset:u}=this._establishBracketSearchOffsets(e,n,d,l),g=BracketsUtils.findPrevBracketInRange(d.reversedRegex,i,r,c,u);if(g&&g.startColumn<=e.column&&e.column<=g.endColumn){const f=r.substring(g.startColumn-1,g.endColumn-1).toLowerCase(),p=this._matchFoundBracket(g,d.textIsBracket[f],d.textIsOpenBracket[f],t);if(p)return p instanceof BracketSearchCanceled?null:p}}}return null}_matchFoundBracket(e,t,i,n){if(!t)return null;const r=i?this._findMatchingBracketDown(t,e.getEndPosition(),n):this._findMatchingBracketUp(t,e.getStartPosition(),n);return r?r instanceof BracketSearchCanceled?r:[e,r]:null}_findMatchingBracketUp(e,t,i){const n=e.languageId,r=e.reversedRegex;let s=-1,a=0;const l=(d,c,u,g)=>{for(;;){if(i&&++a%100===0&&!i())return BracketSearchCanceled.INSTANCE;const f=BracketsUtils.findPrevBracketInRange(r,d,c,u,g);if(!f)break;const p=c.substring(f.startColumn-1,f.endColumn-1).toLowerCase();if(e.isOpen(p)?s++:e.isClose(p)&&s--,s===0)return f;g=f.startColumn-1}return null};for(let d=t.lineNumber;d>=1;d--){const c=this.textModel.tokenization.getLineTokens(d),u=c.getCount(),g=this.textModel.getLineContent(d);let f=u-1,p=g.length,m=g.length;d===t.lineNumber&&(f=c.findTokenIndexAtOffset(t.column-1),p=t.column-1,m=t.column-1);let b=!0;for(;f>=0;f--){const _=c.getLanguageId(f)===n&&!ignoreBracketsInToken(c.getStandardTokenType(f));if(_)b?p=c.getStartOffset(f):(p=c.getStartOffset(f),m=c.getEndOffset(f));else if(b&&p!==m){const C=l(d,g,p,m);if(C)return C}b=_}if(b&&p!==m){const _=l(d,g,p,m);if(_)return _}}return null}_findMatchingBracketDown(e,t,i){const n=e.languageId,r=e.forwardRegex;let s=1,a=0;const l=(c,u,g,f)=>{for(;;){if(i&&++a%100===0&&!i())return BracketSearchCanceled.INSTANCE;const p=BracketsUtils.findNextBracketInRange(r,c,u,g,f);if(!p)break;const m=u.substring(p.startColumn-1,p.endColumn-1).toLowerCase();if(e.isOpen(m)?s++:e.isClose(m)&&s--,s===0)return p;g=p.endColumn-1}return null},d=this.textModel.getLineCount();for(let c=t.lineNumber;c<=d;c++){const u=this.textModel.tokenization.getLineTokens(c),g=u.getCount(),f=this.textModel.getLineContent(c);let p=0,m=0,b=0;c===t.lineNumber&&(p=u.findTokenIndexAtOffset(t.column-1),m=t.column-1,b=t.column-1);let _=!0;for(;p<g;p++){const C=u.getLanguageId(p)===n&&!ignoreBracketsInToken(u.getStandardTokenType(p));if(C)_||(m=u.getStartOffset(p)),b=u.getEndOffset(p);else if(_&&m!==b){const S=l(c,f,m,b);if(S)return S}_=C}if(_&&m!==b){const C=l(c,f,m,b);if(C)return C}}return null}findPrevBracket(e){var t;const i=this.textModel.validatePosition(e);if(this.canBuildAST)return this.bracketsRequested=!0,this.updateBracketPairsTree(),((t=this.bracketPairsTree.value)===null||t===void 0?void 0:t.object.getFirstBracketBefore(i))||null;let n=null,r=null,s=null;for(let a=i.lineNumber;a>=1;a--){const l=this.textModel.tokenization.getLineTokens(a),d=l.getCount(),c=this.textModel.getLineContent(a);let u=d-1,g=c.length,f=c.length;if(a===i.lineNumber){u=l.findTokenIndexAtOffset(i.column-1),g=i.column-1,f=i.column-1;const m=l.getLanguageId(u);n!==m&&(n=m,r=this.languageConfigurationService.getLanguageConfiguration(n).brackets,s=this.languageConfigurationService.getLanguageConfiguration(n).bracketsNew)}let p=!0;for(;u>=0;u--){const m=l.getLanguageId(u);if(n!==m){if(r&&s&&p&&g!==f){const _=BracketsUtils.findPrevBracketInRange(r.reversedRegex,a,c,g,f);if(_)return this._toFoundBracket(s,_);p=!1}n=m,r=this.languageConfigurationService.getLanguageConfiguration(n).brackets,s=this.languageConfigurationService.getLanguageConfiguration(n).bracketsNew}const b=!!r&&!ignoreBracketsInToken(l.getStandardTokenType(u));if(b)p?g=l.getStartOffset(u):(g=l.getStartOffset(u),f=l.getEndOffset(u));else if(s&&r&&p&&g!==f){const _=BracketsUtils.findPrevBracketInRange(r.reversedRegex,a,c,g,f);if(_)return this._toFoundBracket(s,_)}p=b}if(s&&r&&p&&g!==f){const m=BracketsUtils.findPrevBracketInRange(r.reversedRegex,a,c,g,f);if(m)return this._toFoundBracket(s,m)}}return null}findNextBracket(e){var t;const i=this.textModel.validatePosition(e);if(this.canBuildAST)return this.bracketsRequested=!0,this.updateBracketPairsTree(),((t=this.bracketPairsTree.value)===null||t===void 0?void 0:t.object.getFirstBracketAfter(i))||null;const n=this.textModel.getLineCount();let r=null,s=null,a=null;for(let l=i.lineNumber;l<=n;l++){const d=this.textModel.tokenization.getLineTokens(l),c=d.getCount(),u=this.textModel.getLineContent(l);let g=0,f=0,p=0;if(l===i.lineNumber){g=d.findTokenIndexAtOffset(i.column-1),f=i.column-1,p=i.column-1;const b=d.getLanguageId(g);r!==b&&(r=b,s=this.languageConfigurationService.getLanguageConfiguration(r).brackets,a=this.languageConfigurationService.getLanguageConfiguration(r).bracketsNew)}let m=!0;for(;g<c;g++){const b=d.getLanguageId(g);if(r!==b){if(a&&s&&m&&f!==p){const C=BracketsUtils.findNextBracketInRange(s.forwardRegex,l,u,f,p);if(C)return this._toFoundBracket(a,C);m=!1}r=b,s=this.languageConfigurationService.getLanguageConfiguration(r).brackets,a=this.languageConfigurationService.getLanguageConfiguration(r).bracketsNew}const _=!!s&&!ignoreBracketsInToken(d.getStandardTokenType(g));if(_)m||(f=d.getStartOffset(g)),p=d.getEndOffset(g);else if(a&&s&&m&&f!==p){const C=BracketsUtils.findNextBracketInRange(s.forwardRegex,l,u,f,p);if(C)return this._toFoundBracket(a,C)}m=_}if(a&&s&&m&&f!==p){const b=BracketsUtils.findNextBracketInRange(s.forwardRegex,l,u,f,p);if(b)return this._toFoundBracket(a,b)}}return null}findEnclosingBrackets(e,t){const i=this.textModel.validatePosition(e);if(this.canBuildAST){const f=Range$2.fromPositions(i),p=this.getBracketPairsInRange(Range$2.fromPositions(i,i)).findLast(m=>m.closingBracketRange!==void 0&&m.range.strictContainsRange(f));return p?[p.openingBracketRange,p.closingBracketRange]:null}const n=createTimeBasedContinueBracketSearchPredicate(t),r=this.textModel.getLineCount(),s=new Map;let a=[];const l=(f,p)=>{if(!s.has(f)){const m=[];for(let b=0,_=p?p.brackets.length:0;b<_;b++)m[b]=0;s.set(f,m)}a=s.get(f)};let d=0;const c=(f,p,m,b,_)=>{for(;;){if(n&&++d%100===0&&!n())return BracketSearchCanceled.INSTANCE;const C=BracketsUtils.findNextBracketInRange(f.forwardRegex,p,m,b,_);if(!C)break;const S=m.substring(C.startColumn-1,C.endColumn-1).toLowerCase(),y=f.textIsBracket[S];if(y&&(y.isOpen(S)?a[y.index]++:y.isClose(S)&&a[y.index]--,a[y.index]===-1))return this._matchFoundBracket(C,y,!1,n);b=C.endColumn-1}return null};let u=null,g=null;for(let f=i.lineNumber;f<=r;f++){const p=this.textModel.tokenization.getLineTokens(f),m=p.getCount(),b=this.textModel.getLineContent(f);let _=0,C=0,S=0;if(f===i.lineNumber){_=p.findTokenIndexAtOffset(i.column-1),C=i.column-1,S=i.column-1;const E=p.getLanguageId(_);u!==E&&(u=E,g=this.languageConfigurationService.getLanguageConfiguration(u).brackets,l(u,g))}let y=!0;for(;_<m;_++){const E=p.getLanguageId(_);if(u!==E){if(g&&y&&C!==S){const L=c(g,f,b,C,S);if(L)return stripBracketSearchCanceled(L);y=!1}u=E,g=this.languageConfigurationService.getLanguageConfiguration(u).brackets,l(u,g)}const x=!!g&&!ignoreBracketsInToken(p.getStandardTokenType(_));if(x)y||(C=p.getStartOffset(_)),S=p.getEndOffset(_);else if(g&&y&&C!==S){const L=c(g,f,b,C,S);if(L)return stripBracketSearchCanceled(L)}y=x}if(g&&y&&C!==S){const E=c(g,f,b,C,S);if(E)return stripBracketSearchCanceled(E)}}return null}_toFoundBracket(e,t){if(!t)return null;let i=this.textModel.getValueInRange(t);i=i.toLowerCase();const n=e.getBracketInfo(i);return n?{range:t,bracketInfo:n}:null}}function createDisposableRef(o,e){return{object:o,dispose:()=>e==null?void 0:e.dispose()}}function createTimeBasedContinueBracketSearchPredicate(o){if(typeof o>"u")return()=>!0;{const e=Date.now();return()=>Date.now()-e<=o}}class BracketSearchCanceled{constructor(){this._searchCanceledBrand=void 0}}BracketSearchCanceled.INSTANCE=new BracketSearchCanceled;function stripBracketSearchCanceled(o){return o instanceof BracketSearchCanceled?null:o}class ColorizedBracketPairsDecorationProvider extends Disposable{constructor(e){super(),this.textModel=e,this.colorProvider=new ColorProvider,this.onDidChangeEmitter=new Emitter$1,this.onDidChange=this.onDidChangeEmitter.event,this.colorizationOptions=e.getOptions().bracketPairColorizationOptions,this._register(e.bracketPairs.onDidChange(t=>{this.onDidChangeEmitter.fire()}))}handleDidChangeOptions(e){this.colorizationOptions=this.textModel.getOptions().bracketPairColorizationOptions}getDecorationsInRange(e,t,i,n){return n?[]:t===void 0?[]:this.colorizationOptions.enabled?this.textModel.bracketPairs.getBracketsInRange(e,!0).map(s=>({id:`bracket${s.range.toString()}-${s.nestingLevel}`,options:{description:"BracketPairColorization",inlineClassName:this.colorProvider.getInlineClassName(s,this.colorizationOptions.independentColorPoolPerBracketType)},ownerId:0,range:s.range})).toArray():[]}getAllDecorations(e,t){return e===void 0?[]:this.colorizationOptions.enabled?this.getDecorationsInRange(new Range$2(1,1,this.textModel.getLineCount(),1),e,t):[]}}class ColorProvider{constructor(){this.unexpectedClosingBracketClassName="unexpected-closing-bracket"}getInlineClassName(e,t){return e.isInvalid?this.unexpectedClosingBracketClassName:this.getInlineClassNameOfLevel(t?e.nestingLevelOfEqualBracketType:e.nestingLevel)}getInlineClassNameOfLevel(e){return`bracket-highlighting-${e%30}`}}registerThemingParticipant((o,e)=>{const t=[editorBracketHighlightingForeground1,editorBracketHighlightingForeground2,editorBracketHighlightingForeground3,editorBracketHighlightingForeground4,editorBracketHighlightingForeground5,editorBracketHighlightingForeground6],i=new ColorProvider;e.addRule(`.monaco-editor .${i.unexpectedClosingBracketClassName} { color: ${o.getColor(editorBracketHighlightingUnexpectedBracketForeground)}; }`);const n=t.map(r=>o.getColor(r)).filter(r=>!!r).filter(r=>!r.isTransparent());for(let r=0;r<30;r++){const s=n[r%n.length];e.addRule(`.monaco-editor .${i.getInlineClassNameOfLevel(r)} { color: ${s}; }`)}});function escapeNewLine(o){return o.replace(/\n/g,"\\n").replace(/\r/g,"\\r")}class TextChange{get oldLength(){return this.oldText.length}get oldEnd(){return this.oldPosition+this.oldText.length}get newLength(){return this.newText.length}get newEnd(){return this.newPosition+this.newText.length}constructor(e,t,i,n){this.oldPosition=e,this.oldText=t,this.newPosition=i,this.newText=n}toString(){return this.oldText.length===0?`(insert@${this.oldPosition} "${escapeNewLine(this.newText)}")`:this.newText.length===0?`(delete@${this.oldPosition} "${escapeNewLine(this.oldText)}")`:`(replace@${this.oldPosition} "${escapeNewLine(this.oldText)}" with "${escapeNewLine(this.newText)}")`}static _writeStringSize(e){return 4+2*e.length}static _writeString(e,t,i){const n=t.length;writeUInt32BE(e,n,i),i+=4;for(let r=0;r<n;r++)writeUInt16LE(e,t.charCodeAt(r),i),i+=2;return i}static _readString(e,t){const i=readUInt32BE(e,t);return t+=4,decodeUTF16LE(e,t,i)}writeSize(){return 8+TextChange._writeStringSize(this.oldText)+TextChange._writeStringSize(this.newText)}write(e,t){return writeUInt32BE(e,this.oldPosition,t),t+=4,writeUInt32BE(e,this.newPosition,t),t+=4,t=TextChange._writeString(e,this.oldText,t),t=TextChange._writeString(e,this.newText,t),t}static read(e,t,i){const n=readUInt32BE(e,t);t+=4;const r=readUInt32BE(e,t);t+=4;const s=TextChange._readString(e,t);t+=TextChange._writeStringSize(s);const a=TextChange._readString(e,t);return t+=TextChange._writeStringSize(a),i.push(new TextChange(n,s,r,a)),t}}function compressConsecutiveTextChanges(o,e){return o===null||o.length===0?e:new TextChangeCompressor(o,e).compress()}class TextChangeCompressor{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(i===null){this._acceptCurr(n),n=this._getCurr(++t);continue}if(n===null){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[d,c]=TextChangeCompressor._splitCurr(n,i.newPosition-n.oldPosition);this._acceptCurr(d),n=c;continue}if(i.newPosition<n.oldPosition){const[d,c]=TextChangeCompressor._splitPrev(i,n.oldPosition-i.newPosition);this._acceptPrev(d),i=c;continue}let a,l;if(n.oldEnd===i.newEnd)a=i,l=n,i=this._getPrev(++e),n=this._getCurr(++t);else if(n.oldEnd<i.newEnd){const[d,c]=TextChangeCompressor._splitPrev(i,n.oldLength);a=d,l=n,i=c,n=this._getCurr(++t)}else{const[d,c]=TextChangeCompressor._splitCurr(n,i.newLength);a=i,l=d,i=this._getPrev(++e),n=c}this._result[this._resultLen++]=new TextChange(a.oldPosition,a.oldText,l.newPosition,l.newText),this._prevDeltaOffset+=a.newLength-a.oldLength,this._currDeltaOffset+=l.newLength-l.oldLength}const r=TextChangeCompressor._merge(this._result);return TextChangeCompressor._removeNoOps(r)}_acceptCurr(e){this._result[this._resultLen++]=TextChangeCompressor._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++]=TextChangeCompressor._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 TextChange(t.oldPosition-e,t.oldText,t.newPosition,t.newText)}static _rebasePrev(e,t){return new TextChange(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 TextChange(e.oldPosition,e.oldText,e.newPosition,i),new TextChange(e.oldEnd,"",e.newPosition+t,n)]}static _splitCurr(e,t){const i=e.oldText.substr(0,t),n=e.oldText.substr(t);return[new TextChange(e.oldPosition,i,e.newPosition,e.newText),new TextChange(e.oldPosition+t,n,e.newEnd,"")]}static _merge(e){if(e.length===0)return e;const t=[];let i=0,n=e[0];for(let r=1;r<e.length;r++){const s=e[r];n.oldEnd===s.oldPosition?n=new TextChange(n.oldPosition,n.oldText+s.oldText,n.newPosition,n.newText+s.newText):(t[i++]=n,n=s)}return t[i++]=n,t}static _removeNoOps(e){if(e.length===0)return e;const t=[];let i=0;for(let n=0;n<e.length;n++){const r=e[n];r.oldText!==r.newText&&(t[i++]=r)}return t}}function isPathSeparator(o){return o===47||o===92}function toSlashes(o){return o.replace(/[\\/]/g,posix.sep)}function toPosixPath(o){return o.indexOf("/")===-1&&(o=toSlashes(o)),/^[a-zA-Z]:(\/|$)/.test(o)&&(o="/"+o),o}function getRoot(o,e=posix.sep){if(!o)return"";const t=o.length,i=o.charCodeAt(0);if(isPathSeparator(i)){if(isPathSeparator(o.charCodeAt(1))&&!isPathSeparator(o.charCodeAt(2))){let r=3;const s=r;for(;r<t&&!isPathSeparator(o.charCodeAt(r));r++);if(s!==r&&!isPathSeparator(o.charCodeAt(r+1))){for(r+=1;r<t;r++)if(isPathSeparator(o.charCodeAt(r)))return o.slice(0,r+1).replace(/[\\/]/g,e)}}return e}else if(isWindowsDriveLetter(i)&&o.charCodeAt(1)===58)return isPathSeparator(o.charCodeAt(2))?o.slice(0,2)+e:o.slice(0,2);let n=o.indexOf("://");if(n!==-1){for(n+=3;n<t;n++)if(isPathSeparator(o.charCodeAt(n)))return o.slice(0,n+1)}return""}function isEqualOrParent(o,e,t,i=sep){if(o===e)return!0;if(!o||!e||e.length>o.length)return!1;if(t){if(!startsWithIgnoreCase(o,e))return!1;if(e.length===o.length)return!0;let r=e.length;return e.charAt(e.length-1)===i&&r--,o.charAt(r)===i}return e.charAt(e.length-1)!==i&&(e+=i),o.indexOf(e)===0}function isWindowsDriveLetter(o){return o>=65&&o<=90||o>=97&&o<=122}function hasDriveLetter(o,e=isWindows){return e?isWindowsDriveLetter(o.charCodeAt(0))&&o.charCodeAt(1)===58:!1}function originalFSPath(o){return uriToFsPath(o,!0)}class ExtUri{constructor(e){this._ignorePathCasing=e}compare(e,t,i=!1){return e===t?0:compare(this.getComparisonKey(e,i),this.getComparisonKey(t,i))}isEqual(e,t,i=!1){return e===t?!0:!e||!t?!1: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()}isEqualOrParent(e,t,i=!1){if(e.scheme===t.scheme){if(e.scheme===Schemas.file)return isEqualOrParent(originalFSPath(e),originalFSPath(t),this._ignorePathCasing(e))&&e.query===t.query&&(i||e.fragment===t.fragment);if(isEqualAuthority(e.authority,t.authority))return isEqualOrParent(e.path,t.path,this._ignorePathCasing(e),"/")&&e.query===t.query&&(i||e.fragment===t.fragment)}return!1}joinPath(e,...t){return URI.joinPath(e,...t)}basenameOrAuthority(e){return basename(e)||e.authority}basename(e){return posix.basename(e.path)}extname(e){return posix.extname(e.path)}dirname(e){if(e.path.length===0)return e;let t;return e.scheme===Schemas.file?t=URI.file(dirname$1(originalFSPath(e))).path:(t=posix.dirname(e.path),e.authority&&t.length&&t.charCodeAt(0)!==47&&(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 e.scheme===Schemas.file?t=URI.file(normalize(originalFSPath(e))).path:t=posix.normalize(e.path),e.with({path:t})}relativePath(e,t){if(e.scheme!==t.scheme||!isEqualAuthority(e.authority,t.authority))return;if(e.scheme===Schemas.file){const r=relative(originalFSPath(e),originalFSPath(t));return isWindows?toSlashes(r):r}let i=e.path||"/";const n=t.path||"/";if(this._ignorePathCasing(e)){let r=0;for(const s=Math.min(i.length,n.length);r<s&&!(i.charCodeAt(r)!==n.charCodeAt(r)&&i.charAt(r).toLowerCase()!==n.charAt(r).toLowerCase());r++);i=n.substr(0,r)+i.substr(r)}return posix.relative(i,n)}resolvePath(e,t){if(e.scheme===Schemas.file){const i=URI.file(resolve(originalFSPath(e),t));return e.with({authority:i.authority,path:i.path})}return t=toPosixPath(t),e.with({path:posix.resolve(e.path,t)})}isAbsolutePath(e){return!!e.path&&e.path[0]==="/"}isEqualAuthority(e,t){return e===t||e!==void 0&&t!==void 0&&equalsIgnoreCase(e,t)}hasTrailingPathSeparator(e,t=sep){if(e.scheme===Schemas.file){const i=originalFSPath(e);return i.length>getRoot(i).length&&i[i.length-1]===t}else{const i=e.path;return i.length>1&&i.charCodeAt(i.length-1)===47&&!/^[a-zA-Z]:(\/$|\\$)/.test(e.fsPath)}}removeTrailingPathSeparator(e,t=sep){return hasTrailingPathSeparator(e,t)?e.with({path:e.path.substr(0,e.path.length-1)}):e}addTrailingPathSeparator(e,t=sep){let i=!1;if(e.scheme===Schemas.file){const n=originalFSPath(e);i=n!==void 0&&n.length===getRoot(n).length&&n[n.length-1]===t}else{t="/";const n=e.path;i=n.length===1&&n.charCodeAt(n.length-1)===47}return!i&&!hasTrailingPathSeparator(e,t)?e.with({path:e.path+"/"}):e}}const extUri=new ExtUri(()=>!1),isEqual=extUri.isEqual.bind(extUri);extUri.isEqualOrParent.bind(extUri);extUri.getComparisonKey.bind(extUri);const basenameOrAuthority=extUri.basenameOrAuthority.bind(extUri),basename=extUri.basename.bind(extUri),extname=extUri.extname.bind(extUri),dirname=extUri.dirname.bind(extUri),joinPath=extUri.joinPath.bind(extUri),normalizePath=extUri.normalizePath.bind(extUri),relativePath=extUri.relativePath.bind(extUri),resolvePath=extUri.resolvePath.bind(extUri);extUri.isAbsolutePath.bind(extUri);const isEqualAuthority=extUri.isEqualAuthority.bind(extUri),hasTrailingPathSeparator=extUri.hasTrailingPathSeparator.bind(extUri);extUri.removeTrailingPathSeparator.bind(extUri);extUri.addTrailingPathSeparator.bind(extUri);var DataUri;(function(o){o.META_DATA_LABEL="label",o.META_DATA_DESCRIPTION="description",o.META_DATA_SIZE="size",o.META_DATA_MIME="mime";function e(t){const i=new Map;t.path.substring(t.path.indexOf(";")+1,t.path.lastIndexOf(";")).split(";").forEach(s=>{const[a,l]=s.split(":");a&&l&&i.set(a,l)});const r=t.path.substring(0,t.path.indexOf(";"));return r&&i.set(o.META_DATA_MIME,r),i}o.parseMetaData=e})(DataUri||(DataUri={}));function uriGetComparisonKey(o){return o.toString()}class SingleModelEditStackData{static create(e,t){const i=e.getAlternativeVersionId(),n=getModelEOL(e);return new SingleModelEditStackData(i,i,n,n,t,t,[])}constructor(e,t,i,n,r,s,a){this.beforeVersionId=e,this.afterVersionId=t,this.beforeEOL=i,this.afterEOL=n,this.beforeCursorState=r,this.afterCursorState=s,this.changes=a}append(e,t,i,n,r){t.length>0&&(this.changes=compressConsecutiveTextChanges(this.changes,t)),this.afterEOL=i,this.afterVersionId=n,this.afterCursorState=r}static _writeSelectionsSize(e){return 4+4*4*(e?e.length:0)}static _writeSelections(e,t,i){if(writeUInt32BE(e,t?t.length:0,i),i+=4,t)for(const n of t)writeUInt32BE(e,n.selectionStartLineNumber,i),i+=4,writeUInt32BE(e,n.selectionStartColumn,i),i+=4,writeUInt32BE(e,n.positionLineNumber,i),i+=4,writeUInt32BE(e,n.positionColumn,i),i+=4;return i}static _readSelections(e,t,i){const n=readUInt32BE(e,t);t+=4;for(let r=0;r<n;r++){const s=readUInt32BE(e,t);t+=4;const a=readUInt32BE(e,t);t+=4;const l=readUInt32BE(e,t);t+=4;const d=readUInt32BE(e,t);t+=4,i.push(new Selection$1(s,a,l,d))}return t}serialize(){let e=10+SingleModelEditStackData._writeSelectionsSize(this.beforeCursorState)+SingleModelEditStackData._writeSelectionsSize(this.afterCursorState)+4;for(const n of this.changes)e+=n.writeSize();const t=new Uint8Array(e);let i=0;writeUInt32BE(t,this.beforeVersionId,i),i+=4,writeUInt32BE(t,this.afterVersionId,i),i+=4,writeUInt8(t,this.beforeEOL,i),i+=1,writeUInt8(t,this.afterEOL,i),i+=1,i=SingleModelEditStackData._writeSelections(t,this.beforeCursorState,i),i=SingleModelEditStackData._writeSelections(t,this.afterCursorState,i),writeUInt32BE(t,this.changes.length,i),i+=4;for(const n of this.changes)i=n.write(t,i);return t.buffer}static deserialize(e){const t=new Uint8Array(e);let i=0;const n=readUInt32BE(t,i);i+=4;const r=readUInt32BE(t,i);i+=4;const s=readUInt8(t,i);i+=1;const a=readUInt8(t,i);i+=1;const l=[];i=SingleModelEditStackData._readSelections(t,i,l);const d=[];i=SingleModelEditStackData._readSelections(t,i,d);const c=readUInt32BE(t,i);i+=4;const u=[];for(let g=0;g<c;g++)i=TextChange.read(t,i,u);return new SingleModelEditStackData(n,r,s,a,l,d,u)}}class SingleModelEditStackElement{get type(){return 0}get resource(){return URI.isUri(this.model)?this.model:this.model.uri}constructor(e,t,i,n){this.label=e,this.code=t,this.model=i,this._data=SingleModelEditStackData.create(i,n)}toString(){return(this._data instanceof SingleModelEditStackData?this._data:SingleModelEditStackData.deserialize(this._data)).changes.map(t=>t.toString()).join(", ")}matchesResource(e){return(URI.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 SingleModelEditStackData}append(e,t,i,n,r){this._data instanceof SingleModelEditStackData&&this._data.append(e,t,i,n,r)}close(){this._data instanceof SingleModelEditStackData&&(this._data=this._data.serialize())}open(){this._data instanceof SingleModelEditStackData||(this._data=SingleModelEditStackData.deserialize(this._data))}undo(){if(URI.isUri(this.model))throw new Error("Invalid SingleModelEditStackElement");this._data instanceof SingleModelEditStackData&&(this._data=this._data.serialize());const e=SingleModelEditStackData.deserialize(this._data);this.model._applyUndo(e.changes,e.beforeEOL,e.beforeVersionId,e.beforeCursorState)}redo(){if(URI.isUri(this.model))throw new Error("Invalid SingleModelEditStackElement");this._data instanceof SingleModelEditStackData&&(this._data=this._data.serialize());const e=SingleModelEditStackData.deserialize(this._data);this.model._applyRedo(e.changes,e.afterEOL,e.afterVersionId,e.afterCursorState)}heapSize(){return this._data instanceof SingleModelEditStackData&&(this._data=this._data.serialize()),this._data.byteLength+168}}class MultiModelEditStackElement{get resources(){return this._editStackElementsArr.map(e=>e.resource)}constructor(e,t,i){this.label=e,this.code=t,this.type=1,this._isOpen=!0,this._editStackElementsArr=i.slice(0),this._editStackElementsMap=new Map;for(const n of this._editStackElementsArr){const r=uriGetComparisonKey(n.resource);this._editStackElementsMap.set(r,n)}this._delegate=null}prepareUndoRedo(){if(this._delegate)return this._delegate.prepareUndoRedo(this)}matchesResource(e){const t=uriGetComparisonKey(e);return this._editStackElementsMap.has(t)}setModel(e){const t=uriGetComparisonKey(URI.isUri(e)?e:e.uri);this._editStackElementsMap.has(t)&&this._editStackElementsMap.get(t).setModel(e)}canAppend(e){if(!this._isOpen)return!1;const t=uriGetComparisonKey(e.uri);return this._editStackElementsMap.has(t)?this._editStackElementsMap.get(t).canAppend(e):!1}append(e,t,i,n,r){const s=uriGetComparisonKey(e.uri);this._editStackElementsMap.get(s).append(e,t,i,n,r)}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=uriGetComparisonKey(e);return this._editStackElementsMap.has(t)?this._editStackElementsMap.get(t).heapSize():0}split(){return this._editStackElementsArr}toString(){const e=[];for(const t of this._editStackElementsArr)e.push(`${basename(t.resource)}: ${t}`);return`{${e.join(", ")}}`}}function getModelEOL(o){return o.getEOL()===`
- `?0:1}function isEditStackElement(o){return o?o instanceof SingleModelEditStackElement||o instanceof MultiModelEditStackElement:!1}class EditStack{constructor(e,t){this._model=e,this._undoRedoService=t}pushStackElement(){const e=this._undoRedoService.getLastElement(this._model.uri);isEditStackElement(e)&&e.close()}popStackElement(){const e=this._undoRedoService.getLastElement(this._model.uri);isEditStackElement(e)&&e.open()}clear(){this._undoRedoService.removeElements(this._model.uri)}_getOrCreateEditStackElement(e,t){const i=this._undoRedoService.getLastElement(this._model.uri);if(isEditStackElement(i)&&i.canAppend(this._model))return i;const n=new SingleModelEditStackElement(localize("edit","Typing"),"undoredo.textBufferEdit",this._model,e);return this._undoRedoService.pushElement(n,t),n}pushEOL(e){const t=this._getOrCreateEditStackElement(null,void 0);this._model.setEOL(e),t.append(this._model,[],getModelEOL(this._model),this._model.getAlternativeVersionId(),null)}pushEditOperation(e,t,i,n){const r=this._getOrCreateEditStackElement(e,n),s=this._model.applyEdits(t,!0),a=EditStack._computeCursorState(i,s),l=s.map((d,c)=>({index:c,textChange:d.textChange}));return l.sort((d,c)=>d.textChange.oldPosition===c.textChange.oldPosition?d.index-c.index:d.textChange.oldPosition-c.textChange.oldPosition),r.append(this._model,l.map(d=>d.textChange),getModelEOL(this._model),this._model.getAlternativeVersionId(),a),a}static _computeCursorState(e,t){try{return e?e(t):null}catch(i){return onUnexpectedError(i),null}}}class SpacesDiffResult{constructor(){this.spacesDiff=0,this.looksLikeAlignment=!1}}function spacesDiff(o,e,t,i,n){n.spacesDiff=0,n.looksLikeAlignment=!1;let r;for(r=0;r<e&&r<i;r++){const g=o.charCodeAt(r),f=t.charCodeAt(r);if(g!==f)break}let s=0,a=0;for(let g=r;g<e;g++)o.charCodeAt(g)===32?s++:a++;let l=0,d=0;for(let g=r;g<i;g++)t.charCodeAt(g)===32?l++:d++;if(s>0&&a>0||l>0&&d>0)return;const c=Math.abs(a-d),u=Math.abs(s-l);if(c===0){n.spacesDiff=u,u>0&&0<=l-1&&l-1<o.length&&l<t.length&&t.charCodeAt(l)!==32&&o.charCodeAt(l-1)===32&&o.charCodeAt(o.length-1)===44&&(n.looksLikeAlignment=!0);return}if(u%c===0){n.spacesDiff=u/c;return}}function guessIndentation(o,e,t){const i=Math.min(o.getLineCount(),1e4);let n=0,r=0,s="",a=0;const l=[2,4,6,8,3,5,7],d=8,c=[0,0,0,0,0,0,0,0,0],u=new SpacesDiffResult;for(let p=1;p<=i;p++){const m=o.getLineLength(p),b=o.getLineContent(p),_=m<=65536;let C=!1,S=0,y=0,E=0;for(let L=0,I=m;L<I;L++){const D=_?b.charCodeAt(L):o.getLineCharCode(p,L);if(D===9)E++;else if(D===32)y++;else{C=!0,S=L;break}}if(!C||(E>0?n++:y>1&&r++,spacesDiff(s,a,b,S,u),u.looksLikeAlignment&&!(t&&e===u.spacesDiff)))continue;const x=u.spacesDiff;x<=d&&c[x]++,s=b,a=S}let g=t;n!==r&&(g=n<r);let f=e;if(g){let p=g?0:.1*i;l.forEach(m=>{const b=c[m];b>p&&(p=b,f=m)}),f===4&&c[4]>0&&c[2]>0&&c[2]>=c[4]/2&&(f=2)}return{insertSpaces:g,tabSize:f}}function getNodeColor(o){return(o.metadata&1)>>>0}function setNodeColor(o,e){o.metadata=o.metadata&254|e<<0}function getNodeIsVisited(o){return(o.metadata&2)>>>1===1}function setNodeIsVisited(o,e){o.metadata=o.metadata&253|(e?1:0)<<1}function getNodeIsForValidation(o){return(o.metadata&4)>>>2===1}function setNodeIsForValidation(o,e){o.metadata=o.metadata&251|(e?1:0)<<2}function getNodeIsInGlyphMargin(o){return(o.metadata&64)>>>6===1}function setNodeIsInGlyphMargin(o,e){o.metadata=o.metadata&191|(e?1:0)<<6}function getNodeStickiness(o){return(o.metadata&24)>>>3}function _setNodeStickiness(o,e){o.metadata=o.metadata&231|e<<3}function getCollapseOnReplaceEdit(o){return(o.metadata&32)>>>5===1}function setCollapseOnReplaceEdit(o,e){o.metadata=o.metadata&223|(e?1:0)<<5}class IntervalNode{constructor(e,t,i){this.metadata=0,this.parent=this,this.left=this,this.right=this,setNodeColor(this,1),this.start=t,this.end=i,this.delta=0,this.maxEnd=i,this.id=e,this.ownerId=0,this.options=null,setNodeIsForValidation(this,!1),setNodeIsInGlyphMargin(this,!1),_setNodeStickiness(this,1),setCollapseOnReplaceEdit(this,!1),this.cachedVersionId=0,this.cachedAbsoluteStart=t,this.cachedAbsoluteEnd=i,this.range=null,setNodeIsVisited(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;const t=this.options.className;setNodeIsForValidation(this,t==="squiggly-error"||t==="squiggly-warning"||t==="squiggly-info"),setNodeIsInGlyphMargin(this,this.options.glyphMarginClassName!==null),_setNodeStickiness(this,this.options.stickiness),setCollapseOnReplaceEdit(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 SENTINEL$1=new IntervalNode(null,0,0);SENTINEL$1.parent=SENTINEL$1;SENTINEL$1.left=SENTINEL$1;SENTINEL$1.right=SENTINEL$1;setNodeColor(SENTINEL$1,0);class IntervalTree{constructor(){this.root=SENTINEL$1,this.requestNormalizeDelta=!1}intervalSearch(e,t,i,n,r,s){return this.root===SENTINEL$1?[]:intervalSearch(this,e,t,i,n,r,s)}search(e,t,i,n){return this.root===SENTINEL$1?[]:search(this,e,t,i,n)}collectNodesFromOwner(e){return collectNodesFromOwner(this,e)}collectNodesPostOrder(){return collectNodesPostOrder(this)}insert(e){rbTreeInsert(this,e),this._normalizeDeltaIfNecessary()}delete(e){rbTreeDelete(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 r=i.start+n,s=i.end+n;i.setCachedOffsets(r,s,t)}acceptReplace(e,t,i,n){const r=searchForEditing(this,e,e+t);for(let s=0,a=r.length;s<a;s++){const l=r[s];rbTreeDelete(this,l)}this._normalizeDeltaIfNecessary(),noOverlapReplace(this,e,e+t,i),this._normalizeDeltaIfNecessary();for(let s=0,a=r.length;s<a;s++){const l=r[s];l.start=l.cachedAbsoluteStart,l.end=l.cachedAbsoluteEnd,nodeAcceptEdit(l,e,e+t,i,n),l.maxEnd=l.end,rbTreeInsert(this,l)}this._normalizeDeltaIfNecessary()}_normalizeDeltaIfNecessary(){this.requestNormalizeDelta&&(this.requestNormalizeDelta=!1,normalizeDelta(this))}}function normalizeDelta(o){let e=o.root,t=0;for(;e!==SENTINEL$1;){if(e.left!==SENTINEL$1&&!getNodeIsVisited(e.left)){e=e.left;continue}if(e.right!==SENTINEL$1&&!getNodeIsVisited(e.right)){t+=e.delta,e=e.right;continue}e.start=t+e.start,e.end=t+e.end,e.delta=0,recomputeMaxEnd(e),setNodeIsVisited(e,!0),setNodeIsVisited(e.left,!1),setNodeIsVisited(e.right,!1),e===e.parent.right&&(t-=e.parent.delta),e=e.parent}setNodeIsVisited(o.root,!1)}function adjustMarkerBeforeColumn(o,e,t,i){return o<t?!0:o>t||i===1?!1:i===2?!0:e}function nodeAcceptEdit(o,e,t,i,n){const r=getNodeStickiness(o),s=r===0||r===2,a=r===1||r===2,l=t-e,d=i,c=Math.min(l,d),u=o.start;let g=!1;const f=o.end;let p=!1;e<=u&&f<=t&&getCollapseOnReplaceEdit(o)&&(o.start=e,g=!0,o.end=e,p=!0);{const b=n?1:l>0?2:0;!g&&adjustMarkerBeforeColumn(u,s,e,b)&&(g=!0),!p&&adjustMarkerBeforeColumn(f,a,e,b)&&(p=!0)}if(c>0&&!n){const b=l>d?2:0;!g&&adjustMarkerBeforeColumn(u,s,e+c,b)&&(g=!0),!p&&adjustMarkerBeforeColumn(f,a,e+c,b)&&(p=!0)}{const b=n?1:0;!g&&adjustMarkerBeforeColumn(u,s,t,b)&&(o.start=e+d,g=!0),!p&&adjustMarkerBeforeColumn(f,a,t,b)&&(o.end=e+d,p=!0)}const m=d-l;g||(o.start=Math.max(0,u+m)),p||(o.end=Math.max(0,f+m)),o.start>o.end&&(o.end=o.start)}function searchForEditing(o,e,t){let i=o.root,n=0,r=0,s=0,a=0;const l=[];let d=0;for(;i!==SENTINEL$1;){if(getNodeIsVisited(i)){setNodeIsVisited(i.left,!1),setNodeIsVisited(i.right,!1),i===i.parent.right&&(n-=i.parent.delta),i=i.parent;continue}if(!getNodeIsVisited(i.left)){if(r=n+i.maxEnd,r<e){setNodeIsVisited(i,!0);continue}if(i.left!==SENTINEL$1){i=i.left;continue}}if(s=n+i.start,s>t){setNodeIsVisited(i,!0);continue}if(a=n+i.end,a>=e&&(i.setCachedOffsets(s,a,0),l[d++]=i),setNodeIsVisited(i,!0),i.right!==SENTINEL$1&&!getNodeIsVisited(i.right)){n+=i.delta,i=i.right;continue}}return setNodeIsVisited(o.root,!1),l}function noOverlapReplace(o,e,t,i){let n=o.root,r=0,s=0,a=0;const l=i-(t-e);for(;n!==SENTINEL$1;){if(getNodeIsVisited(n)){setNodeIsVisited(n.left,!1),setNodeIsVisited(n.right,!1),n===n.parent.right&&(r-=n.parent.delta),recomputeMaxEnd(n),n=n.parent;continue}if(!getNodeIsVisited(n.left)){if(s=r+n.maxEnd,s<e){setNodeIsVisited(n,!0);continue}if(n.left!==SENTINEL$1){n=n.left;continue}}if(a=r+n.start,a>t){n.start+=l,n.end+=l,n.delta+=l,(n.delta<-1073741824||n.delta>1073741824)&&(o.requestNormalizeDelta=!0),setNodeIsVisited(n,!0);continue}if(setNodeIsVisited(n,!0),n.right!==SENTINEL$1&&!getNodeIsVisited(n.right)){r+=n.delta,n=n.right;continue}}setNodeIsVisited(o.root,!1)}function collectNodesFromOwner(o,e){let t=o.root;const i=[];let n=0;for(;t!==SENTINEL$1;){if(getNodeIsVisited(t)){setNodeIsVisited(t.left,!1),setNodeIsVisited(t.right,!1),t=t.parent;continue}if(t.left!==SENTINEL$1&&!getNodeIsVisited(t.left)){t=t.left;continue}if(t.ownerId===e&&(i[n++]=t),setNodeIsVisited(t,!0),t.right!==SENTINEL$1&&!getNodeIsVisited(t.right)){t=t.right;continue}}return setNodeIsVisited(o.root,!1),i}function collectNodesPostOrder(o){let e=o.root;const t=[];let i=0;for(;e!==SENTINEL$1;){if(getNodeIsVisited(e)){setNodeIsVisited(e.left,!1),setNodeIsVisited(e.right,!1),e=e.parent;continue}if(e.left!==SENTINEL$1&&!getNodeIsVisited(e.left)){e=e.left;continue}if(e.right!==SENTINEL$1&&!getNodeIsVisited(e.right)){e=e.right;continue}t[i++]=e,setNodeIsVisited(e,!0)}return setNodeIsVisited(o.root,!1),t}function search(o,e,t,i,n){let r=o.root,s=0,a=0,l=0;const d=[];let c=0;for(;r!==SENTINEL$1;){if(getNodeIsVisited(r)){setNodeIsVisited(r.left,!1),setNodeIsVisited(r.right,!1),r===r.parent.right&&(s-=r.parent.delta),r=r.parent;continue}if(r.left!==SENTINEL$1&&!getNodeIsVisited(r.left)){r=r.left;continue}a=s+r.start,l=s+r.end,r.setCachedOffsets(a,l,i);let u=!0;if(e&&r.ownerId&&r.ownerId!==e&&(u=!1),t&&getNodeIsForValidation(r)&&(u=!1),n&&!getNodeIsInGlyphMargin(r)&&(u=!1),u&&(d[c++]=r),setNodeIsVisited(r,!0),r.right!==SENTINEL$1&&!getNodeIsVisited(r.right)){s+=r.delta,r=r.right;continue}}return setNodeIsVisited(o.root,!1),d}function intervalSearch(o,e,t,i,n,r,s){let a=o.root,l=0,d=0,c=0,u=0;const g=[];let f=0;for(;a!==SENTINEL$1;){if(getNodeIsVisited(a)){setNodeIsVisited(a.left,!1),setNodeIsVisited(a.right,!1),a===a.parent.right&&(l-=a.parent.delta),a=a.parent;continue}if(!getNodeIsVisited(a.left)){if(d=l+a.maxEnd,d<e){setNodeIsVisited(a,!0);continue}if(a.left!==SENTINEL$1){a=a.left;continue}}if(c=l+a.start,c>t){setNodeIsVisited(a,!0);continue}if(u=l+a.end,u>=e){a.setCachedOffsets(c,u,r);let p=!0;i&&a.ownerId&&a.ownerId!==i&&(p=!1),n&&getNodeIsForValidation(a)&&(p=!1),s&&!getNodeIsInGlyphMargin(a)&&(p=!1),p&&(g[f++]=a)}if(setNodeIsVisited(a,!0),a.right!==SENTINEL$1&&!getNodeIsVisited(a.right)){l+=a.delta,a=a.right;continue}}return setNodeIsVisited(o.root,!1),g}function rbTreeInsert(o,e){if(o.root===SENTINEL$1)return e.parent=SENTINEL$1,e.left=SENTINEL$1,e.right=SENTINEL$1,setNodeColor(e,0),o.root=e,o.root;treeInsert(o,e),recomputeMaxEndWalkToRoot(e.parent);let t=e;for(;t!==o.root&&getNodeColor(t.parent)===1;)if(t.parent===t.parent.parent.left){const i=t.parent.parent.right;getNodeColor(i)===1?(setNodeColor(t.parent,0),setNodeColor(i,0),setNodeColor(t.parent.parent,1),t=t.parent.parent):(t===t.parent.right&&(t=t.parent,leftRotate$1(o,t)),setNodeColor(t.parent,0),setNodeColor(t.parent.parent,1),rightRotate$1(o,t.parent.parent))}else{const i=t.parent.parent.left;getNodeColor(i)===1?(setNodeColor(t.parent,0),setNodeColor(i,0),setNodeColor(t.parent.parent,1),t=t.parent.parent):(t===t.parent.left&&(t=t.parent,rightRotate$1(o,t)),setNodeColor(t.parent,0),setNodeColor(t.parent.parent,1),leftRotate$1(o,t.parent.parent))}return setNodeColor(o.root,0),e}function treeInsert(o,e){let t=0,i=o.root;const n=e.start,r=e.end;for(;;)if(intervalCompare(n,r,i.start+t,i.end+t)<0)if(i.left===SENTINEL$1){e.start-=t,e.end-=t,e.maxEnd-=t,i.left=e;break}else i=i.left;else if(i.right===SENTINEL$1){e.start-=t+i.delta,e.end-=t+i.delta,e.maxEnd-=t+i.delta,i.right=e;break}else t+=i.delta,i=i.right;e.parent=i,e.left=SENTINEL$1,e.right=SENTINEL$1,setNodeColor(e,1)}function rbTreeDelete(o,e){let t,i;if(e.left===SENTINEL$1?(t=e.right,i=e,t.delta+=e.delta,(t.delta<-1073741824||t.delta>1073741824)&&(o.requestNormalizeDelta=!0),t.start+=e.delta,t.end+=e.delta):e.right===SENTINEL$1?(t=e.left,i=e):(i=leftest$1(e.right),t=i.right,t.start+=i.delta,t.end+=i.delta,t.delta+=i.delta,(t.delta<-1073741824||t.delta>1073741824)&&(o.requestNormalizeDelta=!0),i.start+=e.delta,i.end+=e.delta,i.delta=e.delta,(i.delta<-1073741824||i.delta>1073741824)&&(o.requestNormalizeDelta=!0)),i===o.root){o.root=t,setNodeColor(t,0),e.detach(),resetSentinel$1(),recomputeMaxEnd(t),o.root.parent=SENTINEL$1;return}const n=getNodeColor(i)===1;if(i===i.parent.left?i.parent.left=t:i.parent.right=t,i===e?t.parent=i.parent:(i.parent===e?t.parent=i:t.parent=i.parent,i.left=e.left,i.right=e.right,i.parent=e.parent,setNodeColor(i,getNodeColor(e)),e===o.root?o.root=i:e===e.parent.left?e.parent.left=i:e.parent.right=i,i.left!==SENTINEL$1&&(i.left.parent=i),i.right!==SENTINEL$1&&(i.right.parent=i)),e.detach(),n){recomputeMaxEndWalkToRoot(t.parent),i!==e&&(recomputeMaxEndWalkToRoot(i),recomputeMaxEndWalkToRoot(i.parent)),resetSentinel$1();return}recomputeMaxEndWalkToRoot(t),recomputeMaxEndWalkToRoot(t.parent),i!==e&&(recomputeMaxEndWalkToRoot(i),recomputeMaxEndWalkToRoot(i.parent));let r;for(;t!==o.root&&getNodeColor(t)===0;)t===t.parent.left?(r=t.parent.right,getNodeColor(r)===1&&(setNodeColor(r,0),setNodeColor(t.parent,1),leftRotate$1(o,t.parent),r=t.parent.right),getNodeColor(r.left)===0&&getNodeColor(r.right)===0?(setNodeColor(r,1),t=t.parent):(getNodeColor(r.right)===0&&(setNodeColor(r.left,0),setNodeColor(r,1),rightRotate$1(o,r),r=t.parent.right),setNodeColor(r,getNodeColor(t.parent)),setNodeColor(t.parent,0),setNodeColor(r.right,0),leftRotate$1(o,t.parent),t=o.root)):(r=t.parent.left,getNodeColor(r)===1&&(setNodeColor(r,0),setNodeColor(t.parent,1),rightRotate$1(o,t.parent),r=t.parent.left),getNodeColor(r.left)===0&&getNodeColor(r.right)===0?(setNodeColor(r,1),t=t.parent):(getNodeColor(r.left)===0&&(setNodeColor(r.right,0),setNodeColor(r,1),leftRotate$1(o,r),r=t.parent.left),setNodeColor(r,getNodeColor(t.parent)),setNodeColor(t.parent,0),setNodeColor(r.left,0),rightRotate$1(o,t.parent),t=o.root));setNodeColor(t,0),resetSentinel$1()}function leftest$1(o){for(;o.left!==SENTINEL$1;)o=o.left;return o}function resetSentinel$1(){SENTINEL$1.parent=SENTINEL$1,SENTINEL$1.delta=0,SENTINEL$1.start=0,SENTINEL$1.end=0}function leftRotate$1(o,e){const t=e.right;t.delta+=e.delta,(t.delta<-1073741824||t.delta>1073741824)&&(o.requestNormalizeDelta=!0),t.start+=e.delta,t.end+=e.delta,e.right=t.left,t.left!==SENTINEL$1&&(t.left.parent=e),t.parent=e.parent,e.parent===SENTINEL$1?o.root=t:e===e.parent.left?e.parent.left=t:e.parent.right=t,t.left=e,e.parent=t,recomputeMaxEnd(e),recomputeMaxEnd(t)}function rightRotate$1(o,e){const t=e.left;e.delta-=t.delta,(e.delta<-1073741824||e.delta>1073741824)&&(o.requestNormalizeDelta=!0),e.start-=t.delta,e.end-=t.delta,e.left=t.right,t.right!==SENTINEL$1&&(t.right.parent=e),t.parent=e.parent,e.parent===SENTINEL$1?o.root=t:e===e.parent.right?e.parent.right=t:e.parent.left=t,t.right=e,e.parent=t,recomputeMaxEnd(e),recomputeMaxEnd(t)}function computeMaxEnd(o){let e=o.end;if(o.left!==SENTINEL$1){const t=o.left.maxEnd;t>e&&(e=t)}if(o.right!==SENTINEL$1){const t=o.right.maxEnd+o.delta;t>e&&(e=t)}return e}function recomputeMaxEnd(o){o.maxEnd=computeMaxEnd(o)}function recomputeMaxEndWalkToRoot(o){for(;o!==SENTINEL$1;){const e=computeMaxEnd(o);if(o.maxEnd===e)return;o.maxEnd=e,o=o.parent}}function intervalCompare(o,e,t,i){return o===t?e-i:o-t}class TreeNode{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!==SENTINEL)return leftest(this.right);let e=this;for(;e.parent!==SENTINEL&&e.parent.left!==e;)e=e.parent;return e.parent===SENTINEL?SENTINEL:e.parent}prev(){if(this.left!==SENTINEL)return righttest(this.left);let e=this;for(;e.parent!==SENTINEL&&e.parent.right!==e;)e=e.parent;return e.parent===SENTINEL?SENTINEL:e.parent}detach(){this.parent=null,this.left=null,this.right=null}}const SENTINEL=new TreeNode(null,0);SENTINEL.parent=SENTINEL;SENTINEL.left=SENTINEL;SENTINEL.right=SENTINEL;SENTINEL.color=0;function leftest(o){for(;o.left!==SENTINEL;)o=o.left;return o}function righttest(o){for(;o.right!==SENTINEL;)o=o.right;return o}function calculateSize(o){return o===SENTINEL?0:o.size_left+o.piece.length+calculateSize(o.right)}function calculateLF(o){return o===SENTINEL?0:o.lf_left+o.piece.lineFeedCnt+calculateLF(o.right)}function resetSentinel(){SENTINEL.parent=SENTINEL}function leftRotate(o,e){const t=e.right;t.size_left+=e.size_left+(e.piece?e.piece.length:0),t.lf_left+=e.lf_left+(e.piece?e.piece.lineFeedCnt:0),e.right=t.left,t.left!==SENTINEL&&(t.left.parent=e),t.parent=e.parent,e.parent===SENTINEL?o.root=t:e.parent.left===e?e.parent.left=t:e.parent.right=t,t.left=e,e.parent=t}function rightRotate(o,e){const t=e.left;e.left=t.right,t.right!==SENTINEL&&(t.right.parent=e),t.parent=e.parent,e.size_left-=t.size_left+(t.piece?t.piece.length:0),e.lf_left-=t.lf_left+(t.piece?t.piece.lineFeedCnt:0),e.parent===SENTINEL?o.root=t:e===e.parent.right?e.parent.right=t:e.parent.left=t,t.right=e,e.parent=t}function rbDelete(o,e){let t,i;if(e.left===SENTINEL?(i=e,t=i.right):e.right===SENTINEL?(i=e,t=i.left):(i=leftest(e.right),t=i.right),i===o.root){o.root=t,t.color=0,e.detach(),resetSentinel(),o.root.parent=SENTINEL;return}const n=i.color===1;if(i===i.parent.left?i.parent.left=t:i.parent.right=t,i===e?(t.parent=i.parent,recomputeTreeMetadata(o,t)):(i.parent===e?t.parent=i:t.parent=i.parent,recomputeTreeMetadata(o,t),i.left=e.left,i.right=e.right,i.parent=e.parent,i.color=e.color,e===o.root?o.root=i:e===e.parent.left?e.parent.left=i:e.parent.right=i,i.left!==SENTINEL&&(i.left.parent=i),i.right!==SENTINEL&&(i.right.parent=i),i.size_left=e.size_left,i.lf_left=e.lf_left,recomputeTreeMetadata(o,i)),e.detach(),t.parent.left===t){const s=calculateSize(t),a=calculateLF(t);if(s!==t.parent.size_left||a!==t.parent.lf_left){const l=s-t.parent.size_left,d=a-t.parent.lf_left;t.parent.size_left=s,t.parent.lf_left=a,updateTreeMetadata(o,t.parent,l,d)}}if(recomputeTreeMetadata(o,t.parent),n){resetSentinel();return}let r;for(;t!==o.root&&t.color===0;)t===t.parent.left?(r=t.parent.right,r.color===1&&(r.color=0,t.parent.color=1,leftRotate(o,t.parent),r=t.parent.right),r.left.color===0&&r.right.color===0?(r.color=1,t=t.parent):(r.right.color===0&&(r.left.color=0,r.color=1,rightRotate(o,r),r=t.parent.right),r.color=t.parent.color,t.parent.color=0,r.right.color=0,leftRotate(o,t.parent),t=o.root)):(r=t.parent.left,r.color===1&&(r.color=0,t.parent.color=1,rightRotate(o,t.parent),r=t.parent.left),r.left.color===0&&r.right.color===0?(r.color=1,t=t.parent):(r.left.color===0&&(r.right.color=0,r.color=1,leftRotate(o,r),r=t.parent.left),r.color=t.parent.color,t.parent.color=0,r.left.color=0,rightRotate(o,t.parent),t=o.root));t.color=0,resetSentinel()}function fixInsert(o,e){for(recomputeTreeMetadata(o,e);e!==o.root&&e.parent.color===1;)if(e.parent===e.parent.parent.left){const t=e.parent.parent.right;t.color===1?(e.parent.color=0,t.color=0,e.parent.parent.color=1,e=e.parent.parent):(e===e.parent.right&&(e=e.parent,leftRotate(o,e)),e.parent.color=0,e.parent.parent.color=1,rightRotate(o,e.parent.parent))}else{const t=e.parent.parent.left;t.color===1?(e.parent.color=0,t.color=0,e.parent.parent.color=1,e=e.parent.parent):(e===e.parent.left&&(e=e.parent,rightRotate(o,e)),e.parent.color=0,e.parent.parent.color=1,leftRotate(o,e.parent.parent))}o.root.color=0}function updateTreeMetadata(o,e,t,i){for(;e!==o.root&&e!==SENTINEL;)e.parent.left===e&&(e.parent.size_left+=t,e.parent.lf_left+=i),e=e.parent}function recomputeTreeMetadata(o,e){let t=0,i=0;if(e!==o.root){for(;e!==o.root&&e===e.parent.right;)e=e.parent;if(e!==o.root)for(e=e.parent,t=calculateSize(e.left)-e.size_left,i=calculateLF(e.left)-e.lf_left,e.size_left+=t,e.lf_left+=i;e!==o.root&&(t!==0||i!==0);)e.parent.left===e&&(e.parent.size_left+=t,e.parent.lf_left+=i),e=e.parent}}const AverageBufferSize=65535;function createUintArray(o){let e;return o[o.length-1]<65536?e=new Uint16Array(o.length):e=new Uint32Array(o.length),e.set(o,0),e}class LineStarts{constructor(e,t,i,n,r){this.lineStarts=e,this.cr=t,this.lf=i,this.crlf=n,this.isBasicASCII=r}}function createLineStartsFast(o,e=!0){const t=[0];let i=1;for(let n=0,r=o.length;n<r;n++){const s=o.charCodeAt(n);s===13?n+1<r&&o.charCodeAt(n+1)===10?(t[i++]=n+2,n++):t[i++]=n+1:s===10&&(t[i++]=n+1)}return e?createUintArray(t):t}function createLineStarts(o,e){o.length=0,o[0]=0;let t=1,i=0,n=0,r=0,s=!0;for(let l=0,d=e.length;l<d;l++){const c=e.charCodeAt(l);c===13?l+1<d&&e.charCodeAt(l+1)===10?(r++,o[t++]=l+2,l++):(i++,o[t++]=l+1):c===10?(n++,o[t++]=l+1):s&&c!==9&&(c<32||c>126)&&(s=!1)}const a=new LineStarts(createUintArray(o),i,n,r,s);return o.length=0,a}class Piece{constructor(e,t,i,n,r){this.bufferIndex=e,this.start=t,this.end=i,this.lineFeedCnt=n,this.length=r}}class StringBuffer{constructor(e,t){this.buffer=e,this.lineStarts=t}}class PieceTreeSnapshot{constructor(e,t){this._pieces=[],this._tree=e,this._BOM=t,this._index=0,e.root!==SENTINEL&&e.iterate(e.root,i=>(i!==SENTINEL&&this._pieces.push(i.piece),!0))}read(){return this._pieces.length===0?this._index===0?(this._index++,this._BOM):null:this._index>this._pieces.length-1?null:this._index===0?this._BOM+this._tree.getPieceContent(this._pieces[this._index++]):this._tree.getPieceContent(this._pieces[this._index++])}}class PieceTreeSearchCache{constructor(e){this._limit=e,this._cache=[]}get(e){for(let t=this._cache.length-1;t>=0;t--){const 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--){const 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;const i=this._cache;for(let n=0;n<i.length;n++){const r=i[n];if(r.node.parent===null||r.nodeStartOffset>=e){i[n]=null,t=!0;continue}}if(t){const n=[];for(const r of i)r!==null&&n.push(r);this._cache=n}}}class PieceTreeBase{constructor(e,t,i){this.create(e,t,i)}create(e,t,i){this._buffers=[new StringBuffer("",[0])],this._lastChangeBufferPos={line:0,column:0},this.root=SENTINEL,this._lineCnt=1,this._length=0,this._EOL=t,this._EOLLength=t.length,this._EOLNormalized=i;let n=null;for(let r=0,s=e.length;r<s;r++)if(e[r].buffer.length>0){e[r].lineStarts||(e[r].lineStarts=createLineStartsFast(e[r].buffer));const a=new Piece(r+1,{line:0,column:0},{line:e[r].lineStarts.length-1,column:e[r].buffer.length-e[r].lineStarts[e[r].lineStarts.length-1]},e[r].lineStarts.length-1,e[r].buffer.length);this._buffers.push(e[r]),n=this.rbInsertRight(n,a)}this._searchCache=new PieceTreeSearchCache(1),this._lastVisitedLine={lineNumber:0,value:""},this.computeBufferMetadata()}normalizeEOL(e){const t=AverageBufferSize,i=t-Math.floor(t/3),n=i*2;let r="",s=0;const a=[];if(this.iterate(this.root,l=>{const d=this.getNodeContent(l),c=d.length;if(s<=i||s+c<n)return r+=d,s+=c,!0;const u=r.replace(/\r\n|\r|\n/g,e);return a.push(new StringBuffer(u,createLineStartsFast(u))),r=d,s=c,!0}),s>0){const l=r.replace(/\r\n|\r|\n/g,e);a.push(new StringBuffer(l,createLineStartsFast(l)))}this.create(a,e,!0)}getEOL(){return this._EOL}setEOL(e){this._EOL=e,this._EOLLength=this._EOL.length,this.normalizeEOL(e)}createSnapshot(e){return new PieceTreeSnapshot(this,e)}getOffsetAt(e,t){let i=0,n=this.root;for(;n!==SENTINEL;)if(n.left!==SENTINEL&&n.lf_left+1>=e)n=n.left;else if(n.lf_left+n.piece.lineFeedCnt+1>=e){i+=n.size_left;const r=this.getAccumulatedValue(n,e-n.lf_left-2);return i+=r+t-1}else 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;const n=e;for(;t!==SENTINEL;)if(t.size_left!==0&&t.size_left>=e)t=t.left;else if(t.size_left+t.piece.length>=e){const r=this.getIndexOf(t,e-t.size_left);if(i+=t.lf_left+r.index,r.index===0){const s=this.getOffsetAt(i+1,1),a=n-s;return new Position$1(i+1,a+1)}return new Position$1(i+1,r.remainder+1)}else if(e-=t.size_left+t.piece.length,i+=t.lf_left+t.piece.lineFeedCnt,t.right===SENTINEL){const r=this.getOffsetAt(i+1,1),s=n-e-r;return new Position$1(i+1,s+1)}else t=t.right;return new Position$1(1,1)}getValueInRange(e,t){if(e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn)return"";const i=this.nodeAt2(e.startLineNumber,e.startColumn),n=this.nodeAt2(e.endLineNumber,e.endColumn),r=this.getValueInRange2(i,n);return t?t!==this._EOL||!this._EOLNormalized?r.replace(/\r\n|\r|\n/g,t):t===this.getEOL()&&this._EOLNormalized?r:r.replace(/\r\n|\r|\n/g,t):r}getValueInRange2(e,t){if(e.node===t.node){const a=e.node,l=this._buffers[a.piece.bufferIndex].buffer,d=this.offsetInBuffer(a.piece.bufferIndex,a.piece.start);return l.substring(d+e.remainder,d+t.remainder)}let i=e.node;const n=this._buffers[i.piece.bufferIndex].buffer,r=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);let s=n.substring(r+e.remainder,r+i.piece.length);for(i=i.next();i!==SENTINEL;){const a=this._buffers[i.piece.bufferIndex].buffer,l=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);if(i===t.node){s+=a.substring(l,l+t.remainder);break}else s+=a.substr(l,i.piece.length);i=i.next()}return s}getLinesContent(){const e=[];let t=0,i="",n=!1;return this.iterate(this.root,r=>{if(r===SENTINEL)return!0;const s=r.piece;let a=s.length;if(a===0)return!0;const l=this._buffers[s.bufferIndex].buffer,d=this._buffers[s.bufferIndex].lineStarts,c=s.start.line,u=s.end.line;let g=d[c]+s.start.column;if(n&&(l.charCodeAt(g)===10&&(g++,a--),e[t++]=i,i="",n=!1,a===0))return!0;if(c===u)return!this._EOLNormalized&&l.charCodeAt(g+a-1)===13?(n=!0,i+=l.substr(g,a-1)):i+=l.substr(g,a),!0;i+=this._EOLNormalized?l.substring(g,Math.max(g,d[c+1]-this._EOLLength)):l.substring(g,d[c+1]).replace(/(\r\n|\r|\n)$/,""),e[t++]=i;for(let f=c+1;f<u;f++)i=this._EOLNormalized?l.substring(d[f],d[f+1]-this._EOLLength):l.substring(d[f],d[f+1]).replace(/(\r\n|\r|\n)$/,""),e[t++]=i;return!this._EOLNormalized&&l.charCodeAt(d[u]+s.end.column-1)===13?(n=!0,s.end.column===0?t--:i=l.substr(d[u],s.end.column-1)):i=l.substr(d[u],s.end.column),!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.value:(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){const t=e.node.next();if(!t)return 0;const i=this._buffers[t.piece.bufferIndex],n=this.offsetInBuffer(t.piece.bufferIndex,t.piece.start);return i.buffer.charCodeAt(n)}else{const t=this._buffers[e.node.piece.bufferIndex],n=this.offsetInBuffer(e.node.piece.bufferIndex,e.node.piece.start)+e.remainder;return t.buffer.charCodeAt(n)}}getLineCharCode(e,t){const i=this.nodeAt2(e,t+1);return this._getCharCode(i)}getLineLength(e){if(e===this.getLineCount()){const 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,r,s,a,l,d,c,u){const g=this._buffers[e.piece.bufferIndex],f=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start),p=this.offsetInBuffer(e.piece.bufferIndex,r),m=this.offsetInBuffer(e.piece.bufferIndex,s);let b;const _={line:0,column:0};let C,S;t._wordSeparators?(C=g.buffer.substring(p,m),S=y=>y+p,t.reset(0)):(C=g.buffer,S=y=>y,t.reset(p));do if(b=t.next(C),b){if(S(b.index)>=m)return c;this.positionInBuffer(e,S(b.index)-f,_);const y=this.getLineFeedCnt(e.piece.bufferIndex,r,_),E=_.line===r.line?_.column-r.column+n:_.column+1,x=E+b[0].length;if(u[c++]=createFindMatch(new Range$2(i+y,E,i+y,x),b,l),S(b.index)+b[0].length>=m||c>=d)return c}while(b);return c}findMatchesLineByLine(e,t,i,n){const r=[];let s=0;const a=new Searcher(t.wordSeparators,t.regex);let l=this.nodeAt2(e.startLineNumber,e.startColumn);if(l===null)return[];const d=this.nodeAt2(e.endLineNumber,e.endColumn);if(d===null)return[];let c=this.positionInBuffer(l.node,l.remainder);const u=this.positionInBuffer(d.node,d.remainder);if(l.node===d.node)return this.findMatchesInNode(l.node,a,e.startLineNumber,e.startColumn,c,u,t,i,n,s,r),r;let g=e.startLineNumber,f=l.node;for(;f!==d.node;){const m=this.getLineFeedCnt(f.piece.bufferIndex,c,f.piece.end);if(m>=1){const _=this._buffers[f.piece.bufferIndex].lineStarts,C=this.offsetInBuffer(f.piece.bufferIndex,f.piece.start),S=_[c.line+m],y=g===e.startLineNumber?e.startColumn:1;if(s=this.findMatchesInNode(f,a,g,y,c,this.positionInBuffer(f,S-C),t,i,n,s,r),s>=n)return r;g+=m}const b=g===e.startLineNumber?e.startColumn-1:0;if(g===e.endLineNumber){const _=this.getLineContent(g).substring(b,e.endColumn-1);return s=this._findMatchesInLine(t,a,_,e.endLineNumber,b,s,r,i,n),r}if(s=this._findMatchesInLine(t,a,this.getLineContent(g).substr(b),g,b,s,r,i,n),s>=n)return r;g++,l=this.nodeAt2(g,1),f=l.node,c=this.positionInBuffer(l.node,l.remainder)}if(g===e.endLineNumber){const m=g===e.startLineNumber?e.startColumn-1:0,b=this.getLineContent(g).substring(m,e.endColumn-1);return s=this._findMatchesInLine(t,a,b,e.endLineNumber,m,s,r,i,n),r}const p=g===e.startLineNumber?e.startColumn:1;return s=this.findMatchesInNode(d.node,a,g,p,c,u,t,i,n,s,r),r}_findMatchesInLine(e,t,i,n,r,s,a,l,d){const c=e.wordSeparators;if(!l&&e.simpleSearch){const g=e.simpleSearch,f=g.length,p=i.length;let m=-f;for(;(m=i.indexOf(g,m+f))!==-1;)if((!c||isValidMatch(c,i,p,m,f))&&(a[s++]=new FindMatch(new Range$2(n,m+1+r,n,m+1+f+r),null),s>=d))return s;return s}let u;t.reset(0);do if(u=t.next(i),u&&(a[s++]=createFindMatch(new Range$2(n,u.index+1+r,n,u.index+1+u[0].length+r),u,l),s>=d))return s;while(u);return s}insert(e,t,i=!1){if(this._EOLNormalized=this._EOLNormalized&&i,this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value="",this.root!==SENTINEL){const{node:n,remainder:r,nodeStartOffset:s}=this.nodeAt(e),a=n.piece,l=a.bufferIndex,d=this.positionInBuffer(n,r);if(n.piece.bufferIndex===0&&a.end.line===this._lastChangeBufferPos.line&&a.end.column===this._lastChangeBufferPos.column&&s+a.length===e&&t.length<AverageBufferSize){this.appendToNode(n,t),this.computeBufferMetadata();return}if(s===e)this.insertContentToNodeLeft(t,n),this._searchCache.validate(e);else if(s+n.piece.length>e){const c=[];let u=new Piece(a.bufferIndex,d,a.end,this.getLineFeedCnt(a.bufferIndex,d,a.end),this.offsetInBuffer(l,a.end)-this.offsetInBuffer(l,d));if(this.shouldCheckCRLF()&&this.endWithCR(t)&&this.nodeCharCodeAt(n,r)===10){const m={line:u.start.line+1,column:0};u=new Piece(u.bufferIndex,m,u.end,this.getLineFeedCnt(u.bufferIndex,m,u.end),u.length-1),t+=`
- `}if(this.shouldCheckCRLF()&&this.startWithLF(t))if(this.nodeCharCodeAt(n,r-1)===13){const m=this.positionInBuffer(n,r-1);this.deleteNodeTail(n,m),t="\r"+t,n.piece.length===0&&c.push(n)}else this.deleteNodeTail(n,d);else this.deleteNodeTail(n,d);const g=this.createNewPieces(t);u.length>0&&this.rbInsertRight(n,u);let f=n;for(let p=0;p<g.length;p++)f=this.rbInsertRight(f,g[p]);this.deleteNodes(c)}else this.insertContentToNodeRight(t,n)}else{const n=this.createNewPieces(t);let r=this.rbInsertLeft(null,n[0]);for(let s=1;s<n.length;s++)r=this.rbInsertRight(r,n[s])}this.computeBufferMetadata()}delete(e,t){if(this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value="",t<=0||this.root===SENTINEL)return;const i=this.nodeAt(e),n=this.nodeAt(e+t),r=i.node,s=n.node;if(r===s){const g=this.positionInBuffer(r,i.remainder),f=this.positionInBuffer(r,n.remainder);if(i.nodeStartOffset===e){if(t===r.piece.length){const p=r.next();rbDelete(this,r),this.validateCRLFWithPrevNode(p),this.computeBufferMetadata();return}this.deleteNodeHead(r,f),this._searchCache.validate(e),this.validateCRLFWithPrevNode(r),this.computeBufferMetadata();return}if(i.nodeStartOffset+r.piece.length===e+t){this.deleteNodeTail(r,g),this.validateCRLFWithNextNode(r),this.computeBufferMetadata();return}this.shrinkNode(r,g,f),this.computeBufferMetadata();return}const a=[],l=this.positionInBuffer(r,i.remainder);this.deleteNodeTail(r,l),this._searchCache.validate(e),r.piece.length===0&&a.push(r);const d=this.positionInBuffer(s,n.remainder);this.deleteNodeHead(s,d),s.piece.length===0&&a.push(s);const c=r.next();for(let g=c;g!==SENTINEL&&g!==s;g=g.next())a.push(g);const u=r.piece.length===0?r.prev():r;this.deleteNodes(a),this.validateCRLFWithNextNode(u),this.computeBufferMetadata()}insertContentToNodeLeft(e,t){const i=[];if(this.shouldCheckCRLF()&&this.endWithCR(e)&&this.startWithLF(t)){const s=t.piece,a={line:s.start.line+1,column:0},l=new Piece(s.bufferIndex,a,s.end,this.getLineFeedCnt(s.bufferIndex,a,s.end),s.length-1);t.piece=l,e+=`
- `,updateTreeMetadata(this,t,-1,-1),t.piece.length===0&&i.push(t)}const n=this.createNewPieces(e);let r=this.rbInsertLeft(t,n[n.length-1]);for(let s=n.length-2;s>=0;s--)r=this.rbInsertLeft(r,n[s]);this.validateCRLFWithPrevNode(r),this.deleteNodes(i)}insertContentToNodeRight(e,t){this.adjustCarriageReturnFromNext(e,t)&&(e+=`
- `);const i=this.createNewPieces(e),n=this.rbInsertRight(t,i[0]);let r=n;for(let s=1;s<i.length;s++)r=this.rbInsertRight(r,i[s]);this.validateCRLFWithPrevNode(n)}positionInBuffer(e,t,i){const n=e.piece,r=e.piece.bufferIndex,s=this._buffers[r].lineStarts,l=s[n.start.line]+n.start.column+t;let d=n.start.line,c=n.end.line,u=0,g=0,f=0;for(;d<=c&&(u=d+(c-d)/2|0,f=s[u],u!==c);)if(g=s[u+1],l<f)c=u-1;else if(l>=g)d=u+1;else break;return i?(i.line=u,i.column=l-f,null):{line:u,column:l-f}}getLineFeedCnt(e,t,i){if(i.column===0)return i.line-t.line;const n=this._buffers[e].lineStarts;if(i.line===n.length-1)return i.line-t.line;const r=n[i.line+1],s=n[i.line]+i.column;if(r>s+1)return i.line-t.line;const a=s-1;return this._buffers[e].buffer.charCodeAt(a)===13?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++)rbDelete(this,e[t])}createNewPieces(e){if(e.length>AverageBufferSize){const c=[];for(;e.length>AverageBufferSize;){const g=e.charCodeAt(AverageBufferSize-1);let f;g===13||g>=55296&&g<=56319?(f=e.substring(0,AverageBufferSize-1),e=e.substring(AverageBufferSize-1)):(f=e.substring(0,AverageBufferSize),e=e.substring(AverageBufferSize));const p=createLineStartsFast(f);c.push(new Piece(this._buffers.length,{line:0,column:0},{line:p.length-1,column:f.length-p[p.length-1]},p.length-1,f.length)),this._buffers.push(new StringBuffer(f,p))}const u=createLineStartsFast(e);return c.push(new Piece(this._buffers.length,{line:0,column:0},{line:u.length-1,column:e.length-u[u.length-1]},u.length-1,e.length)),this._buffers.push(new StringBuffer(e,u)),c}let t=this._buffers[0].buffer.length;const i=createLineStartsFast(e,!1);let n=this._lastChangeBufferPos;if(this._buffers[0].lineStarts[this._buffers[0].lineStarts.length-1]===t&&t!==0&&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 c=0;c<i.length;c++)i[c]+=t+1;this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(i.slice(1)),this._buffers[0].buffer+="_"+e,t+=1}else{if(t!==0)for(let c=0;c<i.length;c++)i[c]+=t;this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(i.slice(1)),this._buffers[0].buffer+=e}const r=this._buffers[0].buffer.length,s=this._buffers[0].lineStarts.length-1,a=r-this._buffers[0].lineStarts[s],l={line:s,column:a},d=new Piece(0,n,l,this.getLineFeedCnt(0,n,l),r-t);return this._lastChangeBufferPos=l,[d]}getLineRawContent(e,t=0){let i=this.root,n="";const r=this._searchCache.get2(e);if(r){i=r.node;const s=this.getAccumulatedValue(i,e-r.nodeStartLineNumber-1),a=this._buffers[i.piece.bufferIndex].buffer,l=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);if(r.nodeStartLineNumber+i.piece.lineFeedCnt===e)n=a.substring(l+s,l+i.piece.length);else{const d=this.getAccumulatedValue(i,e-r.nodeStartLineNumber);return a.substring(l+s,l+d-t)}}else{let s=0;const a=e;for(;i!==SENTINEL;)if(i.left!==SENTINEL&&i.lf_left>=e-1)i=i.left;else if(i.lf_left+i.piece.lineFeedCnt>e-1){const l=this.getAccumulatedValue(i,e-i.lf_left-2),d=this.getAccumulatedValue(i,e-i.lf_left-1),c=this._buffers[i.piece.bufferIndex].buffer,u=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);return s+=i.size_left,this._searchCache.set({node:i,nodeStartOffset:s,nodeStartLineNumber:a-(e-1-i.lf_left)}),c.substring(u+l,u+d-t)}else if(i.lf_left+i.piece.lineFeedCnt===e-1){const l=this.getAccumulatedValue(i,e-i.lf_left-2),d=this._buffers[i.piece.bufferIndex].buffer,c=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);n=d.substring(c+l,c+i.piece.length);break}else e-=i.lf_left+i.piece.lineFeedCnt,s+=i.size_left+i.piece.length,i=i.right}for(i=i.next();i!==SENTINEL;){const s=this._buffers[i.piece.bufferIndex].buffer;if(i.piece.lineFeedCnt>0){const a=this.getAccumulatedValue(i,0),l=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);return n+=s.substring(l,l+a-t),n}else{const a=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);n+=s.substr(a,i.piece.length)}i=i.next()}return n}computeBufferMetadata(){let e=this.root,t=1,i=0;for(;e!==SENTINEL;)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){const i=e.piece,n=this.positionInBuffer(e,t),r=n.line-i.start.line;if(this.offsetInBuffer(i.bufferIndex,i.end)-this.offsetInBuffer(i.bufferIndex,i.start)===t){const s=this.getLineFeedCnt(e.piece.bufferIndex,i.start,n);if(s!==r)return{index:s,remainder:0}}return{index:r,remainder:n.column}}getAccumulatedValue(e,t){if(t<0)return 0;const i=e.piece,n=this._buffers[i.bufferIndex].lineStarts,r=i.start.line+t+1;return r>i.end.line?n[i.end.line]+i.end.column-n[i.start.line]-i.start.column:n[r]-n[i.start.line]-i.start.column}deleteNodeTail(e,t){const i=e.piece,n=i.lineFeedCnt,r=this.offsetInBuffer(i.bufferIndex,i.end),s=t,a=this.offsetInBuffer(i.bufferIndex,s),l=this.getLineFeedCnt(i.bufferIndex,i.start,s),d=l-n,c=a-r,u=i.length+c;e.piece=new Piece(i.bufferIndex,i.start,s,l,u),updateTreeMetadata(this,e,c,d)}deleteNodeHead(e,t){const i=e.piece,n=i.lineFeedCnt,r=this.offsetInBuffer(i.bufferIndex,i.start),s=t,a=this.getLineFeedCnt(i.bufferIndex,s,i.end),l=this.offsetInBuffer(i.bufferIndex,s),d=a-n,c=r-l,u=i.length+c;e.piece=new Piece(i.bufferIndex,s,i.end,a,u),updateTreeMetadata(this,e,c,d)}shrinkNode(e,t,i){const n=e.piece,r=n.start,s=n.end,a=n.length,l=n.lineFeedCnt,d=t,c=this.getLineFeedCnt(n.bufferIndex,n.start,d),u=this.offsetInBuffer(n.bufferIndex,t)-this.offsetInBuffer(n.bufferIndex,r);e.piece=new Piece(n.bufferIndex,n.start,d,c,u),updateTreeMetadata(this,e,u-a,c-l);const g=new Piece(n.bufferIndex,i,s,this.getLineFeedCnt(n.bufferIndex,i,s),this.offsetInBuffer(n.bufferIndex,s)-this.offsetInBuffer(n.bufferIndex,i)),f=this.rbInsertRight(e,g);this.validateCRLFWithPrevNode(f)}appendToNode(e,t){this.adjustCarriageReturnFromNext(t,e)&&(t+=`
- `);const i=this.shouldCheckCRLF()&&this.startWithLF(t)&&this.endWithCR(e),n=this._buffers[0].buffer.length;this._buffers[0].buffer+=t;const r=createLineStartsFast(t,!1);for(let f=0;f<r.length;f++)r[f]+=n;if(i){const f=this._buffers[0].lineStarts[this._buffers[0].lineStarts.length-2];this._buffers[0].lineStarts.pop(),this._lastChangeBufferPos={line:this._lastChangeBufferPos.line-1,column:n-f}}this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(r.slice(1));const s=this._buffers[0].lineStarts.length-1,a=this._buffers[0].buffer.length-this._buffers[0].lineStarts[s],l={line:s,column:a},d=e.piece.length+t.length,c=e.piece.lineFeedCnt,u=this.getLineFeedCnt(0,e.piece.start,l),g=u-c;e.piece=new Piece(e.piece.bufferIndex,e.piece.start,l,u,d),this._lastChangeBufferPos=l,updateTreeMetadata(this,e,t.length,g)}nodeAt(e){let t=this.root;const i=this._searchCache.get(e);if(i)return{node:i.node,nodeStartOffset:i.nodeStartOffset,remainder:e-i.nodeStartOffset};let n=0;for(;t!==SENTINEL;)if(t.size_left>e)t=t.left;else if(t.size_left+t.piece.length>=e){n+=t.size_left;const r={node:t,remainder:e-t.size_left,nodeStartOffset:n};return this._searchCache.set(r),r}else 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!==SENTINEL;)if(i.left!==SENTINEL&&i.lf_left>=e-1)i=i.left;else if(i.lf_left+i.piece.lineFeedCnt>e-1){const r=this.getAccumulatedValue(i,e-i.lf_left-2),s=this.getAccumulatedValue(i,e-i.lf_left-1);return n+=i.size_left,{node:i,remainder:Math.min(r+t-1,s),nodeStartOffset:n}}else if(i.lf_left+i.piece.lineFeedCnt===e-1){const r=this.getAccumulatedValue(i,e-i.lf_left-2);if(r+t-1<=i.piece.length)return{node:i,remainder:r+t-1,nodeStartOffset:n};t-=i.piece.length-r;break}else e-=i.lf_left+i.piece.lineFeedCnt,n+=i.size_left+i.piece.length,i=i.right;for(i=i.next();i!==SENTINEL;){if(i.piece.lineFeedCnt>0){const r=this.getAccumulatedValue(i,0),s=this.offsetOfNode(i);return{node:i,remainder:Math.min(t-1,r),nodeStartOffset:s}}else if(i.piece.length>=t-1){const r=this.offsetOfNode(i);return{node:i,remainder:t-1,nodeStartOffset:r}}else t-=i.piece.length;i=i.next()}return null}nodeCharCodeAt(e,t){if(e.piece.lineFeedCnt<1)return-1;const 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&&this._EOL===`
- `)}startWithLF(e){if(typeof e=="string")return e.charCodeAt(0)===10;if(e===SENTINEL||e.piece.lineFeedCnt===0)return!1;const t=e.piece,i=this._buffers[t.bufferIndex].lineStarts,n=t.start.line,r=i[n]+t.start.column;return n===i.length-1||i[n+1]>r+1?!1:this._buffers[t.bufferIndex].buffer.charCodeAt(r)===10}endWithCR(e){return typeof e=="string"?e.charCodeAt(e.length-1)===13:e===SENTINEL||e.piece.lineFeedCnt===0?!1:this.nodeCharCodeAt(e,e.piece.length-1)===13}validateCRLFWithPrevNode(e){if(this.shouldCheckCRLF()&&this.startWithLF(e)){const t=e.prev();this.endWithCR(t)&&this.fixCRLF(t,e)}}validateCRLFWithNextNode(e){if(this.shouldCheckCRLF()&&this.endWithCR(e)){const t=e.next();this.startWithLF(t)&&this.fixCRLF(e,t)}}fixCRLF(e,t){const i=[],n=this._buffers[e.piece.bufferIndex].lineStarts;let r;e.piece.end.column===0?r={line:e.piece.end.line-1,column:n[e.piece.end.line]-n[e.piece.end.line-1]-1}:r={line:e.piece.end.line,column:e.piece.end.column-1};const s=e.piece.length-1,a=e.piece.lineFeedCnt-1;e.piece=new Piece(e.piece.bufferIndex,e.piece.start,r,a,s),updateTreeMetadata(this,e,-1,-1),e.piece.length===0&&i.push(e);const l={line:t.piece.start.line+1,column:0},d=t.piece.length-1,c=this.getLineFeedCnt(t.piece.bufferIndex,l,t.piece.end);t.piece=new Piece(t.piece.bufferIndex,l,t.piece.end,c,d),updateTreeMetadata(this,t,-1,-1),t.piece.length===0&&i.push(t);const u=this.createNewPieces(`\r
- `);this.rbInsertRight(e,u[0]);for(let g=0;g<i.length;g++)rbDelete(this,i[g])}adjustCarriageReturnFromNext(e,t){if(this.shouldCheckCRLF()&&this.endWithCR(e)){const i=t.next();if(this.startWithLF(i)){if(e+=`
- `,i.piece.length===1)rbDelete(this,i);else{const n=i.piece,r={line:n.start.line+1,column:0},s=n.length-1,a=this.getLineFeedCnt(n.bufferIndex,r,n.end);i.piece=new Piece(n.bufferIndex,r,n.end,a,s),updateTreeMetadata(this,i,-1,-1)}return!0}}return!1}iterate(e,t){if(e===SENTINEL)return t(SENTINEL);const i=this.iterate(e.left,t);return i&&t(e)&&this.iterate(e.right,t)}getNodeContent(e){if(e===SENTINEL)return"";const t=this._buffers[e.piece.bufferIndex],i=e.piece,n=this.offsetInBuffer(i.bufferIndex,i.start),r=this.offsetInBuffer(i.bufferIndex,i.end);return t.buffer.substring(n,r)}getPieceContent(e){const 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){const i=new TreeNode(t,1);if(i.left=SENTINEL,i.right=SENTINEL,i.parent=SENTINEL,i.size_left=0,i.lf_left=0,this.root===SENTINEL)this.root=i,i.color=0;else if(e.right===SENTINEL)e.right=i,i.parent=e;else{const r=leftest(e.right);r.left=i,i.parent=r}return fixInsert(this,i),i}rbInsertLeft(e,t){const i=new TreeNode(t,1);if(i.left=SENTINEL,i.right=SENTINEL,i.parent=SENTINEL,i.size_left=0,i.lf_left=0,this.root===SENTINEL)this.root=i,i.color=0;else if(e.left===SENTINEL)e.left=i,i.parent=e;else{const n=righttest(e.left);n.right=i,i.parent=n}return fixInsert(this,i),i}}class PieceTreeTextBuffer extends Disposable{constructor(e,t,i,n,r,s,a){super(),this._onDidChangeContent=this._register(new Emitter$1),this._BOM=t,this._mightContainNonBasicASCII=!s,this._mightContainRTL=n,this._mightContainUnusualLineTerminators=r,this._pieceTree=new PieceTreeBase(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){const i=e+t,n=this.getPositionAt(e),r=this.getPositionAt(i);return new Range$2(n.lineNumber,n.column,r.lineNumber,r.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;const i=this.getOffsetAt(e.startLineNumber,e.startColumn),n=this.getOffsetAt(e.endLineNumber,e.endColumn);let r=0;const s=this._getEndOfLine(t),a=this.getEOL();if(s.length!==a.length){const l=s.length-a.length,d=e.endLineNumber-e.startLineNumber;r=l*d}return n-i+r}getCharacterCountInRange(e,t=0){if(this._mightContainNonBasicASCII){let i=0;const n=e.startLineNumber,r=e.endLineNumber;for(let s=n;s<=r;s++){const a=this.getLineContent(s),l=s===n?e.startColumn-1:0,d=s===r?e.endColumn-1:a.length;for(let c=l;c<d;c++)isHighSurrogate(a.charCodeAt(c))?(i=i+1,c=c+1):i=i+1}return i+=this._getEndOfLine(t).length*(r-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=firstNonWhitespaceIndex(this.getLineContent(e));return t===-1?0:t+1}getLineLastNonWhitespaceColumn(e){const t=lastNonWhitespaceIndex(this.getLineContent(e));return t===-1?0:t+2}_getEndOfLine(e){switch(e){case 1:return`
- `;case 2:return`\r
- `;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,r=this._mightContainUnusualLineTerminators,s=this._mightContainNonBasicASCII,a=!0,l=[];for(let m=0;m<e.length;m++){const b=e[m];a&&b._isTracked&&(a=!1);const _=b.range;if(b.text){let x=!0;s||(x=!isBasicASCII(b.text),s=x),!n&&x&&(n=containsRTL(b.text)),!r&&x&&(r=containsUnusualLineTerminators(b.text))}let C="",S=0,y=0,E=0;if(b.text){let x;[S,y,E,x]=countEOL(b.text);const L=this.getEOL();x===0||x===(L===`\r
- `?2:1)?C=b.text:C=b.text.replace(/\r\n|\r|\n/g,L)}l[m]={sortIndex:m,identifier:b.identifier||null,range:_,rangeOffset:this.getOffsetAt(_.startLineNumber,_.startColumn),rangeLength:this.getValueLengthInRange(_),text:C,eolCount:S,firstLineLength:y,lastLineLength:E,forceMoveMarkers:!!b.forceMoveMarkers,isAutoWhitespaceEdit:b.isAutoWhitespaceEdit||!1}}l.sort(PieceTreeTextBuffer._sortOpsAscending);let d=!1;for(let m=0,b=l.length-1;m<b;m++){const _=l[m].range.getEndPosition(),C=l[m+1].range.getStartPosition();if(C.isBeforeOrEqual(_)){if(C.isBefore(_))throw new Error("Overlapping ranges are not allowed!");d=!0}}a&&(l=this._reduceOperations(l));const c=i||t?PieceTreeTextBuffer._getInverseEditRanges(l):[],u=[];if(t)for(let m=0;m<l.length;m++){const b=l[m],_=c[m];if(b.isAutoWhitespaceEdit&&b.range.isEmpty())for(let C=_.startLineNumber;C<=_.endLineNumber;C++){let S="";C===_.startLineNumber&&(S=this.getLineContent(b.range.startLineNumber),firstNonWhitespaceIndex(S)!==-1)||u.push({lineNumber:C,oldContent:S})}}let g=null;if(i){let m=0;g=[];for(let b=0;b<l.length;b++){const _=l[b],C=c[b],S=this.getValueInRange(_.range),y=_.rangeOffset+m;m+=_.text.length-S.length,g[b]={sortIndex:_.sortIndex,identifier:_.identifier,range:C,text:S,textChange:new TextChange(_.rangeOffset,S,y,_.text)}}d||g.sort((b,_)=>b.sortIndex-_.sortIndex)}this._mightContainRTL=n,this._mightContainUnusualLineTerminators=r,this._mightContainNonBasicASCII=s;const f=this._doApplyEdits(l);let p=null;if(t&&u.length>0){u.sort((m,b)=>b.lineNumber-m.lineNumber),p=[];for(let m=0,b=u.length;m<b;m++){const _=u[m].lineNumber;if(m>0&&u[m-1].lineNumber===_)continue;const C=u[m].oldContent,S=this.getLineContent(_);S.length===0||S===C||firstNonWhitespaceIndex(S)!==-1||p.push(_)}}return this._onDidChangeContent.fire(),new ApplyEditsResult(g,f,p)}_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,r=new Range$2(i.startLineNumber,i.startColumn,n.endLineNumber,n.endColumn);let s=i.startLineNumber,a=i.startColumn;const l=[];for(let f=0,p=e.length;f<p;f++){const m=e[f],b=m.range;t=t||m.forceMoveMarkers,l.push(this.getValueInRange(new Range$2(s,a,b.startLineNumber,b.startColumn))),m.text.length>0&&l.push(m.text),s=b.endLineNumber,a=b.endColumn}const d=l.join(""),[c,u,g]=countEOL(d);return{sortIndex:0,identifier:e[0].identifier,range:r,rangeOffset:this.getOffsetAt(r.startLineNumber,r.startColumn),rangeLength:this.getValueLengthInRange(r,0),text:d,eolCount:c,firstLineLength:u,lastLineLength:g,forceMoveMarkers:t,isAutoWhitespaceEdit:!1}}_doApplyEdits(e){e.sort(PieceTreeTextBuffer._sortOpsDescending);const t=[];for(let i=0;i<e.length;i++){const n=e[i],r=n.range.startLineNumber,s=n.range.startColumn,a=n.range.endLineNumber,l=n.range.endColumn;if(r===a&&s===l&&n.text.length===0)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 d=new Range$2(r,s,a,l);t.push({range:d,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){const t=[];let i=0,n=0,r=null;for(let s=0,a=e.length;s<a;s++){const l=e[s];let d,c;r?r.range.endLineNumber===l.range.startLineNumber?(d=i,c=n+(l.range.startColumn-r.range.endColumn)):(d=i+(l.range.startLineNumber-r.range.endLineNumber),c=l.range.startColumn):(d=l.range.startLineNumber,c=l.range.startColumn);let u;if(l.text.length>0){const g=l.eolCount+1;g===1?u=new Range$2(d,c,d,c+l.firstLineLength):u=new Range$2(d,c,d+g-1,l.lastLineLength+1)}else u=new Range$2(d,c,d,c);i=u.endLineNumber,n=u.endColumn,t.push(u),r=l}return t}static _sortOpsAscending(e,t){const i=Range$2.compareRangesUsingEnds(e.range,t.range);return i===0?e.sortIndex-t.sortIndex:i}static _sortOpsDescending(e,t){const i=Range$2.compareRangesUsingEnds(e.range,t.range);return i===0?t.sortIndex-e.sortIndex:-i}}class PieceTreeTextBufferFactory{constructor(e,t,i,n,r,s,a,l,d){this._chunks=e,this._bom=t,this._cr=i,this._lf=n,this._crlf=r,this._containsRTL=s,this._containsUnusualLineTerminators=a,this._isBasicASCII=l,this._normalizeEOL=d}_getEOL(e){const t=this._cr+this._lf+this._crlf,i=this._cr+this._crlf;return t===0?e===1?`
- `:`\r
- `:i>t/2?`\r
- `:`
- `}create(e){const t=this._getEOL(e),i=this._chunks;if(this._normalizeEOL&&(t===`\r
- `&&(this._cr>0||this._lf>0)||t===`
- `&&(this._cr>0||this._crlf>0)))for(let r=0,s=i.length;r<s;r++){const a=i[r].buffer.replace(/\r\n|\r|\n/g,t),l=createLineStartsFast(a);i[r]=new StringBuffer(a,l)}const n=new PieceTreeTextBuffer(i,this._bom,t,this._containsRTL,this._containsUnusualLineTerminators,this._isBasicASCII,this._normalizeEOL);return{textBuffer:n,disposable:n}}}class PieceTreeTextBufferBuilder{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(e.length===0)return;this.chunks.length===0&&startsWithUTF8BOM(e)&&(this.BOM=UTF8_BOM_CHARACTER,e=e.substr(1));const t=e.charCodeAt(e.length-1);t===13||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&&e.length===0||(this._hasPreviousChar?this._acceptChunk2(String.fromCharCode(this._previousChar)+e):this._acceptChunk2(e))}_acceptChunk2(e){const t=createLineStarts(this._tmpLineStarts,e);this.chunks.push(new StringBuffer(e,t.lineStarts)),this.cr+=t.cr,this.lf+=t.lf,this.crlf+=t.crlf,t.isBasicASCII||(this.isBasicASCII=!1,this.containsRTL||(this.containsRTL=containsRTL(e)),this.containsUnusualLineTerminators||(this.containsUnusualLineTerminators=containsUnusualLineTerminators(e)))}finish(e=!0){return this._finish(),new PieceTreeTextBufferFactory(this.chunks,this.BOM,this.cr,this.lf,this.crlf,this.containsRTL,this.containsUnusualLineTerminators,this.isBasicASCII,e)}_finish(){if(this.chunks.length===0&&this._acceptChunk1("",!0),this._hasPreviousChar){this._hasPreviousChar=!1;const e=this.chunks[this.chunks.length-1];e.buffer+=String.fromCharCode(this._previousChar);const t=createLineStartsFast(e.buffer);e.lineStarts=t,this._previousChar===13&&this.cr++}}}class FixedArray{constructor(e){this._default=e,this._store=[]}get(e){return e<this._store.length?this._store[e]:this._default}set(e,t){for(;e>=this._store.length;)this._store[this._store.length]=this._default;this._store[e]=t}replace(e,t,i){if(e>=this._store.length)return;if(t===0){this.insert(e,i);return}else if(i===0){this.delete(e,t);return}const n=this._store.slice(0,e),r=this._store.slice(e+t),s=arrayFill(i,this._default);this._store=n.concat(s,r)}delete(e,t){t===0||e>=this._store.length||this._store.splice(e,t)}insert(e,t){if(t===0||e>=this._store.length)return;const i=[];for(let n=0;n<t;n++)i[n]=this._default;this._store=arrayInsert(this._store,e,i)}}function arrayFill(o,e){const t=[];for(let i=0;i<o;i++)t[i]=e;return t}class ContiguousMultilineTokens{get startLineNumber(){return this._startLineNumber}get endLineNumber(){return this._startLineNumber+this._tokens.length-1}constructor(e,t){this._startLineNumber=e,this._tokens=t}getLineTokens(e){return this._tokens[e-this._startLineNumber]}appendLineTokens(e){this._tokens.push(e)}}class ContiguousMultilineTokensBuilder{constructor(){this._tokens=[]}add(e,t){if(this._tokens.length>0){const i=this._tokens[this._tokens.length-1];if(i.endLineNumber+1===e){i.appendLineTokens(t);return}}this._tokens.push(new ContiguousMultilineTokens(e,[t]))}finalize(){return this._tokens}}class TokenizerWithStateStore{constructor(e,t){this.tokenizationSupport=t,this.initialState=this.tokenizationSupport.getInitialState(),this.store=new TrackingTokenizationStateStore(e)}getStartState(e){return this.store.getStartState(e,this.initialState)}getFirstInvalidLine(){return this.store.getFirstInvalidLine(this.initialState)}}class TokenizerWithStateStoreAndTextModel extends TokenizerWithStateStore{constructor(e,t,i,n){super(e,t),this._textModel=i,this._languageIdCodec=n}updateTokensUntilLine(e,t){const i=this._textModel.getLanguageId();for(;;){const n=this.getFirstInvalidLine();if(!n||n.lineNumber>t)break;const r=this._textModel.getLineContent(n.lineNumber),s=safeTokenize(this._languageIdCodec,i,this.tokenizationSupport,r,!0,n.startState);e.add(n.lineNumber,s.tokens),this.store.setEndState(n.lineNumber,s.endState)}}getTokenTypeIfInsertingCharacter(e,t){const i=this.getStartState(e.lineNumber);if(!i)return 0;const n=this._textModel.getLanguageId(),r=this._textModel.getLineContent(e.lineNumber),s=r.substring(0,e.column-1)+t+r.substring(e.column-1),a=safeTokenize(this._languageIdCodec,n,this.tokenizationSupport,s,!0,i),l=new LineTokens(a.tokens,s,this._languageIdCodec);if(l.getCount()===0)return 0;const d=l.findTokenIndexAtOffset(e.column-1);return l.getStandardTokenType(d)}tokenizeLineWithEdit(e,t,i){const n=e.lineNumber,r=e.column,s=this.getStartState(n);if(!s)return null;const a=this._textModel.getLineContent(n),l=a.substring(0,r-1)+i+a.substring(r-1+t),d=this._textModel.getLanguageIdAtPosition(n,0),c=safeTokenize(this._languageIdCodec,d,this.tokenizationSupport,l,!0,s);return new LineTokens(c.tokens,l,this._languageIdCodec)}isCheapToTokenize(e){const t=this.store.getFirstInvalidEndStateLineNumberOrMax();return e<t||e===t&&this._textModel.getLineLength(e)<2048}tokenizeHeuristically(e,t,i){if(i<=this.store.getFirstInvalidEndStateLineNumberOrMax())return{heuristicTokens:!1};if(t<=this.store.getFirstInvalidEndStateLineNumberOrMax())return this.updateTokensUntilLine(e,i),{heuristicTokens:!1};let n=this.guessStartState(t);const r=this._textModel.getLanguageId();for(let s=t;s<=i;s++){const a=this._textModel.getLineContent(s),l=safeTokenize(this._languageIdCodec,r,this.tokenizationSupport,a,!0,n);e.add(s,l.tokens),n=l.endState}return{heuristicTokens:!0}}guessStartState(e){let t=this._textModel.getLineFirstNonWhitespaceColumn(e);const i=[];let n=null;for(let a=e-1;t>1&&a>=1;a--){const l=this._textModel.getLineFirstNonWhitespaceColumn(a);if(l!==0&&l<t&&(i.push(this._textModel.getLineContent(a)),t=l,n=this.getStartState(a),n))break}n||(n=this.tokenizationSupport.getInitialState()),i.reverse();const r=this._textModel.getLanguageId();let s=n;for(const a of i)s=safeTokenize(this._languageIdCodec,r,this.tokenizationSupport,a,!1,s).endState;return s}}class TrackingTokenizationStateStore{constructor(e){this.lineCount=e,this._tokenizationStateStore=new TokenizationStateStore,this._invalidEndStatesLineNumbers=new RangePriorityQueueImpl,this._invalidEndStatesLineNumbers.addRange(new OffsetRange(1,e+1))}getEndState(e){return this._tokenizationStateStore.getEndState(e)}setEndState(e,t){if(!t)throw new BugIndicatingError("Cannot set null/undefined state");this._invalidEndStatesLineNumbers.delete(e);const i=this._tokenizationStateStore.setEndState(e,t);return i&&e<this.lineCount&&this._invalidEndStatesLineNumbers.addRange(new OffsetRange(e+1,e+2)),i}acceptChange(e,t){this.lineCount+=t-e.length,this._tokenizationStateStore.acceptChange(e,t),this._invalidEndStatesLineNumbers.addRangeAndResize(new OffsetRange(e.startLineNumber,e.endLineNumberExclusive),t)}acceptChanges(e){for(const t of e){const[i]=countEOL(t.text);this.acceptChange(new LineRange$1(t.range.startLineNumber,t.range.endLineNumber+1),i+1)}}invalidateEndStateRange(e){this._invalidEndStatesLineNumbers.addRange(new OffsetRange(e.startLineNumber,e.endLineNumberExclusive))}getFirstInvalidEndStateLineNumber(){return this._invalidEndStatesLineNumbers.min}getFirstInvalidEndStateLineNumberOrMax(){return this.getFirstInvalidEndStateLineNumber()||Number.MAX_SAFE_INTEGER}allStatesValid(){return this._invalidEndStatesLineNumbers.min===null}getStartState(e,t){return e===1?t:this.getEndState(e-1)}getFirstInvalidLine(e){const t=this.getFirstInvalidEndStateLineNumber();if(t===null)return null;const i=this.getStartState(t,e);if(!i)throw new BugIndicatingError("Start state must be defined");return{lineNumber:t,startState:i}}}class TokenizationStateStore{constructor(){this._lineEndStates=new FixedArray(null)}getEndState(e){return this._lineEndStates.get(e)}setEndState(e,t){const i=this._lineEndStates.get(e);return i&&i.equals(t)?!1:(this._lineEndStates.set(e,t),!0)}acceptChange(e,t){let i=e.length;t>0&&i>0&&(i--,t--),this._lineEndStates.replace(e.startLineNumber,i,t)}}class RangePriorityQueueImpl{constructor(){this._ranges=[]}get min(){return this._ranges.length===0?null:this._ranges[0].start}delete(e){const t=this._ranges.findIndex(i=>i.contains(e));if(t!==-1){const i=this._ranges[t];i.start===e?i.endExclusive===e+1?this._ranges.splice(t,1):this._ranges[t]=new OffsetRange(e+1,i.endExclusive):i.endExclusive===e+1?this._ranges[t]=new OffsetRange(i.start,e):this._ranges.splice(t,1,new OffsetRange(i.start,e),new OffsetRange(e+1,i.endExclusive))}}addRange(e){OffsetRange.addRange(e,this._ranges)}addRangeAndResize(e,t){let i=0;for(;!(i>=this._ranges.length||e.start<=this._ranges[i].endExclusive);)i++;let n=i;for(;!(n>=this._ranges.length||e.endExclusive<this._ranges[n].start);)n++;const r=t-e.length;for(let s=n;s<this._ranges.length;s++)this._ranges[s]=this._ranges[s].delta(r);if(i===n){const s=new OffsetRange(e.start,e.start+t);s.isEmpty||this._ranges.splice(i,0,s)}else{const s=Math.min(e.start,this._ranges[i].start),a=Math.max(e.endExclusive,this._ranges[n-1].endExclusive),l=new OffsetRange(s,a+r);l.isEmpty?this._ranges.splice(i,n-i):this._ranges.splice(i,n-i,l)}}toString(){return this._ranges.map(e=>e.toString()).join(" + ")}}function safeTokenize(o,e,t,i,n,r){let s=null;if(t)try{s=t.tokenizeEncoded(i,n,r.clone())}catch(a){onUnexpectedError(a)}return s||(s=nullTokenizeEncoded(o.encodeLanguageId(e),r)),LineTokens.convertToEndOffset(s.tokens,i.length),s}class DefaultBackgroundTokenizer{constructor(e,t){this._tokenizerWithStateStore=e,this._backgroundTokenStore=t,this._isDisposed=!1,this._isScheduled=!1}dispose(){this._isDisposed=!0}handleChanges(){this._beginBackgroundTokenization()}_beginBackgroundTokenization(){this._isScheduled||!this._tokenizerWithStateStore._textModel.isAttachedToEditor()||!this._hasLinesToTokenize()||(this._isScheduled=!0,runWhenIdle(e=>{this._isScheduled=!1,this._backgroundTokenizeWithDeadline(e)}))}_backgroundTokenizeWithDeadline(e){const t=Date.now()+e.timeRemaining(),i=()=>{this._isDisposed||!this._tokenizerWithStateStore._textModel.isAttachedToEditor()||!this._hasLinesToTokenize()||(this._backgroundTokenizeForAtLeast1ms(),Date.now()<t?setTimeout0(i):this._beginBackgroundTokenization())};i()}_backgroundTokenizeForAtLeast1ms(){const e=this._tokenizerWithStateStore._textModel.getLineCount(),t=new ContiguousMultilineTokensBuilder,i=StopWatch.create(!1);do if(i.elapsed()>1||this._tokenizeOneInvalidLine(t)>=e)break;while(this._hasLinesToTokenize());this._backgroundTokenStore.setTokens(t.finalize()),this.checkFinished()}_hasLinesToTokenize(){return this._tokenizerWithStateStore?!this._tokenizerWithStateStore.store.allStatesValid():!1}_tokenizeOneInvalidLine(e){var t;const i=(t=this._tokenizerWithStateStore)===null||t===void 0?void 0:t.getFirstInvalidLine();return i?(this._tokenizerWithStateStore.updateTokensUntilLine(e,i.lineNumber),i.lineNumber):this._tokenizerWithStateStore._textModel.getLineCount()+1}checkFinished(){this._isDisposed||this._tokenizerWithStateStore.store.allStatesValid()&&this._backgroundTokenStore.backgroundTokenizationFinished()}requestTokens(e,t){this._tokenizerWithStateStore.store.invalidateEndStateRange(new LineRange$1(e,t))}}const EMPTY_LINE_TOKENS=new Uint32Array(0).buffer;class ContiguousTokensEditing{static deleteBeginning(e,t){return e===null||e===EMPTY_LINE_TOKENS?e:ContiguousTokensEditing.delete(e,0,t)}static deleteEnding(e,t){if(e===null||e===EMPTY_LINE_TOKENS)return e;const i=toUint32Array(e),n=i[i.length-2];return ContiguousTokensEditing.delete(e,t,n)}static delete(e,t,i){if(e===null||e===EMPTY_LINE_TOKENS||t===i)return e;const n=toUint32Array(e),r=n.length>>>1;if(t===0&&n[n.length-2]===i)return EMPTY_LINE_TOKENS;const s=LineTokens.findIndexInTokensArray(n,t),a=s>0?n[s-1<<1]:0,l=n[s<<1];if(i<l){const f=i-t;for(let p=s;p<r;p++)n[p<<1]-=f;return e}let d,c;a!==t?(n[s<<1]=t,d=s+1<<1,c=t):(d=s<<1,c=a);const u=i-t;for(let f=s+1;f<r;f++){const p=n[f<<1]-u;p>c&&(n[d++]=p,n[d++]=n[(f<<1)+1],c=p)}if(d===n.length)return e;const g=new Uint32Array(d);return g.set(n.subarray(0,d),0),g.buffer}static append(e,t){if(t===EMPTY_LINE_TOKENS)return e;if(e===EMPTY_LINE_TOKENS)return t;if(e===null)return e;if(t===null)return null;const i=toUint32Array(e),n=toUint32Array(t),r=n.length>>>1,s=new Uint32Array(i.length+n.length);s.set(i,0);let a=i.length;const l=i[i.length-2];for(let d=0;d<r;d++)s[a++]=n[d<<1]+l,s[a++]=n[(d<<1)+1];return s.buffer}static insert(e,t,i){if(e===null||e===EMPTY_LINE_TOKENS)return e;const n=toUint32Array(e),r=n.length>>>1;let s=LineTokens.findIndexInTokensArray(n,t);s>0&&n[s-1<<1]===t&&s--;for(let a=s;a<r;a++)n[a<<1]+=i;return e}}function toUint32Array(o){return o instanceof Uint32Array?o:new Uint32Array(o)}class ContiguousTokensStore{constructor(e){this._lineTokens=[],this._len=0,this._languageIdCodec=e}flush(){this._lineTokens=[],this._len=0}get hasTokens(){return this._lineTokens.length>0}getTokens(e,t,i){let n=null;if(t<this._len&&(n=this._lineTokens[t]),n!==null&&n!==EMPTY_LINE_TOKENS)return new LineTokens(toUint32Array(n),i,this._languageIdCodec);const r=new Uint32Array(2);return r[0]=i.length,r[1]=getDefaultMetadata(this._languageIdCodec.encodeLanguageId(e)),new LineTokens(r,i,this._languageIdCodec)}static _massageTokens(e,t,i){const n=i?toUint32Array(i):null;if(t===0){let r=!1;if(n&&n.length>1&&(r=TokenMetadata.getLanguageId(n[1])!==e),!r)return EMPTY_LINE_TOKENS}if(!n||n.length===0){const r=new Uint32Array(2);return r[0]=t,r[1]=getDefaultMetadata(e),r.buffer}return n[n.length-2]=t,n.byteOffset===0&&n.byteLength===n.buffer.byteLength?n.buffer:n}_ensureLine(e){for(;e>=this._len;)this._lineTokens[this._len]=null,this._len++}_deleteLines(e,t){t!==0&&(e+t>this._len&&(t=this._len-e),this._lineTokens.splice(e,t),this._len-=t)}_insertLines(e,t){if(t===0)return;const i=[];for(let n=0;n<t;n++)i[n]=null;this._lineTokens=arrayInsert(this._lineTokens,e,i),this._len+=t}setTokens(e,t,i,n,r){const s=ContiguousTokensStore._massageTokens(this._languageIdCodec.encodeLanguageId(e),i,n);this._ensureLine(t);const a=this._lineTokens[t];return this._lineTokens[t]=s,r?!ContiguousTokensStore._equals(a,s):!1}static _equals(e,t){if(!e||!t)return!e&&!t;const i=toUint32Array(e),n=toUint32Array(t);if(i.length!==n.length)return!1;for(let r=0,s=i.length;r<s;r++)if(i[r]!==n[r])return!1;return!0}acceptEdit(e,t,i){this._acceptDeleteRange(e),this._acceptInsertText(new Position$1(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;this._lineTokens[t]=ContiguousTokensEditing.delete(this._lineTokens[t],e.startColumn-1,e.endColumn-1);return}this._lineTokens[t]=ContiguousTokensEditing.deleteEnding(this._lineTokens[t],e.startColumn-1);const i=e.endLineNumber-1;let n=null;i<this._len&&(n=ContiguousTokensEditing.deleteBeginning(this._lineTokens[i],e.endColumn-1)),this._lineTokens[t]=ContiguousTokensEditing.append(this._lineTokens[t],n),this._deleteLines(e.startLineNumber,e.endLineNumber-e.startLineNumber)}_acceptInsertText(e,t,i){if(t===0&&i===0)return;const n=e.lineNumber-1;if(!(n>=this._len)){if(t===0){this._lineTokens[n]=ContiguousTokensEditing.insert(this._lineTokens[n],e.column-1,i);return}this._lineTokens[n]=ContiguousTokensEditing.deleteEnding(this._lineTokens[n],e.column-1),this._lineTokens[n]=ContiguousTokensEditing.insert(this._lineTokens[n],e.column-1,i),this._insertLines(e.lineNumber,t)}}setMultilineTokens(e,t){if(e.length===0)return{changes:[]};const i=[];for(let n=0,r=e.length;n<r;n++){const s=e[n];let a=0,l=0,d=!1;for(let c=s.startLineNumber;c<=s.endLineNumber;c++)d?(this.setTokens(t.getLanguageId(),c-1,t.getLineLength(c),s.getLineTokens(c),!1),l=c):this.setTokens(t.getLanguageId(),c-1,t.getLineLength(c),s.getLineTokens(c),!0)&&(d=!0,a=c,l=c);d&&i.push({fromLineNumber:a,toLineNumber:l})}return{changes:i}}}function getDefaultMetadata(o){return(o<<0|0|0|32768|2<<24|1024)>>>0}class SparseTokensStore{constructor(e){this._pieces=[],this._isComplete=!1,this._languageIdCodec=e}flush(){this._pieces=[],this._isComplete=!1}isEmpty(){return this._pieces.length===0}set(e,t){this._pieces=e||[],this._isComplete=t}setPartial(e,t){let i=e;if(t.length>0){const r=t[0].getRange(),s=t[t.length-1].getRange();if(!r||!s)return e;i=e.plusRange(r).plusRange(s)}let n=null;for(let r=0,s=this._pieces.length;r<s;r++){const a=this._pieces[r];if(a.endLineNumber<i.startLineNumber)continue;if(a.startLineNumber>i.endLineNumber){n=n||{index:r};break}if(a.removeTokens(i),a.isEmpty()){this._pieces.splice(r,1),r--,s--;continue}if(a.endLineNumber<i.startLineNumber)continue;if(a.startLineNumber>i.endLineNumber){n=n||{index:r};continue}const[l,d]=a.split(i);if(l.isEmpty()){n=n||{index:r};continue}d.isEmpty()||(this._pieces.splice(r,1,l,d),r++,s++,n=n||{index:r})}return n=n||{index:this._pieces.length},t.length>0&&(this._pieces=arrayInsert(this._pieces,n.index,t)),i}isComplete(){return this._isComplete}addSparseTokens(e,t){if(t.getLineContent().length===0)return t;const i=this._pieces;if(i.length===0)return t;const n=SparseTokensStore._findFirstPieceWithLine(i,e),r=i[n].getLineTokens(e);if(!r)return t;const s=t.getCount(),a=r.getCount();let l=0;const d=[];let c=0,u=0;const g=(f,p)=>{f!==u&&(u=f,d[c++]=f,d[c++]=p)};for(let f=0;f<a;f++){const p=r.getStartCharacter(f),m=r.getEndCharacter(f),b=r.getMetadata(f),_=((b&1?2048:0)|(b&2?4096:0)|(b&4?8192:0)|(b&8?16384:0)|(b&16?16744448:0)|(b&32?4278190080:0))>>>0,C=~_>>>0;for(;l<s&&t.getEndOffset(l)<=p;)g(t.getEndOffset(l),t.getMetadata(l)),l++;for(l<s&&t.getStartOffset(l)<p&&g(p,t.getMetadata(l));l<s&&t.getEndOffset(l)<m;)g(t.getEndOffset(l),t.getMetadata(l)&C|b&_),l++;if(l<s)g(m,t.getMetadata(l)&C|b&_),t.getEndOffset(l)===m&&l++;else{const S=Math.min(Math.max(0,l-1),s-1);g(m,t.getMetadata(S)&C|b&_)}}for(;l<s;)g(t.getEndOffset(l),t.getMetadata(l)),l++;return new LineTokens(new Uint32Array(d),t.getLineContent(),this._languageIdCodec)}static _findFirstPieceWithLine(e,t){let i=0,n=e.length-1;for(;i<n;){let r=i+Math.floor((n-i)/2);if(e[r].endLineNumber<t)i=r+1;else if(e[r].startLineNumber>t)n=r-1;else{for(;r>i&&e[r-1].startLineNumber<=t&&t<=e[r-1].endLineNumber;)r--;return r}}return i}acceptEdit(e,t,i,n,r){for(const s of this._pieces)s.acceptEdit(e,t,i,n,r)}}class TokenizationTextModelPart extends TextModelPart{constructor(e,t,i,n,r,s){super(),this._languageService=e,this._languageConfigurationService=t,this._textModel=i,this._bracketPairsTextModelPart=n,this._languageId=r,this._attachedViews=s,this._semanticTokens=new SparseTokensStore(this._languageService.languageIdCodec),this._onDidChangeLanguage=this._register(new Emitter$1),this.onDidChangeLanguage=this._onDidChangeLanguage.event,this._onDidChangeLanguageConfiguration=this._register(new Emitter$1),this.onDidChangeLanguageConfiguration=this._onDidChangeLanguageConfiguration.event,this._onDidChangeTokens=this._register(new Emitter$1),this.onDidChangeTokens=this._onDidChangeTokens.event,this.grammarTokens=this._register(new GrammarTokens(this._languageService.languageIdCodec,this._textModel,()=>this._languageId,this._attachedViews)),this._register(this._languageConfigurationService.onDidChange(a=>{a.affects(this._languageId)&&this._onDidChangeLanguageConfiguration.fire({})})),this._register(this.grammarTokens.onDidChangeTokens(a=>{this._emitModelTokensChangedEvent(a)})),this._register(this.grammarTokens.onDidChangeBackgroundTokenizationState(a=>{this._bracketPairsTextModelPart.handleDidChangeBackgroundTokenizationState()}))}handleDidChangeContent(e){if(e.isFlush)this._semanticTokens.flush();else if(!e.isEolChange)for(const t of e.changes){const[i,n,r]=countEOL(t.text);this._semanticTokens.acceptEdit(t.range,i,n,r,t.text.length>0?t.text.charCodeAt(0):0)}this.grammarTokens.handleDidChangeContent(e)}handleDidChangeAttached(){this.grammarTokens.handleDidChangeAttached()}getLineTokens(e){this.validateLineNumber(e);const t=this.grammarTokens.getLineTokens(e);return this._semanticTokens.addSparseTokens(e,t)}_emitModelTokensChangedEvent(e){this._textModel._isDisposing()||(this._bracketPairsTextModelPart.handleDidChangeTokens(e),this._onDidChangeTokens.fire(e))}validateLineNumber(e){if(e<1||e>this._textModel.getLineCount())throw new BugIndicatingError("Illegal value for lineNumber")}get hasTokens(){return this.grammarTokens.hasTokens}resetTokenization(){this.grammarTokens.resetTokenization()}get backgroundTokenizationState(){return this.grammarTokens.backgroundTokenizationState}forceTokenization(e){this.validateLineNumber(e),this.grammarTokens.forceTokenization(e)}isCheapToTokenize(e){return this.validateLineNumber(e),this.grammarTokens.isCheapToTokenize(e)}tokenizeIfCheap(e){this.validateLineNumber(e),this.grammarTokens.tokenizeIfCheap(e)}getTokenTypeIfInsertingCharacter(e,t,i){return this.grammarTokens.getTokenTypeIfInsertingCharacter(e,t,i)}tokenizeLineWithEdit(e,t,i){return this.grammarTokens.tokenizeLineWithEdit(e,t,i)}setSemanticTokens(e,t){this._semanticTokens.set(e,t),this._emitModelTokensChangedEvent({semanticTokensApplied:e!==null,ranges:[{fromLineNumber:1,toLineNumber:this._textModel.getLineCount()}]})}hasCompleteSemanticTokens(){return this._semanticTokens.isComplete()}hasSomeSemanticTokens(){return!this._semanticTokens.isEmpty()}setPartialSemanticTokens(e,t){if(this.hasCompleteSemanticTokens())return;const i=this._textModel.validateRange(this._semanticTokens.setPartial(e,t));this._emitModelTokensChangedEvent({semanticTokensApplied:!0,ranges:[{fromLineNumber:i.startLineNumber,toLineNumber:i.endLineNumber}]})}getWordAtPosition(e){this.assertNotDisposed();const t=this._textModel.validatePosition(e),i=this._textModel.getLineContent(t.lineNumber),n=this.getLineTokens(t.lineNumber),r=n.findTokenIndexAtOffset(t.column-1),[s,a]=TokenizationTextModelPart._findLanguageBoundaries(n,r),l=getWordAtText(t.column,this.getLanguageConfiguration(n.getLanguageId(r)).getWordDefinition(),i.substring(s,a),s);if(l&&l.startColumn<=e.column&&e.column<=l.endColumn)return l;if(r>0&&s===t.column-1){const[d,c]=TokenizationTextModelPart._findLanguageBoundaries(n,r-1),u=getWordAtText(t.column,this.getLanguageConfiguration(n.getLanguageId(r-1)).getWordDefinition(),i.substring(d,c),d);if(u&&u.startColumn<=e.column&&e.column<=u.endColumn)return u}return null}getLanguageConfiguration(e){return this._languageConfigurationService.getLanguageConfiguration(e)}static _findLanguageBoundaries(e,t){const i=e.getLanguageId(t);let n=0;for(let s=t;s>=0&&e.getLanguageId(s)===i;s--)n=e.getStartOffset(s);let r=e.getLineContent().length;for(let s=t,a=e.getCount();s<a&&e.getLanguageId(s)===i;s++)r=e.getEndOffset(s);return[n,r]}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}}getLanguageId(){return this._languageId}getLanguageIdAtPosition(e,t){const i=this._textModel.validatePosition(new Position$1(e,t)),n=this.getLineTokens(i.lineNumber);return n.getLanguageId(n.findTokenIndexAtOffset(i.column-1))}setLanguageId(e,t="api"){if(this._languageId===e)return;const i={oldLanguage:this._languageId,newLanguage:e,source:t};this._languageId=e,this._bracketPairsTextModelPart.handleDidChangeLanguage(i),this.grammarTokens.resetTokenization(),this._onDidChangeLanguage.fire(i),this._onDidChangeLanguageConfiguration.fire({})}}class GrammarTokens extends Disposable{get backgroundTokenizationState(){return this._backgroundTokenizationState}constructor(e,t,i,n){super(),this._languageIdCodec=e,this._textModel=t,this.getLanguageId=i,this._tokenizer=null,this._defaultBackgroundTokenizer=null,this._backgroundTokenizer=this._register(new MutableDisposable),this._tokens=new ContiguousTokensStore(this._languageIdCodec),this._debugBackgroundTokenizer=this._register(new MutableDisposable),this._backgroundTokenizationState=1,this._onDidChangeBackgroundTokenizationState=this._register(new Emitter$1),this.onDidChangeBackgroundTokenizationState=this._onDidChangeBackgroundTokenizationState.event,this._onDidChangeTokens=this._register(new Emitter$1),this.onDidChangeTokens=this._onDidChangeTokens.event,this._attachedViewStates=this._register(new DisposableMap),this._register(TokenizationRegistry.onDidChange(r=>{const s=this.getLanguageId();r.changedLanguages.indexOf(s)!==-1&&this.resetTokenization()})),this.resetTokenization(),this._register(n.onDidChangeVisibleRanges(({view:r,state:s})=>{if(s){let a=this._attachedViewStates.get(r);a||(a=new AttachedViewHandler(()=>this.refreshRanges(a.lineRanges)),this._attachedViewStates.set(r,a)),a.handleStateChange(s)}else this._attachedViewStates.deleteAndDispose(r)}))}resetTokenization(e=!0){var t;this._tokens.flush(),(t=this._debugBackgroundTokens)===null||t===void 0||t.flush(),this._debugBackgroundStates&&(this._debugBackgroundStates=new TrackingTokenizationStateStore(this._textModel.getLineCount())),e&&this._onDidChangeTokens.fire({semanticTokensApplied:!1,ranges:[{fromLineNumber:1,toLineNumber:this._textModel.getLineCount()}]});const i=()=>{if(this._textModel.isTooLargeForTokenization())return[null,null];const s=TokenizationRegistry.get(this.getLanguageId());if(!s)return[null,null];let a;try{a=s.getInitialState()}catch(l){return onUnexpectedError(l),[null,null]}return[s,a]},[n,r]=i();if(n&&r?this._tokenizer=new TokenizerWithStateStoreAndTextModel(this._textModel.getLineCount(),n,this._textModel,this._languageIdCodec):this._tokenizer=null,this._backgroundTokenizer.clear(),this._defaultBackgroundTokenizer=null,this._tokenizer){const s={setTokens:a=>{this.setTokens(a)},backgroundTokenizationFinished:()=>{if(this._backgroundTokenizationState===2)return;const a=2;this._backgroundTokenizationState=a,this._onDidChangeBackgroundTokenizationState.fire()},setEndState:(a,l)=>{var d;if(!this._tokenizer)return;const c=this._tokenizer.store.getFirstInvalidEndStateLineNumber();c!==null&&a>=c&&((d=this._tokenizer)===null||d===void 0||d.store.setEndState(a,l))}};n&&n.createBackgroundTokenizer&&!n.backgroundTokenizerShouldOnlyVerifyTokens&&(this._backgroundTokenizer.value=n.createBackgroundTokenizer(this._textModel,s)),this._backgroundTokenizer.value||(this._backgroundTokenizer.value=this._defaultBackgroundTokenizer=new DefaultBackgroundTokenizer(this._tokenizer,s),this._defaultBackgroundTokenizer.handleChanges()),n!=null&&n.backgroundTokenizerShouldOnlyVerifyTokens&&n.createBackgroundTokenizer?(this._debugBackgroundTokens=new ContiguousTokensStore(this._languageIdCodec),this._debugBackgroundStates=new TrackingTokenizationStateStore(this._textModel.getLineCount()),this._debugBackgroundTokenizer.clear(),this._debugBackgroundTokenizer.value=n.createBackgroundTokenizer(this._textModel,{setTokens:a=>{var l;(l=this._debugBackgroundTokens)===null||l===void 0||l.setMultilineTokens(a,this._textModel)},backgroundTokenizationFinished(){},setEndState:(a,l)=>{var d;(d=this._debugBackgroundStates)===null||d===void 0||d.setEndState(a,l)}})):(this._debugBackgroundTokens=void 0,this._debugBackgroundStates=void 0,this._debugBackgroundTokenizer.value=void 0)}this.refreshAllVisibleLineTokens()}handleDidChangeAttached(){var e;(e=this._defaultBackgroundTokenizer)===null||e===void 0||e.handleChanges()}handleDidChangeContent(e){var t,i,n;if(e.isFlush)this.resetTokenization(!1);else if(!e.isEolChange){for(const r of e.changes){const[s,a]=countEOL(r.text);this._tokens.acceptEdit(r.range,s,a),(t=this._debugBackgroundTokens)===null||t===void 0||t.acceptEdit(r.range,s,a)}(i=this._debugBackgroundStates)===null||i===void 0||i.acceptChanges(e.changes),this._tokenizer&&this._tokenizer.store.acceptChanges(e.changes),(n=this._defaultBackgroundTokenizer)===null||n===void 0||n.handleChanges()}}setTokens(e){const{changes:t}=this._tokens.setMultilineTokens(e,this._textModel);return t.length>0&&this._onDidChangeTokens.fire({semanticTokensApplied:!1,ranges:t}),{changes:t}}refreshAllVisibleLineTokens(){const e=LineRange$1.joinMany([...this._attachedViewStates].map(([t,i])=>i.lineRanges));this.refreshRanges(e)}refreshRanges(e){for(const t of e)this.refreshRange(t.startLineNumber,t.endLineNumberExclusive-1)}refreshRange(e,t){var i,n;if(!this._tokenizer)return;e=Math.max(1,Math.min(this._textModel.getLineCount(),e)),t=Math.min(this._textModel.getLineCount(),t);const r=new ContiguousMultilineTokensBuilder,{heuristicTokens:s}=this._tokenizer.tokenizeHeuristically(r,e,t),a=this.setTokens(r.finalize());if(s)for(const l of a.changes)(i=this._backgroundTokenizer.value)===null||i===void 0||i.requestTokens(l.fromLineNumber,l.toLineNumber+1);(n=this._defaultBackgroundTokenizer)===null||n===void 0||n.checkFinished()}forceTokenization(e){var t,i;const n=new ContiguousMultilineTokensBuilder;(t=this._tokenizer)===null||t===void 0||t.updateTokensUntilLine(n,e),this.setTokens(n.finalize()),(i=this._defaultBackgroundTokenizer)===null||i===void 0||i.checkFinished()}isCheapToTokenize(e){return this._tokenizer?this._tokenizer.isCheapToTokenize(e):!0}tokenizeIfCheap(e){this.isCheapToTokenize(e)&&this.forceTokenization(e)}getLineTokens(e){var t;const i=this._textModel.getLineContent(e),n=this._tokens.getTokens(this._textModel.getLanguageId(),e-1,i);if(this._debugBackgroundTokens&&this._debugBackgroundStates&&this._tokenizer&&this._debugBackgroundStates.getFirstInvalidEndStateLineNumberOrMax()>e&&this._tokenizer.store.getFirstInvalidEndStateLineNumberOrMax()>e){const r=this._debugBackgroundTokens.getTokens(this._textModel.getLanguageId(),e-1,i);!n.equals(r)&&(!((t=this._debugBackgroundTokenizer.value)===null||t===void 0)&&t.reportMismatchingTokens)&&this._debugBackgroundTokenizer.value.reportMismatchingTokens(e)}return n}getTokenTypeIfInsertingCharacter(e,t,i){if(!this._tokenizer)return 0;const n=this._textModel.validatePosition(new Position$1(e,t));return this.forceTokenization(n.lineNumber),this._tokenizer.getTokenTypeIfInsertingCharacter(n,i)}tokenizeLineWithEdit(e,t,i){if(!this._tokenizer)return null;const n=this._textModel.validatePosition(e);return this.forceTokenization(n.lineNumber),this._tokenizer.tokenizeLineWithEdit(n,t,i)}get hasTokens(){return this._tokens.hasTokens}}class AttachedViewHandler extends Disposable{get lineRanges(){return this._lineRanges}constructor(e){super(),this._refreshTokens=e,this.runner=this._register(new RunOnceScheduler(()=>this.update(),50)),this._computedLineRanges=[],this._lineRanges=[]}update(){equals$2(this._computedLineRanges,this._lineRanges,(e,t)=>e.equals(t))||(this._computedLineRanges=this._lineRanges,this._refreshTokens())}handleStateChange(e){this._lineRanges=e.visibleLineRanges,e.stabilized?(this.runner.cancel(),this.update()):this.runner.schedule()}}class ModelRawFlush{constructor(){this.changeType=1}}class LineInjectedText{static applyInjectedText(e,t){if(!t||t.length===0)return e;let i="",n=0;for(const r of t)i+=e.substring(n,r.column-1),n=r.column-1,i+=r.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 LineInjectedText(i.ownerId,i.range.startLineNumber,i.range.startColumn,i.options.before,0)),i.options.after&&i.options.after.content.length>0&&t.push(new LineInjectedText(i.ownerId,i.range.endLineNumber,i.range.endColumn,i.options.after,1));return t.sort((i,n)=>i.lineNumber===n.lineNumber?i.column===n.column?i.order-n.order:i.column-n.column:i.lineNumber-n.lineNumber),t}constructor(e,t,i,n,r){this.ownerId=e,this.lineNumber=t,this.column=i,this.options=n,this.order=r}}class ModelRawLineChanged{constructor(e,t,i){this.changeType=2,this.lineNumber=e,this.detail=t,this.injectedText=i}}class ModelRawLinesDeleted{constructor(e,t){this.changeType=3,this.fromLineNumber=e,this.toLineNumber=t}}class ModelRawLinesInserted{constructor(e,t,i,n){this.changeType=4,this.injectedTexts=n,this.fromLineNumber=e,this.toLineNumber=t,this.detail=i}}class ModelRawEOLChanged{constructor(){this.changeType=5}}class ModelRawContentChangedEvent{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,r=e.isUndoing||t.isUndoing,s=e.isRedoing||t.isRedoing;return new ModelRawContentChangedEvent(i,n,r,s)}}class ModelInjectedTextChangedEvent{constructor(e){this.changes=e}}class InternalModelContentChangeEvent{constructor(e,t){this.rawContentChangedEvent=e,this.contentChangedEvent=t}merge(e){const t=ModelRawContentChangedEvent.merge(this.rawContentChangedEvent,e.rawContentChangedEvent),i=InternalModelContentChangeEvent._mergeChangeEvents(this.contentChangedEvent,e.contentChangedEvent);return new InternalModelContentChangeEvent(t,i)}static _mergeChangeEvents(e,t){const i=[].concat(e.changes).concat(t.changes),n=t.eol,r=t.versionId,s=e.isUndoing||t.isUndoing,a=e.isRedoing||t.isRedoing,l=e.isFlush||t.isFlush,d=e.isEolChange&&t.isEolChange;return{changes:i,eol:n,isEolChange:d,versionId:r,isUndoing:s,isRedoing:a,isFlush:l}}}const IUndoRedoService=createDecorator("undoRedoService");class ResourceEditStackSnapshot{constructor(e,t){this.resource=e,this.elements=t}}class UndoRedoGroup{constructor(){this.id=UndoRedoGroup._ID++,this.order=1}nextOrder(){return this.id===0?0:this.order++}}UndoRedoGroup._ID=0;UndoRedoGroup.None=new UndoRedoGroup;class UndoRedoSource{constructor(){this.id=UndoRedoSource._ID++,this.order=1}nextOrder(){return this.id===0?0:this.order++}}UndoRedoSource._ID=0;UndoRedoSource.None=new UndoRedoSource;var __decorate$21=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1X=function(o,e){return function(t,i){e(t,i,o)}},TextModel_1;function createTextBufferFactory(o){const e=new PieceTreeTextBufferBuilder;return e.acceptChunk(o),e.finish()}function createTextBufferFactoryFromSnapshot(o){const e=new PieceTreeTextBufferBuilder;let t;for(;typeof(t=o.read())=="string";)e.acceptChunk(t);return e.finish()}function createTextBuffer(o,e){let t;return typeof o=="string"?t=createTextBufferFactory(o):isITextSnapshot(o)?t=createTextBufferFactoryFromSnapshot(o):t=o,t.create(e)}let MODEL_ID$1=0;const LIMIT_FIND_COUNT=999,LONG_LINE_BOUNDARY=1e4;class TextModelSnapshot{constructor(e){this._source=e,this._eos=!1}read(){if(this._eos)return null;const e=[];let t=0,i=0;do{const n=this._source.read();if(n===null)return this._eos=!0,t===0?null:e.join("");if(n.length>0&&(e[t++]=n,i+=n.length),i>=64*1024)return e.join("")}while(!0)}}const invalidFunc=()=>{throw new Error("Invalid change accessor")};let TextModel=TextModel_1=class extends Disposable{static resolveOptions(e,t){if(t.detectIndentation){const i=guessIndentation(e,t.tabSize,t.insertSpaces);return new TextModelResolvedOptions({tabSize:i.tabSize,indentSize:"tabSize",insertSpaces:i.insertSpaces,trimAutoWhitespace:t.trimAutoWhitespace,defaultEOL:t.defaultEOL,bracketPairColorizationOptions:t.bracketPairColorizationOptions})}return new TextModelResolvedOptions(t)}get onDidChangeLanguage(){return this._tokenizationTextModelPart.onDidChangeLanguage}get onDidChangeLanguageConfiguration(){return this._tokenizationTextModelPart.onDidChangeLanguageConfiguration}get onDidChangeTokens(){return this._tokenizationTextModelPart.onDidChangeTokens}onDidChangeContent(e){return this._eventEmitter.slowEvent(t=>e(t.contentChangedEvent))}onDidChangeContentOrInjectedText(e){return combinedDisposable(this._eventEmitter.fastEvent(t=>e(t)),this._onDidChangeInjectedText.event(t=>e(t)))}_isDisposing(){return this.__isDisposing}get tokenization(){return this._tokenizationTextModelPart}get bracketPairs(){return this._bracketPairs}get guides(){return this._guidesTextModelPart}constructor(e,t,i,n=null,r,s,a){super(),this._undoRedoService=r,this._languageService=s,this._languageConfigurationService=a,this._onWillDispose=this._register(new Emitter$1),this.onWillDispose=this._onWillDispose.event,this._onDidChangeDecorations=this._register(new DidChangeDecorationsEmitter(f=>this.handleBeforeFireDecorationsChangedEvent(f))),this.onDidChangeDecorations=this._onDidChangeDecorations.event,this._onDidChangeOptions=this._register(new Emitter$1),this.onDidChangeOptions=this._onDidChangeOptions.event,this._onDidChangeAttached=this._register(new Emitter$1),this.onDidChangeAttached=this._onDidChangeAttached.event,this._onDidChangeInjectedText=this._register(new Emitter$1),this._eventEmitter=this._register(new DidChangeContentEmitter),this._languageSelectionListener=this._register(new MutableDisposable),this._deltaDecorationCallCnt=0,this._attachedViews=new AttachedViews,MODEL_ID$1++,this.id="$model"+MODEL_ID$1,this.isForSimpleWidget=i.isForSimpleWidget,typeof n>"u"||n===null?this._associatedResource=URI.parse("inmemory://model/"+MODEL_ID$1):this._associatedResource=n,this._attachedEditorCount=0;const{textBuffer:l,disposable:d}=createTextBuffer(e,i.defaultEOL);this._buffer=l,this._bufferDisposable=d,this._options=TextModel_1.resolveOptions(this._buffer,i);const c=typeof t=="string"?t:t.languageId;typeof t!="string"&&(this._languageSelectionListener.value=t.onDidChange(()=>this._setLanguage(t.languageId))),this._bracketPairs=this._register(new BracketPairsTextModelPart(this,this._languageConfigurationService)),this._guidesTextModelPart=this._register(new GuidesTextModelPart(this,this._languageConfigurationService)),this._decorationProvider=this._register(new ColorizedBracketPairsDecorationProvider(this)),this._tokenizationTextModelPart=new TokenizationTextModelPart(this._languageService,this._languageConfigurationService,this,this._bracketPairs,c,this._attachedViews);const u=this._buffer.getLineCount(),g=this._buffer.getValueLengthInRange(new Range$2(1,1,u,this._buffer.getLineLength(u)+1),0);i.largeFileOptimizations?(this._isTooLargeForTokenization=g>TextModel_1.LARGE_FILE_SIZE_THRESHOLD||u>TextModel_1.LARGE_FILE_LINE_COUNT_THRESHOLD,this._isTooLargeForHeapOperation=g>TextModel_1.LARGE_FILE_HEAP_OPERATION_THRESHOLD):(this._isTooLargeForTokenization=!1,this._isTooLargeForHeapOperation=!1),this._isTooLargeForSyncing=g>TextModel_1._MODEL_SYNC_LIMIT,this._versionId=1,this._alternativeVersionId=1,this._initialUndoRedoSnapshot=null,this._isDisposed=!1,this.__isDisposing=!1,this._instanceId=singleLetterHash(MODEL_ID$1),this._lastDecorationId=0,this._decorations=Object.create(null),this._decorationsTree=new DecorationsTrees,this._commandManager=new EditStack(this,this._undoRedoService),this._isUndoing=!1,this._isRedoing=!1,this._trimAutoWhitespaceLines=null,this._register(this._decorationProvider.onDidChange(()=>{this._onDidChangeDecorations.beginDeferredEmit(),this._onDidChangeDecorations.fire(),this._onDidChangeDecorations.endDeferredEmit()})),this._languageService.requestRichLanguageFeatures(c)}dispose(){this.__isDisposing=!0,this._onWillDispose.fire(),this._tokenizationTextModelPart.dispose(),this._isDisposed=!0,super.dispose(),this._bufferDisposable.dispose(),this.__isDisposing=!1;const e=new PieceTreeTextBuffer([],"",`
- `,!1,!1,!0,!0);e.dispose(),this._buffer=e,this._bufferDisposable=Disposable.None}_assertNotDisposed(){if(this._isDisposed)throw new Error("Model is disposed!")}_emitContentChangedEvent(e,t){this.__isDisposing||(this._tokenizationTextModelPart.handleDidChangeContent(t),this._bracketPairs.handleDidChangeContent(t),this._eventEmitter.fire(new InternalModelContentChangeEvent(e,t)))}setValue(e){if(this._assertNotDisposed(),e==null)throw illegalArgument();const{textBuffer:t,disposable:i}=createTextBuffer(e,this._options.defaultEOL);this._setValueFromTextBuffer(t,i)}_createContentChanged2(e,t,i,n,r,s,a,l){return{changes:[{range:e,rangeOffset:t,rangeLength:i,text:n}],eol:this._buffer.getEOL(),isEolChange:l,versionId:this.getVersionId(),isUndoing:r,isRedoing:s,isFlush:a}}_setValueFromTextBuffer(e,t){this._assertNotDisposed();const i=this.getFullModelRange(),n=this.getValueLengthInRange(i),r=this.getLineCount(),s=this.getLineMaxColumn(r);this._buffer=e,this._bufferDisposable.dispose(),this._bufferDisposable=t,this._increaseVersionId(),this._decorations=Object.create(null),this._decorationsTree=new DecorationsTrees,this._commandManager.clear(),this._trimAutoWhitespaceLines=null,this._emitContentChangedEvent(new ModelRawContentChangedEvent([new ModelRawFlush],this._versionId,!1,!1),this._createContentChanged2(new Range$2(1,1,r,s),0,n,this.getValue(),!1,!1,!0,!1))}setEOL(e){this._assertNotDisposed();const t=e===1?`\r
- `:`
- `;if(this._buffer.getEOL()===t)return;const i=this.getFullModelRange(),n=this.getValueLengthInRange(i),r=this.getLineCount(),s=this.getLineMaxColumn(r);this._onBeforeEOLChange(),this._buffer.setEOL(t),this._increaseVersionId(),this._onAfterEOLChange(),this._emitContentChangedEvent(new ModelRawContentChangedEvent([new ModelRawEOLChanged],this._versionId,!1,!1),this._createContentChanged2(new Range$2(1,1,r,s),0,n,this.getValue(),!1,!1,!1,!0))}_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 r=t[i],s=r.range,a=r.cachedAbsoluteStart-r.start,l=this._buffer.getOffsetAt(s.startLineNumber,s.startColumn),d=this._buffer.getOffsetAt(s.endLineNumber,s.endColumn);r.cachedAbsoluteStart=l,r.cachedAbsoluteEnd=d,r.cachedVersionId=e,r.start=l-a,r.end=d-a,recomputeMaxEnd(r)}}onBeforeAttached(){return this._attachedEditorCount++,this._attachedEditorCount===1&&(this._tokenizationTextModelPart.handleDidChangeAttached(),this._onDidChangeAttached.fire(void 0)),this._attachedViews.attachView()}onBeforeDetached(e){this._attachedEditorCount--,this._attachedEditorCount===0&&(this._tokenizationTextModelPart.handleDidChangeAttached(),this._onDidChangeAttached.fire(void 0)),this._attachedViews.detachView(e)}isAttachedToEditor(){return this._attachedEditorCount>0}getAttachedEditorCount(){return this._attachedEditorCount}isTooLargeForSyncing(){return this._isTooLargeForSyncing}isTooLargeForTokenization(){return this._isTooLargeForTokenization}isTooLargeForHeapOperation(){return this._isTooLargeForHeapOperation}isDisposed(){return this._isDisposed}isDominatedByLongLines(){if(this._assertNotDisposed(),this.isTooLargeForTokenization())return!1;let e=0,t=0;const i=this._buffer.getLineCount();for(let n=1;n<=i;n++){const r=this._buffer.getLineLength(n);r>=LONG_LINE_BOUNDARY?t+=r:e+=r}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();const t=typeof e.tabSize<"u"?e.tabSize:this._options.tabSize,i=typeof e.indentSize<"u"?e.indentSize:this._options.originalIndentSize,n=typeof e.insertSpaces<"u"?e.insertSpaces:this._options.insertSpaces,r=typeof e.trimAutoWhitespace<"u"?e.trimAutoWhitespace:this._options.trimAutoWhitespace,s=typeof e.bracketColorizationOptions<"u"?e.bracketColorizationOptions:this._options.bracketPairColorizationOptions,a=new TextModelResolvedOptions({tabSize:t,indentSize:i,insertSpaces:n,defaultEOL:this._options.defaultEOL,trimAutoWhitespace:r,bracketPairColorizationOptions:s});if(this._options.equals(a))return;const l=this._options.createChangeEvent(a);this._options=a,this._bracketPairs.handleDidChangeOptions(l),this._decorationProvider.handleDidChangeOptions(l),this._onDidChangeOptions.fire(l)}detectIndentation(e,t){this._assertNotDisposed();const i=guessIndentation(this._buffer,t,e);this.updateOptions({insertSpaces:i.insertSpaces,tabSize:i.tabSize,indentSize:i.tabSize})}normalizeIndentation(e){return this._assertNotDisposed(),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(UNUSUAL_LINE_TERMINATORS.source,!1,!0,!1,null,!1,1073741824);this._buffer.resetMightContainUnusualLineTerminators(),this.pushEditOperations(e,t.map(i=>({range:i.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();const t=this._validatePosition(e.lineNumber,e.column,0);return this._buffer.getOffsetAt(t.lineNumber,t.column)}getPositionAt(e){this._assertNotDisposed();const 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){if(this._assertNotDisposed(),this.isTooLargeForHeapOperation())throw new BugIndicatingError("Operation would exceed heap memory limits");const i=this.getFullModelRange(),n=this.getValueInRange(i,e);return t?this._buffer.getBOM()+n:n}createSnapshot(e=!1){return new TextModelSnapshot(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 BugIndicatingError("Illegal value for lineNumber");return this._buffer.getLineContent(e)}getLineLength(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new BugIndicatingError("Illegal value for lineNumber");return this._buffer.getLineLength(e)}getLinesContent(){if(this._assertNotDisposed(),this.isTooLargeForHeapOperation())throw new BugIndicatingError("Operation would exceed heap memory limits");return this._buffer.getLinesContent()}getEOL(){return this._assertNotDisposed(),this._buffer.getEOL()}getEndOfLineSequence(){return this._assertNotDisposed(),this._buffer.getEOL()===`
- `?0:1}getLineMinColumn(e){return this._assertNotDisposed(),1}getLineMaxColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new BugIndicatingError("Illegal value for lineNumber");return this._buffer.getLineLength(e)+1}getLineFirstNonWhitespaceColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new BugIndicatingError("Illegal value for lineNumber");return this._buffer.getLineFirstNonWhitespaceColumn(e)}getLineLastNonWhitespaceColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new BugIndicatingError("Illegal value for lineNumber");return this._buffer.getLineLastNonWhitespaceColumn(e)}_validateRangeRelaxedNoAllocations(e){const t=this._buffer.getLineCount(),i=e.startLineNumber,n=e.startColumn;let r=Math.floor(typeof i=="number"&&!isNaN(i)?i:1),s=Math.floor(typeof n=="number"&&!isNaN(n)?n:1);if(r<1)r=1,s=1;else if(r>t)r=t,s=this.getLineMaxColumn(r);else if(s<=1)s=1;else{const u=this.getLineMaxColumn(r);s>=u&&(s=u)}const a=e.endLineNumber,l=e.endColumn;let d=Math.floor(typeof a=="number"&&!isNaN(a)?a:1),c=Math.floor(typeof l=="number"&&!isNaN(l)?l:1);if(d<1)d=1,c=1;else if(d>t)d=t,c=this.getLineMaxColumn(d);else if(c<=1)c=1;else{const u=this.getLineMaxColumn(d);c>=u&&(c=u)}return i===r&&n===s&&a===d&&l===c&&e instanceof Range$2&&!(e instanceof Selection$1)?e:new Range$2(r,s,d,c)}_isValidPosition(e,t,i){if(typeof e!="number"||typeof t!="number"||isNaN(e)||isNaN(t)||e<1||t<1||(e|0)!==e||(t|0)!==t)return!1;const n=this._buffer.getLineCount();if(e>n)return!1;if(t===1)return!0;const r=this.getLineMaxColumn(e);if(t>r)return!1;if(i===1){const s=this._buffer.getLineCharCode(e,t-2);if(isHighSurrogate(s))return!1}return!0}_validatePosition(e,t,i){const n=Math.floor(typeof e=="number"&&!isNaN(e)?e:1),r=Math.floor(typeof t=="number"&&!isNaN(t)?t:1),s=this._buffer.getLineCount();if(n<1)return new Position$1(1,1);if(n>s)return new Position$1(s,this.getLineMaxColumn(s));if(r<=1)return new Position$1(n,1);const a=this.getLineMaxColumn(n);if(r>=a)return new Position$1(n,a);if(i===1){const l=this._buffer.getLineCharCode(n,r-2);if(isHighSurrogate(l))return new Position$1(n,r-1)}return new Position$1(n,r)}validatePosition(e){return this._assertNotDisposed(),e instanceof Position$1&&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,r=e.endLineNumber,s=e.endColumn;if(!this._isValidPosition(i,n,0)||!this._isValidPosition(r,s,0))return!1;if(t===1){const a=n>1?this._buffer.getLineCharCode(i,n-2):0,l=s>1&&s<=this._buffer.getLineLength(r)?this._buffer.getLineCharCode(r,s-2):0,d=isHighSurrogate(a),c=isHighSurrogate(l);return!d&&!c}return!0}validateRange(e){if(this._assertNotDisposed(),e instanceof Range$2&&!(e instanceof Selection$1)&&this._isValidRange(e,1))return e;const i=this._validatePosition(e.startLineNumber,e.startColumn,0),n=this._validatePosition(e.endLineNumber,e.endColumn,0),r=i.lineNumber,s=i.column,a=n.lineNumber,l=n.column;{const d=s>1?this._buffer.getLineCharCode(r,s-2):0,c=l>1&&l<=this._buffer.getLineLength(a)?this._buffer.getLineCharCode(a,l-2):0,u=isHighSurrogate(d),g=isHighSurrogate(c);return!u&&!g?new Range$2(r,s,a,l):r===a&&s===l?new Range$2(r,s-1,a,l-1):u&&g?new Range$2(r,s-1,a,l+1):u?new Range$2(r,s-1,a,l):new Range$2(r,s,a,l+1)}}modifyPosition(e,t){this._assertNotDisposed();const 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 Range$2(1,1,e,this.getLineMaxColumn(e))}findMatchesLineByLine(e,t,i,n){return this._buffer.findMatchesLineByLine(e,t,i,n)}findMatches(e,t,i,n,r,s,a=LIMIT_FIND_COUNT){this._assertNotDisposed();let l=null;t!==null&&(Array.isArray(t)||(t=[t]),t.every(u=>Range$2.isIRange(u))&&(l=t.map(u=>this.validateRange(u)))),l===null&&(l=[this.getFullModelRange()]),l=l.sort((u,g)=>u.startLineNumber-g.startLineNumber||u.startColumn-g.startColumn);const d=[];d.push(l.reduce((u,g)=>Range$2.areIntersecting(u,g)?u.plusRange(g):(d.push(u),g)));let c;if(!i&&e.indexOf(`
- `)<0){const g=new SearchParams(e,i,n,r).parseSearchRequest();if(!g)return[];c=f=>this.findMatchesLineByLine(f,g,s,a)}else c=u=>TextModelSearch.findMatches(this,new SearchParams(e,i,n,r),u,s,a);return d.map(c).reduce((u,g)=>u.concat(g),[])}findNextMatch(e,t,i,n,r,s){this._assertNotDisposed();const a=this.validatePosition(t);if(!i&&e.indexOf(`
- `)<0){const d=new SearchParams(e,i,n,r).parseSearchRequest();if(!d)return null;const c=this.getLineCount();let u=new Range$2(a.lineNumber,a.column,c,this.getLineMaxColumn(c)),g=this.findMatchesLineByLine(u,d,s,1);return TextModelSearch.findNextMatch(this,new SearchParams(e,i,n,r),a,s),g.length>0||(u=new Range$2(1,1,a.lineNumber,this.getLineMaxColumn(a.lineNumber)),g=this.findMatchesLineByLine(u,d,s,1),g.length>0)?g[0]:null}return TextModelSearch.findNextMatch(this,new SearchParams(e,i,n,r),a,s)}findPreviousMatch(e,t,i,n,r,s){this._assertNotDisposed();const a=this.validatePosition(t);return TextModelSearch.findPreviousMatch(this,new SearchParams(e,i,n,r),a,s)}pushStackElement(){this._commandManager.pushStackElement()}popStackElement(){this._commandManager.popStackElement()}pushEOL(e){if((this.getEOL()===`
- `?0:1)!==e)try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._initialUndoRedoSnapshot===null&&(this._initialUndoRedoSnapshot=this._undoRedoService.createSnapshot(this.uri)),this._commandManager.pushEOL(e)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_validateEditOperation(e){return e instanceof ValidAnnotatedEditOperation?e:new ValidAnnotatedEditOperation(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,n){try{return this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._pushEditOperations(e,this._validateEditOperations(t),i,n)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_pushEditOperations(e,t,i,n){if(this._options.trimAutoWhitespace&&this._trimAutoWhitespaceLines){const r=t.map(a=>({range:this.validateRange(a.range),text:a.text}));let s=!0;if(e)for(let a=0,l=e.length;a<l;a++){const d=e[a];let c=!1;for(let u=0,g=r.length;u<g;u++){const f=r[u].range,p=f.startLineNumber>d.endLineNumber,m=d.startLineNumber>f.endLineNumber;if(!p&&!m){c=!0;break}}if(!c){s=!1;break}}if(s)for(let a=0,l=this._trimAutoWhitespaceLines.length;a<l;a++){const d=this._trimAutoWhitespaceLines[a],c=this.getLineMaxColumn(d);let u=!0;for(let g=0,f=r.length;g<f;g++){const p=r[g].range,m=r[g].text;if(!(d<p.startLineNumber||d>p.endLineNumber)&&!(d===p.startLineNumber&&p.startColumn===c&&p.isEmpty()&&m&&m.length>0&&m.charAt(0)===`
- `)&&!(d===p.startLineNumber&&p.startColumn===1&&p.isEmpty()&&m&&m.length>0&&m.charAt(m.length-1)===`
- `)){u=!1;break}}if(u){const g=new Range$2(d,1,d,c);t.push(new ValidAnnotatedEditOperation(null,g,null,!1,!1,!1))}}this._trimAutoWhitespaceLines=null}return this._initialUndoRedoSnapshot===null&&(this._initialUndoRedoSnapshot=this._undoRedoService.createSnapshot(this.uri)),this._commandManager.pushEditOperation(e,t,i,n)}_applyUndo(e,t,i,n){const r=e.map(s=>{const a=this.getPositionAt(s.newPosition),l=this.getPositionAt(s.newEnd);return{range:new Range$2(a.lineNumber,a.column,l.lineNumber,l.column),text:s.oldText}});this._applyUndoRedoEdits(r,t,!0,!1,i,n)}_applyRedo(e,t,i,n){const r=e.map(s=>{const a=this.getPositionAt(s.oldPosition),l=this.getPositionAt(s.oldEnd);return{range:new Range$2(a.lineNumber,a.column,l.lineNumber,l.column),text:s.newText}});this._applyUndoRedoEdits(r,t,!1,!0,i,n)}_applyUndoRedoEdits(e,t,i,n,r,s){try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._isUndoing=i,this._isRedoing=n,this.applyEdits(e,!1),this.setEOL(t),this._overwriteAlternativeVersionId(r)}finally{this._isUndoing=!1,this._isRedoing=!1,this._eventEmitter.endDeferredEmit(s),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),r=this._buffer.getLineCount(),s=n.changes;if(this._trimAutoWhitespaceLines=n.trimAutoWhitespaceLineNumbers,s.length!==0){for(let d=0,c=s.length;d<c;d++){const u=s[d];this._decorationsTree.acceptReplace(u.rangeOffset,u.rangeLength,u.text.length,u.forceMoveMarkers)}const a=[];this._increaseVersionId();let l=i;for(let d=0,c=s.length;d<c;d++){const u=s[d],[g]=countEOL(u.text);this._onDidChangeDecorations.fire();const f=u.range.startLineNumber,p=u.range.endLineNumber,m=p-f,b=g,_=Math.min(m,b),C=b-m,S=r-l-C+f,y=S,E=S+b,x=this._decorationsTree.getInjectedTextInInterval(this,this.getOffsetAt(new Position$1(y,1)),this.getOffsetAt(new Position$1(E,this.getLineMaxColumn(E))),0),L=LineInjectedText.fromDecorations(x),I=new ArrayQueue(L);for(let D=_;D>=0;D--){const N=f+D,F=S+D;I.takeFromEndWhile(M=>M.lineNumber>F);const R=I.takeFromEndWhile(M=>M.lineNumber===F);a.push(new ModelRawLineChanged(N,this.getLineContent(F),R))}if(_<m){const D=f+_;a.push(new ModelRawLinesDeleted(D+1,p))}if(_<b){const D=new ArrayQueue(L),N=f+_,F=b-_,R=r-l-F+N+1,M=[],W=[];for(let V=0;V<F;V++){const A=R+V;W[V]=this.getLineContent(A),D.takeWhile(P=>P.lineNumber<A),M[V]=D.takeWhile(P=>P.lineNumber===A)}a.push(new ModelRawLinesInserted(N+1,f+b,W,M))}l+=C}this._emitContentChangedEvent(new ModelRawContentChangedEvent(a,this.getVersionId(),this._isUndoing,this._isRedoing),{changes:s,eol:this._buffer.getEOL(),isEolChange:!1,versionId:this.getVersionId(),isUndoing:this._isUndoing,isRedoing:this._isRedoing,isFlush:!1})}return n.reverseEdits===null?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(e===null||e.size===0)return;const i=Array.from(e).map(n=>new ModelRawLineChanged(n,this.getLineContent(n),this._getInjectedTextInLine(n)));this._onDidChangeInjectedText.fire(new ModelInjectedTextChangedEvent(i))}changeDecorations(e,t=0){this._assertNotDisposed();try{return this._onDidChangeDecorations.beginDeferredEmit(),this._changeDecorations(t,e)}finally{this._onDidChangeDecorations.endDeferredEmit()}}_changeDecorations(e,t){const i={addDecoration:(r,s)=>this._deltaDecorationsImpl(e,[],[{range:r,options:s}])[0],changeDecoration:(r,s)=>{this._changeDecorationImpl(r,s)},changeDecorationOptions:(r,s)=>{this._changeDecorationOptionsImpl(r,_normalizeOptions(s))},removeDecoration:r=>{this._deltaDecorationsImpl(e,[r],[])},deltaDecorations:(r,s)=>r.length===0&&s.length===0?[]:this._deltaDecorationsImpl(e,r,s)};let n=null;try{n=t(i)}catch(r){onUnexpectedError(r)}return i.addDecoration=invalidFunc,i.changeDecoration=invalidFunc,i.changeDecorationOptions=invalidFunc,i.removeDecoration=invalidFunc,i.deltaDecorations=invalidFunc,n}deltaDecorations(e,t,i=0){if(this._assertNotDisposed(),e||(e=[]),e.length===0&&t.length===0)return[];try{return this._deltaDecorationCallCnt++,this._deltaDecorationCallCnt>1&&(console.warn("Invoking deltaDecorations recursively could lead to leaking decorations."),onUnexpectedError(new Error("Invoking deltaDecorations recursively could lead to leaking decorations."))),this._onDidChangeDecorations.beginDeferredEmit(),this._deltaDecorationsImpl(i,e,t)}finally{this._onDidChangeDecorations.endDeferredEmit(),this._deltaDecorationCallCnt--}}_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:TRACKED_RANGE_OPTIONS[i]}],!0)[0]:null;if(!t)return this._decorationsTree.delete(n),delete this._decorations[n.id],null;const r=this._validateRangeRelaxedNoAllocations(t),s=this._buffer.getOffsetAt(r.startLineNumber,r.startColumn),a=this._buffer.getOffsetAt(r.endLineNumber,r.endColumn);return this._decorationsTree.delete(n),n.reset(this.getVersionId(),s,a,r),n.setOptions(TRACKED_RANGE_OPTIONS[i]),this._decorationsTree.insert(n),n.id}removeAllDecorationsWithOwnerId(e){if(this._isDisposed)return;const t=this._decorationsTree.collectNodesFromOwner(e);for(let i=0,n=t.length;i<n;i++){const r=t[i];this._decorationsTree.delete(r),delete this._decorations[r.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,r=!1){const s=this.getLineCount(),a=Math.min(s,Math.max(1,e)),l=Math.min(s,Math.max(1,t)),d=this.getLineMaxColumn(l),c=new Range$2(a,1,l,d),u=this._getDecorationsInRange(c,i,n,r);return pushMany(u,this._decorationProvider.getDecorationsInRange(c,i,n)),u}getDecorationsInRange(e,t=0,i=!1,n=!1,r=!1){const s=this.validateRange(e),a=this._getDecorationsInRange(s,t,i,r);return pushMany(a,this._decorationProvider.getDecorationsInRange(s,t,i,n)),a}getOverviewRulerDecorations(e=0,t=!1){return this._decorationsTree.getAll(this,e,t,!0,!1)}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 LineInjectedText.fromDecorations(n).filter(r=>r.lineNumber===e)}getAllDecorations(e=0,t=!1){let i=this._decorationsTree.getAll(this,e,t,!1,!1);return i=i.concat(this._decorationProvider.getAllDecorations(e,t)),i}getAllMarginDecorations(e=0){return this._decorationsTree.getAll(this,e,!1,!1,!0)}_getDecorationsInRange(e,t,i,n){const r=this._buffer.getOffsetAt(e.startLineNumber,e.startColumn),s=this._buffer.getOffsetAt(e.endLineNumber,e.endColumn);return this._decorationsTree.getAllInInterval(this,r,s,t,i,n)}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 a=this.getDecorationRange(e);this._onDidChangeDecorations.recordLineAffectedByInjectedText(a.endLineNumber)}if(i.options.before){const a=this.getDecorationRange(e);this._onDidChangeDecorations.recordLineAffectedByInjectedText(a.startLineNumber)}const n=this._validateRangeRelaxedNoAllocations(t),r=this._buffer.getOffsetAt(n.startLineNumber,n.startColumn),s=this._buffer.getOffsetAt(n.endLineNumber,n.endColumn);this._decorationsTree.delete(i),i.reset(this.getVersionId(),r,s,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),r=!!(t.overviewRuler&&t.overviewRuler.color);if(this._onDidChangeDecorations.checkAffectedAndFire(i.options),this._onDidChangeDecorations.checkAffectedAndFire(t),i.options.after||t.after){const s=this._decorationsTree.getNodeRange(this,i);this._onDidChangeDecorations.recordLineAffectedByInjectedText(s.endLineNumber)}if(i.options.before||t.before){const s=this._decorationsTree.getNodeRange(this,i);this._onDidChangeDecorations.recordLineAffectedByInjectedText(s.startLineNumber)}n!==r?(this._decorationsTree.delete(i),i.setOptions(t),this._decorationsTree.insert(i)):i.setOptions(t)}_deltaDecorationsImpl(e,t,i,n=!1){const r=this.getVersionId(),s=t.length;let a=0;const l=i.length;let d=0;this._onDidChangeDecorations.beginDeferredEmit();try{const c=new Array(l);for(;a<s||d<l;){let u=null;if(a<s){do u=this._decorations[t[a++]];while(!u&&a<s);if(u){if(u.options.after){const g=this._decorationsTree.getNodeRange(this,u);this._onDidChangeDecorations.recordLineAffectedByInjectedText(g.endLineNumber)}if(u.options.before){const g=this._decorationsTree.getNodeRange(this,u);this._onDidChangeDecorations.recordLineAffectedByInjectedText(g.startLineNumber)}this._decorationsTree.delete(u),n||this._onDidChangeDecorations.checkAffectedAndFire(u.options)}}if(d<l){if(!u){const _=++this._lastDecorationId,C=`${this._instanceId};${_}`;u=new IntervalNode(C,0,0),this._decorations[C]=u}const g=i[d],f=this._validateRangeRelaxedNoAllocations(g.range),p=_normalizeOptions(g.options),m=this._buffer.getOffsetAt(f.startLineNumber,f.startColumn),b=this._buffer.getOffsetAt(f.endLineNumber,f.endColumn);u.ownerId=e,u.reset(r,m,b,f),u.setOptions(p),u.options.after&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(f.endLineNumber),u.options.before&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(f.startLineNumber),n||this._onDidChangeDecorations.checkAffectedAndFire(p),this._decorationsTree.insert(u),c[d]=u.id,d++}else u&&delete this._decorations[u.id]}return c}finally{this._onDidChangeDecorations.endDeferredEmit()}}getLanguageId(){return this.tokenization.getLanguageId()}setLanguage(e,t){typeof e=="string"?(this._languageSelectionListener.clear(),this._setLanguage(e,t)):(this._languageSelectionListener.value=e.onDidChange(()=>this._setLanguage(e.languageId,t)),this._setLanguage(e.languageId,t))}_setLanguage(e,t){this.tokenization.setLanguageId(e,t),this._languageService.requestRichLanguageFeatures(e)}getLanguageIdAtPosition(e,t){return this.tokenization.getLanguageIdAtPosition(e,t)}getWordAtPosition(e){return this._tokenizationTextModelPart.getWordAtPosition(e)}getWordUntilPosition(e){return this._tokenizationTextModelPart.getWordUntilPosition(e)}normalizePosition(e,t){return e}getLineIndentColumn(e){return indentOfLine(this.getLineContent(e))+1}};TextModel._MODEL_SYNC_LIMIT=50*1024*1024;TextModel.LARGE_FILE_SIZE_THRESHOLD=20*1024*1024;TextModel.LARGE_FILE_LINE_COUNT_THRESHOLD=300*1e3;TextModel.LARGE_FILE_HEAP_OPERATION_THRESHOLD=256*1024*1024;TextModel.DEFAULT_CREATION_OPTIONS={isForSimpleWidget:!1,tabSize:EDITOR_MODEL_DEFAULTS.tabSize,indentSize:EDITOR_MODEL_DEFAULTS.indentSize,insertSpaces:EDITOR_MODEL_DEFAULTS.insertSpaces,detectIndentation:!1,defaultEOL:1,trimAutoWhitespace:EDITOR_MODEL_DEFAULTS.trimAutoWhitespace,largeFileOptimizations:EDITOR_MODEL_DEFAULTS.largeFileOptimizations,bracketPairColorizationOptions:EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions};TextModel=TextModel_1=__decorate$21([__param$1X(4,IUndoRedoService),__param$1X(5,ILanguageService),__param$1X(6,ILanguageConfigurationService)],TextModel);function indentOfLine(o){let e=0;for(const t of o)if(t===" "||t===" ")e++;else break;return e}function isNodeInOverviewRuler(o){return!!(o.options.overviewRuler&&o.options.overviewRuler.color)}function isNodeInjectedText(o){return!!o.options.after||!!o.options.before}class DecorationsTrees{constructor(){this._decorationsTree0=new IntervalTree,this._decorationsTree1=new IntervalTree,this._injectedTextDecorationsTree=new IntervalTree}ensureAllNodesHaveRanges(e){this.getAll(e,0,!1,!1,!1)}_ensureNodesHaveRanges(e,t){for(const i of t)i.range===null&&(i.range=e.getRangeAt(i.cachedAbsoluteStart,i.cachedAbsoluteEnd));return t}getAllInInterval(e,t,i,n,r,s){const a=e.getVersionId(),l=this._intervalSearch(t,i,n,r,a,s);return this._ensureNodesHaveRanges(e,l)}_intervalSearch(e,t,i,n,r,s){const a=this._decorationsTree0.intervalSearch(e,t,i,n,r,s),l=this._decorationsTree1.intervalSearch(e,t,i,n,r,s),d=this._injectedTextDecorationsTree.intervalSearch(e,t,i,n,r,s);return a.concat(l).concat(d)}getInjectedTextInInterval(e,t,i,n){const r=e.getVersionId(),s=this._injectedTextDecorationsTree.intervalSearch(t,i,n,!1,r,!1);return this._ensureNodesHaveRanges(e,s).filter(a=>a.options.showIfCollapsed||!a.range.isEmpty())}getAllInjectedText(e,t){const i=e.getVersionId(),n=this._injectedTextDecorationsTree.search(t,!1,i,!1);return this._ensureNodesHaveRanges(e,n).filter(r=>r.options.showIfCollapsed||!r.range.isEmpty())}getAll(e,t,i,n,r){const s=e.getVersionId(),a=this._search(t,i,n,s,r);return this._ensureNodesHaveRanges(e,a)}_search(e,t,i,n,r){if(i)return this._decorationsTree1.search(e,t,n,r);{const s=this._decorationsTree0.search(e,t,n,r),a=this._decorationsTree1.search(e,t,n,r),l=this._injectedTextDecorationsTree.search(e,t,n,r);return s.concat(a).concat(l)}}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){isNodeInjectedText(e)?this._injectedTextDecorationsTree.insert(e):isNodeInOverviewRuler(e)?this._decorationsTree1.insert(e):this._decorationsTree0.insert(e)}delete(e){isNodeInjectedText(e)?this._injectedTextDecorationsTree.delete(e):isNodeInOverviewRuler(e)?this._decorationsTree1.delete(e):this._decorationsTree0.delete(e)}getNodeRange(e,t){const i=e.getVersionId();return t.cachedVersionId!==i&&this._resolveNode(t,i),t.range===null&&(t.range=e.getRangeAt(t.cachedAbsoluteStart,t.cachedAbsoluteEnd)),t.range}_resolveNode(e,t){isNodeInjectedText(e)?this._injectedTextDecorationsTree.resolveNode(e,t):isNodeInOverviewRuler(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 cleanClassName(o){return o.replace(/[^a-z0-9\-_]/gi," ")}class DecorationOptions{constructor(e){this.color=e.color||"",this.darkColor=e.darkColor||""}}class ModelDecorationOverviewRulerOptions extends DecorationOptions{constructor(e){super(e),this._resolvedColor=null,this.position=typeof e.position=="number"?e.position:OverviewRulerLane.Center}getColor(e){return this._resolvedColor||(e.type!=="light"&&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(typeof e=="string")return e;const i=e?t.getColor(e.id):null;return i?i.toString():""}}class ModelDecorationGlyphMarginOptions{constructor(e){var t;this.position=(t=e==null?void 0:e.position)!==null&&t!==void 0?t:GlyphMarginLane.Left}}class ModelDecorationMinimapOptions extends DecorationOptions{constructor(e){super(e),this.position=e.position}getColor(e){return this._resolvedColor||(e.type!=="light"&&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 typeof e=="string"?Color.fromHex(e):t.getColor(e.id)}}class ModelDecorationInjectedTextOptions{static from(e){return e instanceof ModelDecorationInjectedTextOptions?e:new ModelDecorationInjectedTextOptions(e)}constructor(e){this.content=e.content||"",this.inlineClassName=e.inlineClassName||null,this.inlineClassNameAffectsLetterSpacing=e.inlineClassNameAffectsLetterSpacing||!1,this.attachedData=e.attachedData||null,this.cursorStops=e.cursorStops||null}}class ModelDecorationOptions{static register(e){return new ModelDecorationOptions(e)}static createDynamic(e){return new ModelDecorationOptions(e)}constructor(e){var t,i,n,r,s,a;this.description=e.description,this.blockClassName=e.blockClassName?cleanClassName(e.blockClassName):null,this.blockDoesNotCollapse=(t=e.blockDoesNotCollapse)!==null&&t!==void 0?t:null,this.blockIsAfterEnd=(i=e.blockIsAfterEnd)!==null&&i!==void 0?i:null,this.blockPadding=(n=e.blockPadding)!==null&&n!==void 0?n:null,this.stickiness=e.stickiness||0,this.zIndex=e.zIndex||0,this.className=e.className?cleanClassName(e.className):null,this.shouldFillLineOnLineBreak=(r=e.shouldFillLineOnLineBreak)!==null&&r!==void 0?r: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 ModelDecorationOverviewRulerOptions(e.overviewRuler):null,this.minimap=e.minimap?new ModelDecorationMinimapOptions(e.minimap):null,this.glyphMargin=e.glyphMarginClassName?new ModelDecorationGlyphMarginOptions(e.glyphMargin):null,this.glyphMarginClassName=e.glyphMarginClassName?cleanClassName(e.glyphMarginClassName):null,this.linesDecorationsClassName=e.linesDecorationsClassName?cleanClassName(e.linesDecorationsClassName):null,this.firstLineDecorationClassName=e.firstLineDecorationClassName?cleanClassName(e.firstLineDecorationClassName):null,this.marginClassName=e.marginClassName?cleanClassName(e.marginClassName):null,this.inlineClassName=e.inlineClassName?cleanClassName(e.inlineClassName):null,this.inlineClassNameAffectsLetterSpacing=e.inlineClassNameAffectsLetterSpacing||!1,this.beforeContentClassName=e.beforeContentClassName?cleanClassName(e.beforeContentClassName):null,this.afterContentClassName=e.afterContentClassName?cleanClassName(e.afterContentClassName):null,this.after=e.after?ModelDecorationInjectedTextOptions.from(e.after):null,this.before=e.before?ModelDecorationInjectedTextOptions.from(e.before):null,this.hideInCommentTokens=(s=e.hideInCommentTokens)!==null&&s!==void 0?s:!1,this.hideInStringTokens=(a=e.hideInStringTokens)!==null&&a!==void 0?a:!1}}ModelDecorationOptions.EMPTY=ModelDecorationOptions.register({description:"empty"});const TRACKED_RANGE_OPTIONS=[ModelDecorationOptions.register({description:"tracked-range-always-grows-when-typing-at-edges",stickiness:0}),ModelDecorationOptions.register({description:"tracked-range-never-grows-when-typing-at-edges",stickiness:1}),ModelDecorationOptions.register({description:"tracked-range-grows-only-when-typing-before",stickiness:2}),ModelDecorationOptions.register({description:"tracked-range-grows-only-when-typing-after",stickiness:3})];function _normalizeOptions(o){return o instanceof ModelDecorationOptions?o:ModelDecorationOptions.createDynamic(o)}class DidChangeDecorationsEmitter extends Disposable{constructor(e){super(),this.handleBeforeFire=e,this._actual=this._register(new Emitter$1),this.event=this._actual.event,this._affectedInjectedTextLines=null,this._deferredCnt=0,this._shouldFireDeferred=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1,this._affectsGlyphMargin=!1}beginDeferredEmit(){this._deferredCnt++}endDeferredEmit(){var e;this._deferredCnt--,this._deferredCnt===0&&(this._shouldFireDeferred&&this.doFire(),(e=this._affectedInjectedTextLines)===null||e===void 0||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._affectsGlyphMargin||(this._affectsGlyphMargin=!!e.glyphMarginClassName),this.tryFire()}fire(){this._affectsMinimap=!0,this._affectsOverviewRuler=!0,this._affectsGlyphMargin=!0,this.tryFire()}tryFire(){this._deferredCnt===0?this.doFire():this._shouldFireDeferred=!0}doFire(){this.handleBeforeFire(this._affectedInjectedTextLines);const e={affectsMinimap:this._affectsMinimap,affectsOverviewRuler:this._affectsOverviewRuler,affectsGlyphMargin:this._affectsGlyphMargin};this._shouldFireDeferred=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1,this._affectsGlyphMargin=!1,this._actual.fire(e)}}class DidChangeContentEmitter extends Disposable{constructor(){super(),this._fastEmitter=this._register(new Emitter$1),this.fastEvent=this._fastEmitter.event,this._slowEmitter=this._register(new Emitter$1),this.slowEvent=this._slowEmitter.event,this._deferredCnt=0,this._deferredEvent=null}beginDeferredEmit(){this._deferredCnt++}endDeferredEmit(e=null){if(this._deferredCnt--,this._deferredCnt===0&&this._deferredEvent!==null){this._deferredEvent.rawContentChangedEvent.resultingSelection=e;const t=this._deferredEvent;this._deferredEvent=null,this._fastEmitter.fire(t),this._slowEmitter.fire(t)}}fire(e){if(this._deferredCnt>0){this._deferredEvent?this._deferredEvent=this._deferredEvent.merge(e):this._deferredEvent=e;return}this._fastEmitter.fire(e),this._slowEmitter.fire(e)}}class AttachedViews{constructor(){this._onDidChangeVisibleRanges=new Emitter$1,this.onDidChangeVisibleRanges=this._onDidChangeVisibleRanges.event,this._views=new Set}attachView(){const e=new AttachedViewImpl(t=>{this._onDidChangeVisibleRanges.fire({view:e,state:t})});return this._views.add(e),e}detachView(e){this._views.delete(e),this._onDidChangeVisibleRanges.fire({view:e,state:void 0})}}class AttachedViewImpl{constructor(e){this.handleStateChange=e}setVisibleLines(e,t){const i=e.map(n=>new LineRange$1(n.startLineNumber,n.endLineNumber+1));this.handleStateChange({visibleLineRanges:i,stabilized:t})}}class Cursor{constructor(e){this._selTrackedRange=null,this._trackSelection=!0,this._setState(e,new SingleCursorState(new Range$2(1,1,1,1),0,0,new Position$1(1,1),0),new SingleCursorState(new Range$2(1,1,1,1),0,0,new Position$1(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 CursorState$1(this.modelState,this.viewState)}readSelectionFromMarkers(e){const t=e.model._getTrackedRange(this._selTrackedRange);return this.modelState.selection.isEmpty()&&!t.isEmpty()?Selection$1.fromRange(t.collapseToEnd(),this.modelState.selection.getDirection()):Selection$1.fromRange(t,this.modelState.selection.getDirection())}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(),r=t.selectionStart.getEndPosition(),s=e.normalizePosition(i,2),a=this._validatePositionWithCache(e,n,i,s),l=this._validatePositionWithCache(e,r,n,a);return i.equals(s)&&n.equals(a)&&r.equals(l)?t:new SingleCursorState(Range$2.fromPositions(a,l),t.selectionStartKind,t.selectionStartLeftoverVisibleColumns+n.column-a.column,s,t.leftoverVisibleColumns+i.column-s.column)}_setState(e,t,i){if(i&&(i=Cursor._validateViewState(e.viewModel,i)),t){const n=e.model.validateRange(t.selectionStart),r=t.selectionStart.equalsRange(n)?t.selectionStartLeftoverVisibleColumns:0,s=e.model.validatePosition(t.position),a=t.position.equals(s)?t.leftoverVisibleColumns:0;t=new SingleCursorState(n,t.selectionStartKind,r,s,a)}else{if(!i)return;const n=e.model.validateRange(e.coordinatesConverter.convertViewRangeToModelRange(i.selectionStart)),r=e.model.validatePosition(e.coordinatesConverter.convertViewPositionToModelPosition(i.position));t=new SingleCursorState(n,i.selectionStartKind,i.selectionStartLeftoverVisibleColumns,r,i.leftoverVisibleColumns)}if(i){const n=e.coordinatesConverter.validateViewRange(i.selectionStart,t.selectionStart),r=e.coordinatesConverter.validateViewPosition(i.position,t.position);i=new SingleCursorState(n,t.selectionStartKind,t.selectionStartLeftoverVisibleColumns,r,t.leftoverVisibleColumns)}else{const n=e.coordinatesConverter.convertModelPositionToViewPosition(new Position$1(t.selectionStart.startLineNumber,t.selectionStart.startColumn)),r=e.coordinatesConverter.convertModelPositionToViewPosition(new Position$1(t.selectionStart.endLineNumber,t.selectionStart.endColumn)),s=new Range$2(n.lineNumber,n.column,r.lineNumber,r.column),a=e.coordinatesConverter.convertModelPositionToViewPosition(t.position);i=new SingleCursorState(s,t.selectionStartKind,t.selectionStartLeftoverVisibleColumns,a,t.leftoverVisibleColumns)}this.modelState=t,this.viewState=i,this._updateTrackedRange(e)}}class CursorCollection{constructor(e){this.context=e,this.cursors=[new Cursor(e)],this.lastAddedCursorIndex=0}dispose(){for(const e of this.cursors)e.dispose(this.context)}startTrackingSelections(){for(const e of this.cursors)e.startTrackingSelection(this.context)}stopTrackingSelections(){for(const e of this.cursors)e.stopTrackingSelection(this.context)}updateContext(e){this.context=e}ensureValidState(){for(const e of this.cursors)e.ensureValidState(this.context)}readSelectionFromMarkers(){return this.cursors.map(e=>e.readSelectionFromMarkers(this.context))}getAll(){return this.cursors.map(e=>e.asCursorState())}getViewPositions(){return this.cursors.map(e=>e.viewState.position)}getTopMostViewPosition(){return findFirstMinBy(this.cursors,compareBy(e=>e.viewState.position,Position$1.compare)).viewState.position}getBottomMostViewPosition(){return findLastMaxBy(this.cursors,compareBy(e=>e.viewState.position,Position$1.compare)).viewState.position}getSelections(){return this.cursors.map(e=>e.modelState.selection)}getViewSelections(){return this.cursors.map(e=>e.viewState.selection)}setSelections(e){this.setStates(CursorState$1.fromModelSelections(e))}getPrimaryCursor(){return this.cursors[0].asCursorState()}setStates(e){e!==null&&(this.cursors[0].setState(this.context,e[0].modelState,e[0].viewState),this._setSecondaryStates(e.slice(1)))}_setSecondaryStates(e){const t=this.cursors.length-1,i=e.length;if(t<i){const n=i-t;for(let r=0;r<n;r++)this._addSecondaryCursor()}else if(t>i){const n=t-i;for(let r=0;r<n;r++)this._removeSecondaryCursor(this.cursors.length-2)}for(let n=0;n<i;n++)this.cursors[n+1].setState(this.context,e[n].modelState,e[n].viewState)}killSecondaryCursors(){this._setSecondaryStates([])}_addSecondaryCursor(){this.cursors.push(new Cursor(this.context)),this.lastAddedCursorIndex=this.cursors.length-1}getLastAddedCursorIndex(){return this.cursors.length===1||this.lastAddedCursorIndex===0?0:this.lastAddedCursorIndex}_removeSecondaryCursor(e){this.lastAddedCursorIndex>=e+1&&this.lastAddedCursorIndex--,this.cursors[e+1].dispose(this.context),this.cursors.splice(e+1,1)}normalize(){if(this.cursors.length===1)return;const e=this.cursors.slice(0),t=[];for(let i=0,n=e.length;i<n;i++)t.push({index:i,selection:e[i].modelState.selection});t.sort(compareBy(i=>i.selection,Range$2.compareRangesUsingStarts));for(let i=0;i<t.length-1;i++){const n=t[i],r=t[i+1],s=n.selection,a=r.selection;if(!this.context.cursorConfig.multiCursorMergeOverlapping)continue;let l;if(a.isEmpty()||s.isEmpty()?l=a.getStartPosition().isBeforeOrEqual(s.getEndPosition()):l=a.getStartPosition().isBefore(s.getEndPosition()),l){const d=n.index<r.index?i:i+1,c=n.index<r.index?i+1:i,u=t[c].index,g=t[d].index,f=t[c].selection,p=t[d].selection;if(!f.equalsSelection(p)){const m=f.plusRange(p),b=f.selectionStartLineNumber===f.startLineNumber&&f.selectionStartColumn===f.startColumn,_=p.selectionStartLineNumber===p.startLineNumber&&p.selectionStartColumn===p.startColumn;let C;u===this.lastAddedCursorIndex?(C=b,this.lastAddedCursorIndex=g):C=_;let S;C?S=new Selection$1(m.startLineNumber,m.startColumn,m.endLineNumber,m.endColumn):S=new Selection$1(m.endLineNumber,m.endColumn,m.startLineNumber,m.startColumn),t[d].selection=S;const y=CursorState$1.fromModelSelection(S);e[g].setState(this.context,y.modelState,y.viewState)}for(const m of t)m.index>u&&m.index--;e.splice(u,1),t.splice(c,1),this._removeSecondaryCursor(u-1),i--}}}}class CursorContext{constructor(e,t,i,n){this._cursorContextBrand=void 0,this.model=e,this.viewModel=t,this.coordinatesConverter=i,this.cursorConfig=n}}class ViewCompositionStartEvent{constructor(){this.type=0}}class ViewCompositionEndEvent{constructor(){this.type=1}}class ViewConfigurationChangedEvent{constructor(e){this.type=2,this._source=e}hasChanged(e){return this._source.hasChanged(e)}}class ViewCursorStateChangedEvent{constructor(e,t,i){this.selections=e,this.modelSelections=t,this.reason=i,this.type=3}}class ViewDecorationsChangedEvent{constructor(e){this.type=4,e?(this.affectsMinimap=e.affectsMinimap,this.affectsOverviewRuler=e.affectsOverviewRuler,this.affectsGlyphMargin=e.affectsGlyphMargin):(this.affectsMinimap=!0,this.affectsOverviewRuler=!0,this.affectsGlyphMargin=!0)}}class ViewFlushedEvent{constructor(){this.type=5}}class ViewFocusChangedEvent{constructor(e){this.type=6,this.isFocused=e}}class ViewLanguageConfigurationEvent{constructor(){this.type=7}}class ViewLineMappingChangedEvent{constructor(){this.type=8}}class ViewLinesChangedEvent{constructor(e,t){this.fromLineNumber=e,this.count=t,this.type=9}}class ViewLinesDeletedEvent{constructor(e,t){this.type=10,this.fromLineNumber=e,this.toLineNumber=t}}class ViewLinesInsertedEvent{constructor(e,t){this.type=11,this.fromLineNumber=e,this.toLineNumber=t}}class ViewRevealRangeRequestEvent{constructor(e,t,i,n,r,s,a){this.source=e,this.minimalReveal=t,this.range=i,this.selections=n,this.verticalType=r,this.revealHorizontal=s,this.scrollType=a,this.type=12}}class ViewScrollChangedEvent{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 ViewThemeChangedEvent{constructor(e){this.theme=e,this.type=14}}class ViewTokensChangedEvent{constructor(e){this.type=15,this.ranges=e}}class ViewTokensColorsChangedEvent{constructor(){this.type=16}}let ViewZonesChangedEvent$1=class{constructor(){this.type=17}};class ViewModelEventDispatcher extends Disposable{constructor(){super(),this._onEvent=this._register(new Emitter$1),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++){const n=this._outgoingEvents[t].kind===e.kind?this._outgoingEvents[t].attemptToMerge(e):null;if(n){this._outgoingEvents[t]=n;return}}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++,this._collectorCnt===1&&(this._collector=new ViewModelEventsCollector),this._collector}endEmitViewEvents(){if(this._collectorCnt--,this._collectorCnt===0){const e=this._collector.outgoingEvents,t=this._collector.viewEvents;this._collector=null;for(const i of e)this._addOutgoingEvent(i);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 ViewModelEventsCollector{constructor(){this.viewEvents=[],this.outgoingEvents=[]}emitViewEvent(e){this.viewEvents.push(e)}emitOutgoingEvent(e){this.outgoingEvents.push(e)}}class ContentSizeChangedEvent{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}attemptToMerge(e){return e.kind!==this.kind?null:new ContentSizeChangedEvent(this._oldContentWidth,this._oldContentHeight,e.contentWidth,e.contentHeight)}}class FocusChangedEvent{constructor(e,t){this.kind=1,this.oldHasFocus=e,this.hasFocus=t}isNoOp(){return this.oldHasFocus===this.hasFocus}attemptToMerge(e){return e.kind!==this.kind?null:new FocusChangedEvent(this.oldHasFocus,e.hasFocus)}}class ScrollChangedEvent{constructor(e,t,i,n,r,s,a,l){this.kind=2,this._oldScrollWidth=e,this._oldScrollLeft=t,this._oldScrollHeight=i,this._oldScrollTop=n,this.scrollWidth=r,this.scrollLeft=s,this.scrollHeight=a,this.scrollTop=l,this.scrollWidthChanged=this._oldScrollWidth!==this.scrollWidth,this.scrollLeftChanged=this._oldScrollLeft!==this.scrollLeft,this.scrollHeightChanged=this._oldScrollHeight!==this.scrollHeight,this.scrollTopChanged=this._oldScrollTop!==this.scrollTop}isNoOp(){return!this.scrollWidthChanged&&!this.scrollLeftChanged&&!this.scrollHeightChanged&&!this.scrollTopChanged}attemptToMerge(e){return e.kind!==this.kind?null:new ScrollChangedEvent(this._oldScrollWidth,this._oldScrollLeft,this._oldScrollHeight,this._oldScrollTop,e.scrollWidth,e.scrollLeft,e.scrollHeight,e.scrollTop)}}class ViewZonesChangedEvent{constructor(){this.kind=3}isNoOp(){return!1}attemptToMerge(e){return e.kind!==this.kind?null:this}}class HiddenAreasChangedEvent{constructor(){this.kind=4}isNoOp(){return!1}attemptToMerge(e){return e.kind!==this.kind?null:this}}class CursorStateChangedEvent{constructor(e,t,i,n,r,s,a){this.kind=6,this.oldSelections=e,this.selections=t,this.oldModelVersionId=i,this.modelVersionId=n,this.source=r,this.reason=s,this.reachedMaxCursorCount=a}static _selectionsAreEqual(e,t){if(!e&&!t)return!0;if(!e||!t)return!1;const i=e.length,n=t.length;if(i!==n)return!1;for(let r=0;r<i;r++)if(!e[r].equalsSelection(t[r]))return!1;return!0}isNoOp(){return CursorStateChangedEvent._selectionsAreEqual(this.oldSelections,this.selections)&&this.oldModelVersionId===this.modelVersionId}attemptToMerge(e){return e.kind!==this.kind?null:new CursorStateChangedEvent(this.oldSelections,e.selections,this.oldModelVersionId,e.modelVersionId,e.source,e.reason,this.reachedMaxCursorCount||e.reachedMaxCursorCount)}}class ReadOnlyEditAttemptEvent{constructor(){this.kind=5}isNoOp(){return!1}attemptToMerge(e){return e.kind!==this.kind?null:this}}class ModelDecorationsChangedEvent{constructor(e){this.event=e,this.kind=7}isNoOp(){return!1}attemptToMerge(e){return null}}class ModelLanguageChangedEvent{constructor(e){this.event=e,this.kind=8}isNoOp(){return!1}attemptToMerge(e){return null}}class ModelLanguageConfigurationChangedEvent{constructor(e){this.event=e,this.kind=9}isNoOp(){return!1}attemptToMerge(e){return null}}class ModelContentChangedEvent{constructor(e){this.event=e,this.kind=10}isNoOp(){return!1}attemptToMerge(e){return null}}class ModelOptionsChangedEvent{constructor(e){this.event=e,this.kind=11}isNoOp(){return!1}attemptToMerge(e){return null}}class ModelTokensChangedEvent{constructor(e){this.event=e,this.kind=12}isNoOp(){return!1}attemptToMerge(e){return null}}class CursorsController extends Disposable{constructor(e,t,i,n){super(),this._model=e,this._knownModelVersionId=this._model.getVersionId(),this._viewModel=t,this._coordinatesConverter=i,this.context=new CursorContext(this._model,this._viewModel,this._coordinatesConverter,n),this._cursors=new CursorCollection(this.context),this._hasFocus=!1,this._isHandling=!1,this._compositionState=null,this._columnSelectData=null,this._autoClosedActions=[],this._prevEditOperationType=0}dispose(){this._cursors.dispose(),this._autoClosedActions=dispose(this._autoClosedActions),super.dispose()}updateConfiguration(e){this.context=new CursorContext(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){const 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 r=!1;const s=this.context.cursorConfig.multiCursorLimit;n!==null&&n.length>s&&(n=n.slice(0,s),r=!0);const a=CursorModelState.from(this._model,this);return this._cursors.setStates(n),this._cursors.normalize(),this._columnSelectData=null,this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(e,t,i,a,r)}setCursorColumnSelectData(e){this._columnSelectData=e}revealPrimary(e,t,i,n,r,s){const a=this._cursors.getViewPositions();let l=null,d=null;a.length>1?d=this._cursors.getViewSelections():l=Range$2.fromPositions(a[0],a[0]),e.emitViewEvent(new ViewRevealRangeRequestEvent(t,i,l,d,n,r,s))}saveState(){const e=[],t=this._cursors.getSelections();for(let i=0,n=t.length;i<n;i++){const r=t[i];e.push({inSelectionMode:!r.isEmpty(),selectionStart:{lineNumber:r.selectionStartLineNumber,column:r.selectionStartColumn},position:{lineNumber:r.positionLineNumber,column:r.positionColumn}})}return e}restoreState(e,t){const i=[];for(let n=0,r=t.length;n<r;n++){const s=t[n];let a=1,l=1;s.position&&s.position.lineNumber&&(a=s.position.lineNumber),s.position&&s.position.column&&(l=s.position.column);let d=a,c=l;s.selectionStart&&s.selectionStart.lineNumber&&(d=s.selectionStart.lineNumber),s.selectionStart&&s.selectionStart.column&&(c=s.selectionStart.column),i.push({selectionStartLineNumber:d,selectionStartColumn:c,positionLineNumber:a,positionColumn:l})}this.setStates(e,"restoreState",0,CursorState$1.fromModelSelections(i)),this.revealPrimary(e,"restoreState",!1,0,!0,1)}onModelContentChanged(e,t){if(t instanceof ModelInjectedTextChangedEvent){if(this._isHandling)return;this._isHandling=!0;try{this.setStates(e,"modelChange",0,this.getCursorStates())}finally{this._isHandling=!1}}else{const i=t.rawContentChangedEvent;if(this._knownModelVersionId=i.versionId,this._isHandling)return;const n=i.containsEvent(1);if(this._prevEditOperationType=0,n)this._cursors.dispose(),this._cursors=new CursorCollection(this.context),this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(e,"model",1,null,!1);else if(this._hasFocus&&i.resultingSelection&&i.resultingSelection.length>0){const r=CursorState$1.fromModelSelections(i.resultingSelection);this.setStates(e,"modelChange",i.isUndoing?5:i.isRedoing?6:2,r)&&this.revealPrimary(e,"modelChange",!1,0,!0,0)}else{const r=this._cursors.readSelectionFromMarkers();this.setStates(e,"modelChange",2,CursorState$1.fromModelSelections(r))}}}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:this.context.cursorConfig.visibleColumnFromColumn(this._viewModel,t),toViewLineNumber:i.lineNumber,toViewVisualColumn:this.context.cursorConfig.visibleColumnFromColumn(this._viewModel,i)}}getSelections(){return this._cursors.getSelections()}setSelections(e,t,i,n){this.setStates(e,t,n,CursorState$1.fromModelSelections(i))}getPrevEditOperationType(){return this._prevEditOperationType}setPrevEditOperationType(e){this._prevEditOperationType=e}_pushAutoClosedAction(e,t){const i=[],n=[];for(let a=0,l=e.length;a<l;a++)i.push({range:e[a],options:{description:"auto-closed-character",inlineClassName:"auto-closed-character",stickiness:1}}),n.push({range:t[a],options:{description:"auto-closed-enclosing",stickiness:1}});const r=this._model.deltaDecorations([],i),s=this._model.deltaDecorations([],n);this._autoClosedActions.push(new AutoClosedAction(this._model,r,s))}_executeEditOperation(e){if(!e)return;e.shouldPushStackElementBefore&&this._model.pushStackElement();const t=CommandExecutor.executeCommands(this._model,this._cursors.getSelections(),e.commands);if(t){this._interpretCommandResult(t);const i=[],n=[];for(let r=0;r<e.commands.length;r++){const s=e.commands[r];s instanceof TypeWithAutoClosingCommand&&s.enclosingRange&&s.closeCharacterRange&&(i.push(s.closeCharacterRange),n.push(s.enclosingRange))}i.length>0&&this._pushAutoClosedAction(i,n),this._prevEditOperationType=e.type}e.shouldPushStackElementAfter&&this._model.pushStackElement()}_interpretCommandResult(e){(!e||e.length===0)&&(e=this._cursors.readSelectionFromMarkers()),this._columnSelectData=null,this._cursors.setSelections(e),this._cursors.normalize()}_emitStateChangedIfNecessary(e,t,i,n,r){const s=CursorModelState.from(this._model,this);if(s.equals(n))return!1;const a=this._cursors.getSelections(),l=this._cursors.getViewSelections();if(e.emitViewEvent(new ViewCursorStateChangedEvent(l,a,i)),!n||n.cursorState.length!==s.cursorState.length||s.cursorState.some((d,c)=>!d.modelState.equals(n.cursorState[c].modelState))){const d=n?n.cursorState.map(u=>u.modelState.selection):null,c=n?n.modelVersionId:0;e.emitOutgoingEvent(new CursorStateChangedEvent(d,a,c,s.modelVersionId,t||"keyboard",i,r))}return!0}_findAutoClosingPairs(e){if(!e.length)return null;const t=[];for(let i=0,n=e.length;i<n;i++){const r=e[i];if(!r.text||r.text.indexOf(`
- `)>=0)return null;const s=r.text.match(/([)\]}>'"`])([^)\]}>'"`]*)$/);if(!s)return null;const a=s[1],l=this.context.cursorConfig.autoClosingPairs.autoClosingPairsCloseSingleChar.get(a);if(!l||l.length!==1)return null;const d=l[0].open,c=r.text.length-s[2].length-1,u=r.text.lastIndexOf(d,c-1);if(u===-1)return null;t.push([u,c])}return t}executeEdits(e,t,i,n){let r=null;t==="snippet"&&(r=this._findAutoClosingPairs(i)),r&&(i[0]._isTracked=!0);const s=[],a=[],l=this._model.pushEditOperations(this.getSelections(),i,d=>{if(r)for(let u=0,g=r.length;u<g;u++){const[f,p]=r[u],m=d[u],b=m.range.startLineNumber,_=m.range.startColumn-1+f,C=m.range.startColumn-1+p;s.push(new Range$2(b,C+1,b,C+2)),a.push(new Range$2(b,_+1,b,C+2))}const c=n(d);return c&&(this._isHandling=!0),c});l&&(this._isHandling=!1,this.setSelections(e,t,l,0)),s.length>0&&this._pushAutoClosedAction(s,a)}_executeEdit(e,t,i,n=0){if(this.context.cursorConfig.readOnly)return;const r=CursorModelState.from(this._model,this);this._cursors.stopTrackingSelections(),this._isHandling=!0;try{this._cursors.ensureValidState(),e()}catch(s){onUnexpectedError(s)}this._isHandling=!1,this._cursors.startTrackingSelections(),this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(t,i,n,r,!1)&&this.revealPrimary(t,i,!1,0,!0,0)}getAutoClosedCharacters(){return AutoClosedAction.getAllAutoClosedCharacters(this._autoClosedActions)}startComposition(e){this._compositionState=new CompositionState(this._model,this.getSelections())}endComposition(e,t){const i=this._compositionState?this._compositionState.deduceOutcome(this._model,this.getSelections()):null;this._compositionState=null,this._executeEdit(()=>{t==="keyboard"&&this._executeEditOperation(TypeOperations.compositionEndWithInterceptors(this._prevEditOperationType,this.context.cursorConfig,this._model,i,this.getSelections(),this.getAutoClosedCharacters()))},e,t)}type(e,t,i){this._executeEdit(()=>{if(i==="keyboard"){const n=t.length;let r=0;for(;r<n;){const s=nextCharLength(t,r),a=t.substr(r,s);this._executeEditOperation(TypeOperations.typeWithInterceptors(!!this._compositionState,this._prevEditOperationType,this.context.cursorConfig,this._model,this.getSelections(),this.getAutoClosedCharacters(),a)),r+=s}}else this._executeEditOperation(TypeOperations.typeWithoutInterceptors(this._prevEditOperationType,this.context.cursorConfig,this._model,this.getSelections(),t))},e,i)}compositionType(e,t,i,n,r,s){if(t.length===0&&i===0&&n===0){if(r!==0){const a=this.getSelections().map(l=>{const d=l.getPosition();return new Selection$1(d.lineNumber,d.column+r,d.lineNumber,d.column+r)});this.setSelections(e,s,a,0)}return}this._executeEdit(()=>{this._executeEditOperation(TypeOperations.compositionType(this._prevEditOperationType,this.context.cursorConfig,this._model,this.getSelections(),t,i,n,r))},e,s)}paste(e,t,i,n,r){this._executeEdit(()=>{this._executeEditOperation(TypeOperations.paste(this.context.cursorConfig,this._model,this.getSelections(),t,i,n||[]))},e,r,4)}cut(e,t){this._executeEdit(()=>{this._executeEditOperation(DeleteOperations.cut(this.context.cursorConfig,this._model,this.getSelections()))},e,t)}executeCommand(e,t,i){this._executeEdit(()=>{this._cursors.killSecondaryCursors(),this._executeEditOperation(new EditOperationResult(0,[t],{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))},e,i)}executeCommands(e,t,i){this._executeEdit(()=>{this._executeEditOperation(new EditOperationResult(0,t,{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))},e,i)}}class CursorModelState{static from(e,t){return new CursorModelState(e.getVersionId(),t.getCursorStates())}constructor(e,t){this.modelVersionId=e,this.cursorState=t}equals(e){if(!e||this.modelVersionId!==e.modelVersionId||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 AutoClosedAction{static getAllAutoClosedCharacters(e){let t=[];for(const i of e)t=t.concat(i.getAutoClosedCharactersRanges());return t}constructor(e,t,i){this._model=e,this._autoClosedCharactersDecorations=t,this._autoClosedEnclosingDecorations=i}dispose(){this._autoClosedCharactersDecorations=this._model.deltaDecorations(this._autoClosedCharactersDecorations,[]),this._autoClosedEnclosingDecorations=this._model.deltaDecorations(this._autoClosedEnclosingDecorations,[])}getAutoClosedCharactersRanges(){const 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){const t=[];for(let i=0;i<this._autoClosedEnclosingDecorations.length;i++){const n=this._model.getDecorationRange(this._autoClosedEnclosingDecorations[i]);if(n&&(t.push(n),n.startLineNumber!==n.endLineNumber))return!1}t.sort(Range$2.compareRangesUsingStarts),e.sort(Range$2.compareRangesUsingStarts);for(let i=0;i<e.length;i++)if(i>=t.length||!t[i].strictContainsRange(e[i]))return!1;return!0}}class CommandExecutor{static executeCommands(e,t,i){const n={model:e,selectionsBefore:t,trackedRanges:[],trackedRangesDirection:[]},r=this._innerExecuteCommands(n,i);for(let s=0,a=n.trackedRanges.length;s<a;s++)n.model._setTrackedRange(n.trackedRanges[s],null,0);return r}static _innerExecuteCommands(e,t){if(this._arrayIsEmpty(t))return null;const i=this._getEditOperations(e,t);if(i.operations.length===0)return null;const n=i.operations,r=this._getLoserCursorMap(n);if(r.hasOwnProperty("0"))return console.warn("Ignoring commands"),null;const s=[];for(let d=0,c=n.length;d<c;d++)r.hasOwnProperty(n[d].identifier.major.toString())||s.push(n[d]);i.hadTrackedEditOperation&&s.length>0&&(s[0]._isTracked=!0);let a=e.model.pushEditOperations(e.selectionsBefore,s,d=>{const c=[];for(let f=0;f<e.selectionsBefore.length;f++)c[f]=[];for(const f of d)f.identifier&&c[f.identifier.major].push(f);const u=(f,p)=>f.identifier.minor-p.identifier.minor,g=[];for(let f=0;f<e.selectionsBefore.length;f++)c[f].length>0?(c[f].sort(u),g[f]=t[f].computeCursorState(e.model,{getInverseEditOperations:()=>c[f],getTrackedSelection:p=>{const m=parseInt(p,10),b=e.model._getTrackedRange(e.trackedRanges[m]);return e.trackedRangesDirection[m]===0?new Selection$1(b.startLineNumber,b.startColumn,b.endLineNumber,b.endColumn):new Selection$1(b.endLineNumber,b.endColumn,b.startLineNumber,b.startColumn)}})):g[f]=e.selectionsBefore[f];return g});a||(a=e.selectionsBefore);const l=[];for(const d in r)r.hasOwnProperty(d)&&l.push(parseInt(d,10));l.sort((d,c)=>c-d);for(const d of l)a.splice(d,1);return a}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 r=0,s=t.length;r<s;r++){const a=t[r];if(a){const l=this._getEditOperationsFromCommand(e,r,a);i=i.concat(l.operations),n=n||l.hadTrackedEditOperation}}return{operations:i,hadTrackedEditOperation:n}}static _getEditOperationsFromCommand(e,t,i){const n=[];let r=0;const s=(u,g,f=!1)=>{Range$2.isEmpty(u)&&g===""||n.push({identifier:{major:t,minor:r++},range:u,text:g,forceMoveMarkers:f,isAutoWhitespaceEdit:i.insertsAutoWhitespace})};let a=!1;const c={addEditOperation:s,addTrackedEditOperation:(u,g,f)=>{a=!0,s(u,g,f)},trackSelection:(u,g)=>{const f=Selection$1.liftSelection(u);let p;if(f.isEmpty())if(typeof g=="boolean")g?p=2:p=3;else{const _=e.model.getLineMaxColumn(f.startLineNumber);f.startColumn===_?p=2:p=3}else p=1;const m=e.trackedRanges.length,b=e.model._setTrackedRange(null,f,p);return e.trackedRanges[m]=b,e.trackedRangesDirection[m]=f.getDirection(),m.toString()}};try{i.getEditOperations(e.model,c)}catch(u){return onUnexpectedError(u),{operations:[],hadTrackedEditOperation:!1}}return{operations:n,hadTrackedEditOperation:a}}static _getLoserCursorMap(e){e=e.slice(0),e.sort((i,n)=>-Range$2.compareRangesUsingEnds(i.range,n.range));const t={};for(let i=1;i<e.length;i++){const n=e[i-1],r=e[i];if(Range$2.getStartPosition(n.range).isBefore(Range$2.getEndPosition(r.range))){let s;n.identifier.major>r.identifier.major?s=n.identifier.major:s=r.identifier.major,t[s.toString()]=!0;for(let a=0;a<e.length;a++)e[a].identifier.major===s&&(e.splice(a,1),a<i&&i--,a--);i>0&&i--}}return t}}class CompositionLineState{constructor(e,t,i){this.text=e,this.startSelection=t,this.endSelection=i}}class CompositionState{static _capture(e,t){const i=[];for(const n of t){if(n.startLineNumber!==n.endLineNumber)return null;i.push(new CompositionLineState(e.getLineContent(n.startLineNumber),n.startColumn-1,n.endColumn-1))}return i}constructor(e,t){this._original=CompositionState._capture(e,t)}deduceOutcome(e,t){if(!this._original)return null;const i=CompositionState._capture(e,t);if(!i||this._original.length!==i.length)return null;const n=[];for(let r=0,s=this._original.length;r<s;r++)n.push(CompositionState._deduceOutcome(this._original[r],i[r]));return n}static _deduceOutcome(e,t){const i=Math.min(e.startSelection,t.startSelection,commonPrefixLength(e.text,t.text)),n=Math.min(e.text.length-e.endSelection,t.text.length-t.endSelection,commonSuffixLength(e.text,t.text)),r=e.text.substring(i,e.text.length-n),s=t.text.substring(i,t.text.length-n);return new CompositionOutcome(r,e.startSelection-i,e.endSelection-i,s,t.startSelection-i,t.endSelection-i)}}var __awaiter$1v=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};const fallback={getInitialState:()=>NullState,tokenizeEncoded:(o,e,t)=>nullTokenizeEncoded(0,t)};function tokenizeToString(o,e,t){return __awaiter$1v(this,void 0,void 0,function*(){if(!t)return _tokenizeToString(e,o.languageIdCodec,fallback);const i=yield TokenizationRegistry.getOrCreate(t);return _tokenizeToString(e,o.languageIdCodec,i||fallback)})}function tokenizeLineToHTML(o,e,t,i,n,r,s){let a="<div>",l=i,d=0,c=!0;for(let u=0,g=e.getCount();u<g;u++){const f=e.getEndOffset(u);if(f<=i)continue;let p="";for(;l<f&&l<n;l++){const m=o.charCodeAt(l);switch(m){case 9:{let b=r-(l+d)%r;for(d+=b-1;b>0;)s&&c?(p+=" ",c=!1):(p+=" ",c=!0),b--;break}case 60:p+="<",c=!1;break;case 62:p+=">",c=!1;break;case 38:p+="&",c=!1;break;case 0:p+="�",c=!1;break;case 65279:case 8232:case 8233:case 133:p+="�",c=!1;break;case 13:p+="​",c=!1;break;case 32:s&&c?(p+=" ",c=!1):(p+=" ",c=!0);break;default:p+=String.fromCharCode(m),c=!1}}if(a+=`<span style="${e.getInlineStyle(u,t)}">${p}</span>`,f>n||l>=n)break}return a+="</div>",a}function _tokenizeToString(o,e,t){let i='<div class="monaco-tokenized-source">';const n=splitLines(o);let r=t.getInitialState();for(let s=0,a=n.length;s<a;s++){const l=n[s];s>0&&(i+="<br/>");const d=t.tokenizeEncoded(l,!0,r);LineTokens.convertToEndOffset(d.tokens,l.length);const u=new LineTokens(d.tokens,l,e).inflate();let g=0;for(let f=0,p=u.getCount();f<p;f++){const m=u.getClassName(f),b=u.getEndOffset(f);i+=`<span class="${m}">${escape(l.substring(g,b))}</span>`,g=b}r=d.endState}return i+="</div>",i}class PendingChanges{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 EditorWhitespace{constructor(e,t,i,n,r){this.id=e,this.afterLineNumber=t,this.ordinal=i,this.height=n,this.minWidth=r,this.prefixSum=0}}let LinesLayout$1=class dt{constructor(e,t,i,n){this._instanceId=singleLetterHash(++dt.INSTANCE_COUNT),this._pendingChanges=new PendingChanges,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,r=e.length;for(;n<r;){const s=n+r>>>1;t===e[s].afterLineNumber?i<e[s].ordinal?r=s:n=s+1:t<e[s].afterLineNumber?r=s:n=s+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:(n,r,s,a)=>{t=!0,n=n|0,r=r|0,s=s|0,a=a|0;const l=this._instanceId+ ++this._lastWhitespaceId;return this._pendingChanges.insert(new EditorWhitespace(l,n,r,s,a)),l},changeOneWhitespace:(n,r,s)=>{t=!0,r=r|0,s=s|0,this._pendingChanges.change({id:n,newAfterLineNumber:r,newHeight:s})},removeWhitespace:n=>{t=!0,this._pendingChanges.remove({id:n})}})}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 l of e)this._insertWhitespace(l);for(const l of t)this._changeOneWhitespace(l.id,l.newAfterLineNumber,l.newHeight);for(const l of i){const d=this._findWhitespaceIndex(l.id);d!==-1&&this._removeWhitespace(d)}return}const n=new Set;for(const l of i)n.add(l.id);const r=new Map;for(const l of t)r.set(l.id,l);const s=l=>{const d=[];for(const c of l)if(!n.has(c.id)){if(r.has(c.id)){const u=r.get(c.id);c.afterLineNumber=u.newAfterLineNumber,c.height=u.newHeight}d.push(c)}return d},a=s(this._arr).concat(s(e));a.sort((l,d)=>l.afterLineNumber===d.afterLineNumber?l.ordinal-d.ordinal:l.afterLineNumber-d.afterLineNumber),this._arr=a,this._prefixSumValidIndex=-1}_checkPendingChanges(){this._pendingChanges.mustCommit()&&this._pendingChanges.commit(this)}_insertWhitespace(e){const t=dt.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(n!==-1&&(this._arr[n].height!==i&&(this._arr[n].height=i,this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,n-1)),this._arr[n].afterLineNumber!==t)){const r=this._arr[n];this._removeWhitespace(n),r.afterLineNumber=t,this._insertWhitespace(r)}}_removeWhitespace(e){this._arr.splice(e,1),this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,e-1)}onLinesDeleted(e,t){this._checkPendingChanges(),e=e|0,t=t|0,this._lineCount-=t-e+1;for(let i=0,n=this._arr.length;i<n;i++){const r=this._arr[i].afterLineNumber;e<=r&&r<=t?this._arr[i].afterLineNumber=e-1:r>t&&(this._arr[i].afterLineNumber-=t-e+1)}}onLinesInserted(e,t){this._checkPendingChanges(),e=e|0,t=t|0,this._lineCount+=t-e+1;for(let i=0,n=this._arr.length;i<n;i++){const r=this._arr[i].afterLineNumber;e<=r&&(this._arr[i].afterLineNumber+=t-e+1)}}getWhitespacesTotalHeight(){return this._checkPendingChanges(),this._arr.length===0?0:this.getWhitespacesAccumulatedHeight(this._arr.length-1)}getWhitespacesAccumulatedHeight(e){this._checkPendingChanges(),e=e|0;let t=Math.max(0,this._prefixSumValidIndex+1);t===0&&(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(){this._checkPendingChanges();const e=this._lineHeight*this._lineCount,t=this.getWhitespacesTotalHeight();return e+t+this._paddingTop+this._paddingBottom}getWhitespaceAccumulatedHeightBeforeLineNumber(e){this._checkPendingChanges(),e=e|0;const t=this._findLastWhitespaceBeforeLineNumber(e);return t===-1?0:this.getWhitespacesAccumulatedHeight(t)}_findLastWhitespaceBeforeLineNumber(e){e=e|0;const t=this._arr;let i=0,n=t.length-1;for(;i<=n;){const s=(n-i|0)/2|0,a=i+s|0;if(t[a].afterLineNumber<e){if(a+1>=t.length||t[a+1].afterLineNumber>=e)return a;i=a+1|0}else n=a-1|0}return-1}_findFirstWhitespaceAfterLineNumber(e){e=e|0;const i=this._findLastWhitespaceBeforeLineNumber(e)+1;return i<this._arr.length?i:-1}getFirstWhitespaceIndexAfterLineNumber(e){return this._checkPendingChanges(),e=e|0,this._findFirstWhitespaceAfterLineNumber(e)}getVerticalOffsetForLineNumber(e,t=!1){this._checkPendingChanges(),e=e|0;let i;e>1?i=this._lineHeight*(e-1):i=0;const n=this.getWhitespaceAccumulatedHeightBeforeLineNumber(e-(t?1:0));return i+n+this._paddingTop}getVerticalOffsetAfterLineNumber(e,t=!1){this._checkPendingChanges(),e=e|0;const i=this._lineHeight*e,n=this.getWhitespaceAccumulatedHeightBeforeLineNumber(e+(t?1:0));return i+n+this._paddingTop}getWhitespaceMinWidth(){if(this._checkPendingChanges(),this._minWidth===-1){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){this._checkPendingChanges();const t=this.getLinesTotalHeight();return e>t}isInTopPadding(e){return this._paddingTop===0?!1:(this._checkPendingChanges(),e<this._paddingTop)}isInBottomPadding(e){if(this._paddingBottom===0)return!1;this._checkPendingChanges();const t=this.getLinesTotalHeight();return e>=t-this._paddingBottom}getLineNumberAtOrAfterVerticalOffset(e){if(this._checkPendingChanges(),e=e|0,e<0)return 1;const t=this._lineCount|0,i=this._lineHeight;let n=1,r=t;for(;n<r;){const s=(n+r)/2|0,a=this.getVerticalOffsetForLineNumber(s)|0;if(e>=a+i)n=s+1;else{if(e>=a)return s;r=s}}return n>t?t:n}getLinesViewportData(e,t){this._checkPendingChanges(),e=e|0,t=t|0;const i=this._lineHeight,n=this.getLineNumberAtOrAfterVerticalOffset(e)|0,r=this.getVerticalOffsetForLineNumber(n)|0;let s=this._lineCount|0,a=this.getFirstWhitespaceIndexAfterLineNumber(n)|0;const l=this.getWhitespacesCount()|0;let d,c;a===-1?(a=l,c=s+1,d=0):(c=this.getAfterLineNumberForWhitespaceIndex(a)|0,d=this.getHeightForWhitespaceIndex(a)|0);let u=r,g=u;const f=5e5;let p=0;r>=f&&(p=Math.floor(r/f)*f,p=Math.floor(p/i)*i,g-=p);const m=[],b=e+(t-e)/2;let _=-1;for(let E=n;E<=s;E++){if(_===-1){const x=u,L=u+i;(x<=b&&b<L||x>b)&&(_=E)}for(u+=i,m[E-n]=g,g+=i;c===E;)g+=d,u+=d,a++,a>=l?c=s+1:(c=this.getAfterLineNumberForWhitespaceIndex(a)|0,d=this.getHeightForWhitespaceIndex(a)|0);if(u>=t){s=E;break}}_===-1&&(_=s);const C=this.getVerticalOffsetForLineNumber(s)|0;let S=n,y=s;return S<y&&r<e&&S++,S<y&&C+i>t&&y--,{bigNumbersDelta:p,startLineNumber:n,endLineNumber:s,relativeVerticalOffset:m,centeredLineNumber:_,completelyVisibleStartLineNumber:S,completelyVisibleEndLineNumber:y}}getVerticalOffsetForWhitespaceIndex(e){this._checkPendingChanges(),e=e|0;const t=this.getAfterLineNumberForWhitespaceIndex(e);let i;t>=1?i=this._lineHeight*t:i=0;let n;return e>0?n=this.getWhitespacesAccumulatedHeight(e-1):n=0,i+n+this._paddingTop}getWhitespaceIndexAtOrAfterVerticallOffset(e){this._checkPendingChanges(),e=e|0;let t=0,i=this.getWhitespacesCount()-1;if(i<0)return-1;const n=this.getVerticalOffsetForWhitespaceIndex(i),r=this.getHeightForWhitespaceIndex(i);if(e>=n+r)return-1;for(;t<i;){const s=Math.floor((t+i)/2),a=this.getVerticalOffsetForWhitespaceIndex(s),l=this.getHeightForWhitespaceIndex(s);if(e>=a+l)t=s+1;else{if(e>=a)return s;i=s}}return t}getWhitespaceAtVerticalOffset(e){this._checkPendingChanges(),e=e|0;const t=this.getWhitespaceIndexAtOrAfterVerticallOffset(e);if(t<0||t>=this.getWhitespacesCount())return null;const i=this.getVerticalOffsetForWhitespaceIndex(t);if(i>e)return null;const n=this.getHeightForWhitespaceIndex(t),r=this.getIdForWhitespaceIndex(t),s=this.getAfterLineNumberForWhitespaceIndex(t);return{id:r,afterLineNumber:s,verticalOffset:i,height:n}}getWhitespaceViewportData(e,t){this._checkPendingChanges(),e=e|0,t=t|0;const i=this.getWhitespaceIndexAtOrAfterVerticallOffset(e),n=this.getWhitespacesCount()-1;if(i<0)return[];const r=[];for(let s=i;s<=n;s++){const a=this.getVerticalOffsetForWhitespaceIndex(s),l=this.getHeightForWhitespaceIndex(s);if(a>=t)break;r.push({id:this.getIdForWhitespaceIndex(s),afterLineNumber:this.getAfterLineNumberForWhitespaceIndex(s),verticalOffset:a,height:l})}return r}getWhitespaces(){return this._checkPendingChanges(),this._arr.slice(0)}getWhitespacesCount(){return this._checkPendingChanges(),this._arr.length}getIdForWhitespaceIndex(e){return this._checkPendingChanges(),e=e|0,this._arr[e].id}getAfterLineNumberForWhitespaceIndex(e){return this._checkPendingChanges(),e=e|0,this._arr[e].afterLineNumber}getHeightForWhitespaceIndex(e){return this._checkPendingChanges(),e=e|0,this._arr[e].height}};LinesLayout$1.INSTANCE_COUNT=0;const SMOOTH_SCROLLING_TIME=125;class EditorScrollDimensions{constructor(e,t,i,n){e=e|0,t=t|0,i=i|0,n=n|0,e<0&&(e=0),t<0&&(t=0),i<0&&(i=0),n<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 EditorScrollable extends Disposable{constructor(e,t){super(),this._onDidContentSizeChange=this._register(new Emitter$1),this.onDidContentSizeChange=this._onDidContentSizeChange.event,this._dimensions=new EditorScrollDimensions(0,0,0,0),this._scrollable=this._register(new Scrollable({forceIntegerValues:!0,smoothScrollDuration:e,scheduleAtNextAnimationFrame: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 ContentSizeChangedEvent(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)}hasPendingScrollAnimation(){return this._scrollable.hasPendingScrollAnimation()}}class ViewLayout extends Disposable{constructor(e,t,i){super(),this._configuration=e;const n=this._configuration.options,r=n.get(143),s=n.get(83);this._linesLayout=new LinesLayout$1(t,n.get(66),s.top,s.bottom),this._maxLineWidth=0,this._overlayWidgetsMinWidth=0,this._scrollable=this._register(new EditorScrollable(0,i)),this._configureSmoothScrollDuration(),this._scrollable.setScrollDimensions(new EditorScrollDimensions(r.contentWidth,0,r.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(113)?SMOOTH_SCROLLING_TIME:0)}onConfigurationChanged(e){const t=this._configuration.options;if(e.hasChanged(66)&&this._linesLayout.setLineHeight(t.get(66)),e.hasChanged(83)){const i=t.get(83);this._linesLayout.setPadding(i.top,i.bottom)}if(e.hasChanged(143)){const i=t.get(143),n=i.contentWidth,r=i.height,s=this._scrollable.getScrollDimensions(),a=s.contentWidth;this._scrollable.setScrollDimensions(new EditorScrollDimensions(n,s.contentWidth,r,this._getContentHeight(n,r,a)))}else this._updateHeight();e.hasChanged(113)&&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 n=this._configuration.options.get(102);return n.horizontal===2||e>=t?0:n.horizontalScrollbarSize}_getContentHeight(e,t,i){const n=this._configuration.options;let r=this._linesLayout.getLinesTotalHeight();return n.get(104)?r+=Math.max(0,t-n.get(66)-n.get(83).bottom):r+=this._getHorizontalScrollbarHeight(e,i),r}_updateHeight(){const e=this._scrollable.getScrollDimensions(),t=e.width,i=e.height,n=e.contentWidth;this._scrollable.setScrollDimensions(new EditorScrollDimensions(t,e.contentWidth,i,this._getContentHeight(t,i,n)))}getCurrentViewport(){const e=this._scrollable.getScrollDimensions(),t=this._scrollable.getCurrentScrollPosition();return new Viewport(t.scrollTop,t.scrollLeft,e.width,e.height)}getFutureViewport(){const e=this._scrollable.getScrollDimensions(),t=this._scrollable.getFutureScrollPosition();return new Viewport(t.scrollTop,t.scrollLeft,e.width,e.height)}_computeContentWidth(){const e=this._configuration.options,t=this._maxLineWidth,i=e.get(144),n=e.get(50),r=e.get(143);if(i.isViewportWrapping){const s=e.get(72);return t>r.contentWidth+n.typicalHalfwidthCharacterWidth&&s.enabled&&s.side==="right"?t+r.verticalScrollbarWidth:t}else{const s=e.get(103)*n.typicalHalfwidthCharacterWidth,a=this._linesLayout.getWhitespaceMinWidth();return Math.max(t+s+r.verticalScrollbarWidth,a,this._overlayWidgetsMinWidth)}}setMaxLineWidth(e){this._maxLineWidth=e,this._updateContentWidth()}setOverlayWidgetsMinWidth(e){this._overlayWidgetsMinWidth=e,this._updateContentWidth()}_updateContentWidth(){const e=this._scrollable.getScrollDimensions();this._scrollable.setScrollDimensions(new EditorScrollDimensions(e.width,this._computeContentWidth(),e.height,e.contentHeight)),this._updateHeight()}saveState(){const e=this._scrollable.getFutureScrollPosition(),t=e.scrollTop,i=this._linesLayout.getLineNumberAtOrAfterVerticalOffset(t),n=this._linesLayout.getWhitespaceAccumulatedHeightBeforeLineNumber(i);return{scrollTop:t,scrollTopWithoutViewZones:t-n,scrollLeft:e.scrollLeft}}changeWhitespace(e){const t=this._linesLayout.changeWhitespace(e);return t&&this.onHeightMaybeChanged(),t}getVerticalOffsetForLineNumber(e,t=!1){return this._linesLayout.getVerticalOffsetForLineNumber(e,t)}getVerticalOffsetAfterLineNumber(e,t=!1){return this._linesLayout.getVerticalOffsetAfterLineNumber(e,t)}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){t===1?this._scrollable.setScrollPositionNow(e):this._scrollable.setScrollPositionSmooth(e)}hasPendingScrollAnimation(){return this._scrollable.hasPendingScrollAnimation()}deltaScrollNow(e,t){const i=this._scrollable.getCurrentScrollPosition();this._scrollable.setScrollPositionNow({scrollLeft:i.scrollLeft+e,scrollTop:i.scrollTop+t})}}class ViewModelDecorations{constructor(e,t,i,n,r){this.editorId=e,this.model=t,this.configuration=i,this._linesCollection=n,this._coordinatesConverter=r,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,r=e.options;let s;if(r.isWholeLine){const a=this._coordinatesConverter.convertModelPositionToViewPosition(new Position$1(n.startLineNumber,1),0,!1,!0),l=this._coordinatesConverter.convertModelPositionToViewPosition(new Position$1(n.endLineNumber,this.model.getLineMaxColumn(n.endLineNumber)),1);s=new Range$2(a.lineNumber,a.column,l.lineNumber,l.column)}else s=this._coordinatesConverter.convertModelRangeToViewRange(n,1);i=new ViewModelDecoration(s,r),this._decorationsCache[t]=i}return i}getMinimapDecorationsInRange(e){return this._getDecorationsInRange(e,!0,!1).decorations}getDecorationsViewportData(e){let t=this._cachedModelDecorationsResolver!==null;return t=t&&e.equalsRange(this._cachedModelDecorationsResolverViewRange),t||(this._cachedModelDecorationsResolver=this._getDecorationsInRange(e,!1,!1),this._cachedModelDecorationsResolverViewRange=e),this._cachedModelDecorationsResolver}getInlineDecorationsOnLine(e,t=!1,i=!1){const n=new Range$2(e,this._linesCollection.getViewLineMinColumn(e),e,this._linesCollection.getViewLineMaxColumn(e));return this._getDecorationsInRange(n,t,i).inlineDecorations[0]}_getDecorationsInRange(e,t,i){const n=this._linesCollection.getDecorationsInRange(e,this.editorId,filterValidationDecorations(this.configuration.options),t,i),r=e.startLineNumber,s=e.endLineNumber,a=[];let l=0;const d=[];for(let c=r;c<=s;c++)d[c-r]=[];for(let c=0,u=n.length;c<u;c++){const g=n[c],f=g.options;if(!isModelDecorationVisible(this.model,g))continue;const p=this._getOrCreateViewModelDecoration(g),m=p.range;if(a[l++]=p,f.inlineClassName){const b=new InlineDecoration(m,f.inlineClassName,f.inlineClassNameAffectsLetterSpacing?3:0),_=Math.max(r,m.startLineNumber),C=Math.min(s,m.endLineNumber);for(let S=_;S<=C;S++)d[S-r].push(b)}if(f.beforeContentClassName&&r<=m.startLineNumber&&m.startLineNumber<=s){const b=new InlineDecoration(new Range$2(m.startLineNumber,m.startColumn,m.startLineNumber,m.startColumn),f.beforeContentClassName,1);d[m.startLineNumber-r].push(b)}if(f.afterContentClassName&&r<=m.endLineNumber&&m.endLineNumber<=s){const b=new InlineDecoration(new Range$2(m.endLineNumber,m.endColumn,m.endLineNumber,m.endColumn),f.afterContentClassName,2);d[m.endLineNumber-r].push(b)}}return{decorations:a,inlineDecorations:d}}}function isModelDecorationVisible(o,e){return!(e.options.hideInCommentTokens&&isModelDecorationInComment(o,e)||e.options.hideInStringTokens&&isModelDecorationInString(o,e))}function isModelDecorationInComment(o,e){return testTokensInRange(o,e.range,t=>t===1)}function isModelDecorationInString(o,e){return testTokensInRange(o,e.range,t=>t===2)}function testTokensInRange(o,e,t){for(let i=e.startLineNumber;i<=e.endLineNumber;i++){const n=o.tokenization.getLineTokens(i),r=i===e.startLineNumber,s=i===e.endLineNumber;let a=r?n.findTokenIndexAtOffset(e.startColumn-1):0;for(;a<n.getCount()&&!(s&&n.getStartOffset(a)>e.endColumn-1);){if(!t(n.getStandardTokenType(a)))return!1;a++}}return!0}function createModelLineProjection(o,e){return o===null?e?IdentityModelLineProjection.INSTANCE:HiddenModelLineProjection.INSTANCE:new ModelLineProjection(o,e)}class ModelLineProjection{constructor(e,t){this._projectionData=e,this._isVisible=t}isVisible(){return this._isVisible}setVisible(e){return this._isVisible=e,this}getProjectionData(){return this._projectionData}getViewLineCount(){return this._isVisible?this._projectionData.getOutputLineCount():0}getViewLineContent(e,t,i){this._assertVisible();const n=i>0?this._projectionData.breakOffsets[i-1]:0,r=this._projectionData.breakOffsets[i];let s;if(this._projectionData.injectionOffsets!==null){const a=this._projectionData.injectionOffsets.map((d,c)=>new LineInjectedText(0,0,d+1,this._projectionData.injectionOptions[c],0));s=LineInjectedText.applyInjectedText(e.getLineContent(t),a).substring(n,r)}else s=e.getValueInRange({startLineNumber:t,startColumn:n+1,endLineNumber:t,endColumn:r+1});return i>0&&(s=spaces(this._projectionData.wrappedTextIndentLength)+s),s}getViewLineLength(e,t,i){return this._assertVisible(),this._projectionData.getLineLength(i)}getViewLineMinColumn(e,t,i){return this._assertVisible(),this._projectionData.getMinOutputOffset(i)+1}getViewLineMaxColumn(e,t,i){return this._assertVisible(),this._projectionData.getMaxOutputOffset(i)+1}getViewLineData(e,t,i){const n=new Array;return this.getViewLinesData(e,t,i,1,0,[!0],n),n[0]}getViewLinesData(e,t,i,n,r,s,a){this._assertVisible();const l=this._projectionData,d=l.injectionOffsets,c=l.injectionOptions;let u=null;if(d){u=[];let f=0,p=0;for(let m=0;m<l.getOutputLineCount();m++){const b=new Array;u[m]=b;const _=m>0?l.breakOffsets[m-1]:0,C=l.breakOffsets[m];for(;p<d.length;){const S=c[p].content.length,y=d[p]+f,E=y+S;if(y>C)break;if(_<E){const x=c[p];if(x.inlineClassName){const L=m>0?l.wrappedTextIndentLength:0,I=L+Math.max(y-_,0),D=L+Math.min(E-_,C-_);I!==D&&b.push(new SingleLineInlineDecoration(I,D,x.inlineClassName,x.inlineClassNameAffectsLetterSpacing))}}if(E<=C)f+=S,p++;else break}}}let g;d?g=e.tokenization.getLineTokens(t).withInserted(d.map((f,p)=>({offset:f,text:c[p].content,tokenMetadata:LineTokens.defaultTokenMetadata}))):g=e.tokenization.getLineTokens(t);for(let f=i;f<i+n;f++){const p=r+f-i;if(!s[p]){a[p]=null;continue}a[p]=this._getViewLineData(g,u?u[f]:null,f)}}_getViewLineData(e,t,i){this._assertVisible();const n=this._projectionData,r=i>0?n.wrappedTextIndentLength:0,s=i>0?n.breakOffsets[i-1]:0,a=n.breakOffsets[i],l=e.sliceAndInflate(s,a,r);let d=l.getLineContent();i>0&&(d=spaces(n.wrappedTextIndentLength)+d);const c=this._projectionData.getMinOutputOffset(i)+1,u=d.length+1,g=i+1<this.getViewLineCount(),f=i===0?0:n.breakOffsetsVisibleColumn[i-1];return new ViewLineData(d,g,c,u,f,l,t)}getModelColumnOfViewPosition(e,t){return this._assertVisible(),this._projectionData.translateToInputOffset(e,t-1)+1}getViewPositionOfModelPosition(e,t,i=2){return this._assertVisible(),this._projectionData.translateToOutputPosition(t-1,i).toPosition(e)}getViewLineNumberOfModelPosition(e,t){this._assertVisible();const i=this._projectionData.translateToOutputPosition(t-1);return e+i.outputLineIndex}normalizePosition(e,t,i){const n=t.lineNumber-e;return this._projectionData.normalizeOutputPosition(e,t.column-1,i).toPosition(n)}getInjectedTextAt(e,t){return this._projectionData.getInjectedText(e,t-1)}_assertVisible(){if(!this._isVisible)throw new Error("Not supported")}}class IdentityModelLineProjection{constructor(){}isVisible(){return!0}setVisible(e){return e?this:HiddenModelLineProjection.INSTANCE}getProjectionData(){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){const n=e.tokenization.getLineTokens(t),r=n.getLineContent();return new ViewLineData(r,!1,1,r.length+1,0,n.inflate(),null)}getViewLinesData(e,t,i,n,r,s,a){if(!s[r]){a[r]=null;return}a[r]=this.getViewLineData(e,t,0)}getModelColumnOfViewPosition(e,t){return t}getViewPositionOfModelPosition(e,t){return new Position$1(e,t)}getViewLineNumberOfModelPosition(e,t){return e}normalizePosition(e,t,i){return t}getInjectedTextAt(e,t){return null}}IdentityModelLineProjection.INSTANCE=new IdentityModelLineProjection;class HiddenModelLineProjection{constructor(){}isVisible(){return!1}setVisible(e){return e?IdentityModelLineProjection.INSTANCE:this}getProjectionData(){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,r,s,a){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){throw new Error("Not supported")}getInjectedTextAt(e,t){throw new Error("Not supported")}}HiddenModelLineProjection.INSTANCE=new HiddenModelLineProjection;const _spaces=[""];function spaces(o){if(o>=_spaces.length)for(let e=1;e<=o;e++)_spaces[e]=_makeSpaces(e);return _spaces[o]}function _makeSpaces(o){return new Array(o+1).join(" ")}class ViewModelLinesFromProjectedModel{constructor(e,t,i,n,r,s,a,l,d,c){this._editorId=e,this.model=t,this._validModelVersionId=-1,this._domLineBreaksComputerFactory=i,this._monospaceLineBreaksComputerFactory=n,this.fontInfo=r,this.tabSize=s,this.wrappingStrategy=a,this.wrappingColumn=l,this.wrappingIndent=d,this.wordBreak=c,this._constructLines(!0,null)}dispose(){this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,[])}createCoordinatesConverter(){return new CoordinatesConverter(this)}_constructLines(e,t){this.modelLineProjections=[],e&&(this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,[]));const i=this.model.getLinesContent(),n=this.model.getInjectedTextDecorations(this._editorId),r=i.length,s=this.createLineBreaksComputer(),a=new ArrayQueue(LineInjectedText.fromDecorations(n));for(let m=0;m<r;m++){const b=a.takeWhile(_=>_.lineNumber===m+1);s.addRequest(i[m],b,t?t[m]:null)}const l=s.finalize(),d=[],c=this.hiddenAreasDecorationIds.map(m=>this.model.getDecorationRange(m)).sort(Range$2.compareRangesUsingStarts);let u=1,g=0,f=-1,p=f+1<c.length?g+1:r+2;for(let m=0;m<r;m++){const b=m+1;b===p&&(f++,u=c[f].startLineNumber,g=c[f].endLineNumber,p=f+1<c.length?g+1:r+2);const _=b>=u&&b<=g,C=createModelLineProjection(l[m],!_);d[m]=C.getViewLineCount(),this.modelLineProjections[m]=C}this._validModelVersionId=this.model.getVersionId(),this.projectedModelLineLineCounts=new ConstantTimePrefixSumComputer(d)}getHiddenAreas(){return this.hiddenAreasDecorationIds.map(e=>this.model.getDecorationRange(e))}setHiddenAreas(e){const t=e.map(g=>this.model.validateRange(g)),i=normalizeLineRanges(t),n=this.hiddenAreasDecorationIds.map(g=>this.model.getDecorationRange(g)).sort(Range$2.compareRangesUsingStarts);if(i.length===n.length){let g=!1;for(let f=0;f<i.length;f++)if(!i[f].equalsRange(n[f])){g=!0;break}if(!g)return!1}const r=i.map(g=>({range:g,options:ModelDecorationOptions.EMPTY}));this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,r);const s=i;let a=1,l=0,d=-1,c=d+1<s.length?l+1:this.modelLineProjections.length+2,u=!1;for(let g=0;g<this.modelLineProjections.length;g++){const f=g+1;f===c&&(d++,a=s[d].startLineNumber,l=s[d].endLineNumber,c=d+1<s.length?l+1:this.modelLineProjections.length+2);let p=!1;if(f>=a&&f<=l?this.modelLineProjections[g].isVisible()&&(this.modelLineProjections[g]=this.modelLineProjections[g].setVisible(!1),p=!0):(u=!0,this.modelLineProjections[g].isVisible()||(this.modelLineProjections[g]=this.modelLineProjections[g].setVisible(!0),p=!0)),p){const m=this.modelLineProjections[g].getViewLineCount();this.projectedModelLineLineCounts.setValue(g,m)}}return u||this.setHiddenAreas([]),!0}modelPositionIsVisible(e,t){return e<1||e>this.modelLineProjections.length?!1:this.modelLineProjections[e-1].isVisible()}getModelLineViewLineCount(e){return e<1||e>this.modelLineProjections.length?1:this.modelLineProjections[e-1].getViewLineCount()}setTabSize(e){return this.tabSize===e?!1:(this.tabSize=e,this._constructLines(!1,null),!0)}setWrappingSettings(e,t,i,n,r){const s=this.fontInfo.equals(e),a=this.wrappingStrategy===t,l=this.wrappingColumn===i,d=this.wrappingIndent===n,c=this.wordBreak===r;if(s&&a&&l&&d&&c)return!1;const u=s&&a&&!l&&d&&c;this.fontInfo=e,this.wrappingStrategy=t,this.wrappingColumn=i,this.wrappingIndent=n,this.wordBreak=r;let g=null;if(u){g=[];for(let f=0,p=this.modelLineProjections.length;f<p;f++)g[f]=this.modelLineProjections[f].getProjectionData()}return this._constructLines(!1,g),!0}createLineBreaksComputer(){return(this.wrappingStrategy==="advanced"?this._domLineBreaksComputerFactory:this._monospaceLineBreaksComputerFactory).createLineBreaksComputer(this.fontInfo,this.tabSize,this.wrappingColumn,this.wrappingIndent,this.wordBreak)}onModelFlushed(){this._constructLines(!0,null)}onModelLinesDeleted(e,t,i){if(!e||e<=this._validModelVersionId)return null;const n=t===1?1:this.projectedModelLineLineCounts.getPrefixSum(t-1)+1,r=this.projectedModelLineLineCounts.getPrefixSum(i);return this.modelLineProjections.splice(t-1,i-t+1),this.projectedModelLineLineCounts.removeValues(t-1,i-t+1),new ViewLinesDeletedEvent(n,r)}onModelLinesInserted(e,t,i,n){if(!e||e<=this._validModelVersionId)return null;const r=t>2&&!this.modelLineProjections[t-2].isVisible(),s=t===1?1:this.projectedModelLineLineCounts.getPrefixSum(t-1)+1;let a=0;const l=[],d=[];for(let c=0,u=n.length;c<u;c++){const g=createModelLineProjection(n[c],!r);l.push(g);const f=g.getViewLineCount();a+=f,d[c]=f}return this.modelLineProjections=this.modelLineProjections.slice(0,t-1).concat(l).concat(this.modelLineProjections.slice(t-1)),this.projectedModelLineLineCounts.insertValues(t-1,d),new ViewLinesInsertedEvent(s,s+a-1)}onModelLineChanged(e,t,i){if(e!==null&&e<=this._validModelVersionId)return[!1,null,null,null];const n=t-1,r=this.modelLineProjections[n].getViewLineCount(),s=this.modelLineProjections[n].isVisible(),a=createModelLineProjection(i,s);this.modelLineProjections[n]=a;const l=this.modelLineProjections[n].getViewLineCount();let d=!1,c=0,u=-1,g=0,f=-1,p=0,m=-1;r>l?(c=this.projectedModelLineLineCounts.getPrefixSum(t-1)+1,u=c+l-1,p=u+1,m=p+(r-l)-1,d=!0):r<l?(c=this.projectedModelLineLineCounts.getPrefixSum(t-1)+1,u=c+r-1,g=u+1,f=g+(l-r)-1,d=!0):(c=this.projectedModelLineLineCounts.getPrefixSum(t-1)+1,u=c+l-1),this.projectedModelLineLineCounts.setValue(n,l);const b=c<=u?new ViewLinesChangedEvent(c,u-c+1):null,_=g<=f?new ViewLinesInsertedEvent(g,f):null,C=p<=m?new ViewLinesDeletedEvent(p,m):null;return[d,b,_,C]}acceptVersionId(e){this._validModelVersionId=e,this.modelLineProjections.length===1&&!this.modelLineProjections[0].isVisible()&&this.setHiddenAreas([])}getViewLineCount(){return this.projectedModelLineLineCounts.getTotalSum()}_toValidViewLineNumber(e){if(e<1)return 1;const t=this.getViewLineCount();return e>t?t:e|0}getActiveIndentGuide(e,t,i){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t),i=this._toValidViewLineNumber(i);const n=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),r=this.convertViewPositionToModelPosition(t,this.getViewLineMinColumn(t)),s=this.convertViewPositionToModelPosition(i,this.getViewLineMinColumn(i)),a=this.model.guides.getActiveIndentGuide(n.lineNumber,r.lineNumber,s.lineNumber),l=this.convertModelPositionToViewPosition(a.startLineNumber,1),d=this.convertModelPositionToViewPosition(a.endLineNumber,this.model.getLineMaxColumn(a.endLineNumber));return{startLineNumber:l.lineNumber,endLineNumber:d.lineNumber,indent:a.indent}}getViewLineInfo(e){e=this._toValidViewLineNumber(e);const t=this.projectedModelLineLineCounts.getIndexOf(e-1),i=t.index,n=t.remainder;return new ViewLineInfo(i+1,n)}getMinColumnOfViewLine(e){return this.modelLineProjections[e.modelLineNumber-1].getViewLineMinColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx)}getMaxColumnOfViewLine(e){return this.modelLineProjections[e.modelLineNumber-1].getViewLineMaxColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx)}getModelStartPositionOfViewLine(e){const t=this.modelLineProjections[e.modelLineNumber-1],i=t.getViewLineMinColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx),n=t.getModelColumnOfViewPosition(e.modelLineWrappedLineIdx,i);return new Position$1(e.modelLineNumber,n)}getModelEndPositionOfViewLine(e){const t=this.modelLineProjections[e.modelLineNumber-1],i=t.getViewLineMaxColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx),n=t.getModelColumnOfViewPosition(e.modelLineWrappedLineIdx,i);return new Position$1(e.modelLineNumber,n)}getViewLineInfosGroupedByModelRanges(e,t){const i=this.getViewLineInfo(e),n=this.getViewLineInfo(t),r=new Array;let s=this.getModelStartPositionOfViewLine(i),a=new Array;for(let l=i.modelLineNumber;l<=n.modelLineNumber;l++){const d=this.modelLineProjections[l-1];if(d.isVisible()){const c=l===i.modelLineNumber?i.modelLineWrappedLineIdx:0,u=l===n.modelLineNumber?n.modelLineWrappedLineIdx+1:d.getViewLineCount();for(let g=c;g<u;g++)a.push(new ViewLineInfo(l,g))}if(!d.isVisible()&&s){const c=new Position$1(l-1,this.model.getLineMaxColumn(l-1)+1),u=Range$2.fromPositions(s,c);r.push(new ViewLineInfoGroupedByModelRange(u,a)),a=[],s=null}else d.isVisible()&&!s&&(s=new Position$1(l,1))}if(s){const l=Range$2.fromPositions(s,this.getModelEndPositionOfViewLine(n));r.push(new ViewLineInfoGroupedByModelRange(l,a))}return r}getViewLinesBracketGuides(e,t,i,n){const r=i?this.convertViewPositionToModelPosition(i.lineNumber,i.column):null,s=[];for(const a of this.getViewLineInfosGroupedByModelRanges(e,t)){const l=a.modelRange.startLineNumber,d=this.model.guides.getLinesBracketGuides(l,a.modelRange.endLineNumber,r,n);for(const c of a.viewLines){const g=d[c.modelLineNumber-l].map(f=>{if(f.forWrappedLinesAfterColumn!==-1&&this.modelLineProjections[c.modelLineNumber-1].getViewPositionOfModelPosition(0,f.forWrappedLinesAfterColumn).lineNumber>=c.modelLineWrappedLineIdx||f.forWrappedLinesBeforeOrAtColumn!==-1&&this.modelLineProjections[c.modelLineNumber-1].getViewPositionOfModelPosition(0,f.forWrappedLinesBeforeOrAtColumn).lineNumber<c.modelLineWrappedLineIdx)return;if(!f.horizontalLine)return f;let p=-1;if(f.column!==-1){const _=this.modelLineProjections[c.modelLineNumber-1].getViewPositionOfModelPosition(0,f.column);if(_.lineNumber===c.modelLineWrappedLineIdx)p=_.column;else if(_.lineNumber<c.modelLineWrappedLineIdx)p=this.getMinColumnOfViewLine(c);else if(_.lineNumber>c.modelLineWrappedLineIdx)return}const m=this.convertModelPositionToViewPosition(c.modelLineNumber,f.horizontalLine.endColumn),b=this.modelLineProjections[c.modelLineNumber-1].getViewPositionOfModelPosition(0,f.horizontalLine.endColumn);return b.lineNumber===c.modelLineWrappedLineIdx?new IndentGuide(f.visibleColumn,p,f.className,new IndentGuideHorizontalLine(f.horizontalLine.top,m.column),-1,-1):b.lineNumber<c.modelLineWrappedLineIdx||f.visibleColumn!==-1?void 0:new IndentGuide(f.visibleColumn,p,f.className,new IndentGuideHorizontalLine(f.horizontalLine.top,this.getMaxColumnOfViewLine(c)),-1,-1)});s.push(g.filter(f=>!!f))}}return s}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 r=[];const s=[],a=[],l=i.lineNumber-1,d=n.lineNumber-1;let c=null;for(let p=l;p<=d;p++){const m=this.modelLineProjections[p];if(m.isVisible()){const b=m.getViewLineNumberOfModelPosition(0,p===l?i.column:1),_=m.getViewLineNumberOfModelPosition(0,this.model.getLineMaxColumn(p+1)),C=_-b+1;let S=0;C>1&&m.getViewLineMinColumn(this.model,p+1,_)===1&&(S=b===0?1:2),s.push(C),a.push(S),c===null&&(c=new Position$1(p+1,0))}else c!==null&&(r=r.concat(this.model.guides.getLinesIndentGuides(c.lineNumber,p)),c=null)}c!==null&&(r=r.concat(this.model.guides.getLinesIndentGuides(c.lineNumber,n.lineNumber)),c=null);const u=t-e+1,g=new Array(u);let f=0;for(let p=0,m=r.length;p<m;p++){let b=r[p];const _=Math.min(u-f,s[p]),C=a[p];let S;C===2?S=0:C===1?S=1:S=_;for(let y=0;y<_;y++)y===S&&(b=0),g[f++]=b}return g}getViewLineContent(e){const t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineContent(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLineLength(e){const t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineLength(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLineMinColumn(e){const t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineMinColumn(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLineMaxColumn(e){const t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineMaxColumn(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLineData(e){const t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineData(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLinesData(e,t,i){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t);const n=this.projectedModelLineLineCounts.getIndexOf(e-1);let r=e;const s=n.index,a=n.remainder,l=[];for(let d=s,c=this.model.getLineCount();d<c;d++){const u=this.modelLineProjections[d];if(!u.isVisible())continue;const g=d===s?a:0;let f=u.getViewLineCount()-g,p=!1;if(r+f>t&&(p=!0,f=t-r+1),u.getViewLinesData(this.model,d+1,g,f,r-e,i,l),r+=f,p)break}return l}validateViewPosition(e,t,i){e=this._toValidViewLineNumber(e);const n=this.projectedModelLineLineCounts.getIndexOf(e-1),r=n.index,s=n.remainder,a=this.modelLineProjections[r],l=a.getViewLineMinColumn(this.model,r+1,s),d=a.getViewLineMaxColumn(this.model,r+1,s);t<l&&(t=l),t>d&&(t=d);const c=a.getModelColumnOfViewPosition(s,t);return this.model.validatePosition(new Position$1(r+1,c)).equals(i)?new Position$1(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 Range$2(i.lineNumber,i.column,n.lineNumber,n.column)}convertViewPositionToModelPosition(e,t){const i=this.getViewLineInfo(e),n=this.modelLineProjections[i.modelLineNumber-1].getModelColumnOfViewPosition(i.modelLineWrappedLineIdx,t);return this.model.validatePosition(new Position$1(i.modelLineNumber,n))}convertViewRangeToModelRange(e){const t=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),i=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);return new Range$2(t.lineNumber,t.column,i.lineNumber,i.column)}convertModelPositionToViewPosition(e,t,i=2,n=!1,r=!1){const s=this.model.validatePosition(new Position$1(e,t)),a=s.lineNumber,l=s.column;let d=a-1,c=!1;if(r)for(;d<this.modelLineProjections.length&&!this.modelLineProjections[d].isVisible();)d++,c=!0;else for(;d>0&&!this.modelLineProjections[d].isVisible();)d--,c=!0;if(d===0&&!this.modelLineProjections[d].isVisible())return new Position$1(n?0:1,1);const u=1+this.projectedModelLineLineCounts.getPrefixSum(d);let g;return c?r?g=this.modelLineProjections[d].getViewPositionOfModelPosition(u,1,i):g=this.modelLineProjections[d].getViewPositionOfModelPosition(u,this.model.getLineMaxColumn(d+1),i):g=this.modelLineProjections[a-1].getViewPositionOfModelPosition(u,l,i),g}convertModelRangeToViewRange(e,t=0){if(e.isEmpty()){const i=this.convertModelPositionToViewPosition(e.startLineNumber,e.startColumn,t);return Range$2.fromPositions(i)}else{const i=this.convertModelPositionToViewPosition(e.startLineNumber,e.startColumn,1),n=this.convertModelPositionToViewPosition(e.endLineNumber,e.endColumn,0);return new Range$2(i.lineNumber,i.column,n.lineNumber,n.column)}}getViewLineNumberOfModelPosition(e,t){let i=e-1;if(this.modelLineProjections[i].isVisible()){const r=1+this.projectedModelLineLineCounts.getPrefixSum(i);return this.modelLineProjections[i].getViewLineNumberOfModelPosition(r,t)}for(;i>0&&!this.modelLineProjections[i].isVisible();)i--;if(i===0&&!this.modelLineProjections[i].isVisible())return 1;const n=1+this.projectedModelLineLineCounts.getPrefixSum(i);return this.modelLineProjections[i].getViewLineNumberOfModelPosition(n,this.model.getLineMaxColumn(i+1))}getDecorationsInRange(e,t,i,n,r){const s=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),a=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);if(a.lineNumber-s.lineNumber<=e.endLineNumber-e.startLineNumber)return this.model.getDecorationsInRange(new Range$2(s.lineNumber,1,a.lineNumber,a.column),t,i,n,r);let l=[];const d=s.lineNumber-1,c=a.lineNumber-1;let u=null;for(let m=d;m<=c;m++)if(this.modelLineProjections[m].isVisible())u===null&&(u=new Position$1(m+1,m===d?s.column:1));else if(u!==null){const _=this.model.getLineMaxColumn(m);l=l.concat(this.model.getDecorationsInRange(new Range$2(u.lineNumber,u.column,m,_),t,i,n)),u=null}u!==null&&(l=l.concat(this.model.getDecorationsInRange(new Range$2(u.lineNumber,u.column,a.lineNumber,a.column),t,i,n)),u=null),l.sort((m,b)=>{const _=Range$2.compareRangesUsingStarts(m.range,b.range);return _===0?m.id<b.id?-1:m.id>b.id?1:0:_});const g=[];let f=0,p=null;for(const m of l){const b=m.id;p!==b&&(p=b,g[f++]=m)}return g}getInjectedTextAt(e){const t=this.getViewLineInfo(e.lineNumber);return this.modelLineProjections[t.modelLineNumber-1].getInjectedTextAt(t.modelLineWrappedLineIdx,e.column)}normalizePosition(e,t){const i=this.getViewLineInfo(e.lineNumber);return this.modelLineProjections[i.modelLineNumber-1].normalizePosition(i.modelLineWrappedLineIdx,e,t)}getLineIndentColumn(e){const t=this.getViewLineInfo(e);return t.modelLineWrappedLineIdx===0?this.model.getLineIndentColumn(t.modelLineNumber):0}}function normalizeLineRanges(o){if(o.length===0)return[];const e=o.slice();e.sort(Range$2.compareRangesUsingStarts);const t=[];let i=e[0].startLineNumber,n=e[0].endLineNumber;for(let r=1,s=e.length;r<s;r++){const a=e[r];a.startLineNumber>n+1?(t.push(new Range$2(i,1,n,1)),i=a.startLineNumber,n=a.endLineNumber):a.endLineNumber>n&&(n=a.endLineNumber)}return t.push(new Range$2(i,1,n,1)),t}class ViewLineInfo{constructor(e,t){this.modelLineNumber=e,this.modelLineWrappedLineIdx=t}}class ViewLineInfoGroupedByModelRange{constructor(e,t){this.modelRange=e,this.viewLines=t}}class CoordinatesConverter{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,i,n){return this._lines.convertModelPositionToViewPosition(e.lineNumber,e.column,t,i,n)}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)}getViewLineNumberOfModelPosition(e,t){return this._lines.getViewLineNumberOfModelPosition(e,t)}}class ViewModelLinesFromModelAsIs{constructor(e){this.model=e}dispose(){}createCoordinatesConverter(){return new IdentityCoordinatesConverter(this)}getHiddenAreas(){return[]}setHiddenAreas(e){return!1}setTabSize(e){return!1}setWrappingSettings(e,t,i,n){return!1}createLineBreaksComputer(){const e=[];return{addRequest:(t,i,n)=>{e.push(null)},finalize:()=>e}}onModelFlushed(){}onModelLinesDeleted(e,t,i){return new ViewLinesDeletedEvent(t,i)}onModelLinesInserted(e,t,i,n){return new ViewLinesInsertedEvent(t,i)}onModelLineChanged(e,t,i){return[!1,new ViewLinesChangedEvent(t,1),null,null]}acceptVersionId(e){}getViewLineCount(){return this.model.getLineCount()}getActiveIndentGuide(e,t,i){return{startLineNumber:e,endLineNumber:e,indent:0}}getViewLinesBracketGuides(e,t,i){return new Array(t-e+1).fill([])}getViewLinesIndentGuides(e,t){const i=t-e+1,n=new Array(i);for(let r=0;r<i;r++)n[r]=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){const t=this.model.tokenization.getLineTokens(e),i=t.getLineContent();return new ViewLineData(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);const r=[];for(let s=e;s<=t;s++){const a=s-e;r[a]=i[a]?this.getViewLineData(s):null}return r}getDecorationsInRange(e,t,i,n,r){return this.model.getDecorationsInRange(e,t,i,n,r)}normalizePosition(e,t){return this.model.normalizePosition(e,t)}getLineIndentColumn(e){return this.model.getLineIndentColumn(e)}getInjectedTextAt(e){return null}}class IdentityCoordinatesConverter{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}getViewLineNumberOfModelPosition(e,t){return e}}let ViewModel$1=class extends Disposable{constructor(e,t,i,n,r,s,a,l,d){if(super(),this.languageConfigurationService=a,this._themeService=l,this._attachedView=d,this.hiddenAreasModel=new HiddenAreasModel,this.previousHiddenAreas=[],this._editorId=e,this._configuration=t,this.model=i,this._eventDispatcher=new ViewModelEventDispatcher,this.onEvent=this._eventDispatcher.onEvent,this.cursorConfig=new CursorConfiguration(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._updateConfigurationViewLineCount=this._register(new RunOnceScheduler(()=>this._updateConfigurationViewLineCountNow(),0)),this._hasFocus=!1,this._viewportStart=ViewportStart.create(this.model),this.model.isTooLargeForTokenization())this._lines=new ViewModelLinesFromModelAsIs(this.model);else{const c=this._configuration.options,u=c.get(50),g=c.get(137),f=c.get(144),p=c.get(136),m=c.get(128);this._lines=new ViewModelLinesFromProjectedModel(this._editorId,this.model,n,r,u,this.model.getOptions().tabSize,g,f.wrappingColumn,p,m)}this.coordinatesConverter=this._lines.createCoordinatesConverter(),this._cursor=this._register(new CursorsController(i,this,this.coordinatesConverter,this.cursorConfig)),this.viewLayout=this._register(new ViewLayout(this._configuration,this.getLineCount(),s)),this._register(this.viewLayout.onDidScroll(c=>{c.scrollTopChanged&&this._handleVisibleLinesChanged(),c.scrollTopChanged&&this._viewportStart.invalidate(),this._eventDispatcher.emitSingleViewEvent(new ViewScrollChangedEvent(c)),this._eventDispatcher.emitOutgoingEvent(new ScrollChangedEvent(c.oldScrollWidth,c.oldScrollLeft,c.oldScrollHeight,c.oldScrollTop,c.scrollWidth,c.scrollLeft,c.scrollHeight,c.scrollTop))})),this._register(this.viewLayout.onDidContentSizeChange(c=>{this._eventDispatcher.emitOutgoingEvent(c)})),this._decorations=new ViewModelDecorations(this._editorId,this.model,this._configuration,this._lines,this.coordinatesConverter),this._registerModelEvents(),this._register(this._configuration.onDidChangeFast(c=>{try{const u=this._eventDispatcher.beginEmitViewEvents();this._onConfigurationChanged(u,c)}finally{this._eventDispatcher.endEmitViewEvents()}})),this._register(MinimapTokensColorTracker.getInstance().onDidChange(()=>{this._eventDispatcher.emitSingleViewEvent(new ViewTokensColorsChangedEvent)})),this._register(this._themeService.onDidColorThemeChange(c=>{this._invalidateDecorationsColorCache(),this._eventDispatcher.emitSingleViewEvent(new ViewThemeChangedEvent(c))})),this._updateConfigurationViewLineCountNow()}dispose(){super.dispose(),this._decorations.dispose(),this._lines.dispose(),this._viewportStart.dispose(),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())}getModelVisibleRanges(){const e=this.viewLayout.getLinesViewportData(),t=new Range$2(e.startLineNumber,this.getLineMinColumn(e.startLineNumber),e.endLineNumber,this.getLineMaxColumn(e.endLineNumber));return this._toModelVisibleRanges(t)}visibleLinesStabilized(){const e=this.getModelVisibleRanges();this._attachedView.setVisibleLines(e,!0)}_handleVisibleLinesChanged(){const e=this.getModelVisibleRanges();this._attachedView.setVisibleLines(e,!1)}setHasFocus(e){this._hasFocus=e,this._cursor.setHasFocus(e),this._eventDispatcher.emitSingleViewEvent(new ViewFocusChangedEvent(e)),this._eventDispatcher.emitOutgoingEvent(new FocusChangedEvent(!e,e))}onCompositionStart(){this._eventDispatcher.emitSingleViewEvent(new ViewCompositionStartEvent)}onCompositionEnd(){this._eventDispatcher.emitSingleViewEvent(new ViewCompositionEndEvent)}_captureStableViewport(){if(this._viewportStart.isValid&&this.viewLayout.getCurrentScrollTop()>0){const e=new Position$1(this._viewportStart.viewLineNumber,this.getLineMinColumn(this._viewportStart.viewLineNumber)),t=this.coordinatesConverter.convertViewPositionToModelPosition(e);return new StableViewport(t,this._viewportStart.startLineDelta)}return new StableViewport(null,0)}_onConfigurationChanged(e,t){const i=this._captureStableViewport(),n=this._configuration.options,r=n.get(50),s=n.get(137),a=n.get(144),l=n.get(136),d=n.get(128);this._lines.setWrappingSettings(r,s,a.wrappingColumn,l,d)&&(e.emitViewEvent(new ViewFlushedEvent),e.emitViewEvent(new ViewLineMappingChangedEvent),e.emitViewEvent(new ViewDecorationsChangedEvent(null)),this._cursor.onLineMappingChanged(e),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),this._updateConfigurationViewLineCount.schedule()),t.hasChanged(90)&&(this._decorations.reset(),e.emitViewEvent(new ViewDecorationsChangedEvent(null))),e.emitViewEvent(new ViewConfigurationChangedEvent(t)),this.viewLayout.onConfigurationChanged(t),i.recoverViewportStart(this.coordinatesConverter,this.viewLayout),CursorConfiguration.shouldRecreate(t)&&(this.cursorConfig=new CursorConfiguration(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig))}_registerModelEvents(){this._register(this.model.onDidChangeContentOrInjectedText(e=>{try{const i=this._eventDispatcher.beginEmitViewEvents();let n=!1,r=!1;const s=e instanceof InternalModelContentChangeEvent?e.rawContentChangedEvent.changes:e.changes,a=e instanceof InternalModelContentChangeEvent?e.rawContentChangedEvent.versionId:null,l=this._lines.createLineBreaksComputer();for(const u of s)switch(u.changeType){case 4:{for(let g=0;g<u.detail.length;g++){const f=u.detail[g];let p=u.injectedTexts[g];p&&(p=p.filter(m=>!m.ownerId||m.ownerId===this._editorId)),l.addRequest(f,p,null)}break}case 2:{let g=null;u.injectedText&&(g=u.injectedText.filter(f=>!f.ownerId||f.ownerId===this._editorId)),l.addRequest(u.detail,g,null);break}}const d=l.finalize(),c=new ArrayQueue(d);for(const u of s)switch(u.changeType){case 1:{this._lines.onModelFlushed(),i.emitViewEvent(new ViewFlushedEvent),this._decorations.reset(),this.viewLayout.onFlushed(this.getLineCount()),n=!0;break}case 3:{const g=this._lines.onModelLinesDeleted(a,u.fromLineNumber,u.toLineNumber);g!==null&&(i.emitViewEvent(g),this.viewLayout.onLinesDeleted(g.fromLineNumber,g.toLineNumber)),n=!0;break}case 4:{const g=c.takeCount(u.detail.length),f=this._lines.onModelLinesInserted(a,u.fromLineNumber,u.toLineNumber,g);f!==null&&(i.emitViewEvent(f),this.viewLayout.onLinesInserted(f.fromLineNumber,f.toLineNumber)),n=!0;break}case 2:{const g=c.dequeue(),[f,p,m,b]=this._lines.onModelLineChanged(a,u.lineNumber,g);r=f,p&&i.emitViewEvent(p),m&&(i.emitViewEvent(m),this.viewLayout.onLinesInserted(m.fromLineNumber,m.toLineNumber)),b&&(i.emitViewEvent(b),this.viewLayout.onLinesDeleted(b.fromLineNumber,b.toLineNumber));break}case 5:break}a!==null&&this._lines.acceptVersionId(a),this.viewLayout.onHeightMaybeChanged(),!n&&r&&(i.emitViewEvent(new ViewLineMappingChangedEvent),i.emitViewEvent(new ViewDecorationsChangedEvent(null)),this._cursor.onLineMappingChanged(i),this._decorations.onLineMappingChanged())}finally{this._eventDispatcher.endEmitViewEvents()}const t=this._viewportStart.isValid;if(this._viewportStart.invalidate(),this._configuration.setModelLineCount(this.model.getLineCount()),this._updateConfigurationViewLineCountNow(),!this._hasFocus&&this.model.getAttachedEditorCount()>=2&&t){const i=this.model._getTrackedRange(this._viewportStart.modelTrackedRange);if(i){const n=this.coordinatesConverter.convertModelPositionToViewPosition(i.getStartPosition()),r=this.viewLayout.getVerticalOffsetForLineNumber(n.lineNumber);this.viewLayout.setScrollPosition({scrollTop:r+this._viewportStart.startLineDelta},1)}}try{const i=this._eventDispatcher.beginEmitViewEvents();e instanceof InternalModelContentChangeEvent&&i.emitOutgoingEvent(new ModelContentChangedEvent(e.contentChangedEvent)),this._cursor.onModelContentChanged(i,e)}finally{this._eventDispatcher.endEmitViewEvents()}this._handleVisibleLinesChanged()})),this._register(this.model.onDidChangeTokens(e=>{const t=[];for(let i=0,n=e.ranges.length;i<n;i++){const r=e.ranges[i],s=this.coordinatesConverter.convertModelPositionToViewPosition(new Position$1(r.fromLineNumber,1)).lineNumber,a=this.coordinatesConverter.convertModelPositionToViewPosition(new Position$1(r.toLineNumber,this.model.getLineMaxColumn(r.toLineNumber))).lineNumber;t[i]={fromLineNumber:s,toLineNumber:a}}this._eventDispatcher.emitSingleViewEvent(new ViewTokensChangedEvent(t)),this._eventDispatcher.emitOutgoingEvent(new ModelTokensChangedEvent(e))})),this._register(this.model.onDidChangeLanguageConfiguration(e=>{this._eventDispatcher.emitSingleViewEvent(new ViewLanguageConfigurationEvent),this.cursorConfig=new CursorConfiguration(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new ModelLanguageConfigurationChangedEvent(e))})),this._register(this.model.onDidChangeLanguage(e=>{this.cursorConfig=new CursorConfiguration(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new ModelLanguageChangedEvent(e))})),this._register(this.model.onDidChangeOptions(e=>{if(this._lines.setTabSize(this.model.getOptions().tabSize)){try{const t=this._eventDispatcher.beginEmitViewEvents();t.emitViewEvent(new ViewFlushedEvent),t.emitViewEvent(new ViewLineMappingChangedEvent),t.emitViewEvent(new ViewDecorationsChangedEvent(null)),this._cursor.onLineMappingChanged(t),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount())}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule()}this.cursorConfig=new CursorConfiguration(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new ModelOptionsChangedEvent(e))})),this._register(this.model.onDidChangeDecorations(e=>{this._decorations.onModelDecorationsChanged(),this._eventDispatcher.emitSingleViewEvent(new ViewDecorationsChangedEvent(e)),this._eventDispatcher.emitOutgoingEvent(new ModelDecorationsChangedEvent(e))}))}setHiddenAreas(e,t){this.hiddenAreasModel.setHiddenAreas(t,e);const i=this.hiddenAreasModel.getMergedRanges();if(i===this.previousHiddenAreas)return;this.previousHiddenAreas=i;const n=this._captureStableViewport();let r=!1;try{const s=this._eventDispatcher.beginEmitViewEvents();r=this._lines.setHiddenAreas(i),r&&(s.emitViewEvent(new ViewFlushedEvent),s.emitViewEvent(new ViewLineMappingChangedEvent),s.emitViewEvent(new ViewDecorationsChangedEvent(null)),this._cursor.onLineMappingChanged(s),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),this.viewLayout.onHeightMaybeChanged()),n.recoverViewportStart(this.coordinatesConverter,this.viewLayout)}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule(),r&&this._eventDispatcher.emitOutgoingEvent(new HiddenAreasChangedEvent)}getVisibleRangesPlusViewportAboveBelow(){const e=this._configuration.options.get(143),t=this._configuration.options.get(66),i=Math.max(20,Math.round(e.height/t)),n=this.viewLayout.getLinesViewportData(),r=Math.max(1,n.completelyVisibleStartLineNumber-i),s=Math.min(this.getLineCount(),n.completelyVisibleEndLineNumber+i);return this._toModelVisibleRanges(new Range$2(r,this.getLineMinColumn(r),s,this.getLineMaxColumn(s)))}getVisibleRanges(){const e=this.getCompletelyVisibleViewRange();return this._toModelVisibleRanges(e)}getHiddenAreas(){return this._lines.getHiddenAreas()}_toModelVisibleRanges(e){const t=this.coordinatesConverter.convertViewRangeToModelRange(e),i=this._lines.getHiddenAreas();if(i.length===0)return[t];const n=[];let r=0,s=t.startLineNumber,a=t.startColumn;const l=t.endLineNumber,d=t.endColumn;for(let c=0,u=i.length;c<u;c++){const g=i[c].startLineNumber,f=i[c].endLineNumber;f<s||g>l||(s<g&&(n[r++]=new Range$2(s,a,g-1,this.model.getLineMaxColumn(g-1))),s=f+1,a=1)}return(s<l||s===l&&a<d)&&(n[r++]=new Range$2(s,a,l,d)),n}getCompletelyVisibleViewRange(){const e=this.viewLayout.getLinesViewportData(),t=e.completelyVisibleStartLineNumber,i=e.completelyVisibleEndLineNumber;return new Range$2(t,this.getLineMinColumn(t),i,this.getLineMaxColumn(i))}getCompletelyVisibleViewRangeAtScrollTop(e){const t=this.viewLayout.getLinesViewportDataAtScrollTop(e),i=t.completelyVisibleStartLineNumber,n=t.completelyVisibleEndLineNumber;return new Range$2(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 Position$1(i,this.getLineMinColumn(i))),r=this.viewLayout.getVerticalOffsetForLineNumber(i)-t;return{scrollLeft:e.scrollLeft,firstPosition:n,firstPositionDeltaTop:r}}reduceRestoreState(e){if(typeof e.firstPosition>"u")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}getLineCount(){return this._lines.getViewLineCount()}setViewport(e,t,i){this._viewportStart.update(this,e)}getActiveIndentGuide(e,t,i){return this._lines.getActiveIndentGuide(e,t,i)}getLinesIndentGuides(e,t){return this._lines.getViewLinesIndentGuides(e,t)}getBracketGuidesInRangeByLine(e,t,i,n){return this._lines.getViewLinesBracketGuides(e,t,i,n)}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=firstNonWhitespaceIndex(this.getLineContent(e));return t===-1?0:t+1}getLineLastNonWhitespaceColumn(e){const t=lastNonWhitespaceIndex(this.getLineContent(e));return t===-1?0:t+2}getMinimapDecorationsInRange(e){return this._decorations.getMinimapDecorationsInRange(e)}getDecorationsInViewport(e){return this._decorations.getDecorationsViewportData(e).decorations}getInjectedTextAt(e){return this._lines.getInjectedTextAt(e)}getViewportViewLineRenderingData(e,t){const n=this._decorations.getDecorationsViewportData(e).inlineDecorations[t-e.startLineNumber];return this._getViewLineRenderingData(t,n)}getViewLineRenderingData(e){const t=this._decorations.getInlineDecorationsOnLine(e);return this._getViewLineRenderingData(e,t)}_getViewLineRenderingData(e,t){const i=this.model.mightContainRTL(),n=this.model.mightContainNonBasicASCII(),r=this.getTabSize(),s=this._lines.getViewLineData(e);return s.inlineDecorations&&(t=[...t,...s.inlineDecorations.map(a=>a.toInlineDecoration(e))]),new ViewLineRenderingData(s.minColumn,s.maxColumn,s.content,s.continuesWithWrappedLine,i,n,s.tokens,t,r,s.startVisibleColumn)}getViewLineData(e){return this._lines.getViewLineData(e)}getMinimapLinesRenderingData(e,t,i){const n=this._lines.getViewLinesData(e,t,i);return new MinimapLinesRenderingData(this.getTabSize(),n)}getAllOverviewRulerDecorations(e){const t=this.model.getOverviewRulerDecorations(this._editorId,filterValidationDecorations(this._configuration.options)),i=new OverviewRulerDecorations;for(const n of t){const r=n.options,s=r.overviewRuler;if(!s)continue;const a=s.position;if(a===0)continue;const l=s.getColor(e.value),d=this.coordinatesConverter.getViewLineNumberOfModelPosition(n.range.startLineNumber,n.range.startColumn),c=this.coordinatesConverter.getViewLineNumberOfModelPosition(n.range.endLineNumber,n.range.endColumn);i.accept(l,r.zIndex,d,c,a)}return i.asArray}_invalidateDecorationsColorCache(){const e=this.model.getOverviewRulerDecorations();for(const t of e){const i=t.options.overviewRuler;i==null||i.invalidateCachedColor();const n=t.options.minimap;n==null||n.invalidateCachedColor()}}getValueInRange(e,t){const i=this.coordinatesConverter.convertViewRangeToModelRange(e);return this.model.getValueInRange(i,t)}getValueLengthInRange(e,t){const i=this.coordinatesConverter.convertViewRangeToModelRange(e);return this.model.getValueLengthInRange(i,t)}modifyPosition(e,t){const i=this.coordinatesConverter.convertViewPositionToModelPosition(e);return this.model.modifyPosition(i,t)}deduceModelPositionRelativeToViewPosition(e,t,i){const n=this.coordinatesConverter.convertViewPositionToModelPosition(e);this.model.getEOL().length===2&&(t<0?t-=i:t+=i);const s=this.model.getOffsetAt(n)+t;return this.model.getPositionAt(s)}getPlainTextToCopy(e,t,i){const n=i?`\r
- `:this.model.getEOL();e=e.slice(0),e.sort(Range$2.compareRangesUsingStarts);let r=!1,s=!1;for(const l of e)l.isEmpty()?r=!0:s=!0;if(!s){if(!t)return"";const l=e.map(c=>c.startLineNumber);let d="";for(let c=0;c<l.length;c++)c>0&&l[c-1]===l[c]||(d+=this.model.getLineContent(l[c])+n);return d}if(r&&t){const l=[];let d=0;for(const c of e){const u=c.startLineNumber;c.isEmpty()?u!==d&&l.push(this.model.getLineContent(u)):l.push(this.model.getValueInRange(c,i?2:0)),d=u}return l.length===1?l[0]:l}const a=[];for(const l of e)l.isEmpty()||a.push(this.model.getValueInRange(l,i?2:0));return a.length===1?a[0]:a}getRichTextToCopy(e,t){const i=this.model.getLanguageId();if(i===PLAINTEXT_LANGUAGE_ID||e.length!==1)return null;let n=e[0];if(n.isEmpty()){if(!t)return null;const c=n.startLineNumber;n=new Range$2(c,this.model.getLineMinColumn(c),c,this.model.getLineMaxColumn(c))}const r=this._configuration.options.get(50),s=this._getColorMap(),l=/[:;\\\/<>]/.test(r.fontFamily)||r.fontFamily===EDITOR_FONT_DEFAULTS.fontFamily;let d;return l?d=EDITOR_FONT_DEFAULTS.fontFamily:(d=r.fontFamily,d=d.replace(/"/g,"'"),/[,']/.test(d)||/[+ ]/.test(d)&&(d=`'${d}'`),d=`${d}, ${EDITOR_FONT_DEFAULTS.fontFamily}`),{mode:i,html:`<div style="color: ${s[1]};background-color: ${s[2]};font-family: ${d};font-weight: ${r.fontWeight};font-size: ${r.fontSize}px;line-height: ${r.lineHeight}px;white-space: pre;">`+this._getHTMLToCopy(n,s)+"</div>"}}_getHTMLToCopy(e,t){const i=e.startLineNumber,n=e.startColumn,r=e.endLineNumber,s=e.endColumn,a=this.getTabSize();let l="";for(let d=i;d<=r;d++){const c=this.model.tokenization.getLineTokens(d),u=c.getLineContent(),g=d===i?n-1:0,f=d===r?s-1:u.length;u===""?l+="<br>":l+=tokenizeLineToHTML(u,c.inflate(),t,g,f,a,isWindows)}return l}_getColorMap(){const e=TokenizationRegistry.getColorMap(),t=["#000000"];if(e)for(let i=1,n=e.length;i<n;i++)t[i]=Color.Format.CSS.formatHex(e[i]);return t}getPrimaryCursorState(){return this._cursor.getPrimaryCursorState()}getLastAddedCursorIndex(){return this._cursor.getLastAddedCursorIndex()}getCursorStates(){return this._cursor.getCursorStates()}setCursorStates(e,t,i){return 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){if(this._cursor.context.cursorConfig.readOnly){this._eventDispatcher.emitOutgoingEvent(new ReadOnlyEditAttemptEvent);return}this._withViewEventsCollector(e)}executeEdits(e,t,i){this._executeCursorEdit(n=>this._cursor.executeEdits(n,e,t,i))}startComposition(){this._executeCursorEdit(e=>this._cursor.startComposition(e))}endComposition(e){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,r){this._executeCursorEdit(s=>this._cursor.compositionType(s,e,t,i,n,r))}paste(e,t,i,n){this._executeCursorEdit(r=>this._cursor.paste(r,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,i=!1){this._withViewEventsCollector(n=>this._cursor.revealPrimary(n,e,i,0,t,0))}revealTopMostCursor(e){const t=this._cursor.getTopMostViewPosition(),i=new Range$2(t.lineNumber,t.column,t.lineNumber,t.column);this._withViewEventsCollector(n=>n.emitViewEvent(new ViewRevealRangeRequestEvent(e,!1,i,null,0,!0,0)))}revealBottomMostCursor(e){const t=this._cursor.getBottomMostViewPosition(),i=new Range$2(t.lineNumber,t.column,t.lineNumber,t.column);this._withViewEventsCollector(n=>n.emitViewEvent(new ViewRevealRangeRequestEvent(e,!1,i,null,0,!0,0)))}revealRange(e,t,i,n,r){this._withViewEventsCollector(s=>s.emitViewEvent(new ViewRevealRangeRequestEvent(e,!1,i,null,n,t,r)))}changeWhitespace(e){this.viewLayout.changeWhitespace(e)&&(this._eventDispatcher.emitSingleViewEvent(new ViewZonesChangedEvent$1),this._eventDispatcher.emitOutgoingEvent(new ViewZonesChangedEvent))}_withViewEventsCollector(e){try{const t=this._eventDispatcher.beginEmitViewEvents();return e(t)}finally{this._eventDispatcher.endEmitViewEvents()}}normalizePosition(e,t){return this._lines.normalizePosition(e,t)}getLineIndentColumn(e){return this._lines.getLineIndentColumn(e)}};class ViewportStart{static create(e){const t=e._setTrackedRange(null,new Range$2(1,1,1,1),1);return new ViewportStart(e,1,!1,t,0)}get viewLineNumber(){return this._viewLineNumber}get isValid(){return this._isValid}get modelTrackedRange(){return this._modelTrackedRange}get startLineDelta(){return this._startLineDelta}constructor(e,t,i,n,r){this._model=e,this._viewLineNumber=t,this._isValid=i,this._modelTrackedRange=n,this._startLineDelta=r}dispose(){this._model._setTrackedRange(this._modelTrackedRange,null,1)}update(e,t){const i=e.coordinatesConverter.convertViewPositionToModelPosition(new Position$1(t,e.getLineMinColumn(t))),n=e.model._setTrackedRange(this._modelTrackedRange,new Range$2(i.lineNumber,i.column,i.lineNumber,i.column),1),r=e.viewLayout.getVerticalOffsetForLineNumber(t),s=e.viewLayout.getCurrentScrollTop();this._viewLineNumber=t,this._isValid=!0,this._modelTrackedRange=n,this._startLineDelta=s-r}invalidate(){this._isValid=!1}}class OverviewRulerDecorations{constructor(){this._asMap=Object.create(null),this.asArray=[]}accept(e,t,i,n,r){const s=this._asMap[e];if(s){const a=s.data,l=a[a.length-3],d=a[a.length-1];if(l===r&&d+1>=i){n>d&&(a[a.length-1]=n);return}a.push(r,i,n)}else{const a=new OverviewRulerDecorationsGroup(e,t,[r,i,n]);this._asMap[e]=a,this.asArray.push(a)}}}class HiddenAreasModel{constructor(){this.hiddenAreas=new Map,this.shouldRecompute=!1,this.ranges=[]}setHiddenAreas(e,t){const i=this.hiddenAreas.get(e);i&&rangeArraysEqual(i,t)||(this.hiddenAreas.set(e,t),this.shouldRecompute=!0)}getMergedRanges(){if(!this.shouldRecompute)return this.ranges;this.shouldRecompute=!1;const e=Array.from(this.hiddenAreas.values()).reduce((t,i)=>mergeLineRangeArray(t,i),[]);return rangeArraysEqual(this.ranges,e)?this.ranges:(this.ranges=e,this.ranges)}}function mergeLineRangeArray(o,e){const t=[];let i=0,n=0;for(;i<o.length&&n<e.length;){const r=o[i],s=e[n];if(r.endLineNumber<s.startLineNumber-1)t.push(o[i++]);else if(s.endLineNumber<r.startLineNumber-1)t.push(e[n++]);else{const a=Math.min(r.startLineNumber,s.startLineNumber),l=Math.max(r.endLineNumber,s.endLineNumber);t.push(new Range$2(a,1,l,1)),i++,n++}}for(;i<o.length;)t.push(o[i++]);for(;n<e.length;)t.push(e[n++]);return t}function rangeArraysEqual(o,e){if(o.length!==e.length)return!1;for(let t=0;t<o.length;t++)if(!o[t].equalsRange(e[t]))return!1;return!0}class StableViewport{constructor(e,t){this.viewportStartModelPosition=e,this.startLineDelta=t}recoverViewportStart(e,t){if(!this.viewportStartModelPosition)return;const i=e.convertModelPositionToViewPosition(this.viewportStartModelPosition),n=t.getVerticalOffsetForLineNumber(i.lineNumber);t.setScrollPosition({scrollTop:n+this.startLineDelta},1)}}class ServiceCollection{constructor(...e){this._entries=new Map;for(const[t,i]of e)this.set(t,i)}set(e,t){const i=this._entries.get(e);return this._entries.set(e,t),i}get(e){return this._entries.get(e)}}var Severity$1;(function(o){o[o.Ignore=0]="Ignore",o[o.Info=1]="Info",o[o.Warning=2]="Warning",o[o.Error=3]="Error"})(Severity$1||(Severity$1={}));(function(o){const e="error",t="warning",i="warn",n="info",r="ignore";function s(l){return l?equalsIgnoreCase(e,l)?o.Error:equalsIgnoreCase(t,l)||equalsIgnoreCase(i,l)?o.Warning:equalsIgnoreCase(n,l)?o.Info:o.Ignore:o.Ignore}o.fromValue=s;function a(l){switch(l){case o.Error:return e;case o.Warning:return t;case o.Info:return n;default:return r}}o.toString=a})(Severity$1||(Severity$1={}));const Severity$2=Severity$1;var Severity=Severity$2;const INotificationService=createDecorator("notificationService");class NoOpNotification{}class ModelLineProjectionData{constructor(e,t,i,n,r){this.injectionOffsets=e,this.injectionOptions=t,this.breakOffsets=i,this.breakOffsetsVisibleColumn=n,this.wrappedTextIndentLength=r}getOutputLineCount(){return this.breakOffsets.length}getMinOutputOffset(e){return e>0?this.wrappedTextIndentLength:0}getLineLength(e){const t=e>0?this.breakOffsets[e-1]:0;let n=this.breakOffsets[e]-t;return e>0&&(n+=this.wrappedTextIndentLength),n}getMaxOutputOffset(e){return this.getLineLength(e)}translateToInputOffset(e,t){e>0&&(t=Math.max(0,t-this.wrappedTextIndentLength));let n=e===0?t:this.breakOffsets[e-1]+t;if(this.injectionOffsets!==null)for(let r=0;r<this.injectionOffsets.length&&n>this.injectionOffsets[r];r++)n<this.injectionOffsets[r]+this.injectionOptions[r].content.length?n=this.injectionOffsets[r]:n-=this.injectionOptions[r].content.length;return n}translateToOutputPosition(e,t=2){let i=e;if(this.injectionOffsets!==null)for(let n=0;n<this.injectionOffsets.length&&!(e<this.injectionOffsets[n]||t!==1&&e===this.injectionOffsets[n]);n++)i+=this.injectionOptions[n].content.length;return this.offsetInInputWithInjectionsToOutputPosition(i,t)}offsetInInputWithInjectionsToOutputPosition(e,t=2){let i=0,n=this.breakOffsets.length-1,r=0,s=0;for(;i<=n;){r=i+(n-i)/2|0;const l=this.breakOffsets[r];if(s=r>0?this.breakOffsets[r-1]:0,t===0)if(e<=s)n=r-1;else if(e>l)i=r+1;else break;else if(e<s)n=r-1;else if(e>=l)i=r+1;else break}let a=e-s;return r>0&&(a+=this.wrappedTextIndentLength),new OutputPosition(r,a)}normalizeOutputPosition(e,t,i){if(this.injectionOffsets!==null){const n=this.outputPositionToOffsetInInputWithInjections(e,t),r=this.normalizeOffsetInInputWithInjectionsAroundInjections(n,i);if(r!==n)return this.offsetInInputWithInjectionsToOutputPosition(r,i)}if(i===0){if(e>0&&t===this.getMinOutputOffset(e))return new OutputPosition(e-1,this.getMaxOutputOffset(e-1))}else if(i===1){const n=this.getOutputLineCount()-1;if(e<n&&t===this.getMaxOutputOffset(e))return new OutputPosition(e+1,this.getMinOutputOffset(e+1))}return new OutputPosition(e,t)}outputPositionToOffsetInInputWithInjections(e,t){return e>0&&(t=Math.max(0,t-this.wrappedTextIndentLength)),(e>0?this.breakOffsets[e-1]:0)+t}normalizeOffsetInInputWithInjectionsAroundInjections(e,t){const i=this.getInjectedTextAtOffset(e);if(!i)return e;if(t===2){if(e===i.offsetInInputWithInjections+i.length&&hasRightCursorStop(this.injectionOptions[i.injectedTextIndex].cursorStops))return i.offsetInInputWithInjections+i.length;{let n=i.offsetInInputWithInjections;if(hasLeftCursorStop(this.injectionOptions[i.injectedTextIndex].cursorStops))return n;let r=i.injectedTextIndex-1;for(;r>=0&&this.injectionOffsets[r]===this.injectionOffsets[i.injectedTextIndex]&&!(hasRightCursorStop(this.injectionOptions[r].cursorStops)||(n-=this.injectionOptions[r].content.length,hasLeftCursorStop(this.injectionOptions[r].cursorStops)));)r--;return n}}else if(t===1||t===4){let n=i.offsetInInputWithInjections+i.length,r=i.injectedTextIndex;for(;r+1<this.injectionOffsets.length&&this.injectionOffsets[r+1]===this.injectionOffsets[r];)n+=this.injectionOptions[r+1].content.length,r++;return n}else if(t===0||t===3){let n=i.offsetInInputWithInjections,r=i.injectedTextIndex;for(;r-1>=0&&this.injectionOffsets[r-1]===this.injectionOffsets[r];)n-=this.injectionOptions[r-1].content.length,r--;return n}assertNever()}getInjectedText(e,t){const i=this.outputPositionToOffsetInInputWithInjections(e,t),n=this.getInjectedTextAtOffset(i);return n?{options:this.injectionOptions[n.injectedTextIndex]}:null}getInjectedTextAtOffset(e){const t=this.injectionOffsets,i=this.injectionOptions;if(t!==null){let n=0;for(let r=0;r<t.length;r++){const s=i[r].content.length,a=t[r]+n,l=t[r]+n+s;if(a>e)break;if(e<=l)return{injectedTextIndex:r,offsetInInputWithInjections:a,length:s};n+=s}}}}function hasRightCursorStop(o){return o==null?!0:o===InjectedTextCursorStops.Right||o===InjectedTextCursorStops.Both}function hasLeftCursorStop(o){return o==null?!0:o===InjectedTextCursorStops.Left||o===InjectedTextCursorStops.Both}class OutputPosition{constructor(e,t){this.outputLineIndex=e,this.outputOffset=t}toString(){return`${this.outputLineIndex}:${this.outputOffset}`}toPosition(e){return new Position$1(e+this.outputLineIndex,this.outputOffset+1)}}class MonospaceLineBreaksComputerFactory{static create(e){return new MonospaceLineBreaksComputerFactory(e.get(132),e.get(131))}constructor(e,t){this.classifier=new WrappingCharacterClassifier(e,t)}createLineBreaksComputer(e,t,i,n,r){const s=[],a=[],l=[];return{addRequest:(d,c,u)=>{s.push(d),a.push(c),l.push(u)},finalize:()=>{const d=e.typicalFullwidthCharacterWidth/e.typicalHalfwidthCharacterWidth,c=[];for(let u=0,g=s.length;u<g;u++){const f=a[u],p=l[u];p&&!p.injectionOptions&&!f?c[u]=createLineBreaksFromPreviousLineBreaks(this.classifier,p,s[u],t,i,d,n,r):c[u]=createLineBreaks$1(this.classifier,s[u],f,t,i,d,n,r)}return arrPool1.length=0,arrPool2.length=0,c}}}}class WrappingCharacterClassifier extends CharacterClassifier{constructor(e,t){super(0);for(let i=0;i<e.length;i++)this.set(e.charCodeAt(i),1);for(let i=0;i<t.length;i++)this.set(t.charCodeAt(i),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 arrPool1=[],arrPool2=[];function createLineBreaksFromPreviousLineBreaks(o,e,t,i,n,r,s,a){if(n===-1)return null;const l=t.length;if(l<=1)return null;const d=a==="keepAll",c=e.breakOffsets,u=e.breakOffsetsVisibleColumn,g=computeWrappedTextIndentLength(t,i,n,r,s),f=n-g,p=arrPool1,m=arrPool2;let b=0,_=0,C=0,S=n;const y=c.length;let E=0;if(E>=0){let x=Math.abs(u[E]-S);for(;E+1<y;){const L=Math.abs(u[E+1]-S);if(L>=x)break;x=L,E++}}for(;E<y;){let x=E<0?0:c[E],L=E<0?0:u[E];_>x&&(x=_,L=C);let I=0,D=0,N=0,F=0;if(L<=S){let M=L,W=x===0?0:t.charCodeAt(x-1),V=x===0?0:o.get(W),A=!0;for(let P=x;P<l;P++){const k=P,T=t.charCodeAt(P);let U,z;if(isHighSurrogate(T)?(P++,U=0,z=2):(U=o.get(T),z=computeCharWidth(T,M,i,r)),k>_&&canBreak(W,V,T,U,d)&&(I=k,D=M),M+=z,M>S){k>_?(N=k,F=M-z):(N=P+1,F=M),M-D>f&&(I=0),A=!1;break}W=T,V=U}if(A){b>0&&(p[b]=c[c.length-1],m[b]=u[c.length-1],b++);break}}if(I===0){let M=L,W=t.charCodeAt(x),V=o.get(W),A=!1;for(let P=x-1;P>=_;P--){const k=P+1,T=t.charCodeAt(P);if(T===9){A=!0;break}let U,z;if(isLowSurrogate(T)?(P--,U=0,z=2):(U=o.get(T),z=isFullWidthCharacter(T)?r:1),M<=S){if(N===0&&(N=k,F=M),M<=S-f)break;if(canBreak(T,U,W,V,d)){I=k,D=M;break}}M-=z,W=T,V=U}if(I!==0){const P=f-(F-D);if(P<=i){const k=t.charCodeAt(N);let T;isHighSurrogate(k)?T=2:T=computeCharWidth(k,F,i,r),P-T<0&&(I=0)}}if(A){E--;continue}}if(I===0&&(I=N,D=F),I<=_){const M=t.charCodeAt(_);isHighSurrogate(M)?(I=_+2,D=C+2):(I=_+1,D=C+computeCharWidth(M,C,i,r))}for(_=I,p[b]=I,C=D,m[b]=D,b++,S=D+f;E<0||E<y&&u[E]<D;)E++;let R=Math.abs(u[E]-S);for(;E+1<y;){const M=Math.abs(u[E+1]-S);if(M>=R)break;R=M,E++}}return b===0?null:(p.length=b,m.length=b,arrPool1=e.breakOffsets,arrPool2=e.breakOffsetsVisibleColumn,e.breakOffsets=p,e.breakOffsetsVisibleColumn=m,e.wrappedTextIndentLength=g,e)}function createLineBreaks$1(o,e,t,i,n,r,s,a){const l=LineInjectedText.applyInjectedText(e,t);let d,c;if(t&&t.length>0?(d=t.map(D=>D.options),c=t.map(D=>D.column-1)):(d=null,c=null),n===-1)return d?new ModelLineProjectionData(c,d,[l.length],[],0):null;const u=l.length;if(u<=1)return d?new ModelLineProjectionData(c,d,[l.length],[],0):null;const g=a==="keepAll",f=computeWrappedTextIndentLength(l,i,n,r,s),p=n-f,m=[],b=[];let _=0,C=0,S=0,y=n,E=l.charCodeAt(0),x=o.get(E),L=computeCharWidth(E,0,i,r),I=1;isHighSurrogate(E)&&(L+=1,E=l.charCodeAt(1),x=o.get(E),I++);for(let D=I;D<u;D++){const N=D,F=l.charCodeAt(D);let R,M;isHighSurrogate(F)?(D++,R=0,M=2):(R=o.get(F),M=computeCharWidth(F,L,i,r)),canBreak(E,x,F,R,g)&&(C=N,S=L),L+=M,L>y&&((C===0||L-S>p)&&(C=N,S=L-M),m[_]=C,b[_]=S,_++,y=S+p,C=0),E=F,x=R}return _===0&&(!t||t.length===0)?null:(m[_]=u,b[_]=L,new ModelLineProjectionData(c,d,m,b,f))}function computeCharWidth(o,e,t,i){return o===9?t-e%t:isFullWidthCharacter(o)||o<32?i:1}function tabCharacterWidth(o,e){return e-o%e}function canBreak(o,e,t,i,n){return t!==32&&(e===2&&i!==2||e!==1&&i===1||!n&&e===3&&i!==2||!n&&i===3&&e!==1)}function computeWrappedTextIndentLength(o,e,t,i,n){let r=0;if(n!==0){const s=firstNonWhitespaceIndex(o);if(s!==-1){for(let l=0;l<s;l++){const d=o.charCodeAt(l)===9?tabCharacterWidth(r,e):1;r+=d}const a=n===3?2:n===2?1:0;for(let l=0;l<a;l++){const d=tabCharacterWidth(r,e);r+=d}r+i>t&&(r=0)}}return r}const ttPolicy$2=createTrustedTypesPolicy("domLineBreaksComputer",{createHTML:o=>o});class DOMLineBreaksComputerFactory{static create(){return new DOMLineBreaksComputerFactory}constructor(){}createLineBreaksComputer(e,t,i,n,r){const s=[],a=[];return{addRequest:(l,d,c)=>{s.push(l),a.push(d)},finalize:()=>createLineBreaks(s,e,t,i,n,r,a)}}}function createLineBreaks(o,e,t,i,n,r,s){var a;function l(D){const N=s[D];if(N){const F=LineInjectedText.applyInjectedText(o[D],N),R=N.map(W=>W.options),M=N.map(W=>W.column-1);return new ModelLineProjectionData(M,R,[F.length],[],0)}else return null}if(i===-1){const D=[];for(let N=0,F=o.length;N<F;N++)D[N]=l(N);return D}const d=Math.round(i*e.typicalHalfwidthCharacterWidth),u=Math.round(t*(n===3?2:n===2?1:0)),g=Math.ceil(e.spaceWidth*u),f=document.createElement("div");applyFontInfo(f,e);const p=new StringBuilder(1e4),m=[],b=[],_=[],C=[],S=[];for(let D=0;D<o.length;D++){const N=LineInjectedText.applyInjectedText(o[D],s[D]);let F=0,R=0,M=d;if(n!==0)if(F=firstNonWhitespaceIndex(N),F===-1)F=0;else{for(let P=0;P<F;P++){const k=N.charCodeAt(P)===9?t-R%t:1;R+=k}const A=Math.ceil(e.spaceWidth*R);A+e.typicalFullwidthCharacterWidth>d?(F=0,R=0):M=d-A}const W=N.substr(F),V=renderLine(W,R,t,M,p,g);m[D]=F,b[D]=R,_[D]=W,C[D]=V[0],S[D]=V[1]}const y=p.build(),E=(a=ttPolicy$2==null?void 0:ttPolicy$2.createHTML(y))!==null&&a!==void 0?a:y;f.innerHTML=E,f.style.position="absolute",f.style.top="10000",r==="keepAll"?(f.style.wordBreak="keep-all",f.style.overflowWrap="anywhere"):(f.style.wordBreak="inherit",f.style.overflowWrap="break-word"),document.body.appendChild(f);const x=document.createRange(),L=Array.prototype.slice.call(f.children,0),I=[];for(let D=0;D<o.length;D++){const N=L[D],F=readLineBreaks(x,N,_[D],C[D]);if(F===null){I[D]=l(D);continue}const R=m[D],M=b[D]+u,W=S[D],V=[];for(let T=0,U=F.length;T<U;T++)V[T]=W[F[T]];if(R!==0)for(let T=0,U=F.length;T<U;T++)F[T]+=R;let A,P;const k=s[D];k?(A=k.map(T=>T.options),P=k.map(T=>T.column-1)):(A=null,P=null),I[D]=new ModelLineProjectionData(P,A,F,V,M)}return document.body.removeChild(f),I}function renderLine(o,e,t,i,n,r){if(r!==0){const g=String(r);n.appendString('<div style="text-indent: -'),n.appendString(g),n.appendString("px; padding-left: "),n.appendString(g),n.appendString("px; box-sizing: border-box; width:")}else n.appendString('<div style="width:');n.appendString(String(i)),n.appendString('px;">');const s=o.length;let a=e,l=0;const d=[],c=[];let u=0<s?o.charCodeAt(0):0;n.appendString("<span>");for(let g=0;g<s;g++){g!==0&&g%16384===0&&n.appendString("</span><span>"),d[g]=l,c[g]=a;const f=u;u=g+1<s?o.charCodeAt(g+1):0;let p=1,m=1;switch(f){case 9:p=t-a%t,m=p;for(let b=1;b<=p;b++)b<p?n.appendCharCode(160):n.appendASCIICharCode(32);break;case 32:u===32?n.appendCharCode(160):n.appendASCIICharCode(32);break;case 60:n.appendString("<");break;case 62:n.appendString(">");break;case 38:n.appendString("&");break;case 0:n.appendString("�");break;case 65279:case 8232:case 8233:case 133:n.appendCharCode(65533);break;default:isFullWidthCharacter(f)&&m++,f<32?n.appendCharCode(9216+f):n.appendCharCode(f)}l+=p,a+=m}return n.appendString("</span>"),d[o.length]=l,c[o.length]=a,n.appendString("</div>"),[d,c]}function readLineBreaks(o,e,t,i){if(t.length<=1)return null;const n=Array.prototype.slice.call(e.children,0),r=[];try{discoverBreaks(o,n,i,0,null,t.length-1,null,r)}catch(s){return console.log(s),null}return r.length===0?null:(r.push(t.length),r)}function discoverBreaks(o,e,t,i,n,r,s,a){if(i===r||(n=n||readClientRect(o,e,t[i],t[i+1]),s=s||readClientRect(o,e,t[r],t[r+1]),Math.abs(n[0].top-s[0].top)<=.1))return;if(i+1===r){a.push(r);return}const l=i+(r-i)/2|0,d=readClientRect(o,e,t[l],t[l+1]);discoverBreaks(o,e,t,i,n,l,d,a),discoverBreaks(o,e,t,l,d,r,s,a)}function readClientRect(o,e,t,i){return o.setStart(e[t/16384|0].firstChild,t%16384),o.setEnd(e[i/16384|0].firstChild,i%16384),o.getClientRects()}class CodeEditorContributions extends Disposable{constructor(){super(),this._editor=null,this._instantiationService=null,this._instances=this._register(new DisposableMap),this._pending=new Map,this._finishedInstantiation=[],this._finishedInstantiation[0]=!1,this._finishedInstantiation[1]=!1,this._finishedInstantiation[2]=!1,this._finishedInstantiation[3]=!1}initialize(e,t,i){this._editor=e,this._instantiationService=i;for(const n of t){if(this._pending.has(n.id)){onUnexpectedError(new Error(`Cannot have two contributions with the same id ${n.id}`));continue}this._pending.set(n.id,n)}this._instantiateSome(0),this._register(runWhenIdle(()=>{this._instantiateSome(1)})),this._register(runWhenIdle(()=>{this._instantiateSome(2)})),this._register(runWhenIdle(()=>{this._instantiateSome(3)},5e3))}saveViewState(){const e={};for(const[t,i]of this._instances)typeof i.saveViewState=="function"&&(e[t]=i.saveViewState());return e}restoreViewState(e){for(const[t,i]of this._instances)typeof i.restoreViewState=="function"&&i.restoreViewState(e[t])}get(e){return this._instantiateById(e),this._instances.get(e)||null}onBeforeInteractionEvent(){this._instantiateSome(2)}onAfterModelAttached(){this._register(runWhenIdle(()=>{this._instantiateSome(1)},50))}_instantiateSome(e){if(this._finishedInstantiation[e])return;this._finishedInstantiation[e]=!0;const t=this._findPendingContributionsByInstantiation(e);for(const i of t)this._instantiateById(i.id)}_findPendingContributionsByInstantiation(e){const t=[];for(const[,i]of this._pending)i.instantiation===e&&t.push(i);return t}_instantiateById(e){const t=this._pending.get(e);if(t){if(this._pending.delete(e),!this._instantiationService||!this._editor)throw new Error("Cannot instantiate contributions before being initialized!");try{const i=this._instantiationService.createInstance(t.ctor,this._editor);this._instances.set(t.id,i),typeof i.restoreViewState=="function"&&t.instantiation!==0&&console.warn(`Editor contribution '${t.id}' should be eager instantiated because it uses saveViewState / restoreViewState.`)}catch(i){onUnexpectedError(i)}}}}var __decorate$20=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1W=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$1u=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},CodeEditorWidget_1;let EDITOR_ID=0,ModelData$1=class{constructor(e,t,i,n,r,s){this.model=e,this.viewModel=t,this.view=i,this.hasRealView=n,this.listenersToRemove=r,this.attachedView=s}dispose(){dispose(this.listenersToRemove),this.model.onBeforeDetached(this.attachedView),this.hasRealView&&this.view.dispose(),this.viewModel.dispose()}},CodeEditorWidget=CodeEditorWidget_1=class extends Disposable{get isSimpleWidget(){return this._configuration.isSimpleWidget}constructor(e,t,i,n,r,s,a,l,d,c,u,g){var f;super(),this.languageConfigurationService=u,this._deliveryQueue=createEventDeliveryQueue(),this._contributions=this._register(new CodeEditorContributions),this._onDidDispose=this._register(new Emitter$1),this.onDidDispose=this._onDidDispose.event,this._onDidChangeModelContent=this._register(new Emitter$1({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelContent=this._onDidChangeModelContent.event,this._onDidChangeModelLanguage=this._register(new Emitter$1({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelLanguage=this._onDidChangeModelLanguage.event,this._onDidChangeModelLanguageConfiguration=this._register(new Emitter$1({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelLanguageConfiguration=this._onDidChangeModelLanguageConfiguration.event,this._onDidChangeModelOptions=this._register(new Emitter$1({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelOptions=this._onDidChangeModelOptions.event,this._onDidChangeModelDecorations=this._register(new Emitter$1({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelDecorations=this._onDidChangeModelDecorations.event,this._onDidChangeModelTokens=this._register(new Emitter$1({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelTokens=this._onDidChangeModelTokens.event,this._onDidChangeConfiguration=this._register(new Emitter$1({deliveryQueue:this._deliveryQueue})),this.onDidChangeConfiguration=this._onDidChangeConfiguration.event,this._onDidChangeModel=this._register(new Emitter$1({deliveryQueue:this._deliveryQueue})),this.onDidChangeModel=this._onDidChangeModel.event,this._onDidChangeCursorPosition=this._register(new Emitter$1({deliveryQueue:this._deliveryQueue})),this.onDidChangeCursorPosition=this._onDidChangeCursorPosition.event,this._onDidChangeCursorSelection=this._register(new Emitter$1({deliveryQueue:this._deliveryQueue})),this.onDidChangeCursorSelection=this._onDidChangeCursorSelection.event,this._onDidAttemptReadOnlyEdit=this._register(new InteractionEmitter(this._contributions,this._deliveryQueue)),this.onDidAttemptReadOnlyEdit=this._onDidAttemptReadOnlyEdit.event,this._onDidLayoutChange=this._register(new Emitter$1({deliveryQueue:this._deliveryQueue})),this.onDidLayoutChange=this._onDidLayoutChange.event,this._editorTextFocus=this._register(new BooleanEventEmitter({deliveryQueue:this._deliveryQueue})),this.onDidFocusEditorText=this._editorTextFocus.onDidChangeToTrue,this.onDidBlurEditorText=this._editorTextFocus.onDidChangeToFalse,this._editorWidgetFocus=this._register(new BooleanEventEmitter({deliveryQueue:this._deliveryQueue})),this.onDidFocusEditorWidget=this._editorWidgetFocus.onDidChangeToTrue,this.onDidBlurEditorWidget=this._editorWidgetFocus.onDidChangeToFalse,this._onWillType=this._register(new InteractionEmitter(this._contributions,this._deliveryQueue)),this.onWillType=this._onWillType.event,this._onDidType=this._register(new InteractionEmitter(this._contributions,this._deliveryQueue)),this.onDidType=this._onDidType.event,this._onDidCompositionStart=this._register(new InteractionEmitter(this._contributions,this._deliveryQueue)),this.onDidCompositionStart=this._onDidCompositionStart.event,this._onDidCompositionEnd=this._register(new InteractionEmitter(this._contributions,this._deliveryQueue)),this.onDidCompositionEnd=this._onDidCompositionEnd.event,this._onDidPaste=this._register(new InteractionEmitter(this._contributions,this._deliveryQueue)),this.onDidPaste=this._onDidPaste.event,this._onMouseUp=this._register(new InteractionEmitter(this._contributions,this._deliveryQueue)),this.onMouseUp=this._onMouseUp.event,this._onMouseDown=this._register(new InteractionEmitter(this._contributions,this._deliveryQueue)),this.onMouseDown=this._onMouseDown.event,this._onMouseDrag=this._register(new InteractionEmitter(this._contributions,this._deliveryQueue)),this.onMouseDrag=this._onMouseDrag.event,this._onMouseDrop=this._register(new InteractionEmitter(this._contributions,this._deliveryQueue)),this.onMouseDrop=this._onMouseDrop.event,this._onMouseDropCanceled=this._register(new InteractionEmitter(this._contributions,this._deliveryQueue)),this.onMouseDropCanceled=this._onMouseDropCanceled.event,this._onDropIntoEditor=this._register(new InteractionEmitter(this._contributions,this._deliveryQueue)),this.onDropIntoEditor=this._onDropIntoEditor.event,this._onContextMenu=this._register(new InteractionEmitter(this._contributions,this._deliveryQueue)),this.onContextMenu=this._onContextMenu.event,this._onMouseMove=this._register(new InteractionEmitter(this._contributions,this._deliveryQueue)),this.onMouseMove=this._onMouseMove.event,this._onMouseLeave=this._register(new InteractionEmitter(this._contributions,this._deliveryQueue)),this.onMouseLeave=this._onMouseLeave.event,this._onMouseWheel=this._register(new InteractionEmitter(this._contributions,this._deliveryQueue)),this.onMouseWheel=this._onMouseWheel.event,this._onKeyUp=this._register(new InteractionEmitter(this._contributions,this._deliveryQueue)),this.onKeyUp=this._onKeyUp.event,this._onKeyDown=this._register(new InteractionEmitter(this._contributions,this._deliveryQueue)),this.onKeyDown=this._onKeyDown.event,this._onDidContentSizeChange=this._register(new Emitter$1({deliveryQueue:this._deliveryQueue})),this.onDidContentSizeChange=this._onDidContentSizeChange.event,this._onDidScrollChange=this._register(new Emitter$1({deliveryQueue:this._deliveryQueue})),this.onDidScrollChange=this._onDidScrollChange.event,this._onDidChangeViewZones=this._register(new Emitter$1({deliveryQueue:this._deliveryQueue})),this.onDidChangeViewZones=this._onDidChangeViewZones.event,this._onDidChangeHiddenAreas=this._register(new Emitter$1({deliveryQueue:this._deliveryQueue})),this.onDidChangeHiddenAreas=this._onDidChangeHiddenAreas.event,this._actions=new Map,this._bannerDomNode=null,this._dropIntoEditorDecorations=this.createDecorationsCollection(),r.willCreateCodeEditor();const p=Object.assign({},t);this._domElement=e,this._overflowWidgetsDomNode=p.overflowWidgetsDomNode,delete p.overflowWidgetsDomNode,this._id=++EDITOR_ID,this._decorationTypeKeysToIds={},this._decorationTypeSubtypes={},this._telemetryData=i.telemetryData,this._configuration=this._register(this._createConfiguration(i.isSimpleWidget||!1,p,c)),this._register(this._configuration.onDidChange(_=>{this._onDidChangeConfiguration.fire(_);const C=this._configuration.options;if(_.hasChanged(143)){const S=C.get(143);this._onDidLayoutChange.fire(S)}})),this._contextKeyService=this._register(a.createScoped(this._domElement)),this._notificationService=d,this._codeEditorService=r,this._commandService=s,this._themeService=l,this._register(new EditorContextKeysManager(this,this._contextKeyService)),this._register(new EditorModeContext(this,this._contextKeyService,g)),this._instantiationService=n.createChild(new ServiceCollection([IContextKeyService,this._contextKeyService])),this._modelData=null,this._focusTracker=new CodeEditorWidgetFocusTracker(e),this._register(this._focusTracker.onChange(()=>{this._editorWidgetFocus.setValue(this._focusTracker.hasFocus())})),this._contentWidgets={},this._overlayWidgets={},this._glyphMarginWidgets={};let m;Array.isArray(i.contributions)?m=i.contributions:m=EditorExtensionsRegistry.getEditorContributions(),this._contributions.initialize(this,m,this._instantiationService);for(const _ of EditorExtensionsRegistry.getEditorActions()){if(this._actions.has(_.id)){onUnexpectedError(new Error(`Cannot have two actions with the same id ${_.id}`));continue}const C=new InternalEditorAction(_.id,_.label,_.alias,(f=_.precondition)!==null&&f!==void 0?f:void 0,()=>this._instantiationService.invokeFunction(S=>Promise.resolve(_.runEditorCommand(S,this,null))),this._contextKeyService);this._actions.set(C.id,C)}const b=()=>!this._configuration.options.get(90)&&this._configuration.options.get(36).enabled;this._register(new DragAndDropObserver(this._domElement,{onDragEnter:()=>{},onDragOver:_=>{if(!b())return;const C=this.getTargetAtClientPoint(_.clientX,_.clientY);C!=null&&C.position&&this.showDropIndicatorAt(C.position)},onDrop:_=>__awaiter$1u(this,void 0,void 0,function*(){if(!b()||(this.removeDropIndicator(),!_.dataTransfer))return;const C=this.getTargetAtClientPoint(_.clientX,_.clientY);C!=null&&C.position&&this._onDropIntoEditor.fire({position:C.position,event:_})}),onDragLeave:()=>{this.removeDropIndicator()},onDragEnd:()=>{this.removeDropIndicator()}})),this._codeEditorService.addCodeEditor(this)}writeScreenReaderContent(e){var t;(t=this._modelData)===null||t===void 0||t.view.writeScreenReaderContent(e)}_createConfiguration(e,t,i){return new EditorConfiguration(e,t,this._domElement,i)}getId(){return this.getEditorType()+":"+this._id}getEditorType(){return EditorType.ICodeEditor}dispose(){this._codeEditorService.removeCodeEditor(this),this._focusTracker.dispose(),this._actions.clear(),this._contentWidgets={},this._overlayWidgets={},this._removeDecorationTypes(),this._postDetachModelCleanup(this._detachModel()),this._onDidDispose.fire(),super.dispose()}invokeWithinContext(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?WordOperations.getWordAtPosition(this._modelData.model,this._configuration.options.get(129),e):null}getValue(e=null){if(!this._modelData)return"";const t=!!(e&&e.preserveBOM);let i=0;return e&&e.lineEnding&&e.lineEnding===`
- `?i=1:e&&e.lineEnding&&e.lineEnding===`\r
- `&&(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(this._modelData===null&&t===null||this._modelData&&this._modelData.model===t)return;const i=this.hasTextFocus(),n=this._detachModel();this._attachModel(t),i&&this.hasModel()&&this.focus();const r={oldModelUrl:n?n.uri:null,newModelUrl:t?t.uri:null};this._removeDecorationTypes(),this._onDidChangeModel.fire(r),this._postDetachModelCleanup(n),this._contributions.onAfterModelAttached()}_removeDecorationTypes(){if(this._decorationTypeKeysToIds={},this._decorationTypeSubtypes){for(const e in this._decorationTypeSubtypes){const t=this._decorationTypeSubtypes[e];for(const 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 _getVerticalOffsetAfterPosition(e,t,i,n){const r=e.model.validatePosition({lineNumber:t,column:i}),s=e.viewModel.coordinatesConverter.convertModelPositionToViewPosition(r);return e.viewModel.viewLayout.getVerticalOffsetAfterLineNumber(s.lineNumber,n)}getTopForLineNumber(e,t=!1){return this._modelData?CodeEditorWidget_1._getVerticalOffsetForPosition(this._modelData,e,1,t):-1}getTopForPosition(e,t){return this._modelData?CodeEditorWidget_1._getVerticalOffsetForPosition(this._modelData,e,t,!1):-1}static _getVerticalOffsetForPosition(e,t,i,n=!1){const r=e.model.validatePosition({lineNumber:t,column:i}),s=e.viewModel.coordinatesConverter.convertModelPositionToViewPosition(r);return e.viewModel.viewLayout.getVerticalOffsetForLineNumber(s.lineNumber,n)}getBottomForLineNumber(e,t=!1){return this._modelData?CodeEditorWidget_1._getVerticalOffsetAfterPosition(this._modelData,e,1,t):-1}setHiddenAreas(e,t){var i;(i=this._modelData)===null||i===void 0||i.viewModel.setHiddenAreas(e.map(n=>Range$2.lift(n)),t)}getVisibleColumnFromPosition(e){if(!this._modelData)return e.column;const t=this._modelData.model.validatePosition(e),i=this._modelData.model.getOptions().tabSize;return CursorColumns.visibleColumnFromColumn(this._modelData.model.getLineContent(t.lineNumber),t.column,i)+1}getPosition(){return this._modelData?this._modelData.viewModel.getPosition():null}setPosition(e,t="api"){if(this._modelData){if(!Position$1.isIPosition(e))throw new Error("Invalid arguments");this._modelData.viewModel.setSelections(t,[{selectionStartLineNumber:e.lineNumber,selectionStartColumn:e.column,positionLineNumber:e.lineNumber,positionColumn:e.column}])}}_sendRevealRange(e,t,i,n){if(!this._modelData)return;if(!Range$2.isIRange(e))throw new Error("Invalid arguments");const r=this._modelData.model.validateRange(e),s=this._modelData.viewModel.coordinatesConverter.convertModelRangeToViewRange(r);this._modelData.viewModel.revealRange("api",i,s,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(typeof e!="number")throw new Error("Invalid arguments");this._sendRevealRange(new Range$2(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(!Position$1.isIPosition(e))throw new Error("Invalid arguments");this._sendRevealRange(new Range$2(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,t="api"){const i=Selection$1.isISelection(e),n=Range$2.isIRange(e);if(!i&&!n)throw new Error("Invalid arguments");if(i)this._setSelectionImpl(e,t);else if(n){const r={selectionStartLineNumber:e.startLineNumber,selectionStartColumn:e.startColumn,positionLineNumber:e.endLineNumber,positionColumn:e.endColumn};this._setSelectionImpl(r,t)}}_setSelectionImpl(e,t){if(!this._modelData)return;const i=new Selection$1(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn);this._modelData.viewModel.setSelections(t,[i])}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(typeof e!="number"||typeof t!="number")throw new Error("Invalid arguments");this._sendRevealRange(new Range$2(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(!Range$2.isIRange(e))throw new Error("Invalid arguments");this._sendRevealRange(Range$2.lift(e),t,i,n)}setSelections(e,t="api",i=0){if(this._modelData){if(!e||e.length===0)throw new Error("Invalid arguments");for(let n=0,r=e.length;n<r;n++)if(!Selection$1.isISelection(e[n]))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(typeof e!="number")throw new Error("Invalid arguments");this._modelData.viewModel.viewLayout.setScrollPosition({scrollLeft:e},t)}}setScrollTop(e,t=1){if(this._modelData){if(typeof e!="number")throw new Error("Invalid arguments");this._modelData.viewModel.viewLayout.setScrollPosition({scrollTop:e},t)}}setScrollPosition(e,t=1){this._modelData&&this._modelData.viewModel.viewLayout.setScrollPosition(e,t)}hasPendingScrollAnimation(){return this._modelData?this._modelData.viewModel.viewLayout.hasPendingScrollAnimation():!1}saveViewState(){if(!this._modelData)return null;const e=this._contributions.saveViewState(),t=this._modelData.viewModel.saveCursorState(),i=this._modelData.viewModel.saveState();return{cursorState:t,viewState:i,contributionsState:e}}restoreViewState(e){if(!this._modelData||!this._modelData.hasRealView)return;const t=e;if(t&&t.cursorState&&t.viewState){const i=t.cursorState;Array.isArray(i)?i.length>0&&this._modelData.viewModel.restoreCursorState(i):this._modelData.viewModel.restoreCursorState([i]),this._contributions.restoreViewState(t.contributionsState||{});const n=this._modelData.viewModel.reduceRestoreState(t.viewState);this._modelData.view.restoreState(n)}}handleInitialized(){var e;(e=this._getViewModel())===null||e===void 0||e.visibleLinesStabilized()}getContribution(e){return this._contributions.get(e)}getActions(){return Array.from(this._actions.values())}getSupportedActions(){let e=this.getActions();return e=e.filter(t=>t.isSupported()),e}getAction(e){return this._actions.get(e)||null}trigger(e,t,i){switch(i=i||{},t){case"compositionStart":this._startComposition();return;case"compositionEnd":this._endComposition(e);return;case"type":{const r=i;this._type(e,r.text||"");return}case"replacePreviousChar":{const r=i;this._compositionType(e,r.text||"",r.replaceCharCnt||0,0,0);return}case"compositionType":{const r=i;this._compositionType(e,r.text||"",r.replacePrevCharCnt||0,r.replaceNextCharCnt||0,r.positionDelta||0);return}case"paste":{const r=i;this._paste(e,r.text||"",r.pasteOnNewLine||!1,r.multicursorText||null,r.mode||null);return}case"cut":this._cut(e);return}const n=this.getAction(t);if(n){Promise.resolve(n.run(i)).then(void 0,onUnexpectedError);return}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||t.length===0||(e==="keyboard"&&this._onWillType.fire(t),this._modelData.viewModel.type(t,e),e==="keyboard"&&this._onDidType.fire(t))}_compositionType(e,t,i,n,r){this._modelData&&this._modelData.viewModel.compositionType(t,i,n,r,e)}_paste(e,t,i,n,r){if(!this._modelData||t.length===0)return;const s=this._modelData.viewModel,a=s.getSelection().getStartPosition();s.paste(t,i,n,e);const l=s.getSelection().getStartPosition();e==="keyboard"&&this._onDidPaste.fire({range:new Range$2(a.lineNumber,a.column,l.lineNumber,l.column),languageId:r})}_cut(e){this._modelData&&this._modelData.viewModel.cut(e)}_triggerEditorCommand(e,t,i){const n=EditorExtensionsRegistry.getEditorCommand(t);return n?(i=i||{},i.source=e,this._instantiationService.invokeFunction(r=>{Promise.resolve(n.runEditorCommand(r,this,i)).then(void 0,onUnexpectedError)}),!0):!1}_getViewModel(){return this._modelData?this._modelData.viewModel:null}pushUndoStop(){return!this._modelData||this._configuration.options.get(90)?!1:(this._modelData.model.pushStackElement(),!0)}popUndoStop(){return!this._modelData||this._configuration.options.get(90)?!1:(this._modelData.model.popStackElement(),!0)}executeEdits(e,t,i){if(!this._modelData||this._configuration.options.get(90))return!1;let n;return i?Array.isArray(i)?n=()=>i:n=i:n=()=>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)}createDecorationsCollection(e){return new EditorDecorationsCollection(this,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,filterValidationDecorations(this._configuration.options)):null}getDecorationsInRange(e){return this._modelData?this._modelData.model.getDecorationsInRange(e,this._id,filterValidationDecorations(this._configuration.options)):null}deltaDecorations(e,t){return this._modelData?e.length===0&&t.length===0?e:this._modelData.model.deltaDecorations(e,t,this._id):[]}removeDecorations(e){!this._modelData||e.length===0||this._modelData.model.changeDecorations(t=>{t.deltaDecorations(e,[])})}removeDecorationsByType(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(143)}createOverviewRuler(e){return!this._modelData||!this._modelData.hasRealView?null:this._modelData.view.createOverviewRuler(e)}getContainerDomNode(){return this._domElement}getDomNode(){return!this._modelData||!this._modelData.hasRealView?null:this._modelData.view.domNode.domNode}delegateVerticalScrollbarPointerDown(e){!this._modelData||!this._modelData.hasRealView||this._modelData.view.delegateVerticalScrollbarPointerDown(e)}delegateScrollFromMouseWheelEvent(e){!this._modelData||!this._modelData.hasRealView||this._modelData.view.delegateScrollFromMouseWheelEvent(e)}layout(e){this._configuration.observeContainer(e),this.render()}focus(){!this._modelData||!this._modelData.hasRealView||this._modelData.view.focus()}hasTextFocus(){return!this._modelData||!this._modelData.hasRealView?!1:this._modelData.view.isFocused()}hasWidgetFocus(){return this._focusTracker&&this._focusTracker.hasFocus()}addContentWidget(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 i=this._contentWidgets[t];delete this._contentWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeContentWidget(i)}}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 i=this._overlayWidgets[t];delete this._overlayWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeOverlayWidget(i)}}addGlyphMarginWidget(e){const t={widget:e,position:e.getPosition()};this._glyphMarginWidgets.hasOwnProperty(e.getId())&&console.warn("Overwriting a glyph margin widget with the same id."),this._glyphMarginWidgets[e.getId()]=t,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addGlyphMarginWidget(t)}layoutGlyphMarginWidget(e){const t=e.getId();if(this._glyphMarginWidgets.hasOwnProperty(t)){const i=this._glyphMarginWidgets[t];i.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutGlyphMarginWidget(i)}}removeGlyphMarginWidget(e){const t=e.getId();if(this._glyphMarginWidgets.hasOwnProperty(t)){const i=this._glyphMarginWidgets[t];delete this._glyphMarginWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeGlyphMarginWidget(i)}}changeViewZones(e){!this._modelData||!this._modelData.hasRealView||this._modelData.view.change(e)}getTargetAtClientPoint(e,t){return!this._modelData||!this._modelData.hasRealView?null:this._modelData.view.getTargetAtClientPoint(e,t)}getScrolledVisiblePosition(e){if(!this._modelData||!this._modelData.hasRealView)return null;const t=this._modelData.model.validatePosition(e),i=this._configuration.options,n=i.get(143),r=CodeEditorWidget_1._getVerticalOffsetForPosition(this._modelData,t.lineNumber,t.column)-this.getScrollTop(),s=this._modelData.view.getOffsetForColumn(t.lineNumber,t.column)+n.glyphMarginWidth+n.lineNumbersWidth+n.decorationsWidth-this.getScrollLeft();return{top:r,left:s,height:i.get(66)}}getOffsetForColumn(e,t){return!this._modelData||!this._modelData.hasRealView?-1:this._modelData.view.getOffsetForColumn(e,t)}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){applyFontInfo(e,this._configuration.options.get(50))}setBanner(e,t){this._bannerDomNode&&this._domElement.contains(this._bannerDomNode)&&this._domElement.removeChild(this._bannerDomNode),this._bannerDomNode=e,this._configuration.setReservedHeight(e?t:0),this._bannerDomNode&&this._domElement.prepend(this._bannerDomNode)}_attachModel(e){if(!e){this._modelData=null;return}const t=[];this._domElement.setAttribute("data-mode-id",e.getLanguageId()),this._configuration.setIsDominatedByLongLines(e.isDominatedByLongLines()),this._configuration.setModelLineCount(e.getLineCount());const i=e.onBeforeAttached(),n=new ViewModel$1(this._id,this._configuration,e,DOMLineBreaksComputerFactory.create(),MonospaceLineBreaksComputerFactory.create(this._configuration.options),a=>scheduleAtNextAnimationFrame(a),this.languageConfigurationService,this._themeService,i);t.push(e.onWillDispose(()=>this.setModel(null))),t.push(n.onEvent(a=>{switch(a.kind){case 0:this._onDidContentSizeChange.fire(a);break;case 1:this._editorTextFocus.setValue(a.hasFocus);break;case 2:this._onDidScrollChange.fire(a);break;case 3:this._onDidChangeViewZones.fire();break;case 4:this._onDidChangeHiddenAreas.fire();break;case 5:this._onDidAttemptReadOnlyEdit.fire();break;case 6:{if(a.reachedMaxCursorCount){const u=this.getOption(79),g=localize("cursors.maximum","The number of cursors has been limited to {0}. Consider using [find and replace](https://code.visualstudio.com/docs/editor/codebasics#_find-and-replace) for larger changes or increase the editor multi cursor limit setting.",u);this._notificationService.prompt(Severity.Warning,g,[{label:"Find and Replace",run:()=>{this._commandService.executeCommand("editor.action.startFindReplaceAction")}},{label:localize("goToSetting","Increase Multi Cursor Limit"),run:()=>{this._commandService.executeCommand("workbench.action.openSettings2",{query:"editor.multiCursorLimit"})}}])}const l=[];for(let u=0,g=a.selections.length;u<g;u++)l[u]=a.selections[u].getPosition();const d={position:l[0],secondaryPositions:l.slice(1),reason:a.reason,source:a.source};this._onDidChangeCursorPosition.fire(d);const c={selection:a.selections[0],secondarySelections:a.selections.slice(1),modelVersionId:a.modelVersionId,oldSelections:a.oldSelections,oldModelVersionId:a.oldModelVersionId,source:a.source,reason:a.reason};this._onDidChangeCursorSelection.fire(c);break}case 7:this._onDidChangeModelDecorations.fire(a.event);break;case 8:this._domElement.setAttribute("data-mode-id",e.getLanguageId()),this._onDidChangeModelLanguage.fire(a.event);break;case 9:this._onDidChangeModelLanguageConfiguration.fire(a.event);break;case 10:this._onDidChangeModelContent.fire(a.event);break;case 11:this._onDidChangeModelOptions.fire(a.event);break;case 12:this._onDidChangeModelTokens.fire(a.event);break}}));const[r,s]=this._createView(n);if(s){this._domElement.appendChild(r.domNode.domNode);let a=Object.keys(this._contentWidgets);for(let l=0,d=a.length;l<d;l++){const c=a[l];r.addContentWidget(this._contentWidgets[c])}a=Object.keys(this._overlayWidgets);for(let l=0,d=a.length;l<d;l++){const c=a[l];r.addOverlayWidget(this._overlayWidgets[c])}a=Object.keys(this._glyphMarginWidgets);for(let l=0,d=a.length;l<d;l++){const c=a[l];r.addGlyphMarginWidget(this._glyphMarginWidgets[c])}r.render(!1,!0),r.domNode.domNode.setAttribute("data-uri",e.uri.toString())}this._modelData=new ModelData$1(e,n,r,s,t,i)}_createView(e){let t;this.isSimpleWidget?t={paste:(r,s,a,l)=>{this._paste("keyboard",r,s,a,l)},type:r=>{this._type("keyboard",r)},compositionType:(r,s,a,l)=>{this._compositionType("keyboard",r,s,a,l)},startComposition:()=>{this._startComposition()},endComposition:()=>{this._endComposition("keyboard")},cut:()=>{this._cut("keyboard")}}:t={paste:(r,s,a,l)=>{const d={text:r,pasteOnNewLine:s,multicursorText:a,mode:l};this._commandService.executeCommand("paste",d)},type:r=>{const s={text:r};this._commandService.executeCommand("type",s)},compositionType:(r,s,a,l)=>{if(a||l){const d={text:r,replacePrevCharCnt:s,replaceNextCharCnt:a,positionDelta:l};this._commandService.executeCommand("compositionType",d)}else{const d={text:r,replaceCharCnt:s};this._commandService.executeCommand("replacePreviousChar",d)}},startComposition:()=>{this._commandService.executeCommand("compositionStart",{})},endComposition:()=>{this._commandService.executeCommand("compositionEnd",{})},cut:()=>{this._commandService.executeCommand("cut",{})}};const i=new ViewUserInputEvents(e.coordinatesConverter);return i.onKeyDown=r=>this._onKeyDown.fire(r),i.onKeyUp=r=>this._onKeyUp.fire(r),i.onContextMenu=r=>this._onContextMenu.fire(r),i.onMouseMove=r=>this._onMouseMove.fire(r),i.onMouseLeave=r=>this._onMouseLeave.fire(r),i.onMouseDown=r=>this._onMouseDown.fire(r),i.onMouseUp=r=>this._onMouseUp.fire(r),i.onMouseDrag=r=>this._onMouseDrag.fire(r),i.onMouseDrop=r=>this._onMouseDrop.fire(r),i.onMouseDropCanceled=r=>this._onMouseDropCanceled.fire(r),i.onMouseWheel=r=>this._onMouseWheel.fire(r),[new View$1(t,this._configuration,this._themeService.getColorTheme(),e,i,this._overflowWidgetsDomNode,this._instantiationService),!0]}_postDetachModelCleanup(e){e==null||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),this._bannerDomNode&&this._domElement.contains(this._bannerDomNode)&&this._domElement.removeChild(this._bannerDomNode),e}_removeDecorationType(e){this._codeEditorService.removeDecorationType(e)}hasModel(){return this._modelData!==null}showDropIndicatorAt(e){const t=[{range:new Range$2(e.lineNumber,e.column,e.lineNumber,e.column),options:CodeEditorWidget_1.dropIntoEditorDecorationOptions}];this._dropIntoEditorDecorations.set(t),this.revealPosition(e,1)}removeDropIndicator(){this._dropIntoEditorDecorations.clear()}setContextValue(e,t){this._contextKeyService.createKey(e,t)}};CodeEditorWidget.dropIntoEditorDecorationOptions=ModelDecorationOptions.register({description:"workbench-dnd-target",className:"dnd-target"});CodeEditorWidget=CodeEditorWidget_1=__decorate$20([__param$1W(3,IInstantiationService),__param$1W(4,ICodeEditorService),__param$1W(5,ICommandService),__param$1W(6,IContextKeyService),__param$1W(7,IThemeService),__param$1W(8,INotificationService),__param$1W(9,IAccessibilityService),__param$1W(10,ILanguageConfigurationService),__param$1W(11,ILanguageFeaturesService)],CodeEditorWidget);class BooleanEventEmitter extends Disposable{constructor(e){super(),this._emitterOptions=e,this._onDidChangeToTrue=this._register(new Emitter$1(this._emitterOptions)),this.onDidChangeToTrue=this._onDidChangeToTrue.event,this._onDidChangeToFalse=this._register(new Emitter$1(this._emitterOptions)),this.onDidChangeToFalse=this._onDidChangeToFalse.event,this._value=0}setValue(e){const t=e?2:1;this._value!==t&&(this._value=t,this._value===2?this._onDidChangeToTrue.fire():this._value===1&&this._onDidChangeToFalse.fire())}}class InteractionEmitter extends Emitter$1{constructor(e,t){super({deliveryQueue:t}),this._contributions=e}fire(e){this._contributions.onBeforeInteractionEvent(),super.fire(e)}}class EditorContextKeysManager extends Disposable{constructor(e,t){super(),this._editor=e,t.createKey("editorId",e.getId()),this._editorSimpleInput=EditorContextKeys.editorSimpleInput.bindTo(t),this._editorFocus=EditorContextKeys.focus.bindTo(t),this._textInputFocus=EditorContextKeys.textInputFocus.bindTo(t),this._editorTextFocus=EditorContextKeys.editorTextFocus.bindTo(t),this._tabMovesFocus=EditorContextKeys.tabMovesFocus.bindTo(t),this._editorReadonly=EditorContextKeys.readOnly.bindTo(t),this._inDiffEditor=EditorContextKeys.inDiffEditor.bindTo(t),this._editorColumnSelection=EditorContextKeys.columnSelection.bindTo(t),this._hasMultipleSelections=EditorContextKeys.hasMultipleSelections.bindTo(t),this._hasNonEmptySelection=EditorContextKeys.hasNonEmptySelection.bindTo(t),this._canUndo=EditorContextKeys.canUndo.bindTo(t),this._canRedo=EditorContextKeys.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._register(TabFocus.onDidChangeTabFocus(i=>this._tabMovesFocus.set(i))),this._updateFromConfig(),this._updateFromSelection(),this._updateFromFocus(),this._updateFromModel(),this._editorSimpleInput.set(this._editor.isSimpleWidget)}_updateFromConfig(){const e=this._editor.getOptions();this._tabMovesFocus.set(TabFocus.getTabFocusMode()),this._editorReadonly.set(e.get(90)),this._inDiffEditor.set(e.get(61)),this._editorColumnSelection.set(e.get(22))}_updateFromSelection(){const e=this._editor.getSelections();e?(this._hasMultipleSelections.set(e.length>1),this._hasNonEmptySelection.set(e.some(t=>!t.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(!!(e&&e.canUndo())),this._canRedo.set(!!(e&&e.canRedo()))}}class EditorModeContext extends Disposable{constructor(e,t,i){super(),this._editor=e,this._contextKeyService=t,this._languageFeaturesService=i,this._langId=EditorContextKeys.languageId.bindTo(t),this._hasCompletionItemProvider=EditorContextKeys.hasCompletionItemProvider.bindTo(t),this._hasCodeActionsProvider=EditorContextKeys.hasCodeActionsProvider.bindTo(t),this._hasCodeLensProvider=EditorContextKeys.hasCodeLensProvider.bindTo(t),this._hasDefinitionProvider=EditorContextKeys.hasDefinitionProvider.bindTo(t),this._hasDeclarationProvider=EditorContextKeys.hasDeclarationProvider.bindTo(t),this._hasImplementationProvider=EditorContextKeys.hasImplementationProvider.bindTo(t),this._hasTypeDefinitionProvider=EditorContextKeys.hasTypeDefinitionProvider.bindTo(t),this._hasHoverProvider=EditorContextKeys.hasHoverProvider.bindTo(t),this._hasDocumentHighlightProvider=EditorContextKeys.hasDocumentHighlightProvider.bindTo(t),this._hasDocumentSymbolProvider=EditorContextKeys.hasDocumentSymbolProvider.bindTo(t),this._hasReferenceProvider=EditorContextKeys.hasReferenceProvider.bindTo(t),this._hasRenameProvider=EditorContextKeys.hasRenameProvider.bindTo(t),this._hasSignatureHelpProvider=EditorContextKeys.hasSignatureHelpProvider.bindTo(t),this._hasInlayHintsProvider=EditorContextKeys.hasInlayHintsProvider.bindTo(t),this._hasDocumentFormattingProvider=EditorContextKeys.hasDocumentFormattingProvider.bindTo(t),this._hasDocumentSelectionFormattingProvider=EditorContextKeys.hasDocumentSelectionFormattingProvider.bindTo(t),this._hasMultipleDocumentFormattingProvider=EditorContextKeys.hasMultipleDocumentFormattingProvider.bindTo(t),this._hasMultipleDocumentSelectionFormattingProvider=EditorContextKeys.hasMultipleDocumentSelectionFormattingProvider.bindTo(t),this._isInWalkThrough=EditorContextKeys.isInWalkThroughSnippet.bindTo(t);const n=()=>this._update();this._register(e.onDidChangeModel(n)),this._register(e.onDidChangeModelLanguage(n)),this._register(i.completionProvider.onDidChange(n)),this._register(i.codeActionProvider.onDidChange(n)),this._register(i.codeLensProvider.onDidChange(n)),this._register(i.definitionProvider.onDidChange(n)),this._register(i.declarationProvider.onDidChange(n)),this._register(i.implementationProvider.onDidChange(n)),this._register(i.typeDefinitionProvider.onDidChange(n)),this._register(i.hoverProvider.onDidChange(n)),this._register(i.documentHighlightProvider.onDidChange(n)),this._register(i.documentSymbolProvider.onDidChange(n)),this._register(i.referenceProvider.onDidChange(n)),this._register(i.renameProvider.onDidChange(n)),this._register(i.documentFormattingEditProvider.onDidChange(n)),this._register(i.documentRangeFormattingEditProvider.onDidChange(n)),this._register(i.signatureHelpProvider.onDidChange(n)),this._register(i.inlayHintsProvider.onDidChange(n)),n()}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();if(!e){this.reset();return}this._contextKeyService.bufferChangeEvents(()=>{this._langId.set(e.getLanguageId()),this._hasCompletionItemProvider.set(this._languageFeaturesService.completionProvider.has(e)),this._hasCodeActionsProvider.set(this._languageFeaturesService.codeActionProvider.has(e)),this._hasCodeLensProvider.set(this._languageFeaturesService.codeLensProvider.has(e)),this._hasDefinitionProvider.set(this._languageFeaturesService.definitionProvider.has(e)),this._hasDeclarationProvider.set(this._languageFeaturesService.declarationProvider.has(e)),this._hasImplementationProvider.set(this._languageFeaturesService.implementationProvider.has(e)),this._hasTypeDefinitionProvider.set(this._languageFeaturesService.typeDefinitionProvider.has(e)),this._hasHoverProvider.set(this._languageFeaturesService.hoverProvider.has(e)),this._hasDocumentHighlightProvider.set(this._languageFeaturesService.documentHighlightProvider.has(e)),this._hasDocumentSymbolProvider.set(this._languageFeaturesService.documentSymbolProvider.has(e)),this._hasReferenceProvider.set(this._languageFeaturesService.referenceProvider.has(e)),this._hasRenameProvider.set(this._languageFeaturesService.renameProvider.has(e)),this._hasSignatureHelpProvider.set(this._languageFeaturesService.signatureHelpProvider.has(e)),this._hasInlayHintsProvider.set(this._languageFeaturesService.inlayHintsProvider.has(e)),this._hasDocumentFormattingProvider.set(this._languageFeaturesService.documentFormattingEditProvider.has(e)||this._languageFeaturesService.documentRangeFormattingEditProvider.has(e)),this._hasDocumentSelectionFormattingProvider.set(this._languageFeaturesService.documentRangeFormattingEditProvider.has(e)),this._hasMultipleDocumentFormattingProvider.set(this._languageFeaturesService.documentFormattingEditProvider.all(e).length+this._languageFeaturesService.documentRangeFormattingEditProvider.all(e).length>1),this._hasMultipleDocumentSelectionFormattingProvider.set(this._languageFeaturesService.documentRangeFormattingEditProvider.all(e).length>1),this._isInWalkThrough.set(e.uri.scheme===Schemas.walkThroughSnippet)})}}class CodeEditorWidgetFocusTracker extends Disposable{constructor(e){super(),this._onChange=this._register(new Emitter$1),this.onChange=this._onChange.event,this._hasFocus=!1,this._domFocusTracker=this._register(trackFocus(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}}class EditorDecorationsCollection{get length(){return this._decorationIds.length}constructor(e,t){this._editor=e,this._decorationIds=[],this._isChangingDecorations=!1,Array.isArray(t)&&t.length>0&&this.set(t)}onDidChange(e,t,i){return this._editor.onDidChangeModelDecorations(n=>{this._isChangingDecorations||e.call(t,n)},i)}getRange(e){return!this._editor.hasModel()||e>=this._decorationIds.length?null:this._editor.getModel().getDecorationRange(this._decorationIds[e])}getRanges(){if(!this._editor.hasModel())return[];const e=this._editor.getModel(),t=[];for(const i of this._decorationIds){const n=e.getDecorationRange(i);n&&t.push(n)}return t}has(e){return this._decorationIds.includes(e.id)}clear(){this._decorationIds.length!==0&&this.set([])}set(e){try{this._isChangingDecorations=!0,this._editor.changeDecorations(t=>{this._decorationIds=t.deltaDecorations(this._decorationIds,e)})}finally{this._isChangingDecorations=!1}return this._decorationIds}}const squigglyStart=encodeURIComponent("<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 3' enable-background='new 0 0 6 3' height='3' width='6'><g fill='"),squigglyEnd=encodeURIComponent("'><polygon points='5.5,0 2.5,3 1.1,3 4.1,0'/><polygon points='4,0 6,2 6,0.6 5.4,0'/><polygon points='0,2 1,3 2.4,3 0,0.6'/></g></svg>");function getSquigglySVGData(o){return squigglyStart+encodeURIComponent(o.toString())+squigglyEnd}const dotdotdotStart=encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" height="3" width="12"><g fill="'),dotdotdotEnd=encodeURIComponent('"><circle cx="1" cy="1" r="1"/><circle cx="5" cy="1" r="1"/><circle cx="9" cy="1" r="1"/></g></svg>');function getDotDotDotSVGData(o){return dotdotdotStart+encodeURIComponent(o.toString())+dotdotdotEnd}registerThemingParticipant((o,e)=>{const t=o.getColor(editorErrorForeground);t&&e.addRule(`.monaco-editor .squiggly-error { background: url("data:image/svg+xml,${getSquigglySVGData(t)}") repeat-x bottom left; }`);const i=o.getColor(editorWarningForeground);i&&e.addRule(`.monaco-editor .squiggly-warning { background: url("data:image/svg+xml,${getSquigglySVGData(i)}") repeat-x bottom left; }`);const n=o.getColor(editorInfoForeground);n&&e.addRule(`.monaco-editor .squiggly-info { background: url("data:image/svg+xml,${getSquigglySVGData(n)}") repeat-x bottom left; }`);const r=o.getColor(editorHintForeground);r&&e.addRule(`.monaco-editor .squiggly-hint { background: url("data:image/svg+xml,${getDotDotDotSVGData(r)}") no-repeat bottom left; }`);const s=o.getColor(editorUnnecessaryCodeOpacity);s&&e.addRule(`.monaco-editor.showUnused .squiggly-inline-unnecessary { opacity: ${s.rgba.a}; }`)});var __decorate$1$=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1V=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$1t=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};let AbstractCodeEditorService=class extends Disposable{constructor(e){super(),this._themeService=e,this._onWillCreateCodeEditor=this._register(new Emitter$1),this._onCodeEditorAdd=this._register(new Emitter$1),this.onCodeEditorAdd=this._onCodeEditorAdd.event,this._onCodeEditorRemove=this._register(new Emitter$1),this.onCodeEditorRemove=this._onCodeEditorRemove.event,this._onWillCreateDiffEditor=this._register(new Emitter$1),this._onDiffEditorAdd=this._register(new Emitter$1),this.onDiffEditorAdd=this._onDiffEditorAdd.event,this._onDiffEditorRemove=this._register(new Emitter$1),this.onDiffEditorRemove=this._onDiffEditorRemove.event,this._decorationOptionProviders=new Map,this._codeEditorOpenHandlers=new LinkedList,this._modelProperties=new Map,this._codeEditors=Object.create(null),this._diffEditors=Object.create(null),this._globalStyleSheet=null}willCreateCodeEditor(){this._onWillCreateCodeEditor.fire()}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])}willCreateDiffEditor(){this._onWillCreateDiffEditor.fire()}addDiffEditor(e){this._diffEditors[e.getId()]=e,this._onDiffEditorAdd.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}removeDecorationType(e){const t=this._decorationOptionProviders.get(e);t&&(t.refCount--,t.refCount<=0&&(this._decorationOptionProviders.delete(e),t.dispose(),this.listCodeEditors().forEach(i=>i.removeDecorationsByType(e))))}setModelProperty(e,t,i){const n=e.toString();let r;this._modelProperties.has(n)?r=this._modelProperties.get(n):(r=new Map,this._modelProperties.set(n,r)),r.set(t,i)}getModelProperty(e,t){const i=e.toString();if(this._modelProperties.has(i))return this._modelProperties.get(i).get(t)}openCodeEditor(e,t,i){return __awaiter$1t(this,void 0,void 0,function*(){for(const n of this._codeEditorOpenHandlers){const r=yield n(e,t,i);if(r!==null)return r}return null})}registerCodeEditorOpenHandler(e){const t=this._codeEditorOpenHandlers.unshift(e);return toDisposable(t)}};AbstractCodeEditorService=__decorate$1$([__param$1V(0,IThemeService)],AbstractCodeEditorService);var __decorate$1_=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1U=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$1s=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};let StandaloneCodeEditorService=class extends AbstractCodeEditorService{constructor(e,t){super(t),this._register(this.onCodeEditorAdd(()=>this._checkContextKey())),this._register(this.onCodeEditorRemove(()=>this._checkContextKey())),this._editorIsOpen=e.createKey("editorIsOpen",!1),this._activeCodeEditor=null,this._register(this.registerCodeEditorOpenHandler((i,n,r)=>__awaiter$1s(this,void 0,void 0,function*(){return n?this.doOpenEditor(n,i):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}doOpenEditor(e,t){if(!this.findModel(e,t.resource)){if(t.resource){const r=t.resource.scheme;if(r===Schemas.http||r===Schemas.https)return windowOpenNoOpener(t.resource.toString()),e}return null}const n=t.options?t.options.selection:null;if(n)if(typeof n.endLineNumber=="number"&&typeof n.endColumn=="number")e.setSelection(n),e.revealRangeInCenter(n,1);else{const r={lineNumber:n.startLineNumber,column:n.startColumn};e.setPosition(r),e.revealPositionInCenter(r,1)}return e}findModel(e,t){const i=e.getModel();return i&&i.uri.toString()!==t.toString()?null:i}};StandaloneCodeEditorService=__decorate$1_([__param$1U(0,IContextKeyService),__param$1U(1,IThemeService)],StandaloneCodeEditorService);registerSingleton(ICodeEditorService,StandaloneCodeEditorService,0);const ILayoutService=createDecorator("layoutService");var __decorate$1Z=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1T=function(o,e){return function(t,i){e(t,i,o)}};let StandaloneLayoutService=class{get dimension(){return this._dimension||(this._dimension=getClientArea(window.document.body)),this._dimension}get hasContainer(){return!1}get container(){throw new Error("ILayoutService.container is not available in the standalone editor!")}focus(){var e;(e=this._codeEditorService.getFocusedCodeEditor())===null||e===void 0||e.focus()}constructor(e){this._codeEditorService=e,this.onDidLayout=Event.None,this.offset={top:0,quickPickTop:0}}};StandaloneLayoutService=__decorate$1Z([__param$1T(0,ICodeEditorService)],StandaloneLayoutService);let EditorScopedLayoutService=class extends StandaloneLayoutService{get hasContainer(){return!1}get container(){return this._container}constructor(e,t){super(t),this._container=e}};EditorScopedLayoutService=__decorate$1Z([__param$1T(1,ICodeEditorService)],EditorScopedLayoutService);registerSingleton(ILayoutService,StandaloneLayoutService,1);const IDialogService=createDecorator("dialogService");var __decorate$1Y=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1S=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$1r=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};function getResourceLabel(o){return o.scheme===Schemas.file?o.fsPath:o.path}let stackElementCounter=0;class ResourceStackElement{constructor(e,t,i,n,r,s,a){this.id=++stackElementCounter,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=r,this.sourceId=s,this.sourceOrder=a,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 ResourceReasonPair{constructor(e,t){this.resourceLabel=e,this.reason=t}}class RemovedResources{constructor(){this.elements=new Map}createMessage(){const e=[],t=[];for(const[,n]of this.elements)(n.reason===0?e:t).push(n.resourceLabel);const i=[];return e.length>0&&i.push(localize({},"The following files have been closed and modified on disk: {0}.",e.join(", "))),t.length>0&&i.push(localize({},"The following files have been modified in an incompatible way: {0}.",t.join(", "))),i.join(`
- `)}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 WorkspaceStackElement{constructor(e,t,i,n,r,s,a){this.id=++stackElementCounter,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=r,this.sourceId=s,this.sourceOrder=a,this.removedResources=null,this.invalidatedResources=null}canSplit(){return typeof this.actual.split=="function"}removeResource(e,t,i){this.removedResources||(this.removedResources=new RemovedResources),this.removedResources.has(t)||this.removedResources.set(t,new ResourceReasonPair(e,i))}setValid(e,t,i){i?this.invalidatedResources&&(this.invalidatedResources.delete(t),this.invalidatedResources.size===0&&(this.invalidatedResources=null)):(this.invalidatedResources||(this.invalidatedResources=new RemovedResources),this.invalidatedResources.has(t)||this.invalidatedResources.set(t,new ResourceReasonPair(e,0)))}toString(){return`[id:${this.id}] [group:${this.groupId}] [${this.invalidatedResources?"INVALID":" VALID"}] ${this.actual.constructor.name} - ${this.actual}`}}class ResourceEditStack{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)e.type===1&&e.removeResource(this.resourceLabel,this.strResource,0);for(const e of this._future)e.type===1&&e.removeResource(this.resourceLabel,this.strResource,0);this.versionId++}toString(){const 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(`
- `)}flushAllElements(){this._past=[],this._future=[],this.versionId++}_setElementValidFlag(e,t){e.type===1?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 t of this._future)t.type===1&&t.removeResource(this.resourceLabel,this.strResource,1);this._future=[],this._past.push(e),this.versionId++}createSnapshot(e){const t=[];for(let i=0,n=this._past.length;i<n;i++)t.push(this._past[i].id);for(let i=this._future.length-1;i>=0;i--)t.push(this._future[i].id);return new ResourceEditStackSnapshot(e,t)}restoreSnapshot(e){const t=e.elements.length;let i=!0,n=0,r=-1;for(let a=0,l=this._past.length;a<l;a++,n++){const d=this._past[a];i&&(n>=t||d.id!==e.elements[n])&&(i=!1,r=0),!i&&d.type===1&&d.removeResource(this.resourceLabel,this.strResource,0)}let s=-1;for(let a=this._future.length-1;a>=0;a--,n++){const l=this._future[a];i&&(n>=t||l.id!==e.elements[n])&&(i=!1,s=a),!i&&l.type===1&&l.removeResource(this.resourceLabel,this.strResource,0)}r!==-1&&(this._past=this._past.slice(0,r)),s!==-1&&(this._future=this._future.slice(s+1)),this.versionId++}getElements(){const e=[],t=[];for(const i of this._past)e.push(i.actual);for(const i of this._future)t.push(i.actual);return{past:e,future:t}}getClosestPastElement(){return this._past.length===0?null:this._past[this._past.length-1]}getSecondClosestPastElement(){return this._past.length<2?null:this._past[this._past.length-2]}getClosestFutureElement(){return this._future.length===0?null:this._future[this._future.length-1]}hasPastElements(){return this._past.length>0}hasFutureElements(){return this._future.length>0}splitPastWorkspaceElement(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 EditStackSnapshot{constructor(e){this.editStacks=e,this._versionIds=[];for(let t=0,i=this.editStacks.length;t<i;t++)this._versionIds[t]=this.editStacks[t].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 missingEditStack=new ResourceEditStack("","");missingEditStack.locked=!0;let UndoRedoService=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}: `);const t=[];for(const i of this._editStacks)t.push(i[1].toString());console.log(t.join(`
- `))}pushElement(e,t=UndoRedoGroup.None,i=UndoRedoSource.None){if(e.type===0){const n=getResourceLabel(e.resource),r=this.getUriComparisonKey(e.resource);this._pushElement(new ResourceStackElement(e,n,r,t.id,t.nextOrder(),i.id,i.nextOrder()))}else{const n=new Set,r=[],s=[];for(const a of e.resources){const l=getResourceLabel(a),d=this.getUriComparisonKey(a);n.has(d)||(n.add(d),r.push(l),s.push(d))}r.length===1?this._pushElement(new ResourceStackElement(e,r[0],s[0],t.id,t.nextOrder(),i.id,i.nextOrder())):this._pushElement(new WorkspaceStackElement(e,r,s,t.id,t.nextOrder(),i.id,i.nextOrder()))}}_pushElement(e){for(let t=0,i=e.strResources.length;t<i;t++){const n=e.resourceLabels[t],r=e.strResources[t];let s;this._editStacks.has(r)?s=this._editStacks.get(r):(s=new ResourceEditStack(n,r),this._editStacks.set(r,s)),s.pushElement(e)}}getLastElement(e){const t=this.getUriComparisonKey(e);if(this._editStacks.has(t)){const i=this._editStacks.get(t);if(i.hasFutureElements())return null;const n=i.getClosestPastElement();return n?n.actual:null}return null}_splitPastWorkspaceElement(e,t){const i=e.actual.split(),n=new Map;for(const r of i){const s=getResourceLabel(r.resource),a=this.getUriComparisonKey(r.resource),l=new ResourceStackElement(r,s,a,0,0,0,0);n.set(l.strResource,l)}for(const r of e.strResources){if(t&&t.has(r))continue;this._editStacks.get(r).splitPastWorkspaceElement(e,n)}}_splitFutureWorkspaceElement(e,t){const i=e.actual.split(),n=new Map;for(const r of i){const s=getResourceLabel(r.resource),a=this.getUriComparisonKey(r.resource),l=new ResourceStackElement(r,s,a,0,0,0,0);n.set(l.strResource,l)}for(const r of e.strResources){if(t&&t.has(r))continue;this._editStacks.get(r).splitFutureWorkspaceElement(e,n)}}removeElements(e){const t=typeof e=="string"?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 ResourceEditStackSnapshot(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,r]of this._editStacks){const s=r.getClosestPastElement();s&&s.sourceId===e&&(!t||s.sourceOrder>t.sourceOrder)&&(t=s,i=n)}return[t,i]}canUndo(e){if(e instanceof UndoRedoSource){const[,i]=this._findClosestUndoElementWithSource(e.id);return!!i}const t=this.getUriComparisonKey(e);return this._editStacks.has(t)?this._editStacks.get(t).hasPastElements():!1}_onError(e,t){onUnexpectedError(e);for(const i of t.strResources)this.removeElements(i);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,r){const s=this._acquireLocks(i);let a;try{a=t()}catch(l){return s(),n.dispose(),this._onError(l,e)}return a?a.then(()=>(s(),n.dispose(),r()),l=>(s(),n.dispose(),this._onError(l,e))):(s(),n.dispose(),r())}_invokeWorkspacePrepare(e){return __awaiter$1r(this,void 0,void 0,function*(){if(typeof e.actual.prepareUndoRedo>"u")return Disposable.None;const t=e.actual.prepareUndoRedo();return typeof t>"u"?Disposable.None:t})}_invokeResourcePrepare(e,t){if(e.actual.type!==1||typeof e.actual.prepareUndoRedo>"u")return t(Disposable.None);const i=e.actual.prepareUndoRedo();return i?isDisposable(i)?t(i):i.then(n=>t(n)):t(Disposable.None)}_getAffectedEditStacks(e){const t=[];for(const i of e.strResources)t.push(this._editStacks.get(i)||missingEditStack);return new EditStackSnapshot(t)}_tryToSplitAndUndo(e,t,i,n){if(t.canSplit())return this._splitPastWorkspaceElement(t,i),this._notificationService.warn(n),new WorkspaceVerificationError(this._undo(e,0,!0));for(const r of t.strResources)this.removeElements(r);return this._notificationService.warn(n),new WorkspaceVerificationError}_checkWorkspaceUndo(e,t,i,n){if(t.removedResources)return this._tryToSplitAndUndo(e,t,t.removedResources,localize({},"Could not undo '{0}' across all files. {1}",t.label,t.removedResources.createMessage()));if(n&&t.invalidatedResources)return this._tryToSplitAndUndo(e,t,t.invalidatedResources,localize({},"Could not undo '{0}' across all files. {1}",t.label,t.invalidatedResources.createMessage()));const r=[];for(const a of i.editStacks)a.getClosestPastElement()!==t&&r.push(a.resourceLabel);if(r.length>0)return this._tryToSplitAndUndo(e,t,null,localize({},"Could not undo '{0}' across all files because changes were made to {1}",t.label,r.join(", ")));const s=[];for(const a of i.editStacks)a.locked&&s.push(a.resourceLabel);return s.length>0?this._tryToSplitAndUndo(e,t,null,localize({},"Could not undo '{0}' across all files because there is already an undo or redo operation running on {1}",t.label,s.join(", "))):i.isValid()?null:this._tryToSplitAndUndo(e,t,null,localize({},"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),r=this._checkWorkspaceUndo(e,t,n,!1);return r?r.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 n=t.getSecondClosestPastElement();if(n&&n.groupId===e.groupId)return!0}if(i.groupId===e.groupId)return!0}}return!1}_confirmAndExecuteWorkspaceUndo(e,t,i,n){return __awaiter$1r(this,void 0,void 0,function*(){if(t.canSplit()&&!this._isPartOfUndoGroup(t)){let a;(function(c){c[c.All=0]="All",c[c.This=1]="This",c[c.Cancel=2]="Cancel"})(a||(a={}));const{result:l}=yield this._dialogService.prompt({type:Severity$2.Info,message:localize("confirmWorkspace","Would you like to undo '{0}' across all files?",t.label),buttons:[{label:localize({},"&&Undo in {0} Files",i.editStacks.length),run:()=>a.All},{label:localize({},"Undo this &&File"),run:()=>a.This}],cancelButton:{run:()=>a.Cancel}});if(l===a.Cancel)return;if(l===a.This)return this._splitPastWorkspaceElement(t,null),this._undo(e,0,!0);const d=this._checkWorkspaceUndo(e,t,i,!1);if(d)return d.returnValue;n=!0}let r;try{r=yield this._invokeWorkspacePrepare(t)}catch(a){return this._onError(a,t)}const s=this._checkWorkspaceUndo(e,t,i,!0);if(s)return r.dispose(),s.returnValue;for(const a of i.editStacks)a.moveBackward(t);return this._safeInvokeWithLocks(t,()=>t.actual.undo(),i,r,()=>this._continueUndoInGroup(t.groupId,n))})}_resourceUndo(e,t,i){if(!t.isValid){e.flushAllElements();return}if(e.locked){const n=localize({},"Could not undo '{0}' because there is already an undo or redo operation running.",t.label);this._notificationService.warn(n);return}return this._invokeResourcePrepare(t,n=>(e.moveBackward(t),this._safeInvokeWithLocks(t,()=>t.actual.undo(),new EditStackSnapshot([e]),n,()=>this._continueUndoInGroup(t.groupId,i))))}_findClosestUndoElementInGroup(e){if(!e)return[null,null];let t=null,i=null;for(const[n,r]of this._editStacks){const s=r.getClosestPastElement();s&&s.groupId===e&&(!t||s.groupOrder>t.groupOrder)&&(t=s,i=n)}return[t,i]}_continueUndoInGroup(e,t){if(!e)return;const[,i]=this._findClosestUndoElementInGroup(e);if(i)return this._undo(i,0,t)}undo(e){if(e instanceof UndoRedoSource){const[,t]=this._findClosestUndoElementWithSource(e.id);return t?this._undo(t,e.id,!1):void 0}return typeof e=="string"?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),r=n.getClosestPastElement();if(!r)return;if(r.groupId){const[a,l]=this._findClosestUndoElementInGroup(r.groupId);if(r!==a&&l)return this._undo(l,t,i)}if((r.sourceId!==t||r.confirmBeforeUndo)&&!i)return this._confirmAndContinueUndo(e,t,r);try{return r.type===1?this._workspaceUndo(e,r,i):this._resourceUndo(n,r,i)}finally{}}_confirmAndContinueUndo(e,t,i){return __awaiter$1r(this,void 0,void 0,function*(){if((yield this._dialogService.confirm({message:localize("confirmDifferentSource","Would you like to undo '{0}'?",i.label),primaryButton:localize({},"&&Yes"),cancelButton:localize("confirmDifferentSource.no","No")})).confirmed)return this._undo(e,t,!0)})}_findClosestRedoElementWithSource(e){if(!e)return[null,null];let t=null,i=null;for(const[n,r]of this._editStacks){const s=r.getClosestFutureElement();s&&s.sourceId===e&&(!t||s.sourceOrder<t.sourceOrder)&&(t=s,i=n)}return[t,i]}canRedo(e){if(e instanceof UndoRedoSource){const[,i]=this._findClosestRedoElementWithSource(e.id);return!!i}const t=this.getUriComparisonKey(e);return this._editStacks.has(t)?this._editStacks.get(t).hasFutureElements():!1}_tryToSplitAndRedo(e,t,i,n){if(t.canSplit())return this._splitFutureWorkspaceElement(t,i),this._notificationService.warn(n),new WorkspaceVerificationError(this._redo(e));for(const r of t.strResources)this.removeElements(r);return this._notificationService.warn(n),new WorkspaceVerificationError}_checkWorkspaceRedo(e,t,i,n){if(t.removedResources)return this._tryToSplitAndRedo(e,t,t.removedResources,localize({},"Could not redo '{0}' across all files. {1}",t.label,t.removedResources.createMessage()));if(n&&t.invalidatedResources)return this._tryToSplitAndRedo(e,t,t.invalidatedResources,localize({},"Could not redo '{0}' across all files. {1}",t.label,t.invalidatedResources.createMessage()));const r=[];for(const a of i.editStacks)a.getClosestFutureElement()!==t&&r.push(a.resourceLabel);if(r.length>0)return this._tryToSplitAndRedo(e,t,null,localize({},"Could not redo '{0}' across all files because changes were made to {1}",t.label,r.join(", ")));const s=[];for(const a of i.editStacks)a.locked&&s.push(a.resourceLabel);return s.length>0?this._tryToSplitAndRedo(e,t,null,localize({},"Could not redo '{0}' across all files because there is already an undo or redo operation running on {1}",t.label,s.join(", "))):i.isValid()?null:this._tryToSplitAndRedo(e,t,null,localize({},"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 __awaiter$1r(this,void 0,void 0,function*(){let n;try{n=yield this._invokeWorkspacePrepare(t)}catch(s){return this._onError(s,t)}const r=this._checkWorkspaceRedo(e,t,i,!0);if(r)return n.dispose(),r.returnValue;for(const s of i.editStacks)s.moveForward(t);return this._safeInvokeWithLocks(t,()=>t.actual.redo(),i,n,()=>this._continueRedoInGroup(t.groupId))})}_resourceRedo(e,t){if(!t.isValid){e.flushAllElements();return}if(e.locked){const i=localize({},"Could not redo '{0}' because there is already an undo or redo operation running.",t.label);this._notificationService.warn(i);return}return this._invokeResourcePrepare(t,i=>(e.moveForward(t),this._safeInvokeWithLocks(t,()=>t.actual.redo(),new EditStackSnapshot([e]),i,()=>this._continueRedoInGroup(t.groupId))))}_findClosestRedoElementInGroup(e){if(!e)return[null,null];let t=null,i=null;for(const[n,r]of this._editStacks){const s=r.getClosestFutureElement();s&&s.groupId===e&&(!t||s.groupOrder<t.groupOrder)&&(t=s,i=n)}return[t,i]}_continueRedoInGroup(e){if(!e)return;const[,t]=this._findClosestRedoElementInGroup(e);if(t)return this._redo(t)}redo(e){if(e instanceof UndoRedoSource){const[,t]=this._findClosestRedoElementWithSource(e.id);return t?this._redo(t):void 0}return typeof e=="string"?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[n,r]=this._findClosestRedoElementInGroup(i.groupId);if(i!==n&&r)return this._redo(r)}try{return i.type===1?this._workspaceRedo(e,i):this._resourceRedo(t,i)}finally{}}}};UndoRedoService=__decorate$1Y([__param$1S(0,IDialogService),__param$1S(1,INotificationService)],UndoRedoService);class WorkspaceVerificationError{constructor(e){this.returnValue=e}}registerSingleton(IUndoRedoService,UndoRedoService,1);function clamp(o,e,t){return Math.min(Math.max(o,e),t)}class MovingAverage{constructor(){this._n=1,this._val=0}update(e){return this._val=this._val+(e-this._val)/this._n,this._n+=1,this._val}get value(){return this._val}}class SlidingWindowAverage{constructor(e){this._n=0,this._val=0,this._values=[],this._index=0,this._sum=0,this._values=new Array(e),this._values.fill(0,0,e)}update(e){const t=this._values[this._index];return this._values[this._index]=e,this._index=(this._index+1)%this._values.length,this._sum-=t,this._sum+=e,this._n<this._values.length&&(this._n+=1),this._val=this._sum/this._n,this._val}get value(){return this._val}}const IEnvironmentService=createDecorator("environmentService"),IOpenerService=createDecorator("openerService");function matchesScheme(o,e){return URI.isUri(o)?equalsIgnoreCase(o.scheme,e):startsWithIgnoreCase(o,e+":")}function matchesSomeScheme(o,...e){return e.some(t=>matchesScheme(o,t))}function extractSelection(o){let e;const t=/^L?(\d+)(?:,(\d+))?(-L?(\d+)(?:,(\d+))?)?/.exec(o.fragment);return t&&(e={startLineNumber:parseInt(t[1]),startColumn:t[2]?parseInt(t[2]):1,endLineNumber:t[4]?parseInt(t[4]):void 0,endColumn:t[4]?t[5]?parseInt(t[5]):1:void 0},o=o.with({fragment:""})),{selection:e,uri:o}}var __decorate$1X=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1R=function(o,e){return function(t,i){e(t,i,o)}};const ILanguageFeatureDebounceService=createDecorator("ILanguageFeatureDebounceService");var IdentityHash;(function(o){const e=new WeakMap;let t=0;function i(n){let r=e.get(n);return r===void 0&&(r=++t,e.set(n,r)),r}o.of=i})(IdentityHash||(IdentityHash={}));class NullDebounceInformation{constructor(e){this._default=e}get(e){return this._default}update(e,t){return this._default}default(){return this._default}}class FeatureDebounceInformation{constructor(e,t,i,n,r,s){this._logService=e,this._name=t,this._registry=i,this._default=n,this._min=r,this._max=s,this._cache=new LRUCache(50,.7)}_key(e){return e.id+this._registry.all(e).reduce((t,i)=>doHash(IdentityHash.of(i),t),0)}get(e){const t=this._key(e),i=this._cache.get(t);return i?clamp(i.value,this._min,this._max):this.default()}update(e,t){const i=this._key(e);let n=this._cache.get(i);n||(n=new SlidingWindowAverage(6),this._cache.set(i,n));const r=clamp(n.update(t),this._min,this._max);return matchesScheme(e.uri,"output")||this._logService.trace(`[DEBOUNCE: ${this._name}] for ${e.uri.toString()} is ${r}ms`),r}_overall(){const e=new MovingAverage;for(const[,t]of this._cache)e.update(t.value);return e.value}default(){const e=this._overall()|0||this._default;return clamp(e,this._min,this._max)}}let LanguageFeatureDebounceService=class{constructor(e,t){this._logService=e,this._data=new Map,this._isDev=t.isExtensionDevelopment||!t.isBuilt}for(e,t,i){var n,r,s;const a=(n=i==null?void 0:i.min)!==null&&n!==void 0?n:50,l=(r=i==null?void 0:i.max)!==null&&r!==void 0?r:Math.pow(a,2),d=(s=i==null?void 0:i.key)!==null&&s!==void 0?s:void 0,c=`${IdentityHash.of(e)},${a}${d?","+d:""}`;let u=this._data.get(c);return u||(this._isDev?u=new FeatureDebounceInformation(this._logService,t,e,this._overallAverage()|0||a*1.5,a,l):(this._logService.debug(`[DEBOUNCE: ${t}] is disabled in developed mode`),u=new NullDebounceInformation(a*1.5)),this._data.set(c,u)),u}_overallAverage(){const e=new MovingAverage;for(const t of this._data.values())e.update(t.default());return e.value}};LanguageFeatureDebounceService=__decorate$1X([__param$1R(0,ILogService),__param$1R(1,IEnvironmentService)],LanguageFeatureDebounceService);registerSingleton(ILanguageFeatureDebounceService,LanguageFeatureDebounceService,1);class SparseMultilineTokens{static create(e,t){return new SparseMultilineTokens(e,new SparseMultilineTokensStorage(t))}get startLineNumber(){return this._startLineNumber}get endLineNumber(){return this._endLineNumber}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 Range$2(this._startLineNumber+e.startLineNumber,e.startColumn,this._startLineNumber+e.endLineNumber,e.endColumn)}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,r,s]=this._tokens.split(t,e.startColumn-1,i,e.endColumn-1);return[new SparseMultilineTokens(this._startLineNumber,n),new SparseMultilineTokens(this._startLineNumber+s,r)]}applyEdit(e,t){const[i,n,r]=countEOL(t);this.acceptEdit(e,i,n,r,t.length>0?t.charCodeAt(0):0)}acceptEdit(e,t,i,n,r){this._acceptDeleteRange(e),this._acceptInsertText(new Position$1(e.startLineNumber,e.startColumn),t,i,n,r),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 r=i-t;this._startLineNumber-=r;return}const n=this._tokens.getMaxDeltaLine();if(!(t>=n+1)){if(t<0&&i>=n+1){this._startLineNumber=0,this._tokens.clear();return}if(t<0){const r=-t;this._startLineNumber-=r,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,r){if(t===0&&i===0)return;const s=e.lineNumber-this._startLineNumber;if(s<0){this._startLineNumber+=t;return}const a=this._tokens.getMaxDeltaLine();s>=a+1||this._tokens.acceptInsertText(s,e.column-1,t,i,n,r)}}class SparseMultilineTokensStorage{constructor(e){this._tokens=e,this._tokenCount=e.length/4}toString(e){const 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 e===0?-1:this._getDeltaLine(e-1)}getRange(){const e=this._getTokenCount();if(e===0)return null;const t=this._getStartCharacter(0),i=this._getDeltaLine(e-1),n=this._getEndCharacter(e-1);return new Range$2(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 this._getTokenCount()===0}getLineTokens(e){let t=0,i=this._getTokenCount()-1;for(;t<i;){const n=t+Math.floor((i-t)/2),r=this._getDeltaLine(n);if(r<e)t=n+1;else if(r>e)i=n-1;else{let s=n;for(;s>t&&this._getDeltaLine(s-1)===e;)s--;let a=n;for(;a<i&&this._getDeltaLine(a+1)===e;)a++;return new SparseLineTokens(this._tokens.subarray(4*s,4*a+4))}}return this._getDeltaLine(t)===e?new SparseLineTokens(this._tokens.subarray(4*t,4*t+4)):null}clear(){this._tokenCount=0}removeTokens(e,t,i,n){const r=this._tokens,s=this._tokenCount;let a=0,l=!1,d=0;for(let c=0;c<s;c++){const u=4*c,g=r[u],f=r[u+1],p=r[u+2],m=r[u+3];if((g>e||g===e&&p>=t)&&(g<i||g===i&&f<=n))l=!0;else{if(a===0&&(d=g),l){const b=4*a;r[b]=g-d,r[b+1]=f,r[b+2]=p,r[b+3]=m}a++}}return this._tokenCount=a,d}split(e,t,i,n){const r=this._tokens,s=this._tokenCount,a=[],l=[];let d=a,c=0,u=0;for(let g=0;g<s;g++){const f=4*g,p=r[f],m=r[f+1],b=r[f+2],_=r[f+3];if(p>e||p===e&&b>=t){if(p<i||p===i&&m<=n)continue;d!==l&&(d=l,c=0,u=p)}d[c++]=p-u,d[c++]=m,d[c++]=b,d[c++]=_}return[new SparseMultilineTokensStorage(new Uint32Array(a)),new SparseMultilineTokensStorage(new Uint32Array(l)),u]}acceptDeleteRange(e,t,i,n,r){const s=this._tokens,a=this._tokenCount,l=n-t;let d=0,c=!1;for(let u=0;u<a;u++){const g=4*u;let f=s[g],p=s[g+1],m=s[g+2];const b=s[g+3];if(f<t||f===t&&m<=i){d++;continue}else if(f===t&&p<i)f===n&&m>r?m-=r-i:m=i;else if(f===t&&p===i)if(f===n&&m>r)m-=r-i;else{c=!0;continue}else if(f<n||f===n&&p<r)if(f===n&&m>r)f=t,p=i,m=p+(m-r);else{c=!0;continue}else if(f>n){if(l===0&&!c){d=a;break}f-=l}else if(f===n&&p>=r)e&&f===0&&(p+=e,m+=e),f-=l,p-=r-i,m-=r-i;else throw new Error("Not possible!");const _=4*d;s[_]=f,s[_+1]=p,s[_+2]=m,s[_+3]=b,d++}this._tokenCount=d}acceptInsertText(e,t,i,n,r,s){const a=i===0&&n===1&&(s>=48&&s<=57||s>=65&&s<=90||s>=97&&s<=122),l=this._tokens,d=this._tokenCount;for(let c=0;c<d;c++){const u=4*c;let g=l[u],f=l[u+1],p=l[u+2];if(!(g<e||g===e&&p<t)){if(g===e&&p===t)if(a)p+=1;else continue;else if(g===e&&f<t&&t<p)i===0?p+=n:p=t;else{if(g===e&&f===t&&a)continue;if(g===e)if(g+=i,i===0)f+=n,p+=n;else{const m=p-f;f=r+(f-t),p=f+m}else g+=i}l[u]=g,l[u+1]=f,l[u+2]=p}}}}class SparseLineTokens{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]}}var __decorate$1W=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1Q=function(o,e){return function(t,i){e(t,i,o)}};let SemanticTokensProviderStyling=class{constructor(e,t,i,n){this._legend=e,this._themeService=t,this._languageService=i,this._logService=n,this._hasWarnedOverlappingTokens=!1,this._hasWarnedInvalidLengthTokens=!1,this._hasWarnedInvalidEditStart=!1,this._hashTable=new HashTable}getMetadata(e,t,i){const n=this._languageService.languageIdCodec.encodeLanguageId(i),r=this._hashTable.get(e,t,n);let s;if(r)s=r.metadata,this._logService.getLevel()===LogLevel.Trace&&this._logService.trace(`SemanticTokensProviderStyling [CACHED] ${e} / ${t}: foreground ${TokenMetadata.getForeground(s)}, fontStyle ${TokenMetadata.getFontStyle(s).toString(2)}`);else{let a=this._legend.tokenTypes[e];const l=[];if(a){let d=t;for(let u=0;d>0&&u<this._legend.tokenModifiers.length;u++)d&1&&l.push(this._legend.tokenModifiers[u]),d=d>>1;d>0&&this._logService.getLevel()===LogLevel.Trace&&(this._logService.trace(`SemanticTokensProviderStyling: unknown token modifier index: ${t.toString(2)} for legend: ${JSON.stringify(this._legend.tokenModifiers)}`),l.push("not-in-legend"));const c=this._themeService.getColorTheme().getTokenStyleMetadata(a,l,i);if(typeof c>"u")s=2147483647;else{if(s=0,typeof c.italic<"u"){const u=(c.italic?1:0)<<11;s|=u|1}if(typeof c.bold<"u"){const u=(c.bold?2:0)<<11;s|=u|2}if(typeof c.underline<"u"){const u=(c.underline?4:0)<<11;s|=u|4}if(typeof c.strikethrough<"u"){const u=(c.strikethrough?8:0)<<11;s|=u|8}if(c.foreground){const u=c.foreground<<15;s|=u|16}s===0&&(s=2147483647)}}else this._logService.getLevel()===LogLevel.Trace&&this._logService.trace(`SemanticTokensProviderStyling: unknown token type index: ${e} for legend: ${JSON.stringify(this._legend.tokenTypes)}`),s=2147483647,a="not-in-legend";this._hashTable.add(e,t,n,s),this._logService.getLevel()===LogLevel.Trace&&this._logService.trace(`SemanticTokensProviderStyling ${e} (${a}) / ${t} (${l.join(" ")}): foreground ${TokenMetadata.getForeground(s)}, fontStyle ${TokenMetadata.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}`))}warnInvalidLengthSemanticTokens(e,t){this._hasWarnedInvalidLengthTokens||(this._hasWarnedInvalidLengthTokens=!0,console.warn(`Semantic token with invalid length detected at lineNumber ${e}, column ${t}`))}warnInvalidEditStart(e,t,i,n,r){this._hasWarnedInvalidEditStart||(this._hasWarnedInvalidEditStart=!0,console.warn(`Invalid semantic tokens edit detected (previousResultId: ${e}, resultId: ${t}) at edit #${i}: The provided start offset ${n} is outside the previous data (length ${r}).`))}};SemanticTokensProviderStyling=__decorate$1W([__param$1Q(1,IThemeService),__param$1Q(2,ILanguageService),__param$1Q(3,ILogService)],SemanticTokensProviderStyling);function toMultilineTokens2(o,e,t){const i=o.data,n=o.data.length/5|0,r=Math.max(Math.ceil(n/1024),400),s=[];let a=0,l=1,d=0;for(;a<n;){const c=a;let u=Math.min(c+r,n);if(u<n){let C=u;for(;C-1>c&&i[5*C]===0;)C--;if(C-1===c){let S=u;for(;S+1<n&&i[5*S]===0;)S++;u=S}else u=C}let g=new Uint32Array((u-c)*4),f=0,p=0,m=0,b=0;for(;a<u;){const C=5*a,S=i[C],y=i[C+1],E=l+S|0,x=S===0?d+y|0:y,L=i[C+2],I=x+L|0,D=i[C+3],N=i[C+4];if(I<=x)e.warnInvalidLengthSemanticTokens(E,x+1);else if(m===E&&b>x)e.warnOverlappingSemanticTokens(E,x+1);else{const F=e.getMetadata(D,N,t);F!==2147483647&&(p===0&&(p=E),g[f]=E-p,g[f+1]=x,g[f+2]=I,g[f+3]=F,f+=4,m=E,b=I)}l=E,d=x,a++}f!==g.length&&(g=g.subarray(0,f));const _=SparseMultilineTokens.create(p,g);s.push(_)}return s}class HashTableEntry{constructor(e,t,i,n){this.tokenTypeIndex=e,this.tokenModifierSet=t,this.languageId=i,this.metadata=n,this.next=null}}class HashTable{constructor(){this._elementsCount=0,this._currentLengthIndex=0,this._currentLength=HashTable._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1<HashTable._SIZES.length?2/3*this._currentLength:0),this._elements=[],HashTable._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 r=this._elements[n];for(;r;){if(r.tokenTypeIndex===e&&r.tokenModifierSet===t&&r.languageId===i)return r;r=r.next}return null}add(e,t,i,n){if(this._elementsCount++,this._growCount!==0&&this._elementsCount>=this._growCount){const r=this._elements;this._currentLengthIndex++,this._currentLength=HashTable._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1<HashTable._SIZES.length?2/3*this._currentLength:0),this._elements=[],HashTable._nullOutEntries(this._elements,this._currentLength);for(const s of r){let a=s;for(;a;){const l=a.next;a.next=null,this._add(a),a=l}}}this._add(new HashTableEntry(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}}HashTable._SIZES=[3,7,13,31,61,127,251,509,1021,2039,4093,8191,16381,32749,65521,131071,262139,524287,1048573,2097143];const ISemanticTokensStylingService=createDecorator("semanticTokensStylingService");var __decorate$1V=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1P=function(o,e){return function(t,i){e(t,i,o)}};let SemanticTokensStylingService=class extends Disposable{constructor(e,t,i){super(),this._themeService=e,this._logService=t,this._languageService=i,this._caches=new WeakMap,this._register(this._themeService.onDidColorThemeChange(()=>{this._caches=new WeakMap}))}getStyling(e){return this._caches.has(e)||this._caches.set(e,new SemanticTokensProviderStyling(e.getLegend(),this._themeService,this._languageService,this._logService)),this._caches.get(e)}};SemanticTokensStylingService=__decorate$1V([__param$1P(0,IThemeService),__param$1P(1,ILogService),__param$1P(2,ILanguageService)],SemanticTokensStylingService);registerSingleton(ISemanticTokensStylingService,SemanticTokensStylingService,1);var __awaiter$1q=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};const GLOBSTAR="**",GLOB_SPLIT="/",PATH_REGEX="[/\\\\]",NO_PATH_REGEX="[^/\\\\]",ALL_FORWARD_SLASHES=/\//g;function starsToRegExp(o,e){switch(o){case 0:return"";case 1:return`${NO_PATH_REGEX}*?`;default:return`(?:${PATH_REGEX}|${NO_PATH_REGEX}+${PATH_REGEX}${e?`|${PATH_REGEX}${NO_PATH_REGEX}+`:""})*?`}}function splitGlobAware(o,e){if(!o)return[];const t=[];let i=!1,n=!1,r="";for(const s of o){switch(s){case e:if(!i&&!n){t.push(r),r="";continue}break;case"{":i=!0;break;case"}":i=!1;break;case"[":n=!0;break;case"]":n=!1;break}r+=s}return r&&t.push(r),t}function parseRegExp(o){if(!o)return"";let e="";const t=splitGlobAware(o,GLOB_SPLIT);if(t.every(i=>i===GLOBSTAR))e=".*";else{let i=!1;t.forEach((n,r)=>{if(n===GLOBSTAR){if(i)return;e+=starsToRegExp(2,r===t.length-1)}else{let s=!1,a="",l=!1,d="";for(const c of n){if(c!=="}"&&s){a+=c;continue}if(l&&(c!=="]"||!d)){let u;c==="-"?u=c:(c==="^"||c==="!")&&!d?u="^":c===GLOB_SPLIT?u="":u=escapeRegExpCharacters(c),d+=u;continue}switch(c){case"{":s=!0;continue;case"[":l=!0;continue;case"}":{const g=`(?:${splitGlobAware(a,",").map(f=>parseRegExp(f)).join("|")})`;e+=g,s=!1,a="";break}case"]":{e+="["+d+"]",l=!1,d="";break}case"?":e+=NO_PATH_REGEX;continue;case"*":e+=starsToRegExp(1);continue;default:e+=escapeRegExpCharacters(c)}}r<t.length-1&&(t[r+1]!==GLOBSTAR||r+2<t.length)&&(e+=PATH_REGEX)}i=n===GLOBSTAR})}return e}const T1=/^\*\*\/\*\.[\w\.-]+$/,T2=/^\*\*\/([\w\.-]+)\/?$/,T3=/^{\*\*\/\*?[\w\.-]+\/?(,\*\*\/\*?[\w\.-]+\/?)*}$/,T3_2=/^{\*\*\/\*?[\w\.-]+(\/(\*\*)?)?(,\*\*\/\*?[\w\.-]+(\/(\*\*)?)?)*}$/,T4=/^\*\*((\/[\w\.-]+)+)\/?$/,T5=/^([\w\.-]+(\/[\w\.-]+)*)\/?$/,CACHE=new LRUCache(1e4),FALSE=function(){return!1},NULL=function(){return null};function parsePattern(o,e){if(!o)return NULL;let t;typeof o!="string"?t=o.pattern:t=o,t=t.trim();const i=`${t}_${!!e.trimForExclusions}`;let n=CACHE.get(i);if(n)return wrapRelativePattern(n,o);let r;return T1.test(t)?n=trivia1(t.substr(4),t):(r=T2.exec(trimForExclusions(t,e)))?n=trivia2(r[1],t):(e.trimForExclusions?T3_2:T3).test(t)?n=trivia3(t,e):(r=T4.exec(trimForExclusions(t,e)))?n=trivia4and5(r[1].substr(1),t,!0):(r=T5.exec(trimForExclusions(t,e)))?n=trivia4and5(r[1],t,!1):n=toRegExp(t),CACHE.set(i,n),wrapRelativePattern(n,o)}function wrapRelativePattern(o,e){if(typeof e=="string")return o;const t=function(i,n){return isEqualOrParent(i,e.base,!isLinux)?o(ltrim(i.substr(e.base.length),sep),n):null};return t.allBasenames=o.allBasenames,t.allPaths=o.allPaths,t.basenames=o.basenames,t.patterns=o.patterns,t}function trimForExclusions(o,e){return e.trimForExclusions&&o.endsWith("/**")?o.substr(0,o.length-2):o}function trivia1(o,e){return function(t,i){return typeof t=="string"&&t.endsWith(o)?e:null}}function trivia2(o,e){const t=`/${o}`,i=`\\${o}`,n=function(s,a){return typeof s!="string"?null:a?a===o?e:null:s===o||s.endsWith(t)||s.endsWith(i)?e:null},r=[o];return n.basenames=r,n.patterns=[e],n.allBasenames=r,n}function trivia3(o,e){const t=aggregateBasenameMatches(o.slice(1,-1).split(",").map(a=>parsePattern(a,e)).filter(a=>a!==NULL),o),i=t.length;if(!i)return NULL;if(i===1)return t[0];const n=function(a,l){for(let d=0,c=t.length;d<c;d++)if(t[d](a,l))return o;return null},r=t.find(a=>!!a.allBasenames);r&&(n.allBasenames=r.allBasenames);const s=t.reduce((a,l)=>l.allPaths?a.concat(l.allPaths):a,[]);return s.length&&(n.allPaths=s),n}function trivia4and5(o,e,t){const i=sep===posix.sep,n=i?o:o.replace(ALL_FORWARD_SLASHES,sep),r=sep+n,s=posix.sep+o;let a;return t?a=function(l,d){return typeof l=="string"&&(l===n||l.endsWith(r)||!i&&(l===o||l.endsWith(s)))?e:null}:a=function(l,d){return typeof l=="string"&&(l===n||!i&&l===o)?e:null},a.allPaths=[(t?"*/":"./")+o],a}function toRegExp(o){try{const e=new RegExp(`^${parseRegExp(o)}$`);return function(t){return e.lastIndex=0,typeof t=="string"&&e.test(t)?o:null}}catch{return NULL}}function match(o,e,t){return!o||typeof e!="string"?!1:parse$1(o)(e,void 0,t)}function parse$1(o,e={}){if(!o)return FALSE;if(typeof o=="string"||isRelativePattern(o)){const t=parsePattern(o,e);if(t===NULL)return FALSE;const i=function(n,r){return!!t(n,r)};return t.allBasenames&&(i.allBasenames=t.allBasenames),t.allPaths&&(i.allPaths=t.allPaths),i}return parsedExpression(o,e)}function isRelativePattern(o){const e=o;return e?typeof e.base=="string"&&typeof e.pattern=="string":!1}function parsedExpression(o,e){const t=aggregateBasenameMatches(Object.getOwnPropertyNames(o).map(a=>parseExpressionPattern(a,o[a],e)).filter(a=>a!==NULL)),i=t.length;if(!i)return NULL;if(!t.some(a=>!!a.requiresSiblings)){if(i===1)return t[0];const a=function(c,u){let g;for(let f=0,p=t.length;f<p;f++){const m=t[f](c,u);if(typeof m=="string")return m;isThenable$1(m)&&(g||(g=[]),g.push(m))}return g?__awaiter$1q(this,void 0,void 0,function*(){for(const f of g){const p=yield f;if(typeof p=="string")return p}return null}):null},l=t.find(c=>!!c.allBasenames);l&&(a.allBasenames=l.allBasenames);const d=t.reduce((c,u)=>u.allPaths?c.concat(u.allPaths):c,[]);return d.length&&(a.allPaths=d),a}const n=function(a,l,d){let c,u;for(let g=0,f=t.length;g<f;g++){const p=t[g];p.requiresSiblings&&d&&(l||(l=basename$1(a)),c||(c=l.substr(0,l.length-extname$1(a).length)));const m=p(a,l,c,d);if(typeof m=="string")return m;isThenable$1(m)&&(u||(u=[]),u.push(m))}return u?__awaiter$1q(this,void 0,void 0,function*(){for(const g of u){const f=yield g;if(typeof f=="string")return f}return null}):null},r=t.find(a=>!!a.allBasenames);r&&(n.allBasenames=r.allBasenames);const s=t.reduce((a,l)=>l.allPaths?a.concat(l.allPaths):a,[]);return s.length&&(n.allPaths=s),n}function parseExpressionPattern(o,e,t){if(e===!1)return NULL;const i=parsePattern(o,t);if(i===NULL)return NULL;if(typeof e=="boolean")return i;if(e){const n=e.when;if(typeof n=="string"){const r=(s,a,l,d)=>{if(!d||!i(s,a))return null;const c=n.replace("$(basename)",()=>l),u=d(c);return isThenable$1(u)?u.then(g=>g?o:null):u?o:null};return r.requiresSiblings=!0,r}}return i}function aggregateBasenameMatches(o,e){const t=o.filter(a=>!!a.basenames);if(t.length<2)return o;const i=t.reduce((a,l)=>{const d=l.basenames;return d?a.concat(d):a},[]);let n;if(e){n=[];for(let a=0,l=i.length;a<l;a++)n.push(e)}else n=t.reduce((a,l)=>{const d=l.patterns;return d?a.concat(d):a},[]);const r=function(a,l){if(typeof a!="string")return null;if(!l){let c;for(c=a.length;c>0;c--){const u=a.charCodeAt(c-1);if(u===47||u===92)break}l=a.substr(c)}const d=i.indexOf(l);return d!==-1?n[d]:null};r.basenames=i,r.patterns=n,r.allBasenames=i;const s=o.filter(a=>!a.basenames);return s.push(r),s}function score(o,e,t,i,n,r){if(Array.isArray(o)){let s=0;for(const a of o){const l=score(a,e,t,i,n,r);if(l===10)return l;l>s&&(s=l)}return s}else{if(typeof o=="string")return i?o==="*"?5:o===t?10:0:0;if(o){const{language:s,pattern:a,scheme:l,hasAccessToAllModels:d,notebookType:c}=o;if(!i&&!d)return 0;c&&n&&(e=n);let u=0;if(l)if(l===e.scheme)u=10;else if(l==="*")u=5;else return 0;if(s)if(s===t)u=10;else if(s==="*")u=Math.max(u,5);else return 0;if(c)if(c===r)u=10;else if(c==="*"&&r!==void 0)u=Math.max(u,5);else return 0;if(a){let g;if(typeof a=="string"?g=a:g=Object.assign(Object.assign({},a),{base:normalize(a.base)}),g===e.fsPath||match(g,e.fsPath))u=10;else return 0}return u}else return 0}}function isExclusive(o){return typeof o=="string"?!1:Array.isArray(o)?o.every(isExclusive):!!o.exclusive}class MatchCandidate{constructor(e,t,i,n){this.uri=e,this.languageId=t,this.notebookUri=i,this.notebookType=n}equals(e){var t,i;return this.notebookType===e.notebookType&&this.languageId===e.languageId&&this.uri.toString()===e.uri.toString()&&((t=this.notebookUri)===null||t===void 0?void 0:t.toString())===((i=e.notebookUri)===null||i===void 0?void 0:i.toString())}}class LanguageFeatureRegistry{constructor(e){this._notebookInfoResolver=e,this._clock=0,this._entries=[],this._onDidChange=new Emitter$1,this.onDidChange=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),toDisposable(()=>{if(i){const n=this._entries.indexOf(i);n>=0&&(this._entries.splice(n,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(const i of this._entries)i._score>0&&t.push(i.provider);return t}ordered(e){const t=[];return this._orderedForEach(e,i=>t.push(i.provider)),t}orderedGroups(e){const t=[];let i,n;return this._orderedForEach(e,r=>{i&&n===r._score?i.push(r.provider):(n=r._score,i=[r.provider],t.push(i))}),t}_orderedForEach(e,t){this._updateScores(e);for(const i of this._entries)i._score>0&&t(i)}_updateScores(e){var t,i;const n=(t=this._notebookInfoResolver)===null||t===void 0?void 0:t.call(this,e.uri),r=n?new MatchCandidate(e.uri,e.getLanguageId(),n.uri,n.type):new MatchCandidate(e.uri,e.getLanguageId(),void 0,void 0);if(!(!((i=this._lastCandidate)===null||i===void 0)&&i.equals(r))){this._lastCandidate=r;for(const s of this._entries)if(s._score=score(s.selector,r.uri,r.languageId,shouldSynchronizeModel(e),r.notebookUri,r.notebookType),isExclusive(s.selector)&&s._score>0){for(const a of this._entries)a._score=0;s._score=1e3;break}this._entries.sort(LanguageFeatureRegistry._compareByScoreAndTime)}}static _compareByScoreAndTime(e,t){return e._score<t._score?1:e._score>t._score?-1:isBuiltinSelector(e.selector)&&!isBuiltinSelector(t.selector)?1:!isBuiltinSelector(e.selector)&&isBuiltinSelector(t.selector)?-1:e._time<t._time?1:e._time>t._time?-1:0}}function isBuiltinSelector(o){return typeof o=="string"?!1:Array.isArray(o)?o.some(isBuiltinSelector):!!o.isBuiltin}class LanguageFeaturesService{constructor(){this.referenceProvider=new LanguageFeatureRegistry(this._score.bind(this)),this.renameProvider=new LanguageFeatureRegistry(this._score.bind(this)),this.codeActionProvider=new LanguageFeatureRegistry(this._score.bind(this)),this.definitionProvider=new LanguageFeatureRegistry(this._score.bind(this)),this.typeDefinitionProvider=new LanguageFeatureRegistry(this._score.bind(this)),this.declarationProvider=new LanguageFeatureRegistry(this._score.bind(this)),this.implementationProvider=new LanguageFeatureRegistry(this._score.bind(this)),this.documentSymbolProvider=new LanguageFeatureRegistry(this._score.bind(this)),this.inlayHintsProvider=new LanguageFeatureRegistry(this._score.bind(this)),this.colorProvider=new LanguageFeatureRegistry(this._score.bind(this)),this.codeLensProvider=new LanguageFeatureRegistry(this._score.bind(this)),this.documentFormattingEditProvider=new LanguageFeatureRegistry(this._score.bind(this)),this.documentRangeFormattingEditProvider=new LanguageFeatureRegistry(this._score.bind(this)),this.onTypeFormattingEditProvider=new LanguageFeatureRegistry(this._score.bind(this)),this.signatureHelpProvider=new LanguageFeatureRegistry(this._score.bind(this)),this.hoverProvider=new LanguageFeatureRegistry(this._score.bind(this)),this.documentHighlightProvider=new LanguageFeatureRegistry(this._score.bind(this)),this.selectionRangeProvider=new LanguageFeatureRegistry(this._score.bind(this)),this.foldingRangeProvider=new LanguageFeatureRegistry(this._score.bind(this)),this.linkProvider=new LanguageFeatureRegistry(this._score.bind(this)),this.inlineCompletionsProvider=new LanguageFeatureRegistry(this._score.bind(this)),this.completionProvider=new LanguageFeatureRegistry(this._score.bind(this)),this.linkedEditingRangeProvider=new LanguageFeatureRegistry(this._score.bind(this)),this.documentRangeSemanticTokensProvider=new LanguageFeatureRegistry(this._score.bind(this)),this.documentSemanticTokensProvider=new LanguageFeatureRegistry(this._score.bind(this)),this.documentOnDropEditProvider=new LanguageFeatureRegistry(this._score.bind(this)),this.documentPasteEditProvider=new LanguageFeatureRegistry(this._score.bind(this))}_score(e){var t;return(t=this._notebookTypeResolver)===null||t===void 0?void 0:t.call(this,e)}}registerSingleton(ILanguageFeaturesService,LanguageFeaturesService,1);const IBulkEditService=createDecorator("IWorkspaceEditService");class ResourceEdit{constructor(e){this.metadata=e}static convert(e){return e.edits.map(t=>{if(ResourceTextEdit.is(t))return ResourceTextEdit.lift(t);if(ResourceFileEdit.is(t))return ResourceFileEdit.lift(t);throw new Error("Unsupported edit")})}}class ResourceTextEdit extends ResourceEdit{static is(e){return e instanceof ResourceTextEdit?!0:isObject(e)&&URI.isUri(e.resource)&&isObject(e.textEdit)}static lift(e){return e instanceof ResourceTextEdit?e:new ResourceTextEdit(e.resource,e.textEdit,e.versionId,e.metadata)}constructor(e,t,i=void 0,n){super(n),this.resource=e,this.textEdit=t,this.versionId=i}}class ResourceFileEdit extends ResourceEdit{static is(e){return e instanceof ResourceFileEdit?!0:isObject(e)&&(!!e.newResource||!!e.oldResource)}static lift(e){return e instanceof ResourceFileEdit?e:new ResourceFileEdit(e.oldResource,e.newResource,e.options,e.metadata)}constructor(e,t,i={},n){super(n),this.oldResource=e,this.newResource=t,this.options=i}}const diffEditorDefaultOptions={enableSplitViewResizing:!0,renderSideBySide:!0,renderMarginRevertIcon:!0,maxComputationTime:5e3,maxFileSize:50,ignoreTrimWhitespace:!0,renderIndicators:!0,originalEditable:!1,diffCodeLens:!1,renderOverviewRuler:!0,diffWordWrap:"inherit",diffAlgorithm:"advanced",accessibilityVerbose:!1,experimental:{showMoves:!1,showEmptyDecorations:!0},hideUnchangedRegions:{enabled:!1,contextLineCount:3,minimumLineCount:3,revealLineCount:20},isInEmbeddedEditor:!1,onlyShowAccessibleDiffViewer:!1,renderSideBySideInlineBreakpoint:900,useInlineViewWhenSpaceIsLimited:!0},editorConfigurationBaseNode=Object.freeze({id:"editor",order:5,type:"object",title:localize("editorConfigurationTitle","Editor"),scope:5}),editorConfiguration=Object.assign(Object.assign({},editorConfigurationBaseNode),{properties:{"editor.tabSize":{type:"number",default:EDITOR_MODEL_DEFAULTS.tabSize,minimum:1,markdownDescription:localize("tabSize","The number of spaces a tab is equal to. This setting is overridden based on the file contents when {0} is on.","`#editor.detectIndentation#`")},"editor.indentSize":{anyOf:[{type:"string",enum:["tabSize"]},{type:"number",minimum:1}],default:"tabSize",markdownDescription:localize("indentSize",'The number of spaces used for indentation or `"tabSize"` to use the value from `#editor.tabSize#`. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.')},"editor.insertSpaces":{type:"boolean",default:EDITOR_MODEL_DEFAULTS.insertSpaces,markdownDescription:localize("insertSpaces","Insert spaces when pressing `Tab`. This setting is overridden based on the file contents when {0} is on.","`#editor.detectIndentation#`")},"editor.detectIndentation":{type:"boolean",default:EDITOR_MODEL_DEFAULTS.detectIndentation,markdownDescription:localize("detectIndentation","Controls whether {0} and {1} will be automatically detected when a file is opened based on the file contents.","`#editor.tabSize#`","`#editor.insertSpaces#`")},"editor.trimAutoWhitespace":{type:"boolean",default:EDITOR_MODEL_DEFAULTS.trimAutoWhitespace,description:localize("trimAutoWhitespace","Remove trailing auto inserted whitespace.")},"editor.largeFileOptimizations":{type:"boolean",default:EDITOR_MODEL_DEFAULTS.largeFileOptimizations,description:localize("largeFileOptimizations","Special handling for large files to disable certain memory intensive features.")},"editor.wordBasedSuggestions":{type:"boolean",default:!0,description:localize("wordBasedSuggestions","Controls whether completions should be computed based on words in the document.")},"editor.wordBasedSuggestionsMode":{enum:["currentDocument","matchingDocuments","allDocuments"],default:"matchingDocuments",enumDescriptions:[localize("wordBasedSuggestionsMode.currentDocument","Only suggest words from the active document."),localize("wordBasedSuggestionsMode.matchingDocuments","Suggest words from all open documents of the same language."),localize("wordBasedSuggestionsMode.allDocuments","Suggest words from all open documents.")],description:localize("wordBasedSuggestionsMode","Controls from which documents word based completions are computed.")},"editor.semanticHighlighting.enabled":{enum:[!0,!1,"configuredByTheme"],enumDescriptions:[localize("semanticHighlighting.true","Semantic highlighting enabled for all color themes."),localize("semanticHighlighting.false","Semantic highlighting disabled for all color themes."),localize("semanticHighlighting.configuredByTheme","Semantic highlighting is configured by the current color theme's `semanticHighlighting` setting.")],default:"configuredByTheme",description:localize("semanticHighlighting.enabled","Controls whether the semanticHighlighting is shown for the languages that support it.")},"editor.stablePeek":{type:"boolean",default:!1,markdownDescription:localize("stablePeek","Keep peek editors open even when double-clicking their content or when hitting `Escape`.")},"editor.maxTokenizationLineLength":{type:"integer",default:2e4,description:localize("maxTokenizationLineLength","Lines above this length will not be tokenized for performance reasons")},"editor.experimental.asyncTokenization":{type:"boolean",default:!1,description:localize("editor.experimental.asyncTokenization","Controls whether the tokenization should happen asynchronously on a web worker."),tags:["experimental"]},"editor.experimental.asyncTokenizationLogging":{type:"boolean",default:!1,description:localize("editor.experimental.asyncTokenizationLogging","Controls whether async tokenization should be logged. For debugging only.")},"editor.experimental.asyncTokenizationVerification":{type:"boolean",default:!1,description:localize("editor.experimental.asyncTokenizationVerification","Controls whether async tokenization should be verified against legacy background tokenization. Might slow down tokenization. For debugging only."),tags:["experimental"]},"editor.language.brackets":{type:["array","null"],default:null,description:localize("schema.brackets","Defines the bracket symbols that increase or decrease the indentation."),items:{type:"array",items:[{type:"string",description:localize("schema.openBracket","The opening bracket character or string sequence.")},{type:"string",description:localize("schema.closeBracket","The closing bracket character or string sequence.")}]}},"editor.language.colorizedBracketPairs":{type:["array","null"],default:null,description:localize("schema.colorizedBracketPairs","Defines the bracket pairs that are colorized by their nesting level if bracket pair colorization is enabled."),items:{type:"array",items:[{type:"string",description:localize("schema.openBracket","The opening bracket character or string sequence.")},{type:"string",description:localize("schema.closeBracket","The closing bracket character or string sequence.")}]}},"diffEditor.maxComputationTime":{type:"number",default:diffEditorDefaultOptions.maxComputationTime,description:localize("maxComputationTime","Timeout in milliseconds after which diff computation is cancelled. Use 0 for no timeout.")},"diffEditor.maxFileSize":{type:"number",default:diffEditorDefaultOptions.maxFileSize,description:localize("maxFileSize","Maximum file size in MB for which to compute diffs. Use 0 for no limit.")},"diffEditor.renderSideBySide":{type:"boolean",default:diffEditorDefaultOptions.renderSideBySide,description:localize("sideBySide","Controls whether the diff editor shows the diff side by side or inline.")},"diffEditor.renderSideBySideInlineBreakpoint":{type:"number",default:diffEditorDefaultOptions.renderSideBySideInlineBreakpoint,description:localize("renderSideBySideInlineBreakpoint","If the diff editor width is smaller than this value, the inline view is used.")},"diffEditor.useInlineViewWhenSpaceIsLimited":{type:"boolean",default:diffEditorDefaultOptions.useInlineViewWhenSpaceIsLimited,description:localize("useInlineViewWhenSpaceIsLimited","If enabled and the editor width is too small, the inline view is used.")},"diffEditor.renderMarginRevertIcon":{type:"boolean",default:diffEditorDefaultOptions.renderMarginRevertIcon,description:localize("renderMarginRevertIcon","When enabled, the diff editor shows arrows in its glyph margin to revert changes.")},"diffEditor.ignoreTrimWhitespace":{type:"boolean",default:diffEditorDefaultOptions.ignoreTrimWhitespace,description:localize("ignoreTrimWhitespace","When enabled, the diff editor ignores changes in leading or trailing whitespace.")},"diffEditor.renderIndicators":{type:"boolean",default:diffEditorDefaultOptions.renderIndicators,description:localize("renderIndicators","Controls whether the diff editor shows +/- indicators for added/removed changes.")},"diffEditor.codeLens":{type:"boolean",default:diffEditorDefaultOptions.diffCodeLens,description:localize("codeLens","Controls whether the editor shows CodeLens.")},"diffEditor.wordWrap":{type:"string",enum:["off","on","inherit"],default:diffEditorDefaultOptions.diffWordWrap,markdownEnumDescriptions:[localize("wordWrap.off","Lines will never wrap."),localize("wordWrap.on","Lines will wrap at the viewport width."),localize("wordWrap.inherit","Lines will wrap according to the {0} setting.","`#editor.wordWrap#`")]},"diffEditor.diffAlgorithm":{type:"string",enum:["legacy","advanced"],default:diffEditorDefaultOptions.diffAlgorithm,markdownEnumDescriptions:[localize("diffAlgorithm.legacy","Uses the legacy diffing algorithm."),localize("diffAlgorithm.advanced","Uses the advanced diffing algorithm.")],tags:["experimental"]},"diffEditor.hideUnchangedRegions.enabled":{type:"boolean",default:diffEditorDefaultOptions.hideUnchangedRegions.enabled,markdownDescription:localize("hideUnchangedRegions.enabled","Controls whether the diff editor shows unchanged regions.")},"diffEditor.hideUnchangedRegions.revealLineCount":{type:"integer",default:diffEditorDefaultOptions.hideUnchangedRegions.revealLineCount,markdownDescription:localize("hideUnchangedRegions.revealLineCount","Controls how many lines are used for unchanged regions."),minimum:1},"diffEditor.hideUnchangedRegions.minimumLineCount":{type:"integer",default:diffEditorDefaultOptions.hideUnchangedRegions.minimumLineCount,markdownDescription:localize("hideUnchangedRegions.minimumLineCount","Controls how many lines are used as a minimum for unchanged regions."),minimum:1},"diffEditor.hideUnchangedRegions.contextLineCount":{type:"integer",default:diffEditorDefaultOptions.hideUnchangedRegions.contextLineCount,markdownDescription:localize("hideUnchangedRegions.contextLineCount","Controls how many lines are used as context when comparing unchanged regions."),minimum:1},"diffEditor.experimental.showMoves":{type:"boolean",default:diffEditorDefaultOptions.experimental.showMoves,markdownDescription:localize("showMoves","Controls whether the diff editor should show detected code moves.")},"diffEditor.experimental.showEmptyDecorations":{type:"boolean",default:diffEditorDefaultOptions.experimental.showEmptyDecorations,description:localize("showEmptyDecorations","Controls whether the diff editor shows empty decorations to see where characters got inserted or deleted.")}}});function isConfigurationPropertySchema(o){return typeof o.type<"u"||typeof o.anyOf<"u"}for(const o of editorOptionsRegistry){const e=o.schema;if(typeof e<"u")if(isConfigurationPropertySchema(e))editorConfiguration.properties[`editor.${o.name}`]=e;else for(const t in e)Object.hasOwnProperty.call(e,t)&&(editorConfiguration.properties[t]=e[t])}let cachedEditorConfigurationKeys=null;function getEditorConfigurationKeys(){return cachedEditorConfigurationKeys===null&&(cachedEditorConfigurationKeys=Object.create(null),Object.keys(editorConfiguration.properties).forEach(o=>{cachedEditorConfigurationKeys[o]=!0})),cachedEditorConfigurationKeys}function isEditorConfigurationKey(o){return getEditorConfigurationKeys()[`editor.${o}`]||!1}function isDiffEditorConfigurationKey(o){return getEditorConfigurationKeys()[`diffEditor.${o}`]||!1}const configurationRegistry$1=Registry.as(Extensions$6.Configuration);configurationRegistry$1.registerConfiguration(editorConfiguration);class EditOperation{static insert(e,t){return{range:new Range$2(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}}}function freeze(o){return Object.isFrozen(o)?o:deepFreeze(o)}class ConfigurationModel{constructor(e={},t=[],i=[],n){this._contents=e,this._keys=t,this._overrides=i,this.raw=n,this.overrideConfigurations=new Map}get rawConfiguration(){var e;if(!this._rawConfiguration)if(!((e=this.raw)===null||e===void 0)&&e.length){const t=this.raw.map(i=>{if(i instanceof ConfigurationModel)return i;const n=new ConfigurationModelParser("");return n.parseRaw(i),n.configurationModel});this._rawConfiguration=t.reduce((i,n)=>n===i?n:i.merge(n),t[0])}else this._rawConfiguration=this;return this._rawConfiguration}get contents(){return this._contents}get overrides(){return this._overrides}get keys(){return this._keys}isEmpty(){return this._keys.length===0&&Object.keys(this._contents).length===0&&this._overrides.length===0}getValue(e){return e?getConfigurationValue(this.contents,e):this.contents}inspect(e,t){const i=this.rawConfiguration.getValue(e),n=t?this.rawConfiguration.getOverrideValue(e,t):void 0,r=t?this.rawConfiguration.override(t).getValue(e):i;return{value:i,override:n,merged:r}}getOverrideValue(e,t){const i=this.getContentsForOverrideIdentifer(t);return i?e?getConfigurationValue(i,e):i:void 0}override(e){let t=this.overrideConfigurations.get(e);return t||(t=this.createOverrideConfigurationModel(e),this.overrideConfigurations.set(e,t)),t}merge(...e){var t,i;const n=deepClone(this.contents),r=deepClone(this.overrides),s=[...this.keys],a=!((t=this.raw)===null||t===void 0)&&t.length?[...this.raw]:[this];for(const l of e)if(a.push(...!((i=l.raw)===null||i===void 0)&&i.length?l.raw:[l]),!l.isEmpty()){this.mergeContents(n,l.contents);for(const d of l.overrides){const[c]=r.filter(u=>equals$2(u.identifiers,d.identifiers));c?(this.mergeContents(c.contents,d.contents),c.keys.push(...d.keys),c.keys=distinct(c.keys)):r.push(deepClone(d))}for(const d of l.keys)s.indexOf(d)===-1&&s.push(d)}return new ConfigurationModel(n,s,r,a.every(l=>l instanceof ConfigurationModel)?void 0:a)}createOverrideConfigurationModel(e){const t=this.getContentsForOverrideIdentifer(e);if(!t||typeof t!="object"||!Object.keys(t).length)return this;const i={};for(const n of distinct([...Object.keys(this.contents),...Object.keys(t)])){let r=this.contents[n];const s=t[n];s&&(typeof r=="object"&&typeof s=="object"?(r=deepClone(r),this.mergeContents(r,s)):r=s),i[n]=r}return new ConfigurationModel(i,this.keys,this.overrides)}mergeContents(e,t){for(const i of Object.keys(t)){if(i in e&&isObject(e[i])&&isObject(t[i])){this.mergeContents(e[i],t[i]);continue}e[i]=deepClone(t[i])}}getContentsForOverrideIdentifer(e){let t=null,i=null;const n=r=>{r&&(i?this.mergeContents(i,r):i=deepClone(r))};for(const r of this.overrides)r.identifiers.length===1&&r.identifiers[0]===e?t=r.contents:r.identifiers.includes(e)&&n(r.contents);return n(t),i}toJSON(){return{contents:this.contents,overrides:this.overrides,keys:this.keys}}addValue(e,t){this.updateValue(e,t,!0)}setValue(e,t){this.updateValue(e,t,!1)}removeValue(e){const t=this.keys.indexOf(e);t!==-1&&(this.keys.splice(t,1),removeFromValueTree(this.contents,e),OVERRIDE_PROPERTY_REGEX.test(e)&&this.overrides.splice(this.overrides.findIndex(i=>equals$2(i.identifiers,overrideIdentifiersFromKey(e))),1))}updateValue(e,t,i){addToValueTree(this.contents,e,t,n=>console.error(n)),i=i||this.keys.indexOf(e)===-1,i&&this.keys.push(e),OVERRIDE_PROPERTY_REGEX.test(e)&&this.overrides.push({identifiers:overrideIdentifiersFromKey(e),keys:Object.keys(this.contents[e]),contents:toValuesTree(this.contents[e],n=>console.error(n))})}}class ConfigurationModelParser{constructor(e){this._name=e,this._raw=null,this._configurationModel=null,this._restrictedConfigurations=[]}get configurationModel(){return this._configurationModel||new ConfigurationModel}parseRaw(e,t){this._raw=e;const{contents:i,keys:n,overrides:r,restricted:s,hasExcludedProperties:a}=this.doParseRaw(e,t);this._configurationModel=new ConfigurationModel(i,n,r,a?[e]:void 0),this._restrictedConfigurations=s||[]}doParseRaw(e,t){const i=Registry.as(Extensions$6.Configuration).getConfigurationProperties(),n=this.filter(e,i,!0,t);e=n.raw;const r=toValuesTree(e,l=>console.error(`Conflict in settings file ${this._name}: ${l}`)),s=Object.keys(e),a=this.toOverrides(e,l=>console.error(`Conflict in settings file ${this._name}: ${l}`));return{contents:r,keys:s,overrides:a,restricted:n.restricted,hasExcludedProperties:n.hasExcludedProperties}}filter(e,t,i,n){var r,s,a;let l=!1;if(!(n!=null&&n.scopes)&&!(n!=null&&n.skipRestricted)&&!(!((r=n==null?void 0:n.exclude)===null||r===void 0)&&r.length))return{raw:e,restricted:[],hasExcludedProperties:l};const d={},c=[];for(const u in e)if(OVERRIDE_PROPERTY_REGEX.test(u)&&i){const g=this.filter(e[u],t,!1,n);d[u]=g.raw,l=l||g.hasExcludedProperties,c.push(...g.restricted)}else{const g=t[u],f=g?typeof g.scope<"u"?g.scope:3:void 0;g!=null&&g.restricted&&c.push(u),!(!((s=n.exclude)===null||s===void 0)&&s.includes(u))&&(!((a=n.include)===null||a===void 0)&&a.includes(u)||(f===void 0||n.scopes===void 0||n.scopes.includes(f))&&!(n.skipRestricted&&(g!=null&&g.restricted)))?d[u]=e[u]:l=!0}return{raw:d,restricted:c,hasExcludedProperties:l}}toOverrides(e,t){const i=[];for(const n of Object.keys(e))if(OVERRIDE_PROPERTY_REGEX.test(n)){const r={};for(const s in e[n])r[s]=e[n][s];i.push({identifiers:overrideIdentifiersFromKey(n),keys:Object.keys(r),contents:toValuesTree(r,t)})}return i}}class ConfigurationInspectValue{constructor(e,t,i,n,r,s,a,l,d,c,u,g,f){this.key=e,this.overrides=t,this._value=i,this.overrideIdentifiers=n,this.defaultConfiguration=r,this.policyConfiguration=s,this.applicationConfiguration=a,this.userConfiguration=l,this.localUserConfiguration=d,this.remoteUserConfiguration=c,this.workspaceConfiguration=u,this.folderConfigurationModel=g,this.memoryConfigurationModel=f}inspect(e,t,i){const n=e.inspect(t,i);return{get value(){return freeze(n.value)},get override(){return freeze(n.override)},get merged(){return freeze(n.merged)}}}get userInspectValue(){return this._userInspectValue||(this._userInspectValue=this.inspect(this.userConfiguration,this.key,this.overrides.overrideIdentifier)),this._userInspectValue}get user(){return this.userInspectValue.value!==void 0||this.userInspectValue.override!==void 0?{value:this.userInspectValue.value,override:this.userInspectValue.override}:void 0}}class Configuration{constructor(e,t,i,n,r=new ConfigurationModel,s=new ConfigurationModel,a=new ResourceMap,l=new ConfigurationModel,d=new ResourceMap){this._defaultConfiguration=e,this._policyConfiguration=t,this._applicationConfiguration=i,this._localUserConfiguration=n,this._remoteUserConfiguration=r,this._workspaceConfiguration=s,this._folderConfigurations=a,this._memoryConfiguration=l,this._memoryConfigurationByResource=d,this._workspaceConsolidatedConfiguration=null,this._foldersConsolidatedConfigurations=new ResourceMap,this._userConfiguration=null}getValue(e,t,i){return this.getConsolidatedConfigurationModel(e,t,i).getValue(e)}updateValue(e,t,i={}){let n;i.resource?(n=this._memoryConfigurationByResource.get(i.resource),n||(n=new ConfigurationModel,this._memoryConfigurationByResource.set(i.resource,n))):n=this._memoryConfiguration,t===void 0?n.removeValue(e):n.setValue(e,t),i.resource||(this._workspaceConsolidatedConfiguration=null)}inspect(e,t,i){const n=this.getConsolidatedConfigurationModel(e,t,i),r=this.getFolderConfigurationModelForResource(t.resource,i),s=t.resource?this._memoryConfigurationByResource.get(t.resource)||this._memoryConfiguration:this._memoryConfiguration,a=new Set;for(const l of n.overrides)for(const d of l.identifiers)n.getOverrideValue(e,d)!==void 0&&a.add(d);return new ConfigurationInspectValue(e,t,n.getValue(e),a.size?[...a]:void 0,this._defaultConfiguration,this._policyConfiguration.isEmpty()?void 0:this._policyConfiguration,this.applicationConfiguration.isEmpty()?void 0:this.applicationConfiguration,this.userConfiguration,this.localUserConfiguration,this.remoteUserConfiguration,i?this._workspaceConfiguration:void 0,r||void 0,s)}get applicationConfiguration(){return this._applicationConfiguration}get userConfiguration(){return this._userConfiguration||(this._userConfiguration=this._remoteUserConfiguration.isEmpty()?this._localUserConfiguration:this._localUserConfiguration.merge(this._remoteUserConfiguration)),this._userConfiguration}get localUserConfiguration(){return this._localUserConfiguration}get remoteUserConfiguration(){return this._remoteUserConfiguration}getConsolidatedConfigurationModel(e,t,i){let n=this.getConsolidatedConfigurationModelForResource(t,i);return t.overrideIdentifier&&(n=n.override(t.overrideIdentifier)),!this._policyConfiguration.isEmpty()&&this._policyConfiguration.getValue(e)!==void 0&&(n=n.merge(this._policyConfiguration)),n}getConsolidatedConfigurationModelForResource({resource:e},t){let i=this.getWorkspaceConsolidatedConfiguration();if(t&&e){const n=t.getFolder(e);n&&(i=this.getFolderConsolidatedConfiguration(n.uri)||i);const r=this._memoryConfigurationByResource.get(e);r&&(i=i.merge(r))}return i}getWorkspaceConsolidatedConfiguration(){return this._workspaceConsolidatedConfiguration||(this._workspaceConsolidatedConfiguration=this._defaultConfiguration.merge(this.applicationConfiguration,this.userConfiguration,this._workspaceConfiguration,this._memoryConfiguration)),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._foldersConsolidatedConfigurations.set(e,t)):t=i}return t}getFolderConfigurationModelForResource(e,t){if(t&&e){const i=t.getFolder(e);if(i)return this._folderConfigurations.get(i.uri)}}toData(){return{defaults:{contents:this._defaultConfiguration.contents,overrides:this._defaultConfiguration.overrides,keys:this._defaultConfiguration.keys},policy:{contents:this._policyConfiguration.contents,overrides:this._policyConfiguration.overrides,keys:this._policyConfiguration.keys},application:{contents:this.applicationConfiguration.contents,overrides:this.applicationConfiguration.overrides,keys:this.applicationConfiguration.keys},user:{contents:this.userConfiguration.contents,overrides:this.userConfiguration.overrides,keys:this.userConfiguration.keys},workspace:{contents:this._workspaceConfiguration.contents,overrides:this._workspaceConfiguration.overrides,keys:this._workspaceConfiguration.keys},folders:[...this._folderConfigurations.keys()].reduce((e,t)=>{const{contents:i,overrides:n,keys:r}=this._folderConfigurations.get(t);return e.push([t,{contents:i,overrides:n,keys:r}]),e},[])}}static parse(e){const t=this.parseConfigurationModel(e.defaults),i=this.parseConfigurationModel(e.policy),n=this.parseConfigurationModel(e.application),r=this.parseConfigurationModel(e.user),s=this.parseConfigurationModel(e.workspace),a=e.folders.reduce((l,d)=>(l.set(URI.revive(d[0]),this.parseConfigurationModel(d[1])),l),new ResourceMap);return new Configuration(t,i,n,r,new ConfigurationModel,s,a,new ConfigurationModel,new ResourceMap)}static parseConfigurationModel(e){return new ConfigurationModel(e.contents,e.keys,e.overrides)}}class ConfigurationChangeEvent{constructor(e,t,i,n){this.change=e,this.previous=t,this.currentConfiguraiton=i,this.currentWorkspace=n,this._marker=`
- `,this._markerCode1=this._marker.charCodeAt(0),this._markerCode2=46,this.affectedKeys=new Set,this._previousConfiguration=void 0;for(const r of e.keys)this.affectedKeys.add(r);for(const[,r]of e.overrides)for(const s of r)this.affectedKeys.add(s);this._affectsConfigStr=this._marker;for(const r of this.affectedKeys)this._affectsConfigStr+=r+this._marker}get previousConfiguration(){return!this._previousConfiguration&&this.previous&&(this._previousConfiguration=Configuration.parse(this.previous.data)),this._previousConfiguration}affectsConfiguration(e,t){var i;const n=this._marker+e,r=this._affectsConfigStr.indexOf(n);if(r<0)return!1;const s=r+n.length;if(s>=this._affectsConfigStr.length)return!1;const a=this._affectsConfigStr.charCodeAt(s);if(a!==this._markerCode1&&a!==this._markerCode2)return!1;if(t){const l=this.previousConfiguration?this.previousConfiguration.getValue(e,t,(i=this.previous)===null||i===void 0?void 0:i.workspace):void 0,d=this.currentConfiguraiton.getValue(e,t,this.currentWorkspace);return!equals$1(l,d)}return!0}}const NoMatchingKb={kind:0},MoreChordsNeeded={kind:1};function KbFound(o,e,t){return{kind:2,commandId:o,commandArgs:e,isBubble:t}}class KeybindingResolver{constructor(e,t,i){var n;this._log=i,this._defaultKeybindings=e,this._defaultBoundCommands=new Map;for(const r of e){const s=r.command;s&&s.charAt(0)!=="-"&&this._defaultBoundCommands.set(s,!0)}this._map=new Map,this._lookupMap=new Map,this._keybindings=KeybindingResolver.handleRemovals([].concat(e).concat(t));for(let r=0,s=this._keybindings.length;r<s;r++){const a=this._keybindings[r];if(a.chords.length===0)continue;const l=(n=a.when)===null||n===void 0?void 0:n.substituteConstants();l&&l.type===0||this._addKeyPress(a.chords[0],a)}}static _isTargetedForRemoval(e,t,i){if(t){for(let n=0;n<t.length;n++)if(t[n]!==e.chords[n])return!1}return!(i&&i.type!==1&&(!e.when||!expressionsAreEqualWithConstantSubstitution(i,e.when)))}static handleRemovals(e){const t=new Map;for(let n=0,r=e.length;n<r;n++){const s=e[n];if(s.command&&s.command.charAt(0)==="-"){const a=s.command.substring(1);t.has(a)?t.get(a).push(s):t.set(a,[s])}}if(t.size===0)return e;const i=[];for(let n=0,r=e.length;n<r;n++){const s=e[n];if(!s.command||s.command.length===0){i.push(s);continue}if(s.command.charAt(0)==="-")continue;const a=t.get(s.command);if(!a||!s.isDefault){i.push(s);continue}let l=!1;for(const d of a){const c=d.when;if(this._isTargetedForRemoval(s,d.chords,c)){l=!0;break}}if(!l){i.push(s);continue}}return i}_addKeyPress(e,t){const i=this._map.get(e);if(typeof i>"u"){this._map.set(e,[t]),this._addToLookupMap(t);return}for(let n=i.length-1;n>=0;n--){const r=i[n];if(r.command===t.command)continue;let s=!0;for(let a=1;a<r.chords.length&&a<t.chords.length;a++)if(r.chords[a]!==t.chords[a]){s=!1;break}s&&KeybindingResolver.whenIsEntirelyIncluded(r.when,t.when)&&this._removeFromLookupMap(r)}i.push(t),this._addToLookupMap(t)}_addToLookupMap(e){if(!e.command)return;let t=this._lookupMap.get(e.command);typeof t>"u"?(t=[e],this._lookupMap.set(e.command,t)):t.push(e)}_removeFromLookupMap(e){if(!e.command)return;const t=this._lookupMap.get(e.command);if(!(typeof t>"u")){for(let i=0,n=t.length;i<n;i++)if(t[i]===e){t.splice(i,1);return}}}static whenIsEntirelyIncluded(e,t){return!t||t.type===1?!0:!e||e.type===1?!1:implies(e,t)}getKeybindings(){return this._keybindings}lookupPrimaryKeybinding(e,t){const i=this._lookupMap.get(e);if(typeof i>"u"||i.length===0)return null;if(i.length===1)return i[0];for(let n=i.length-1;n>=0;n--){const r=i[n];if(t.contextMatchesRules(r.when))return r}return i[i.length-1]}resolve(e,t,i){const n=[...t,i];this._log(`| Resolving ${n}`);const r=this._map.get(n[0]);if(r===void 0)return this._log("\\ No keybinding entries."),NoMatchingKb;let s=null;if(n.length<2)s=r;else{s=[];for(let l=0,d=r.length;l<d;l++){const c=r[l];if(n.length>c.chords.length)continue;let u=!0;for(let g=1;g<n.length;g++)if(c.chords[g]!==n[g]){u=!1;break}u&&s.push(c)}}const a=this._findCommand(e,s);return a?n.length<a.chords.length?(this._log(`\\ From ${s.length} keybinding entries, awaiting ${a.chords.length-n.length} more chord(s), when: ${printWhenExplanation(a.when)}, source: ${printSourceExplanation(a)}.`),MoreChordsNeeded):(this._log(`\\ From ${s.length} keybinding entries, matched ${a.command}, when: ${printWhenExplanation(a.when)}, source: ${printSourceExplanation(a)}.`),KbFound(a.command,a.commandArgs,a.bubble)):(this._log(`\\ From ${s.length} keybinding entries, no when clauses matched the context.`),NoMatchingKb)}_findCommand(e,t){for(let i=t.length-1;i>=0;i--){const n=t[i];if(KeybindingResolver._contextMatchesRules(e,n.when))return n}return null}static _contextMatchesRules(e,t){return t?t.evaluate(e):!0}}function printWhenExplanation(o){return o?`${o.serialize()}`:"no when condition"}function printSourceExplanation(o){return o.extensionId?o.isBuiltinExtension?`built-in extension ${o.extensionId}`:`user extension ${o.extensionId}`:o.isDefault?"built-in":"user"}const HIGH_FREQ_COMMANDS=/^(cursor|delete|undo|redo|tab|editor\.action\.clipboard)/;class AbstractKeybindingService extends Disposable{get onDidUpdateKeybindings(){return this._onDidUpdateKeybindings?this._onDidUpdateKeybindings.event:Event.None}get inChordMode(){return this._currentChords.length>0}constructor(e,t,i,n,r){super(),this._contextKeyService=e,this._commandService=t,this._telemetryService=i,this._notificationService=n,this._logService=r,this._onDidUpdateKeybindings=this._register(new Emitter$1),this._currentChords=[],this._currentChordChecker=new IntervalTimer,this._currentChordStatusMessage=null,this._ignoreSingleModifiers=KeybindingModifierSet.EMPTY,this._currentSingleModifier=null,this._currentSingleModifierClearTimeout=new TimeoutTimer,this._logging=!1}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){this._log("/ Soft dispatching keyboard event");const i=this.resolveKeyboardEvent(e);if(i.hasMultipleChords())return console.warn("keyboard event should not be mapped to multiple chords"),NoMatchingKb;const[n]=i.getDispatchChords();if(n===null)return this._log("\\ Keyboard event cannot be dispatched"),NoMatchingKb;const r=this._contextKeyService.getContext(t),s=this._currentChords.map(({keypress:a})=>a);return this._getResolver().resolve(r,s,n)}_scheduleLeaveChordMode(){const e=Date.now();this._currentChordChecker.cancelAndSet(()=>{if(!this._documentHasFocus()){this._leaveChordMode();return}Date.now()-e>5e3&&this._leaveChordMode()},500)}_expectAnotherChord(e,t){switch(this._currentChords.push({keypress:e,label:t}),this._currentChords.length){case 0:throw illegalState("impossible");case 1:this._currentChordStatusMessage=this._notificationService.status(localize("first.chord","({0}) was pressed. Waiting for second key of chord...",t));break;default:{const i=this._currentChords.map(({label:n})=>n).join(", ");this._currentChordStatusMessage=this._notificationService.status(localize("next.chord","({0}) was pressed. Waiting for next key of chord...",i))}}this._scheduleLeaveChordMode(),IME.enabled&&IME.disable()}_leaveChordMode(){this._currentChordStatusMessage&&(this._currentChordStatusMessage.dispose(),this._currentChordStatusMessage=null),this._currentChordChecker.cancel(),this._currentChords=[],IME.enable()}_dispatch(e,t){return this._doDispatch(this.resolveKeyboardEvent(e),t,!1)}_singleModifierDispatch(e,t){const i=this.resolveKeyboardEvent(e),[n]=i.getSingleModifierDispatchChords();if(n)return this._ignoreSingleModifiers.has(n)?(this._log(`+ Ignoring single modifier ${n} due to it being pressed together with other keys.`),this._ignoreSingleModifiers=KeybindingModifierSet.EMPTY,this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1):(this._ignoreSingleModifiers=KeybindingModifierSet.EMPTY,this._currentSingleModifier===null?(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):n===this._currentSingleModifier?(this._log(`/ Dispatching single modifier chord ${n} ${n}`),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,this._doDispatch(i,t,!0)):(this._log(`+ Clearing single modifier due to modifier mismatch: ${this._currentSingleModifier} ${n}`),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1));const[r]=i.getChords();return this._ignoreSingleModifiers=new KeybindingModifierSet(r),this._currentSingleModifier!==null&&this._log("+ Clearing single modifier due to other key up."),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1}_doDispatch(e,t,i=!1){var n;let r=!1;if(e.hasMultipleChords())return console.warn("Unexpected keyboard event mapped to multiple chords"),!1;let s=null,a=null;if(i){const[u]=e.getSingleModifierDispatchChords();s=u,a=u?[u]:[]}else[s]=e.getDispatchChords(),a=this._currentChords.map(({keypress:u})=>u);if(s===null)return this._log("\\ Keyboard event cannot be dispatched in keydown phase."),r;const l=this._contextKeyService.getContext(t),d=e.getLabel(),c=this._getResolver().resolve(l,a,s);switch(c.kind){case 0:{if(this._logService.trace("KeybindingService#dispatch",d,"[ No matching keybinding ]"),this.inChordMode){const u=this._currentChords.map(({label:g})=>g).join(", ");this._log(`+ Leaving multi-chord mode: Nothing bound to "${u}, ${d}".`),this._notificationService.status(localize("missing.chord","The key combination ({0}, {1}) is not a command.",u,d),{hideAfter:10*1e3}),this._leaveChordMode(),r=!0}return r}case 1:return this._logService.trace("KeybindingService#dispatch",d,"[ Several keybindings match - more chords needed ]"),r=!0,this._expectAnotherChord(s,d),this._log(this._currentChords.length===1?"+ Entering multi-chord mode...":"+ Continuing multi-chord mode..."),r;case 2:{if(this._logService.trace("KeybindingService#dispatch",d,`[ Will dispatch command ${c.commandId} ]`),c.commandId===null||c.commandId===""){if(this.inChordMode){const u=this._currentChords.map(({label:g})=>g).join(", ");this._log(`+ Leaving chord mode: Nothing bound to "${u}, ${d}".`),this._notificationService.status(localize("missing.chord","The key combination ({0}, {1}) is not a command.",u,d),{hideAfter:10*1e3}),this._leaveChordMode(),r=!0}}else this.inChordMode&&this._leaveChordMode(),c.isBubble||(r=!0),this._log(`+ Invoking command ${c.commandId}.`),typeof c.commandArgs>"u"?this._commandService.executeCommand(c.commandId).then(void 0,u=>this._notificationService.warn(u)):this._commandService.executeCommand(c.commandId,c.commandArgs).then(void 0,u=>this._notificationService.warn(u)),HIGH_FREQ_COMMANDS.test(c.commandId)||this._telemetryService.publicLog2("workbenchActionExecuted",{id:c.commandId,from:"keybinding",detail:(n=e.getUserSettingsLabel())!==null&&n!==void 0?n:void 0});return r}}}mightProducePrintableCharacter(e){return e.ctrlKey||e.metaKey?!1:e.keyCode>=31&&e.keyCode<=56||e.keyCode>=21&&e.keyCode<=30}}class KeybindingModifierSet{constructor(e){this._ctrlKey=e?e.ctrlKey:!1,this._shiftKey=e?e.shiftKey:!1,this._altKey=e?e.altKey:!1,this._metaKey=e?e.metaKey:!1}has(e){switch(e){case"ctrl":return this._ctrlKey;case"shift":return this._shiftKey;case"alt":return this._altKey;case"meta":return this._metaKey}}}KeybindingModifierSet.EMPTY=new KeybindingModifierSet(null);class ResolvedKeybindingItem{constructor(e,t,i,n,r,s,a){this._resolvedKeybindingItemBrand=void 0,this.resolvedKeybinding=e,this.chords=e?toEmptyArrayIfContainsNull(e.getDispatchChords()):[],e&&this.chords.length===0&&(this.chords=toEmptyArrayIfContainsNull(e.getSingleModifierDispatchChords())),this.bubble=t?t.charCodeAt(0)===94:!1,this.command=this.bubble?t.substr(1):t,this.commandArgs=i,this.when=n,this.isDefault=r,this.extensionId=s,this.isBuiltinExtension=a}}function toEmptyArrayIfContainsNull(o){const e=[];for(let t=0,i=o.length;t<i;t++){const n=o[t];if(!n)return[];e.push(n)}return e}class ModifierLabelProvider{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(t.length===0)return null;const n=[];for(let r=0,s=t.length;r<s;r++){const a=t[r],l=i(a);if(l===null)return null;n[r]=_simpleAsString(a,l,this.modifierLabels[e])}return n.join(" ")}}const UILabelProvider=new ModifierLabelProvider({ctrlKey:"⌃",shiftKey:"⇧",altKey:"⌥",metaKey:"⌘",separator:""},{ctrlKey:localize({},"Ctrl"),shiftKey:localize({},"Shift"),altKey:localize({},"Alt"),metaKey:localize({},"Windows"),separator:"+"},{ctrlKey:localize({},"Ctrl"),shiftKey:localize({},"Shift"),altKey:localize({},"Alt"),metaKey:localize({},"Super"),separator:"+"}),AriaLabelProvider=new ModifierLabelProvider({ctrlKey:localize({},"Control"),shiftKey:localize({},"Shift"),altKey:localize({},"Option"),metaKey:localize({},"Command"),separator:"+"},{ctrlKey:localize({},"Control"),shiftKey:localize({},"Shift"),altKey:localize({},"Alt"),metaKey:localize({},"Windows"),separator:"+"},{ctrlKey:localize({},"Control"),shiftKey:localize({},"Shift"),altKey:localize({},"Alt"),metaKey:localize({},"Super"),separator:"+"}),ElectronAcceleratorLabelProvider=new ModifierLabelProvider({ctrlKey:"Ctrl",shiftKey:"Shift",altKey:"Alt",metaKey:"Cmd",separator:"+"},{ctrlKey:"Ctrl",shiftKey:"Shift",altKey:"Alt",metaKey:"Super",separator:"+"}),UserSettingsLabelProvider=new ModifierLabelProvider({ctrlKey:"ctrl",shiftKey:"shift",altKey:"alt",metaKey:"cmd",separator:"+"},{ctrlKey:"ctrl",shiftKey:"shift",altKey:"alt",metaKey:"win",separator:"+"},{ctrlKey:"ctrl",shiftKey:"shift",altKey:"alt",metaKey:"meta",separator:"+"});function _simpleAsString(o,e,t){if(e===null)return"";const i=[];return o.ctrlKey&&i.push(t.ctrlKey),o.shiftKey&&i.push(t.shiftKey),o.altKey&&i.push(t.altKey),o.metaKey&&i.push(t.metaKey),e!==""&&i.push(e),i.join(t.separator)}class BaseResolvedKeybinding extends ResolvedKeybinding{constructor(e,t){if(super(),t.length===0)throw illegalArgument("chords");this._os=e,this._chords=t}getLabel(){return UILabelProvider.toLabel(this._os,this._chords,e=>this._getLabel(e))}getAriaLabel(){return AriaLabelProvider.toLabel(this._os,this._chords,e=>this._getAriaLabel(e))}getElectronAccelerator(){return this._chords.length>1||this._chords[0].isDuplicateModifierCase()?null:ElectronAcceleratorLabelProvider.toLabel(this._os,this._chords,e=>this._getElectronAccelerator(e))}getUserSettingsLabel(){return UserSettingsLabelProvider.toLabel(this._os,this._chords,e=>this._getUserSettingsLabel(e))}hasMultipleChords(){return this._chords.length>1}getChords(){return this._chords.map(e=>this._getChord(e))}_getChord(e){return new ResolvedChord(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,this._getLabel(e),this._getAriaLabel(e))}getDispatchChords(){return this._chords.map(e=>this._getChordDispatch(e))}getSingleModifierDispatchChords(){return this._chords.map(e=>this._getSingleModifierChordDispatch(e))}}class USLayoutResolvedKeybinding extends BaseResolvedKeybinding{constructor(e,t){super(t,e)}_keyCodeToUILabel(e){if(this._os===2)switch(e){case 15:return"←";case 16:return"↑";case 17:return"→";case 18:return"↓"}return KeyCodeUtils.toString(e)}_getLabel(e){return e.isDuplicateModifierCase()?"":this._keyCodeToUILabel(e.keyCode)}_getAriaLabel(e){return e.isDuplicateModifierCase()?"":KeyCodeUtils.toString(e.keyCode)}_getElectronAccelerator(e){return KeyCodeUtils.toElectronAccelerator(e.keyCode)}_getUserSettingsLabel(e){if(e.isDuplicateModifierCase())return"";const t=KeyCodeUtils.toUserSettingsUS(e.keyCode);return t&&t.toLowerCase()}_getChordDispatch(e){return USLayoutResolvedKeybinding.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+=KeyCodeUtils.toString(e.keyCode),t}_getSingleModifierChordDispatch(e){return e.keyCode===5&&!e.shiftKey&&!e.altKey&&!e.metaKey?"ctrl":e.keyCode===4&&!e.ctrlKey&&!e.altKey&&!e.metaKey?"shift":e.keyCode===6&&!e.ctrlKey&&!e.shiftKey&&!e.metaKey?"alt":e.keyCode===57&&!e.ctrlKey&&!e.shiftKey&&!e.altKey?"meta":null}static _scanCodeToKeyCode(e){const t=IMMUTABLE_CODE_TO_KEY_CODE[e];if(t!==-1)return t;switch(e){case 10:return 31;case 11:return 32;case 12:return 33;case 13:return 34;case 14:return 35;case 15:return 36;case 16:return 37;case 17:return 38;case 18:return 39;case 19:return 40;case 20:return 41;case 21:return 42;case 22:return 43;case 23:return 44;case 24:return 45;case 25:return 46;case 26:return 47;case 27:return 48;case 28:return 49;case 29:return 50;case 30:return 51;case 31:return 52;case 32:return 53;case 33:return 54;case 34:return 55;case 35:return 56;case 36:return 22;case 37:return 23;case 38:return 24;case 39:return 25;case 40:return 26;case 41:return 27;case 42:return 28;case 43:return 29;case 44:return 30;case 45:return 21;case 51:return 88;case 52:return 86;case 53:return 92;case 54:return 94;case 55:return 93;case 56:return 0;case 57:return 85;case 58:return 95;case 59:return 91;case 60:return 87;case 61:return 89;case 62:return 90;case 106:return 97}return 0}static _toKeyCodeChord(e){if(!e)return null;if(e instanceof KeyCodeChord)return e;const t=this._scanCodeToKeyCode(e.scanCode);return t===0?null:new KeyCodeChord(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,t)}static resolveKeybinding(e,t){const i=toEmptyArrayIfContainsNull(e.chords.map(n=>this._toKeyCodeChord(n)));return i.length>0?[new USLayoutResolvedKeybinding(i,t)]:[]}}const ILabelService=createDecorator("labelService"),IProgressService=createDecorator("progressService");class Progress{constructor(e,t){this.callback=e,this.report=t!=null&&t.async?this._reportAsync.bind(this):this._reportSync.bind(this)}_reportSync(e){this._value=e,this.callback(this._value)}_reportAsync(e){Promise.resolve(this._lastTask).finally(()=>{this._value=e;const t=this.callback(this._value);this._lastTask=Promise.resolve(t).finally(()=>this._lastTask=void 0)})}}Progress.None=Object.freeze({report(){}});const IEditorProgressService=createDecorator("editorProgressService");class StringIterator{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){const t=e.charCodeAt(0),i=this._value.charCodeAt(this._pos);return t-i}value(){return this._value[this._pos]}}class ConfigKeysIterator{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(this._value.charCodeAt(this._to)===46)if(e)this._from++;else break;else e=!1;return this}cmp(e){return this._caseSensitive?compareSubstring(e,this._value,0,e.length,this._from,this._to):compareSubstringIgnoreCase(e,this._value,0,e.length,this._from,this._to)}value(){return this._value.substring(this._from,this._to)}}class PathIterator{constructor(e=!0,t=!0){this._splitOnBackslash=e,this._caseSensitive=t}reset(e){this._from=0,this._to=0,this._value=e,this._valueLen=e.length;for(let t=e.length-1;t>=0;t--,this._valueLen--){const i=this._value.charCodeAt(t);if(!(i===47||this._splitOnBackslash&&i===92))break}return this.next()}hasNext(){return this._to<this._valueLen}next(){this._from=this._to;let e=!0;for(;this._to<this._valueLen;this._to++){const t=this._value.charCodeAt(this._to);if(t===47||this._splitOnBackslash&&t===92)if(e)this._from++;else break;else e=!1}return this}cmp(e){return this._caseSensitive?compareSubstring(e,this._value,0,e.length,this._from,this._to):compareSubstringIgnoreCase(e,this._value,0,e.length,this._from,this._to)}value(){return this._value.substring(this._from,this._to)}}class UriIterator{constructor(e,t){this._ignorePathCasing=e,this._ignoreQueryAndFragment=t,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 PathIterator(!1,!this._ignorePathCasing(e)),this._pathIterator.reset(e.path),this._pathIterator.value()&&this._states.push(3)),this._ignoreQueryAndFragment(e)||(this._value.query&&this._states.push(4),this._value.fragment&&this._states.push(5)),this._stateIdx=0,this}next(){return this._states[this._stateIdx]===3&&this._pathIterator.hasNext()?this._pathIterator.next():this._stateIdx+=1,this}hasNext(){return this._states[this._stateIdx]===3&&this._pathIterator.hasNext()||this._stateIdx<this._states.length-1}cmp(e){if(this._states[this._stateIdx]===1)return compareIgnoreCase(e,this._value.scheme);if(this._states[this._stateIdx]===2)return compareIgnoreCase(e,this._value.authority);if(this._states[this._stateIdx]===3)return this._pathIterator.cmp(e);if(this._states[this._stateIdx]===4)return compare(e,this._value.query);if(this._states[this._stateIdx]===5)return compare(e,this._value.fragment);throw new Error}value(){if(this._states[this._stateIdx]===1)return this._value.scheme;if(this._states[this._stateIdx]===2)return this._value.authority;if(this._states[this._stateIdx]===3)return this._pathIterator.value();if(this._states[this._stateIdx]===4)return this._value.query;if(this._states[this._stateIdx]===5)return this._value.fragment;throw new Error}}class TernarySearchTreeNode{constructor(){this.height=1}rotateLeft(){const e=this.right;return this.right=e.left,e.left=this,this.updateHeight(),e.updateHeight(),e}rotateRight(){const e=this.left;return this.left=e.right,e.right=this,this.updateHeight(),e.updateHeight(),e}updateHeight(){this.height=1+Math.max(this.heightLeft,this.heightRight)}balanceFactor(){return this.heightRight-this.heightLeft}get heightLeft(){var e,t;return(t=(e=this.left)===null||e===void 0?void 0:e.height)!==null&&t!==void 0?t:0}get heightRight(){var e,t;return(t=(e=this.right)===null||e===void 0?void 0:e.height)!==null&&t!==void 0?t:0}}class TernarySearchTree{static forUris(e=()=>!1,t=()=>!1){return new TernarySearchTree(new UriIterator(e,t))}static forStrings(){return new TernarySearchTree(new StringIterator)}static forConfigKeys(){return new TernarySearchTree(new ConfigKeysIterator)}constructor(e){this._iter=e}clear(){this._root=void 0}set(e,t){const i=this._iter.reset(e);let n;this._root||(this._root=new TernarySearchTreeNode,this._root.segment=i.value());const r=[];for(n=this._root;;){const a=i.cmp(n.segment);if(a>0)n.left||(n.left=new TernarySearchTreeNode,n.left.segment=i.value()),r.push([-1,n]),n=n.left;else if(a<0)n.right||(n.right=new TernarySearchTreeNode,n.right.segment=i.value()),r.push([1,n]),n=n.right;else if(i.hasNext())i.next(),n.mid||(n.mid=new TernarySearchTreeNode,n.mid.segment=i.value()),r.push([0,n]),n=n.mid;else break}const s=n.value;n.value=t,n.key=e;for(let a=r.length-1;a>=0;a--){const l=r[a][1];l.updateHeight();const d=l.balanceFactor();if(d<-1||d>1){const c=r[a][0],u=r[a+1][0];if(c===1&&u===1)r[a][1]=l.rotateLeft();else if(c===-1&&u===-1)r[a][1]=l.rotateRight();else if(c===1&&u===-1)l.right=r[a+1][1]=r[a+1][1].rotateRight(),r[a][1]=l.rotateLeft();else if(c===-1&&u===1)l.left=r[a+1][1]=r[a+1][1].rotateLeft(),r[a][1]=l.rotateRight();else throw new Error;if(a>0)switch(r[a-1][0]){case-1:r[a-1][1].left=r[a][1];break;case 1:r[a-1][1].right=r[a][1];break;case 0:r[a-1][1].mid=r[a][1];break}else this._root=r[0][1]}}return s}get(e){var t;return(t=this._getNode(e))===null||t===void 0?void 0:t.value}_getNode(e){const t=this._iter.reset(e);let i=this._root;for(;i;){const n=t.cmp(i.segment);if(n>0)i=i.left;else if(n<0)i=i.right;else if(t.hasNext())t.next(),i=i.mid;else break}return i}has(e){const t=this._getNode(e);return!((t==null?void 0:t.value)===void 0&&(t==null?void 0:t.mid)===void 0)}delete(e){return this._delete(e,!1)}deleteSuperstr(e){return this._delete(e,!0)}_delete(e,t){var i;const n=this._iter.reset(e),r=[];let s=this._root;for(;s;){const a=n.cmp(s.segment);if(a>0)r.push([-1,s]),s=s.left;else if(a<0)r.push([1,s]),s=s.right;else if(n.hasNext())n.next(),r.push([0,s]),s=s.mid;else break}if(s){if(t?(s.left=void 0,s.mid=void 0,s.right=void 0,s.height=1):(s.key=void 0,s.value=void 0),!s.mid&&!s.value)if(s.left&&s.right){const a=this._min(s.right);if(a.key){const{key:l,value:d,segment:c}=a;this._delete(a.key,!1),s.key=l,s.value=d,s.segment=c}}else{const a=(i=s.left)!==null&&i!==void 0?i:s.right;if(r.length>0){const[l,d]=r[r.length-1];switch(l){case-1:d.left=a;break;case 0:d.mid=a;break;case 1:d.right=a;break}}else this._root=a}for(let a=r.length-1;a>=0;a--){const l=r[a][1];l.updateHeight();const d=l.balanceFactor();if(d>1?(l.right.balanceFactor()>=0||(l.right=l.right.rotateRight()),r[a][1]=l.rotateLeft()):d<-1&&(l.left.balanceFactor()<=0||(l.left=l.left.rotateLeft()),r[a][1]=l.rotateRight()),a>0)switch(r[a-1][0]){case-1:r[a-1][1].left=r[a][1];break;case 1:r[a-1][1].right=r[a][1];break;case 0:r[a-1][1].mid=r[a][1];break}else this._root=r[0][1]}}}_min(e){for(;e.left;)e=e.left;return e}findSubstr(e){const t=this._iter.reset(e);let i=this._root,n;for(;i;){const r=t.cmp(i.segment);if(r>0)i=i.left;else if(r<0)i=i.right;else if(t.hasNext())t.next(),n=i.value||n,i=i.mid;else break}return i&&i.value||n}findSuperstr(e){return this._findSuperstrOrElement(e,!1)}_findSuperstrOrElement(e,t){const i=this._iter.reset(e);let n=this._root;for(;n;){const r=i.cmp(n.segment);if(r>0)n=n.left;else if(r<0)n=n.right;else if(i.hasNext())i.next(),n=n.mid;else return n.mid?this._entries(n.mid):t?n.value:void 0}}forEach(e){for(const[t,i]of this)e(i,t)}*[Symbol.iterator](){yield*this._entries(this._root)}_entries(e){const t=[];return this._dfsEntries(e,t),t[Symbol.iterator]()}_dfsEntries(e,t){e&&(e.left&&this._dfsEntries(e.left,t),e.value&&t.push([e.key,e.value]),e.mid&&this._dfsEntries(e.mid,t),e.right&&this._dfsEntries(e.right,t))}}const IWorkspaceContextService=createDecorator("contextService");function isSingleFolderWorkspaceIdentifier(o){const e=o;return typeof(e==null?void 0:e.id)=="string"&&URI.isUri(e.uri)}function isEmptyWorkspaceIdentifier(o){const e=o;return typeof(e==null?void 0:e.id)=="string"&&!isSingleFolderWorkspaceIdentifier(o)&&!isWorkspaceIdentifier(o)}const UNKNOWN_EMPTY_WINDOW_WORKSPACE={id:"empty-window"};function toWorkspaceIdentifier(o,e){if(typeof o=="string"||typeof o>"u")return typeof o=="string"?{id:basename$1(o)}:UNKNOWN_EMPTY_WINDOW_WORKSPACE;const t=o;return t.configuration?{id:t.id,configPath:t.configuration}:t.folders.length===1?{id:t.id,uri:t.folders[0].uri}:{id:t.id}}function isWorkspaceIdentifier(o){const e=o;return typeof(e==null?void 0:e.id)=="string"&&URI.isUri(e.configPath)}class WorkspaceFolder{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}}}const WORKSPACE_EXTENSION="code-workspace";localize("codeWorkspace","Code Workspace");const STANDALONE_EDITOR_WORKSPACE_ID="4064f6ec-cb38-4ad0-af64-ee6467e63c82";function isStandaloneEditorWorkspace(o){return o.id===STANDALONE_EDITOR_WORKSPACE_ID}var InspectTokensNLS;(function(o){o.inspectTokensAction=localize("inspectTokens","Developer: Inspect Tokens")})(InspectTokensNLS||(InspectTokensNLS={}));var GoToLineNLS;(function(o){o.gotoLineActionLabel=localize("gotoLineActionLabel","Go to Line/Column...")})(GoToLineNLS||(GoToLineNLS={}));var QuickHelpNLS;(function(o){o.helpQuickAccessActionLabel=localize("helpQuickAccess","Show all Quick Access Providers")})(QuickHelpNLS||(QuickHelpNLS={}));var QuickCommandNLS;(function(o){o.quickCommandActionLabel=localize("quickCommandActionLabel","Command Palette"),o.quickCommandHelp=localize("quickCommandActionHelp","Show And Run Commands")})(QuickCommandNLS||(QuickCommandNLS={}));var QuickOutlineNLS;(function(o){o.quickOutlineActionLabel=localize("quickOutlineActionLabel","Go to Symbol..."),o.quickOutlineByCategoryActionLabel=localize("quickOutlineByCategoryActionLabel","Go to Symbol by Category...")})(QuickOutlineNLS||(QuickOutlineNLS={}));var StandaloneCodeEditorNLS;(function(o){o.editorViewAccessibleLabel=localize("editorViewAccessibleLabel","Editor content"),o.accessibilityHelpMessage=localize("accessibilityHelpMessage","Press Alt+F1 for Accessibility Options.")})(StandaloneCodeEditorNLS||(StandaloneCodeEditorNLS={}));var ToggleHighContrastNLS;(function(o){o.toggleHighContrast=localize("toggleHighContrast","Toggle High Contrast Theme")})(ToggleHighContrastNLS||(ToggleHighContrastNLS={}));var StandaloneServicesNLS;(function(o){o.bulkEditServiceSummary=localize("bulkEditServiceSummary","Made {0} edits in {1} files")})(StandaloneServicesNLS||(StandaloneServicesNLS={}));const IWorkspaceTrustManagementService=createDecorator("workspaceTrustManagementService"),IContextViewService=createDecorator("contextViewService"),IContextMenuService=createDecorator("contextMenuService");var Range$1;(function(o){function e(r,s){if(r.start>=s.end||s.start>=r.end)return{start:0,end:0};const a=Math.max(r.start,s.start),l=Math.min(r.end,s.end);return l-a<=0?{start:0,end:0}:{start:a,end:l}}o.intersect=e;function t(r){return r.end-r.start<=0}o.isEmpty=t;function i(r,s){return!t(e(r,s))}o.intersects=i;function n(r,s){const a=[],l={start:r.start,end:Math.min(s.start,r.end)},d={start:Math.max(s.end,r.start),end:r.end};return t(l)||a.push(l),t(d)||a.push(d),a}o.relativeComplement=n})(Range$1||(Range$1={}));function isAnchor(o){const e=o;return!!e&&typeof e.x=="number"&&typeof e.y=="number"}var LayoutAnchorMode;(function(o){o[o.AVOID=0]="AVOID",o[o.ALIGN=1]="ALIGN"})(LayoutAnchorMode||(LayoutAnchorMode={}));function layout(o,e,t){const i=t.mode===LayoutAnchorMode.ALIGN?t.offset:t.offset+t.size,n=t.mode===LayoutAnchorMode.ALIGN?t.offset+t.size:t.offset;return t.position===0?e<=o-i?i:e<=n?n-e:Math.max(o-e,0):e<=n?n-e:e<=o-i?i:0}class ContextView extends Disposable{constructor(e,t){super(),this.container=null,this.delegate=null,this.toDisposeOnClean=Disposable.None,this.toDisposeOnSetContainer=Disposable.None,this.shadowRoot=null,this.shadowRootHostElement=null,this.view=$$d(".context-view"),this.useFixedPosition=!1,this.useShadowDOM=!1,hide(this.view),this.setContainer(e,t),this._register(toDisposable(()=>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,(i=this.shadowRootHostElement)===null||i===void 0||i.remove(),this.shadowRootHostElement=null):this.container.removeChild(this.view),this.container=null),e){if(this.container=e,this.useFixedPosition=t!==1,this.useShadowDOM=t===3,this.useShadowDOM){this.shadowRootHostElement=$$d(".shadow-root-host"),this.container.appendChild(this.shadowRootHostElement),this.shadowRoot=this.shadowRootHostElement.attachShadow({mode:"open"});const r=document.createElement("style");r.textContent=SHADOW_ROOT_CSS,this.shadowRoot.appendChild(r),this.shadowRoot.appendChild(this.view),this.shadowRoot.appendChild($$d("slot"))}else this.container.appendChild(this.view);const n=new DisposableStore;ContextView.BUBBLE_UP_EVENTS.forEach(r=>{n.add(addStandardDisposableListener(this.container,r,s=>{this.onDOMEvent(s,!1)}))}),ContextView.BUBBLE_DOWN_EVENTS.forEach(r=>{n.add(addStandardDisposableListener(this.container,r,s=>{this.onDOMEvent(s,!0)},!0))}),this.toDisposeOnSetContainer=n}}show(e){var t,i;this.isVisible()&&this.hide(),clearNode(this.view),this.view.className="context-view",this.view.style.top="0px",this.view.style.left="0px",this.view.style.zIndex="2575",this.view.style.position=this.useFixedPosition?"fixed":"absolute",show(this.view),this.toDisposeOnClean=e.render(this.view)||Disposable.None,this.delegate=e,this.doLayout(),(i=(t=this.delegate).focus)===null||i===void 0||i.call(t)}getViewElement(){return this.view}layout(){if(this.isVisible()){if(this.delegate.canRelayout===!1&&!(isIOS&&BrowserFeatures.pointerEvents)){this.hide();return}this.delegate.layout&&this.delegate.layout(),this.doLayout()}}doLayout(){if(!this.isVisible())return;const e=this.delegate.getAnchor();let t;if(isHTMLElement(e)){const u=getDomNodePagePosition(e),g=getDomNodeZoomLevel(e);t={top:u.top*g,left:u.left*g,width:u.width*g,height:u.height*g}}else isAnchor(e)?t={top:e.y,left:e.x,width:e.width||1,height:e.height||2}:t={top:e.posy,left:e.posx,width:2,height:2};const i=getTotalWidth(this.view),n=getTotalHeight(this.view),r=this.delegate.anchorPosition||0,s=this.delegate.anchorAlignment||0,a=this.delegate.anchorAxisAlignment||0;let l,d;if(a===0){const u={offset:t.top-window.pageYOffset,size:t.height,position:r===0?0:1},g={offset:t.left,size:t.width,position:s===0?0:1,mode:LayoutAnchorMode.ALIGN};l=layout(window.innerHeight,n,u)+window.pageYOffset,Range$1.intersects({start:l,end:l+n},{start:u.offset,end:u.offset+u.size})&&(g.mode=LayoutAnchorMode.AVOID),d=layout(window.innerWidth,i,g)}else{const u={offset:t.left,size:t.width,position:s===0?0:1},g={offset:t.top,size:t.height,position:r===0?0:1,mode:LayoutAnchorMode.ALIGN};d=layout(window.innerWidth,i,u),Range$1.intersects({start:d,end:d+i},{start:u.offset,end:u.offset+u.size})&&(g.mode=LayoutAnchorMode.AVOID),l=layout(window.innerHeight,n,g)+window.pageYOffset}this.view.classList.remove("top","bottom","left","right"),this.view.classList.add(r===0?"bottom":"top"),this.view.classList.add(s===0?"left":"right"),this.view.classList.toggle("fixed",this.useFixedPosition);const c=getDomNodePagePosition(this.container);this.view.style.top=`${l-(this.useFixedPosition?getDomNodePagePosition(this.view).top:c.top)}px`,this.view.style.left=`${d-(this.useFixedPosition?getDomNodePagePosition(this.view).left:c.left)}px`,this.view.style.width="initial"}hide(e){const t=this.delegate;this.delegate=null,t!=null&&t.onHide&&t.onHide(e),this.toDisposeOnClean.dispose(),hide(this.view)}isVisible(){return!!this.delegate}onDOMEvent(e,t){this.delegate&&(this.delegate.onDOMEvent?this.delegate.onDOMEvent(e,document.activeElement):t&&!isAncestor$1(e.target,this.container)&&this.hide())}dispose(){this.hide(),super.dispose()}}ContextView.BUBBLE_UP_EVENTS=["click","keydown","focus","blur"];ContextView.BUBBLE_DOWN_EVENTS=["click"];const SHADOW_ROOT_CSS=`
- :host {
- all: initial; /* 1st rule so subsequent properties are reset. */
- }
- .codicon[class*='codicon-'] {
- font: normal normal normal 16px/1 codicon;
- display: inline-block;
- text-decoration: none;
- text-rendering: auto;
- text-align: center;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- user-select: none;
- -webkit-user-select: none;
- -ms-user-select: none;
- }
- :host {
- font-family: -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI", "HelveticaNeue-Light", system-ui, "Ubuntu", "Droid Sans", sans-serif;
- }
- :host-context(.mac) { font-family: -apple-system, BlinkMacSystemFont, sans-serif; }
- :host-context(.mac:lang(zh-Hans)) { font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", sans-serif; }
- :host-context(.mac:lang(zh-Hant)) { font-family: -apple-system, BlinkMacSystemFont, "PingFang TC", sans-serif; }
- :host-context(.mac:lang(ja)) { font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic Pro", sans-serif; }
- :host-context(.mac:lang(ko)) { font-family: -apple-system, BlinkMacSystemFont, "Nanum Gothic", "Apple SD Gothic Neo", "AppleGothic", sans-serif; }
- :host-context(.windows) { font-family: "Segoe WPC", "Segoe UI", sans-serif; }
- :host-context(.windows:lang(zh-Hans)) { font-family: "Segoe WPC", "Segoe UI", "Microsoft YaHei", sans-serif; }
- :host-context(.windows:lang(zh-Hant)) { font-family: "Segoe WPC", "Segoe UI", "Microsoft Jhenghei", sans-serif; }
- :host-context(.windows:lang(ja)) { font-family: "Segoe WPC", "Segoe UI", "Yu Gothic UI", "Meiryo UI", sans-serif; }
- :host-context(.windows:lang(ko)) { font-family: "Segoe WPC", "Segoe UI", "Malgun Gothic", "Dotom", sans-serif; }
- :host-context(.linux) { font-family: system-ui, "Ubuntu", "Droid Sans", sans-serif; }
- :host-context(.linux:lang(zh-Hans)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans SC", "Source Han Sans CN", "Source Han Sans", sans-serif; }
- :host-context(.linux:lang(zh-Hant)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans TC", "Source Han Sans TW", "Source Han Sans", sans-serif; }
- :host-context(.linux:lang(ja)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans J", "Source Han Sans JP", "Source Han Sans", sans-serif; }
- :host-context(.linux:lang(ko)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans K", "Source Han Sans JR", "Source Han Sans", "UnDotum", "FBaekmuk Gulim", sans-serif; }
- `;var __decorate$1U=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1O=function(o,e){return function(t,i){e(t,i,o)}};let ContextViewService=class extends Disposable{constructor(e){super(),this.layoutService=e,this.currentViewDisposable=Disposable.None,this.container=e.hasContainer?e.container:null,this.contextView=this._register(new ContextView(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.shadowRoot!==i)&&(this.container=t,this.setContainer(t,i?3:2)):this.layoutService.hasContainer&&this.container!==this.layoutService.container&&(this.container=this.layoutService.container,this.setContainer(this.container,1)),this.shadowRoot=i,this.contextView.show(e);const n=toDisposable(()=>{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)}};ContextViewService=__decorate$1U([__param$1O(0,ILayoutService)],ContextViewService);let registeredAssociations=[],nonUserRegisteredAssociations=[],userRegisteredAssociations=[];function registerPlatformLanguageAssociation(o,e=!1){_registerLanguageAssociation(o,!1,e)}function _registerLanguageAssociation(o,e,t){const i=toLanguageAssociationItem(o,e);registeredAssociations.push(i),i.userConfigured?userRegisteredAssociations.push(i):nonUserRegisteredAssociations.push(i),t&&!i.userConfigured&®isteredAssociations.forEach(n=>{n.mime===i.mime||n.userConfigured||(i.extension&&n.extension===i.extension&&console.warn(`Overwriting extension <<${i.extension}>> to now point to mime <<${i.mime}>>`),i.filename&&n.filename===i.filename&&console.warn(`Overwriting filename <<${i.filename}>> to now point to mime <<${i.mime}>>`),i.filepattern&&n.filepattern===i.filepattern&&console.warn(`Overwriting filepattern <<${i.filepattern}>> to now point to mime <<${i.mime}>>`),i.firstline&&n.firstline===i.firstline&&console.warn(`Overwriting firstline <<${i.firstline}>> to now point to mime <<${i.mime}>>`))})}function toLanguageAssociationItem(o,e){return{id:o.id,mime:o.mime,filename:o.filename,extension:o.extension,filepattern:o.filepattern,firstline:o.firstline,userConfigured:e,filenameLowercase:o.filename?o.filename.toLowerCase():void 0,extensionLowercase:o.extension?o.extension.toLowerCase():void 0,filepatternLowercase:o.filepattern?parse$1(o.filepattern.toLowerCase()):void 0,filepatternOnPath:o.filepattern?o.filepattern.indexOf(posix.sep)>=0:!1}}function clearPlatformLanguageAssociations(){registeredAssociations=registeredAssociations.filter(o=>o.userConfigured),nonUserRegisteredAssociations=[]}function getLanguageIds(o,e){return getAssociations(o,e).map(t=>t.id)}function getAssociations(o,e){let t;if(o)switch(o.scheme){case Schemas.file:t=o.fsPath;break;case Schemas.data:{t=DataUri.parseMetaData(o).get(DataUri.META_DATA_LABEL);break}case Schemas.vscodeNotebookCell:t=void 0;break;default:t=o.path}if(!t)return[{id:"unknown",mime:Mimes.unknown}];t=t.toLowerCase();const i=basename$1(t),n=getAssociationByPath(t,i,userRegisteredAssociations);if(n)return[n,{id:PLAINTEXT_LANGUAGE_ID,mime:Mimes.text}];const r=getAssociationByPath(t,i,nonUserRegisteredAssociations);if(r)return[r,{id:PLAINTEXT_LANGUAGE_ID,mime:Mimes.text}];if(e){const s=getAssociationByFirstline(e);if(s)return[s,{id:PLAINTEXT_LANGUAGE_ID,mime:Mimes.text}]}return[{id:"unknown",mime:Mimes.unknown}]}function getAssociationByPath(o,e,t){var i;let n,r,s;for(let a=t.length-1;a>=0;a--){const l=t[a];if(e===l.filenameLowercase){n=l;break}if(l.filepattern&&(!r||l.filepattern.length>r.filepattern.length)){const d=l.filepatternOnPath?o:e;!((i=l.filepatternLowercase)===null||i===void 0)&&i.call(l,d)&&(r=l)}l.extension&&(!s||l.extension.length>s.extension.length)&&e.endsWith(l.extensionLowercase)&&(s=l)}if(n)return n;if(r)return r;if(s)return s}function getAssociationByFirstline(o){if(startsWithUTF8BOM(o)&&(o=o.substr(1)),o.length>0)for(let e=registeredAssociations.length-1;e>=0;e--){const t=registeredAssociations[e];if(!t.firstline)continue;const i=o.match(t.firstline);if(i&&i.length>0)return t}}const hasOwnProperty=Object.prototype.hasOwnProperty,NULL_LANGUAGE_ID="vs.editor.nullLanguage";class LanguageIdCodec{constructor(){this._languageIdToLanguage=[],this._languageToLanguageId=new Map,this._register(NULL_LANGUAGE_ID,0),this._register(PLAINTEXT_LANGUAGE_ID,1),this._nextLanguageId=2}_register(e,t){this._languageIdToLanguage[t]=e,this._languageToLanguageId.set(e,t)}register(e){if(this._languageToLanguageId.has(e))return;const t=this._nextLanguageId++;this._register(e,t)}encodeLanguageId(e){return this._languageToLanguageId.get(e)||0}decodeLanguageId(e){return this._languageIdToLanguage[e]||NULL_LANGUAGE_ID}}class LanguagesRegistry extends Disposable{constructor(e=!0,t=!1){super(),this._onDidChange=this._register(new Emitter$1),this.onDidChange=this._onDidChange.event,LanguagesRegistry.instanceCount++,this._warnOnOverwrite=t,this.languageIdCodec=new LanguageIdCodec,this._dynamicLanguages=[],this._languages={},this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},e&&(this._initializeFromRegistry(),this._register(ModesRegistry.onDidChangeLanguages(i=>{this._initializeFromRegistry()})))}dispose(){LanguagesRegistry.instanceCount--,super.dispose()}_initializeFromRegistry(){this._languages={},this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},clearPlatformLanguageAssociations();const e=[].concat(ModesRegistry.getLanguages()).concat(this._dynamicLanguages);this._registerLanguages(e)}_registerLanguages(e){for(const t of e)this._registerLanguage(t);this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},Object.keys(this._languages).forEach(t=>{const i=this._languages[t];i.name&&(this._nameMap[i.name]=i.identifier),i.aliases.forEach(n=>{this._lowercaseNameMap[n.toLowerCase()]=i.identifier}),i.mimetypes.forEach(n=>{this._mimeTypesMap[n]=i.identifier})}),Registry.as(Extensions$6.Configuration).registerOverrideIdentifiers(this.getRegisteredLanguageIds()),this._onDidChange.fire()}_registerLanguage(e){const t=e.id;let i;hasOwnProperty.call(this._languages,t)?i=this._languages[t]:(this.languageIdCodec.register(t),i={identifier:t,name:null,mimetypes:[],aliases:[],extensions:[],filenames:[],configurationFiles:[],icons:[]},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(const a of t.extensions)registerPlatformLanguageAssociation({id:i,mime:n,extension:a},this._warnOnOverwrite)}if(Array.isArray(t.filenames))for(const a of t.filenames)registerPlatformLanguageAssociation({id:i,mime:n,filename:a},this._warnOnOverwrite),e.filenames.push(a);if(Array.isArray(t.filenamePatterns))for(const a of t.filenamePatterns)registerPlatformLanguageAssociation({id:i,mime:n,filepattern:a},this._warnOnOverwrite);if(typeof t.firstLine=="string"&&t.firstLine.length>0){let a=t.firstLine;a.charAt(0)!=="^"&&(a="^"+a);try{const l=new RegExp(a);regExpLeadsToEndlessLoop(l)||registerPlatformLanguageAssociation({id:i,mime:n,firstline:l},this._warnOnOverwrite)}catch(l){console.warn(`[${t.id}]: Invalid regular expression \`${a}\`: `,l)}}e.aliases.push(i);let r=null;if(typeof t.aliases<"u"&&Array.isArray(t.aliases)&&(t.aliases.length===0?r=[null]:r=t.aliases),r!==null)for(const a of r)!a||a.length===0||e.aliases.push(a);const s=r!==null&&r.length>0;if(!(s&&r[0]===null)){const a=(s?r[0]:null)||i;(s||!e.name)&&(e.name=a)}t.configuration&&e.configurationFiles.push(t.configuration),t.icon&&e.icons.push(t.icon)}isRegisteredLanguageId(e){return e?hasOwnProperty.call(this._languages,e):!1}getRegisteredLanguageIds(){return Object.keys(this._languages)}getLanguageIdByLanguageName(e){const t=e.toLowerCase();return hasOwnProperty.call(this._lowercaseNameMap,t)?this._lowercaseNameMap[t]:null}getLanguageIdByMimeType(e){return e&&hasOwnProperty.call(this._mimeTypesMap,e)?this._mimeTypesMap[e]:null}guessLanguageIdByFilepathOrFirstLine(e,t){return!e&&!t?[]:getLanguageIds(e,t)}}LanguagesRegistry.instanceCount=0;class LanguageService extends Disposable{constructor(e=!1){super(),this._onDidRequestBasicLanguageFeatures=this._register(new Emitter$1),this.onDidRequestBasicLanguageFeatures=this._onDidRequestBasicLanguageFeatures.event,this._onDidRequestRichLanguageFeatures=this._register(new Emitter$1),this.onDidRequestRichLanguageFeatures=this._onDidRequestRichLanguageFeatures.event,this._onDidChange=this._register(new Emitter$1({leakWarningThreshold:200})),this.onDidChange=this._onDidChange.event,this._requestedBasicLanguages=new Set,this._requestedRichLanguages=new Set,LanguageService.instanceCount++,this._registry=this._register(new LanguagesRegistry(!0,e)),this.languageIdCodec=this._registry.languageIdCodec,this._register(this._registry.onDidChange(()=>this._onDidChange.fire()))}dispose(){LanguageService.instanceCount--,super.dispose()}isRegisteredLanguageId(e){return this._registry.isRegisteredLanguageId(e)}getLanguageIdByLanguageName(e){return this._registry.getLanguageIdByLanguageName(e)}getLanguageIdByMimeType(e){return this._registry.getLanguageIdByMimeType(e)}guessLanguageIdByFilepathOrFirstLine(e,t){const i=this._registry.guessLanguageIdByFilepathOrFirstLine(e,t);return firstOrDefault(i,null)}createById(e){return new LanguageSelection(this.onDidChange,()=>this._createAndGetLanguageIdentifier(e))}createByFilepathOrFirstLine(e,t){return new LanguageSelection(this.onDidChange,()=>{const i=this.guessLanguageIdByFilepathOrFirstLine(e,t);return this._createAndGetLanguageIdentifier(i)})}_createAndGetLanguageIdentifier(e){return(!e||!this.isRegisteredLanguageId(e))&&(e=PLAINTEXT_LANGUAGE_ID),e}requestBasicLanguageFeatures(e){this._requestedBasicLanguages.has(e)||(this._requestedBasicLanguages.add(e),this._onDidRequestBasicLanguageFeatures.fire(e))}requestRichLanguageFeatures(e){this._requestedRichLanguages.has(e)||(this._requestedRichLanguages.add(e),this.requestBasicLanguageFeatures(e),TokenizationRegistry.getOrCreate(e),this._onDidRequestRichLanguageFeatures.fire(e))}}LanguageService.instanceCount=0;class LanguageSelection{constructor(e,t){this._onDidChangeLanguages=e,this._selector=t,this._listener=null,this._emitter=null,this.languageId=this._selector()}_dispose(){this._listener&&(this._listener.dispose(),this._listener=null),this._emitter&&(this._emitter.dispose(),this._emitter=null)}get onDidChange(){return this._listener||(this._listener=this._onDidChangeLanguages(()=>this._evaluate())),this._emitter||(this._emitter=new Emitter$1({onDidRemoveLastListener:()=>{this._dispose()}})),this._emitter.event}_evaluate(){var e;const t=this._selector();t!==this.languageId&&(this.languageId=t,(e=this._emitter)===null||e===void 0||e.fire(this.languageId))}}const DataTransfers={RESOURCES:"ResourceURLs",TEXT:Mimes.text,INTERNAL_URI_LIST:"application/vnd.code.uri-list"};function or(...o){return function(e,t){for(let i=0,n=o.length;i<n;i++){const r=o[i](e,t);if(r)return r}return null}}_matchesPrefix.bind(void 0,!1);const matchesPrefix=_matchesPrefix.bind(void 0,!0);function _matchesPrefix(o,e,t){if(!t||t.length<e.length)return null;let i;return o?i=startsWithIgnoreCase(t,e):i=t.indexOf(e)===0,i?e.length>0?[{start:0,end:e.length}]:[]:null}function matchesContiguousSubString(o,e){const t=e.toLowerCase().indexOf(o.toLowerCase());return t===-1?null:[{start:t,end:t+o.length}]}function matchesSubString(o,e){return _matchesSubString(o.toLowerCase(),e.toLowerCase(),0,0)}function _matchesSubString(o,e,t,i){if(t===o.length)return[];if(i===e.length)return null;if(o[t]===e[i]){let n=null;return(n=_matchesSubString(o,e,t+1,i+1))?join({start:i,end:i+1},n):null}return _matchesSubString(o,e,t,i+1)}function isLower(o){return 97<=o&&o<=122}function isUpper(o){return 65<=o&&o<=90}function isNumber(o){return 48<=o&&o<=57}function isWhitespace(o){return o===32||o===9||o===10||o===13}const wordSeparators=new Set;"()[]{}<>`'\"-/;:,.?!".split("").forEach(o=>wordSeparators.add(o.charCodeAt(0)));function isWordSeparator(o){return isWhitespace(o)||wordSeparators.has(o)}function charactersMatch(o,e){return o===e||isWordSeparator(o)&&isWordSeparator(e)}function isAlphanumeric(o){return isLower(o)||isUpper(o)||isNumber(o)}function join(o,e){return e.length===0?e=[o]:o.end===e[0].start?e[0].start=o.start:e.unshift(o),e}function nextAnchor(o,e){for(let t=e;t<o.length;t++){const i=o.charCodeAt(t);if(isUpper(i)||isNumber(i)||t>0&&!isAlphanumeric(o.charCodeAt(t-1)))return t}return o.length}function _matchesCamelCase(o,e,t,i){if(t===o.length)return[];if(i===e.length)return null;if(o[t]!==e[i].toLowerCase())return null;{let n=null,r=i+1;for(n=_matchesCamelCase(o,e,t+1,i+1);!n&&(r=nextAnchor(e,r))<e.length;)n=_matchesCamelCase(o,e,t+1,r),r++;return n===null?null:join({start:i,end:i+1},n)}}function analyzeCamelCaseWord(o){let e=0,t=0,i=0,n=0,r=0;for(let c=0;c<o.length;c++)r=o.charCodeAt(c),isUpper(r)&&e++,isLower(r)&&t++,isAlphanumeric(r)&&i++,isNumber(r)&&n++;const s=e/o.length,a=t/o.length,l=i/o.length,d=n/o.length;return{upperPercent:s,lowerPercent:a,alphaPercent:l,numericPercent:d}}function isUpperCaseWord(o){const{upperPercent:e,lowerPercent:t}=o;return t===0&&e>.6}function isCamelCaseWord(o){const{upperPercent:e,lowerPercent:t,alphaPercent:i,numericPercent:n}=o;return t>.2&&e<.8&&i>.6&&n<.2}function isCamelCasePattern(o){let e=0,t=0,i=0,n=0;for(let r=0;r<o.length;r++)i=o.charCodeAt(r),isUpper(i)&&e++,isLower(i)&&t++,isWhitespace(i)&&n++;return(e===0||t===0)&&n===0?o.length<=30:e<=5}function matchesCamelCase(o,e){if(!e||(e=e.trim(),e.length===0)||!isCamelCasePattern(o)||e.length>60)return null;const t=analyzeCamelCaseWord(e);if(!isCamelCaseWord(t)){if(!isUpperCaseWord(t))return null;e=e.toLowerCase()}let i=null,n=0;for(o=o.toLowerCase();n<e.length&&(i=_matchesCamelCase(o,e,0,n))===null;)n=nextAnchor(e,n+1);return i}function matchesWords(o,e,t=!1){if(!e||e.length===0)return null;let i=null,n=0;for(o=o.toLowerCase(),e=e.toLowerCase();n<e.length&&(i=_matchesWords(o,e,0,n,t))===null;)n=nextWord(e,n+1);return i}function _matchesWords(o,e,t,i,n){if(t===o.length)return[];if(i===e.length)return null;if(charactersMatch(o.charCodeAt(t),e.charCodeAt(i))){let r=null,s=i+1;if(r=_matchesWords(o,e,t+1,i+1,n),!n)for(;!r&&(s=nextWord(e,s))<e.length;)r=_matchesWords(o,e,t+1,s,n),s++;return r?o.charCodeAt(t)!==e.charCodeAt(i)?r:join({start:i,end:i+1},r):null}else return null}function nextWord(o,e){for(let t=e;t<o.length;t++)if(isWordSeparator(o.charCodeAt(t))||t>0&&isWordSeparator(o.charCodeAt(t-1)))return t;return o.length}const fuzzyContiguousFilter=or(matchesPrefix,matchesCamelCase,matchesContiguousSubString),fuzzySeparateFilter=or(matchesPrefix,matchesCamelCase,matchesSubString),fuzzyRegExpCache=new LRUCache(1e4);function matchesFuzzy(o,e,t=!1){if(typeof o!="string"||typeof e!="string")return null;let i=fuzzyRegExpCache.get(o);i||(i=new RegExp(convertSimple2RegExpPattern(o),"i"),fuzzyRegExpCache.set(o,i));const n=i.exec(e);return n?[{start:n.index,end:n.index+n[0].length}]:t?fuzzySeparateFilter(o,e):fuzzyContiguousFilter(o,e)}function matchesFuzzy2(o,e){const t=fuzzyScore(o,o.toLowerCase(),0,e,e.toLowerCase(),0,{firstMatchCanBeWeak:!0,boostFullMatch:!0});return t?createMatches(t):null}function anyScore(o,e,t,i,n,r){const s=Math.min(13,o.length);for(;t<s;t++){const a=fuzzyScore(o,e,t,i,n,r,{firstMatchCanBeWeak:!0,boostFullMatch:!0});if(a)return a}return[0,r]}function createMatches(o){if(typeof o>"u")return[];const e=[],t=o[1];for(let i=o.length-1;i>1;i--){const n=o[i]+t,r=e[e.length-1];r&&r.end===n?r.end=n+1:e.push({start:n,end:n+1})}return e}const _maxLen=128;function initTable(){const o=[],e=[];for(let t=0;t<=_maxLen;t++)e[t]=0;for(let t=0;t<=_maxLen;t++)o.push(e.slice(0));return o}function initArr(o){const e=[];for(let t=0;t<=o;t++)e[t]=0;return e}const _minWordMatchPos=initArr(2*_maxLen),_maxWordMatchPos=initArr(2*_maxLen),_diag=initTable(),_table=initTable(),_arrows=initTable();function isSeparatorAtPos(o,e){if(e<0||e>=o.length)return!1;const t=o.codePointAt(e);switch(t){case 95:case 45:case 46:case 32:case 47:case 92:case 39:case 34:case 58:case 36:case 60:case 62:case 40:case 41:case 91:case 93:case 123:case 125:return!0;case void 0:return!1;default:return!!isEmojiImprecise(t)}}function isWhitespaceAtPos(o,e){if(e<0||e>=o.length)return!1;switch(o.charCodeAt(e)){case 32:case 9:return!0;default:return!1}}function isUpperCaseAtPos(o,e,t){return e[o]!==t[o]}function isPatternInWord(o,e,t,i,n,r,s=!1){for(;e<t&&n<r;)o[e]===i[n]&&(s&&(_minWordMatchPos[e]=n),e+=1),n+=1;return e===t}var FuzzyScore;(function(o){o.Default=[-100,0];function e(t){return!t||t.length===2&&t[0]===-100&&t[1]===0}o.isDefault=e})(FuzzyScore||(FuzzyScore={}));class FuzzyScoreOptions{constructor(e,t){this.firstMatchCanBeWeak=e,this.boostFullMatch=t}}FuzzyScoreOptions.default={boostFullMatch:!0,firstMatchCanBeWeak:!1};function fuzzyScore(o,e,t,i,n,r,s=FuzzyScoreOptions.default){const a=o.length>_maxLen?_maxLen:o.length,l=i.length>_maxLen?_maxLen:i.length;if(t>=a||r>=l||a-t>l-r||!isPatternInWord(e,t,a,n,r,l,!0))return;_fillInMaxWordMatchPos(a,l,t,r,e,n);let d=1,c=1,u=t,g=r;const f=[!1];for(d=1,u=t;u<a;d++,u++){const C=_minWordMatchPos[u],S=_maxWordMatchPos[u],y=u+1<a?_maxWordMatchPos[u+1]:l;for(c=C-r+1,g=C;g<y;c++,g++){let E=Number.MIN_SAFE_INTEGER,x=!1;g<=S&&(E=_doScore(o,e,u,t,i,n,g,l,r,_diag[d-1][c-1]===0,f));let L=0;E!==Number.MAX_SAFE_INTEGER&&(x=!0,L=E+_table[d-1][c-1]);const I=g>C,D=I?_table[d][c-1]+(_diag[d][c-1]>0?-5:0):0,N=g>C+1&&_diag[d][c-1]>0,F=N?_table[d][c-2]+(_diag[d][c-2]>0?-5:0):0;if(N&&(!I||F>=D)&&(!x||F>=L))_table[d][c]=F,_arrows[d][c]=3,_diag[d][c]=0;else if(I&&(!x||D>=L))_table[d][c]=D,_arrows[d][c]=2,_diag[d][c]=0;else if(x)_table[d][c]=L,_arrows[d][c]=1,_diag[d][c]=_diag[d-1][c-1]+1;else throw new Error("not possible")}}if(!f[0]&&!s.firstMatchCanBeWeak)return;d--,c--;const p=[_table[d][c],r];let m=0,b=0;for(;d>=1;){let C=c;do{const S=_arrows[d][C];if(S===3)C=C-2;else if(S===2)C=C-1;else break}while(C>=1);m>1&&e[t+d-1]===n[r+c-1]&&!isUpperCaseAtPos(C+r-1,i,n)&&m+1>_diag[d][C]&&(C=c),C===c?m++:m=1,b||(b=C),d--,c=C-1,p.push(c)}l===a&&s.boostFullMatch&&(p[0]+=2);const _=b-a;return p[0]-=_,p}function _fillInMaxWordMatchPos(o,e,t,i,n,r){let s=o-1,a=e-1;for(;s>=t&&a>=i;)n[s]===r[a]&&(_maxWordMatchPos[s]=a,s--),a--}function _doScore(o,e,t,i,n,r,s,a,l,d,c){if(e[t]!==r[s])return Number.MIN_SAFE_INTEGER;let u=1,g=!1;return s===t-i?u=o[t]===n[s]?7:5:isUpperCaseAtPos(s,n,r)&&(s===0||!isUpperCaseAtPos(s-1,n,r))?(u=o[t]===n[s]?7:5,g=!0):isSeparatorAtPos(r,s)&&(s===0||!isSeparatorAtPos(r,s-1))?u=5:(isSeparatorAtPos(r,s-1)||isWhitespaceAtPos(r,s-1))&&(u=5,g=!0),u>1&&t===i&&(c[0]=!0),g||(g=isUpperCaseAtPos(s,n,r)||isSeparatorAtPos(r,s-1)||isWhitespaceAtPos(r,s-1)),t===i?s>l&&(u-=g?3:5):d?u+=g?2:0:u+=g?0:1,s+1===a&&(u-=g?3:5),u}function fuzzyScoreGracefulAggressive(o,e,t,i,n,r,s){return fuzzyScoreWithPermutations(o,e,t,i,n,r,!0,s)}function fuzzyScoreWithPermutations(o,e,t,i,n,r,s,a){let l=fuzzyScore(o,e,t,i,n,r,a);if(o.length>=3){const d=Math.min(7,o.length-1);for(let c=t+1;c<d;c++){const u=nextTypoPermutation(o,c);if(u){const g=fuzzyScore(u,u.toLowerCase(),t,i,n,r,a);g&&(g[0]-=3,(!l||g[0]>l[0])&&(l=g))}}}return l}function nextTypoPermutation(o,e){if(e+1>=o.length)return;const t=o[e],i=o[e+1];if(t!==i)return o.slice(0,e)+i+t+o.slice(e+2)}const iconStartMarker="$(",iconsRegex=new RegExp(`\\$\\(${ThemeIcon.iconNameExpression}(?:${ThemeIcon.iconModifierExpression})?\\)`,"g"),escapeIconsRegex=new RegExp(`(\\\\)?${iconsRegex.source}`,"g");function escapeIcons(o){return o.replace(escapeIconsRegex,(e,t)=>t?e:`\\${e}`)}const markdownEscapedIconsRegex=new RegExp(`\\\\${iconsRegex.source}`,"g");function markdownEscapeEscapedIcons(o){return o.replace(markdownEscapedIconsRegex,e=>`\\${e}`)}const stripIconsRegex=new RegExp(`(\\s)?(\\\\)?${iconsRegex.source}(\\s)?`,"g");function stripIcons(o){return o.indexOf(iconStartMarker)===-1?o:o.replace(stripIconsRegex,(e,t,i,n)=>i?e:t||n||"")}function getCodiconAriaLabel(o){return o?o.replace(/\$\((.*?)\)/g,(e,t)=>` ${t} `).trim():""}const _parseIconsRegex=new RegExp(`\\$\\(${ThemeIcon.iconNameCharacter}+\\)`,"g");function parseLabelWithIcons(o){_parseIconsRegex.lastIndex=0;let e="";const t=[];let i=0;for(;;){const n=_parseIconsRegex.lastIndex,r=_parseIconsRegex.exec(o),s=o.substring(n,r==null?void 0:r.index);if(s.length>0){e+=s;for(let a=0;a<s.length;a++)t.push(i)}if(!r)break;i+=r[0].length}return{text:e,iconOffsets:t}}function matchesFuzzyIconAware(o,e,t=!1){const{text:i,iconOffsets:n}=e;if(!n||n.length===0)return matchesFuzzy(o,i,t);const r=ltrim(i," "),s=i.length-r.length,a=matchesFuzzy(o,r,t);if(a)for(const l of a){const d=n[l.start+s]+s;l.start+=d,l.end+=d}return a}class MarkdownString{constructor(e="",t=!1){var i,n,r;if(this.value=e,typeof this.value!="string")throw illegalArgument("value");typeof t=="boolean"?(this.isTrusted=t,this.supportThemeIcons=!1,this.supportHtml=!1):(this.isTrusted=(i=t.isTrusted)!==null&&i!==void 0?i:void 0,this.supportThemeIcons=(n=t.supportThemeIcons)!==null&&n!==void 0?n:!1,this.supportHtml=(r=t.supportHtml)!==null&&r!==void 0?r:!1)}appendText(e,t=0){return this.value+=escapeMarkdownSyntaxTokens(this.supportThemeIcons?escapeIcons(e):e).replace(/([ \t]+)/g,(i,n)=>" ".repeat(n.length)).replace(/\>/gm,"\\>").replace(/\n/g,t===1?`\\
- `:`
- `),this}appendMarkdown(e){return this.value+=e,this}appendCodeblock(e,t){return this.value+="\n```",this.value+=e,this.value+=`
- `,this.value+=t,this.value+="\n```\n",this}appendLink(e,t,i){return this.value+="[",this.value+=this._escape(t,"]"),this.value+="](",this.value+=this._escape(String(e),")"),i&&(this.value+=` "${this._escape(this._escape(i,'"'),")")}"`),this.value+=")",this}_escape(e,t){const i=new RegExp(escapeRegExpCharacters(t),"g");return e.replace(i,(n,r)=>e.charAt(r-1)!=="\\"?`\\${n}`:n)}}function isEmptyMarkdownString(o){return isMarkdownString(o)?!o.value:Array.isArray(o)?o.every(isEmptyMarkdownString):!0}function isMarkdownString(o){return o instanceof MarkdownString?!0:o&&typeof o=="object"?typeof o.value=="string"&&(typeof o.isTrusted=="boolean"||typeof o.isTrusted=="object"||o.isTrusted===void 0)&&(typeof o.supportThemeIcons=="boolean"||o.supportThemeIcons===void 0):!1}function markdownStringEqual(o,e){return o===e?!0:!o||!e?!1:o.value===e.value&&o.isTrusted===e.isTrusted&&o.supportThemeIcons===e.supportThemeIcons&&o.supportHtml===e.supportHtml&&(o.baseUri===e.baseUri||!!o.baseUri&&!!e.baseUri&&isEqual(URI.from(o.baseUri),URI.from(e.baseUri)))}function escapeMarkdownSyntaxTokens(o){return o.replace(/[\\`*_{}[\]()#+\-!~]/g,"\\$&")}function escapeDoubleQuotes(o){return o.replace(/"/g,""")}function removeMarkdownEscapes(o){return o&&o.replace(/\\([\\`*_{}[\]()#+\-.!~])/g,"$1")}function parseHrefAndDimensions(o){const e=[],t=o.split("|").map(n=>n.trim());o=t[0];const i=t[1];if(i){const n=/height=(\d+)/.exec(i),r=/width=(\d+)/.exec(i),s=n?n[1]:"",a=r?r[1]:"",l=isFinite(parseInt(a)),d=isFinite(parseInt(s));l&&e.push(`width="${a}"`),d&&e.push(`height="${s}"`)}return{href:o,dimensions:e}}var __awaiter$1p=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};function setupNativeHover(o,e){isString$1(e)?o.title=stripIcons(e):e!=null&&e.markdownNotSupportedFallback?o.title=e.markdownNotSupportedFallback:o.removeAttribute("title")}class UpdatableHoverWidget{constructor(e,t,i){this.hoverDelegate=e,this.target=t,this.fadeInAnimation=i}update(e,t,i){var n;return __awaiter$1p(this,void 0,void 0,function*(){if(this._cancellationTokenSource&&(this._cancellationTokenSource.dispose(!0),this._cancellationTokenSource=void 0),this.isDisposed)return;let r;if(e===void 0||isString$1(e)||e instanceof HTMLElement)r=e;else if(!isFunction(e.markdown))r=(n=e.markdown)!==null&&n!==void 0?n:e.markdownNotSupportedFallback;else{this._hoverWidget||this.show(localize("iconLabel.loading","Loading..."),t),this._cancellationTokenSource=new CancellationTokenSource$1;const s=this._cancellationTokenSource.token;if(r=yield e.markdown(s),r===void 0&&(r=e.markdownNotSupportedFallback),this.isDisposed||s.isCancellationRequested)return}this.show(r,t,i)})}show(e,t,i){const n=this._hoverWidget;if(this.hasContent(e)){const r=Object.assign({content:e,target:this.target,showPointer:this.hoverDelegate.placement==="element",hoverPosition:2,skipFadeInAnimation:!this.fadeInAnimation||!!n},i);this._hoverWidget=this.hoverDelegate.showHover(r,t)}n==null||n.dispose()}hasContent(e){return e?isMarkdownString(e)?!!e.value:!0:!1}get isDisposed(){var e;return(e=this._hoverWidget)===null||e===void 0?void 0:e.isDisposed}dispose(){var e,t;(e=this._hoverWidget)===null||e===void 0||e.dispose(),(t=this._cancellationTokenSource)===null||t===void 0||t.dispose(!0),this._cancellationTokenSource=void 0}}function setupCustomHover(o,e,t,i){let n,r;const s=(u,g)=>{var f;const p=r!==void 0;u&&(r==null||r.dispose(),r=void 0),g&&(n==null||n.dispose(),n=void 0),p&&((f=o.onDidHideHover)===null||f===void 0||f.call(o))},a=(u,g,f)=>new TimeoutTimer(()=>__awaiter$1p(this,void 0,void 0,function*(){(!r||r.isDisposed)&&(r=new UpdatableHoverWidget(o,f||e,u>0),yield r.update(t,g,i))}),u),l=()=>{if(n)return;const u=new DisposableStore,g=m=>s(!1,m.fromElement===e);u.add(addDisposableListener(e,EventType$1.MOUSE_LEAVE,g,!0));const f=()=>s(!0,!0);u.add(addDisposableListener(e,EventType$1.MOUSE_DOWN,f,!0));const p={targetElements:[e],dispose:()=>{}};if(o.placement===void 0||o.placement==="mouse"){const m=b=>{p.x=b.x+10,b.target instanceof HTMLElement&&b.target.classList.contains("action-label")&&s(!0,!0)};u.add(addDisposableListener(e,EventType$1.MOUSE_MOVE,m,!0))}u.add(a(o.delay,!1,p)),n=u},d=addDisposableListener(e,EventType$1.MOUSE_OVER,l,!0);return{show:u=>{s(!1,!0),a(0,u)},hide:()=>{s(!0,!0)},update:(u,g)=>__awaiter$1p(this,void 0,void 0,function*(){t=u,yield r==null?void 0:r.update(t,void 0,g)}),dispose:()=>{d.dispose(),s(!0,!0)}}}function renderText(o,e={}){const t=createElement(e);return t.textContent=o,t}function renderFormattedText(o,e={}){const t=createElement(e);return _renderFormattedText(t,parseFormattedText(o,!!e.renderCodeSegments),e.actionHandler,e.renderCodeSegments),t}function createElement(o){const e=o.inline?"span":"div",t=document.createElement(e);return o.className&&(t.className=o.className),t}class StringStream{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 _renderFormattedText(o,e,t,i){let n;if(e.type===2)n=document.createTextNode(e.content||"");else if(e.type===3)n=document.createElement("b");else if(e.type===4)n=document.createElement("i");else if(e.type===7&&i)n=document.createElement("code");else if(e.type===5&&t){const r=document.createElement("a");t.disposables.add(addStandardDisposableListener(r,"click",s=>{t.callback(String(e.index),s)})),n=r}else e.type===8?n=document.createElement("br"):e.type===1&&(n=o);n&&o!==n&&o.appendChild(n),n&&Array.isArray(e.children)&&e.children.forEach(r=>{_renderFormattedText(n,r,t,i)})}function parseFormattedText(o,e){const t={type:1,children:[]};let i=0,n=t;const r=[],s=new StringStream(o);for(;!s.eos();){let a=s.next();const l=a==="\\"&&formatTagType(s.peek(),e)!==0;if(l&&(a=s.next()),!l&&isFormatTag(a,e)&&a===s.peek()){s.advance(),n.type===2&&(n=r.pop());const d=formatTagType(a,e);if(n.type===d||n.type===5&&d===6)n=r.pop();else{const c={type:d,children:[]};d===5&&(c.index=i,i++),n.children.push(c),r.push(n),n=c}}else if(a===`
- `)n.type===2&&(n=r.pop()),n.children.push({type:8});else if(n.type!==2){const d={type:2,content:a};n.children.push(d),r.push(n),n=d}else n.content+=a}return n.type===2&&(n=r.pop()),t}function isFormatTag(o,e){return formatTagType(o,e)!==0}function formatTagType(o,e){switch(o){case"*":return 3;case"_":return 4;case"[":return 5;case"]":return 6;case"`":return e?7:0;default:return 0}}const labelWithIconsRegex=new RegExp(`(\\\\)?\\$\\((${ThemeIcon.iconNameExpression}(?:${ThemeIcon.iconModifierExpression})?)\\)`,"g");function renderLabelWithIcons(o){const e=new Array;let t,i=0,n=0;for(;(t=labelWithIconsRegex.exec(o))!==null;){n=t.index||0,i<n&&e.push(o.substring(i,n)),i=(t.index||0)+t[0].length;const[,r,s]=t;e.push(r?`$(${s})`:renderIcon({id:s}))}return i<o.length&&e.push(o.substring(i)),e}function renderIcon(o){const e=$$d("span");return e.classList.add(...ThemeIcon.asClassNameArray(o)),e}class IdGenerator{constructor(e){this._prefix=e,this._lastId=0}nextId(){return this._prefix+ ++this._lastId}}const defaultGenerator=new IdGenerator("id#");let __marked_exports={};(function(){function o(e,t){t(__marked_exports)}o.amd=!0,function(e,t){typeof o=="function"&&o.amd?o(["exports"],t):typeof exports=="object"&&typeof module<"u"?t(exports):(e=typeof globalThis<"u"?globalThis:e||self,t(e.marked={}))}(this,function(e){function t(ie,q){for(var Z=0;Z<q.length;Z++){var O=q[Z];O.enumerable=O.enumerable||!1,O.configurable=!0,"value"in O&&(O.writable=!0),Object.defineProperty(ie,O.key,O)}}function i(ie,q,Z){return Z&&t(ie,Z),Object.defineProperty(ie,"prototype",{writable:!1}),ie}function n(ie,q){if(ie){if(typeof ie=="string")return r(ie,q);var Z=Object.prototype.toString.call(ie).slice(8,-1);if(Z==="Object"&&ie.constructor&&(Z=ie.constructor.name),Z==="Map"||Z==="Set")return Array.from(ie);if(Z==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(Z))return r(ie,q)}}function r(ie,q){(q==null||q>ie.length)&&(q=ie.length);for(var Z=0,O=new Array(q);Z<q;Z++)O[Z]=ie[Z];return O}function s(ie,q){var Z=typeof Symbol<"u"&&ie[Symbol.iterator]||ie["@@iterator"];if(Z)return(Z=Z.call(ie)).next.bind(Z);if(Array.isArray(ie)||(Z=n(ie))||q){Z&&(ie=Z);var O=0;return function(){return O>=ie.length?{done:!0}:{done:!1,value:ie[O++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function a(){return{async:!1,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}}e.defaults=a();function l(ie){e.defaults=ie}var d=/[&<>"']/,c=/[&<>"']/g,u=/[<>"']|&(?!#?\w+;)/,g=/[<>"']|&(?!#?\w+;)/g,f={"&":"&","<":"<",">":">",'"':""","'":"'"},p=function(q){return f[q]};function m(ie,q){if(q){if(d.test(ie))return ie.replace(c,p)}else if(u.test(ie))return ie.replace(g,p);return ie}var b=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;function _(ie){return ie.replace(b,function(q,Z){return Z=Z.toLowerCase(),Z==="colon"?":":Z.charAt(0)==="#"?Z.charAt(1)==="x"?String.fromCharCode(parseInt(Z.substring(2),16)):String.fromCharCode(+Z.substring(1)):""})}var C=/(^|[^\[])\^/g;function S(ie,q){ie=typeof ie=="string"?ie:ie.source,q=q||"";var Z={replace:function(B,j){return j=j.source||j,j=j.replace(C,"$1"),ie=ie.replace(B,j),Z},getRegex:function(){return new RegExp(ie,q)}};return Z}var y=/[^\w:]/g,E=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function x(ie,q,Z){if(ie){var O;try{O=decodeURIComponent(_(Z)).replace(y,"").toLowerCase()}catch{return null}if(O.indexOf("javascript:")===0||O.indexOf("vbscript:")===0||O.indexOf("data:")===0)return null}q&&!E.test(Z)&&(Z=F(q,Z));try{Z=encodeURI(Z).replace(/%25/g,"%")}catch{return null}return Z}var L={},I=/^[^:]+:\/*[^/]*$/,D=/^([^:]+:)[\s\S]*$/,N=/^([^:]+:\/*[^/]*)[\s\S]*$/;function F(ie,q){L[" "+ie]||(I.test(ie)?L[" "+ie]=ie+"/":L[" "+ie]=V(ie,"/",!0)),ie=L[" "+ie];var Z=ie.indexOf(":")===-1;return q.substring(0,2)==="//"?Z?q:ie.replace(D,"$1")+q:q.charAt(0)==="/"?Z?q:ie.replace(N,"$1")+q:ie+q}var R={exec:function(){}};function M(ie){for(var q=1,Z,O;q<arguments.length;q++){Z=arguments[q];for(O in Z)Object.prototype.hasOwnProperty.call(Z,O)&&(ie[O]=Z[O])}return ie}function W(ie,q){var Z=ie.replace(/\|/g,function(j,H,ne){for(var re=!1,K=H;--K>=0&&ne[K]==="\\";)re=!re;return re?"|":" |"}),O=Z.split(/ \|/),B=0;if(O[0].trim()||O.shift(),O.length>0&&!O[O.length-1].trim()&&O.pop(),O.length>q)O.splice(q);else for(;O.length<q;)O.push("");for(;B<O.length;B++)O[B]=O[B].trim().replace(/\\\|/g,"|");return O}function V(ie,q,Z){var O=ie.length;if(O===0)return"";for(var B=0;B<O;){var j=ie.charAt(O-B-1);if(j===q&&!Z)B++;else if(j!==q&&Z)B++;else break}return ie.slice(0,O-B)}function A(ie,q){if(ie.indexOf(q[1])===-1)return-1;for(var Z=ie.length,O=0,B=0;B<Z;B++)if(ie[B]==="\\")B++;else if(ie[B]===q[0])O++;else if(ie[B]===q[1]&&(O--,O<0))return B;return-1}function P(ie){ie&&ie.sanitize&&!ie.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")}function k(ie,q){if(q<1)return"";for(var Z="";q>1;)q&1&&(Z+=ie),q>>=1,ie+=ie;return Z+ie}function T(ie,q,Z,O){var B=q.href,j=q.title?m(q.title):null,H=ie[1].replace(/\\([\[\]])/g,"$1");if(ie[0].charAt(0)!=="!"){O.state.inLink=!0;var ne={type:"link",raw:Z,href:B,title:j,text:H,tokens:O.inlineTokens(H)};return O.state.inLink=!1,ne}return{type:"image",raw:Z,href:B,title:j,text:m(H)}}function U(ie,q){var Z=ie.match(/^(\s+)(?:```)/);if(Z===null)return q;var O=Z[1];return q.split(`
- `).map(function(B){var j=B.match(/^\s+/);if(j===null)return B;var H=j[0];return H.length>=O.length?B.slice(O.length):B}).join(`
- `)}var z=function(){function ie(Z){this.options=Z||e.defaults}var q=ie.prototype;return q.space=function(O){var B=this.rules.block.newline.exec(O);if(B&&B[0].length>0)return{type:"space",raw:B[0]}},q.code=function(O){var B=this.rules.block.code.exec(O);if(B){var j=B[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:B[0],codeBlockStyle:"indented",text:this.options.pedantic?j:V(j,`
- `)}}},q.fences=function(O){var B=this.rules.block.fences.exec(O);if(B){var j=B[0],H=U(j,B[3]||"");return{type:"code",raw:j,lang:B[2]?B[2].trim():B[2],text:H}}},q.heading=function(O){var B=this.rules.block.heading.exec(O);if(B){var j=B[2].trim();if(/#$/.test(j)){var H=V(j,"#");(this.options.pedantic||!H||/ $/.test(H))&&(j=H.trim())}return{type:"heading",raw:B[0],depth:B[1].length,text:j,tokens:this.lexer.inline(j)}}},q.hr=function(O){var B=this.rules.block.hr.exec(O);if(B)return{type:"hr",raw:B[0]}},q.blockquote=function(O){var B=this.rules.block.blockquote.exec(O);if(B){var j=B[0].replace(/^ *>[ \t]?/gm,"");return{type:"blockquote",raw:B[0],tokens:this.lexer.blockTokens(j,[]),text:j}}},q.list=function(O){var B=this.rules.block.list.exec(O);if(B){var j,H,ne,re,K,G,Q,oe,le,pe,se,ye,Le=B[1].trim(),Se=Le.length>1,ee={type:"list",raw:"",ordered:Se,start:Se?+Le.slice(0,-1):"",loose:!1,items:[]};Le=Se?"\\d{1,9}\\"+Le.slice(-1):"\\"+Le,this.options.pedantic&&(Le=Se?Le:"[*+-]");for(var Y=new RegExp("^( {0,3}"+Le+")((?:[ ][^\\n]*)?(?:\\n|$))");O&&(ye=!1,!(!(B=Y.exec(O))||this.rules.block.hr.test(O)));){if(j=B[0],O=O.substring(j.length),oe=B[2].split(`
- `,1)[0],le=O.split(`
- `,1)[0],this.options.pedantic?(re=2,se=oe.trimLeft()):(re=B[2].search(/[^ ]/),re=re>4?1:re,se=oe.slice(re),re+=B[1].length),G=!1,!oe&&/^ *$/.test(le)&&(j+=le+`
- `,O=O.substring(le.length+1),ye=!0),!ye)for(var de=new RegExp("^ {0,"+Math.min(3,re-1)+"}(?:[*+-]|\\d{1,9}[.)])((?: [^\\n]*)?(?:\\n|$))"),ce=new RegExp("^ {0,"+Math.min(3,re-1)+"}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)"),be=new RegExp("^ {0,"+Math.min(3,re-1)+"}(?:```|~~~)"),Ae=new RegExp("^ {0,"+Math.min(3,re-1)+"}#");O&&(pe=O.split(`
- `,1)[0],oe=pe,this.options.pedantic&&(oe=oe.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),!(be.test(oe)||Ae.test(oe)||de.test(oe)||ce.test(O)));){if(oe.search(/[^ ]/)>=re||!oe.trim())se+=`
- `+oe.slice(re);else if(!G)se+=`
- `+oe;else break;!G&&!oe.trim()&&(G=!0),j+=pe+`
- `,O=O.substring(pe.length+1)}ee.loose||(Q?ee.loose=!0:/\n *\n *$/.test(j)&&(Q=!0)),this.options.gfm&&(H=/^\[[ xX]\] /.exec(se),H&&(ne=H[0]!=="[ ] ",se=se.replace(/^\[[ xX]\] +/,""))),ee.items.push({type:"list_item",raw:j,task:!!H,checked:ne,loose:!1,text:se}),ee.raw+=j}ee.items[ee.items.length-1].raw=j.trimRight(),ee.items[ee.items.length-1].text=se.trimRight(),ee.raw=ee.raw.trimRight();var Ne=ee.items.length;for(K=0;K<Ne;K++){this.lexer.state.top=!1,ee.items[K].tokens=this.lexer.blockTokens(ee.items[K].text,[]);var Be=ee.items[K].tokens.filter(function(Ge){return Ge.type==="space"}),Ue=Be.every(function(Ge){for(var nt=Ge.raw.split(""),je=0,Qe=s(nt),Te;!(Te=Qe()).done;){var ze=Te.value;if(ze===`
- `&&(je+=1),je>1)return!0}return!1});!ee.loose&&Be.length&&Ue&&(ee.loose=!0,ee.items[K].loose=!0)}return ee}},q.html=function(O){var B=this.rules.block.html.exec(O);if(B){var j={type:"html",raw:B[0],pre:!this.options.sanitizer&&(B[1]==="pre"||B[1]==="script"||B[1]==="style"),text:B[0]};if(this.options.sanitize){var H=this.options.sanitizer?this.options.sanitizer(B[0]):m(B[0]);j.type="paragraph",j.text=H,j.tokens=this.lexer.inline(H)}return j}},q.def=function(O){var B=this.rules.block.def.exec(O);if(B){B[3]&&(B[3]=B[3].substring(1,B[3].length-1));var j=B[1].toLowerCase().replace(/\s+/g," ");return{type:"def",tag:j,raw:B[0],href:B[2],title:B[3]}}},q.table=function(O){var B=this.rules.block.table.exec(O);if(B){var j={type:"table",header:W(B[1]).map(function(Q){return{text:Q}}),align:B[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:B[3]&&B[3].trim()?B[3].replace(/\n[ \t]*$/,"").split(`
- `):[]};if(j.header.length===j.align.length){j.raw=B[0];var H=j.align.length,ne,re,K,G;for(ne=0;ne<H;ne++)/^ *-+: *$/.test(j.align[ne])?j.align[ne]="right":/^ *:-+: *$/.test(j.align[ne])?j.align[ne]="center":/^ *:-+ *$/.test(j.align[ne])?j.align[ne]="left":j.align[ne]=null;for(H=j.rows.length,ne=0;ne<H;ne++)j.rows[ne]=W(j.rows[ne],j.header.length).map(function(Q){return{text:Q}});for(H=j.header.length,re=0;re<H;re++)j.header[re].tokens=this.lexer.inline(j.header[re].text);for(H=j.rows.length,re=0;re<H;re++)for(G=j.rows[re],K=0;K<G.length;K++)G[K].tokens=this.lexer.inline(G[K].text);return j}}},q.lheading=function(O){var B=this.rules.block.lheading.exec(O);if(B)return{type:"heading",raw:B[0],depth:B[2].charAt(0)==="="?1:2,text:B[1],tokens:this.lexer.inline(B[1])}},q.paragraph=function(O){var B=this.rules.block.paragraph.exec(O);if(B){var j=B[1].charAt(B[1].length-1)===`
- `?B[1].slice(0,-1):B[1];return{type:"paragraph",raw:B[0],text:j,tokens:this.lexer.inline(j)}}},q.text=function(O){var B=this.rules.block.text.exec(O);if(B)return{type:"text",raw:B[0],text:B[0],tokens:this.lexer.inline(B[0])}},q.escape=function(O){var B=this.rules.inline.escape.exec(O);if(B)return{type:"escape",raw:B[0],text:m(B[1])}},q.tag=function(O){var B=this.rules.inline.tag.exec(O);if(B)return!this.lexer.state.inLink&&/^<a /i.test(B[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&/^<\/a>/i.test(B[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(B[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(B[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:B[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(B[0]):m(B[0]):B[0]}},q.link=function(O){var B=this.rules.inline.link.exec(O);if(B){var j=B[2].trim();if(!this.options.pedantic&&/^</.test(j)){if(!/>$/.test(j))return;var H=V(j.slice(0,-1),"\\");if((j.length-H.length)%2===0)return}else{var ne=A(B[2],"()");if(ne>-1){var re=B[0].indexOf("!")===0?5:4,K=re+B[1].length+ne;B[2]=B[2].substring(0,ne),B[0]=B[0].substring(0,K).trim(),B[3]=""}}var G=B[2],Q="";if(this.options.pedantic){var oe=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(G);oe&&(G=oe[1],Q=oe[3])}else Q=B[3]?B[3].slice(1,-1):"";return G=G.trim(),/^</.test(G)&&(this.options.pedantic&&!/>$/.test(j)?G=G.slice(1):G=G.slice(1,-1)),T(B,{href:G&&G.replace(this.rules.inline._escapes,"$1"),title:Q&&Q.replace(this.rules.inline._escapes,"$1")},B[0],this.lexer)}},q.reflink=function(O,B){var j;if((j=this.rules.inline.reflink.exec(O))||(j=this.rules.inline.nolink.exec(O))){var H=(j[2]||j[1]).replace(/\s+/g," ");if(H=B[H.toLowerCase()],!H||!H.href){var ne=j[0].charAt(0);return{type:"text",raw:ne,text:ne}}return T(j,H,j[0],this.lexer)}},q.emStrong=function(O,B,j){j===void 0&&(j="");var H=this.rules.inline.emStrong.lDelim.exec(O);if(H&&!(H[3]&&j.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\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\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\u0C5D\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\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-\u1711\u171F-\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-\u1B4C\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-\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-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\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\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\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\uDF70-\uDF81\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC71\uDC72\uDC75\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\uDF40-\uDF46]|\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\uDEB0-\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]|\uD80B[\uDF90-\uDFF0]|[\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\uDE70-\uDEBE\uDEC0-\uDEC9\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]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\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]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\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-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])/))){var ne=H[1]||H[2]||"";if(!ne||ne&&(j===""||this.rules.inline.punctuation.exec(j))){var re=H[0].length-1,K,G,Q=re,oe=0,le=H[0][0]==="*"?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(le.lastIndex=0,B=B.slice(-1*O.length+re);(H=le.exec(B))!=null;)if(K=H[1]||H[2]||H[3]||H[4]||H[5]||H[6],!!K){if(G=K.length,H[3]||H[4]){Q+=G;continue}else if((H[5]||H[6])&&re%3&&!((re+G)%3)){oe+=G;continue}if(Q-=G,!(Q>0)){if(G=Math.min(G,G+Q+oe),Math.min(re,G)%2){var pe=O.slice(1,re+H.index+G);return{type:"em",raw:O.slice(0,re+H.index+G+1),text:pe,tokens:this.lexer.inlineTokens(pe)}}var se=O.slice(2,re+H.index+G-1);return{type:"strong",raw:O.slice(0,re+H.index+G+1),text:se,tokens:this.lexer.inlineTokens(se)}}}}}},q.codespan=function(O){var B=this.rules.inline.code.exec(O);if(B){var j=B[2].replace(/\n/g," "),H=/[^ ]/.test(j),ne=/^ /.test(j)&&/ $/.test(j);return H&&ne&&(j=j.substring(1,j.length-1)),j=m(j,!0),{type:"codespan",raw:B[0],text:j}}},q.br=function(O){var B=this.rules.inline.br.exec(O);if(B)return{type:"br",raw:B[0]}},q.del=function(O){var B=this.rules.inline.del.exec(O);if(B)return{type:"del",raw:B[0],text:B[2],tokens:this.lexer.inlineTokens(B[2])}},q.autolink=function(O,B){var j=this.rules.inline.autolink.exec(O);if(j){var H,ne;return j[2]==="@"?(H=m(this.options.mangle?B(j[1]):j[1]),ne="mailto:"+H):(H=m(j[1]),ne=H),{type:"link",raw:j[0],text:H,href:ne,tokens:[{type:"text",raw:H,text:H}]}}},q.url=function(O,B){var j;if(j=this.rules.inline.url.exec(O)){var H,ne;if(j[2]==="@")H=m(this.options.mangle?B(j[0]):j[0]),ne="mailto:"+H;else{var re;do re=j[0],j[0]=this.rules.inline._backpedal.exec(j[0])[0];while(re!==j[0]);H=m(j[0]),j[1]==="www."?ne="http://"+H:ne=H}return{type:"link",raw:j[0],text:H,href:ne,tokens:[{type:"text",raw:H,text:H}]}}},q.inlineText=function(O,B){var j=this.rules.inline.text.exec(O);if(j){var H;return this.lexer.state.inRawBlock?H=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(j[0]):m(j[0]):j[0]:H=m(this.options.smartypants?B(j[0]):j[0]),{type:"text",raw:j[0],text:H}}},ie}(),J={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}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?<?([^\s>]+)>?(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:R,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/};J._label=/(?!\s*\])(?:\\.|[^\[\]\\])+/,J._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/,J.def=S(J.def).replace("label",J._label).replace("title",J._title).getRegex(),J.bullet=/(?:[*+-]|\d{1,9}[.)])/,J.listItemStart=S(/^( *)(bull) */).replace("bull",J.bullet).getRegex(),J.list=S(J.list).replace(/bull/g,J.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+J.def.source+")").getRegex(),J._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",J._comment=/<!--(?!-?>)[\s\S]*?(?:-->|$)/,J.html=S(J.html,"i").replace("comment",J._comment).replace("tag",J._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),J.paragraph=S(J._paragraph).replace("hr",J.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",J._tag).getRegex(),J.blockquote=S(J.blockquote).replace("paragraph",J.paragraph).getRegex(),J.normal=M({},J),J.gfm=M({},J.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),J.gfm.table=S(J.gfm.table).replace("hr",J.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","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",J._tag).getRegex(),J.gfm.paragraph=S(J._paragraph).replace("hr",J.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",J.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",J._tag).getRegex(),J.pedantic=M({},J.normal,{html:S(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",J._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:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:R,paragraph:S(J.normal._paragraph).replace("hr",J.hr).replace("heading",` *#{1,6} *[^
- ]`).replace("lheading",J.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var X={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:R,tag:"^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,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:R,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,punctuation:/^([\spunctuation])/};X._punctuation="!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~",X.punctuation=S(X.punctuation).replace(/punctuation/g,X._punctuation).getRegex(),X.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,X.escapedEmSt=/\\\*|\\_/g,X._comment=S(J._comment).replace("(?:-->|$)","-->").getRegex(),X.emStrong.lDelim=S(X.emStrong.lDelim).replace(/punct/g,X._punctuation).getRegex(),X.emStrong.rDelimAst=S(X.emStrong.rDelimAst,"g").replace(/punct/g,X._punctuation).getRegex(),X.emStrong.rDelimUnd=S(X.emStrong.rDelimUnd,"g").replace(/punct/g,X._punctuation).getRegex(),X._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,X._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,X._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])?)+(?![-_])/,X.autolink=S(X.autolink).replace("scheme",X._scheme).replace("email",X._email).getRegex(),X._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,X.tag=S(X.tag).replace("comment",X._comment).replace("attribute",X._attribute).getRegex(),X._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,X._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,X._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,X.link=S(X.link).replace("label",X._label).replace("href",X._href).replace("title",X._title).getRegex(),X.reflink=S(X.reflink).replace("label",X._label).replace("ref",J._label).getRegex(),X.nolink=S(X.nolink).replace("ref",J._label).getRegex(),X.reflinkSearch=S(X.reflinkSearch,"g").replace("reflink",X.reflink).replace("nolink",X.nolink).getRegex(),X.normal=M({},X),X.pedantic=M({},X.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:S(/^!?\[(label)\]\((.*?)\)/).replace("label",X._label).getRegex(),reflink:S(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",X._label).getRegex()}),X.gfm=M({},X.normal,{escape:S(X.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]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/}),X.gfm.url=S(X.gfm.url,"i").replace("email",X.gfm._extended_email).getRegex(),X.breaks=M({},X.gfm,{br:S(X.br).replace("{2,}","*").getRegex(),text:S(X.gfm.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()});function ae(ie){return ie.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…")}function ve(ie){var q="",Z,O,B=ie.length;for(Z=0;Z<B;Z++)O=ie.charCodeAt(Z),Math.random()>.5&&(O="x"+O.toString(16)),q+="&#"+O+";";return q}var me=function(){function ie(Z){this.tokens=[],this.tokens.links=Object.create(null),this.options=Z||e.defaults,this.options.tokenizer=this.options.tokenizer||new z,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 O={block:J.normal,inline:X.normal};this.options.pedantic?(O.block=J.pedantic,O.inline=X.pedantic):this.options.gfm&&(O.block=J.gfm,this.options.breaks?O.inline=X.breaks:O.inline=X.gfm),this.tokenizer.rules=O}ie.lex=function(O,B){var j=new ie(B);return j.lex(O)},ie.lexInline=function(O,B){var j=new ie(B);return j.inlineTokens(O)};var q=ie.prototype;return q.lex=function(O){O=O.replace(/\r\n|\r/g,`
- `),this.blockTokens(O,this.tokens);for(var B;B=this.inlineQueue.shift();)this.inlineTokens(B.src,B.tokens);return this.tokens},q.blockTokens=function(O,B){var j=this;B===void 0&&(B=[]),this.options.pedantic?O=O.replace(/\t/g," ").replace(/^ +$/gm,""):O=O.replace(/^( *)(\t+)/gm,function(Q,oe,le){return oe+" ".repeat(le.length)});for(var H,ne,re,K;O;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(function(Q){return(H=Q.call({lexer:j},O,B))?(O=O.substring(H.raw.length),B.push(H),!0):!1}))){if(H=this.tokenizer.space(O)){O=O.substring(H.raw.length),H.raw.length===1&&B.length>0?B[B.length-1].raw+=`
- `:B.push(H);continue}if(H=this.tokenizer.code(O)){O=O.substring(H.raw.length),ne=B[B.length-1],ne&&(ne.type==="paragraph"||ne.type==="text")?(ne.raw+=`
- `+H.raw,ne.text+=`
- `+H.text,this.inlineQueue[this.inlineQueue.length-1].src=ne.text):B.push(H);continue}if(H=this.tokenizer.fences(O)){O=O.substring(H.raw.length),B.push(H);continue}if(H=this.tokenizer.heading(O)){O=O.substring(H.raw.length),B.push(H);continue}if(H=this.tokenizer.hr(O)){O=O.substring(H.raw.length),B.push(H);continue}if(H=this.tokenizer.blockquote(O)){O=O.substring(H.raw.length),B.push(H);continue}if(H=this.tokenizer.list(O)){O=O.substring(H.raw.length),B.push(H);continue}if(H=this.tokenizer.html(O)){O=O.substring(H.raw.length),B.push(H);continue}if(H=this.tokenizer.def(O)){O=O.substring(H.raw.length),ne=B[B.length-1],ne&&(ne.type==="paragraph"||ne.type==="text")?(ne.raw+=`
- `+H.raw,ne.text+=`
- `+H.raw,this.inlineQueue[this.inlineQueue.length-1].src=ne.text):this.tokens.links[H.tag]||(this.tokens.links[H.tag]={href:H.href,title:H.title});continue}if(H=this.tokenizer.table(O)){O=O.substring(H.raw.length),B.push(H);continue}if(H=this.tokenizer.lheading(O)){O=O.substring(H.raw.length),B.push(H);continue}if(re=O,this.options.extensions&&this.options.extensions.startBlock&&function(){var Q=1/0,oe=O.slice(1),le=void 0;j.options.extensions.startBlock.forEach(function(pe){le=pe.call({lexer:this},oe),typeof le=="number"&&le>=0&&(Q=Math.min(Q,le))}),Q<1/0&&Q>=0&&(re=O.substring(0,Q+1))}(),this.state.top&&(H=this.tokenizer.paragraph(re))){ne=B[B.length-1],K&&ne.type==="paragraph"?(ne.raw+=`
- `+H.raw,ne.text+=`
- `+H.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=ne.text):B.push(H),K=re.length!==O.length,O=O.substring(H.raw.length);continue}if(H=this.tokenizer.text(O)){O=O.substring(H.raw.length),ne=B[B.length-1],ne&&ne.type==="text"?(ne.raw+=`
- `+H.raw,ne.text+=`
- `+H.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=ne.text):B.push(H);continue}if(O){var G="Infinite loop on byte: "+O.charCodeAt(0);if(this.options.silent){console.error(G);break}else throw new Error(G)}}return this.state.top=!0,B},q.inline=function(O,B){return B===void 0&&(B=[]),this.inlineQueue.push({src:O,tokens:B}),B},q.inlineTokens=function(O,B){var j=this;B===void 0&&(B=[]);var H,ne,re,K=O,G,Q,oe;if(this.tokens.links){var le=Object.keys(this.tokens.links);if(le.length>0)for(;(G=this.tokenizer.rules.inline.reflinkSearch.exec(K))!=null;)le.includes(G[0].slice(G[0].lastIndexOf("[")+1,-1))&&(K=K.slice(0,G.index)+"["+k("a",G[0].length-2)+"]"+K.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(G=this.tokenizer.rules.inline.blockSkip.exec(K))!=null;)K=K.slice(0,G.index)+"["+k("a",G[0].length-2)+"]"+K.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(G=this.tokenizer.rules.inline.escapedEmSt.exec(K))!=null;)K=K.slice(0,G.index)+"++"+K.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);for(;O;)if(Q||(oe=""),Q=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(function(se){return(H=se.call({lexer:j},O,B))?(O=O.substring(H.raw.length),B.push(H),!0):!1}))){if(H=this.tokenizer.escape(O)){O=O.substring(H.raw.length),B.push(H);continue}if(H=this.tokenizer.tag(O)){O=O.substring(H.raw.length),ne=B[B.length-1],ne&&H.type==="text"&&ne.type==="text"?(ne.raw+=H.raw,ne.text+=H.text):B.push(H);continue}if(H=this.tokenizer.link(O)){O=O.substring(H.raw.length),B.push(H);continue}if(H=this.tokenizer.reflink(O,this.tokens.links)){O=O.substring(H.raw.length),ne=B[B.length-1],ne&&H.type==="text"&&ne.type==="text"?(ne.raw+=H.raw,ne.text+=H.text):B.push(H);continue}if(H=this.tokenizer.emStrong(O,K,oe)){O=O.substring(H.raw.length),B.push(H);continue}if(H=this.tokenizer.codespan(O)){O=O.substring(H.raw.length),B.push(H);continue}if(H=this.tokenizer.br(O)){O=O.substring(H.raw.length),B.push(H);continue}if(H=this.tokenizer.del(O)){O=O.substring(H.raw.length),B.push(H);continue}if(H=this.tokenizer.autolink(O,ve)){O=O.substring(H.raw.length),B.push(H);continue}if(!this.state.inLink&&(H=this.tokenizer.url(O,ve))){O=O.substring(H.raw.length),B.push(H);continue}if(re=O,this.options.extensions&&this.options.extensions.startInline&&function(){var se=1/0,ye=O.slice(1),Le=void 0;j.options.extensions.startInline.forEach(function(Se){Le=Se.call({lexer:this},ye),typeof Le=="number"&&Le>=0&&(se=Math.min(se,Le))}),se<1/0&&se>=0&&(re=O.substring(0,se+1))}(),H=this.tokenizer.inlineText(re,ae)){O=O.substring(H.raw.length),H.raw.slice(-1)!=="_"&&(oe=H.raw.slice(-1)),Q=!0,ne=B[B.length-1],ne&&ne.type==="text"?(ne.raw+=H.raw,ne.text+=H.text):B.push(H);continue}if(O){var pe="Infinite loop on byte: "+O.charCodeAt(0);if(this.options.silent){console.error(pe);break}else throw new Error(pe)}}return B},i(ie,null,[{key:"rules",get:function(){return{block:J,inline:X}}}]),ie}(),fe=function(){function ie(Z){this.options=Z||e.defaults}var q=ie.prototype;return q.code=function(O,B,j){var H=(B||"").match(/\S*/)[0];if(this.options.highlight){var ne=this.options.highlight(O,H);ne!=null&&ne!==O&&(j=!0,O=ne)}return O=O.replace(/\n$/,"")+`
- `,H?'<pre><code class="'+this.options.langPrefix+m(H,!0)+'">'+(j?O:m(O,!0))+`</code></pre>
- `:"<pre><code>"+(j?O:m(O,!0))+`</code></pre>
- `},q.blockquote=function(O){return`<blockquote>
- `+O+`</blockquote>
- `},q.html=function(O){return O},q.heading=function(O,B,j,H){if(this.options.headerIds){var ne=this.options.headerPrefix+H.slug(j);return"<h"+B+' id="'+ne+'">'+O+"</h"+B+`>
- `}return"<h"+B+">"+O+"</h"+B+`>
- `},q.hr=function(){return this.options.xhtml?`<hr/>
- `:`<hr>
- `},q.list=function(O,B,j){var H=B?"ol":"ul",ne=B&&j!==1?' start="'+j+'"':"";return"<"+H+ne+`>
- `+O+"</"+H+`>
- `},q.listitem=function(O){return"<li>"+O+`</li>
- `},q.checkbox=function(O){return"<input "+(O?'checked="" ':"")+'disabled="" type="checkbox"'+(this.options.xhtml?" /":"")+"> "},q.paragraph=function(O){return"<p>"+O+`</p>
- `},q.table=function(O,B){return B&&(B="<tbody>"+B+"</tbody>"),`<table>
- <thead>
- `+O+`</thead>
- `+B+`</table>
- `},q.tablerow=function(O){return`<tr>
- `+O+`</tr>
- `},q.tablecell=function(O,B){var j=B.header?"th":"td",H=B.align?"<"+j+' align="'+B.align+'">':"<"+j+">";return H+O+("</"+j+`>
- `)},q.strong=function(O){return"<strong>"+O+"</strong>"},q.em=function(O){return"<em>"+O+"</em>"},q.codespan=function(O){return"<code>"+O+"</code>"},q.br=function(){return this.options.xhtml?"<br/>":"<br>"},q.del=function(O){return"<del>"+O+"</del>"},q.link=function(O,B,j){if(O=x(this.options.sanitize,this.options.baseUrl,O),O===null)return j;var H='<a href="'+m(O)+'"';return B&&(H+=' title="'+B+'"'),H+=">"+j+"</a>",H},q.image=function(O,B,j){if(O=x(this.options.sanitize,this.options.baseUrl,O),O===null)return j;var H='<img src="'+O+'" alt="'+j+'"';return B&&(H+=' title="'+B+'"'),H+=this.options.xhtml?"/>":">",H},q.text=function(O){return O},ie}(),xe=function(){function ie(){}var q=ie.prototype;return q.strong=function(O){return O},q.em=function(O){return O},q.codespan=function(O){return O},q.del=function(O){return O},q.html=function(O){return O},q.text=function(O){return O},q.link=function(O,B,j){return""+j},q.image=function(O,B,j){return""+j},q.br=function(){return""},ie}(),Ie=function(){function ie(){this.seen={}}var q=ie.prototype;return q.serialize=function(O){return O.toLowerCase().trim().replace(/<[!\/a-z].*?>/ig,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")},q.getNextSafeSlug=function(O,B){var j=O,H=0;if(this.seen.hasOwnProperty(j)){H=this.seen[O];do H++,j=O+"-"+H;while(this.seen.hasOwnProperty(j))}return B||(this.seen[O]=H,this.seen[j]=0),j},q.slug=function(O,B){B===void 0&&(B={});var j=this.serialize(O);return this.getNextSafeSlug(j,B.dryrun)},ie}(),De=function(){function ie(Z){this.options=Z||e.defaults,this.options.renderer=this.options.renderer||new fe,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new xe,this.slugger=new Ie}ie.parse=function(O,B){var j=new ie(B);return j.parse(O)},ie.parseInline=function(O,B){var j=new ie(B);return j.parseInline(O)};var q=ie.prototype;return q.parse=function(O,B){B===void 0&&(B=!0);var j="",H,ne,re,K,G,Q,oe,le,pe,se,ye,Le,Se,ee,Y,de,ce,be,Ae,Ne=O.length;for(H=0;H<Ne;H++){if(se=O[H],this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[se.type]&&(Ae=this.options.extensions.renderers[se.type].call({parser:this},se),Ae!==!1||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(se.type))){j+=Ae||"";continue}switch(se.type){case"space":continue;case"hr":{j+=this.renderer.hr();continue}case"heading":{j+=this.renderer.heading(this.parseInline(se.tokens),se.depth,_(this.parseInline(se.tokens,this.textRenderer)),this.slugger);continue}case"code":{j+=this.renderer.code(se.text,se.lang,se.escaped);continue}case"table":{for(le="",oe="",K=se.header.length,ne=0;ne<K;ne++)oe+=this.renderer.tablecell(this.parseInline(se.header[ne].tokens),{header:!0,align:se.align[ne]});for(le+=this.renderer.tablerow(oe),pe="",K=se.rows.length,ne=0;ne<K;ne++){for(Q=se.rows[ne],oe="",G=Q.length,re=0;re<G;re++)oe+=this.renderer.tablecell(this.parseInline(Q[re].tokens),{header:!1,align:se.align[re]});pe+=this.renderer.tablerow(oe)}j+=this.renderer.table(le,pe);continue}case"blockquote":{pe=this.parse(se.tokens),j+=this.renderer.blockquote(pe);continue}case"list":{for(ye=se.ordered,Le=se.start,Se=se.loose,K=se.items.length,pe="",ne=0;ne<K;ne++)Y=se.items[ne],de=Y.checked,ce=Y.task,ee="",Y.task&&(be=this.renderer.checkbox(de),Se?Y.tokens.length>0&&Y.tokens[0].type==="paragraph"?(Y.tokens[0].text=be+" "+Y.tokens[0].text,Y.tokens[0].tokens&&Y.tokens[0].tokens.length>0&&Y.tokens[0].tokens[0].type==="text"&&(Y.tokens[0].tokens[0].text=be+" "+Y.tokens[0].tokens[0].text)):Y.tokens.unshift({type:"text",text:be}):ee+=be),ee+=this.parse(Y.tokens,Se),pe+=this.renderer.listitem(ee,ce,de);j+=this.renderer.list(pe,ye,Le);continue}case"html":{j+=this.renderer.html(se.text);continue}case"paragraph":{j+=this.renderer.paragraph(this.parseInline(se.tokens));continue}case"text":{for(pe=se.tokens?this.parseInline(se.tokens):se.text;H+1<Ne&&O[H+1].type==="text";)se=O[++H],pe+=`
- `+(se.tokens?this.parseInline(se.tokens):se.text);j+=B?this.renderer.paragraph(pe):pe;continue}default:{var Be='Token with "'+se.type+'" type was not found.';if(this.options.silent){console.error(Be);return}else throw new Error(Be)}}}return j},q.parseInline=function(O,B){B=B||this.renderer;var j="",H,ne,re,K=O.length;for(H=0;H<K;H++){if(ne=O[H],this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[ne.type]&&(re=this.options.extensions.renderers[ne.type].call({parser:this},ne),re!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(ne.type))){j+=re||"";continue}switch(ne.type){case"escape":{j+=B.text(ne.text);break}case"html":{j+=B.html(ne.text);break}case"link":{j+=B.link(ne.href,ne.title,this.parseInline(ne.tokens,B));break}case"image":{j+=B.image(ne.href,ne.title,ne.text);break}case"strong":{j+=B.strong(this.parseInline(ne.tokens,B));break}case"em":{j+=B.em(this.parseInline(ne.tokens,B));break}case"codespan":{j+=B.codespan(ne.text);break}case"br":{j+=B.br();break}case"del":{j+=B.del(this.parseInline(ne.tokens,B));break}case"text":{j+=B.text(ne.text);break}default:{var G='Token with "'+ne.type+'" type was not found.';if(this.options.silent){console.error(G);return}else throw new Error(G)}}}return j},ie}();function he(ie,q,Z){if(typeof ie>"u"||ie===null)throw new Error("marked(): input parameter is undefined or null");if(typeof ie!="string")throw new Error("marked(): input parameter is of type "+Object.prototype.toString.call(ie)+", string expected");if(typeof q=="function"&&(Z=q,q=null),q=M({},he.defaults,q||{}),P(q),Z){var O=q.highlight,B;try{B=me.lex(ie,q)}catch(K){return Z(K)}var j=function(G){var Q;if(!G)try{q.walkTokens&&he.walkTokens(B,q.walkTokens),Q=De.parse(B,q)}catch(oe){G=oe}return q.highlight=O,G?Z(G):Z(null,Q)};if(!O||O.length<3||(delete q.highlight,!B.length))return j();var H=0;he.walkTokens(B,function(K){K.type==="code"&&(H++,setTimeout(function(){O(K.text,K.lang,function(G,Q){if(G)return j(G);Q!=null&&Q!==K.text&&(K.text=Q,K.escaped=!0),H--,H===0&&j()})},0))}),H===0&&j();return}function ne(K){if(K.message+=`
- Please report this to https://github.com/markedjs/marked.`,q.silent)return"<p>An error occurred:</p><pre>"+m(K.message+"",!0)+"</pre>";throw K}try{var re=me.lex(ie,q);if(q.walkTokens){if(q.async)return Promise.all(he.walkTokens(re,q.walkTokens)).then(function(){return De.parse(re,q)}).catch(ne);he.walkTokens(re,q.walkTokens)}return De.parse(re,q)}catch(K){ne(K)}}he.options=he.setOptions=function(ie){return M(he.defaults,ie),l(he.defaults),he},he.getDefaults=a,he.defaults=e.defaults,he.use=function(){for(var ie=arguments.length,q=new Array(ie),Z=0;Z<ie;Z++)q[Z]=arguments[Z];var O=M.apply(void 0,[{}].concat(q)),B=he.defaults.extensions||{renderers:{},childTokens:{}},j;q.forEach(function(H){if(H.extensions&&(j=!0,H.extensions.forEach(function(re){if(!re.name)throw new Error("extension name required");if(re.renderer){var K=B.renderers?B.renderers[re.name]:null;K?B.renderers[re.name]=function(){for(var G=arguments.length,Q=new Array(G),oe=0;oe<G;oe++)Q[oe]=arguments[oe];var le=re.renderer.apply(this,Q);return le===!1&&(le=K.apply(this,Q)),le}:B.renderers[re.name]=re.renderer}if(re.tokenizer){if(!re.level||re.level!=="block"&&re.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");B[re.level]?B[re.level].unshift(re.tokenizer):B[re.level]=[re.tokenizer],re.start&&(re.level==="block"?B.startBlock?B.startBlock.push(re.start):B.startBlock=[re.start]:re.level==="inline"&&(B.startInline?B.startInline.push(re.start):B.startInline=[re.start]))}re.childTokens&&(B.childTokens[re.name]=re.childTokens)})),H.renderer&&function(){var re=he.defaults.renderer||new fe,K=function(oe){var le=re[oe];re[oe]=function(){for(var pe=arguments.length,se=new Array(pe),ye=0;ye<pe;ye++)se[ye]=arguments[ye];var Le=H.renderer[oe].apply(re,se);return Le===!1&&(Le=le.apply(re,se)),Le}};for(var G in H.renderer)K(G);O.renderer=re}(),H.tokenizer&&function(){var re=he.defaults.tokenizer||new z,K=function(oe){var le=re[oe];re[oe]=function(){for(var pe=arguments.length,se=new Array(pe),ye=0;ye<pe;ye++)se[ye]=arguments[ye];var Le=H.tokenizer[oe].apply(re,se);return Le===!1&&(Le=le.apply(re,se)),Le}};for(var G in H.tokenizer)K(G);O.tokenizer=re}(),H.walkTokens){var ne=he.defaults.walkTokens;O.walkTokens=function(re){var K=[];return K.push(H.walkTokens.call(this,re)),ne&&(K=K.concat(ne.call(this,re))),K}}j&&(O.extensions=B),he.setOptions(O)})},he.walkTokens=function(ie,q){for(var Z=[],O=function(){var ne=j.value;switch(Z=Z.concat(q.call(he,ne)),ne.type){case"table":{for(var re=s(ne.header),K;!(K=re()).done;){var G=K.value;Z=Z.concat(he.walkTokens(G.tokens,q))}for(var Q=s(ne.rows),oe;!(oe=Q()).done;)for(var le=oe.value,pe=s(le),se;!(se=pe()).done;){var ye=se.value;Z=Z.concat(he.walkTokens(ye.tokens,q))}break}case"list":{Z=Z.concat(he.walkTokens(ne.items,q));break}default:he.defaults.extensions&&he.defaults.extensions.childTokens&&he.defaults.extensions.childTokens[ne.type]?he.defaults.extensions.childTokens[ne.type].forEach(function(Le){Z=Z.concat(he.walkTokens(ne[Le],q))}):ne.tokens&&(Z=Z.concat(he.walkTokens(ne.tokens,q)))}},B=s(ie),j;!(j=B()).done;)O();return Z},he.parseInline=function(ie,q){if(typeof ie>"u"||ie===null)throw new Error("marked.parseInline(): input parameter is undefined or null");if(typeof ie!="string")throw new Error("marked.parseInline(): input parameter is of type "+Object.prototype.toString.call(ie)+", string expected");q=M({},he.defaults,q||{}),P(q);try{var Z=me.lexInline(ie,q);return q.walkTokens&&he.walkTokens(Z,q.walkTokens),De.parseInline(Z,q)}catch(O){if(O.message+=`
- Please report this to https://github.com/markedjs/marked.`,q.silent)return"<p>An error occurred:</p><pre>"+m(O.message+"",!0)+"</pre>";throw O}},he.Parser=De,he.parser=De.parse,he.Renderer=fe,he.TextRenderer=xe,he.Lexer=me,he.lexer=me.lex,he.Tokenizer=z,he.Slugger=Ie,he.parse=he;var Me=he.options,we=he.setOptions,ue=he.use,ke=he.walkTokens,Re=he.parseInline,Pe=he,$e=De.parse,He=me.lex;e.Lexer=me,e.Parser=De,e.Renderer=fe,e.Slugger=Ie,e.TextRenderer=xe,e.Tokenizer=z,e.getDefaults=a,e.lexer=He,e.marked=he,e.options=Me,e.parse=Pe,e.parseInline=Re,e.parser=$e,e.setOptions=we,e.use=ue,e.walkTokens=ke,Object.defineProperty(e,"__esModule",{value:!0})})})();__marked_exports.Lexer||exports.Lexer;__marked_exports.Parser||exports.Parser;__marked_exports.Renderer||exports.Renderer;__marked_exports.Slugger||exports.Slugger;__marked_exports.TextRenderer||exports.TextRenderer;__marked_exports.Tokenizer||exports.Tokenizer;__marked_exports.getDefaults||exports.getDefaults;__marked_exports.lexer||exports.lexer;var marked=__marked_exports.marked||exports.marked;__marked_exports.options||exports.options;__marked_exports.parse||exports.parse;__marked_exports.parseInline||exports.parseInline;__marked_exports.parser||exports.parser;__marked_exports.setOptions||exports.setOptions;__marked_exports.use||exports.use;__marked_exports.walkTokens||exports.walkTokens;function stringify(o){return JSON.stringify(o,replacer)}function parse(o){let e=JSON.parse(o);return e=revive(e),e}function replacer(o,e){return e instanceof RegExp?{$mid:2,source:e.source,flags:e.flags}:e}function revive(o,e=0){if(!o||e>200)return o;if(typeof o=="object"){switch(o.$mid){case 1:return URI.revive(o);case 2:return new RegExp(o.source,o.flags);case 17:return new Date(o.source)}if(o instanceof VSBuffer||o instanceof Uint8Array)return o;if(Array.isArray(o))for(let t=0;t<o.length;++t)o[t]=revive(o[t],e+1);else for(const t in o)Object.hasOwnProperty.call(o,t)&&(o[t]=revive(o[t],e+1))}return o}const defaultMarkedRenderers=Object.freeze({image:(o,e,t)=>{let i=[],n=[];return o&&({href:o,dimensions:i}=parseHrefAndDimensions(o),n.push(`src="${escapeDoubleQuotes(o)}"`)),t&&n.push(`alt="${escapeDoubleQuotes(t)}"`),e&&n.push(`title="${escapeDoubleQuotes(e)}"`),i.length&&(n=n.concat(i)),"<img "+n.join(" ")+">"},paragraph:o=>`<p>${o}</p>`,link:(o,e,t)=>typeof o!="string"?"":(o===t&&(t=removeMarkdownEscapes(t)),e=typeof e=="string"?escapeDoubleQuotes(removeMarkdownEscapes(e)):"",o=removeMarkdownEscapes(o),o=o.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),`<a href="${o}" title="${e||o}">${t}</a>`)});function renderMarkdown(o,e={},t={}){var i,n;const r=new DisposableStore;let s=!1;const a=createElement(e),l=function(_){let C;try{C=parse(decodeURIComponent(_))}catch{}return C?(C=cloneAndChange(C,S=>{if(o.uris&&o.uris[S])return URI.revive(o.uris[S])}),encodeURIComponent(JSON.stringify(C))):_},d=function(_,C){const S=o.uris&&o.uris[_];let y=URI.revive(S);return C?_.startsWith(Schemas.data+":")?_:(y||(y=URI.parse(_)),FileAccess.uriToBrowserUri(y).toString(!0)):!y||URI.parse(_).toString()===y.toString()?_:(y.query&&(y=y.with({query:l(y.query)})),y.toString())},c=new marked.Renderer;c.image=defaultMarkedRenderers.image,c.link=defaultMarkedRenderers.link,c.paragraph=defaultMarkedRenderers.paragraph;const u=[],g=[];if(e.codeBlockRendererSync?c.code=(_,C)=>{const S=defaultGenerator.nextId(),y=e.codeBlockRendererSync(postProcessCodeBlockLanguageId(C),_);return g.push([S,y]),`<div class="code" data-code="${S}">${escape(_)}</div>`}:e.codeBlockRenderer&&(c.code=(_,C)=>{const S=defaultGenerator.nextId(),y=e.codeBlockRenderer(postProcessCodeBlockLanguageId(C),_);return u.push(y.then(E=>[S,E])),`<div class="code" data-code="${S}">${escape(_)}</div>`}),e.actionHandler){const _=function(y){let E=y.target;if(!(E.tagName!=="A"&&(E=E.parentElement,!E||E.tagName!=="A")))try{let x=E.dataset.href;x&&(o.baseUri&&(x=resolveWithBaseUri(URI.from(o.baseUri),x)),e.actionHandler.callback(x,y))}catch(x){onUnexpectedError(x)}finally{y.preventDefault()}},C=e.actionHandler.disposables.add(new DomEmitter(a,"click")),S=e.actionHandler.disposables.add(new DomEmitter(a,"auxclick"));e.actionHandler.disposables.add(Event.any(C.event,S.event)(y=>{const E=new StandardMouseEvent(y);!E.leftButton&&!E.middleButton||_(E)})),e.actionHandler.disposables.add(addDisposableListener(a,"keydown",y=>{const E=new StandardKeyboardEvent(y);!E.equals(10)&&!E.equals(3)||_(E)}))}o.supportHtml||(t.sanitizer=_=>(o.isTrusted?_.match(/^(<span[^>]+>)|(<\/\s*span>)$/):void 0)?_:"",t.sanitize=!0,t.silent=!0),t.renderer=c;let f=(i=o.value)!==null&&i!==void 0?i:"";f.length>1e5&&(f=`${f.substr(0,1e5)}…`),o.supportThemeIcons&&(f=markdownEscapeEscapedIcons(f));let p;if(e.fillInIncompleteTokens){const _=Object.assign(Object.assign({},marked.defaults),t),C=marked.lexer(f,_),S=fillInIncompleteTokens(C);p=marked.parser(S,_)}else p=marked.parse(f,t);o.supportThemeIcons&&(p=renderLabelWithIcons(p).map(C=>typeof C=="string"?C:C.outerHTML).join(""));const b=new DOMParser().parseFromString(sanitizeRenderedMarkdown(o,p),"text/html");if(b.body.querySelectorAll("img").forEach(_=>{const C=_.getAttribute("src");if(C){let S=C;try{o.baseUri&&(S=resolveWithBaseUri(URI.from(o.baseUri),S))}catch{}_.src=d(S,!0)}}),b.body.querySelectorAll("a").forEach(_=>{const C=_.getAttribute("href");if(_.setAttribute("href",""),!C||/^data:|javascript:/i.test(C)||/^command:/i.test(C)&&!o.isTrusted||/^command:(\/\/\/)?_workbench\.downloadResource/i.test(C))_.replaceWith(..._.childNodes);else{let S=d(C,!1);o.baseUri&&(S=resolveWithBaseUri(URI.from(o.baseUri),C)),_.dataset.href=S}}),a.innerHTML=sanitizeRenderedMarkdown(o,b.body.innerHTML),u.length>0)Promise.all(u).then(_=>{var C,S;if(s)return;const y=new Map(_),E=a.querySelectorAll("div[data-code]");for(const x of E){const L=y.get((C=x.dataset.code)!==null&&C!==void 0?C:"");L&&reset(x,L)}(S=e.asyncRenderCallback)===null||S===void 0||S.call(e)});else if(g.length>0){const _=new Map(g),C=a.querySelectorAll("div[data-code]");for(const S of C){const y=_.get((n=S.dataset.code)!==null&&n!==void 0?n:"");y&&reset(S,y)}}if(e.asyncRenderCallback)for(const _ of a.getElementsByTagName("img")){const C=r.add(addDisposableListener(_,"load",()=>{C.dispose(),e.asyncRenderCallback()}))}return{element:a,dispose:()=>{s=!0,r.dispose()}}}function postProcessCodeBlockLanguageId(o){if(!o)return"";const e=o.split(/[\s+|:|,|\{|\?]/,1);return e.length?e[0]:o}function resolveWithBaseUri(o,e){return/^\w[\w\d+.-]*:/.test(e)?e:o.path.endsWith("/")?resolvePath(o,e).toString():resolvePath(dirname(o),e).toString()}function sanitizeRenderedMarkdown(o,e){const{config:t,allowedSchemes:i}=getSanitizerOptions(o);addHook("uponSanitizeAttribute",(r,s)=>{if(s.attrName==="style"||s.attrName==="class"){if(r.tagName==="SPAN"){if(s.attrName==="style"){s.keepAttr=/^(color\:(#[0-9a-fA-F]+|var\(--vscode(-[a-zA-Z]+)+\));)?(background-color\:(#[0-9a-fA-F]+|var\(--vscode(-[a-zA-Z]+)+\));)?$/.test(s.attrValue);return}else if(s.attrName==="class"){s.keepAttr=/^codicon codicon-[a-z\-]+( codicon-modifier-[a-z\-]+)?$/.test(s.attrValue);return}}s.keepAttr=!1;return}});const n=hookDomPurifyHrefAndSrcSanitizer(i);try{return sanitize$1(e,Object.assign(Object.assign({},t),{RETURN_TRUSTED_TYPE:!0}))}finally{removeHook("uponSanitizeAttribute"),n.dispose()}}const allowedMarkdownAttr=["align","autoplay","alt","class","controls","data-code","data-href","height","href","loop","muted","playsinline","poster","src","style","target","title","width","start"];function getSanitizerOptions(o){const e=[Schemas.http,Schemas.https,Schemas.mailto,Schemas.data,Schemas.file,Schemas.vscodeFileResource,Schemas.vscodeRemote,Schemas.vscodeRemoteResource];return o.isTrusted&&e.push(Schemas.command),{config:{ALLOWED_TAGS:[...basicMarkupHtmlTags],ALLOWED_ATTR:allowedMarkdownAttr,ALLOW_UNKNOWN_PROTOCOLS:!0},allowedSchemes:e}}function renderStringAsPlaintext(o){return typeof o=="string"?o:renderMarkdownAsPlaintext(o)}function renderMarkdownAsPlaintext(o){var e;let t=(e=o.value)!==null&&e!==void 0?e:"";t.length>1e5&&(t=`${t.substr(0,1e5)}…`);const i=marked.parse(t,{renderer:plainTextRenderer.value}).replace(/&(#\d+|[a-zA-Z]+);/g,n=>{var r;return(r=unescapeInfo.get(n))!==null&&r!==void 0?r:n});return sanitizeRenderedMarkdown({isTrusted:!1},i).toString()}const unescapeInfo=new Map([[""",'"'],[" "," "],["&","&"],["'","'"],["<","<"],[">",">"]]),plainTextRenderer=new Lazy(()=>{const o=new marked.Renderer;return o.code=e=>e,o.blockquote=e=>e,o.html=e=>"",o.heading=(e,t,i)=>e+`
- `,o.hr=()=>"",o.list=(e,t)=>e,o.listitem=e=>e+`
- `,o.paragraph=e=>e+`
- `,o.table=(e,t)=>e+t+`
- `,o.tablerow=e=>e,o.tablecell=(e,t)=>e+" ",o.strong=e=>e,o.em=e=>e,o.codespan=e=>e,o.br=()=>`
- `,o.del=e=>e,o.image=(e,t,i)=>"",o.text=e=>e,o.link=(e,t,i)=>i,o});function mergeRawTokenText(o){let e="";return o.forEach(t=>{e+=t.raw}),e}function completeSingleLinePattern(o){for(const e of o.tokens)if(e.type==="text"){const t=e.raw.split(`
- `),i=t[t.length-1];if(i.includes("`"))return completeCodespan(o);if(i.includes("**"))return completeDoublestar(o);if(i.match(/\*\w/))return completeStar(o);if(i.match(/(^|\s)__\w/))return completeDoubleUnderscore(o);if(i.match(/(^|\s)_\w/))return completeUnderscore(o);if(i.match(/(^|\s)\[.*\]\(\w*/))return completeLinkTarget(o);if(i.match(/(^|\s)\[\w/))return completeLinkText(o)}}function fillInIncompleteTokens(o){let e,t;for(e=0;e<o.length;e++){const i=o[e];if(i.type==="paragraph"&&i.raw.match(/(\n|^)```/)){t=completeCodeBlock(o.slice(e));break}if(i.type==="paragraph"&&i.raw.match(/(\n|^)\|/)){t=completeTable(o.slice(e));break}if(e===o.length-1&&i.type==="paragraph"){const n=completeSingleLinePattern(i);if(n){t=[n];break}}}if(t){const i=[...o.slice(0,e),...t];return i.links=o.links,i}return o}function completeCodeBlock(o){const e=mergeRawTokenText(o);return marked.lexer(e+"\n```")}function completeCodespan(o){return completeWithString(o,"`")}function completeStar(o){return completeWithString(o,"*")}function completeUnderscore(o){return completeWithString(o,"_")}function completeLinkTarget(o){return completeWithString(o,")")}function completeLinkText(o){return completeWithString(o,"](about:blank)")}function completeDoublestar(o){return completeWithString(o,"**")}function completeDoubleUnderscore(o){return completeWithString(o,"__")}function completeWithString(o,e){const t=mergeRawTokenText(Array.isArray(o)?o:[o]);return marked.lexer(t+e)[0]}function completeTable(o){const e=mergeRawTokenText(o),t=e.split(`
- `);let i,n=!1;for(let r=0;r<t.length;r++){const s=t[r].trim();if(typeof i>"u"&&s.match(/^\s*\|/)){const a=s.match(/(\|[^\|]+)(?=\||$)/g);a&&(i=a.length)}else if(typeof i=="number")if(s.match(/^\s*\|/)){if(r!==t.length-1)return;n=!0}else return}if(typeof i=="number"&&i>0){const r=n?t.slice(0,-1).join(`
- `):e,s=!!r.match(/\|\s*$/),a=r+(s?"":"|")+`
- |${" --- |".repeat(i)}`;return marked.lexer(a)}}class CombinedSpliceable{constructor(e){this.spliceables=e}splice(e,t,i){this.spliceables.forEach(n=>n.splice(e,t,i))}}class ListError extends Error{constructor(e,t){super(`ListError [${e}] ${t}`)}}function groupIntersect(o,e){const t=[];for(const i of e){if(o.start>=i.range.end)continue;if(o.end<i.range.start)break;const n=Range$1.intersect(o,i.range);Range$1.isEmpty(n)||t.push({range:n,size:i.size})}return t}function shift({start:o,end:e},t){return{start:o+t,end:e+t}}function consolidate(o){const e=[];let t=null;for(const i of o){const n=i.range.start,r=i.range.end,s=i.size;if(t&&s===t.size){t.range.end=r;continue}t={range:{start:n,end:r},size:s},e.push(t)}return e}function concat(...o){return consolidate(o.reduce((e,t)=>e.concat(t),[]))}class RangeMap{get paddingTop(){return this._paddingTop}set paddingTop(e){this._size=this._size+e-this._paddingTop,this._paddingTop=e}constructor(e){this.groups=[],this._size=0,this._paddingTop=0,this._paddingTop=e??0,this._size=this._paddingTop}splice(e,t,i=[]){const n=i.length-t,r=groupIntersect({start:0,end:e},this.groups),s=groupIntersect({start:e+t,end:Number.POSITIVE_INFINITY},this.groups).map(l=>({range:shift(l.range,n),size:l.size})),a=i.map((l,d)=>({range:{start:e+d,end:e+d+1},size:l.size}));this.groups=concat(r,a,s),this._size=this._paddingTop+this.groups.reduce((l,d)=>l+d.size*(d.range.end-d.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;if(e<this._paddingTop)return 0;let t=0,i=this._paddingTop;for(const n of this.groups){const r=n.range.end-n.range.start,s=i+r*n.size;if(e<s)return t+Math.floor((e-i)/n.size);t+=r,i=s}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(const n of this.groups){const r=n.range.end-n.range.start,s=i+r;if(e<s)return this._paddingTop+t+(e-i)*n.size;t+=r*n.size,i=s}return-1}}function removeFromParent(o){var e;try{(e=o.parentElement)===null||e===void 0||e.removeChild(o)}catch{}}class RowCache{constructor(e){this.renderers=e,this.cache=new Map,this.transactionNodesPendingRemoval=new Set,this.inTransaction=!1}alloc(e){let t=this.getTemplateCache(e).pop(),i=!1;if(t)i=this.transactionNodesPendingRemoval.has(t.domNode),i&&this.transactionNodesPendingRemoval.delete(t.domNode);else{const n=$$d(".monaco-list-row"),s=this.getRenderer(e).renderTemplate(n);t={domNode:n,templateId:e,templateData:s}}return{row:t,isReusingConnectedDomNode:i}}release(e){e&&this.releaseRow(e)}transact(e){if(this.inTransaction)throw new Error("Already in transaction");this.inTransaction=!0;try{e()}finally{for(const t of this.transactionNodesPendingRemoval)this.doRemoveNode(t);this.transactionNodesPendingRemoval.clear(),this.inTransaction=!1}}releaseRow(e){const{domNode:t,templateId:i}=e;t&&(this.inTransaction?this.transactionNodesPendingRemoval.add(t):this.doRemoveNode(t)),this.getTemplateCache(i).push(e)}doRemoveNode(e){e.classList.remove("scrolling"),removeFromParent(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(),this.transactionNodesPendingRemoval.clear()}getRenderer(e){const t=this.renderers.get(e);if(!t)throw new Error(`No renderer found for ${e}`);return t}}var __decorate$1T=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r};const StaticDND={CurrentDragAndDropData:void 0},DefaultOptions$1={useShadows:!0,verticalScrollMode:1,setRowLineHeight:!0,setRowHeight:!0,supportDynamicHeights:!1,dnd:{getDragElements(o){return[o]},getDragURI(){return null},onDragStart(){},onDragOver(){return!1},drop(){},dispose(){}},horizontalScrolling:!1,transformOptimization:!0,alwaysConsumeMouseWheel:!0};class ElementsDragAndDropData{constructor(e){this.elements=e}update(){}getData(){return this.elements}}class ExternalElementsDragAndDropData{constructor(e){this.elements=e}update(){}getData(){return this.elements}}class NativeDragAndDropData{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}}}function equalsDragFeedback(o,e){return Array.isArray(o)&&Array.isArray(e)?equals$2(o,e):o===e}class ListViewAccessibilityProvider{constructor(e){e!=null&&e.getSetSize?this.getSetSize=e.getSetSize.bind(e):this.getSetSize=(t,i,n)=>n,e!=null&&e.getPosInSet?this.getPosInSet=e.getPosInSet.bind(e):this.getPosInSet=(t,i)=>i+1,e!=null&&e.getRole?this.getRole=e.getRole.bind(e):this.getRole=t=>"listitem",e!=null&&e.isChecked?this.isChecked=e.isChecked.bind(e):this.isChecked=t=>{}}}class ListView{get contentHeight(){return this.rangeMap.size}get onDidScroll(){return this.scrollableElement.onScroll}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 t of this.items)this.measureItemWidth(t);this.updateScrollWidth(),this.scrollableElement.setScrollDimensions({width:getContentWidth(this.domNode)}),this.rowsContainer.style.width=`${Math.max(this.scrollWidth||0,this.renderWidth)}px`}else this.scrollableElementWidthDelayer.cancel(),this.scrollableElement.setScrollDimensions({width:this.renderWidth,scrollWidth:this.renderWidth}),this.rowsContainer.style.width=""}}constructor(e,t,i,n=DefaultOptions$1){var r,s,a,l,d,c,u,g,f,p,m,b,_;if(this.virtualDelegate=t,this.domId=`list_id_${++ListView.InstanceCount}`,this.renderers=new Map,this.renderWidth=0,this._scrollHeight=0,this.scrollableElementUpdateDisposable=null,this.scrollableElementWidthDelayer=new Delayer(50),this.splicing=!1,this.dragOverAnimationStopDisposable=Disposable.None,this.dragOverMouseY=0,this.canDrop=!1,this.currentDragFeedbackDisposable=Disposable.None,this.onDragLeaveTimeout=Disposable.None,this.disposables=new DisposableStore,this._onDidChangeContentHeight=new Emitter$1,this._onDidChangeContentWidth=new Emitter$1,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 RangeMap((r=n.paddingTop)!==null&&r!==void 0?r:0);for(const S of i)this.renderers.set(S.templateId,S);this.cache=this.disposables.add(new RowCache(this.renderers)),this.lastRenderTop=0,this.lastRenderHeight=0,this.domNode=document.createElement("div"),this.domNode.className="monaco-list",this.domNode.classList.add(this.domId),this.domNode.tabIndex=0,this.domNode.classList.toggle("mouse-support",typeof n.mouseSupport=="boolean"?n.mouseSupport:!0),this._horizontalScrolling=(s=n.horizontalScrolling)!==null&&s!==void 0?s:DefaultOptions$1.horizontalScrolling,this.domNode.classList.toggle("horizontal-scrolling",this._horizontalScrolling),this.paddingBottom=typeof n.paddingBottom>"u"?0:n.paddingBottom,this.accessibilityProvider=new ListViewAccessibilityProvider(n.accessibilityProvider),this.rowsContainer=document.createElement("div"),this.rowsContainer.className="monaco-list-rows",((a=n.transformOptimization)!==null&&a!==void 0?a:DefaultOptions$1.transformOptimization)&&(this.rowsContainer.style.transform="translate3d(0px, 0px, 0px)",this.rowsContainer.style.overflow="hidden",this.rowsContainer.style.contain="strict"),this.disposables.add(Gesture.addTarget(this.rowsContainer)),this.scrollable=this.disposables.add(new Scrollable({forceIntegerValues:!0,smoothScrollDuration:(l=n.smoothScrolling)!==null&&l!==void 0&&l?125:0,scheduleAtNextAnimationFrame:S=>scheduleAtNextAnimationFrame(S)})),this.scrollableElement=this.disposables.add(new SmoothScrollableElement(this.rowsContainer,{alwaysConsumeMouseWheel:(d=n.alwaysConsumeMouseWheel)!==null&&d!==void 0?d:DefaultOptions$1.alwaysConsumeMouseWheel,horizontal:1,vertical:(c=n.verticalScrollMode)!==null&&c!==void 0?c:DefaultOptions$1.verticalScrollMode,useShadows:(u=n.useShadows)!==null&&u!==void 0?u:DefaultOptions$1.useShadows,mouseWheelScrollSensitivity:n.mouseWheelScrollSensitivity,fastScrollSensitivity:n.fastScrollSensitivity,scrollByPage:n.scrollByPage},this.scrollable)),this.domNode.appendChild(this.scrollableElement.getDomNode()),e.appendChild(this.domNode),this.scrollableElement.onScroll(this.onScroll,this,this.disposables),this.disposables.add(addDisposableListener(this.rowsContainer,EventType.Change,S=>this.onTouchChange(S))),this.disposables.add(addDisposableListener(this.scrollableElement.getDomNode(),"scroll",S=>S.target.scrollTop=0)),this.disposables.add(addDisposableListener(this.domNode,"dragover",S=>this.onDragOver(this.toDragEvent(S)))),this.disposables.add(addDisposableListener(this.domNode,"drop",S=>this.onDrop(this.toDragEvent(S)))),this.disposables.add(addDisposableListener(this.domNode,"dragleave",S=>this.onDragLeave(this.toDragEvent(S)))),this.disposables.add(addDisposableListener(this.domNode,"dragend",S=>this.onDragEnd(S))),this.setRowLineHeight=(g=n.setRowLineHeight)!==null&&g!==void 0?g:DefaultOptions$1.setRowLineHeight,this.setRowHeight=(f=n.setRowHeight)!==null&&f!==void 0?f:DefaultOptions$1.setRowHeight,this.supportDynamicHeights=(p=n.supportDynamicHeights)!==null&&p!==void 0?p:DefaultOptions$1.supportDynamicHeights,this.dnd=(m=n.dnd)!==null&&m!==void 0?m:this.disposables.add(DefaultOptions$1.dnd),this.layout((b=n.initialSize)===null||b===void 0?void 0:b.height,(_=n.initialSize)===null||_===void 0?void 0:_.width)}updateOptions(e){e.paddingBottom!==void 0&&(this.paddingBottom=e.paddingBottom,this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight})),e.smoothScrolling!==void 0&&this.scrollable.setSmoothScrollDuration(e.smoothScrolling?125:0),e.horizontalScrolling!==void 0&&(this.horizontalScrolling=e.horizontalScrolling);let t;if(e.scrollByPage!==void 0&&(t=Object.assign(Object.assign({},t??{}),{scrollByPage:e.scrollByPage})),e.mouseWheelScrollSensitivity!==void 0&&(t=Object.assign(Object.assign({},t??{}),{mouseWheelScrollSensitivity:e.mouseWheelScrollSensitivity})),e.fastScrollSensitivity!==void 0&&(t=Object.assign(Object.assign({},t??{}),{fastScrollSensitivity:e.fastScrollSensitivity})),t&&this.scrollableElement.updateOptions(t),e.paddingTop!==void 0&&e.paddingTop!==this.rangeMap.paddingTop){const i=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),n=e.paddingTop-this.rangeMap.paddingTop;this.rangeMap.paddingTop=e.paddingTop,this.render(i,Math.max(0,this.lastRenderTop+n),this.lastRenderHeight,void 0,void 0,!0),this.setScrollTop(this.lastRenderTop),this.eventuallyUpdateScrollDimensions(),this.supportDynamicHeights&&this._rerender(this.lastRenderTop,this.lastRenderHeight)}}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),r={start:e,end:e+t},s=Range$1.intersect(n,r),a=new Map;for(let x=s.end-1;x>=s.start;x--){const L=this.items[x];if(L.dragStartDisposable.dispose(),L.checkedDisposable.dispose(),L.row){let I=a.get(L.templateId);I||(I=[],a.set(L.templateId,I));const D=this.renderers.get(L.templateId);D&&D.disposeElement&&D.disposeElement(L.element,x,L.row.templateData,L.size),I.push(L.row)}L.row=null}const l={start:e+t,end:this.items.length},d=Range$1.intersect(l,n),c=Range$1.relativeComplement(l,n),u=i.map(x=>({id:String(this.itemId++),element:x,templateId:this.virtualDelegate.getTemplateId(x),size:this.virtualDelegate.getHeight(x),width:void 0,hasDynamicHeight:!!this.virtualDelegate.hasDynamicHeight&&this.virtualDelegate.hasDynamicHeight(x),lastDynamicHeightWidth:void 0,row:null,uri:void 0,dropTarget:!1,dragStartDisposable:Disposable.None,checkedDisposable:Disposable.None}));let g;e===0&&t>=this.items.length?(this.rangeMap=new RangeMap(this.rangeMap.paddingTop),this.rangeMap.splice(0,0,u),g=this.items,this.items=u):(this.rangeMap.splice(e,t,u),g=this.items.splice(e,t,...u));const f=i.length-t,p=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),m=shift(d,f),b=Range$1.intersect(p,m);for(let x=b.start;x<b.end;x++)this.updateItemInDOM(this.items[x],x);const _=Range$1.relativeComplement(m,p);for(const x of _)for(let L=x.start;L<x.end;L++)this.removeItemFromDOM(L);const C=c.map(x=>shift(x,f)),y=[{start:e,end:e+i.length},...C].map(x=>Range$1.intersect(p,x)),E=this.getNextToLastElement(y);for(const x of y)for(let L=x.start;L<x.end;L++){const I=this.items[L],D=a.get(I.templateId),N=D==null?void 0:D.pop();this.insertItemInDOM(L,E,N)}for(const x of a.values())for(const L of x)this.cache.release(L);return this.eventuallyUpdateScrollDimensions(),this.supportDynamicHeights&&this._rerender(this.scrollTop,this.renderHeight),g.map(x=>x.element)}eventuallyUpdateScrollDimensions(){this._scrollHeight=this.contentHeight,this.rowsContainer.style.height=`${this._scrollHeight}px`,this.scrollableElementUpdateDisposable||(this.scrollableElementUpdateDisposable=scheduleAtNextAnimationFrame(()=>{this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight}),this.updateScrollWidth(),this.scrollableElementUpdateDisposable=null}))}eventuallyUpdateScrollWidth(){if(!this.horizontalScrolling){this.scrollableElementWidthDelayer.cancel();return}this.scrollableElementWidthDelayer.trigger(()=>this.updateScrollWidth())}updateScrollWidth(){if(!this.horizontalScrolling)return;let e=0;for(const t of this.items)typeof t.width<"u"&&(e=Math.max(e,t.width));this.scrollWidth=e,this.scrollableElement.setScrollDimensions({scrollWidth:e===0?0:e+10}),this._onDidChangeContentWidth.fire(this.scrollWidth)}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}get firstVisibleIndex(){const e=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),t=this.rangeMap.positionAt(e.start),i=this.rangeMap.positionAt(e.start+1);return i!==-1&&(i-t)/2+t<this.scrollTop?e.start+1:e.start}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){const i={height:typeof e=="number"?e:getContentHeight(this.domNode)};this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,i.scrollHeight=this.scrollHeight),this.scrollableElement.setScrollDimensions(i),typeof t<"u"&&(this.renderWidth=t,this.supportDynamicHeights&&this._rerender(this.scrollTop,this.renderHeight)),this.horizontalScrolling&&this.scrollableElement.setScrollDimensions({width:typeof t=="number"?t:getContentWidth(this.domNode)})}render(e,t,i,n,r,s=!1){const a=this.getRenderRange(t,i),l=Range$1.relativeComplement(a,e),d=Range$1.relativeComplement(e,a),c=this.getNextToLastElement(l);if(s){const u=Range$1.intersect(e,a);for(let g=u.start;g<u.end;g++)this.updateItemInDOM(this.items[g],g)}this.cache.transact(()=>{for(const u of d)for(let g=u.start;g<u.end;g++)this.removeItemFromDOM(g);for(const u of l)for(let g=u.start;g<u.end;g++)this.insertItemInDOM(g,c)}),n!==void 0&&(this.rowsContainer.style.left=`-${n}px`),this.rowsContainer.style.top=`-${t}px`,this.horizontalScrolling&&r!==void 0&&(this.rowsContainer.style.width=`${Math.max(r,this.renderWidth)}px`),this.lastRenderTop=t,this.lastRenderHeight=i}insertItemInDOM(e,t,i){const n=this.items[e];let r=!1;if(!n.row)if(i)n.row=i;else{const c=this.cache.alloc(n.templateId);n.row=c.row,r=c.isReusingConnectedDomNode}const s=this.accessibilityProvider.getRole(n.element)||"listitem";n.row.domNode.setAttribute("role",s);const a=this.accessibilityProvider.isChecked(n.element);if(typeof a=="boolean")n.row.domNode.setAttribute("aria-checked",String(!!a));else if(a){const c=u=>n.row.domNode.setAttribute("aria-checked",String(!!u));c(a.value),n.checkedDisposable=a.onDidChange(c)}(r||!n.row.domNode.parentElement)&&(t?this.rowsContainer.insertBefore(n.row.domNode,t):this.rowsContainer.appendChild(n.row.domNode)),this.updateItemInDOM(n,e);const l=this.renderers.get(n.templateId);if(!l)throw new Error(`No renderer found for template id ${n.templateId}`);l==null||l.renderElement(n.element,e,n.row.templateData,n.size);const d=this.dnd.getDragURI(n.element);n.dragStartDisposable.dispose(),n.row.domNode.draggable=!!d,d&&(n.dragStartDisposable=addDisposableListener(n.row.domNode,"dragstart",c=>this.onDragStart(n.element,d,c))),this.horizontalScrolling&&(this.measureItemWidth(n),this.eventuallyUpdateScrollWidth())}measureItemWidth(e){if(!e.row||!e.row.domNode)return;e.row.domNode.style.width="fit-content",e.width=getContentWidth(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("data-parity",t%2===0?"even":"odd"),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.checkedDisposable.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.paddingBottom}get onMouseClick(){return Event.map(this.disposables.add(new DomEmitter(this.domNode,"click")).event,e=>this.toMouseEvent(e),this.disposables)}get onMouseDblClick(){return Event.map(this.disposables.add(new DomEmitter(this.domNode,"dblclick")).event,e=>this.toMouseEvent(e),this.disposables)}get onMouseMiddleClick(){return Event.filter(Event.map(this.disposables.add(new DomEmitter(this.domNode,"auxclick")).event,e=>this.toMouseEvent(e),this.disposables),e=>e.browserEvent.button===1,this.disposables)}get onMouseDown(){return Event.map(this.disposables.add(new DomEmitter(this.domNode,"mousedown")).event,e=>this.toMouseEvent(e),this.disposables)}get onMouseOver(){return Event.map(this.disposables.add(new DomEmitter(this.domNode,"mouseover")).event,e=>this.toMouseEvent(e),this.disposables)}get onMouseOut(){return Event.map(this.disposables.add(new DomEmitter(this.domNode,"mouseout")).event,e=>this.toMouseEvent(e),this.disposables)}get onContextMenu(){return Event.any(Event.map(this.disposables.add(new DomEmitter(this.domNode,"contextmenu")).event,e=>this.toMouseEvent(e),this.disposables),Event.map(this.disposables.add(new DomEmitter(this.domNode,EventType.Contextmenu)).event,e=>this.toGestureEvent(e),this.disposables))}get onTouchStart(){return Event.map(this.disposables.add(new DomEmitter(this.domNode,"touchstart")).event,e=>this.toTouchEvent(e),this.disposables)}get onTap(){return Event.map(this.disposables.add(new DomEmitter(this.rowsContainer,EventType.Tap)).event,e=>this.toGestureEvent(e),this.disposables)}toMouseEvent(e){const t=this.getItemIndexFromEventTarget(e.target||null),i=typeof t>"u"?void 0:this.items[t],n=i&&i.element;return{browserEvent:e,index:t,element:n}}toTouchEvent(e){const t=this.getItemIndexFromEventTarget(e.target||null),i=typeof t>"u"?void 0:this.items[t],n=i&&i.element;return{browserEvent:e,index:t,element:n}}toGestureEvent(e){const t=this.getItemIndexFromEventTarget(e.initialTarget||null),i=typeof t>"u"?void 0:this.items[t],n=i&&i.element;return{browserEvent:e,index:t,element:n}}toDragEvent(e){const t=this.getItemIndexFromEventTarget(e.target||null),i=typeof t>"u"?void 0:this.items[t],n=i&&i.element;return{browserEvent:e,index:t,element:n}}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){var n,r;if(!i.dataTransfer)return;const s=this.dnd.getDragElements(e);if(i.dataTransfer.effectAllowed="copyMove",i.dataTransfer.setData(DataTransfers.TEXT,t),i.dataTransfer.setDragImage){let a;this.dnd.getDragLabel&&(a=this.dnd.getDragLabel(s,i)),typeof a>"u"&&(a=String(s.length));const l=$$d(".monaco-drag-image");l.textContent=a;const c=(u=>{for(;u&&!u.classList.contains("monaco-workbench");)u=u.parentElement;return u||document.body})(this.domNode);c.appendChild(l),i.dataTransfer.setDragImage(l,-10,-10),setTimeout(()=>c.removeChild(l),0)}this.domNode.classList.add("dragging"),this.currentDragData=new ElementsDragAndDropData(s),StaticDND.CurrentDragAndDropData=new ExternalElementsDragAndDropData(s),(r=(n=this.dnd).onDragStart)===null||r===void 0||r.call(n,this.currentDragData,i)}onDragOver(e){var t;if(e.browserEvent.preventDefault(),this.onDragLeaveTimeout.dispose(),StaticDND.CurrentDragAndDropData&&StaticDND.CurrentDragAndDropData.getData()==="vscode-ui"||(this.setupDragAndDropScrollTopAnimation(e.browserEvent),!e.browserEvent.dataTransfer))return!1;if(!this.currentDragData)if(StaticDND.CurrentDragAndDropData)this.currentDragData=StaticDND.CurrentDragAndDropData;else{if(!e.browserEvent.dataTransfer.types)return!1;this.currentDragData=new NativeDragAndDropData}const i=this.dnd.onDragOver(this.currentDragData,e.element,e.index,e.browserEvent);if(this.canDrop=typeof i=="boolean"?i:i.accept,!this.canDrop)return this.currentDragFeedback=void 0,this.currentDragFeedbackDisposable.dispose(),!1;e.browserEvent.dataTransfer.dropEffect=typeof i!="boolean"&&i.effect===0?"copy":"move";let n;if(typeof i!="boolean"&&i.feedback?n=i.feedback:typeof e.index>"u"?n=[-1]:n=[e.index],n=distinct(n).filter(r=>r>=-1&&r<this.length).sort((r,s)=>r-s),n=n[0]===-1?[-1]:n,equalsDragFeedback(this.currentDragFeedback,n))return!0;if(this.currentDragFeedback=n,this.currentDragFeedbackDisposable.dispose(),n[0]===-1)this.domNode.classList.add("drop-target"),this.rowsContainer.classList.add("drop-target"),this.currentDragFeedbackDisposable=toDisposable(()=>{this.domNode.classList.remove("drop-target"),this.rowsContainer.classList.remove("drop-target")});else{for(const r of n){const s=this.items[r];s.dropTarget=!0,(t=s.row)===null||t===void 0||t.domNode.classList.add("drop-target")}this.currentDragFeedbackDisposable=toDisposable(()=>{var r;for(const s of n){const a=this.items[s];a.dropTarget=!1,(r=a.row)===null||r===void 0||r.domNode.classList.remove("drop-target")}})}return!0}onDragLeave(e){var t,i;this.onDragLeaveTimeout.dispose(),this.onDragLeaveTimeout=disposableTimeout(()=>this.clearDragOverFeedback(),100,this.disposables),this.currentDragData&&((i=(t=this.dnd).onDragLeave)===null||i===void 0||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.domNode.classList.remove("dragging"),this.currentDragData=void 0,StaticDND.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){var t,i;this.canDrop=!1,this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.domNode.classList.remove("dragging"),this.currentDragData=void 0,StaticDND.CurrentDragAndDropData=void 0,(i=(t=this.dnd).onDragEnd)===null||i===void 0||i.call(t,e)}clearDragOverFeedback(){this.currentDragFeedback=void 0,this.currentDragFeedbackDisposable.dispose(),this.currentDragFeedbackDisposable=Disposable.None}setupDragAndDropScrollTopAnimation(e){if(!this.dragOverAnimationDisposable){const t=getTopLeftOffset(this.domNode).top;this.dragOverAnimationDisposable=animate(this.animateDragAndDropScrollTop.bind(this,t))}this.dragOverAnimationStopDisposable.dispose(),this.dragOverAnimationStopDisposable=disposableTimeout(()=>{this.dragOverAnimationDisposable&&(this.dragOverAnimationDisposable.dispose(),this.dragOverAnimationDisposable=void 0)},1e3,this.disposables),this.dragOverMouseY=e.pageY}animateDragAndDropScrollTop(e){if(this.dragOverMouseY===void 0)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 n=i.getAttribute("data-index");if(n){const r=Number(n);if(!isNaN(r))return r}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 r,s;e===this.elementTop(n.start)?(r=n.start,s=0):n.end-n.start>1&&(r=n.start+1,s=this.elementTop(r)-e);let a=0;for(;;){const l=this.getRenderRange(e,t);let d=!1;for(let c=l.start;c<l.end;c++){const u=this.probeDynamicHeight(c);u!==0&&this.rangeMap.splice(c,1,[this.items[c]]),a+=u,d=d||u!==0}if(!d){a!==0&&this.eventuallyUpdateScrollDimensions();const c=Range$1.relativeComplement(n,l);for(const g of c)for(let f=g.start;f<g.end;f++)this.items[f].row&&this.removeItemFromDOM(f);const u=Range$1.relativeComplement(l,n);for(const g of u)for(let f=g.start;f<g.end;f++){const p=f+1,m=p<this.items.length?this.items[p].row:null,b=m?m.domNode:null;this.insertItemInDOM(f,b)}for(let g=l.start;g<l.end;g++)this.items[g].row&&this.updateItemInDOM(this.items[g],g);if(typeof r=="number"){const g=this.scrollable.getFutureScrollPosition().scrollTop-e,f=this.elementTop(r)-s+g;this.setScrollTop(f,i)}this._onDidChangeContentHeight.fire(this.contentHeight);return}}}probeDynamicHeight(e){var t,i,n;const r=this.items[e];if(this.virtualDelegate.getDynamicHeight){const d=this.virtualDelegate.getDynamicHeight(r.element);if(d!==null){const c=r.size;return r.size=d,r.lastDynamicHeightWidth=this.renderWidth,d-c}}if(!r.hasDynamicHeight||r.lastDynamicHeightWidth===this.renderWidth||this.virtualDelegate.hasDynamicHeight&&!this.virtualDelegate.hasDynamicHeight(r.element))return 0;const s=r.size;if(r.row)return r.row.domNode.style.height="",r.size=r.row.domNode.offsetHeight,r.lastDynamicHeightWidth=this.renderWidth,r.size-s;const{row:a}=this.cache.alloc(r.templateId);a.domNode.style.height="",this.rowsContainer.appendChild(a.domNode);const l=this.renderers.get(r.templateId);if(!l)throw new BugIndicatingError("Missing renderer for templateId: "+r.templateId);return l.renderElement(r.element,e,a.templateData,void 0),r.size=a.domNode.offsetHeight,(t=l.disposeElement)===null||t===void 0||t.call(l,r.element,e,a.templateData,void 0),(n=(i=this.virtualDelegate).setDynamicHeight)===null||n===void 0||n.call(i,r.element,r.size),r.lastDynamicHeightWidth=this.renderWidth,this.rowsContainer.removeChild(a.domNode),this.cache.release(a),r.size-s}getNextToLastElement(e){const t=e[e.length-1];if(!t)return null;const i=this.items[t.end];return!i||!i.row?null:i.row.domNode}getElementDomId(e){return`${this.domId}_${e}`}dispose(){var e,t;for(const i of this.items)if(i.dragStartDisposable.dispose(),i.checkedDisposable.dispose(),i.row){const n=this.renderers.get(i.row.templateId);n&&((e=n.disposeElement)===null||e===void 0||e.call(n,i.element,-1,i.row.templateData,void 0),n.disposeTemplate(i.row.templateData))}this.items=[],this.domNode&&this.domNode.parentNode&&this.domNode.parentNode.removeChild(this.domNode),(t=this.dragOverAnimationDisposable)===null||t===void 0||t.dispose(),this.disposables.dispose()}}ListView.InstanceCount=0;__decorate$1T([memoize],ListView.prototype,"onMouseClick",null);__decorate$1T([memoize],ListView.prototype,"onMouseDblClick",null);__decorate$1T([memoize],ListView.prototype,"onMouseMiddleClick",null);__decorate$1T([memoize],ListView.prototype,"onMouseDown",null);__decorate$1T([memoize],ListView.prototype,"onMouseOver",null);__decorate$1T([memoize],ListView.prototype,"onMouseOut",null);__decorate$1T([memoize],ListView.prototype,"onContextMenu",null);__decorate$1T([memoize],ListView.prototype,"onTouchStart",null);__decorate$1T([memoize],ListView.prototype,"onTap",null);var __decorate$1S=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__awaiter$1o=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};class TraitRenderer{constructor(e){this.trait=e,this.renderedElements=[]}get templateId(){return`template:${this.trait.name}`}renderTemplate(e){return e}renderElement(e,t,i){const n=this.renderedElements.findIndex(r=>r.templateData===i);if(n>=0){const r=this.renderedElements[n];this.trait.unrender(i),r.index=t}else{const r={index:t,templateData:i};this.renderedElements.push(r)}this.trait.renderIndex(t,i)}splice(e,t,i){const n=[];for(const r of this.renderedElements)r.index<e?n.push(r):r.index>=e+t&&n.push({index:r.index+i-t,templateData:r.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(i=>i.templateData===e);t<0||this.renderedElements.splice(t,1)}}let Trait$1=class{get name(){return this._trait}get renderer(){return new TraitRenderer(this)}constructor(e){this._trait=e,this.length=0,this.indexes=[],this.sortedIndexes=[],this._onChange=new Emitter$1,this.onChange=this._onChange.event}splice(e,t,i){var n;t=Math.max(0,Math.min(t,this.length-e));const r=i.length-t,s=e+t,a=[];let l=0;for(;l<this.sortedIndexes.length&&this.sortedIndexes[l]<e;)a.push(this.sortedIndexes[l++]);for(let c=0;c<i.length;c++)i[c]&&a.push(c+e);for(;l<this.sortedIndexes.length&&this.sortedIndexes[l]>=s;)a.push(this.sortedIndexes[l++]+r);const d=this.length+r;if(this.sortedIndexes.length>0&&a.length===0&&d>0){const c=(n=this.sortedIndexes.find(u=>u>=e))!==null&&n!==void 0?n:d-1;a.push(Math.min(c,d-1))}this.renderer.splice(e,t,i.length),this._set(a,a),this.length=d}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(numericSort),t)}_set(e,t,i){const n=this.indexes,r=this.sortedIndexes;this.indexes=e,this.sortedIndexes=t;const s=disjunction(r,e);return this.renderer.renderIndexes(s),this._onChange.fire({indexes:e,browserEvent:i}),n}get(){return this.indexes}contains(e){return binarySearch(this.sortedIndexes,e,numericSort)>=0}dispose(){dispose(this._onChange)}};__decorate$1S([memoize],Trait$1.prototype,"renderer",null);class SelectionTrait extends Trait$1{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 TraitSpliceable{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,new Array(i.length).fill(!1));const n=this.trait.get().map(a=>this.identityProvider.getId(this.view.element(a)).toString());if(n.length===0)return this.trait.splice(e,t,new Array(i.length).fill(!1));const r=new Set(n),s=i.map(a=>r.has(this.identityProvider.getId(a).toString()));this.trait.splice(e,t,s)}}function isInputElement(o){return o.tagName==="INPUT"||o.tagName==="TEXTAREA"}function isMonacoEditor(o){return o.classList.contains("monaco-editor")?!0:o.classList.contains("monaco-list")||!o.parentElement?!1:isMonacoEditor(o.parentElement)}function isButton(o){return o.tagName==="A"&&o.classList.contains("monaco-button")||o.tagName==="DIV"&&o.classList.contains("monaco-button-dropdown")?!0:o.classList.contains("monaco-list")||!o.parentElement?!1:isButton(o.parentElement)}class KeyboardController{get onKeyDown(){return Event.chain(this.disposables.add(new DomEmitter(this.view.domNode,"keydown")).event,e=>e.filter(t=>!isInputElement(t.target)).map(t=>new StandardKeyboardEvent(t)))}constructor(e,t,i){this.list=e,this.view=t,this.disposables=new DisposableStore,this.multipleSelectionDisposables=new DisposableStore,this.multipleSelectionSupport=i.multipleSelectionSupport,this.disposables.add(this.onKeyDown(n=>{switch(n.keyCode){case 3:return this.onEnter(n);case 16:return this.onUpArrow(n);case 18:return this.onDownArrow(n);case 11:return this.onPageUpArrow(n);case 12:return this.onPageDownArrow(n);case 9:return this.onEscape(n);case 31:this.multipleSelectionSupport&&(isMacintosh?n.metaKey:n.ctrlKey)&&this.onCtrlA(n)}}))}updateOptions(e){e.multipleSelectionSupport!==void 0&&(this.multipleSelectionSupport=e.multipleSelectionSupport)}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);const t=this.list.getFocus()[0];this.list.setAnchor(t),this.list.reveal(t),this.view.domNode.focus()}onDownArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusNext(1,!1,e.browserEvent);const t=this.list.getFocus()[0];this.list.setAnchor(t),this.list.reveal(t),this.view.domNode.focus()}onPageUpArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusPreviousPage(e.browserEvent);const t=this.list.getFocus()[0];this.list.setAnchor(t),this.list.reveal(t),this.view.domNode.focus()}onPageDownArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusNextPage(e.browserEvent);const t=this.list.getFocus()[0];this.list.setAnchor(t),this.list.reveal(t),this.view.domNode.focus()}onCtrlA(e){e.preventDefault(),e.stopPropagation(),this.list.setSelection(range(this.list.length),e.browserEvent),this.list.setAnchor(void 0),this.view.domNode.focus()}onEscape(e){this.list.getSelection().length&&(e.preventDefault(),e.stopPropagation(),this.list.setSelection([],e.browserEvent),this.list.setAnchor(void 0),this.view.domNode.focus())}dispose(){this.disposables.dispose(),this.multipleSelectionDisposables.dispose()}}__decorate$1S([memoize],KeyboardController.prototype,"onKeyDown",null);var TypeNavigationMode;(function(o){o[o.Automatic=0]="Automatic",o[o.Trigger=1]="Trigger"})(TypeNavigationMode||(TypeNavigationMode={}));var TypeNavigationControllerState;(function(o){o[o.Idle=0]="Idle",o[o.Typing=1]="Typing"})(TypeNavigationControllerState||(TypeNavigationControllerState={}));const DefaultKeyboardNavigationDelegate=new class{mightProducePrintableCharacter(o){return o.ctrlKey||o.metaKey||o.altKey?!1:o.keyCode>=31&&o.keyCode<=56||o.keyCode>=21&&o.keyCode<=30||o.keyCode>=98&&o.keyCode<=107||o.keyCode>=85&&o.keyCode<=95}};class TypeNavigationController{constructor(e,t,i,n,r){this.list=e,this.view=t,this.keyboardNavigationLabelProvider=i,this.keyboardNavigationEventFilter=n,this.delegate=r,this.enabled=!1,this.state=TypeNavigationControllerState.Idle,this.mode=TypeNavigationMode.Automatic,this.triggered=!1,this.previouslyFocused=-1,this.enabledDisposables=new DisposableStore,this.disposables=new DisposableStore,this.updateOptions(e.options)}updateOptions(e){var t,i;!((t=e.typeNavigationEnabled)!==null&&t!==void 0)||t?this.enable():this.disable(),this.mode=(i=e.typeNavigationMode)!==null&&i!==void 0?i:TypeNavigationMode.Automatic}enable(){if(this.enabled)return;let e=!1;const t=Event.chain(this.enabledDisposables.add(new DomEmitter(this.view.domNode,"keydown")).event,r=>r.filter(s=>!isInputElement(s.target)).filter(()=>this.mode===TypeNavigationMode.Automatic||this.triggered).map(s=>new StandardKeyboardEvent(s)).filter(s=>e||this.keyboardNavigationEventFilter(s)).filter(s=>this.delegate.mightProducePrintableCharacter(s)).forEach(s=>EventHelper.stop(s,!0)).map(s=>s.browserEvent.key)),i=Event.debounce(t,()=>null,800,void 0,void 0,void 0,this.enabledDisposables);Event.reduce(Event.any(t,i),(r,s)=>s===null?null:(r||"")+s,void 0,this.enabledDisposables)(this.onInput,this,this.enabledDisposables),i(this.onClear,this,this.enabledDisposables),t(()=>e=!0,void 0,this.enabledDisposables),i(()=>e=!1,void 0,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=(e=this.list.options.accessibilityProvider)===null||e===void 0?void 0:e.getAriaLabel(this.list.element(t[0]));i&&alert(i)}this.previouslyFocused=-1}onInput(e){if(!e){this.state=TypeNavigationControllerState.Idle,this.triggered=!1;return}const t=this.list.getFocus(),i=t.length>0?t[0]:0,n=this.state===TypeNavigationControllerState.Idle?1:0;this.state=TypeNavigationControllerState.Typing;for(let r=0;r<this.list.length;r++){const s=(i+r+n)%this.list.length,a=this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(this.view.element(s)),l=a&&a.toString();if(this.list.options.typeNavigationEnabled){if(typeof l<"u"){if(matchesPrefix(e,l)){this.previouslyFocused=i,this.list.setFocus([s]),this.list.reveal(s);return}const d=matchesFuzzy2(e,l);if(d&&d[0].end-d[0].start>1&&d.length===1){this.previouslyFocused=i,this.list.setFocus([s]),this.list.reveal(s);return}}}else if(typeof l>"u"||matchesPrefix(e,l)){this.previouslyFocused=i,this.list.setFocus([s]),this.list.reveal(s);return}}}dispose(){this.disable(),this.enabledDisposables.dispose(),this.disposables.dispose()}}class DOMFocusController{constructor(e,t){this.list=e,this.view=t,this.disposables=new DisposableStore;const i=Event.chain(this.disposables.add(new DomEmitter(t.domNode,"keydown")).event,r=>r.filter(s=>!isInputElement(s.target)).map(s=>new StandardKeyboardEvent(s)));Event.chain(i,r=>r.filter(s=>s.keyCode===2&&!s.ctrlKey&&!s.metaKey&&!s.shiftKey&&!s.altKey))(this.onTab,this,this.disposables)}onTab(e){if(e.target!==this.view.domNode)return;const t=this.list.getFocus();if(t.length===0)return;const i=this.view.domElement(t[0]);if(!i)return;const n=i.querySelector("[tabIndex]");if(!n||!(n instanceof HTMLElement)||n.tabIndex===-1)return;const r=window.getComputedStyle(n);r.visibility==="hidden"||r.display==="none"||(e.preventDefault(),e.stopPropagation(),n.focus())}dispose(){this.disposables.dispose()}}function isSelectionSingleChangeEvent(o){return isMacintosh?o.browserEvent.metaKey:o.browserEvent.ctrlKey}function isSelectionRangeChangeEvent(o){return o.browserEvent.shiftKey}function isMouseRightClick(o){return o instanceof MouseEvent&&o.button===2}const DefaultMultipleSelectionController={isSelectionSingleChangeEvent,isSelectionRangeChangeEvent};class MouseController{constructor(e){this.list=e,this.disposables=new DisposableStore,this._onPointer=new Emitter$1,this.onPointer=this._onPointer.event,e.options.multipleSelectionSupport!==!1&&(this.multipleSelectionController=this.list.options.multipleSelectionController||DefaultMultipleSelectionController),this.mouseSupport=typeof e.options.mouseSupport>"u"||!!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(Gesture.addTarget(e.getHTMLElement()))),Event.any(e.onMouseClick,e.onMouseMiddleClick,e.onTap)(this.onViewPointer,this,this.disposables)}updateOptions(e){e.multipleSelectionSupport!==void 0&&(this.multipleSelectionController=void 0,e.multipleSelectionSupport&&(this.multipleSelectionController=this.list.options.multipleSelectionController||DefaultMultipleSelectionController))}isSelectionSingleChangeEvent(e){return this.multipleSelectionController?this.multipleSelectionController.isSelectionSingleChangeEvent(e):!1}isSelectionRangeChangeEvent(e){return this.multipleSelectionController?this.multipleSelectionController.isSelectionRangeChangeEvent(e):!1}isSelectionChangeEvent(e){return this.isSelectionSingleChangeEvent(e)||this.isSelectionRangeChangeEvent(e)}onMouseDown(e){isMonacoEditor(e.browserEvent.target)||document.activeElement!==e.browserEvent.target&&this.list.domFocus()}onContextMenu(e){if(isInputElement(e.browserEvent.target)||isMonacoEditor(e.browserEvent.target))return;const t=typeof e.index>"u"?[]:[e.index];this.list.setFocus(t,e.browserEvent)}onViewPointer(e){if(!this.mouseSupport||isInputElement(e.browserEvent.target)||isMonacoEditor(e.browserEvent.target)||e.browserEvent.isHandledByList)return;e.browserEvent.isHandledByList=!0;const t=e.index;if(typeof t>"u"){this.list.setFocus([],e.browserEvent),this.list.setSelection([],e.browserEvent),this.list.setAnchor(void 0);return}if(this.isSelectionChangeEvent(e))return this.changeSelection(e);this.list.setFocus([t],e.browserEvent),this.list.setAnchor(t),isMouseRightClick(e.browserEvent)||this.list.setSelection([t],e.browserEvent),this._onPointer.fire(e)}onDoubleClick(e){if(isInputElement(e.browserEvent.target)||isMonacoEditor(e.browserEvent.target)||this.isSelectionChangeEvent(e)||e.browserEvent.isHandledByList)return;e.browserEvent.isHandledByList=!0;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(typeof i>"u"){const c=this.list.getFocus()[0];i=c??t,this.list.setAnchor(i)}const n=Math.min(i,t),r=Math.max(i,t),s=range(n,r+1),a=this.list.getSelection(),l=getContiguousRangeContaining(disjunction(a,[i]),i);if(l.length===0)return;const d=disjunction(s,relativeComplement(a,l));this.list.setSelection(d,e.browserEvent),this.list.setFocus([t],e.browserEvent)}else if(this.isSelectionSingleChangeEvent(e)){const n=this.list.getSelection(),r=n.filter(s=>s!==t);this.list.setFocus([t]),this.list.setAnchor(t),n.length===r.length?this.list.setSelection([...r,t],e.browserEvent):this.list.setSelection(r,e.browserEvent)}}dispose(){this.disposables.dispose()}}class DefaultStyleController{constructor(e,t){this.styleElement=e,this.selectorSuffix=t}style(e){var t,i;const n=this.selectorSuffix&&`.${this.selectorSuffix}`,r=[];e.listBackground&&r.push(`.monaco-list${n} .monaco-list-rows { background: ${e.listBackground}; }`),e.listFocusBackground&&(r.push(`.monaco-list${n}:focus .monaco-list-row.focused { background-color: ${e.listFocusBackground}; }`),r.push(`.monaco-list${n}:focus .monaco-list-row.focused:hover { background-color: ${e.listFocusBackground}; }`)),e.listFocusForeground&&r.push(`.monaco-list${n}:focus .monaco-list-row.focused { color: ${e.listFocusForeground}; }`),e.listActiveSelectionBackground&&(r.push(`.monaco-list${n}:focus .monaco-list-row.selected { background-color: ${e.listActiveSelectionBackground}; }`),r.push(`.monaco-list${n}:focus .monaco-list-row.selected:hover { background-color: ${e.listActiveSelectionBackground}; }`)),e.listActiveSelectionForeground&&r.push(`.monaco-list${n}:focus .monaco-list-row.selected { color: ${e.listActiveSelectionForeground}; }`),e.listActiveSelectionIconForeground&&r.push(`.monaco-list${n}:focus .monaco-list-row.selected .codicon { color: ${e.listActiveSelectionIconForeground}; }`),e.listFocusAndSelectionBackground&&r.push(`
- .monaco-drag-image,
- .monaco-list${n}:focus .monaco-list-row.selected.focused { background-color: ${e.listFocusAndSelectionBackground}; }
- `),e.listFocusAndSelectionForeground&&r.push(`
- .monaco-drag-image,
- .monaco-list${n}:focus .monaco-list-row.selected.focused { color: ${e.listFocusAndSelectionForeground}; }
- `),e.listInactiveFocusForeground&&(r.push(`.monaco-list${n} .monaco-list-row.focused { color: ${e.listInactiveFocusForeground}; }`),r.push(`.monaco-list${n} .monaco-list-row.focused:hover { color: ${e.listInactiveFocusForeground}; }`)),e.listInactiveSelectionIconForeground&&r.push(`.monaco-list${n} .monaco-list-row.focused .codicon { color: ${e.listInactiveSelectionIconForeground}; }`),e.listInactiveFocusBackground&&(r.push(`.monaco-list${n} .monaco-list-row.focused { background-color: ${e.listInactiveFocusBackground}; }`),r.push(`.monaco-list${n} .monaco-list-row.focused:hover { background-color: ${e.listInactiveFocusBackground}; }`)),e.listInactiveSelectionBackground&&(r.push(`.monaco-list${n} .monaco-list-row.selected { background-color: ${e.listInactiveSelectionBackground}; }`),r.push(`.monaco-list${n} .monaco-list-row.selected:hover { background-color: ${e.listInactiveSelectionBackground}; }`)),e.listInactiveSelectionForeground&&r.push(`.monaco-list${n} .monaco-list-row.selected { color: ${e.listInactiveSelectionForeground}; }`),e.listHoverBackground&&r.push(`.monaco-list${n}:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused) { background-color: ${e.listHoverBackground}; }`),e.listHoverForeground&&r.push(`.monaco-list${n}:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused) { color: ${e.listHoverForeground}; }`);const s=asCssValueWithDefault(e.listFocusAndSelectionOutline,asCssValueWithDefault(e.listSelectionOutline,(t=e.listFocusOutline)!==null&&t!==void 0?t:""));s&&r.push(`.monaco-list${n}:focus .monaco-list-row.focused.selected { outline: 1px solid ${s}; outline-offset: -1px;}`),e.listFocusOutline&&r.push(`
- .monaco-drag-image,
- .monaco-list${n}:focus .monaco-list-row.focused { outline: 1px solid ${e.listFocusOutline}; outline-offset: -1px; }
- .monaco-workbench.context-menu-visible .monaco-list${n}.last-focused .monaco-list-row.focused { outline: 1px solid ${e.listFocusOutline}; outline-offset: -1px; }
- `);const a=asCssValueWithDefault(e.listSelectionOutline,(i=e.listInactiveFocusOutline)!==null&&i!==void 0?i:"");a&&r.push(`.monaco-list${n} .monaco-list-row.focused.selected { outline: 1px dotted ${a}; outline-offset: -1px; }`),e.listSelectionOutline&&r.push(`.monaco-list${n} .monaco-list-row.selected { outline: 1px dotted ${e.listSelectionOutline}; outline-offset: -1px; }`),e.listInactiveFocusOutline&&r.push(`.monaco-list${n} .monaco-list-row.focused { outline: 1px dotted ${e.listInactiveFocusOutline}; outline-offset: -1px; }`),e.listHoverOutline&&r.push(`.monaco-list${n} .monaco-list-row:hover { outline: 1px dashed ${e.listHoverOutline}; outline-offset: -1px; }`),e.listDropBackground&&r.push(`
- .monaco-list${n}.drop-target,
- .monaco-list${n} .monaco-list-rows.drop-target,
- .monaco-list${n} .monaco-list-row.drop-target { background-color: ${e.listDropBackground} !important; color: inherit !important; }
- `),e.tableColumnsBorder&&r.push(`
- .monaco-table > .monaco-split-view2,
- .monaco-table > .monaco-split-view2 .monaco-sash.vertical::before,
- .monaco-workbench:not(.reduce-motion) .monaco-table:hover > .monaco-split-view2,
- .monaco-workbench:not(.reduce-motion) .monaco-table:hover > .monaco-split-view2 .monaco-sash.vertical::before {
- border-color: ${e.tableColumnsBorder};
- }
- .monaco-workbench:not(.reduce-motion) .monaco-table > .monaco-split-view2,
- .monaco-workbench:not(.reduce-motion) .monaco-table > .monaco-split-view2 .monaco-sash.vertical::before {
- border-color: transparent;
- }
- `),e.tableOddRowsBackgroundColor&&r.push(`
- .monaco-table .monaco-list-row[data-parity=odd]:not(.focused):not(.selected):not(:hover) .monaco-table-tr,
- .monaco-table .monaco-list:not(:focus) .monaco-list-row[data-parity=odd].focused:not(.selected):not(:hover) .monaco-table-tr,
- .monaco-table .monaco-list:not(.focused) .monaco-list-row[data-parity=odd].focused:not(.selected):not(:hover) .monaco-table-tr {
- background-color: ${e.tableOddRowsBackgroundColor};
- }
- `),this.styleElement.textContent=r.join(`
- `)}}const unthemedListStyles={listFocusBackground:"#7FB0D0",listActiveSelectionBackground:"#0E639C",listActiveSelectionForeground:"#FFFFFF",listActiveSelectionIconForeground:"#FFFFFF",listFocusAndSelectionOutline:"#90C2F9",listFocusAndSelectionBackground:"#094771",listFocusAndSelectionForeground:"#FFFFFF",listInactiveSelectionBackground:"#3F3F46",listInactiveSelectionIconForeground:"#FFFFFF",listHoverBackground:"#2A2D2E",listDropBackground:"#383B3D",treeIndentGuidesStroke:"#a9a9a9",treeInactiveIndentGuidesStroke:Color.fromHex("#a9a9a9").transparent(.4).toString(),tableColumnsBorder:Color.fromHex("#cccccc").transparent(.2).toString(),tableOddRowsBackgroundColor:Color.fromHex("#cccccc").transparent(.04).toString(),listBackground:void 0,listFocusForeground:void 0,listInactiveSelectionForeground:void 0,listInactiveFocusForeground:void 0,listInactiveFocusBackground:void 0,listHoverForeground:void 0,listFocusOutline:void 0,listInactiveFocusOutline:void 0,listSelectionOutline:void 0,listHoverOutline:void 0},DefaultOptions={keyboardSupport:!0,mouseSupport:!0,multipleSelectionSupport:!0,dnd:{getDragURI(){return null},onDragStart(){},onDragOver(){return!1},drop(){},dispose(){}}};function getContiguousRangeContaining(o,e){const t=o.indexOf(e);if(t===-1)return[];const i=[];let n=t-1;for(;n>=0&&o[n]===e-(t-n);)i.push(o[n--]);for(i.reverse(),n=t;n<o.length&&o[n]===e+(n-t);)i.push(o[n++]);return i}function disjunction(o,e){const t=[];let i=0,n=0;for(;i<o.length||n<e.length;)if(i>=o.length)t.push(e[n++]);else if(n>=e.length)t.push(o[i++]);else if(o[i]===e[n]){t.push(o[i]),i++,n++;continue}else o[i]<e[n]?t.push(o[i++]):t.push(e[n++]);return t}function relativeComplement(o,e){const t=[];let i=0,n=0;for(;i<o.length||n<e.length;)if(i>=o.length)t.push(e[n++]);else if(n>=e.length)t.push(o[i++]);else if(o[i]===e[n]){i++,n++;continue}else o[i]<e[n]?t.push(o[i++]):n++;return t}const numericSort=(o,e)=>o-e;class PipelineRenderer{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 r=0;for(const s of this.renderers)s.renderElement(e,t,i[r++],n)}disposeElement(e,t,i,n){var r;let s=0;for(const a of this.renderers)(r=a.disposeElement)===null||r===void 0||r.call(a,e,t,i[s],n),s+=1}disposeTemplate(e){let t=0;for(const i of this.renderers)i.disposeTemplate(e[t++])}}class AccessibiltyRenderer{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 r=this.accessibilityProvider.getAriaLevel&&this.accessibilityProvider.getAriaLevel(e);typeof r=="number"?i.setAttribute("aria-level",`${r}`):i.removeAttribute("aria-level")}disposeTemplate(e){}}class ListViewDragAndDrop{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){var i,n;(n=(i=this.dnd).onDragStart)===null||n===void 0||n.call(i,e,t)}onDragOver(e,t,i,n){return this.dnd.onDragOver(e,t,i,n)}onDragLeave(e,t,i,n){var r,s;(s=(r=this.dnd).onDragLeave)===null||s===void 0||s.call(r,e,t,i,n)}onDragEnd(e){var t,i;(i=(t=this.dnd).onDragEnd)===null||i===void 0||i.call(t,e)}drop(e,t,i,n){this.dnd.drop(e,t,i,n)}dispose(){this.dnd.dispose()}}class List{get onDidChangeFocus(){return Event.map(this.eventBufferer.wrapEvent(this.focus.onChange),e=>this.toListEvent(e),this.disposables)}get onDidChangeSelection(){return Event.map(this.eventBufferer.wrapEvent(this.selection.onChange),e=>this.toListEvent(e),this.disposables)}get domId(){return this.view.domId}get onDidScroll(){return this.view.onDidScroll}get onMouseClick(){return this.view.onMouseClick}get onMouseDblClick(){return this.view.onMouseDblClick}get onMouseMiddleClick(){return this.view.onMouseMiddleClick}get onPointer(){return this.mouseController.onPointer}get onMouseDown(){return this.view.onMouseDown}get onMouseOver(){return this.view.onMouseOver}get onMouseOut(){return this.view.onMouseOut}get onTouchStart(){return this.view.onTouchStart}get onTap(){return this.view.onTap}get onContextMenu(){let e=!1;const t=Event.chain(this.disposables.add(new DomEmitter(this.view.domNode,"keydown")).event,r=>r.map(s=>new StandardKeyboardEvent(s)).filter(s=>e=s.keyCode===58||s.shiftKey&&s.keyCode===68).map(s=>EventHelper.stop(s,!0)).filter(()=>!1)),i=Event.chain(this.disposables.add(new DomEmitter(this.view.domNode,"keyup")).event,r=>r.forEach(()=>e=!1).map(s=>new StandardKeyboardEvent(s)).filter(s=>s.keyCode===58||s.shiftKey&&s.keyCode===68).map(s=>EventHelper.stop(s,!0)).map(({browserEvent:s})=>{const a=this.getFocus(),l=a.length?a[0]:void 0,d=typeof l<"u"?this.view.element(l):void 0,c=typeof l<"u"?this.view.domElement(l):this.view.domNode;return{index:l,element:d,anchor:c,browserEvent:s}})),n=Event.chain(this.view.onContextMenu,r=>r.filter(s=>!e).map(({element:s,index:a,browserEvent:l})=>({element:s,index:a,anchor:new StandardMouseEvent(l),browserEvent:l})));return Event.any(t,i,n)}get onKeyDown(){return this.disposables.add(new DomEmitter(this.view.domNode,"keydown")).event}get onDidFocus(){return Event.signal(this.disposables.add(new DomEmitter(this.view.domNode,"focus",!0)).event)}constructor(e,t,i,n,r=DefaultOptions){var s,a,l,d;this.user=e,this._options=r,this.focus=new Trait$1("focused"),this.anchor=new Trait$1("anchor"),this.eventBufferer=new EventBufferer,this._ariaLabel="",this.disposables=new DisposableStore,this._onDidDispose=new Emitter$1,this.onDidDispose=this._onDidDispose.event;const c=this._options.accessibilityProvider&&this._options.accessibilityProvider.getWidgetRole?(s=this._options.accessibilityProvider)===null||s===void 0?void 0:s.getWidgetRole():"list";this.selection=new SelectionTrait(c!=="listbox");const u=[this.focus.renderer,this.selection.renderer];this.accessibilityProvider=r.accessibilityProvider,this.accessibilityProvider&&(u.push(new AccessibiltyRenderer(this.accessibilityProvider)),(l=(a=this.accessibilityProvider).onDidChangeActiveDescendant)===null||l===void 0||l.call(a,this.onDidChangeActiveDescendant,this,this.disposables)),n=n.map(f=>new PipelineRenderer(f.templateId,[...u,f]));const g=Object.assign(Object.assign({},r),{dnd:r.dnd&&new ListViewDragAndDrop(this,r.dnd)});if(this.view=this.createListView(t,i,n,g),this.view.domNode.setAttribute("role",c),r.styleController)this.styleController=r.styleController(this.view.domId);else{const f=createStyleSheet(this.view.domNode);this.styleController=new DefaultStyleController(f,this.view.domId)}if(this.spliceable=new CombinedSpliceable([new TraitSpliceable(this.focus,this.view,r.identityProvider),new TraitSpliceable(this.selection,this.view,r.identityProvider),new TraitSpliceable(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 DOMFocusController(this,this.view)),(typeof r.keyboardSupport!="boolean"||r.keyboardSupport)&&(this.keyboardController=new KeyboardController(this,this.view,r),this.disposables.add(this.keyboardController)),r.keyboardNavigationLabelProvider){const f=r.keyboardNavigationDelegate||DefaultKeyboardNavigationDelegate;this.typeNavigationController=new TypeNavigationController(this,this.view,r.keyboardNavigationLabelProvider,(d=r.keyboardNavigationEventFilter)!==null&&d!==void 0?d:()=>!0,f),this.disposables.add(this.typeNavigationController)}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()),this._options.multipleSelectionSupport!==!1&&this.view.domNode.setAttribute("aria-multiselectable","true")}createListView(e,t,i,n){return new ListView(e,t,i,n)}createMouseController(e){return new MouseController(this)}updateOptions(e={}){var t,i;this._options=Object.assign(Object.assign({},this._options),e),(t=this.typeNavigationController)===null||t===void 0||t.updateOptions(this._options),this._options.multipleSelectionController!==void 0&&(this._options.multipleSelectionSupport?this.view.domNode.setAttribute("aria-multiselectable","true"):this.view.domNode.removeAttribute("aria-multiselectable")),this.mouseController.updateOptions(e),(i=this.keyboardController)===null||i===void 0||i.updateOptions(e),this.view.updateOptions(e)}get options(){return this._options}splice(e,t,i=[]){if(e<0||e>this.view.length)throw new ListError(this.user,`Invalid start index: ${e}`);if(t<0)throw new ListError(this.user,`Invalid delete count: ${t}`);t===0&&i.length===0||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 scrollHeight(){return this.view.scrollHeight}get renderHeight(){return this.view.renderHeight}get firstVisibleIndex(){return this.view.firstVisibleIndex}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 i of e)if(i<0||i>=this.length)throw new ListError(this.user,`Invalid index ${i}`);this.selection.set(e,t)}getSelection(){return this.selection.get()}getSelectedElements(){return this.getSelection().map(e=>this.view.element(e))}setAnchor(e){if(typeof e>"u"){this.anchor.set([]);return}if(e<0||e>=this.length)throw new ListError(this.user,`Invalid index ${e}`);this.anchor.set([e])}getAnchor(){return firstOrDefault(this.anchor.get(),void 0)}getAnchorElement(){const e=this.getAnchor();return typeof e>"u"?void 0:this.element(e)}setFocus(e,t){for(const i of e)if(i<0||i>=this.length)throw new ListError(this.user,`Invalid index ${i}`);this.focus.set(e,t)}focusNext(e=1,t=!1,i,n){if(this.length===0)return;const r=this.focus.get(),s=this.findNextIndex(r.length>0?r[0]+e:0,t,n);s>-1&&this.setFocus([s],i)}focusPrevious(e=1,t=!1,i,n){if(this.length===0)return;const r=this.focus.get(),s=this.findPreviousIndex(r.length>0?r[0]-e:0,t,n);s>-1&&this.setFocus([s],i)}focusNextPage(e,t){return __awaiter$1o(this,void 0,void 0,function*(){let i=this.view.indexAt(this.view.getScrollTop()+this.view.renderHeight);i=i===0?0:i-1;const n=this.getFocus()[0];if(n!==i&&(n===void 0||i>n)){const r=this.findPreviousIndex(i,!1,t);r>-1&&n!==r?this.setFocus([r],e):this.setFocus([i],e)}else{const r=this.view.getScrollTop();let s=r+this.view.renderHeight;i>n&&(s-=this.view.elementHeight(i)),this.view.setScrollTop(s),this.view.getScrollTop()!==r&&(this.setFocus([]),yield timeout(0),yield this.focusNextPage(e,t))}})}focusPreviousPage(e,t){return __awaiter$1o(this,void 0,void 0,function*(){let i;const n=this.view.getScrollTop();n===0?i=this.view.indexAt(n):i=this.view.indexAfter(n-1);const r=this.getFocus()[0];if(r!==i&&(r===void 0||r>=i)){const s=this.findNextIndex(i,!1,t);s>-1&&r!==s?this.setFocus([s],e):this.setFocus([i],e)}else{const s=n;this.view.setScrollTop(n-this.view.renderHeight),this.view.getScrollTop()!==s&&(this.setFocus([]),yield timeout(0),yield this.focusPreviousPage(e,t))}})}focusLast(e,t){if(this.length===0)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(this.length===0)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=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 ListError(this.user,`Invalid index ${e}`);const i=this.view.getScrollTop(),n=this.view.elementTop(e),r=this.view.elementHeight(e);if(isNumber$1(t)){const s=r-this.view.renderHeight;this.view.setScrollTop(s*clamp(t,0,1)+n)}else{const s=n+r,a=i+this.view.renderHeight;n<i&&s>=a||(n<i||s>=a&&r>=this.view.renderHeight?this.view.setScrollTop(n):s>=a&&this.view.setScrollTop(s-this.view.renderHeight))}}getHTMLElement(){return this.view.domNode}getElementID(e){return this.view.getElementDomId(e)}style(e){this.styleController.style(e)}toListEvent({indexes:e,browserEvent:t}){return{indexes:e,elements:e.map(i=>this.view.element(i)),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;!((e=this.accessibilityProvider)===null||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",e.length===0),this.view.domNode.classList.toggle("selection-single",e.length===1),this.view.domNode.classList.toggle("selection-multiple",e.length>1)}dispose(){this._onDidDispose.fire(),this.disposables.dispose(),this._onDidDispose.dispose()}}__decorate$1S([memoize],List.prototype,"onDidChangeFocus",null);__decorate$1S([memoize],List.prototype,"onDidChangeSelection",null);__decorate$1S([memoize],List.prototype,"onContextMenu",null);__decorate$1S([memoize],List.prototype,"onKeyDown",null);__decorate$1S([memoize],List.prototype,"onDidFocus",null);const $$c=$$d,SELECT_OPTION_ENTRY_TEMPLATE_ID="selectOption.entry.template";class SelectListRenderer{get templateId(){return SELECT_OPTION_ENTRY_TEMPLATE_ID}renderTemplate(e){const t=Object.create(null);return t.root=e,t.text=append$1(e,$$c(".option-text")),t.detail=append$1(e,$$c(".option-detail")),t.decoratorRight=append$1(e,$$c(".option-decorator-right")),t}renderElement(e,t,i){const n=i,r=e.text,s=e.detail,a=e.decoratorRight,l=e.isDisabled;n.text.textContent=r,n.detail.textContent=s||"",n.decoratorRight.innerText=a||"",l?n.root.classList.add("option-disabled"):n.root.classList.remove("option-disabled")}disposeTemplate(e){}}class SelectBoxList extends Disposable{constructor(e,t,i,n,r){super(),this.options=[],this._currentSelection=0,this._hasDetails=!1,this._skipLayout=!1,this._sticky=!1,this._isVisible=!1,this.styles=n,this.selectBoxOptions=r||Object.create(null),typeof this.selectBoxOptions.minBottomMargin!="number"?this.selectBoxOptions.minBottomMargin=SelectBoxList.DEFAULT_DROPDOWN_MINIMUM_BOTTOM_MARGIN:this.selectBoxOptions.minBottomMargin<0&&(this.selectBoxOptions.minBottomMargin=0),this.selectElement=document.createElement("select"),this.selectElement.className="monaco-select-box monaco-select-box-dropdown-padding",typeof this.selectBoxOptions.ariaLabel=="string"&&this.selectElement.setAttribute("aria-label",this.selectBoxOptions.ariaLabel),typeof this.selectBoxOptions.ariaDescription=="string"&&this.selectElement.setAttribute("aria-description",this.selectBoxOptions.ariaDescription),this._onDidSelect=new Emitter$1,this._register(this._onDidSelect),this.registerListeners(),this.constructSelectDropDown(i),this.selected=t||0,e&&this.setOptions(e,t),this.initStyleSheet()}getHeight(){return 22}getTemplateId(){return SELECT_OPTION_ENTRY_TEMPLATE_ID}constructSelectDropDown(e){this.contextViewProvider=e,this.selectDropDownContainer=$$d(".monaco-select-box-dropdown-container"),this.selectDropDownContainer.classList.add("monaco-select-box-dropdown-padding"),this.selectionDetailsPane=append$1(this.selectDropDownContainer,$$c(".select-box-details-pane"));const t=append$1(this.selectDropDownContainer,$$c(".select-box-dropdown-container-width-control")),i=append$1(t,$$c(".width-control-div"));this.widthControlElement=document.createElement("span"),this.widthControlElement.className="option-text-width-control",append$1(i,this.widthControlElement),this._dropDownPosition=0,this.styleElement=createStyleSheet(this.selectDropDownContainer),this.selectDropDownContainer.setAttribute("draggable","true"),this._register(addDisposableListener(this.selectDropDownContainer,EventType$1.DRAG_START,n=>{EventHelper.stop(n,!0)}))}registerListeners(){this._register(addStandardDisposableListener(this.selectElement,"change",t=>{this.selected=t.target.selectedIndex,this._onDidSelect.fire({index:t.target.selectedIndex,selected:t.target.value}),this.options[this.selected]&&this.options[this.selected].text&&(this.selectElement.title=this.options[this.selected].text)})),this._register(addDisposableListener(this.selectElement,EventType$1.CLICK,t=>{EventHelper.stop(t),this._isVisible?this.hideSelectDropDown(!0):this.showSelectDropDown()})),this._register(addDisposableListener(this.selectElement,EventType$1.MOUSE_DOWN,t=>{EventHelper.stop(t)}));let e;this._register(addDisposableListener(this.selectElement,"touchstart",t=>{e=this._isVisible})),this._register(addDisposableListener(this.selectElement,"touchend",t=>{EventHelper.stop(t),e?this.hideSelectDropDown(!0):this.showSelectDropDown()})),this._register(addDisposableListener(this.selectElement,EventType$1.KEY_DOWN,t=>{const i=new StandardKeyboardEvent(t);let n=!1;isMacintosh?(i.keyCode===18||i.keyCode===16||i.keyCode===10||i.keyCode===3)&&(n=!0):(i.keyCode===18&&i.altKey||i.keyCode===16&&i.altKey||i.keyCode===10||i.keyCode===3)&&(n=!0),n&&(this.showSelectDropDown(),EventHelper.stop(t,!0))}))}get onDidSelect(){return this._onDidSelect.event}setOptions(e,t){equals$2(this.options,e)||(this.options=e,this.selectElement.options.length=0,this._hasDetails=!1,this._cachedMaxDetailsHeight=void 0,this.options.forEach((i,n)=>{this.selectElement.add(this.createOption(i.text,n,i.isDisabled)),typeof i.description=="string"&&(this._hasDetails=!0)})),t!==void 0&&(this.select(t),this._currentSelection=this.selected)}setOptionsList(){var e;(e=this.selectList)===null||e===void 0||e.splice(0,this.selectList.length,this.options)}select(e){e>=0&&e<this.options.length?this.selected=e:e>this.options.length-1?this.select(this.options.length-1):this.selected<0&&(this.selected=0),this.selectElement.selectedIndex=this.selected,this.options[this.selected]&&this.options[this.selected].text&&(this.selectElement.title=this.options[this.selected].text)}focus(){this.selectElement&&(this.selectElement.tabIndex=0,this.selectElement.focus())}blur(){this.selectElement&&(this.selectElement.tabIndex=-1,this.selectElement.blur())}setFocusable(e){this.selectElement.tabIndex=e?0:-1}render(e){this.container=e,e.classList.add("select-container"),e.appendChild(this.selectElement),this.styleSelectElement()}initStyleSheet(){const e=[];this.styles.listFocusBackground&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { background-color: ${this.styles.listFocusBackground} !important; }`),this.styles.listFocusForeground&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { color: ${this.styles.listFocusForeground} !important; }`),this.styles.decoratorRightForeground&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.focused) .option-decorator-right { color: ${this.styles.decoratorRightForeground}; }`),this.styles.selectBackground&&this.styles.selectBorder&&this.styles.selectBorder!==this.styles.selectBackground?(e.push(`.monaco-select-box-dropdown-container { border: 1px solid ${this.styles.selectBorder} } `),e.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-top { border-top: 1px solid ${this.styles.selectBorder} } `),e.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-bottom { border-bottom: 1px solid ${this.styles.selectBorder} } `)):this.styles.selectListBorder&&(e.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-top { border-top: 1px solid ${this.styles.selectListBorder} } `),e.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-bottom { border-bottom: 1px solid ${this.styles.selectListBorder} } `)),this.styles.listHoverForeground&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { color: ${this.styles.listHoverForeground} !important; }`),this.styles.listHoverBackground&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { background-color: ${this.styles.listHoverBackground} !important; }`),this.styles.listFocusOutline&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { outline: 1.6px dotted ${this.styles.listFocusOutline} !important; outline-offset: -1.6px !important; }`),this.styles.listHoverOutline&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { outline: 1.6px dashed ${this.styles.listHoverOutline} !important; outline-offset: -1.6px !important; }`),e.push(".monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.option-disabled.focused { background-color: transparent !important; color: inherit !important; outline: none !important; }"),e.push(".monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.option-disabled:hover { background-color: transparent !important; color: inherit !important; outline: none !important; }"),this.styleElement.textContent=e.join(`
- `)}styleSelectElement(){var e,t,i;const n=(e=this.styles.selectBackground)!==null&&e!==void 0?e:"",r=(t=this.styles.selectForeground)!==null&&t!==void 0?t:"",s=(i=this.styles.selectBorder)!==null&&i!==void 0?i:"";this.selectElement.style.backgroundColor=n,this.selectElement.style.color=r,this.selectElement.style.borderColor=s}styleList(){var e,t;const i=(e=this.styles.selectBackground)!==null&&e!==void 0?e:"",n=asCssValueWithDefault(this.styles.selectListBackground,i);this.selectDropDownListContainer.style.backgroundColor=n,this.selectionDetailsPane.style.backgroundColor=n;const r=(t=this.styles.focusBorder)!==null&&t!==void 0?t:"";this.selectDropDownContainer.style.outlineColor=r,this.selectDropDownContainer.style.outlineOffset="-1px",this.selectList.style(this.styles)}createOption(e,t,i){const n=document.createElement("option");return n.value=e,n.text=e,n.disabled=!!i,n}showSelectDropDown(){this.selectionDetailsPane.innerText="",!(!this.contextViewProvider||this._isVisible)&&(this.createSelectList(this.selectDropDownContainer),this.setOptionsList(),this.contextViewProvider.showContextView({getAnchor:()=>this.selectElement,render:e=>this.renderSelectDropDown(e,!0),layout:()=>{this.layoutSelectDropDown()},onHide:()=>{this.selectDropDownContainer.classList.remove("visible"),this.selectElement.classList.remove("synthetic-focus")},anchorPosition:this._dropDownPosition},this.selectBoxOptions.optionsAsChildren?this.container:void 0),this._isVisible=!0,this.hideSelectDropDown(!1),this.contextViewProvider.showContextView({getAnchor:()=>this.selectElement,render:e=>this.renderSelectDropDown(e),layout:()=>this.layoutSelectDropDown(),onHide:()=>{this.selectDropDownContainer.classList.remove("visible"),this.selectElement.classList.remove("synthetic-focus")},anchorPosition:this._dropDownPosition},this.selectBoxOptions.optionsAsChildren?this.container:void 0),this._currentSelection=this.selected,this._isVisible=!0,this.selectElement.setAttribute("aria-expanded","true"))}hideSelectDropDown(e){!this.contextViewProvider||!this._isVisible||(this._isVisible=!1,this.selectElement.setAttribute("aria-expanded","false"),e&&this.selectElement.focus(),this.contextViewProvider.hideContextView())}renderSelectDropDown(e,t){return e.appendChild(this.selectDropDownContainer),this.layoutSelectDropDown(t),{dispose:()=>{try{e.removeChild(this.selectDropDownContainer)}catch{}}}}measureMaxDetailsHeight(){let e=0;return this.options.forEach((t,i)=>{this.updateDetail(i),this.selectionDetailsPane.offsetHeight>e&&(e=this.selectionDetailsPane.offsetHeight)}),e}layoutSelectDropDown(e){if(this._skipLayout)return!1;if(this.selectList){this.selectDropDownContainer.classList.add("visible");const t=getDomNodePagePosition(this.selectElement),i=getComputedStyle(this.selectElement),n=parseFloat(i.getPropertyValue("--dropdown-padding-top"))+parseFloat(i.getPropertyValue("--dropdown-padding-bottom")),r=window.innerHeight-t.top-t.height-(this.selectBoxOptions.minBottomMargin||0),s=t.top-SelectBoxList.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN,a=this.selectElement.offsetWidth,l=this.setWidthControlElement(this.widthControlElement),d=Math.max(l,Math.round(a)).toString()+"px";this.selectDropDownContainer.style.width=d,this.selectList.getHTMLElement().style.height="",this.selectList.layout();let c=this.selectList.contentHeight;this._hasDetails&&this._cachedMaxDetailsHeight===void 0&&(this._cachedMaxDetailsHeight=this.measureMaxDetailsHeight());const u=this._hasDetails?this._cachedMaxDetailsHeight:0,g=c+n+u,f=Math.floor((r-n-u)/this.getHeight()),p=Math.floor((s-n-u)/this.getHeight());if(e)return t.top+t.height>window.innerHeight-22||t.top<SelectBoxList.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN||f<1&&p<1?!1:(f<SelectBoxList.DEFAULT_MINIMUM_VISIBLE_OPTIONS&&p>f&&this.options.length>f?(this._dropDownPosition=1,this.selectDropDownContainer.removeChild(this.selectDropDownListContainer),this.selectDropDownContainer.removeChild(this.selectionDetailsPane),this.selectDropDownContainer.appendChild(this.selectionDetailsPane),this.selectDropDownContainer.appendChild(this.selectDropDownListContainer),this.selectionDetailsPane.classList.remove("border-top"),this.selectionDetailsPane.classList.add("border-bottom")):(this._dropDownPosition=0,this.selectDropDownContainer.removeChild(this.selectDropDownListContainer),this.selectDropDownContainer.removeChild(this.selectionDetailsPane),this.selectDropDownContainer.appendChild(this.selectDropDownListContainer),this.selectDropDownContainer.appendChild(this.selectionDetailsPane),this.selectionDetailsPane.classList.remove("border-bottom"),this.selectionDetailsPane.classList.add("border-top")),!0);if(t.top+t.height>window.innerHeight-22||t.top<SelectBoxList.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN||this._dropDownPosition===0&&f<1||this._dropDownPosition===1&&p<1)return this.hideSelectDropDown(!0),!1;if(this._dropDownPosition===0){if(this._isVisible&&f+p<1)return this.hideSelectDropDown(!0),!1;g>r&&(c=f*this.getHeight())}else g>s&&(c=p*this.getHeight());return this.selectList.layout(c),this.selectList.domFocus(),this.selectList.length>0&&(this.selectList.setFocus([this.selected||0]),this.selectList.reveal(this.selectList.getFocus()[0]||0)),this._hasDetails?(this.selectList.getHTMLElement().style.height=c+n+"px",this.selectDropDownContainer.style.height=""):this.selectDropDownContainer.style.height=c+n+"px",this.updateDetail(this.selected),this.selectDropDownContainer.style.width=d,this.selectDropDownListContainer.setAttribute("tabindex","0"),this.selectElement.classList.add("synthetic-focus"),this.selectDropDownContainer.classList.add("synthetic-focus"),!0}else return!1}setWidthControlElement(e){let t=0;if(e){let i=0,n=0;this.options.forEach((r,s)=>{const a=r.detail?r.detail.length:0,l=r.decoratorRight?r.decoratorRight.length:0,d=r.text.length+a+l;d>n&&(i=s,n=d)}),e.textContent=this.options[i].text+(this.options[i].decoratorRight?this.options[i].decoratorRight+" ":""),t=getTotalWidth(e)}return t}createSelectList(e){if(this.selectList)return;this.selectDropDownListContainer=append$1(e,$$c(".select-box-dropdown-list-container")),this.listRenderer=new SelectListRenderer,this.selectList=new List("SelectBoxCustom",this.selectDropDownListContainer,this,[this.listRenderer],{useShadows:!1,verticalScrollMode:3,keyboardSupport:!1,mouseSupport:!1,accessibilityProvider:{getAriaLabel:n=>{let r=n.text;return n.detail&&(r+=`. ${n.detail}`),n.decoratorRight&&(r+=`. ${n.decoratorRight}`),n.description&&(r+=`. ${n.description}`),r},getWidgetAriaLabel:()=>localize({},"Select Box"),getRole:()=>isMacintosh?"":"option",getWidgetRole:()=>"listbox"}}),this.selectBoxOptions.ariaLabel&&(this.selectList.ariaLabel=this.selectBoxOptions.ariaLabel);const t=this._register(new DomEmitter(this.selectDropDownListContainer,"keydown")),i=Event.chain(t.event,n=>n.filter(()=>this.selectList.length>0).map(r=>new StandardKeyboardEvent(r)));this._register(Event.chain(i,n=>n.filter(r=>r.keyCode===3))(this.onEnter,this)),this._register(Event.chain(i,n=>n.filter(r=>r.keyCode===2))(this.onEnter,this)),this._register(Event.chain(i,n=>n.filter(r=>r.keyCode===9))(this.onEscape,this)),this._register(Event.chain(i,n=>n.filter(r=>r.keyCode===16))(this.onUpArrow,this)),this._register(Event.chain(i,n=>n.filter(r=>r.keyCode===18))(this.onDownArrow,this)),this._register(Event.chain(i,n=>n.filter(r=>r.keyCode===12))(this.onPageDown,this)),this._register(Event.chain(i,n=>n.filter(r=>r.keyCode===11))(this.onPageUp,this)),this._register(Event.chain(i,n=>n.filter(r=>r.keyCode===14))(this.onHome,this)),this._register(Event.chain(i,n=>n.filter(r=>r.keyCode===13))(this.onEnd,this)),this._register(Event.chain(i,n=>n.filter(r=>r.keyCode>=21&&r.keyCode<=56||r.keyCode>=85&&r.keyCode<=113))(this.onCharacter,this)),this._register(addDisposableListener(this.selectList.getHTMLElement(),EventType$1.POINTER_UP,n=>this.onPointerUp(n))),this._register(this.selectList.onMouseOver(n=>typeof n.index<"u"&&this.selectList.setFocus([n.index]))),this._register(this.selectList.onDidChangeFocus(n=>this.onListFocus(n))),this._register(addDisposableListener(this.selectDropDownContainer,EventType$1.FOCUS_OUT,n=>{!this._isVisible||isAncestor$1(n.relatedTarget,this.selectDropDownContainer)||this.onListBlur()})),this.selectList.getHTMLElement().setAttribute("aria-label",this.selectBoxOptions.ariaLabel||""),this.selectList.getHTMLElement().setAttribute("aria-expanded","true"),this.styleList()}onPointerUp(e){if(!this.selectList.length)return;EventHelper.stop(e);const t=e.target;if(!t||t.classList.contains("slider"))return;const i=t.closest(".monaco-list-row");if(!i)return;const n=Number(i.getAttribute("data-index")),r=i.classList.contains("option-disabled");n>=0&&n<this.options.length&&!r&&(this.selected=n,this.select(this.selected),this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selectList.getFocus()[0]),this.selected!==this._currentSelection&&(this._currentSelection=this.selected,this._onDidSelect.fire({index:this.selectElement.selectedIndex,selected:this.options[this.selected].text}),this.options[this.selected]&&this.options[this.selected].text&&(this.selectElement.title=this.options[this.selected].text)),this.hideSelectDropDown(!0))}onListBlur(){this._sticky||(this.selected!==this._currentSelection&&this.select(this._currentSelection),this.hideSelectDropDown(!1))}renderDescriptionMarkdown(e,t){const i=r=>{for(let s=0;s<r.childNodes.length;s++){const a=r.childNodes.item(s);(a.tagName&&a.tagName.toLowerCase())==="img"?r.removeChild(a):i(a)}},n=renderMarkdown({value:e,supportThemeIcons:!0},{actionHandler:t});return n.element.classList.add("select-box-description-markdown"),i(n.element),n.element}onListFocus(e){!this._isVisible||!this._hasDetails||this.updateDetail(e.indexes[0])}updateDetail(e){var t,i;this.selectionDetailsPane.innerText="";const n=this.options[e],r=(t=n==null?void 0:n.description)!==null&&t!==void 0?t:"",s=(i=n==null?void 0:n.descriptionIsMarkdown)!==null&&i!==void 0?i:!1;if(r){if(s){const a=n.descriptionMarkdownActionHandler;this.selectionDetailsPane.appendChild(this.renderDescriptionMarkdown(r,a))}else this.selectionDetailsPane.innerText=r;this.selectionDetailsPane.style.display="block"}else this.selectionDetailsPane.style.display="none";this._skipLayout=!0,this.contextViewProvider.layout(),this._skipLayout=!1}onEscape(e){EventHelper.stop(e),this.select(this._currentSelection),this.hideSelectDropDown(!0)}onEnter(e){EventHelper.stop(e),this.selected!==this._currentSelection&&(this._currentSelection=this.selected,this._onDidSelect.fire({index:this.selectElement.selectedIndex,selected:this.options[this.selected].text}),this.options[this.selected]&&this.options[this.selected].text&&(this.selectElement.title=this.options[this.selected].text)),this.hideSelectDropDown(!0)}onDownArrow(e){if(this.selected<this.options.length-1){EventHelper.stop(e,!0);const t=this.options[this.selected+1].isDisabled;if(t&&this.options.length>this.selected+2)this.selected+=2;else{if(t)return;this.selected++}this.select(this.selected),this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selectList.getFocus()[0])}}onUpArrow(e){this.selected>0&&(EventHelper.stop(e,!0),this.options[this.selected-1].isDisabled&&this.selected>1?this.selected-=2:this.selected--,this.select(this.selected),this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selectList.getFocus()[0]))}onPageUp(e){EventHelper.stop(e),this.selectList.focusPreviousPage(),setTimeout(()=>{this.selected=this.selectList.getFocus()[0],this.options[this.selected].isDisabled&&this.selected<this.options.length-1&&(this.selected++,this.selectList.setFocus([this.selected])),this.selectList.reveal(this.selected),this.select(this.selected)},1)}onPageDown(e){EventHelper.stop(e),this.selectList.focusNextPage(),setTimeout(()=>{this.selected=this.selectList.getFocus()[0],this.options[this.selected].isDisabled&&this.selected>0&&(this.selected--,this.selectList.setFocus([this.selected])),this.selectList.reveal(this.selected),this.select(this.selected)},1)}onHome(e){EventHelper.stop(e),!(this.options.length<2)&&(this.selected=0,this.options[this.selected].isDisabled&&this.selected>1&&this.selected++,this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selected),this.select(this.selected))}onEnd(e){EventHelper.stop(e),!(this.options.length<2)&&(this.selected=this.options.length-1,this.options[this.selected].isDisabled&&this.selected>1&&this.selected--,this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selected),this.select(this.selected))}onCharacter(e){const t=KeyCodeUtils.toString(e.keyCode);let i=-1;for(let n=0;n<this.options.length-1;n++)if(i=(n+this.selected+1)%this.options.length,this.options[i].text.charAt(0).toUpperCase()===t&&!this.options[i].isDisabled){this.select(i),this.selectList.setFocus([i]),this.selectList.reveal(this.selectList.getFocus()[0]),EventHelper.stop(e);break}}dispose(){this.hideSelectDropDown(!1),super.dispose()}}SelectBoxList.DEFAULT_DROPDOWN_MINIMUM_BOTTOM_MARGIN=32;SelectBoxList.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN=2;SelectBoxList.DEFAULT_MINIMUM_VISIBLE_OPTIONS=3;class SelectBoxNative extends Disposable{constructor(e,t,i,n){super(),this.selected=0,this.selectBoxOptions=n||Object.create(null),this.options=[],this.selectElement=document.createElement("select"),this.selectElement.className="monaco-select-box",typeof this.selectBoxOptions.ariaLabel=="string"&&this.selectElement.setAttribute("aria-label",this.selectBoxOptions.ariaLabel),typeof this.selectBoxOptions.ariaDescription=="string"&&this.selectElement.setAttribute("aria-description",this.selectBoxOptions.ariaDescription),this._onDidSelect=this._register(new Emitter$1),this.styles=i,this.registerListeners(),this.setOptions(e,t)}registerListeners(){this._register(Gesture.addTarget(this.selectElement)),[EventType.Tap].forEach(e=>{this._register(addDisposableListener(this.selectElement,e,t=>{this.selectElement.focus()}))}),this._register(addStandardDisposableListener(this.selectElement,"click",e=>{EventHelper.stop(e,!0)})),this._register(addStandardDisposableListener(this.selectElement,"change",e=>{this.selectElement.title=e.target.value,this._onDidSelect.fire({index:e.target.selectedIndex,selected:e.target.value})})),this._register(addStandardDisposableListener(this.selectElement,"keydown",e=>{let t=!1;isMacintosh?(e.keyCode===18||e.keyCode===16||e.keyCode===10)&&(t=!0):(e.keyCode===18&&e.altKey||e.keyCode===10||e.keyCode===3)&&(t=!0),t&&e.stopPropagation()}))}get onDidSelect(){return this._onDidSelect.event}setOptions(e,t){(!this.options||!equals$2(this.options,e))&&(this.options=e,this.selectElement.options.length=0,this.options.forEach((i,n)=>{this.selectElement.add(this.createOption(i.text,n,i.isDisabled))})),t!==void 0&&this.select(t)}select(e){this.options.length===0?this.selected=0:e>=0&&e<this.options.length?this.selected=e:e>this.options.length-1?this.select(this.options.length-1):this.selected<0&&(this.selected=0),this.selectElement.selectedIndex=this.selected,this.selected<this.options.length&&typeof this.options[this.selected].text=="string"?this.selectElement.title=this.options[this.selected].text:this.selectElement.title=""}focus(){this.selectElement&&(this.selectElement.tabIndex=0,this.selectElement.focus())}blur(){this.selectElement&&(this.selectElement.tabIndex=-1,this.selectElement.blur())}setFocusable(e){this.selectElement.tabIndex=e?0:-1}render(e){e.classList.add("select-container"),e.appendChild(this.selectElement),this.setOptions(this.options,this.selected),this.applyStyles()}applyStyles(){var e,t,i;this.selectElement&&(this.selectElement.style.backgroundColor=(e=this.styles.selectBackground)!==null&&e!==void 0?e:"",this.selectElement.style.color=(t=this.styles.selectForeground)!==null&&t!==void 0?t:"",this.selectElement.style.borderColor=(i=this.styles.selectBorder)!==null&&i!==void 0?i:"")}createOption(e,t,i){const n=document.createElement("option");return n.value=e,n.text=e,n.disabled=!!i,n}}class SelectBox extends Widget$1{constructor(e,t,i,n,r){super(),isMacintosh&&!(r!=null&&r.useCustomDrawn)?this.selectBoxDelegate=new SelectBoxNative(e,t,n,r):this.selectBoxDelegate=new SelectBoxList(e,t,i,n,r),this._register(this.selectBoxDelegate)}get onDidSelect(){return this.selectBoxDelegate.onDidSelect}setOptions(e,t){this.selectBoxDelegate.setOptions(e,t)}select(e){this.selectBoxDelegate.select(e)}focus(){this.selectBoxDelegate.focus()}blur(){this.selectBoxDelegate.blur()}setFocusable(e){this.selectBoxDelegate.setFocusable(e)}render(e){this.selectBoxDelegate.render(e)}}class BaseActionViewItem extends Disposable{get action(){return this._action}constructor(e,t,i={}){super(),this.options=i,this._context=e||this,this._action=t,t instanceof Action&&this._register(t.onDidChange(n=>{this.element&&this.handleActionChangeEvent(n)}))}handleActionChangeEvent(e){e.enabled!==void 0&&this.updateEnabled(),e.checked!==void 0&&this.updateChecked(),e.class!==void 0&&this.updateClass(),e.label!==void 0&&(this.updateLabel(),this.updateTooltip()),e.tooltip!==void 0&&this.updateTooltip()}get actionRunner(){return this._actionRunner||(this._actionRunner=this._register(new ActionRunner)),this._actionRunner}set actionRunner(e){this._actionRunner=e}isEnabled(){return this._action.enabled}setActionContext(e){this._context=e}render(e){const t=this.element=e;this._register(Gesture.addTarget(e));const i=this.options&&this.options.draggable;i&&(e.draggable=!0,isFirefox&&this._register(addDisposableListener(e,EventType$1.DRAG_START,n=>{var r;return(r=n.dataTransfer)===null||r===void 0?void 0:r.setData(DataTransfers.TEXT,this._action.label)}))),this._register(addDisposableListener(t,EventType.Tap,n=>this.onClick(n,!0))),this._register(addDisposableListener(t,EventType$1.MOUSE_DOWN,n=>{i||EventHelper.stop(n,!0),this._action.enabled&&n.button===0&&t.classList.add("active")})),isMacintosh&&this._register(addDisposableListener(t,EventType$1.CONTEXT_MENU,n=>{n.button===0&&n.ctrlKey===!0&&this.onClick(n)})),this._register(addDisposableListener(t,EventType$1.CLICK,n=>{EventHelper.stop(n,!0),this.options&&this.options.isMenu||this.onClick(n)})),this._register(addDisposableListener(t,EventType$1.DBLCLICK,n=>{EventHelper.stop(n,!0)})),[EventType$1.MOUSE_UP,EventType$1.MOUSE_OUT].forEach(n=>{this._register(addDisposableListener(t,n,r=>{EventHelper.stop(r),t.classList.remove("active")}))})}onClick(e,t=!1){var i;EventHelper.stop(e,!0);const n=isUndefinedOrNull(this._context)?!((i=this.options)===null||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(){}getTooltip(){return this.action.tooltip}updateTooltip(){var e;if(!this.element)return;const t=(e=this.getTooltip())!==null&&e!==void 0?e:"";this.updateAriaLabel(),this.options.hoverDelegate?(this.element.title="",this.customHover?this.customHover.update(t):(this.customHover=setupCustomHover(this.options.hoverDelegate,this.element,t),this._store.add(this.customHover))):this.element.title=t}updateAriaLabel(){var e;if(this.element){const t=(e=this.getTooltip())!==null&&e!==void 0?e:"";this.element.setAttribute("aria-label",t)}}updateClass(){}updateChecked(){}dispose(){this.element&&(this.element.remove(),this.element=void 0),this._context=void 0,super.dispose()}}class ActionViewItem extends BaseActionViewItem{constructor(e,t,i){super(e,t,i),this.options=i,this.options.icon=i.icon!==void 0?i.icon:!1,this.options.label=i.label!==void 0?i.label:!0,this.cssClass=""}render(e){super.render(e),this.element&&(this.label=append$1(this.element,$$d("a.action-label"))),this.label&&this.label.setAttribute("role",this.getDefaultAriaRole()),this.options.label&&this.options.keybinding&&this.element&&(append$1(this.element,$$d("span.keybinding")).textContent=this.options.keybinding),this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked()}getDefaultAriaRole(){return this._action.id===Separator.ID?"presentation":this.options.isMenu?"menuitem":"button"}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.action.label)}getTooltip(){let e=null;return this.action.tooltip?e=this.action.tooltip:!this.options.label&&this.action.label&&this.options.icon&&(e=this.action.label,this.options.keybinding&&(e=localize({},"{0} ({1})",e,this.options.keybinding))),e??void 0}updateClass(){var e;this.cssClass&&this.label&&this.label.classList.remove(...this.cssClass.split(" ")),this.options.icon?(this.cssClass=this.action.class,this.label&&(this.label.classList.add("codicon"),this.cssClass&&this.label.classList.add(...this.cssClass.split(" "))),this.updateEnabled()):(e=this.label)===null||e===void 0||e.classList.remove("codicon")}updateEnabled(){var e,t;this.action.enabled?(this.label&&(this.label.removeAttribute("aria-disabled"),this.label.classList.remove("disabled")),(e=this.element)===null||e===void 0||e.classList.remove("disabled")):(this.label&&(this.label.setAttribute("aria-disabled","true"),this.label.classList.add("disabled")),(t=this.element)===null||t===void 0||t.classList.add("disabled"))}updateAriaLabel(){var e;if(this.label){const t=(e=this.getTooltip())!==null&&e!==void 0?e:"";this.label.setAttribute("aria-label",t)}}updateChecked(){this.label&&(this.action.checked!==void 0?(this.label.classList.toggle("checked",this.action.checked),this.label.setAttribute("aria-checked",this.action.checked?"true":"false"),this.label.setAttribute("role","checkbox")):(this.label.classList.remove("checked"),this.label.setAttribute("aria-checked",""),this.label.setAttribute("role",this.getDefaultAriaRole())))}}class SelectActionViewItem extends BaseActionViewItem{constructor(e,t,i,n,r,s,a){super(e,t),this.selectBox=new SelectBox(i,n,r,s,a),this.selectBox.setFocusable(!1),this._register(this.selectBox),this.registerListeners()}select(e){this.selectBox.select(e)}registerListeners(){this._register(this.selectBox.onDidSelect(e=>this.runAction(e.selected,e.index)))}runAction(e,t){this.actionRunner.run(this._action,this.getActionContext(e,t))}getActionContext(e,t){return e}setFocusable(e){this.selectBox.setFocusable(e)}focus(){var e;(e=this.selectBox)===null||e===void 0||e.focus()}blur(){var e;(e=this.selectBox)===null||e===void 0||e.blur()}render(e){this.selectBox.render(e)}}class BaseDropdown extends ActionRunner{constructor(e,t){super(),this._onDidChangeVisibility=this._register(new Emitter$1),this.onDidChangeVisibility=this._onDidChangeVisibility.event,this._element=append$1(e,$$d(".monaco-dropdown")),this._label=append$1(this._element,$$d(".dropdown-label"));let i=t.labelRenderer;i||(i=r=>(r.textContent=t.label||"",null));for(const r of[EventType$1.CLICK,EventType$1.MOUSE_DOWN,EventType.Tap])this._register(addDisposableListener(this.element,r,s=>EventHelper.stop(s,!0)));for(const r of[EventType$1.MOUSE_DOWN,EventType.Tap])this._register(addDisposableListener(this._label,r,s=>{s instanceof MouseEvent&&(s.detail>1||s.button!==0)||(this.visible?this.hide():this.show())}));this._register(addDisposableListener(this._label,EventType$1.KEY_UP,r=>{const s=new StandardKeyboardEvent(r);(s.equals(3)||s.equals(10))&&(EventHelper.stop(r,!0),this.visible?this.hide():this.show())}));const n=i(this._label);n&&this._register(n),this._register(Gesture.addTarget(this._label))}get element(){return this._element}show(){this.visible||(this.visible=!0,this._onDidChangeVisibility.fire(!0))}hide(){this.visible&&(this.visible=!1,this._onDidChangeVisibility.fire(!1))}dispose(){super.dispose(),this.hide(),this.boxContainer&&(this.boxContainer.remove(),this.boxContainer=void 0),this.contents&&(this.contents.remove(),this.contents=void 0),this._label&&(this._label.remove(),this._label=void 0)}}class DropdownMenu extends BaseDropdown{constructor(e,t){super(e,t),this._options=t,this._actions=[],this.actions=t.actions||[]}set menuOptions(e){this._menuOptions=e}get menuOptions(){return this._menuOptions}get actions(){return this._options.actionProvider?this._options.actionProvider.getActions():this._actions}set actions(e){this._actions=e}show(){super.show(),this.element.classList.add("active"),this._options.contextMenuProvider.showContextMenu({getAnchor:()=>this.element,getActions:()=>this.actions,getActionsContext:()=>this.menuOptions?this.menuOptions.context:null,getActionViewItem:(e,t)=>this.menuOptions&&this.menuOptions.actionViewItemProvider?this.menuOptions.actionViewItemProvider(e,t):void 0,getKeyBinding:e=>this.menuOptions&&this.menuOptions.getKeyBinding?this.menuOptions.getKeyBinding(e):void 0,getMenuClassName:()=>this._options.menuClassName||"",onHide:()=>this.onHide(),actionRunner:this.menuOptions?this.menuOptions.actionRunner:void 0,anchorAlignment:this.menuOptions?this.menuOptions.anchorAlignment:0,domForShadowRoot:this._options.menuAsChild?this.element:void 0,skipTelemetry:this._options.skipTelemetry})}hide(){super.hide()}onHide(){this.hide(),this.element.classList.remove("active")}}class DropdownMenuActionViewItem extends BaseActionViewItem{constructor(e,t,i,n=Object.create(null)){super(null,e,n),this.actionItem=null,this._onDidChangeVisibility=this._register(new Emitter$1),this.onDidChangeVisibility=this._onDidChangeVisibility.event,this.menuActionsOrProvider=t,this.contextMenuProvider=i,this.options=n,this.options.actionRunner&&(this.actionRunner=this.options.actionRunner)}render(e){this.actionItem=e;const t=r=>{this.element=append$1(r,$$d("a.action-label"));let s=[];return typeof this.options.classNames=="string"?s=this.options.classNames.split(/\s+/g).filter(a=>!!a):this.options.classNames&&(s=this.options.classNames),s.find(a=>a==="icon")||s.push("codicon"),this.element.classList.add(...s),this.element.setAttribute("role","button"),this.element.setAttribute("aria-haspopup","true"),this.element.setAttribute("aria-expanded","false"),this.element.title=this._action.label||"",this.element.ariaLabel=this._action.label||"",null},i=Array.isArray(this.menuActionsOrProvider),n={contextMenuProvider:this.contextMenuProvider,labelRenderer:t,menuAsChild:this.options.menuAsChild,actions:i?this.menuActionsOrProvider:void 0,actionProvider:i?void 0:this.menuActionsOrProvider,skipTelemetry:this.options.skipTelemetry};if(this.dropdownMenu=this._register(new DropdownMenu(e,n)),this._register(this.dropdownMenu.onDidChangeVisibility(r=>{var s;(s=this.element)===null||s===void 0||s.setAttribute("aria-expanded",`${r}`),this._onDidChangeVisibility.fire(r)})),this.dropdownMenu.menuOptions={actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,getKeyBinding:this.options.keybindingProvider,context:this._context},this.options.anchorAlignmentProvider){const r=this;this.dropdownMenu.menuOptions=Object.assign(Object.assign({},this.dropdownMenu.menuOptions),{get anchorAlignment(){return r.options.anchorAlignmentProvider()}})}this.updateTooltip(),this.updateEnabled()}getTooltip(){let e=null;return this.action.tooltip?e=this.action.tooltip:this.action.label&&(e=this.action.label),e??void 0}setActionContext(e){super.setActionContext(e),this.dropdownMenu&&(this.dropdownMenu.menuOptions?this.dropdownMenu.menuOptions.context=e:this.dropdownMenu.menuOptions={context:e})}show(){var e;(e=this.dropdownMenu)===null||e===void 0||e.show()}updateEnabled(){var e,t;const i=!this.action.enabled;(e=this.actionItem)===null||e===void 0||e.classList.toggle("disabled",i),(t=this.element)===null||t===void 0||t.classList.toggle("disabled",i)}}function isICommandActionToggleInfo(o){return o?o.condition!==void 0:!1}var __awaiter$1n=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},StorageHint;(function(o){o[o.STORAGE_DOES_NOT_EXIST=0]="STORAGE_DOES_NOT_EXIST",o[o.STORAGE_IN_MEMORY=1]="STORAGE_IN_MEMORY"})(StorageHint||(StorageHint={}));var StorageState;(function(o){o[o.None=0]="None",o[o.Initialized=1]="Initialized",o[o.Closed=2]="Closed"})(StorageState||(StorageState={}));class Storage extends Disposable{constructor(e,t=Object.create(null)){super(),this.database=e,this.options=t,this._onDidChangeStorage=this._register(new PauseableEmitter),this.onDidChangeStorage=this._onDidChangeStorage.event,this.state=StorageState.None,this.cache=new Map,this.flushDelayer=this._register(new ThrottledDelayer(Storage.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;this._onDidChangeStorage.pause();try{(t=e.changed)===null||t===void 0||t.forEach((n,r)=>this.acceptExternal(r,n)),(i=e.deleted)===null||i===void 0||i.forEach(n=>this.acceptExternal(n,void 0))}finally{this._onDidChangeStorage.resume()}}acceptExternal(e,t){if(this.state===StorageState.Closed)return;let i=!1;isUndefinedOrNull(t)?i=this.cache.delete(e):this.cache.get(e)!==t&&(this.cache.set(e,t),i=!0),i&&this._onDidChangeStorage.fire({key:e,external:!0})}get(e,t){const i=this.cache.get(e);return isUndefinedOrNull(i)?t:i}getBoolean(e,t){const i=this.get(e);return isUndefinedOrNull(i)?t:i==="true"}getNumber(e,t){const i=this.get(e);return isUndefinedOrNull(i)?t:parseInt(i,10)}set(e,t,i=!1){return __awaiter$1n(this,void 0,void 0,function*(){if(this.state===StorageState.Closed)return;if(isUndefinedOrNull(t))return this.delete(e,i);const n=isObject(t)||Array.isArray(t)?stringify(t):String(t);if(this.cache.get(e)!==n)return this.cache.set(e,n),this.pendingInserts.set(e,n),this.pendingDeletes.delete(e),this._onDidChangeStorage.fire({key:e,external:i}),this.doFlush()})}delete(e,t=!1){return __awaiter$1n(this,void 0,void 0,function*(){if(!(this.state===StorageState.Closed||!this.cache.delete(e)))return this.pendingDeletes.has(e)||this.pendingDeletes.add(e),this.pendingInserts.delete(e),this._onDidChangeStorage.fire({key:e,external:t}),this.doFlush()})}get hasPending(){return this.pendingInserts.size>0||this.pendingDeletes.size>0}flushPending(){return __awaiter$1n(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 t;if(!this.hasPending)for(;this.whenFlushedCallbacks.length;)(t=this.whenFlushedCallbacks.pop())===null||t===void 0||t()})})}doFlush(e){return __awaiter$1n(this,void 0,void 0,function*(){return this.options.hint===StorageHint.STORAGE_IN_MEMORY?this.flushPending():this.flushDelayer.trigger(()=>this.flushPending(),e)})}}Storage.DEFAULT_FLUSH_DELAY=100;class InMemoryStorageDatabase{constructor(){this.onDidChangeItemsExternal=Event.None,this.items=new Map}updateItems(e){var t,i;return __awaiter$1n(this,void 0,void 0,function*(){(t=e.insert)===null||t===void 0||t.forEach((n,r)=>this.items.set(r,n)),(i=e.delete)===null||i===void 0||i.forEach(n=>this.items.delete(n))})}}const TARGET_KEY="__$__targetStorageMarker",IStorageService=createDecorator("storageService");var WillSaveStateReason;(function(o){o[o.NONE=0]="NONE",o[o.SHUTDOWN=1]="SHUTDOWN"})(WillSaveStateReason||(WillSaveStateReason={}));function loadKeyTargets(o){const e=o.get(TARGET_KEY);if(e)try{return JSON.parse(e)}catch{}return Object.create(null)}class AbstractStorageService extends Disposable{constructor(e={flushInterval:AbstractStorageService.DEFAULT_FLUSH_INTERVAL}){super(),this.options=e,this._onDidChangeValue=this._register(new PauseableEmitter),this._onDidChangeTarget=this._register(new PauseableEmitter),this._onWillSaveState=this._register(new Emitter$1),this.onWillSaveState=this._onWillSaveState.event,this._workspaceKeyTargets=void 0,this._profileKeyTargets=void 0,this._applicationKeyTargets=void 0}onDidChangeValue(e,t,i){return Event.filter(this._onDidChangeValue.event,n=>n.scope===e&&(t===void 0||n.key===t),i)}emitDidChangeValue(e,t){const{key:i,external:n}=t;if(i===TARGET_KEY){switch(e){case-1:this._applicationKeyTargets=void 0;break;case 0:this._profileKeyTargets=void 0;break;case 1:this._workspaceKeyTargets=void 0;break}this._onDidChangeTarget.fire({scope:e})}else this._onDidChangeValue.fire({scope:e,key:i,target:this.getKeyTargets(e)[i],external:n})}get(e,t,i){var n;return(n=this.getStorage(t))===null||n===void 0?void 0:n.get(e,i)}getBoolean(e,t,i){var n;return(n=this.getStorage(t))===null||n===void 0?void 0:n.getBoolean(e,i)}getNumber(e,t,i){var n;return(n=this.getStorage(t))===null||n===void 0?void 0:n.getNumber(e,i)}store(e,t,i,n,r=!1){if(isUndefinedOrNull(t)){this.remove(e,i,r);return}this.withPausedEmitters(()=>{var s;this.updateKeyTarget(e,i,n),(s=this.getStorage(i))===null||s===void 0||s.set(e,t,r)})}remove(e,t,i=!1){this.withPausedEmitters(()=>{var n;this.updateKeyTarget(e,t,void 0),(n=this.getStorage(t))===null||n===void 0||n.delete(e,i)})}withPausedEmitters(e){this._onDidChangeValue.pause(),this._onDidChangeTarget.pause();try{e()}finally{this._onDidChangeValue.resume(),this._onDidChangeTarget.resume()}}updateKeyTarget(e,t,i,n=!1){var r,s;const a=this.getKeyTargets(t);typeof i=="number"?a[e]!==i&&(a[e]=i,(r=this.getStorage(t))===null||r===void 0||r.set(TARGET_KEY,JSON.stringify(a),n)):typeof a[e]=="number"&&(delete a[e],(s=this.getStorage(t))===null||s===void 0||s.set(TARGET_KEY,JSON.stringify(a),n))}get workspaceKeyTargets(){return this._workspaceKeyTargets||(this._workspaceKeyTargets=this.loadKeyTargets(1)),this._workspaceKeyTargets}get profileKeyTargets(){return this._profileKeyTargets||(this._profileKeyTargets=this.loadKeyTargets(0)),this._profileKeyTargets}get applicationKeyTargets(){return this._applicationKeyTargets||(this._applicationKeyTargets=this.loadKeyTargets(-1)),this._applicationKeyTargets}getKeyTargets(e){switch(e){case-1:return this.applicationKeyTargets;case 0:return this.profileKeyTargets;default:return this.workspaceKeyTargets}}loadKeyTargets(e){const t=this.getStorage(e);return t?loadKeyTargets(t):Object.create(null)}}AbstractStorageService.DEFAULT_FLUSH_INTERVAL=60*1e3;class InMemoryStorageService extends AbstractStorageService{constructor(){super(),this.applicationStorage=this._register(new Storage(new InMemoryStorageDatabase,{hint:StorageHint.STORAGE_IN_MEMORY})),this.profileStorage=this._register(new Storage(new InMemoryStorageDatabase,{hint:StorageHint.STORAGE_IN_MEMORY})),this.workspaceStorage=this._register(new Storage(new InMemoryStorageDatabase,{hint:StorageHint.STORAGE_IN_MEMORY})),this._register(this.workspaceStorage.onDidChangeStorage(e=>this.emitDidChangeValue(1,e))),this._register(this.profileStorage.onDidChangeStorage(e=>this.emitDidChangeValue(0,e))),this._register(this.applicationStorage.onDidChangeStorage(e=>this.emitDidChangeValue(-1,e)))}getStorage(e){switch(e){case-1:return this.applicationStorage;case 0:return this.profileStorage;default:return this.workspaceStorage}}}function overrideStyles(o,e){const t=Object.assign({},e);for(const i in o){const n=o[i];t[i]=n!==void 0?asCssVariable(n):void 0}return t}const defaultKeybindingLabelStyles={keybindingLabelBackground:asCssVariable(keybindingLabelBackground),keybindingLabelForeground:asCssVariable(keybindingLabelForeground),keybindingLabelBorder:asCssVariable(keybindingLabelBorder),keybindingLabelBottomBorder:asCssVariable(keybindingLabelBottomBorder),keybindingLabelShadow:asCssVariable(widgetShadow)},defaultButtonStyles={buttonForeground:asCssVariable(buttonForeground),buttonSeparator:asCssVariable(buttonSeparator),buttonBackground:asCssVariable(buttonBackground),buttonHoverBackground:asCssVariable(buttonHoverBackground),buttonSecondaryForeground:asCssVariable(buttonSecondaryForeground),buttonSecondaryBackground:asCssVariable(buttonSecondaryBackground),buttonSecondaryHoverBackground:asCssVariable(buttonSecondaryHoverBackground),buttonBorder:asCssVariable(buttonBorder)},defaultProgressBarStyles={progressBarBackground:asCssVariable(progressBarBackground)},defaultToggleStyles={inputActiveOptionBorder:asCssVariable(inputActiveOptionBorder),inputActiveOptionForeground:asCssVariable(inputActiveOptionForeground),inputActiveOptionBackground:asCssVariable(inputActiveOptionBackground)};asCssVariable(checkboxBackground),asCssVariable(checkboxBorder),asCssVariable(checkboxForeground);asCssVariable(editorWidgetBackground),asCssVariable(editorWidgetForeground),asCssVariable(widgetShadow),asCssVariable(contrastBorder),asCssVariable(problemsErrorIconForeground),asCssVariable(problemsWarningIconForeground),asCssVariable(problemsInfoIconForeground),asCssVariable(textLinkForeground);const defaultInputBoxStyles={inputBackground:asCssVariable(inputBackground),inputForeground:asCssVariable(inputForeground),inputBorder:asCssVariable(inputBorder),inputValidationInfoBorder:asCssVariable(inputValidationInfoBorder),inputValidationInfoBackground:asCssVariable(inputValidationInfoBackground),inputValidationInfoForeground:asCssVariable(inputValidationInfoForeground),inputValidationWarningBorder:asCssVariable(inputValidationWarningBorder),inputValidationWarningBackground:asCssVariable(inputValidationWarningBackground),inputValidationWarningForeground:asCssVariable(inputValidationWarningForeground),inputValidationErrorBorder:asCssVariable(inputValidationErrorBorder),inputValidationErrorBackground:asCssVariable(inputValidationErrorBackground),inputValidationErrorForeground:asCssVariable(inputValidationErrorForeground)},defaultFindWidgetStyles={listFilterWidgetBackground:asCssVariable(listFilterWidgetBackground),listFilterWidgetOutline:asCssVariable(listFilterWidgetOutline),listFilterWidgetNoMatchesOutline:asCssVariable(listFilterWidgetNoMatchesOutline),listFilterWidgetShadow:asCssVariable(listFilterWidgetShadow),inputBoxStyles:defaultInputBoxStyles,toggleStyles:defaultToggleStyles},defaultCountBadgeStyles={badgeBackground:asCssVariable(badgeBackground),badgeForeground:asCssVariable(badgeForeground),badgeBorder:asCssVariable(contrastBorder)};asCssVariable(breadcrumbsBackground),asCssVariable(breadcrumbsForeground),asCssVariable(breadcrumbsFocusForeground),asCssVariable(breadcrumbsFocusForeground),asCssVariable(breadcrumbsActiveSelectionForeground);const defaultListStyles={listBackground:void 0,listInactiveFocusForeground:void 0,listFocusBackground:asCssVariable(listFocusBackground),listFocusForeground:asCssVariable(listFocusForeground),listFocusOutline:asCssVariable(listFocusOutline),listActiveSelectionBackground:asCssVariable(listActiveSelectionBackground),listActiveSelectionForeground:asCssVariable(listActiveSelectionForeground),listActiveSelectionIconForeground:asCssVariable(listActiveSelectionIconForeground),listFocusAndSelectionOutline:asCssVariable(listFocusAndSelectionOutline),listFocusAndSelectionBackground:asCssVariable(listActiveSelectionBackground),listFocusAndSelectionForeground:asCssVariable(listActiveSelectionForeground),listInactiveSelectionBackground:asCssVariable(listInactiveSelectionBackground),listInactiveSelectionIconForeground:asCssVariable(listInactiveSelectionIconForeground),listInactiveSelectionForeground:asCssVariable(listInactiveSelectionForeground),listInactiveFocusBackground:asCssVariable(listInactiveFocusBackground),listInactiveFocusOutline:asCssVariable(listInactiveFocusOutline),listHoverBackground:asCssVariable(listHoverBackground),listHoverForeground:asCssVariable(listHoverForeground),listDropBackground:asCssVariable(listDropBackground),listSelectionOutline:asCssVariable(activeContrastBorder),listHoverOutline:asCssVariable(activeContrastBorder),treeIndentGuidesStroke:asCssVariable(treeIndentGuidesStroke),treeInactiveIndentGuidesStroke:asCssVariable(treeInactiveIndentGuidesStroke),tableColumnsBorder:asCssVariable(tableColumnsBorder),tableOddRowsBackgroundColor:asCssVariable(tableOddRowsBackgroundColor)};function getListStyles(o){return overrideStyles(o,defaultListStyles)}const defaultSelectBoxStyles={selectBackground:asCssVariable(selectBackground),selectListBackground:asCssVariable(selectListBackground),selectForeground:asCssVariable(selectForeground),decoratorRightForeground:asCssVariable(pickerGroupForeground),selectBorder:asCssVariable(selectBorder),focusBorder:asCssVariable(focusBorder),listFocusBackground:asCssVariable(quickInputListFocusBackground),listInactiveSelectionIconForeground:asCssVariable(quickInputListFocusIconForeground),listFocusForeground:asCssVariable(quickInputListFocusForeground),listFocusOutline:asCssVariableWithDefault(activeContrastBorder,Color.transparent.toString()),listHoverBackground:asCssVariable(listHoverBackground),listHoverForeground:asCssVariable(listHoverForeground),listHoverOutline:asCssVariable(activeContrastBorder),selectListBorder:asCssVariable(editorWidgetBorder),listBackground:void 0,listActiveSelectionBackground:void 0,listActiveSelectionForeground:void 0,listActiveSelectionIconForeground:void 0,listFocusAndSelectionBackground:void 0,listDropBackground:void 0,listInactiveSelectionBackground:void 0,listInactiveSelectionForeground:void 0,listInactiveFocusBackground:void 0,listInactiveFocusOutline:void 0,listSelectionOutline:void 0,listFocusAndSelectionForeground:void 0,listFocusAndSelectionOutline:void 0,listInactiveFocusForeground:void 0,tableColumnsBorder:void 0,tableOddRowsBackgroundColor:void 0,treeIndentGuidesStroke:void 0,treeInactiveIndentGuidesStroke:void 0},defaultMenuStyles={shadowColor:asCssVariable(widgetShadow),borderColor:asCssVariable(menuBorder),foregroundColor:asCssVariable(menuForeground),backgroundColor:asCssVariable(menuBackground),selectionForegroundColor:asCssVariable(menuSelectionForeground),selectionBackgroundColor:asCssVariable(menuSelectionBackground),selectionBorderColor:asCssVariable(menuSelectionBorder),separatorColor:asCssVariable(menuSeparatorBackground),scrollbarShadow:asCssVariable(scrollbarShadow),scrollbarSliderBackground:asCssVariable(scrollbarSliderBackground),scrollbarSliderHoverBackground:asCssVariable(scrollbarSliderHoverBackground),scrollbarSliderActiveBackground:asCssVariable(scrollbarSliderActiveBackground)};var __decorate$1R=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1N=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$1m=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};function createAndFillInContextMenuActions(o,e,t,i){const n=o.getActions(e),r=ModifierKeyEmitter.getInstance(),s=r.keyStatus.altKey||(isWindows||isLinux)&&r.keyStatus.shiftKey;fillInActions(n,t,s,a=>a==="navigation")}function createAndFillInActionBarActions(o,e,t,i,n,r){const s=o.getActions(e);fillInActions(s,t,!1,typeof i=="string"?l=>l===i:i,n,r)}function fillInActions(o,e,t,i=s=>s==="navigation",n=()=>!1,r=!1){let s,a;Array.isArray(e)?(s=e,a=e):(s=e.primary,a=e.secondary);const l=new Set;for(const[d,c]of o){let u;i(d)?(u=s,u.length>0&&r&&u.push(new Separator)):(u=a,u.length>0&&u.push(new Separator));for(let g of c){t&&(g=g instanceof MenuItemAction&&g.alt?g.alt:g);const f=u.push(g);g instanceof SubmenuAction&&l.add({group:d,action:g,index:f-1})}}for(const{group:d,action:c,index:u}of l){const g=i(d)?s:a,f=c.actions;n(c,d,g.length)&&g.splice(u,1,...f)}}let MenuEntryActionViewItem=class extends ActionViewItem{constructor(e,t,i,n,r,s,a,l){super(void 0,e,{icon:!!(e.class||e.item.icon),label:!e.class&&!e.item.icon,draggable:t==null?void 0:t.draggable,keybinding:t==null?void 0:t.keybinding,hoverDelegate:t==null?void 0:t.hoverDelegate}),this._keybindingService=i,this._notificationService=n,this._contextKeyService=r,this._themeService=s,this._contextMenuService=a,this._accessibilityService=l,this._wantsAltCommand=!1,this._itemClassDispose=this._register(new MutableDisposable),this._altKey=ModifierKeyEmitter.getInstance()}get _menuItemAction(){return this._action}get _commandAction(){return this._wantsAltCommand&&this._menuItemAction.alt||this._menuItemAction}onClick(e){return __awaiter$1m(this,void 0,void 0,function*(){e.preventDefault(),e.stopPropagation();try{yield this.actionRunner.run(this._commandAction,this._context)}catch(t){this._notificationService.error(t)}})}render(e){if(super.render(e),e.classList.add("menu-entry"),this.options.icon&&this._updateItemClass(this._menuItemAction.item),this._menuItemAction.alt){let t=!1;const i=()=>{var n;const r=!!(!((n=this._menuItemAction.alt)===null||n===void 0)&&n.enabled)&&(!this._accessibilityService.isMotionReduced()||t)&&(this._altKey.keyStatus.altKey||this._altKey.keyStatus.shiftKey&&t);r!==this._wantsAltCommand&&(this._wantsAltCommand=r,this.updateLabel(),this.updateTooltip(),this.updateClass())};this._register(this._altKey.event(i)),this._register(addDisposableListener(e,"mouseleave",n=>{t=!1,i()})),this._register(addDisposableListener(e,"mouseenter",n=>{t=!0,i()})),i()}}updateLabel(){this.options.label&&this.label&&(this.label.textContent=this._commandAction.label)}getTooltip(){var e;const t=this._keybindingService.lookupKeybinding(this._commandAction.id,this._contextKeyService),i=t&&t.getLabel(),n=this._commandAction.tooltip||this._commandAction.label;let r=i?localize("titleAndKb","{0} ({1})",n,i):n;if(!this._wantsAltCommand&&(!((e=this._menuItemAction.alt)===null||e===void 0)&&e.enabled)){const s=this._menuItemAction.alt.tooltip||this._menuItemAction.alt.label,a=this._keybindingService.lookupKeybinding(this._menuItemAction.alt.id,this._contextKeyService),l=a&&a.getLabel(),d=l?localize("titleAndKb","{0} ({1})",s,l):s;r=localize("titleAndKbAndAlt",`{0}
- [{1}] {2}`,r,UILabelProvider.modifierLabels[OS].altKey,d)}return r}updateClass(){this.options.icon&&(this._commandAction!==this._menuItemAction?this._menuItemAction.alt&&this._updateItemClass(this._menuItemAction.alt.item):this._updateItemClass(this._menuItemAction.item))}_updateItemClass(e){this._itemClassDispose.value=void 0;const{element:t,label:i}=this;if(!t||!i)return;const n=this._commandAction.checked&&isICommandActionToggleInfo(e.toggled)&&e.toggled.icon?e.toggled.icon:e.icon;if(n)if(ThemeIcon.isThemeIcon(n)){const r=ThemeIcon.asClassNameArray(n);i.classList.add(...r),this._itemClassDispose.value=toDisposable(()=>{i.classList.remove(...r)})}else{const r=isDark(this._themeService.getColorTheme().type)?asCSSUrl(n.dark):asCSSUrl(n.light),s=$$d("span");s.style.webkitMask=s.style.mask=`${r} no-repeat 50% 50%`,s.style.background="var(--vscode-icon-foreground)",s.style.display="inline-block",s.style.width="100%",s.style.height="100%",i.appendChild(s),i.classList.add("icon"),this._itemClassDispose.value=combinedDisposable(toDisposable(()=>{i.classList.remove("icon"),reset(i)}),this._themeService.onDidColorThemeChange(()=>{this.updateClass()}))}}};MenuEntryActionViewItem=__decorate$1R([__param$1N(2,IKeybindingService),__param$1N(3,INotificationService),__param$1N(4,IContextKeyService),__param$1N(5,IThemeService),__param$1N(6,IContextMenuService),__param$1N(7,IAccessibilityService)],MenuEntryActionViewItem);let SubmenuEntryActionViewItem=class extends DropdownMenuActionViewItem{constructor(e,t,i,n,r){var s,a,l;const d=Object.assign(Object.assign({},t),{menuAsChild:(s=t==null?void 0:t.menuAsChild)!==null&&s!==void 0?s:!1,classNames:(a=t==null?void 0:t.classNames)!==null&&a!==void 0?a:ThemeIcon.isThemeIcon(e.item.icon)?ThemeIcon.asClassName(e.item.icon):void 0,keybindingProvider:(l=t==null?void 0:t.keybindingProvider)!==null&&l!==void 0?l:c=>i.lookupKeybinding(c.id)});super(e,{getActions:()=>e.actions},n,d),this._keybindingService=i,this._contextMenuService=n,this._themeService=r}render(e){super.render(e),assertType(this.element),e.classList.add("menu-entry");const t=this._action,{icon:i}=t.item;if(i&&!ThemeIcon.isThemeIcon(i)){this.element.classList.add("icon");const n=()=>{this.element&&(this.element.style.backgroundImage=isDark(this._themeService.getColorTheme().type)?asCSSUrl(i.dark):asCSSUrl(i.light))};n(),this._register(this._themeService.onDidColorThemeChange(()=>{n()}))}}};SubmenuEntryActionViewItem=__decorate$1R([__param$1N(2,IKeybindingService),__param$1N(3,IContextMenuService),__param$1N(4,IThemeService)],SubmenuEntryActionViewItem);let DropdownWithDefaultActionViewItem=class extends BaseActionViewItem{constructor(e,t,i,n,r,s,a,l){var d,c,u;super(null,e),this._keybindingService=i,this._notificationService=n,this._contextMenuService=r,this._menuService=s,this._instaService=a,this._storageService=l,this._container=null,this._options=t,this._storageKey=`${e.item.submenu.id}_lastActionId`;let g;const f=t!=null&&t.persistLastActionId?l.get(this._storageKey,1):void 0;f&&(g=e.actions.find(m=>f===m.id)),g||(g=e.actions[0]),this._defaultAction=this._instaService.createInstance(MenuEntryActionViewItem,g,{keybinding:this._getDefaultActionKeybindingLabel(g)});const p=Object.assign(Object.assign({keybindingProvider:m=>this._keybindingService.lookupKeybinding(m.id)},t),{menuAsChild:(d=t==null?void 0:t.menuAsChild)!==null&&d!==void 0?d:!0,classNames:(c=t==null?void 0:t.classNames)!==null&&c!==void 0?c:["codicon","codicon-chevron-down"],actionRunner:(u=t==null?void 0:t.actionRunner)!==null&&u!==void 0?u:new ActionRunner});this._dropdown=new DropdownMenuActionViewItem(e,e.actions,this._contextMenuService,p),this._dropdown.actionRunner.onDidRun(m=>{m.action instanceof MenuItemAction&&this.update(m.action)})}update(e){var t;!((t=this._options)===null||t===void 0)&&t.persistLastActionId&&this._storageService.store(this._storageKey,e.id,1,1),this._defaultAction.dispose(),this._defaultAction=this._instaService.createInstance(MenuEntryActionViewItem,e,{keybinding:this._getDefaultActionKeybindingLabel(e)}),this._defaultAction.actionRunner=new class extends ActionRunner{runAction(i,n){return __awaiter$1m(this,void 0,void 0,function*(){yield i.run(void 0)})}},this._container&&this._defaultAction.render(prepend$1(this._container,$$d(".action-container")))}_getDefaultActionKeybindingLabel(e){var t;let i;if(!((t=this._options)===null||t===void 0)&&t.renderKeybindingWithDefaultActionLabel){const n=this._keybindingService.lookupKeybinding(e.id);n&&(i=`(${n.getLabel()})`)}return i}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=$$d(".action-container");this._defaultAction.render(append$1(this._container,t)),this._register(addDisposableListener(t,EventType$1.KEY_DOWN,n=>{const r=new StandardKeyboardEvent(n);r.equals(17)&&(this._defaultAction.element.tabIndex=-1,this._dropdown.focus(),r.stopPropagation())}));const i=$$d(".dropdown-action-container");this._dropdown.render(append$1(this._container,i)),this._register(addDisposableListener(i,EventType$1.KEY_DOWN,n=>{var r;const s=new StandardKeyboardEvent(n);s.equals(15)&&(this._defaultAction.element.tabIndex=0,this._dropdown.setFocusable(!1),(r=this._defaultAction.element)===null||r===void 0||r.focus(),s.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()}};DropdownWithDefaultActionViewItem=__decorate$1R([__param$1N(2,IKeybindingService),__param$1N(3,INotificationService),__param$1N(4,IContextMenuService),__param$1N(5,IMenuService),__param$1N(6,IInstantiationService),__param$1N(7,IStorageService)],DropdownWithDefaultActionViewItem);let SubmenuEntrySelectActionViewItem=class extends SelectActionViewItem{constructor(e,t){super(null,e,e.actions.map(i=>({text:i.id===Separator.ID?"─────────":i.label,isDisabled:!i.enabled})),0,t,defaultSelectBoxStyles,{ariaLabel:e.tooltip,optionsAsChildren:!0}),this.select(Math.max(0,e.actions.findIndex(i=>i.checked)))}render(e){super.render(e),e.style.borderColor=asCssVariable(selectBorder)}runAction(e,t){const i=this.action.actions[t];i&&this.actionRunner.run(i)}};SubmenuEntrySelectActionViewItem=__decorate$1R([__param$1N(1,IContextViewService)],SubmenuEntrySelectActionViewItem);function createActionViewItem(o,e,t){return e instanceof MenuItemAction?o.createInstance(MenuEntryActionViewItem,e,t):e instanceof SubmenuItemAction?e.item.isSelection?o.createInstance(SubmenuEntrySelectActionViewItem,e):e.item.rememberDefaultAction?o.createInstance(DropdownWithDefaultActionViewItem,e,Object.assign(Object.assign({},t),{persistLastActionId:!0})):o.createInstance(SubmenuEntryActionViewItem,e,t):void 0}var __awaiter$1l=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};class ActionBar extends Disposable{constructor(e,t={}){var i,n,r,s,a,l;super(),this._actionRunnerDisposables=this._register(new DisposableStore),this.viewItemDisposables=this._register(new DisposableMap),this.triggerKeyDown=!1,this.focusable=!0,this._onDidBlur=this._register(new Emitter$1),this.onDidBlur=this._onDidBlur.event,this._onDidCancel=this._register(new Emitter$1({onWillAddFirstListener:()=>this.cancelHasListener=!0})),this.onDidCancel=this._onDidCancel.event,this.cancelHasListener=!1,this._onDidRun=this._register(new Emitter$1),this.onDidRun=this._onDidRun.event,this._onWillRun=this._register(new Emitter$1),this.onWillRun=this._onWillRun.event,this.options=t,this._context=(i=t.context)!==null&&i!==void 0?i:null,this._orientation=(n=this.options.orientation)!==null&&n!==void 0?n:0,this._triggerKeys={keyDown:(s=(r=this.options.triggerKeys)===null||r===void 0?void 0:r.keyDown)!==null&&s!==void 0?s:!1,keys:(l=(a=this.options.triggerKeys)===null||a===void 0?void 0:a.keys)!==null&&l!==void 0?l:[3,10]},this.options.actionRunner?this._actionRunner=this.options.actionRunner:(this._actionRunner=new ActionRunner,this._actionRunnerDisposables.add(this._actionRunner)),this._actionRunnerDisposables.add(this._actionRunner.onDidRun(u=>this._onDidRun.fire(u))),this._actionRunnerDisposables.add(this._actionRunner.onWillRun(u=>this._onWillRun.fire(u))),this.viewItems=[],this.focusedItem=void 0,this.domNode=document.createElement("div"),this.domNode.className="monaco-action-bar",t.animated!==!1&&this.domNode.classList.add("animated");let d,c;switch(this._orientation){case 0:d=[15],c=[17];break;case 1:d=[16],c=[18],this.domNode.className+=" vertical";break}this._register(addDisposableListener(this.domNode,EventType$1.KEY_DOWN,u=>{const g=new StandardKeyboardEvent(u);let f=!0;const p=typeof this.focusedItem=="number"?this.viewItems[this.focusedItem]:void 0;d&&(g.equals(d[0])||g.equals(d[1]))?f=this.focusPrevious():c&&(g.equals(c[0])||g.equals(c[1]))?f=this.focusNext():g.equals(9)&&this.cancelHasListener?this._onDidCancel.fire():g.equals(14)?f=this.focusFirst():g.equals(13)?f=this.focusLast():g.equals(2)&&p instanceof BaseActionViewItem&&p.trapsArrowNavigation?f=this.focusNext():this.isTriggerKeyEvent(g)?this._triggerKeys.keyDown?this.doTrigger(g):this.triggerKeyDown=!0:f=!1,f&&(g.preventDefault(),g.stopPropagation())})),this._register(addDisposableListener(this.domNode,EventType$1.KEY_UP,u=>{const g=new StandardKeyboardEvent(u);this.isTriggerKeyEvent(g)?(!this._triggerKeys.keyDown&&this.triggerKeyDown&&(this.triggerKeyDown=!1,this.doTrigger(g)),g.preventDefault(),g.stopPropagation()):(g.equals(2)||g.equals(1026))&&this.updateFocusedItem()})),this.focusTracker=this._register(trackFocus(this.domNode)),this._register(this.focusTracker.onDidBlur(()=>{(getActiveElement()===this.domNode||!isAncestor$1(getActiveElement(),this.domNode))&&(this._onDidBlur.fire(),this.previouslyFocusedItem=this.focusedItem,this.focusedItem=void 0,this.triggerKeyDown=!1)})),this._register(this.focusTracker.onDidFocus(()=>this.updateFocusedItem())),this.actionsList=document.createElement("ul"),this.actionsList.className="actions-container",this.options.highlightToggledItems&&this.actionsList.classList.add("highlight-toggled"),this.actionsList.setAttribute("role",this.options.ariaRole||"toolbar"),this.options.ariaLabel&&this.actionsList.setAttribute("aria-label",this.options.ariaLabel),this.domNode.appendChild(this.actionsList),e.appendChild(this.domNode)}refreshRole(){this.length()>=2?this.actionsList.setAttribute("role",this.options.ariaRole||"toolbar"):this.actionsList.setAttribute("role","presentation")}setFocusable(e){if(this.focusable=e,this.focusable){const t=this.viewItems.find(i=>i instanceof BaseActionViewItem&&i.isEnabled());t instanceof BaseActionViewItem&&t.setFocusable(!0)}else this.viewItems.forEach(t=>{t instanceof BaseActionViewItem&&t.setFocusable(!1)})}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(isAncestor$1(getActiveElement(),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){this._actionRunner=e,this._actionRunnerDisposables.clear(),this._actionRunnerDisposables.add(this._actionRunner.onDidRun(t=>this._onDidRun.fire(t))),this._actionRunnerDisposables.add(this._actionRunner.onWillRun(t=>this._onWillRun.fire(t))),this.viewItems.forEach(t=>t.actionRunner=e)}getContainer(){return this.domNode}getAction(e){var t;if(typeof e=="number")return(t=this.viewItems[e])===null||t===void 0?void 0:t.action;if(e instanceof HTMLElement){for(;e.parentElement!==this.actionsList;){if(!e.parentElement)return;e=e.parentElement}for(let i=0;i<this.actionsList.childNodes.length;i++)if(this.actionsList.childNodes[i]===e)return this.viewItems[i].action}}push(e,t={}){const i=Array.isArray(e)?e:[e];let n=isNumber$1(t.index)?t.index:null;i.forEach(r=>{const s=document.createElement("li");s.className="action-item",s.setAttribute("role","presentation");let a;const l=Object.assign({hoverDelegate:this.options.hoverDelegate},t);this.options.actionViewItemProvider&&(a=this.options.actionViewItemProvider(r,l)),a||(a=new ActionViewItem(this.context,r,l)),this.options.allowContextMenu||this.viewItemDisposables.set(a,addDisposableListener(s,EventType$1.CONTEXT_MENU,d=>{EventHelper.stop(d,!0)})),a.actionRunner=this._actionRunner,a.setActionContext(this.context),a.render(s),this.focusable&&a instanceof BaseActionViewItem&&this.viewItems.length===0&&a.setFocusable(!0),n===null||n<0||n>=this.actionsList.children.length?(this.actionsList.appendChild(s),this.viewItems.push(a)):(this.actionsList.insertBefore(s,this.actionsList.children[n]),this.viewItems.splice(n,0,a),n++)}),typeof this.focusedItem=="number"&&this.focus(this.focusedItem),this.refreshRole()}clear(){this.isEmpty()||(this.viewItems=dispose(this.viewItems),this.viewItemDisposables.clearAndDisposeAll(),clearNode(this.actionsList),this.refreshRole())}length(){return this.viewItems.length}isEmpty(){return this.viewItems.length===0}focus(e){let t=!1,i;if(e===void 0?t=!0:typeof e=="number"?i=e:typeof e=="boolean"&&(t=e),t&&typeof this.focusedItem>"u"){const n=this.viewItems.findIndex(r=>r.isEnabled());this.focusedItem=n===-1?void 0:n,this.updateFocus(void 0,void 0,!0)}else i!==void 0&&(this.focusedItem=i),this.updateFocus(void 0,void 0,!0)}focusFirst(){return this.focusedItem=this.length()-1,this.focusNext(!0)}focusLast(){return this.focusedItem=0,this.focusPrevious(!0)}focusNext(e){if(typeof this.focusedItem>"u")this.focusedItem=this.viewItems.length-1;else if(this.viewItems.length<=1)return!1;const t=this.focusedItem;let i;do{if(!e&&this.options.preventLoopNavigation&&this.focusedItem+1>=this.viewItems.length)return this.focusedItem=t,!1;this.focusedItem=(this.focusedItem+1)%this.viewItems.length,i=this.viewItems[this.focusedItem]}while(this.focusedItem!==t&&(this.options.focusOnlyEnabledItems&&!i.isEnabled()||i.action.id===Separator.ID));return this.updateFocus(),!0}focusPrevious(e){if(typeof this.focusedItem>"u")this.focusedItem=0;else if(this.viewItems.length<=1)return!1;const t=this.focusedItem;let i;do{if(this.focusedItem=this.focusedItem-1,this.focusedItem<0){if(!e&&this.options.preventLoopNavigation)return this.focusedItem=t,!1;this.focusedItem=this.viewItems.length-1}i=this.viewItems[this.focusedItem]}while(this.focusedItem!==t&&(this.options.focusOnlyEnabledItems&&!i.isEnabled()||i.action.id===Separator.ID));return this.updateFocus(!0),!0}updateFocus(e,t,i=!1){var n;typeof this.focusedItem>"u"&&this.actionsList.focus({preventScroll:t}),this.previouslyFocusedItem!==void 0&&this.previouslyFocusedItem!==this.focusedItem&&((n=this.viewItems[this.previouslyFocusedItem])===null||n===void 0||n.blur());const r=this.focusedItem!==void 0&&this.viewItems[this.focusedItem];if(r){let s=!0;isFunction(r.focus)||(s=!1),this.options.focusOnlyEnabledItems&&isFunction(r.isEnabled)&&!r.isEnabled()&&(s=!1),r.action.id===Separator.ID&&(s=!1),s?(i||this.previouslyFocusedItem!==this.focusedItem)&&(r.focus(e),this.previouslyFocusedItem=this.focusedItem):(this.actionsList.focus({preventScroll:t}),this.previouslyFocusedItem=void 0)}}doTrigger(e){if(typeof this.focusedItem>"u")return;const t=this.viewItems[this.focusedItem];if(t instanceof BaseActionViewItem){const i=t._context===null||t._context===void 0?e:t._context;this.run(t._action,i)}}run(e,t){return __awaiter$1l(this,void 0,void 0,function*(){yield this._actionRunner.run(e,t)})}dispose(){this._context=void 0,this.viewItems=dispose(this.viewItems),this.getContainer().remove(),super.dispose()}}const MENU_MNEMONIC_REGEX=/\(&([^\s&])\)|(^|[^&])&([^\s&])/,MENU_ESCAPED_MNEMONIC_REGEX=/(&)?(&)([^\s&])/g;var Direction;(function(o){o[o.Right=0]="Right",o[o.Left=1]="Left"})(Direction||(Direction={}));class Menu extends ActionBar{constructor(e,t,i,n){e.classList.add("monaco-menu-container"),e.setAttribute("role","presentation");const r=document.createElement("div");r.classList.add("monaco-menu"),r.setAttribute("role","presentation"),super(r,{orientation:1,actionViewItemProvider:l=>this.doGetActionViewItem(l,i,s),context:i.context,actionRunner:i.actionRunner,ariaLabel:i.ariaLabel,ariaRole:"menu",focusOnlyEnabledItems:!0,triggerKeys:{keys:[3,...isMacintosh||isLinux?[10]:[]],keyDown:!0}}),this.menuStyles=n,this.menuElement=r,this.actionsList.tabIndex=0,this.menuDisposables=this._register(new DisposableStore),this.initializeOrUpdateStyleSheet(e,n),this._register(Gesture.addTarget(r)),addDisposableListener(r,EventType$1.KEY_DOWN,l=>{new StandardKeyboardEvent(l).equals(2)&&l.preventDefault()}),i.enableMnemonics&&this.menuDisposables.add(addDisposableListener(r,EventType$1.KEY_DOWN,l=>{const d=l.key.toLocaleLowerCase();if(this.mnemonics.has(d)){EventHelper.stop(l,!0);const c=this.mnemonics.get(d);if(c.length===1&&(c[0]instanceof SubmenuMenuActionViewItem&&c[0].container&&this.focusItemByElement(c[0].container),c[0].onClick(l)),c.length>1){const u=c.shift();u&&u.container&&(this.focusItemByElement(u.container),c.push(u)),this.mnemonics.set(d,c)}}})),isLinux&&this._register(addDisposableListener(r,EventType$1.KEY_DOWN,l=>{const d=new StandardKeyboardEvent(l);d.equals(14)||d.equals(11)?(this.focusedItem=this.viewItems.length-1,this.focusNext(),EventHelper.stop(l,!0)):(d.equals(13)||d.equals(12))&&(this.focusedItem=0,this.focusPrevious(),EventHelper.stop(l,!0))})),this._register(addDisposableListener(this.domNode,EventType$1.MOUSE_OUT,l=>{const d=l.relatedTarget;isAncestor$1(d,this.domNode)||(this.focusedItem=void 0,this.updateFocus(),l.stopPropagation())})),this._register(addDisposableListener(this.actionsList,EventType$1.MOUSE_OVER,l=>{let d=l.target;if(!(!d||!isAncestor$1(d,this.actionsList)||d===this.actionsList)){for(;d.parentElement!==this.actionsList&&d.parentElement!==null;)d=d.parentElement;if(d.classList.contains("action-item")){const c=this.focusedItem;this.setFocusedItem(d),c!==this.focusedItem&&this.updateFocus()}}})),this._register(Gesture.addTarget(this.actionsList)),this._register(addDisposableListener(this.actionsList,EventType.Tap,l=>{let d=l.initialTarget;if(!(!d||!isAncestor$1(d,this.actionsList)||d===this.actionsList)){for(;d.parentElement!==this.actionsList&&d.parentElement!==null;)d=d.parentElement;if(d.classList.contains("action-item")){const c=this.focusedItem;this.setFocusedItem(d),c!==this.focusedItem&&this.updateFocus()}}}));const s={parent:this};this.mnemonics=new Map,this.scrollableElement=this._register(new DomScrollableElement(r,{alwaysConsumeMouseWheel:!0,horizontal:2,vertical:3,verticalScrollbarSize:7,handleMouseWheel:!0,useShadows:!0}));const a=this.scrollableElement.getDomNode();a.style.position="",this.styleScrollElement(a,n),this._register(addDisposableListener(r,EventType.Change,l=>{EventHelper.stop(l,!0);const d=this.scrollableElement.getScrollPosition().scrollTop;this.scrollableElement.setScrollPosition({scrollTop:d-l.translationY})})),this._register(addDisposableListener(a,EventType$1.MOUSE_UP,l=>{l.preventDefault()})),r.style.maxHeight=`${Math.max(10,window.innerHeight-e.getBoundingClientRect().top-35)}px`,t=t.filter(l=>{var d;return!((d=i.submenuIds)===null||d===void 0)&&d.has(l.id)?(console.warn(`Found submenu cycle: ${l.id}`),!1):!0}),this.push(t,{icon:!0,label:!0,isMenu:!0}),e.appendChild(this.scrollableElement.getDomNode()),this.scrollableElement.scanDomNode(),this.viewItems.filter(l=>!(l instanceof MenuSeparatorActionViewItem)).forEach((l,d,c)=>{l.updatePositionInSet(d+1,c.length)})}initializeOrUpdateStyleSheet(e,t){this.styleSheet||(isInShadowDOM(e)?this.styleSheet=createStyleSheet(e):(Menu.globalStyleSheet||(Menu.globalStyleSheet=createStyleSheet()),this.styleSheet=Menu.globalStyleSheet)),this.styleSheet.textContent=getMenuWidgetCSS(t,isInShadowDOM(e))}styleScrollElement(e,t){var i,n;const r=(i=t.foregroundColor)!==null&&i!==void 0?i:"",s=(n=t.backgroundColor)!==null&&n!==void 0?n:"",a=t.borderColor?`1px solid ${t.borderColor}`:"",l="5px",d=t.shadowColor?`0 2px 8px ${t.shadowColor}`:"";e.style.outline=a,e.style.borderRadius=l,e.style.color=r,e.style.backgroundColor=s,e.style.boxShadow=d}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++){const i=this.actionsList.children[t];if(e===i){this.focusedItem=t;break}}}updateFocus(e){super.updateFocus(e,!0,!0),typeof this.focusedItem<"u"&&this.scrollableElement.setScrollPosition({scrollTop:Math.round(this.menuElement.scrollTop)})}doGetActionViewItem(e,t,i){if(e instanceof Separator)return new MenuSeparatorActionViewItem(t.context,e,{icon:!0},this.menuStyles);if(e instanceof SubmenuAction){const n=new SubmenuMenuActionViewItem(e,e.actions,i,Object.assign(Object.assign({},t),{submenuIds:new Set([...t.submenuIds||[],e.id])}),this.menuStyles);if(t.enableMnemonics){const r=n.getMnemonic();if(r&&n.isEnabled()){let s=[];this.mnemonics.has(r)&&(s=this.mnemonics.get(r)),s.push(n),this.mnemonics.set(r,s)}}return n}else{const n={enableMnemonics:t.enableMnemonics,useEventAsContext:t.useEventAsContext};if(t.getKeyBinding){const s=t.getKeyBinding(e);if(s){const a=s.getLabel();a&&(n.keybinding=a)}}const r=new BaseMenuActionViewItem(t.context,e,n,this.menuStyles);if(t.enableMnemonics){const s=r.getMnemonic();if(s&&r.isEnabled()){let a=[];this.mnemonics.has(s)&&(a=this.mnemonics.get(s)),a.push(r),this.mnemonics.set(s,a)}}return r}}}class BaseMenuActionViewItem extends BaseActionViewItem{constructor(e,t,i,n){if(i.isMenu=!0,super(t,t,i),this.menuStyle=n,this.options=i,this.options.icon=i.icon!==void 0?i.icon:!1,this.options.label=i.label!==void 0?i.label:!0,this.cssClass="",this.options.label&&i.enableMnemonics){const r=this.action.label;if(r){const s=MENU_MNEMONIC_REGEX.exec(r);s&&(this.mnemonic=(s[1]?s[1]:s[3]).toLocaleLowerCase())}}this.runOnceToEnableMouseUp=new RunOnceScheduler(()=>{this.element&&(this._register(addDisposableListener(this.element,EventType$1.MOUSE_UP,r=>{if(EventHelper.stop(r,!0),isFirefox){if(new StandardMouseEvent(r).rightButton)return;this.onClick(r)}else setTimeout(()=>{this.onClick(r)},0)})),this._register(addDisposableListener(this.element,EventType$1.CONTEXT_MENU,r=>{EventHelper.stop(r,!0)})))},100),this._register(this.runOnceToEnableMouseUp)}render(e){super.render(e),this.element&&(this.container=e,this.item=append$1(this.element,$$d("a.action-menu-item")),this._action.id===Separator.ID?this.item.setAttribute("role","presentation"):(this.item.setAttribute("role","menuitem"),this.mnemonic&&this.item.setAttribute("aria-keyshortcuts",`${this.mnemonic}`)),this.check=append$1(this.item,$$d("span.menu-item-check"+ThemeIcon.asCSSSelector(Codicon.menuSelection))),this.check.setAttribute("role","none"),this.label=append$1(this.item,$$d("span.action-label")),this.options.label&&this.options.keybinding&&(append$1(this.item,$$d("span.keybinding")).textContent=this.options.keybinding),this.runOnceToEnableMouseUp.schedule(),this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked(),this.applyStyle())}blur(){super.blur(),this.applyStyle()}focus(){var e;super.focus(),(e=this.item)===null||e===void 0||e.focus(),this.applyStyle()}updatePositionInSet(e,t){this.item&&(this.item.setAttribute("aria-posinset",`${e}`),this.item.setAttribute("aria-setsize",`${t}`))}updateLabel(){var e;if(this.label&&this.options.label){clearNode(this.label);let t=stripIcons(this.action.label);if(t){const i=cleanMnemonic(t);this.options.enableMnemonics||(t=i),this.label.setAttribute("aria-label",i.replace(/&&/g,"&"));const n=MENU_MNEMONIC_REGEX.exec(t);if(n){t=escape(t),MENU_ESCAPED_MNEMONIC_REGEX.lastIndex=0;let r=MENU_ESCAPED_MNEMONIC_REGEX.exec(t);for(;r&&r[1];)r=MENU_ESCAPED_MNEMONIC_REGEX.exec(t);const s=a=>a.replace(/&&/g,"&");r?this.label.append(ltrim(s(t.substr(0,r.index))," "),$$d("u",{"aria-hidden":"true"},r[3]),rtrim(s(t.substr(r.index+r[0].length))," ")):this.label.innerText=s(t).trim(),(e=this.item)===null||e===void 0||e.setAttribute("aria-keyshortcuts",(n[1]?n[1]:n[3]).toLocaleLowerCase())}else this.label.innerText=t.replace(/&&/g,"&").trim()}}}updateTooltip(){}updateClass(){this.cssClass&&this.item&&this.item.classList.remove(...this.cssClass.split(" ")),this.options.icon&&this.label?(this.cssClass=this.action.class||"",this.label.classList.add("icon"),this.cssClass&&this.label.classList.add(...this.cssClass.split(" ")),this.updateEnabled()):this.label&&this.label.classList.remove("icon")}updateEnabled(){this.action.enabled?(this.element&&(this.element.classList.remove("disabled"),this.element.removeAttribute("aria-disabled")),this.item&&(this.item.classList.remove("disabled"),this.item.removeAttribute("aria-disabled"),this.item.tabIndex=0)):(this.element&&(this.element.classList.add("disabled"),this.element.setAttribute("aria-disabled","true")),this.item&&(this.item.classList.add("disabled"),this.item.setAttribute("aria-disabled","true")))}updateChecked(){if(!this.item)return;const e=this.action.checked;this.item.classList.toggle("checked",!!e),e!==void 0?(this.item.setAttribute("role","menuitemcheckbox"),this.item.setAttribute("aria-checked",e?"true":"false")):(this.item.setAttribute("role","menuitem"),this.item.setAttribute("aria-checked",""))}getMnemonic(){return this.mnemonic}applyStyle(){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?`1px solid ${this.menuStyle.selectionBorderColor}`:"",r=e&&this.menuStyle.selectionBorderColor?"-1px":"";this.item&&(this.item.style.color=t??"",this.item.style.backgroundColor=i??"",this.item.style.outline=n,this.item.style.outlineOffset=r),this.check&&(this.check.style.color=t??"")}}class SubmenuMenuActionViewItem extends BaseMenuActionViewItem{constructor(e,t,i,n,r){super(e,e,n,r),this.submenuActions=t,this.parentData=i,this.submenuOptions=n,this.mysubmenu=null,this.submenuDisposables=this._register(new DisposableStore),this.mouseOver=!1,this.expandDirection=n&&n.expandDirection!==void 0?n.expandDirection:Direction.Right,this.showScheduler=new RunOnceScheduler(()=>{this.mouseOver&&(this.cleanupExistingSubmenu(!1),this.createSubmenu(!1))},250),this.hideScheduler=new RunOnceScheduler(()=>{this.element&&!isAncestor$1(getActiveElement(),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=append$1(this.item,$$d("span.submenu-indicator"+ThemeIcon.asCSSSelector(Codicon.menuSubmenu))),this.submenuIndicator.setAttribute("aria-hidden","true")),this._register(addDisposableListener(this.element,EventType$1.KEY_UP,t=>{const i=new StandardKeyboardEvent(t);(i.equals(17)||i.equals(3))&&(EventHelper.stop(t,!0),this.createSubmenu(!0))})),this._register(addDisposableListener(this.element,EventType$1.KEY_DOWN,t=>{const i=new StandardKeyboardEvent(t);getActiveElement()===this.item&&(i.equals(17)||i.equals(3))&&EventHelper.stop(t,!0)})),this._register(addDisposableListener(this.element,EventType$1.MOUSE_OVER,t=>{this.mouseOver||(this.mouseOver=!0,this.showScheduler.schedule())})),this._register(addDisposableListener(this.element,EventType$1.MOUSE_LEAVE,t=>{this.mouseOver=!1})),this._register(addDisposableListener(this.element,EventType$1.FOCUS_OUT,t=>{this.element&&!isAncestor$1(getActiveElement(),this.element)&&this.hideScheduler.schedule()})),this._register(this.parentData.parent.onScroll(()=>{this.parentData.submenu===this.mysubmenu&&(this.parentData.parent.focus(!1),this.cleanupExistingSubmenu(!0))})))}updateEnabled(){}onClick(e){EventHelper.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{}this.parentData.submenu=void 0,this.updateAriaExpanded("false"),this.submenuContainer&&(this.submenuDisposables.clear(),this.submenuContainer=void 0)}}calculateSubmenuMenuLayout(e,t,i,n){const r={top:0,left:0};return r.left=layout(e.width,t.width,{position:n===Direction.Right?0:1,offset:i.left,size:i.width}),r.left>=i.left&&r.left<i.left+i.width&&(i.left+10+t.width<=e.width&&(r.left=i.left+10),i.top+=10,i.height=0),r.top=layout(e.height,t.height,{position:0,offset:i.top,size:0}),r.top+t.height===i.top&&r.top+i.height+t.height<=e.height&&(r.top+=i.height),r}createSubmenu(e=!0){if(this.element)if(this.parentData.submenu)this.parentData.submenu.focus(!1);else{this.updateAriaExpanded("true"),this.submenuContainer=append$1(this.element,$$d("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 Menu(this.submenuContainer,this.submenuActions.length?this.submenuActions:[new EmptySubmenuAction],this.submenuOptions,this.menuStyle);const n=this.element.getBoundingClientRect(),r={top:n.top-i,left:n.left,height:n.height+2*i,width:n.width},s=this.submenuContainer.getBoundingClientRect(),{top:a,left:l}=this.calculateSubmenuMenuLayout(new Dimension(window.innerWidth,window.innerHeight),Dimension.lift(s),r,this.expandDirection);this.submenuContainer.style.left=`${l-s.left}px`,this.submenuContainer.style.top=`${a-s.top}px`,this.submenuDisposables.add(addDisposableListener(this.submenuContainer,EventType$1.KEY_UP,d=>{new StandardKeyboardEvent(d).equals(15)&&(EventHelper.stop(d,!0),this.parentData.parent.focus(),this.cleanupExistingSubmenu(!0))})),this.submenuDisposables.add(addDisposableListener(this.submenuContainer,EventType$1.KEY_DOWN,d=>{new StandardKeyboardEvent(d).equals(15)&&EventHelper.stop(d,!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&&((t=this.item)===null||t===void 0||t.setAttribute("aria-expanded",e))}applyStyle(){super.applyStyle();const t=this.element&&this.element.classList.contains("focused")&&this.menuStyle.selectionForegroundColor?this.menuStyle.selectionForegroundColor:this.menuStyle.foregroundColor;this.submenuIndicator&&(this.submenuIndicator.style.color=t??"")}dispose(){super.dispose(),this.hideScheduler.dispose(),this.mysubmenu&&(this.mysubmenu.dispose(),this.mysubmenu=null),this.submenuContainer&&(this.submenuContainer=void 0)}}class MenuSeparatorActionViewItem extends ActionViewItem{constructor(e,t,i,n){super(e,t,i),this.menuStyles=n}render(e){super.render(e),this.label&&(this.label.style.borderBottomColor=this.menuStyles.separatorColor?`${this.menuStyles.separatorColor}`:"")}}function cleanMnemonic(o){const e=MENU_MNEMONIC_REGEX,t=e.exec(o);if(!t)return o;const i=!t[1];return o.replace(e,i?"$2$3":"").trim()}function formatRule(o){const e=getCodiconFontCharacters()[o.id];return`.codicon-${o.id}:before { content: '\\${e.toString(16)}'; }`}function getMenuWidgetCSS(o,e){let t=`
- .monaco-menu {
- font-size: 13px;
- border-radius: 5px;
- min-width: 160px;
- }
- ${formatRule(Codicon.menuSelection)}
- ${formatRule(Codicon.menuSubmenu)}
- .monaco-menu .monaco-action-bar {
- text-align: right;
- overflow: hidden;
- white-space: nowrap;
- }
- .monaco-menu .monaco-action-bar .actions-container {
- display: flex;
- margin: 0 auto;
- padding: 0;
- width: 100%;
- justify-content: flex-end;
- }
- .monaco-menu .monaco-action-bar.vertical .actions-container {
- display: inline-block;
- }
- .monaco-menu .monaco-action-bar.reverse .actions-container {
- flex-direction: row-reverse;
- }
- .monaco-menu .monaco-action-bar .action-item {
- cursor: pointer;
- display: inline-block;
- transition: transform 50ms ease;
- position: relative; /* DO NOT REMOVE - this is the key to preventing the ghosting icon bug in Chrome 42 */
- }
- .monaco-menu .monaco-action-bar .action-item.disabled {
- cursor: default;
- }
- .monaco-menu .monaco-action-bar.animated .action-item.active {
- transform: scale(1.272019649, 1.272019649); /* 1.272019649 = √φ */
- }
- .monaco-menu .monaco-action-bar .action-item .icon,
- .monaco-menu .monaco-action-bar .action-item .codicon {
- display: inline-block;
- }
- .monaco-menu .monaco-action-bar .action-item .codicon {
- display: flex;
- align-items: center;
- }
- .monaco-menu .monaco-action-bar .action-label {
- font-size: 11px;
- margin-right: 4px;
- }
- .monaco-menu .monaco-action-bar .action-item.disabled .action-label,
- .monaco-menu .monaco-action-bar .action-item.disabled .action-label:hover {
- color: var(--vscode-disabledForeground);
- }
- /* Vertical actions */
- .monaco-menu .monaco-action-bar.vertical {
- text-align: left;
- }
- .monaco-menu .monaco-action-bar.vertical .action-item {
- display: block;
- }
- .monaco-menu .monaco-action-bar.vertical .action-label.separator {
- display: block;
- border-bottom: 1px solid var(--vscode-menu-separatorBackground);
- padding-top: 1px;
- padding: 30px;
- }
- .monaco-menu .secondary-actions .monaco-action-bar .action-label {
- margin-left: 6px;
- }
- /* Action Items */
- .monaco-menu .monaco-action-bar .action-item.select-container {
- overflow: hidden; /* somehow the dropdown overflows its container, we prevent it here to not push */
- flex: 1;
- max-width: 170px;
- min-width: 60px;
- display: flex;
- align-items: center;
- justify-content: center;
- margin-right: 10px;
- }
- .monaco-menu .monaco-action-bar.vertical {
- margin-left: 0;
- overflow: visible;
- }
- .monaco-menu .monaco-action-bar.vertical .actions-container {
- display: block;
- }
- .monaco-menu .monaco-action-bar.vertical .action-item {
- padding: 0;
- transform: none;
- display: flex;
- }
- .monaco-menu .monaco-action-bar.vertical .action-item.active {
- transform: none;
- }
- .monaco-menu .monaco-action-bar.vertical .action-menu-item {
- flex: 1 1 auto;
- display: flex;
- height: 2em;
- align-items: center;
- position: relative;
- margin: 0 4px;
- border-radius: 4px;
- }
- .monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .keybinding,
- .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .keybinding {
- opacity: unset;
- }
- .monaco-menu .monaco-action-bar.vertical .action-label {
- flex: 1 1 auto;
- text-decoration: none;
- padding: 0 1em;
- background: none;
- font-size: 12px;
- line-height: 1;
- }
- .monaco-menu .monaco-action-bar.vertical .keybinding,
- .monaco-menu .monaco-action-bar.vertical .submenu-indicator {
- display: inline-block;
- flex: 2 1 auto;
- padding: 0 1em;
- text-align: right;
- font-size: 12px;
- line-height: 1;
- }
- .monaco-menu .monaco-action-bar.vertical .submenu-indicator {
- height: 100%;
- }
- .monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon {
- font-size: 16px !important;
- display: flex;
- align-items: center;
- }
- .monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon::before {
- margin-left: auto;
- margin-right: -20px;
- }
- .monaco-menu .monaco-action-bar.vertical .action-item.disabled .keybinding,
- .monaco-menu .monaco-action-bar.vertical .action-item.disabled .submenu-indicator {
- opacity: 0.4;
- }
- .monaco-menu .monaco-action-bar.vertical .action-label:not(.separator) {
- display: inline-block;
- box-sizing: border-box;
- margin: 0;
- }
- .monaco-menu .monaco-action-bar.vertical .action-item {
- position: static;
- overflow: visible;
- }
- .monaco-menu .monaco-action-bar.vertical .action-item .monaco-submenu {
- position: absolute;
- }
- .monaco-menu .monaco-action-bar.vertical .action-label.separator {
- width: 100%;
- height: 0px !important;
- opacity: 1;
- }
- .monaco-menu .monaco-action-bar.vertical .action-label.separator.text {
- padding: 0.7em 1em 0.1em 1em;
- font-weight: bold;
- opacity: 1;
- }
- .monaco-menu .monaco-action-bar.vertical .action-label:hover {
- color: inherit;
- }
- .monaco-menu .monaco-action-bar.vertical .menu-item-check {
- position: absolute;
- visibility: hidden;
- width: 1em;
- height: 100%;
- }
- .monaco-menu .monaco-action-bar.vertical .action-menu-item.checked .menu-item-check {
- visibility: visible;
- display: flex;
- align-items: center;
- justify-content: center;
- }
- /* Context Menu */
- .context-view.monaco-menu-container {
- outline: 0;
- border: none;
- animation: fadeIn 0.083s linear;
- -webkit-app-region: no-drag;
- }
- .context-view.monaco-menu-container :focus,
- .context-view.monaco-menu-container .monaco-action-bar.vertical:focus,
- .context-view.monaco-menu-container .monaco-action-bar.vertical :focus {
- outline: 0;
- }
- .hc-black .context-view.monaco-menu-container,
- .hc-light .context-view.monaco-menu-container,
- :host-context(.hc-black) .context-view.monaco-menu-container,
- :host-context(.hc-light) .context-view.monaco-menu-container {
- box-shadow: none;
- }
- .hc-black .monaco-menu .monaco-action-bar.vertical .action-item.focused,
- .hc-light .monaco-menu .monaco-action-bar.vertical .action-item.focused,
- :host-context(.hc-black) .monaco-menu .monaco-action-bar.vertical .action-item.focused,
- :host-context(.hc-light) .monaco-menu .monaco-action-bar.vertical .action-item.focused {
- background: none;
- }
- /* Vertical Action Bar Styles */
- .monaco-menu .monaco-action-bar.vertical {
- padding: 4px 0;
- }
- .monaco-menu .monaco-action-bar.vertical .action-menu-item {
- height: 2em;
- }
- .monaco-menu .monaco-action-bar.vertical .action-label:not(.separator),
- .monaco-menu .monaco-action-bar.vertical .keybinding {
- font-size: inherit;
- padding: 0 2em;
- }
- .monaco-menu .monaco-action-bar.vertical .menu-item-check {
- font-size: inherit;
- width: 2em;
- }
- .monaco-menu .monaco-action-bar.vertical .action-label.separator {
- font-size: inherit;
- margin: 5px 0 !important;
- padding: 0;
- border-radius: 0;
- }
- .linux .monaco-menu .monaco-action-bar.vertical .action-label.separator,
- :host-context(.linux) .monaco-menu .monaco-action-bar.vertical .action-label.separator {
- margin-left: 0;
- margin-right: 0;
- }
- .monaco-menu .monaco-action-bar.vertical .submenu-indicator {
- font-size: 60%;
- padding: 0 1.8em;
- }
- .linux .monaco-menu .monaco-action-bar.vertical .submenu-indicator,
- :host-context(.linux) .monaco-menu .monaco-action-bar.vertical .submenu-indicator {
- height: 100%;
- mask-size: 10px 10px;
- -webkit-mask-size: 10px 10px;
- }
- .monaco-menu .action-item {
- cursor: default;
- }`;if(e){t+=`
- /* Arrows */
- .monaco-scrollable-element > .scrollbar > .scra {
- cursor: pointer;
- font-size: 11px !important;
- }
- .monaco-scrollable-element > .visible {
- opacity: 1;
- /* Background rule added for IE9 - to allow clicks on dom node */
- background:rgba(0,0,0,0);
- transition: opacity 100ms linear;
- }
- .monaco-scrollable-element > .invisible {
- opacity: 0;
- pointer-events: none;
- }
- .monaco-scrollable-element > .invisible.fade {
- transition: opacity 800ms linear;
- }
- /* Scrollable Content Inset Shadow */
- .monaco-scrollable-element > .shadow {
- position: absolute;
- display: none;
- }
- .monaco-scrollable-element > .shadow.top {
- display: block;
- top: 0;
- left: 3px;
- height: 3px;
- width: 100%;
- }
- .monaco-scrollable-element > .shadow.left {
- display: block;
- top: 3px;
- left: 0;
- height: 100%;
- width: 3px;
- }
- .monaco-scrollable-element > .shadow.top-left-corner {
- display: block;
- top: 0;
- left: 0;
- height: 3px;
- width: 3px;
- }
- `;const i=o.scrollbarShadow;i&&(t+=`
- .monaco-scrollable-element > .shadow.top {
- box-shadow: ${i} 0 6px 6px -6px inset;
- }
- .monaco-scrollable-element > .shadow.left {
- box-shadow: ${i} 6px 0 6px -6px inset;
- }
- .monaco-scrollable-element > .shadow.top.left {
- box-shadow: ${i} 6px 6px 6px -6px inset;
- }
- `);const n=o.scrollbarSliderBackground;n&&(t+=`
- .monaco-scrollable-element > .scrollbar > .slider {
- background: ${n};
- }
- `);const r=o.scrollbarSliderHoverBackground;r&&(t+=`
- .monaco-scrollable-element > .scrollbar > .slider:hover {
- background: ${r};
- }
- `);const s=o.scrollbarSliderActiveBackground;s&&(t+=`
- .monaco-scrollable-element > .scrollbar > .slider.active {
- background: ${s};
- }
- `)}return t}class ContextMenuHandler{constructor(e,t,i,n){this.contextViewService=e,this.telemetryService=t,this.notificationService=i,this.keybindingService=n,this.focusToReturn=null,this.lastContainer=null,this.block=null,this.blockDisposable=null,this.options={blockMouse:!0}}configure(e){this.options=e}showContextMenu(e){const t=e.getActions();if(!t.length)return;this.focusToReturn=document.activeElement;let i;const n=isHTMLElement(e.domForShadowRoot)?e.domForShadowRoot:void 0;this.contextViewService.showContextView({getAnchor:()=>e.getAnchor(),canRelayout:!1,anchorAlignment:e.anchorAlignment,anchorAxisAlignment:e.anchorAxisAlignment,render:r=>{var s;this.lastContainer=r;const a=e.getMenuClassName?e.getMenuClassName():"";a&&(r.className+=" "+a),this.options.blockMouse&&(this.block=r.appendChild($$d(".context-view-block")),this.block.style.position="fixed",this.block.style.cursor="initial",this.block.style.left="0",this.block.style.top="0",this.block.style.width="100%",this.block.style.height="100%",this.block.style.zIndex="-1",(s=this.blockDisposable)===null||s===void 0||s.dispose(),this.blockDisposable=addDisposableListener(this.block,EventType$1.MOUSE_DOWN,c=>c.stopPropagation()));const l=new DisposableStore,d=e.actionRunner||new ActionRunner;return d.onWillRun(c=>this.onActionRun(c,!e.skipTelemetry),this,l),d.onDidRun(this.onDidActionRun,this,l),i=new Menu(r,t,{actionViewItemProvider:e.getActionViewItem,context:e.getActionsContext?e.getActionsContext():null,actionRunner:d,getKeyBinding:e.getKeyBinding?e.getKeyBinding:c=>this.keybindingService.lookupKeybinding(c.id)},defaultMenuStyles),i.onDidCancel(()=>this.contextViewService.hideContextView(!0),null,l),i.onDidBlur(()=>this.contextViewService.hideContextView(!0),null,l),l.add(addDisposableListener(window,EventType$1.BLUR,()=>this.contextViewService.hideContextView(!0))),l.add(addDisposableListener(window,EventType$1.MOUSE_DOWN,c=>{if(c.defaultPrevented)return;const u=new StandardMouseEvent(c);let g=u.target;if(!u.rightButton){for(;g;){if(g===r)return;g=g.parentElement}this.contextViewService.hideContextView(!0)}})),combinedDisposable(l,i)},focus:()=>{i==null||i.focus(!!e.autoSelectFirstItem)},onHide:r=>{var s,a,l;(s=e.onHide)===null||s===void 0||s.call(e,!!r),this.block&&(this.block.remove(),this.block=null),(a=this.blockDisposable)===null||a===void 0||a.dispose(),this.blockDisposable=null,this.lastContainer&&(getActiveElement()===this.lastContainer||isAncestor$1(getActiveElement(),this.lastContainer))&&((l=this.focusToReturn)===null||l===void 0||l.focus()),this.lastContainer=null}},n,!!n)}onActionRun(e,t){t&&this.telemetryService.publicLog2("workbenchActionExecuted",{id:e.action.id,from:"contextMenu"}),this.contextViewService.hideContextView(!1)}onDidActionRun(e){e.error&&!isCancellationError(e.error)&&this.notificationService.error(e.error)}}var __decorate$1Q=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1M=function(o,e){return function(t,i){e(t,i,o)}};let ContextMenuService=class extends Disposable{get contextMenuHandler(){return this._contextMenuHandler||(this._contextMenuHandler=new ContextMenuHandler(this.contextViewService,this.telemetryService,this.notificationService,this.keybindingService)),this._contextMenuHandler}constructor(e,t,i,n,r,s){super(),this.telemetryService=e,this.notificationService=t,this.contextViewService=i,this.keybindingService=n,this.menuService=r,this.contextKeyService=s,this._contextMenuHandler=void 0,this._onDidShowContextMenu=this._store.add(new Emitter$1),this._onDidHideContextMenu=this._store.add(new Emitter$1)}configure(e){this.contextMenuHandler.configure(e)}showContextMenu(e){e=ContextMenuMenuDelegate.transform(e,this.menuService,this.contextKeyService),this.contextMenuHandler.showContextMenu(Object.assign(Object.assign({},e),{onHide:t=>{var i;(i=e.onHide)===null||i===void 0||i.call(e,t),this._onDidHideContextMenu.fire()}})),ModifierKeyEmitter.getInstance().resetKeyStatus(),this._onDidShowContextMenu.fire()}};ContextMenuService=__decorate$1Q([__param$1M(0,ITelemetryService),__param$1M(1,INotificationService),__param$1M(2,IContextViewService),__param$1M(3,IKeybindingService),__param$1M(4,IMenuService),__param$1M(5,IContextKeyService)],ContextMenuService);var ContextMenuMenuDelegate;(function(o){function e(i){return i&&i.menuId instanceof MenuId}function t(i,n,r){if(!e(i))return i;const{menuId:s,menuActionOptions:a,contextKeyService:l}=i;return Object.assign(Object.assign({},i),{getActions:()=>{const d=[];if(s){const c=n.createMenu(s,l??r);createAndFillInContextMenuActions(c,a,d),c.dispose()}return i.getActions?Separator.join(i.getActions(),d):d}})}o.transform=t})(ContextMenuMenuDelegate||(ContextMenuMenuDelegate={}));var EditorOpenSource;(function(o){o[o.API=0]="API",o[o.USER=1]="USER"})(EditorOpenSource||(EditorOpenSource={}));var __decorate$1P=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1L=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$1k=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};let CommandOpener=class{constructor(e){this._commandService=e}open(e,t){return __awaiter$1k(this,void 0,void 0,function*(){if(!matchesScheme(e,Schemas.command))return!1;if(!(t!=null&&t.allowCommands)||(typeof e=="string"&&(e=URI.parse(e)),Array.isArray(t.allowCommands)&&!t.allowCommands.includes(e.path)))return!0;let i=[];try{i=parse(decodeURIComponent(e.query))}catch{try{i=parse(e.query)}catch{}}return Array.isArray(i)||(i=[i]),yield this._commandService.executeCommand(e.path,...i),!0})}};CommandOpener=__decorate$1P([__param$1L(0,ICommandService)],CommandOpener);let EditorOpener=class{constructor(e){this._editorService=e}open(e,t){return __awaiter$1k(this,void 0,void 0,function*(){typeof e=="string"&&(e=URI.parse(e));const{selection:i,uri:n}=extractSelection(e);return e=n,e.scheme===Schemas.file&&(e=normalizePath(e)),yield this._editorService.openCodeEditor({resource:e,options:Object.assign({selection:i,source:t!=null&&t.fromUserGesture?EditorOpenSource.USER:EditorOpenSource.API},t==null?void 0:t.editorOptions)},this._editorService.getFocusedCodeEditor(),t==null?void 0:t.openToSide),!0})}};EditorOpener=__decorate$1P([__param$1L(0,ICodeEditorService)],EditorOpener);let OpenerService=class{constructor(e,t){this._openers=new LinkedList,this._validators=new LinkedList,this._resolvers=new LinkedList,this._resolvedUriTargets=new ResourceMap(i=>i.with({path:null,fragment:null,query:null}).toString()),this._externalOpeners=new LinkedList,this._defaultExternalOpener={openExternal:i=>__awaiter$1k(this,void 0,void 0,function*(){return matchesSomeScheme(i,Schemas.http,Schemas.https)?windowOpenNoOpener(i):window.location.href=i,!0})},this._openers.push({open:(i,n)=>__awaiter$1k(this,void 0,void 0,function*(){return n!=null&&n.openExternal||matchesSomeScheme(i,Schemas.mailto,Schemas.http,Schemas.https,Schemas.vsls)?(yield this._doOpenExternal(i,n),!0):!1})}),this._openers.push(new CommandOpener(t)),this._openers.push(new EditorOpener(e))}registerOpener(e){return{dispose:this._openers.unshift(e)}}open(e,t){var i;return __awaiter$1k(this,void 0,void 0,function*(){const n=typeof e=="string"?URI.parse(e):e,r=(i=this._resolvedUriTargets.get(n))!==null&&i!==void 0?i:e;for(const s of this._validators)if(!(yield s.shouldOpen(r,t)))return!1;for(const s of this._openers)if(yield s.open(e,t))return!0;return!1})}resolveExternalUri(e,t){return __awaiter$1k(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{}throw new Error("Could not resolve external URI: "+e.toString())})}_doOpenExternal(e,t){return __awaiter$1k(this,void 0,void 0,function*(){const i=typeof e=="string"?URI.parse(e):e;let n;try{n=(yield this.resolveExternalUri(i,t)).resolved}catch{n=i}let r;if(typeof e=="string"&&i.toString()===n.toString()?r=e:r=encodeURI(n.toString(!0)),t!=null&&t.allowContributedOpeners){const s=typeof(t==null?void 0:t.allowContributedOpeners)=="string"?t==null?void 0:t.allowContributedOpeners:void 0;for(const a of this._externalOpeners)if(yield a.openExternal(r,{sourceUri:i,preferredOpenerId:s},CancellationToken.None))return!0}return this._defaultExternalOpener.openExternal(r,{sourceUri:i},CancellationToken.None)})}dispose(){this._validators.clear()}};OpenerService=__decorate$1P([__param$1L(0,ICodeEditorService),__param$1L(1,ICommandService)],OpenerService);const IEditorWorkerService=createDecorator("editorWorkerService");var MarkerSeverity$1;(function(o){o[o.Hint=1]="Hint",o[o.Info=2]="Info",o[o.Warning=4]="Warning",o[o.Error=8]="Error"})(MarkerSeverity$1||(MarkerSeverity$1={}));(function(o){function e(s,a){return a-s}o.compare=e;const t=Object.create(null);t[o.Error]=localize("sev.error","Error"),t[o.Warning]=localize("sev.warning","Warning"),t[o.Info]=localize("sev.info","Info");function i(s){return t[s]||""}o.toString=i;function n(s){switch(s){case Severity$2.Error:return o.Error;case Severity$2.Warning:return o.Warning;case Severity$2.Info:return o.Info;case Severity$2.Ignore:return o.Hint}}o.fromSeverity=n;function r(s){switch(s){case o.Error:return Severity$2.Error;case o.Warning:return Severity$2.Warning;case o.Info:return Severity$2.Info;case o.Hint:return Severity$2.Ignore}}o.toSeverity=r})(MarkerSeverity$1||(MarkerSeverity$1={}));var IMarkerData;(function(o){const e="";function t(n){return i(n,!0)}o.makeKey=t;function i(n,r){const s=[e];return n.source?s.push(n.source.replace("¦","\\¦")):s.push(e),n.code?typeof n.code=="string"?s.push(n.code.replace("¦","\\¦")):s.push(n.code.value.replace("¦","\\¦")):s.push(e),n.severity!==void 0&&n.severity!==null?s.push(MarkerSeverity$1.toString(n.severity)):s.push(e),n.message&&r?s.push(n.message.replace("¦","\\¦")):s.push(e),n.startLineNumber!==void 0&&n.startLineNumber!==null?s.push(n.startLineNumber.toString()):s.push(e),n.startColumn!==void 0&&n.startColumn!==null?s.push(n.startColumn.toString()):s.push(e),n.endLineNumber!==void 0&&n.endLineNumber!==null?s.push(n.endLineNumber.toString()):s.push(e),n.endColumn!==void 0&&n.endColumn!==null?s.push(n.endColumn.toString()):s.push(e),s.push(e),s.join("¦")}o.makeKeyOptionalMessage=i})(IMarkerData||(IMarkerData={}));const IMarkerService=createDecorator("markerService");function diffSets(o,e){const t=[],i=[];for(const n of o)e.has(n)||t.push(n);for(const n of e)o.has(n)||i.push(n);return{removed:t,added:i}}function intersection(o,e){const t=new Set;for(const i of e)o.has(i)&&t.add(i);return t}var __decorate$1O=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1K=function(o,e){return function(t,i){e(t,i,o)}};let MarkerDecorationsService=class extends Disposable{constructor(e,t){super(),this._markerService=t,this._onDidChangeMarker=this._register(new Emitter$1),this._markerDecorations=new ResourceMap,e.getModels().forEach(i=>this._onModelAdded(i)),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(t=>{const i=this._markerDecorations.get(t);i&&this._updateDecorations(i)})}_onModelAdded(e){const t=new MarkerDecorations(e);this._markerDecorations.set(e.uri,t),this._updateDecorations(t)}_onModelRemoved(e){var t;const i=this._markerDecorations.get(e.uri);i&&(i.dispose(),this._markerDecorations.delete(e.uri)),(e.uri.scheme===Schemas.inMemory||e.uri.scheme===Schemas.internal||e.uri.scheme===Schemas.vscode)&&((t=this._markerService)===null||t===void 0||t.read({resource:e.uri}).map(n=>n.owner).forEach(n=>this._markerService.remove(n,[e.uri])))}_updateDecorations(e){const t=this._markerService.read({resource:e.model.uri,take:500});e.update(t)&&this._onDidChangeMarker.fire(e.model)}};MarkerDecorationsService=__decorate$1O([__param$1K(0,IModelService),__param$1K(1,IMarkerService)],MarkerDecorationsService);class MarkerDecorations extends Disposable{constructor(e){super(),this.model=e,this._map=new BidirectionalMap,this._register(toDisposable(()=>{this.model.deltaDecorations([...this._map.values()],[]),this._map.clear()}))}update(e){const{added:t,removed:i}=diffSets(new Set(this._map.keys()),new Set(e));if(t.length===0&&i.length===0)return!1;const n=i.map(a=>this._map.get(a)),r=t.map(a=>({range:this._createDecorationRange(this.model,a),options:this._createDecorationOption(a)})),s=this.model.deltaDecorations(n,r);for(const a of i)this._map.delete(a);for(let a=0;a<s.length;a++)this._map.set(t[a],s[a]);return!0}getMarker(e){return this._map.getKey(e.id)}_createDecorationRange(e,t){let i=Range$2.lift(t);if(t.severity===MarkerSeverity$1.Hint&&!this._hasMarkerTag(t,1)&&!this._hasMarkerTag(t,2)&&(i=i.setEndPosition(i.startLineNumber,i.startColumn+2)),i=e.validateRange(i),i.isEmpty()){const n=e.getLineLastNonWhitespaceColumn(i.startLineNumber)||e.getLineMaxColumn(i.startLineNumber);if(n===1||i.endColumn>=n)return i;const r=e.getWordAtPosition(i.getStartPosition());r&&(i=new Range$2(i.startLineNumber,r.startColumn,i.endLineNumber,r.endColumn))}else if(t.endColumn===Number.MAX_VALUE&&t.startColumn===1&&i.startLineNumber===i.endLineNumber){const n=e.getLineFirstNonWhitespaceColumn(t.startLineNumber);n<i.endColumn&&(i=new Range$2(i.startLineNumber,n,i.endLineNumber,i.endColumn),t.startColumn=n)}return i}_createDecorationOption(e){let t,i,n,r,s;switch(e.severity){case MarkerSeverity$1.Hint:this._hasMarkerTag(e,2)?t=void 0:this._hasMarkerTag(e,1)?t="squiggly-unnecessary":t="squiggly-hint",n=0;break;case MarkerSeverity$1.Info:t="squiggly-info",i=themeColorFromId(overviewRulerInfo),n=10,s={color:themeColorFromId(minimapInfo),position:MinimapPosition.Inline};break;case MarkerSeverity$1.Warning:t="squiggly-warning",i=themeColorFromId(overviewRulerWarning),n=20,s={color:themeColorFromId(minimapWarning),position:MinimapPosition.Inline};break;case MarkerSeverity$1.Error:default:t="squiggly-error",i=themeColorFromId(overviewRulerError),n=30,s={color:themeColorFromId(minimapError),position:MinimapPosition.Inline};break}return e.tags&&(e.tags.indexOf(1)!==-1&&(r="squiggly-inline-unnecessary"),e.tags.indexOf(2)!==-1&&(r="squiggly-inline-deprecated")),{description:"marker-decoration",stickiness:1,className:t,showIfCollapsed:!0,overviewRuler:{color:i,position:OverviewRulerLane.Right},minimap:s,zIndex:n,inlineClassName:r}}_hasMarkerTag(e,t){return e.tags?e.tags.indexOf(t)>=0:!1}}var __decorate$1N=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1J=function(o,e){return function(t,i){e(t,i,o)}},ModelService_1;function MODEL_ID(o){return o.toString()}class ModelData{constructor(e,t,i){this.model=e,this._modelEventListeners=new DisposableStore,this.model=e,this._modelEventListeners.add(e.onWillDispose(()=>t(e))),this._modelEventListeners.add(e.onDidChangeLanguage(n=>i(e,n)))}dispose(){this._modelEventListeners.dispose()}}const DEFAULT_EOL=isLinux||isMacintosh?1:2;class DisposedModelInfo{constructor(e,t,i,n,r,s,a,l){this.uri=e,this.initialUndoRedoSnapshot=t,this.time=i,this.sharesUndoRedoStack=n,this.heapSize=r,this.sha1=s,this.versionId=a,this.alternativeVersionId=l}}let ModelService=ModelService_1=class extends Disposable{constructor(e,t,i,n,r){super(),this._configurationService=e,this._resourcePropertiesService=t,this._undoRedoService=i,this._languageService=n,this._languageConfigurationService=r,this._onModelAdded=this._register(new Emitter$1),this.onModelAdded=this._onModelAdded.event,this._onModelRemoved=this._register(new Emitter$1),this.onModelRemoved=this._onModelRemoved.event,this._onModelModeChanged=this._register(new Emitter$1),this.onModelLanguageChanged=this._onModelModeChanged.event,this._modelCreationOptionsByLanguageAndResource=Object.create(null),this._models={},this._disposedModels=new Map,this._disposedModelsHeapSize=0,this._register(this._configurationService.onDidChangeConfiguration(s=>this._updateModelOptions(s))),this._updateModelOptions(void 0)}static _readModelOptions(e,t){var i;let n=EDITOR_MODEL_DEFAULTS.tabSize;if(e.editor&&typeof e.editor.tabSize<"u"){const f=parseInt(e.editor.tabSize,10);isNaN(f)||(n=f),n<1&&(n=1)}let r="tabSize";if(e.editor&&typeof e.editor.indentSize<"u"&&e.editor.indentSize!=="tabSize"){const f=parseInt(e.editor.indentSize,10);isNaN(f)||(r=Math.max(f,1))}let s=EDITOR_MODEL_DEFAULTS.insertSpaces;e.editor&&typeof e.editor.insertSpaces<"u"&&(s=e.editor.insertSpaces==="false"?!1:!!e.editor.insertSpaces);let a=DEFAULT_EOL;const l=e.eol;l===`\r
- `?a=2:l===`
- `&&(a=1);let d=EDITOR_MODEL_DEFAULTS.trimAutoWhitespace;e.editor&&typeof e.editor.trimAutoWhitespace<"u"&&(d=e.editor.trimAutoWhitespace==="false"?!1:!!e.editor.trimAutoWhitespace);let c=EDITOR_MODEL_DEFAULTS.detectIndentation;e.editor&&typeof e.editor.detectIndentation<"u"&&(c=e.editor.detectIndentation==="false"?!1:!!e.editor.detectIndentation);let u=EDITOR_MODEL_DEFAULTS.largeFileOptimizations;e.editor&&typeof e.editor.largeFileOptimizations<"u"&&(u=e.editor.largeFileOptimizations==="false"?!1:!!e.editor.largeFileOptimizations);let g=EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions;return!((i=e.editor)===null||i===void 0)&&i.bracketPairColorization&&typeof e.editor.bracketPairColorization=="object"&&(g={enabled:!!e.editor.bracketPairColorization.enabled,independentColorPoolPerBracketType:!!e.editor.bracketPairColorization.independentColorPoolPerBracketType}),{isForSimpleWidget:t,tabSize:n,indentSize:r,insertSpaces:s,detectIndentation:c,defaultEOL:a,trimAutoWhitespace:d,largeFileOptimizations:u,bracketPairColorizationOptions:g}}_getEOL(e,t){if(e)return this._resourcePropertiesService.getEOL(e,t);const i=this._configurationService.getValue("files.eol",{overrideIdentifier:t});return i&&typeof i=="string"&&i!=="auto"?i:OS===3||OS===2?`
- `:`\r
- `}_shouldRestoreUndoStack(){const e=this._configurationService.getValue("files.restoreUndoStack");return typeof e=="boolean"?e:!0}getCreationOptions(e,t,i){const n=typeof e=="string"?e:e.languageId;let r=this._modelCreationOptionsByLanguageAndResource[n+t];if(!r){const s=this._configurationService.getValue("editor",{overrideIdentifier:n,resource:t}),a=this._getEOL(t,n);r=ModelService_1._readModelOptions({editor:s,eol:a},i),this._modelCreationOptionsByLanguageAndResource[n+t]=r}return r}_updateModelOptions(e){const t=this._modelCreationOptionsByLanguageAndResource;this._modelCreationOptionsByLanguageAndResource=Object.create(null);const i=Object.keys(this._models);for(let n=0,r=i.length;n<r;n++){const s=i[n],a=this._models[s],l=a.model.getLanguageId(),d=a.model.uri;if(e&&!e.affectsConfiguration("editor",{overrideIdentifier:l,resource:d})&&!e.affectsConfiguration("files.eol",{overrideIdentifier:l,resource:d}))continue;const c=t[l+d],u=this.getCreationOptions(l,d,a.model.isForSimpleWidget);ModelService_1._setModelOptionsForModel(a.model,u,c)}}static _setModelOptionsForModel(e,t,i){i&&i.defaultEOL!==t.defaultEOL&&e.getLineCount()===1&&e.setEOL(t.defaultEOL===1?0:1),!(i&&i.detectIndentation===t.detectIndentation&&i.insertSpaces===t.insertSpaces&&i.tabSize===t.tabSize&&i.indentSize===t.indentSize&&i.trimAutoWhitespace===t.trimAutoWhitespace&&equals$1(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(MODEL_ID(e.uri),e),this._disposedModelsHeapSize+=e.heapSize}_removeDisposedModel(e){const t=this._disposedModels.get(MODEL_ID(e));return t&&(this._disposedModelsHeapSize-=t.heapSize),this._disposedModels.delete(MODEL_ID(e)),t}_ensureDisposedModelsHeapSize(e){if(this._disposedModelsHeapSize>e){const t=[];for(this._disposedModels.forEach(i=>{i.sharesUndoRedoStack||t.push(i)}),t.sort((i,n)=>i.time-n.time);t.length>0&&this._disposedModelsHeapSize>e;){const i=t.shift();this._removeDisposedModel(i.uri),i.initialUndoRedoSnapshot!==null&&this._undoRedoService.restoreSnapshot(i.initialUndoRedoSnapshot)}}}_createModelData(e,t,i,n){const r=this.getCreationOptions(t,i,n),s=new TextModel(e,t,r,i,this._undoRedoService,this._languageService,this._languageConfigurationService);if(i&&this._disposedModels.has(MODEL_ID(i))){const d=this._removeDisposedModel(i),c=this._undoRedoService.getElements(i),u=this._getSHA1Computer(),g=u.canComputeSHA1(s)?u.computeSHA1(s)===d.sha1:!1;if(g||d.sharesUndoRedoStack){for(const f of c.past)isEditStackElement(f)&&f.matchesResource(i)&&f.setModel(s);for(const f of c.future)isEditStackElement(f)&&f.matchesResource(i)&&f.setModel(s);this._undoRedoService.setElementsValidFlag(i,!0,f=>isEditStackElement(f)&&f.matchesResource(i)),g&&(s._overwriteVersionId(d.versionId),s._overwriteAlternativeVersionId(d.alternativeVersionId),s._overwriteInitialUndoRedoSnapshot(d.initialUndoRedoSnapshot))}else d.initialUndoRedoSnapshot!==null&&this._undoRedoService.restoreSnapshot(d.initialUndoRedoSnapshot)}const a=MODEL_ID(s.uri);if(this._models[a])throw new Error("ModelService: Cannot add model because it already exists!");const l=new ModelData(s,d=>this._onWillDispose(d),(d,c)=>this._onDidChangeLanguage(d,c));return this._models[a]=l,l}createModel(e,t,i,n=!1){let r;return t?r=this._createModelData(e,t,i,n):r=this._createModelData(e,PLAINTEXT_LANGUAGE_ID,i,n),this._onModelAdded.fire(r.model),r.model}getModels(){const e=[],t=Object.keys(this._models);for(let i=0,n=t.length;i<n;i++){const r=t[i];e.push(this._models[r].model)}return e}getModel(e){const t=MODEL_ID(e),i=this._models[t];return i?i.model:null}_schemaShouldMaintainUndoRedoElements(e){return e.scheme===Schemas.file||e.scheme===Schemas.vscodeRemote||e.scheme===Schemas.vscodeUserData||e.scheme===Schemas.vscodeNotebookCell||e.scheme==="fake-fs"}_onWillDispose(e){const t=MODEL_ID(e.uri),i=this._models[t],n=this._undoRedoService.getUriComparisonKey(e.uri)!==e.uri.toString();let r=!1,s=0;if(n||this._shouldRestoreUndoStack()&&this._schemaShouldMaintainUndoRedoElements(e.uri)){const d=this._undoRedoService.getElements(e.uri);if(d.past.length>0||d.future.length>0){for(const c of d.past)isEditStackElement(c)&&c.matchesResource(e.uri)&&(r=!0,s+=c.heapSize(e.uri),c.setModel(e.uri));for(const c of d.future)isEditStackElement(c)&&c.matchesResource(e.uri)&&(r=!0,s+=c.heapSize(e.uri),c.setModel(e.uri))}}const a=ModelService_1.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK,l=this._getSHA1Computer();if(r)if(!n&&(s>a||!l.canComputeSHA1(e))){const d=i.model.getInitialUndoRedoSnapshot();d!==null&&this._undoRedoService.restoreSnapshot(d)}else this._ensureDisposedModelsHeapSize(a-s),this._undoRedoService.setElementsValidFlag(e.uri,!1,d=>isEditStackElement(d)&&d.matchesResource(e.uri)),this._insertDisposedModel(new DisposedModelInfo(e.uri,i.model.getInitialUndoRedoSnapshot(),Date.now(),n,s,l.computeSHA1(e),e.getVersionId(),e.getAlternativeVersionId()));else if(!n){const d=i.model.getInitialUndoRedoSnapshot();d!==null&&this._undoRedoService.restoreSnapshot(d)}delete this._models[t],i.dispose(),delete this._modelCreationOptionsByLanguageAndResource[e.getLanguageId()+e.uri],this._onModelRemoved.fire(e)}_onDidChangeLanguage(e,t){const i=t.oldLanguage,n=e.getLanguageId(),r=this.getCreationOptions(i,e.uri,e.isForSimpleWidget),s=this.getCreationOptions(n,e.uri,e.isForSimpleWidget);ModelService_1._setModelOptionsForModel(e,s,r),this._onModelModeChanged.fire({model:e,oldLanguageId:i})}_getSHA1Computer(){return new DefaultModelSHA1Computer}};ModelService.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK=20*1024*1024;ModelService=ModelService_1=__decorate$1N([__param$1J(0,IConfigurationService),__param$1J(1,ITextResourcePropertiesService),__param$1J(2,IUndoRedoService),__param$1J(3,ILanguageService),__param$1J(4,ILanguageConfigurationService)],ModelService);class DefaultModelSHA1Computer{canComputeSHA1(e){return e.getValueLength()<=DefaultModelSHA1Computer.MAX_MODEL_SIZE}computeSHA1(e){const t=new StringSHA1,i=e.createSnapshot();let n;for(;n=i.read();)t.update(n);return t.digest()}}DefaultModelSHA1Computer.MAX_MODEL_SIZE=10*1024*1024;class PagedRenderer{get templateId(){return this.renderer.templateId}constructor(e,t){this.renderer=e,this.modelProvider=t}renderTemplate(e){return{data:this.renderer.renderTemplate(e),disposable:Disposable.None}}renderElement(e,t,i,n){var r;if((r=i.disposable)===null||r===void 0||r.dispose(),!i.data)return;const s=this.modelProvider();if(s.isResolved(e))return this.renderer.renderElement(s.get(e),e,i.data,n);const a=new CancellationTokenSource$1,l=s.resolve(e,a.token);i.disposable={dispose:()=>a.cancel()},this.renderer.renderPlaceholder(e,i.data),l.then(d=>this.renderer.renderElement(d,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 PagedAccessibilityProvider{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}}function fromPagedListOptions(o,e){return Object.assign(Object.assign({},e),{accessibilityProvider:e.accessibilityProvider&&new PagedAccessibilityProvider(o,e.accessibilityProvider)})}class PagedList{constructor(e,t,i,n,r={}){const s=()=>this.model,a=n.map(l=>new PagedRenderer(l,s));this.list=new List(e,t,i,a,fromPagedListOptions(s,r))}updateOptions(e){this.list.updateOptions(e)}getHTMLElement(){return this.list.getHTMLElement()}get onDidFocus(){return this.list.onDidFocus}get widget(){return this.list}get onDidDispose(){return this.list.onDidDispose}get onMouseDblClick(){return Event.map(this.list.onMouseDblClick,({element:e,index:t,browserEvent:i})=>({element:e===void 0?void 0:this._model.get(e),index:t,browserEvent:i}))}get onPointer(){return Event.map(this.list.onPointer,({element:e,index:t,browserEvent:i})=>({element:e===void 0?void 0:this._model.get(e),index:t,browserEvent:i}))}get onDidChangeSelection(){return Event.map(this.list.onDidChangeSelection,({elements:e,indexes:t,browserEvent:i})=>({elements:e.map(n=>this._model.get(n)),indexes:t,browserEvent:i}))}get model(){return this._model}set model(e){this._model=e,this.list.splice(0,this.list.length,range(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()}}var __decorate$1M=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r};const DEBUG=!1;var OrthogonalEdge;(function(o){o.North="north",o.South="south",o.East="east",o.West="west"})(OrthogonalEdge||(OrthogonalEdge={}));let globalSize=4;const onDidChangeGlobalSize=new Emitter$1;let globalHoverDelay=300;const onDidChangeHoverDelay=new Emitter$1;class MouseEventFactory{constructor(){this.disposables=new DisposableStore}get onPointerMove(){return this.disposables.add(new DomEmitter(window,"mousemove")).event}get onPointerUp(){return this.disposables.add(new DomEmitter(window,"mouseup")).event}dispose(){this.disposables.dispose()}}__decorate$1M([memoize],MouseEventFactory.prototype,"onPointerMove",null);__decorate$1M([memoize],MouseEventFactory.prototype,"onPointerUp",null);class GestureEventFactory{get onPointerMove(){return this.disposables.add(new DomEmitter(this.el,EventType.Change)).event}get onPointerUp(){return this.disposables.add(new DomEmitter(this.el,EventType.End)).event}constructor(e){this.el=e,this.disposables=new DisposableStore}dispose(){this.disposables.dispose()}}__decorate$1M([memoize],GestureEventFactory.prototype,"onPointerMove",null);__decorate$1M([memoize],GestureEventFactory.prototype,"onPointerUp",null);class OrthogonalPointerEventFactory{get onPointerMove(){return this.factory.onPointerMove}get onPointerUp(){return this.factory.onPointerUp}constructor(e){this.factory=e}dispose(){}}__decorate$1M([memoize],OrthogonalPointerEventFactory.prototype,"onPointerMove",null);__decorate$1M([memoize],OrthogonalPointerEventFactory.prototype,"onPointerUp",null);const PointerEventsDisabledCssClass="pointer-events-disabled";class Sash extends Disposable{get state(){return this._state}get orthogonalStartSash(){return this._orthogonalStartSash}get orthogonalEndSash(){return this._orthogonalEndSash}set state(e){this._state!==e&&(this.el.classList.toggle("disabled",e===0),this.el.classList.toggle("minimum",e===1),this.el.classList.toggle("maximum",e===2),this._state=e,this.onDidEnablementChange.fire(e))}set orthogonalStartSash(e){if(this._orthogonalStartSash!==e){if(this.orthogonalStartDragHandleDisposables.clear(),this.orthogonalStartSashDisposables.clear(),e){const t=i=>{this.orthogonalStartDragHandleDisposables.clear(),i!==0&&(this._orthogonalStartDragHandle=append$1(this.el,$$d(".orthogonal-drag-handle.start")),this.orthogonalStartDragHandleDisposables.add(toDisposable(()=>this._orthogonalStartDragHandle.remove())),this.orthogonalStartDragHandleDisposables.add(new DomEmitter(this._orthogonalStartDragHandle,"mouseenter")).event(()=>Sash.onMouseEnter(e),void 0,this.orthogonalStartDragHandleDisposables),this.orthogonalStartDragHandleDisposables.add(new DomEmitter(this._orthogonalStartDragHandle,"mouseleave")).event(()=>Sash.onMouseLeave(e),void 0,this.orthogonalStartDragHandleDisposables))};this.orthogonalStartSashDisposables.add(e.onDidEnablementChange.event(t,this)),t(e.state)}this._orthogonalStartSash=e}}set orthogonalEndSash(e){if(this._orthogonalEndSash!==e){if(this.orthogonalEndDragHandleDisposables.clear(),this.orthogonalEndSashDisposables.clear(),e){const t=i=>{this.orthogonalEndDragHandleDisposables.clear(),i!==0&&(this._orthogonalEndDragHandle=append$1(this.el,$$d(".orthogonal-drag-handle.end")),this.orthogonalEndDragHandleDisposables.add(toDisposable(()=>this._orthogonalEndDragHandle.remove())),this.orthogonalEndDragHandleDisposables.add(new DomEmitter(this._orthogonalEndDragHandle,"mouseenter")).event(()=>Sash.onMouseEnter(e),void 0,this.orthogonalEndDragHandleDisposables),this.orthogonalEndDragHandleDisposables.add(new DomEmitter(this._orthogonalEndDragHandle,"mouseleave")).event(()=>Sash.onMouseLeave(e),void 0,this.orthogonalEndDragHandleDisposables))};this.orthogonalEndSashDisposables.add(e.onDidEnablementChange.event(t,this)),t(e.state)}this._orthogonalEndSash=e}}constructor(e,t,i){super(),this.hoverDelay=globalHoverDelay,this.hoverDelayer=this._register(new Delayer(this.hoverDelay)),this._state=3,this.onDidEnablementChange=this._register(new Emitter$1),this._onDidStart=this._register(new Emitter$1),this._onDidChange=this._register(new Emitter$1),this._onDidReset=this._register(new Emitter$1),this._onDidEnd=this._register(new Emitter$1),this.orthogonalStartSashDisposables=this._register(new DisposableStore),this.orthogonalStartDragHandleDisposables=this._register(new DisposableStore),this.orthogonalEndSashDisposables=this._register(new DisposableStore),this.orthogonalEndDragHandleDisposables=this._register(new DisposableStore),this.onDidStart=this._onDidStart.event,this.onDidChange=this._onDidChange.event,this.onDidReset=this._onDidReset.event,this.onDidEnd=this._onDidEnd.event,this.linkedSash=void 0,this.el=append$1(e,$$d(".monaco-sash")),i.orthogonalEdge&&this.el.classList.add(`orthogonal-edge-${i.orthogonalEdge}`),isMacintosh&&this.el.classList.add("mac");const n=this._register(new DomEmitter(this.el,"mousedown")).event;this._register(n(u=>this.onPointerStart(u,new MouseEventFactory),this));const r=this._register(new DomEmitter(this.el,"dblclick")).event;this._register(r(this.onPointerDoublePress,this));const s=this._register(new DomEmitter(this.el,"mouseenter")).event;this._register(s(()=>Sash.onMouseEnter(this)));const a=this._register(new DomEmitter(this.el,"mouseleave")).event;this._register(a(()=>Sash.onMouseLeave(this))),this._register(Gesture.addTarget(this.el));const l=this._register(new DomEmitter(this.el,EventType.Start)).event;this._register(l(u=>this.onPointerStart(u,new GestureEventFactory(this.el)),this));const d=this._register(new DomEmitter(this.el,EventType.Tap)).event;let c;this._register(d(u=>{if(c){clearTimeout(c),c=void 0,this.onPointerDoublePress(u);return}clearTimeout(c),c=setTimeout(()=>c=void 0,250)},this)),typeof i.size=="number"?(this.size=i.size,i.orientation===0?this.el.style.width=`${this.size}px`:this.el.style.height=`${this.size}px`):(this.size=globalSize,this._register(onDidChangeGlobalSize.event(u=>{this.size=u,this.layout()}))),this._register(onDidChangeHoverDelay.event(u=>this.hoverDelay=u)),this.layoutProvider=t,this.orthogonalStartSash=i.orthogonalStartSash,this.orthogonalEndSash=i.orthogonalEndSash,this.orientation=i.orientation||0,this.orientation===1?(this.el.classList.add("horizontal"),this.el.classList.remove("vertical")):(this.el.classList.remove("horizontal"),this.el.classList.add("vertical")),this.el.classList.toggle("debug",DEBUG),this.layout()}onPointerStart(e,t){EventHelper.stop(e);let i=!1;if(!e.__orthogonalSashEvent){const p=this.getOrthogonalSash(e);p&&(i=!0,e.__orthogonalSashEvent=!0,p.onPointerStart(e,new OrthogonalPointerEventFactory(t)))}if(this.linkedSash&&!e.__linkedSashEvent&&(e.__linkedSashEvent=!0,this.linkedSash.onPointerStart(e,new OrthogonalPointerEventFactory(t))),!this.state)return;const n=document.getElementsByTagName("iframe");for(const p of n)p.classList.add(PointerEventsDisabledCssClass);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 d=createStyleSheet(this.el),c=()=>{let p="";i?p="all-scroll":this.orientation===1?this.state===1?p="s-resize":this.state===2?p="n-resize":p=isMacintosh?"row-resize":"ns-resize":this.state===1?p="e-resize":this.state===2?p="w-resize":p=isMacintosh?"col-resize":"ew-resize",d.textContent=`* { cursor: ${p} !important; }`},u=new DisposableStore;c(),i||this.onDidEnablementChange.event(c,null,u);const g=p=>{EventHelper.stop(p,!1);const m={startX:r,currentX:p.pageX,startY:s,currentY:p.pageY,altKey:a};this._onDidChange.fire(m)},f=p=>{EventHelper.stop(p,!1),this.el.removeChild(d),this.el.classList.remove("active"),this._onDidEnd.fire(),u.dispose();for(const m of n)m.classList.remove(PointerEventsDisabledCssClass)};t.onPointerMove(g,null,u),t.onPointerUp(f,null,u),u.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&&Sash.onMouseEnter(e.linkedSash,!0)}static onMouseLeave(e,t=!1){e.hoverDelayer.cancel(),e.el.classList.remove("hover"),!t&&e.linkedSash&&Sash.onMouseLeave(e.linkedSash,!0)}clearSashHoverState(){Sash.onMouseLeave(this)}layout(){if(this.orientation===0){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")}}getOrthogonalSash(e){var t;const i=(t=e.initialTarget)!==null&&t!==void 0?t:e.target;if(!(!i||!(i instanceof HTMLElement))&&i.classList.contains("orthogonal-drag-handle"))return i.classList.contains("start")?this.orthogonalStartSash:this.orthogonalEndSash}dispose(){super.dispose(),this.el.remove()}}const defaultStyles={separatorBorder:Color.transparent};class ViewItem{set size(e){this._size=e}get size(){return this._size}get visible(){return typeof this._cachedVisibleSize>"u"}setVisible(e,t){var i,n;e!==this.visible&&(e?(this.size=clamp(this._cachedVisibleSize,this.viewMinimumSize,this.viewMaximumSize),this._cachedVisibleSize=void 0):(this._cachedVisibleSize=typeof t=="number"?t:this.size,this.size=0),this.container.classList.toggle("visible",e),(n=(i=this.view).setVisible)===null||n===void 0||n.call(i,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 proportionalLayout(){var e;return(e=this.view.proportionalLayout)!==null&&e!==void 0?e:!0}get snap(){return!!this.view.snap}set enabled(e){this.container.style.pointerEvents=e?"":"none"}constructor(e,t,i,n){this.container=e,this.view=t,this.disposable=n,this._cachedVisibleSize=void 0,typeof i=="number"?(this._size=i,this._cachedVisibleSize=void 0,e.classList.add("visible")):(this._size=0,this._cachedVisibleSize=i.cachedVisibleSize)}layout(e,t){this.layoutContainer(e),this.view.layout(this.size,e,t)}dispose(){this.disposable.dispose()}}class VerticalViewItem extends ViewItem{layoutContainer(e){this.container.style.top=`${e}px`,this.container.style.height=`${this.size}px`}}class HorizontalViewItem extends ViewItem{layoutContainer(e){this.container.style.left=`${e}px`,this.container.style.width=`${this.size}px`}}var State;(function(o){o[o.Idle=0]="Idle",o[o.Busy=1]="Busy"})(State||(State={}));var Sizing;(function(o){o.Distribute={type:"distribute"};function e(n){return{type:"split",index:n}}o.Split=e;function t(n){return{type:"auto",index:n}}o.Auto=t;function i(n){return{type:"invisible",cachedVisibleSize:n}}o.Invisible=i})(Sizing||(Sizing={}));class SplitView extends Disposable{get orthogonalStartSash(){return this._orthogonalStartSash}get orthogonalEndSash(){return this._orthogonalEndSash}get startSnappingEnabled(){return this._startSnappingEnabled}get endSnappingEnabled(){return this._endSnappingEnabled}set orthogonalStartSash(e){for(const t of this.sashItems)t.sash.orthogonalStartSash=e;this._orthogonalStartSash=e}set orthogonalEndSash(e){for(const t of this.sashItems)t.sash.orthogonalEndSash=e;this._orthogonalEndSash=e}set startSnappingEnabled(e){this._startSnappingEnabled!==e&&(this._startSnappingEnabled=e,this.updateSashEnablement())}set endSnappingEnabled(e){this._endSnappingEnabled!==e&&(this._endSnappingEnabled=e,this.updateSashEnablement())}constructor(e,t={}){var i,n,r,s,a;super(),this.size=0,this.contentSize=0,this.proportions=void 0,this.viewItems=[],this.sashItems=[],this.state=State.Idle,this._onDidSashChange=this._register(new Emitter$1),this._onDidSashReset=this._register(new Emitter$1),this._startSnappingEnabled=!0,this._endSnappingEnabled=!0,this.onDidSashChange=this._onDidSashChange.event,this.onDidSashReset=this._onDidSashReset.event,this.orientation=(i=t.orientation)!==null&&i!==void 0?i:0,this.inverseAltBehavior=(n=t.inverseAltBehavior)!==null&&n!==void 0?n:!1,this.proportionalLayout=(r=t.proportionalLayout)!==null&&r!==void 0?r:!0,this.getSashOrthogonalSize=t.getSashOrthogonalSize,this.el=document.createElement("div"),this.el.classList.add("monaco-split-view2"),this.el.classList.add(this.orientation===0?"vertical":"horizontal"),e.appendChild(this.el),this.sashContainer=append$1(this.el,$$d(".sash-container")),this.viewContainer=$$d(".split-view-container"),this.scrollable=this._register(new Scrollable({forceIntegerValues:!0,smoothScrollDuration:125,scheduleAtNextAnimationFrame})),this.scrollableElement=this._register(new SmoothScrollableElement(this.viewContainer,{vertical:this.orientation===0?(s=t.scrollbarVisibility)!==null&&s!==void 0?s:1:2,horizontal:this.orientation===1?(a=t.scrollbarVisibility)!==null&&a!==void 0?a:1:2},this.scrollable));const l=this._register(new DomEmitter(this.viewContainer,"scroll")).event;this._register(l(d=>{const c=this.scrollableElement.getScrollPosition(),u=Math.abs(this.viewContainer.scrollLeft-c.scrollLeft)<=1?void 0:this.viewContainer.scrollLeft,g=Math.abs(this.viewContainer.scrollTop-c.scrollTop)<=1?void 0:this.viewContainer.scrollTop;(u!==void 0||g!==void 0)&&this.scrollableElement.setScrollPosition({scrollLeft:u,scrollTop:g})})),this.onDidScroll=this.scrollableElement.onScroll,this._register(this.onDidScroll(d=>{d.scrollTopChanged&&(this.viewContainer.scrollTop=d.scrollTop),d.scrollLeftChanged&&(this.viewContainer.scrollLeft=d.scrollLeft)})),append$1(this.el,this.scrollableElement.getDomNode()),this.style(t.styles||defaultStyles),t.descriptor&&(this.size=t.descriptor.size,t.descriptor.views.forEach((d,c)=>{const u=isUndefined(d.visible)||d.visible?d.size:{type:"invisible",cachedVisibleSize:d.size},g=d.view;this.doAddView(g,u,c,!0)}),this.contentSize=this.viewItems.reduce((d,c)=>d+c.size,0),this.saveProportions())}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){let n=0;for(let r=0;r<this.viewItems.length;r++){const s=this.viewItems[r],a=this.proportions[r];typeof a=="number"?n+=a:e-=s.size}for(let r=0;r<this.viewItems.length;r++){const s=this.viewItems[r],a=this.proportions[r];typeof a=="number"&&(s.size=clamp(Math.round(a*e/n),s.minimumSize,s.maximumSize))}}else{const n=range(this.viewItems.length),r=n.filter(a=>this.viewItems[a].priority===1),s=n.filter(a=>this.viewItems[a].priority===2);this.resize(this.viewItems.length-1,e-i,void 0,r,s)}this.distributeEmptySpace(),this.layoutViews()}saveProportions(){this.proportionalLayout&&this.contentSize>0&&(this.proportions=this.viewItems.map(e=>e.proportionalLayout?e.size/this.contentSize:void 0))}onSashStart({sash:e,start:t,alt:i}){for(const a of this.viewItems)a.enabled=!1;const n=this.sashItems.findIndex(a=>a.sash===e),r=combinedDisposable(addDisposableListener(document.body,"keydown",a=>s(this.sashDragState.current,a.altKey)),addDisposableListener(document.body,"keyup",()=>s(this.sashDragState.current,!1))),s=(a,l)=>{const d=this.viewItems.map(p=>p.size);let c=Number.NEGATIVE_INFINITY,u=Number.POSITIVE_INFINITY;if(this.inverseAltBehavior&&(l=!l),l)if(n===this.sashItems.length-1){const m=this.viewItems[n];c=(m.minimumSize-m.size)/2,u=(m.maximumSize-m.size)/2}else{const m=this.viewItems[n+1];c=(m.size-m.maximumSize)/2,u=(m.size-m.minimumSize)/2}let g,f;if(!l){const p=range(n,-1),m=range(n+1,this.viewItems.length),b=p.reduce((I,D)=>I+(this.viewItems[D].minimumSize-d[D]),0),_=p.reduce((I,D)=>I+(this.viewItems[D].viewMaximumSize-d[D]),0),C=m.length===0?Number.POSITIVE_INFINITY:m.reduce((I,D)=>I+(d[D]-this.viewItems[D].minimumSize),0),S=m.length===0?Number.NEGATIVE_INFINITY:m.reduce((I,D)=>I+(d[D]-this.viewItems[D].viewMaximumSize),0),y=Math.max(b,S),E=Math.min(C,_),x=this.findFirstSnapIndex(p),L=this.findFirstSnapIndex(m);if(typeof x=="number"){const I=this.viewItems[x],D=Math.floor(I.viewMinimumSize/2);g={index:x,limitDelta:I.visible?y-D:y+D,size:I.size}}if(typeof L=="number"){const I=this.viewItems[L],D=Math.floor(I.viewMinimumSize/2);f={index:L,limitDelta:I.visible?E+D:E-D,size:I.size}}}this.sashDragState={start:a,current:a,index:n,sizes:d,minDelta:c,maxDelta:u,alt:l,snapBefore:g,snapAfter:f,disposable:r}};s(t,i)}onSashChange({current:e}){const{index:t,start:i,sizes:n,alt:r,minDelta:s,maxDelta:a,snapBefore:l,snapAfter:d}=this.sashDragState;this.sashDragState.current=e;const c=e-i,u=this.resize(t,c,n,void 0,void 0,s,a,l,d);if(r){const g=t===this.sashItems.length-1,f=this.viewItems.map(S=>S.size),p=g?t:t+1,m=this.viewItems[p],b=m.size-m.maximumSize,_=m.size-m.minimumSize,C=g?t-1:t+1;this.resize(C,-u,f,void 0,void 0,b,_)}this.distributeEmptySpace(),this.layoutViews()}onSashEnd(e){this._onDidSashChange.fire(e),this.sashDragState.disposable.dispose(),this.saveProportions();for(const t of this.viewItems)t.enabled=!0}onViewChange(e,t){const i=this.viewItems.indexOf(e);i<0||i>=this.viewItems.length||(t=typeof t=="number"?t:e.size,t=clamp(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!==State.Idle)throw new Error("Cant modify splitview");if(this.state=State.Busy,e<0||e>=this.viewItems.length)return;const i=range(this.viewItems.length).filter(a=>a!==e),n=[...i.filter(a=>this.viewItems[a].priority===1),e],r=i.filter(a=>this.viewItems[a].priority===2),s=this.viewItems[e];t=Math.round(t),t=clamp(t,s.minimumSize,Math.min(s.maximumSize,this.size)),s.size=t,this.relayout(n,r),this.state=State.Idle}distributeViewSizes(){const e=[];let t=0;for(const a of this.viewItems)a.maximumSize-a.minimumSize>0&&(e.push(a),t+=a.size);const i=Math.floor(t/e.length);for(const a of e)a.size=clamp(i,a.minimumSize,a.maximumSize);const n=range(this.viewItems.length),r=n.filter(a=>this.viewItems[a].priority===1),s=n.filter(a=>this.viewItems[a].priority===2);this.relayout(r,s)}getViewSize(e){return e<0||e>=this.viewItems.length?-1:this.viewItems[e].size}doAddView(e,t,i=this.viewItems.length,n){if(this.state!==State.Idle)throw new Error("Cant modify splitview");this.state=State.Busy;const r=$$d(".split-view-view");i===this.viewItems.length?this.viewContainer.appendChild(r):this.viewContainer.insertBefore(r,this.viewContainer.children.item(i));const s=e.onDidChange(g=>this.onViewChange(c,g)),a=toDisposable(()=>this.viewContainer.removeChild(r)),l=combinedDisposable(s,a);let d;typeof t=="number"?d=t:(t.type==="auto"&&(this.areViewsDistributed()?t={type:"distribute"}:t={type:"split",index:t.index}),t.type==="split"?d=this.getViewSize(t.index)/2:t.type==="invisible"?d={cachedVisibleSize:t.cachedVisibleSize}:d=e.minimumSize);const c=this.orientation===0?new VerticalViewItem(r,e,d,l):new HorizontalViewItem(r,e,d,l);if(this.viewItems.splice(i,0,c),this.viewItems.length>1){const g={orthogonalStartSash:this.orthogonalStartSash,orthogonalEndSash:this.orthogonalEndSash},f=this.orientation===0?new Sash(this.sashContainer,{getHorizontalSashTop:I=>this.getSashPosition(I),getHorizontalSashWidth:this.getSashOrthogonalSize},Object.assign(Object.assign({},g),{orientation:1})):new Sash(this.sashContainer,{getVerticalSashLeft:I=>this.getSashPosition(I),getVerticalSashHeight:this.getSashOrthogonalSize},Object.assign(Object.assign({},g),{orientation:0})),p=this.orientation===0?I=>({sash:f,start:I.startY,current:I.currentY,alt:I.altKey}):I=>({sash:f,start:I.startX,current:I.currentX,alt:I.altKey}),b=Event.map(f.onDidStart,p)(this.onSashStart,this),C=Event.map(f.onDidChange,p)(this.onSashChange,this),y=Event.map(f.onDidEnd,()=>this.sashItems.findIndex(I=>I.sash===f))(this.onSashEnd,this),E=f.onDidReset(()=>{const I=this.sashItems.findIndex(M=>M.sash===f),D=range(I,-1),N=range(I+1,this.viewItems.length),F=this.findFirstSnapIndex(D),R=this.findFirstSnapIndex(N);typeof F=="number"&&!this.viewItems[F].visible||typeof R=="number"&&!this.viewItems[R].visible||this._onDidSashReset.fire(I)}),x=combinedDisposable(b,C,y,E,f),L={sash:f,disposable:x};this.sashItems.splice(i-1,0,L)}r.appendChild(e.element);let u;typeof t!="number"&&t.type==="split"&&(u=[t.index]),n||this.relayout([i],u),this.state=State.Idle,!n&&typeof t!="number"&&t.type==="distribute"&&this.distributeViewSizes()}relayout(e,t){const i=this.viewItems.reduce((n,r)=>n+r.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(c=>c.size),n,r,s=Number.NEGATIVE_INFINITY,a=Number.POSITIVE_INFINITY,l,d){if(e<0||e>=this.viewItems.length)return 0;const c=range(e,-1),u=range(e+1,this.viewItems.length);if(r)for(const L of r)pushToStart(c,L),pushToStart(u,L);if(n)for(const L of n)pushToEnd(c,L),pushToEnd(u,L);const g=c.map(L=>this.viewItems[L]),f=c.map(L=>i[L]),p=u.map(L=>this.viewItems[L]),m=u.map(L=>i[L]),b=c.reduce((L,I)=>L+(this.viewItems[I].minimumSize-i[I]),0),_=c.reduce((L,I)=>L+(this.viewItems[I].maximumSize-i[I]),0),C=u.length===0?Number.POSITIVE_INFINITY:u.reduce((L,I)=>L+(i[I]-this.viewItems[I].minimumSize),0),S=u.length===0?Number.NEGATIVE_INFINITY:u.reduce((L,I)=>L+(i[I]-this.viewItems[I].maximumSize),0),y=Math.max(b,S,s),E=Math.min(C,_,a);let x=!1;if(l){const L=this.viewItems[l.index],I=t>=l.limitDelta;x=I!==L.visible,L.setVisible(I,l.size)}if(!x&&d){const L=this.viewItems[d.index],I=t<d.limitDelta;x=I!==L.visible,L.setVisible(I,d.size)}if(x)return this.resize(e,t,i,n,r,s,a);t=clamp(t,y,E);for(let L=0,I=t;L<g.length;L++){const D=g[L],N=clamp(f[L]+I,D.minimumSize,D.maximumSize),F=N-f[L];I-=F,D.size=N}for(let L=0,I=t;L<p.length;L++){const D=p[L],N=clamp(m[L]-I,D.minimumSize,D.maximumSize),F=N-m[L];I+=F,D.size=N}return t}distributeEmptySpace(e){const t=this.viewItems.reduce((a,l)=>a+l.size,0);let i=this.size-t;const n=range(this.viewItems.length-1,-1),r=n.filter(a=>this.viewItems[a].priority===1),s=n.filter(a=>this.viewItems[a].priority===2);for(const a of s)pushToStart(n,a);for(const a of r)pushToEnd(n,a);typeof e=="number"&&pushToEnd(n,e);for(let a=0;i!==0&&a<n.length;a++){const l=this.viewItems[n[a]],d=clamp(l.size+i,l.minimumSize,l.maximumSize),c=d-l.size;i-=c,l.size=d}}layoutViews(){this.contentSize=this.viewItems.reduce((t,i)=>t+i.size,0);let e=0;for(const t of this.viewItems)t.layout(e,this.layoutContext),e+=t.size;this.sashItems.forEach(t=>t.sash.layout()),this.updateSashEnablement(),this.updateScrollableElement()}updateScrollableElement(){this.orientation===0?this.scrollableElement.setScrollDimensions({height:this.size,scrollHeight:this.contentSize}):this.scrollableElement.setScrollDimensions({width:this.size,scrollWidth:this.contentSize})}updateSashEnablement(){let e=!1;const t=this.viewItems.map(l=>e=l.size-l.minimumSize>0||e);e=!1;const i=this.viewItems.map(l=>e=l.maximumSize-l.size>0||e),n=[...this.viewItems].reverse();e=!1;const r=n.map(l=>e=l.size-l.minimumSize>0||e).reverse();e=!1;const s=n.map(l=>e=l.maximumSize-l.size>0||e).reverse();let a=0;for(let l=0;l<this.sashItems.length;l++){const{sash:d}=this.sashItems[l],c=this.viewItems[l];a+=c.size;const u=!(t[l]&&s[l+1]),g=!(i[l]&&r[l+1]);if(u&&g){const f=range(l,-1),p=range(l+1,this.viewItems.length),m=this.findFirstSnapIndex(f),b=this.findFirstSnapIndex(p),_=typeof m=="number"&&!this.viewItems[m].visible,C=typeof b=="number"&&!this.viewItems[b].visible;_&&r[l]&&(a>0||this.startSnappingEnabled)?d.state=1:C&&t[l]&&(a<this.contentSize||this.endSnappingEnabled)?d.state=2:d.state=0}else u&&!g?d.state=1:!u&&g?d.state=2:d.state=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 i=this.viewItems[t];if(i.visible&&i.snap)return t}for(const t of e){const i=this.viewItems[t];if(i.visible&&i.maximumSize-i.minimumSize>0)return;if(!i.visible&&i.snap)return t}}areViewsDistributed(){let e,t;for(const i of this.viewItems)if(e=e===void 0?i.size:Math.min(e,i.size),t=t===void 0?i.size:Math.max(t,i.size),t-e>2)return!1;return!0}dispose(){var e;(e=this.sashDragState)===null||e===void 0||e.disposable.dispose(),dispose(this.viewItems),this.viewItems=[],this.sashItems.forEach(t=>t.disposable.dispose()),this.sashItems=[],super.dispose()}}class TableListRenderer{constructor(e,t,i){this.columns=e,this.getColumnSize=i,this.templateId=TableListRenderer.TemplateId,this.renderedTemplates=new Set;const n=new Map(t.map(r=>[r.templateId,r]));this.renderers=[];for(const r of e){const s=n.get(r.templateId);if(!s)throw new Error(`Table cell renderer for template id ${r.templateId} not found.`);this.renderers.push(s)}}renderTemplate(e){const t=append$1(e,$$d(".monaco-table-tr")),i=[],n=[];for(let s=0;s<this.columns.length;s++){const a=this.renderers[s],l=append$1(t,$$d(".monaco-table-td",{"data-col-index":s}));l.style.width=`${this.getColumnSize(s)}px`,i.push(l),n.push(a.renderTemplate(l))}const r={container:e,cellContainers:i,cellTemplateData:n};return this.renderedTemplates.add(r),r}renderElement(e,t,i,n){for(let r=0;r<this.columns.length;r++){const a=this.columns[r].project(e);this.renderers[r].renderElement(a,t,i.cellTemplateData[r],n)}}disposeElement(e,t,i,n){for(let r=0;r<this.columns.length;r++){const s=this.renderers[r];if(s.disposeElement){const l=this.columns[r].project(e);s.disposeElement(l,t,i.cellTemplateData[r],n)}}}disposeTemplate(e){for(let t=0;t<this.columns.length;t++)this.renderers[t].disposeTemplate(e.cellTemplateData[t]);clearNode(e.container),this.renderedTemplates.delete(e)}layoutColumn(e,t){for(const{cellContainers:i}of this.renderedTemplates)i[e].style.width=`${t}px`}}TableListRenderer.TemplateId="row";function asListVirtualDelegate(o){return{getHeight(e){return o.getHeight(e)},getTemplateId(){return TableListRenderer.TemplateId}}}class ColumnHeader{get minimumSize(){var e;return(e=this.column.minimumWidth)!==null&&e!==void 0?e:120}get maximumSize(){var e;return(e=this.column.maximumWidth)!==null&&e!==void 0?e:Number.POSITIVE_INFINITY}get onDidChange(){var e;return(e=this.column.onDidChangeWidthConstraints)!==null&&e!==void 0?e:Event.None}constructor(e,t){this.column=e,this.index=t,this._onDidLayout=new Emitter$1,this.onDidLayout=this._onDidLayout.event,this.element=$$d(".monaco-table-th",{"data-col-index":t,title:e.tooltip},e.label)}layout(e){this._onDidLayout.fire([this.index,e])}}class Table{get onDidChangeFocus(){return this.list.onDidChangeFocus}get onDidChangeSelection(){return this.list.onDidChangeSelection}get onDidScroll(){return this.list.onDidScroll}get onMouseDblClick(){return this.list.onMouseDblClick}get onPointer(){return this.list.onPointer}get onDidFocus(){return this.list.onDidFocus}get scrollTop(){return this.list.scrollTop}set scrollTop(e){this.list.scrollTop=e}get scrollHeight(){return this.list.scrollHeight}get renderHeight(){return this.list.renderHeight}get onDidDispose(){return this.list.onDidDispose}constructor(e,t,i,n,r,s){this.virtualDelegate=i,this.domId=`table_id_${++Table.InstanceCount}`,this.disposables=new DisposableStore,this.cachedWidth=0,this.cachedHeight=0,this.domNode=append$1(t,$$d(`.monaco-table.${this.domId}`));const a=n.map((c,u)=>new ColumnHeader(c,u)),l={size:a.reduce((c,u)=>c+u.column.weight,0),views:a.map(c=>({size:c.column.weight,view:c}))};this.splitview=this.disposables.add(new SplitView(this.domNode,{orientation:1,scrollbarVisibility:2,getSashOrthogonalSize:()=>this.cachedHeight,descriptor:l})),this.splitview.el.style.height=`${i.headerRowHeight}px`,this.splitview.el.style.lineHeight=`${i.headerRowHeight}px`;const d=new TableListRenderer(n,r,c=>this.splitview.getViewSize(c));this.list=this.disposables.add(new List(e,this.domNode,asListVirtualDelegate(i),[d],s)),Event.any(...a.map(c=>c.onDidLayout))(([c,u])=>d.layoutColumn(c,u),null,this.disposables),this.splitview.onDidSashReset(c=>{const u=n.reduce((f,p)=>f+p.weight,0),g=n[c].weight/u*this.cachedWidth;this.splitview.resizeView(c,g)},null,this.disposables),this.styleElement=createStyleSheet(this.domNode),this.style(unthemedListStyles)}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 {
- top: ${this.virtualDelegate.headerRowHeight+1}px;
- height: calc(100% - ${this.virtualDelegate.headerRowHeight}px);
- }`),this.styleElement.textContent=t.join(`
- `),this.list.style(e)}getSelectedElements(){return this.list.getSelectedElements()}getSelection(){return this.list.getSelection()}getFocus(){return this.list.getFocus()}dispose(){this.disposables.dispose()}}Table.InstanceCount=0;class Toggle extends Widget$1{constructor(e){super(),this._onChange=this._register(new Emitter$1),this.onChange=this._onChange.event,this._onKeyDown=this._register(new Emitter$1),this.onKeyDown=this._onKeyDown.event,this._opts=e,this._checked=this._opts.isChecked;const t=["monaco-custom-toggle"];this._opts.icon&&(this._icon=this._opts.icon,t.push(...ThemeIcon.asClassNameArray(this._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,i=>{this.enabled&&(this.checked=!this._checked,this._onChange.fire(!1),i.preventDefault())}),this._register(this.ignoreGesture(this.domNode)),this.onkeydown(this.domNode,i=>{if(i.keyCode===10||i.keyCode===3){this.checked=!this._checked,this._onChange.fire(!0),i.preventDefault(),i.stopPropagation();return}this._onKeyDown.fire(i)})}get enabled(){return this.domNode.getAttribute("aria-disabled")!=="true"}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}applyStyles(){this.domNode&&(this.domNode.style.borderColor=this._checked&&this._opts.inputActiveOptionBorder||"",this.domNode.style.color=this._checked&&this._opts.inputActiveOptionForeground||"inherit",this.domNode.style.backgroundColor=this._checked&&this._opts.inputActiveOptionBackground||"")}enable(){this.domNode.setAttribute("aria-disabled",String(!1))}disable(){this.domNode.setAttribute("aria-disabled",String(!0))}}const NLS_CASE_SENSITIVE_TOGGLE_LABEL=localize("caseDescription","Match Case"),NLS_WHOLE_WORD_TOGGLE_LABEL=localize("wordsDescription","Match Whole Word"),NLS_REGEX_TOGGLE_LABEL=localize("regexDescription","Use Regular Expression");class CaseSensitiveToggle extends Toggle{constructor(e){super({icon:Codicon.caseSensitive,title:NLS_CASE_SENSITIVE_TOGGLE_LABEL+e.appendTitle,isChecked:e.isChecked,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}class WholeWordsToggle extends Toggle{constructor(e){super({icon:Codicon.wholeWord,title:NLS_WHOLE_WORD_TOGGLE_LABEL+e.appendTitle,isChecked:e.isChecked,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}class RegexToggle extends Toggle{constructor(e){super({icon:Codicon.regex,title:NLS_REGEX_TOGGLE_LABEL+e.appendTitle,isChecked:e.isChecked,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}class ArrayNavigator{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 HistoryNavigator{constructor(e=[],t=10){this._initialize(e),this._limit=t,this._onChange()}getHistory(){return this._elements}add(e){this._history.delete(e),this._history.add(e),this._onChange()}next(){return this._navigator.next()}previous(){return this._currentPosition()!==0?this._navigator.previous():null}current(){return this._navigator.current()}first(){return this._navigator.first()}last(){return this._navigator.last()}isLast(){return this._currentPosition()>=this._elements.length-1}isNowhere(){return this._navigator.current()===null}has(e){return this._history.has(e)}_onChange(){this._reduceToLimit();const e=this._elements;this._navigator=new ArrayNavigator(e,0,e.length,e.length)}_reduceToLimit(){const e=this._elements;e.length>this._limit&&this._initialize(e.slice(e.length-this._limit))}_currentPosition(){const e=this._navigator.current();return e?this._elements.indexOf(e):-1}_initialize(e){this._history=new Set;for(const t of e)this._history.add(t)}get _elements(){const e=[];return this._history.forEach(t=>e.push(t)),e}}const $$b=$$d;let InputBox$1=class extends Widget$1{constructor(e,t,i){var n;super(),this.state="idle",this.maxHeight=Number.POSITIVE_INFINITY,this._onDidChange=this._register(new Emitter$1),this.onDidChange=this._onDidChange.event,this._onDidHeightChange=this._register(new Emitter$1),this.onDidHeightChange=this._onDidHeightChange.event,this.contextViewProvider=t,this.options=i,this.message=null,this.placeholder=this.options.placeholder||"",this.tooltip=(n=this.options.tooltip)!==null&&n!==void 0?n:this.placeholder||"",this.ariaLabel=this.options.ariaLabel||"",this.options.validationOptions&&(this.validation=this.options.validationOptions.validation),this.element=append$1(e,$$b(".monaco-inputbox.idle"));const r=this.options.flexibleHeight?"textarea":"input",s=append$1(this.element,$$b(".ibwrapper"));if(this.input=append$1(s,$$b(r+".input.empty")),this.input.setAttribute("autocorrect","off"),this.input.setAttribute("autocapitalize","off"),this.input.setAttribute("spellcheck","false"),this.onfocus(this.input,()=>this.element.classList.add("synthetic-focus")),this.onblur(this.input,()=>this.element.classList.remove("synthetic-focus")),this.options.flexibleHeight){this.maxHeight=typeof this.options.flexibleMaxHeight=="number"?this.options.flexibleMaxHeight:Number.POSITIVE_INFINITY,this.mirror=append$1(s,$$b("div.mirror")),this.mirror.innerText=" ",this.scrollableElement=new ScrollableElement(this.element,{vertical:1}),this.options.flexibleWidth&&(this.input.setAttribute("wrap","off"),this.mirror.style.whiteSpace="pre",this.mirror.style.wordWrap="initial"),append$1(e,this.scrollableElement.getDomNode()),this._register(this.scrollableElement),this._register(this.scrollableElement.onScroll(d=>this.input.scrollTop=d.scrollTop));const a=this._register(new DomEmitter(document,"selectionchange")),l=Event.filter(a.event,()=>{const d=document.getSelection();return(d==null?void 0:d.anchorNode)===s});this._register(l(this.updateScrollDimensions,this)),this._register(this.onDidHeightChange(this.updateScrollDimensions,this))}else this.input.type=this.options.type||"text",this.input.setAttribute("wrap","off");this.ariaLabel&&this.input.setAttribute("aria-label",this.ariaLabel),this.placeholder&&!this.options.showPlaceholderOnFocus&&this.setPlaceHolder(this.placeholder),this.tooltip&&this.setTooltip(this.tooltip),this.oninput(this.input,()=>this.onValueChange()),this.onblur(this.input,()=>this.onBlur()),this.onfocus(this.input,()=>this.onFocus()),this._register(this.ignoreGesture(this.input)),setTimeout(()=>this.updateMirror(),0),this.options.actions&&(this.actionbar=this._register(new ActionBar(this.element)),this.actionbar.push(this.options.actions,{icon:!0,label:!1})),this.applyStyles()}onBlur(){this._hideMessage(),this.options.showPlaceholderOnFocus&&this.input.setAttribute("placeholder","")}onFocus(){this._showMessage(),this.options.showPlaceholderOnFocus&&this.input.setAttribute("placeholder",this.placeholder||"")}setPlaceHolder(e){this.placeholder=e,this.input.setAttribute("placeholder",e)}setTooltip(e){this.tooltip=e,this.input.title=e}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 typeof this.cachedHeight=="number"?this.cachedHeight:getTotalHeight(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()}set paddingRight(e){this.input.style.width=`calc(100% - ${e}px)`,this.mirror&&(this.mirror.style.paddingRight=e+"px")}updateScrollDimensions(){if(typeof this.cachedContentHeight!="number"||typeof this.cachedHeight!="number"||!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){if(this.state==="open"&&equals$1(this.message,e))return;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=`1px solid ${asCssValueWithDefault(i.border,"transparent")}`,this.message.content&&(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())),e==null?void 0:e.type}stylesForType(e){const t=this.options.inputBoxStyles;switch(e){case 1:return{border:t.inputValidationInfoBorder,background:t.inputValidationInfoBackground,foreground:t.inputValidationInfoForeground};case 2:return{border:t.inputValidationWarningBorder,background:t.inputValidationWarningBackground,foreground:t.inputValidationWarningForeground};default:return{border:t.inputValidationErrorBorder,background:t.inputValidationErrorBackground,foreground:t.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;const t=()=>e.style.width=getTotalWidth(this.element)+"px";this.contextViewProvider.showContextView({getAnchor:()=>this.element,anchorAlignment:1,render:n=>{var r,s;if(!this.message)return null;e=append$1(n,$$b(".monaco-inputbox-container")),t();const a={inline:!0,className:"monaco-inputbox-message"},l=this.message.formatContent?renderFormattedText(this.message.content,a):renderText(this.message.content,a);l.classList.add(this.classForType(this.message.type));const d=this.stylesForType(this.message.type);return l.style.backgroundColor=(r=d.background)!==null&&r!==void 0?r:"",l.style.color=(s=d.foreground)!==null&&s!==void 0?s:"",l.style.border=d.border?`1px solid ${d.border}`:"",append$1(e,l),null},onHide:()=>{this.state="closed"},layout:t});let i;this.message.type===3?i=localize("alertErrorMessage","Error: {0}",this.message.content):this.message.type===2?i=localize("alertWarningMessage","Warning: {0}",this.message.content):i=localize("alertInfoMessage","Info: {0}",this.message.content),alert(i),this.state="open"}_hideMessage(){this.contextViewProvider&&(this.state==="open"&&this.contextViewProvider.hideContextView(),this.state="idle")}onValueChange(){this._onDidChange.fire(this.value),this.validate(),this.updateMirror(),this.input.classList.toggle("empty",!this.value),this.state==="open"&&this.contextViewProvider&&this.contextViewProvider.layout()}updateMirror(){if(!this.mirror)return;const e=this.value,i=e.charCodeAt(e.length-1)===10?" ":"";(e+i).replace(/\u000c/g,"")?this.mirror.textContent=e+i:this.mirror.innerText=" ",this.layout()}applyStyles(){var e,t,i;const n=this.options.inputBoxStyles,r=(e=n.inputBackground)!==null&&e!==void 0?e:"",s=(t=n.inputForeground)!==null&&t!==void 0?t:"",a=(i=n.inputBorder)!==null&&i!==void 0?i:"";this.element.style.backgroundColor=r,this.element.style.color=s,this.input.style.backgroundColor="inherit",this.input.style.color=s,this.element.style.border=`1px solid ${asCssValueWithDefault(a,"transparent")}`}layout(){if(!this.mirror)return;const e=this.cachedContentHeight;this.cachedContentHeight=getTotalHeight(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,r=t.value;i!==null&&n!==null&&(this.value=r.substr(0,i)+e+r.substr(n),t.setSelectionRange(i+1,i+1),this.layout())}dispose(){var e;this._hideMessage(),this.message=null,(e=this.actionbar)===null||e===void 0||e.dispose(),super.dispose()}};class HistoryInputBox extends InputBox$1{constructor(e,t,i){const n=localize({},"for history"),r=` or ⇅ ${n}`,s=` (⇅ ${n})`;super(e,t,i),this._onDidFocus=this._register(new Emitter$1),this.onDidFocus=this._onDidFocus.event,this._onDidBlur=this._register(new Emitter$1),this.onDidBlur=this._onDidBlur.event,this.history=new HistoryNavigator(i.history,100);const a=()=>{if(i.showHistoryHint&&i.showHistoryHint()&&!this.placeholder.endsWith(r)&&!this.placeholder.endsWith(s)&&this.history.getHistory().length){const l=this.placeholder.endsWith(")")?r:s,d=this.placeholder+l;i.showPlaceholderOnFocus&&document.activeElement!==this.input?this.placeholder=d:this.setPlaceHolder(d)}};this.observer=new MutationObserver((l,d)=>{l.forEach(c=>{c.target.textContent||a()})}),this.observer.observe(this.input,{attributeFilter:["class"]}),this.onfocus(this.input,()=>a()),this.onblur(this.input,()=>{const l=d=>{if(this.placeholder.endsWith(d)){const c=this.placeholder.slice(0,this.placeholder.length-d.length);return i.showPlaceholderOnFocus?this.placeholder=c:this.setPlaceHolder(c),!0}else return!1};l(s)||l(r)})}dispose(){super.dispose(),this.observer&&(this.observer.disconnect(),this.observer=void 0)}addToHistory(e){this.value&&(e||this.value!==this.getCurrentValue())&&this.history.add(this.value)}isAtLastInHistory(){return this.history.isLast()}isNowhereInHistory(){return this.history.isNowhere()}showNextValue(){this.history.has(this.value)||this.addToHistory();let e=this.getNextValue();e&&(e=e===this.value?this.getNextValue():e),this.value=e??"",status(this.value?this.value:localize("clearedInput","Cleared Input"))}showPreviousValue(){this.history.has(this.value)||this.addToHistory();let e=this.getPreviousValue();e&&(e=e===this.value?this.getPreviousValue():e),e&&(this.value=e,status(this.value))}onBlur(){super.onBlur(),this._onDidBlur.fire()}onFocus(){super.onFocus(),this._onDidFocus.fire()}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()}}const NLS_DEFAULT_LABEL$1=localize("defaultLabel","input");class FindInput extends Widget$1{constructor(e,t,i){super(),this.fixFocusOnOptionClickEnabled=!0,this.imeSessionInProgress=!1,this.additionalTogglesDisposables=this._register(new MutableDisposable),this.additionalToggles=[],this._onDidOptionChange=this._register(new Emitter$1),this.onDidOptionChange=this._onDidOptionChange.event,this._onKeyDown=this._register(new Emitter$1),this.onKeyDown=this._onKeyDown.event,this._onMouseDown=this._register(new Emitter$1),this.onMouseDown=this._onMouseDown.event,this._onInput=this._register(new Emitter$1),this._onKeyUp=this._register(new Emitter$1),this._onCaseSensitiveKeyDown=this._register(new Emitter$1),this.onCaseSensitiveKeyDown=this._onCaseSensitiveKeyDown.event,this._onRegexKeyDown=this._register(new Emitter$1),this.onRegexKeyDown=this._onRegexKeyDown.event,this._lastHighlightFindOptions=0,this.placeholder=i.placeholder||"",this.validation=i.validation,this.label=i.label||NLS_DEFAULT_LABEL$1,this.showCommonFindToggles=!!i.showCommonFindToggles;const n=i.appendCaseSensitiveLabel||"",r=i.appendWholeWordsLabel||"",s=i.appendRegexLabel||"",a=i.history||[],l=!!i.flexibleHeight,d=!!i.flexibleWidth,c=i.flexibleMaxHeight;if(this.domNode=document.createElement("div"),this.domNode.classList.add("monaco-findInput"),this.inputBox=this._register(new HistoryInputBox(this.domNode,t,{placeholder:this.placeholder||"",ariaLabel:this.label||"",validationOptions:{validation:this.validation},history:a,showHistoryHint:i.showHistoryHint,flexibleHeight:l,flexibleWidth:d,flexibleMaxHeight:c,inputBoxStyles:i.inputBoxStyles})),this.showCommonFindToggles){this.regex=this._register(new RegexToggle(Object.assign({appendTitle:s,isChecked:!1},i.toggleStyles))),this._register(this.regex.onChange(g=>{this._onDidOptionChange.fire(g),!g&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.regex.onKeyDown(g=>{this._onRegexKeyDown.fire(g)})),this.wholeWords=this._register(new WholeWordsToggle(Object.assign({appendTitle:r,isChecked:!1},i.toggleStyles))),this._register(this.wholeWords.onChange(g=>{this._onDidOptionChange.fire(g),!g&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this.caseSensitive=this._register(new CaseSensitiveToggle(Object.assign({appendTitle:n,isChecked:!1},i.toggleStyles))),this._register(this.caseSensitive.onChange(g=>{this._onDidOptionChange.fire(g),!g&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.caseSensitive.onKeyDown(g=>{this._onCaseSensitiveKeyDown.fire(g)}));const u=[this.caseSensitive.domNode,this.wholeWords.domNode,this.regex.domNode];this.onkeydown(this.domNode,g=>{if(g.equals(15)||g.equals(17)||g.equals(9)){const f=u.indexOf(document.activeElement);if(f>=0){let p=-1;g.equals(17)?p=(f+1)%u.length:g.equals(15)&&(f===0?p=u.length-1:p=f-1),g.equals(9)?(u[f].blur(),this.inputBox.focus()):p>=0&&u[p].focus(),EventHelper.stop(g,!0)}}})}this.controls=document.createElement("div"),this.controls.className="controls",this.controls.style.display=this.showCommonFindToggles?"":"none",this.caseSensitive&&this.controls.append(this.caseSensitive.domNode),this.wholeWords&&this.controls.appendChild(this.wholeWords.domNode),this.regex&&this.controls.appendChild(this.regex.domNode),this.setAdditionalToggles(i==null?void 0:i.additionalToggles),this.controls&&this.domNode.appendChild(this.controls),e==null||e.appendChild(this.domNode),this._register(addDisposableListener(this.inputBox.inputElement,"compositionstart",u=>{this.imeSessionInProgress=!0})),this._register(addDisposableListener(this.inputBox.inputElement,"compositionend",u=>{this.imeSessionInProgress=!1,this._onInput.fire()})),this.onkeydown(this.inputBox.inputElement,u=>this._onKeyDown.fire(u)),this.onkeyup(this.inputBox.inputElement,u=>this._onKeyUp.fire(u)),this.oninput(this.inputBox.inputElement,u=>this._onInput.fire()),this.onmousedown(this.inputBox.inputElement,u=>this._onMouseDown.fire(u))}get onDidChange(){return this.inputBox.onDidChange}layout(e){this.inputBox.layout(),this.updateInputBoxPadding(e.collapsedFindWidget)}enable(){var e,t,i;this.domNode.classList.remove("disabled"),this.inputBox.enable(),(e=this.regex)===null||e===void 0||e.enable(),(t=this.wholeWords)===null||t===void 0||t.enable(),(i=this.caseSensitive)===null||i===void 0||i.enable();for(const n of this.additionalToggles)n.enable()}disable(){var e,t,i;this.domNode.classList.add("disabled"),this.inputBox.disable(),(e=this.regex)===null||e===void 0||e.disable(),(t=this.wholeWords)===null||t===void 0||t.disable(),(i=this.caseSensitive)===null||i===void 0||i.disable();for(const n of this.additionalToggles)n.disable()}setFocusInputOnOptionClick(e){this.fixFocusOnOptionClickEnabled=e}setEnabled(e){e?this.enable():this.disable()}setAdditionalToggles(e){for(const t of this.additionalToggles)t.domNode.remove();this.additionalToggles=[],this.additionalTogglesDisposables.value=new DisposableStore;for(const t of e??[])this.additionalTogglesDisposables.value.add(t),this.controls.appendChild(t.domNode),this.additionalTogglesDisposables.value.add(t.onChange(i=>{this._onDidOptionChange.fire(i),!i&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus()})),this.additionalToggles.push(t);this.additionalToggles.length>0&&(this.controls.style.display=""),this.updateInputBoxPadding()}updateInputBoxPadding(e=!1){var t,i,n,r,s,a;e?this.inputBox.paddingRight=0:this.inputBox.paddingRight=((i=(t=this.caseSensitive)===null||t===void 0?void 0:t.width())!==null&&i!==void 0?i:0)+((r=(n=this.wholeWords)===null||n===void 0?void 0:n.width())!==null&&r!==void 0?r:0)+((a=(s=this.regex)===null||s===void 0?void 0:s.width())!==null&&a!==void 0?a:0)+this.additionalToggles.reduce((l,d)=>l+d.width(),0)}getValue(){return this.inputBox.value}setValue(e){this.inputBox.value!==e&&(this.inputBox.value=e)}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getCaseSensitive(){var e,t;return(t=(e=this.caseSensitive)===null||e===void 0?void 0:e.checked)!==null&&t!==void 0?t:!1}setCaseSensitive(e){this.caseSensitive&&(this.caseSensitive.checked=e)}getWholeWords(){var e,t;return(t=(e=this.wholeWords)===null||e===void 0?void 0:e.checked)!==null&&t!==void 0?t:!1}setWholeWords(e){this.wholeWords&&(this.wholeWords.checked=e)}getRegex(){var e,t;return(t=(e=this.regex)===null||e===void 0?void 0:e.checked)!==null&&t!==void 0?t:!1}setRegex(e){this.regex&&(this.regex.checked=e,this.validate())}focusOnCaseSensitive(){var e;(e=this.caseSensitive)===null||e===void 0||e.focus()}highlightFindOptions(){this.domNode.classList.remove("highlight-"+this._lastHighlightFindOptions),this._lastHighlightFindOptions=1-this._lastHighlightFindOptions,this.domNode.classList.add("highlight-"+this._lastHighlightFindOptions)}validate(){this.inputBox.validate()}showMessage(e){this.inputBox.showMessage(e)}clearMessage(){this.inputBox.hideMessage()}}var ObjectTreeElementCollapseState;(function(o){o[o.Expanded=0]="Expanded",o[o.Collapsed=1]="Collapsed",o[o.PreserveOrExpanded=2]="PreserveOrExpanded",o[o.PreserveOrCollapsed=3]="PreserveOrCollapsed"})(ObjectTreeElementCollapseState||(ObjectTreeElementCollapseState={}));var TreeMouseEventTarget;(function(o){o[o.Unknown=0]="Unknown",o[o.Twistie=1]="Twistie",o[o.Element=2]="Element",o[o.Filter=3]="Filter"})(TreeMouseEventTarget||(TreeMouseEventTarget={}));class TreeError extends Error{constructor(e,t){super(`TreeError [${e}] ${t}`)}}class WeakMapper{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}}function isFilterResult(o){return typeof o=="object"&&"visibility"in o&&"data"in o}function getVisibleState(o){switch(o){case!0:return 1;case!1:return 0;default:return o}}function isCollapsibleStateUpdate(o){return typeof o.collapsible=="boolean"}class IndexTreeModel{constructor(e,t,i,n={}){this.user=e,this.list=t,this.rootRef=[],this.eventBufferer=new EventBufferer,this._onDidChangeCollapseState=new Emitter$1,this.onDidChangeCollapseState=this.eventBufferer.wrapEvent(this._onDidChangeCollapseState.event),this._onDidChangeRenderNodeCount=new Emitter$1,this.onDidChangeRenderNodeCount=this.eventBufferer.wrapEvent(this._onDidChangeRenderNodeCount.event),this._onDidSplice=new Emitter$1,this.onDidSplice=this._onDidSplice.event,this.refilterDelayer=new Delayer(MicrotaskDelay),this.collapseByDefault=typeof n.collapseByDefault>"u"?!1:n.collapseByDefault,this.filter=n.filter,this.autoExpandSingleChildren=typeof n.autoExpandSingleChildren>"u"?!1: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=Iterable.empty(),n={}){if(e.length===0)throw new TreeError(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,r,s){var a;n===void 0&&(n=Iterable.empty()),s===void 0&&(s=(a=r.diffDepth)!==null&&a!==void 0?a:0);const{parentNode:l}=this.getParentNodeWithListIndex(t);if(!l.lastDiffIds)return this.spliceSimple(t,i,n,r);const d=[...n],c=t[t.length-1],u=new LcsDiff({getElements:()=>l.lastDiffIds},{getElements:()=>[...l.children.slice(0,c),...d,...l.children.slice(c+i)].map(b=>e.getId(b.element).toString())}).ComputeDiff(!1);if(u.quitEarly)return l.lastDiffIds=void 0,this.spliceSimple(t,i,d,r);const g=t.slice(0,-1),f=(b,_,C)=>{if(s>0)for(let S=0;S<C;S++)b--,_--,this.spliceSmart(e,[...g,b,0],Number.MAX_SAFE_INTEGER,d[_].children,r,s-1)};let p=Math.min(l.children.length,c+i),m=d.length;for(const b of u.changes.sort((_,C)=>C.originalStart-_.originalStart))f(p,m,p-(b.originalStart+b.originalLength)),p=b.originalStart,m=b.modifiedStart-c,this.spliceSimple([...g,p],b.originalLength,Iterable.slice(d,m,m+b.modifiedLength),r);f(p,m,p)}spliceSimple(e,t,i=Iterable.empty(),{onDidCreateNode:n,onDidDeleteNode:r,diffIdentityProvider:s}){const{parentNode:a,listIndex:l,revealed:d,visible:c}=this.getParentNodeWithListIndex(e),u=[],g=Iterable.map(i,L=>this.createTreeNode(L,a,a.visible?1:0,d,u,n)),f=e[e.length-1],p=a.children.length>0;let m=0;for(let L=f;L>=0&&L<a.children.length;L--){const I=a.children[L];if(I.visible){m=I.visibleChildIndex;break}}const b=[];let _=0,C=0;for(const L of g)b.push(L),C+=L.renderNodeCount,L.visible&&(L.visibleChildIndex=m+_++);const S=splice$1(a.children,f,t,b);s?a.lastDiffIds?splice$1(a.lastDiffIds,f,t,b.map(L=>s.getId(L.element).toString())):a.lastDiffIds=a.children.map(L=>s.getId(L.element).toString()):a.lastDiffIds=void 0;let y=0;for(const L of S)L.visible&&y++;if(y!==0)for(let L=f+b.length;L<a.children.length;L++){const I=a.children[L];I.visible&&(I.visibleChildIndex-=y)}if(a.visibleChildrenCount+=_-y,d&&c){const L=S.reduce((I,D)=>I+(D.visible?D.renderNodeCount:0),0);this._updateAncestorsRenderNodeCount(a,C-L),this.list.splice(l,L,u)}if(S.length>0&&r){const L=I=>{r(I),I.children.forEach(L)};S.forEach(L)}this._onDidSplice.fire({insertedNodes:b,deletedNodes:S});const E=a.children.length>0;p!==E&&this.setCollapsible(e.slice(0,-1),E);let x=a;for(;x;){if(x.visibility===2){this.refilterDelayer.trigger(()=>this.refilter());break}x=x.parent}}rerender(e){if(e.length===0)throw new TreeError(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);typeof t>"u"&&(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);typeof t>"u"&&(t=!n.collapsed);const r={collapsed:t,recursive:i||!1};return this.eventBufferer.bufferEvents(()=>this._setCollapseState(e,r))}_setCollapseState(e,t){const{node:i,listIndex:n,revealed:r}=this.getTreeNodeWithListIndex(e),s=this._setListNodeCollapseState(i,n,r,t);if(i!==this.root&&this.autoExpandSingleChildren&&s&&!isCollapsibleStateUpdate(t)&&i.collapsible&&!i.collapsed&&!t.recursive){let a=-1;for(let l=0;l<i.children.length;l++)if(i.children[l].visible)if(a>-1){a=-1;break}else a=l;a>-1&&this._setCollapseState([...e,a],t)}return s}_setListNodeCollapseState(e,t,i,n){const r=this._setNodeCollapseState(e,n,!1);if(!i||!e.visible||!r)return r;const s=e.renderNodeCount,a=this.updateNodeAfterCollapseChange(e),l=s-(t===-1?0:1);return this.list.splice(t+1,l,a.slice(1)),r}_setNodeCollapseState(e,t,i){let n;if(e===this.root?n=!1:(isCollapsibleStateUpdate(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})),!isCollapsibleStateUpdate(t)&&t.recursive)for(const r of e.children)n=this._setNodeCollapseState(r,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),this.refilterDelayer.cancel()}createTreeNode(e,t,i,n,r,s){const a={parent:t,element:e.element,children:[],depth:t.depth+1,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:typeof e.collapsible=="boolean"?e.collapsible:typeof e.collapsed<"u",collapsed:typeof e.collapsed>"u"?this.collapseByDefault:e.collapsed,renderNodeCount:1,visibility:1,visible:!0,filterData:void 0},l=this._filterNode(a,i);a.visibility=l,n&&r.push(a);const d=e.children||Iterable.empty(),c=n&&l!==0&&!a.collapsed;let u=0,g=1;for(const f of d){const p=this.createTreeNode(f,a,l,c,r,s);a.children.push(p),g+=p.renderNodeCount,p.visible&&(p.visibleChildIndex=u++)}return a.collapsible=a.collapsible||a.children.length>0,a.visibleChildrenCount=u,a.visible=l===2?u>0:l===1,a.visible?a.collapsed||(a.renderNodeCount=g):(a.renderNodeCount=0,n&&r.pop()),s==null||s(a),a}updateNodeAfterCollapseChange(e){const t=e.renderNodeCount,i=[];return this._updateNodeAfterCollapseChange(e,i),this._updateAncestorsRenderNodeCount(e.parent,i.length-t),i}_updateNodeAfterCollapseChange(e,t){if(e.visible===!1)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 r;if(e!==this.root){if(r=this._filterNode(e,t),r===0)return e.visible=!1,e.renderNodeCount=0,!1;n&&i.push(e)}const s=i.length;e.renderNodeCount=e===this.root?0:1;let a=!1;if(!e.collapsed||r!==0){let l=0;for(const d of e.children)a=this._updateNodeAfterFilterChange(d,r,i,n&&!e.collapsed)||a,d.visible&&(d.visibleChildIndex=l++);e.visibleChildrenCount=l}else e.visibleChildrenCount=0;return e!==this.root&&(e.visible=r===2?a:r===1,e.visibility=r),e.visible?e.collapsed||(e.renderNodeCount+=i.length-s):(e.renderNodeCount=0,n&&i.pop()),this._onDidChangeRenderNodeCount.fire(e),e.visible}_updateAncestorsRenderNodeCount(e,t){if(t!==0)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 typeof i=="boolean"?(e.filterData=void 0,i?1:0):isFilterResult(i)?(e.filterData=i.data,getVisibleState(i.visibility)):(e.filterData=void 0,getVisibleState(i))}hasTreeNode(e,t=this.root){if(!e||e.length===0)return!0;const[i,...n]=e;return i<0||i>t.children.length?!1:this.hasTreeNode(n,t.children[i])}getTreeNode(e,t=this.root){if(!e||e.length===0)return t;const[i,...n]=e;if(i<0||i>t.children.length)throw new TreeError(this.user,"Invalid tree location");return this.getTreeNode(n,t.children[i])}getTreeNodeWithListIndex(e){if(e.length===0)return{node:this.root,listIndex:-1,revealed:!0,visible:!1};const{parentNode:t,listIndex:i,revealed:n,visible:r}=this.getParentNodeWithListIndex(e),s=e[e.length-1];if(s<0||s>t.children.length)throw new TreeError(this.user,"Invalid tree location");const a=t.children[s];return{node:a,listIndex:i,revealed:n,visible:r&&a.visible}}getParentNodeWithListIndex(e,t=this.root,i=0,n=!0,r=!0){const[s,...a]=e;if(s<0||s>t.children.length)throw new TreeError(this.user,"Invalid tree location");for(let l=0;l<s;l++)i+=t.children[l].renderNodeCount;return n=n&&!t.collapsed,r=r&&t.visible,a.length===0?{parentNode:t,listIndex:i,revealed:n,visible:r}:this.getParentNodeWithListIndex(a,t.children[s],i+1,n,r)}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){if(e.length!==0)return e.length===1?[]:tail2(e)[0]}getFirstElementChild(e){const t=this.getTreeNode(e);if(t.children.length!==0)return t.children[0].element}}class TreeElementsDragAndDropData extends ElementsDragAndDropData{constructor(e){super(e.elements.map(t=>t.element)),this.data=e}}function asTreeDragAndDropData(o){return o instanceof ElementsDragAndDropData?new TreeElementsDragAndDropData(o):o}class TreeNodeListDragAndDrop{constructor(e,t){this.modelProvider=e,this.dnd=t,this.autoExpandDisposable=Disposable.None,this.disposables=new DisposableStore}getDragURI(e){return this.dnd.getDragURI(e.element)}getDragLabel(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e.map(i=>i.element),t)}onDragStart(e,t){var i,n;(n=(i=this.dnd).onDragStart)===null||n===void 0||n.call(i,asTreeDragAndDropData(e),t)}onDragOver(e,t,i,n,r=!0){const s=this.dnd.onDragOver(asTreeDragAndDropData(e),t&&t.element,i,n),a=this.autoExpandNode!==t;if(a&&(this.autoExpandDisposable.dispose(),this.autoExpandNode=t),typeof t>"u")return s;if(a&&typeof s!="boolean"&&s.autoExpand&&(this.autoExpandDisposable=disposableTimeout(()=>{const g=this.modelProvider(),f=g.getNodeLocation(t);g.isCollapsed(f)&&g.setCollapsed(f,!1),this.autoExpandNode=void 0},500,this.disposables)),typeof s=="boolean"||!s.accept||typeof s.bubble>"u"||s.feedback){if(!r){const g=typeof s=="boolean"?s:s.accept,f=typeof s=="boolean"?void 0:s.effect;return{accept:g,effect:f,feedback:[i]}}return s}if(s.bubble===1){const g=this.modelProvider(),f=g.getNodeLocation(t),p=g.getParentNodeLocation(f),m=g.getNode(p),b=p&&g.getListIndex(p);return this.onDragOver(e,m,b,n,!1)}const l=this.modelProvider(),d=l.getNodeLocation(t),c=l.getListIndex(d),u=l.getListRenderCount(d);return Object.assign(Object.assign({},s),{feedback:range(c,c+u)})}drop(e,t,i,n){this.autoExpandDisposable.dispose(),this.autoExpandNode=void 0,this.dnd.drop(asTreeDragAndDropData(e),t&&t.element,i,n)}onDragEnd(e){var t,i;(i=(t=this.dnd).onDragEnd)===null||i===void 0||i.call(t,e)}dispose(){this.disposables.dispose(),this.dnd.dispose()}}function asListOptions(o,e){return e&&Object.assign(Object.assign({},e),{identityProvider:e.identityProvider&&{getId(t){return e.identityProvider.getId(t.element)}},dnd:e.dnd&&new TreeNodeListDragAndDrop(o,e.dnd),multipleSelectionController:e.multipleSelectionController&&{isSelectionSingleChangeEvent(t){return e.multipleSelectionController.isSelectionSingleChangeEvent(Object.assign(Object.assign({},t),{element:t.element}))},isSelectionRangeChangeEvent(t){return e.multipleSelectionController.isSelectionRangeChangeEvent(Object.assign(Object.assign({},t),{element:t.element}))}},accessibilityProvider:e.accessibilityProvider&&Object.assign(Object.assign({},e.accessibilityProvider),{getSetSize(t){const i=o(),n=i.getNodeLocation(t),r=i.getParentNodeLocation(n);return i.getNode(r).visibleChildrenCount},getPosInSet(t){return t.visibleChildIndex+1},isChecked:e.accessibilityProvider&&e.accessibilityProvider.isChecked?t=>e.accessibilityProvider.isChecked(t.element):void 0,getRole:e.accessibilityProvider&&e.accessibilityProvider.getRole?t=>e.accessibilityProvider.getRole(t.element):()=>"treeitem",getAriaLabel(t){return e.accessibilityProvider.getAriaLabel(t.element)},getWidgetAriaLabel(){return e.accessibilityProvider.getWidgetAriaLabel()},getWidgetRole:e.accessibilityProvider&&e.accessibilityProvider.getWidgetRole?()=>e.accessibilityProvider.getWidgetRole():()=>"tree",getAriaLevel:e.accessibilityProvider&&e.accessibilityProvider.getAriaLevel?t=>e.accessibilityProvider.getAriaLevel(t.element):t=>t.depth,getActiveDescendantId:e.accessibilityProvider.getActiveDescendantId&&(t=>e.accessibilityProvider.getActiveDescendantId(t.element))}),keyboardNavigationLabelProvider:e.keyboardNavigationLabelProvider&&Object.assign(Object.assign({},e.keyboardNavigationLabelProvider),{getKeyboardNavigationLabel(t){return e.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(t.element)}})})}class ComposedTreeDelegate{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){var i,n;(n=(i=this.delegate).setDynamicHeight)===null||n===void 0||n.call(i,e.element,t)}}var RenderIndentGuides;(function(o){o.None="none",o.OnHover="onHover",o.Always="always"})(RenderIndentGuides||(RenderIndentGuides={}));class EventCollection{get elements(){return this._elements}constructor(e,t=[]){this._elements=t,this.disposables=new DisposableStore,this.onDidChange=Event.forEach(e,i=>this._elements=i,this.disposables)}dispose(){this.disposables.dispose()}}class TreeRenderer{constructor(e,t,i,n,r,s={}){var a;this.renderer=e,this.modelProvider=t,this.activeNodes=n,this.renderedIndentGuides=r,this.renderedElements=new Map,this.renderedNodes=new Map,this.indent=TreeRenderer.DefaultIndent,this.hideTwistiesOfChildlessElements=!1,this.shouldRenderIndentGuides=!1,this.activeIndentNodes=new Set,this.indentGuidesDisposable=Disposable.None,this.disposables=new DisposableStore,this.templateId=e.templateId,this.updateOptions(s),Event.map(i,l=>l.node)(this.onDidChangeNodeTwistieState,this,this.disposables),(a=e.onDidChangeTwistieState)===null||a===void 0||a.call(e,this.onDidChangeTwistieState,this,this.disposables)}updateOptions(e={}){if(typeof e.indent<"u"){const t=clamp(e.indent,0,40);if(t!==this.indent){this.indent=t;for(const[i,n]of this.renderedNodes)this.renderTreeElement(i,n)}}if(typeof e.renderIndentGuides<"u"){const t=e.renderIndentGuides!==RenderIndentGuides.None;if(t!==this.shouldRenderIndentGuides){this.shouldRenderIndentGuides=t;for(const[i,n]of this.renderedNodes)this._renderIndentGuides(i,n);if(this.indentGuidesDisposable.dispose(),t){const i=new DisposableStore;this.activeNodes.onDidChange(this._onDidChangeActiveNodes,this,i),this.indentGuidesDisposable=i,this._onDidChangeActiveNodes(this.activeNodes.elements)}}}typeof e.hideTwistiesOfChildlessElements<"u"&&(this.hideTwistiesOfChildlessElements=e.hideTwistiesOfChildlessElements)}renderTemplate(e){const t=append$1(e,$$d(".monaco-tl-row")),i=append$1(t,$$d(".monaco-tl-indent")),n=append$1(t,$$d(".monaco-tl-twistie")),r=append$1(t,$$d(".monaco-tl-contents")),s=this.renderer.renderTemplate(r);return{container:e,indent:i,twistie:n,indentGuidesDisposable:Disposable.None,templateData:s}}renderElement(e,t,i,n){this.renderedNodes.set(e,i),this.renderedElements.set(e.element,e),this.renderTreeElement(e,i),this.renderer.renderElement(e,t,i.templateData,n)}disposeElement(e,t,i,n){var r,s;i.indentGuidesDisposable.dispose(),(s=(r=this.renderer).disposeElement)===null||s===void 0||s.call(r,e,t,i.templateData,n),typeof n=="number"&&(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._onDidChangeActiveNodes(this.activeNodes.elements),this.renderTreeElement(e,t))}renderTreeElement(e,t){const i=TreeRenderer.DefaultIndent+(e.depth-1)*this.indent;t.twistie.style.paddingLeft=`${i}px`,t.indent.style.width=`${i+this.indent-16}px`,e.collapsible?t.container.setAttribute("aria-expanded",String(!e.collapsed)):t.container.removeAttribute("aria-expanded"),t.twistie.classList.remove(...ThemeIcon.asClassNameArray(Codicon.treeItemExpanded));let n=!1;this.renderer.renderTwistie&&(n=this.renderer.renderTwistie(e.element,t.twistie)),e.collapsible&&(!this.hideTwistiesOfChildlessElements||e.visibleChildrenCount>0)?(n||t.twistie.classList.add(...ThemeIcon.asClassNameArray(Codicon.treeItemExpanded)),t.twistie.classList.add("collapsible"),t.twistie.classList.toggle("collapsed",e.collapsed)):t.twistie.classList.remove("collapsible","collapsed"),this._renderIndentGuides(e,t)}_renderIndentGuides(e,t){if(clearNode(t.indent),t.indentGuidesDisposable.dispose(),!this.shouldRenderIndentGuides)return;const i=new DisposableStore,n=this.modelProvider();for(;;){const r=n.getNodeLocation(e),s=n.getParentNodeLocation(r);if(!s)break;const a=n.getNode(s),l=$$d(".indent-guide",{style:`width: ${this.indent}px`});this.activeIndentNodes.has(a)&&l.classList.add("active"),t.indent.childElementCount===0?t.indent.appendChild(l):t.indent.insertBefore(l,t.indent.firstElementChild),this.renderedIndentGuides.add(a,l),i.add(toDisposable(()=>this.renderedIndentGuides.delete(a,l))),e=a}t.indentGuidesDisposable=i}_onDidChangeActiveNodes(e){if(!this.shouldRenderIndentGuides)return;const t=new Set,i=this.modelProvider();e.forEach(n=>{const r=i.getNodeLocation(n);try{const s=i.getParentNodeLocation(r);n.collapsible&&n.children.length>0&&!n.collapsed?t.add(n):s&&t.add(i.getNode(s))}catch{}}),this.activeIndentNodes.forEach(n=>{t.has(n)||this.renderedIndentGuides.forEach(n,r=>r.classList.remove("active"))}),t.forEach(n=>{this.activeIndentNodes.has(n)||this.renderedIndentGuides.forEach(n,r=>r.classList.add("active"))}),this.activeIndentNodes=t}dispose(){this.renderedNodes.clear(),this.renderedElements.clear(),this.indentGuidesDisposable.dispose(),dispose(this.disposables)}}TreeRenderer.DefaultIndent=8;class FindFilter{get totalCount(){return this._totalCount}get matchCount(){return this._matchCount}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 DisposableStore,e.onWillRefilter(this.reset,this,this.disposables)}filter(e,t){let i=1;if(this._filter){const s=this._filter.filter(e,t);if(typeof s=="boolean"?i=s?1:0:isFilterResult(s)?i=getVisibleState(s.visibility):i=s,i===0)return!1}if(this._totalCount++,!this._pattern)return this._matchCount++,{data:FuzzyScore.Default,visibility:i};const n=this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e),r=Array.isArray(n)?n:[n];for(const s of r){const a=s&&s.toString();if(typeof a>"u")return{data:FuzzyScore.Default,visibility:i};let l;if(this.tree.findMatchType===TreeFindMatchType.Contiguous){const d=a.toLowerCase().indexOf(this._lowercasePattern);if(d>-1){l=[Number.MAX_SAFE_INTEGER,0];for(let c=this._lowercasePattern.length;c>0;c--)l.push(d+c-1)}}else l=fuzzyScore(this._pattern,this._lowercasePattern,0,a,a.toLowerCase(),0,{firstMatchCanBeWeak:!0,boostFullMatch:!0});if(l)return this._matchCount++,r.length===1?{data:l,visibility:i}:{data:{label:a,score:l},visibility:i}}return this.tree.findMode===TreeFindMode.Filter?typeof this.tree.options.defaultFindVisibility=="number"?this.tree.options.defaultFindVisibility:this.tree.options.defaultFindVisibility?this.tree.options.defaultFindVisibility(e):2:{data:FuzzyScore.Default,visibility:i}}reset(){this._totalCount=0,this._matchCount=0}dispose(){dispose(this.disposables)}}var TreeFindMode;(function(o){o[o.Highlight=0]="Highlight",o[o.Filter=1]="Filter"})(TreeFindMode||(TreeFindMode={}));var TreeFindMatchType;(function(o){o[o.Fuzzy=0]="Fuzzy",o[o.Contiguous=1]="Contiguous"})(TreeFindMatchType||(TreeFindMatchType={}));let FindController$1=class{get pattern(){return this._pattern}get mode(){return this._mode}set mode(e){e!==this._mode&&(this._mode=e,this.widget&&(this.widget.mode=this._mode),this.tree.refilter(),this.render(),this._onDidChangeMode.fire(e))}get matchType(){return this._matchType}set matchType(e){e!==this._matchType&&(this._matchType=e,this.widget&&(this.widget.matchType=this._matchType),this.tree.refilter(),this.render(),this._onDidChangeMatchType.fire(e))}constructor(e,t,i,n,r,s={}){var a,l;this.tree=e,this.view=i,this.filter=n,this.contextViewProvider=r,this.options=s,this._pattern="",this.width=0,this._onDidChangeMode=new Emitter$1,this.onDidChangeMode=this._onDidChangeMode.event,this._onDidChangeMatchType=new Emitter$1,this.onDidChangeMatchType=this._onDidChangeMatchType.event,this._onDidChangePattern=new Emitter$1,this._onDidChangeOpenState=new Emitter$1,this.onDidChangeOpenState=this._onDidChangeOpenState.event,this.enabledDisposables=new DisposableStore,this.disposables=new DisposableStore,this._mode=(a=e.options.defaultFindMode)!==null&&a!==void 0?a:TreeFindMode.Highlight,this._matchType=(l=e.options.defaultFindMatchType)!==null&&l!==void 0?l:TreeFindMatchType.Fuzzy,t.onDidSplice(this.onDidSpliceModel,this,this.disposables)}updateOptions(e={}){e.defaultFindMode!==void 0&&(this.mode=e.defaultFindMode),e.defaultFindMatchType!==void 0&&(this.matchType=e.defaultFindMatchType)}onDidSpliceModel(){!this.widget||this.pattern.length===0||(this.tree.refilter(),this.render())}render(){var e,t,i,n;const r=this.filter.totalCount>0&&this.filter.matchCount===0;this.pattern&&r?!((e=this.tree.options.showNotFoundMessage)!==null&&e!==void 0)||e?(t=this.widget)===null||t===void 0||t.showMessage({type:2,content:localize("not found","No elements found.")}):(i=this.widget)===null||i===void 0||i.showMessage({type:2}):(n=this.widget)===null||n===void 0||n.clearMessage()}shouldAllowFocus(e){return!this.widget||!this.pattern||this._mode===TreeFindMode.Filter||this.filter.totalCount>0&&this.filter.matchCount<=1?!0:!FuzzyScore.isDefault(e.filterData)}layout(e){var t;this.width=e,(t=this.widget)===null||t===void 0||t.layout(e)}dispose(){this._history=void 0,this._onDidChangePattern.dispose(),this.enabledDisposables.dispose(),this.disposables.dispose()}};function asTreeMouseEvent$1(o){let e=TreeMouseEventTarget.Unknown;return hasParentWithClass(o.browserEvent.target,"monaco-tl-twistie","monaco-tl-row")?e=TreeMouseEventTarget.Twistie:hasParentWithClass(o.browserEvent.target,"monaco-tl-contents","monaco-tl-row")?e=TreeMouseEventTarget.Element:hasParentWithClass(o.browserEvent.target,"monaco-tree-type-filter","monaco-list")&&(e=TreeMouseEventTarget.Filter),{browserEvent:o.browserEvent,element:o.element?o.element.element:null,target:e}}function dfs$1(o,e){e(o),o.children.forEach(t=>dfs$1(t,e))}class Trait{get nodeSet(){return this._nodeSet||(this._nodeSet=this.createNodeSet()),this._nodeSet}constructor(e,t){this.getFirstViewElementWithTrait=e,this.identityProvider=t,this.nodes=[],this._onDidChange=new Emitter$1,this.onDidChange=this._onDidChange.event}set(e,t){!(t!=null&&t.__forceEvent)&&equals$2(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 n=this;this._onDidChange.fire({get elements(){return n.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 l=this.createNodeSet(),d=c=>l.delete(c);t.forEach(c=>dfs$1(c,d)),this.set([...l.values()]);return}const i=new Set,n=l=>i.add(this.identityProvider.getId(l.element).toString());t.forEach(l=>dfs$1(l,n));const r=new Map,s=l=>r.set(this.identityProvider.getId(l.element).toString(),l);e.forEach(l=>dfs$1(l,s));const a=[];for(const l of this.nodes){const d=this.identityProvider.getId(l.element).toString();if(!i.has(d))a.push(l);else{const u=r.get(d);u&&u.visible&&a.push(u)}}if(this.nodes.length>0&&a.length===0){const l=this.getFirstViewElementWithTrait();l&&a.push(l)}this._set(a,!0)}createNodeSet(){const e=new Set;for(const t of this.nodes)e.add(t);return e}}class TreeNodeListMouseController extends MouseController{constructor(e,t){super(e),this.tree=t}onViewPointer(e){if(isButton(e.browserEvent.target)||isInputElement(e.browserEvent.target)||isMonacoEditor(e.browserEvent.target)||e.browserEvent.isHandledByList)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 r=!1;if(typeof this.tree.expandOnlyOnTwistieClick=="function"?r=this.tree.expandOnlyOnTwistieClick(t.element):r=!!this.tree.expandOnlyOnTwistieClick,r&&!n&&e.browserEvent.detail!==2)return super.onViewPointer(e);if(!this.tree.expandOnDoubleClick&&e.browserEvent.detail===2)return super.onViewPointer(e);if(t.collapsible){const s=this.tree.getNodeLocation(t),a=e.browserEvent.altKey;if(this.tree.setFocus([s]),this.tree.toggleCollapsed(s,a),r&&n){e.browserEvent.isHandledByList=!0;return}}super.onViewPointer(e)}onDoubleClick(e){e.browserEvent.target.classList.contains("monaco-tl-twistie")||!this.tree.expandOnDoubleClick||e.browserEvent.isHandledByList||super.onDoubleClick(e)}}class TreeNodeList extends List{constructor(e,t,i,n,r,s,a,l){super(e,t,i,n,l),this.focusTrait=r,this.selectionTrait=s,this.anchorTrait=a}createMouseController(e){return new TreeNodeListMouseController(this,e.tree)}splice(e,t,i=[]){if(super.splice(e,t,i),i.length===0)return;const n=[],r=[];let s;i.forEach((a,l)=>{this.focusTrait.has(a)&&n.push(e+l),this.selectionTrait.has(a)&&r.push(e+l),this.anchorTrait.has(a)&&(s=e+l)}),n.length>0&&super.setFocus(distinct([...super.getFocus(),...n])),r.length>0&&super.setSelection(distinct([...super.getSelection(),...r])),typeof s=="number"&&super.setAnchor(s)}setFocus(e,t,i=!1){super.setFocus(e,t),i||this.focusTrait.set(e.map(n=>this.element(n)),t)}setSelection(e,t,i=!1){super.setSelection(e,t),i||this.selectionTrait.set(e.map(n=>this.element(n)),t)}setAnchor(e,t=!1){super.setAnchor(e),t||(typeof e>"u"?this.anchorTrait.set([]):this.anchorTrait.set([this.element(e)]))}}class AbstractTree{get onDidScroll(){return this.view.onDidScroll}get onDidChangeFocus(){return this.eventBufferer.wrapEvent(this.focus.onDidChange)}get onDidChangeSelection(){return this.eventBufferer.wrapEvent(this.selection.onDidChange)}get onMouseDblClick(){return Event.filter(Event.map(this.view.onMouseDblClick,asTreeMouseEvent$1),e=>e.target!==TreeMouseEventTarget.Filter)}get onPointer(){return Event.map(this.view.onPointer,asTreeMouseEvent$1)}get onDidFocus(){return this.view.onDidFocus}get onDidChangeModel(){return Event.signal(this.model.onDidSplice)}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}get findMode(){var e,t;return(t=(e=this.findController)===null||e===void 0?void 0:e.mode)!==null&&t!==void 0?t:TreeFindMode.Highlight}set findMode(e){this.findController&&(this.findController.mode=e)}get findMatchType(){var e,t;return(t=(e=this.findController)===null||e===void 0?void 0:e.matchType)!==null&&t!==void 0?t:TreeFindMatchType.Fuzzy}set findMatchType(e){this.findController&&(this.findController.matchType=e)}get expandOnDoubleClick(){return typeof this._options.expandOnDoubleClick>"u"?!0:this._options.expandOnDoubleClick}get expandOnlyOnTwistieClick(){return typeof this._options.expandOnlyOnTwistieClick>"u"?!0:this._options.expandOnlyOnTwistieClick}get onDidDispose(){return this.view.onDidDispose}constructor(e,t,i,n,r={}){var s;this._user=e,this._options=r,this.eventBufferer=new EventBufferer,this.onDidChangeFindOpenState=Event.None,this.disposables=new DisposableStore,this._onWillRefilter=new Emitter$1,this.onWillRefilter=this._onWillRefilter.event,this._onDidUpdateOptions=new Emitter$1;const a=new ComposedTreeDelegate(i),l=new Relay,d=new Relay,c=this.disposables.add(new EventCollection(d.event)),u=new SetMap;this.renderers=n.map(b=>new TreeRenderer(b,()=>this.model,l.event,c,u,r));for(const b of this.renderers)this.disposables.add(b);let g;r.keyboardNavigationLabelProvider&&(g=new FindFilter(this,r.keyboardNavigationLabelProvider,r.filter),r=Object.assign(Object.assign({},r),{filter:g}),this.disposables.add(g)),this.focus=new Trait(()=>this.view.getFocusedElements()[0],r.identityProvider),this.selection=new Trait(()=>this.view.getSelectedElements()[0],r.identityProvider),this.anchor=new Trait(()=>this.view.getAnchorElement(),r.identityProvider),this.view=new TreeNodeList(e,t,a,this.renderers,this.focus,this.selection,this.anchor,Object.assign(Object.assign({},asListOptions(()=>this.model,r)),{tree:this})),this.model=this.createModel(e,this.view,r),l.input=this.model.onDidChangeCollapseState;const f=Event.forEach(this.model.onDidSplice,b=>{this.eventBufferer.bufferEvents(()=>{this.focus.onDidModelSplice(b),this.selection.onDidModelSplice(b)})},this.disposables);f(()=>null,null,this.disposables);const p=this.disposables.add(new Emitter$1),m=this.disposables.add(new Delayer(0));if(this.disposables.add(Event.any(f,this.focus.onDidChange,this.selection.onDidChange)(()=>{m.trigger(()=>{const b=new Set;for(const _ of this.focus.getNodes())b.add(_);for(const _ of this.selection.getNodes())b.add(_);p.fire([...b.values()])})})),d.input=p.event,r.keyboardSupport!==!1){const b=Event.chain(this.view.onKeyDown,_=>_.filter(C=>!isInputElement(C.target)).map(C=>new StandardKeyboardEvent(C)));Event.chain(b,_=>_.filter(C=>C.keyCode===15))(this.onLeftArrow,this,this.disposables),Event.chain(b,_=>_.filter(C=>C.keyCode===17))(this.onRightArrow,this,this.disposables),Event.chain(b,_=>_.filter(C=>C.keyCode===10))(this.onSpace,this,this.disposables)}if((!((s=r.findWidgetEnabled)!==null&&s!==void 0)||s)&&r.keyboardNavigationLabelProvider&&r.contextViewProvider){const b=this.options.findWidgetStyles?{styles:this.options.findWidgetStyles}:void 0;this.findController=new FindController$1(this,this.model,this.view,g,r.contextViewProvider,b),this.focusNavigationFilter=_=>this.findController.shouldAllowFocus(_),this.onDidChangeFindOpenState=this.findController.onDidChangeOpenState,this.disposables.add(this.findController),this.onDidChangeFindMode=this.findController.onDidChangeMode,this.onDidChangeFindMatchType=this.findController.onDidChangeMatchType}else this.onDidChangeFindMode=Event.None,this.onDidChangeFindMatchType=Event.None;this.styleElement=createStyleSheet(this.view.getHTMLElement()),this.getHTMLElement().classList.toggle("always",this._options.renderIndentGuides===RenderIndentGuides.Always)}updateOptions(e={}){var t;this._options=Object.assign(Object.assign({},this._options),e);for(const i of this.renderers)i.updateOptions(e);this.view.updateOptions(this._options),(t=this.findController)===null||t===void 0||t.updateOptions(e),this._onDidUpdateOptions.fire(this._options),this.getHTMLElement().classList.toggle("always",this._options.renderIndentGuides===RenderIndentGuides.Always)}get options(){return this._options}getHTMLElement(){return this.view.getHTMLElement()}get scrollTop(){return this.view.scrollTop}set scrollTop(e){this.view.scrollTop=e}get scrollHeight(){return this.view.scrollHeight}get renderHeight(){return this.view.renderHeight}domFocus(){this.view.domFocus()}layout(e,t){var i;this.view.layout(e,t),isNumber$1(t)&&((i=this.findController)===null||i===void 0||i.layout(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.treeInactiveIndentGuidesStroke}; }`),i.push(`.monaco-list${t} .monaco-tl-indent > .indent-guide.active { border-color: ${e.treeIndentGuidesStroke}; }`)),this.styleElement.textContent=i.join(`
- `),this.view.style(e)}getParentElement(e){const t=this.model.getParentNodeLocation(e);return this.model.getNode(t).element}getFirstElementChild(e){return this.model.getFirstElementChild(e)}getNode(e){return this.model.getNode(e)}getNodeLocation(e){return this.model.getNodeLocation(e)}collapse(e,t=!1){return this.model.setCollapsed(e,!0,t)}expand(e,t=!1){return this.model.setCollapsed(e,!1,t)}toggleCollapsed(e,t=!1){return this.model.setCollapsed(e,void 0,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(r=>this.model.getNode(r));this.selection.set(i,t);const n=e.map(r=>this.model.getListIndex(r)).filter(r=>r>-1);this.view.setSelection(n,t,!0)}getSelection(){return this.selection.get()}setFocus(e,t){const i=e.map(r=>this.model.getNode(r));this.focus.set(i,t);const n=e.map(r=>this.model.getListIndex(r)).filter(r=>r>-1);this.view.setFocus(n,t,!0)}getFocus(){return this.focus.get()}reveal(e,t){this.model.expandTo(e);const i=this.model.getListIndex(e);i!==-1&&this.view.reveal(i,t)}onLeftArrow(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(t.length===0)return;const i=t[0],n=this.model.getNodeLocation(i);if(!this.model.setCollapsed(n,!0)){const s=this.model.getParentNodeLocation(n);if(!s)return;const a=this.model.getListIndex(s);this.view.reveal(a),this.view.setFocus([a])}}onRightArrow(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(t.length===0)return;const i=t[0],n=this.model.getNodeLocation(i);if(!this.model.setCollapsed(n,!1)){if(!i.children.some(l=>l.visible))return;const[s]=this.view.getFocus(),a=s+1;this.view.reveal(a),this.view.setFocus([a])}}onSpace(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(t.length===0)return;const i=t[0],n=this.model.getNodeLocation(i),r=e.browserEvent.altKey;this.model.setCollapsed(n,void 0,r)}dispose(){dispose(this.disposables),this.view.dispose()}}class ObjectTreeModel{constructor(e,t,i={}){this.user=e,this.rootRef=null,this.nodes=new Map,this.nodesByIdentity=new Map,this.model=new IndexTreeModel(e,t,null,i),this.onDidSplice=this.model.onDidSplice,this.onDidChangeCollapseState=this.model.onDidChangeCollapseState,this.onDidChangeRenderNodeCount=this.model.onDidChangeRenderNodeCount,i.sorter&&(this.sorter={compare(n,r){return i.sorter.compare(n.element,r.element)}}),this.identityProvider=i.identityProvider}setChildren(e,t=Iterable.empty(),i={}){const n=this.getElementLocation(e);this._setChildren(n,this.preserveCollapseState(t),i)}_setChildren(e,t=Iterable.empty(),i){const n=new Set,r=new Set,s=l=>{var d;if(l.element===null)return;const c=l;if(n.add(c.element),this.nodes.set(c.element,c),this.identityProvider){const u=this.identityProvider.getId(c.element).toString();r.add(u),this.nodesByIdentity.set(u,c)}(d=i.onDidCreateNode)===null||d===void 0||d.call(i,c)},a=l=>{var d;if(l.element===null)return;const c=l;if(n.has(c.element)||this.nodes.delete(c.element),this.identityProvider){const u=this.identityProvider.getId(c.element).toString();r.has(u)||this.nodesByIdentity.delete(u)}(d=i.onDidDeleteNode)===null||d===void 0||d.call(i,c)};this.model.splice([...e,0],Number.MAX_VALUE,t,Object.assign(Object.assign({},i),{onDidCreateNode:s,onDidDeleteNode:a}))}preserveCollapseState(e=Iterable.empty()){return this.sorter&&(e=[...e].sort(this.sorter.compare.bind(this.sorter))),Iterable.map(e,t=>{let i=this.nodes.get(t.element);if(!i&&this.identityProvider){const s=this.identityProvider.getId(t.element).toString();i=this.nodesByIdentity.get(s)}if(!i){let s;return typeof t.collapsed>"u"?s=void 0:t.collapsed===ObjectTreeElementCollapseState.Collapsed||t.collapsed===ObjectTreeElementCollapseState.PreserveOrCollapsed?s=!0:t.collapsed===ObjectTreeElementCollapseState.Expanded||t.collapsed===ObjectTreeElementCollapseState.PreserveOrExpanded?s=!1:s=!!t.collapsed,Object.assign(Object.assign({},t),{children:this.preserveCollapseState(t.children),collapsed:s})}const n=typeof t.collapsible=="boolean"?t.collapsible:i.collapsible;let r;return typeof t.collapsed>"u"||t.collapsed===ObjectTreeElementCollapseState.PreserveOrCollapsed||t.collapsed===ObjectTreeElementCollapseState.PreserveOrExpanded?r=i.collapsed:t.collapsed===ObjectTreeElementCollapseState.Collapsed?r=!0:t.collapsed===ObjectTreeElementCollapseState.Expanded?r=!1:r=!!t.collapsed,Object.assign(Object.assign({},t),{collapsible:n,collapsed:r,children:this.preserveCollapseState(t.children)})})}rerender(e){const t=this.getElementLocation(e);this.model.rerender(t)}getFirstElementChild(e=null){const t=this.getElementLocation(e);return this.model.getFirstElementChild(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(e===null)return this.model.getNode(this.model.rootRef);const t=this.nodes.get(e);if(!t)throw new TreeError(this.user,`Tree element not found: ${e}`);return t}getNodeLocation(e){return e.element}getParentNodeLocation(e){if(e===null)throw new TreeError(this.user,"Invalid getParentNodeLocation call");const t=this.nodes.get(e);if(!t)throw new TreeError(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(e===null)return[];const t=this.nodes.get(e);if(!t)throw new TreeError(this.user,`Tree element not found: ${e}`);return this.model.getNodeLocation(t)}}function noCompress(o){const e=[o.element],t=o.incompressible||!1;return{element:{elements:e,incompressible:t},children:Iterable.map(Iterable.from(o.children),noCompress),collapsible:o.collapsible,collapsed:o.collapsed}}function compress(o){const e=[o.element],t=o.incompressible||!1;let i,n;for(;[n,i]=Iterable.consume(Iterable.from(o.children),2),!(n.length!==1||n[0].incompressible);)o=n[0],e.push(o.element);return{element:{elements:e,incompressible:t},children:Iterable.map(Iterable.concat(n,i),compress),collapsible:o.collapsible,collapsed:o.collapsed}}function _decompress(o,e=0){let t;return e<o.element.elements.length-1?t=[_decompress(o,e+1)]:t=Iterable.map(Iterable.from(o.children),i=>_decompress(i,0)),e===0&&o.element.incompressible?{element:o.element.elements[e],children:t,incompressible:!0,collapsible:o.collapsible,collapsed:o.collapsed}:{element:o.element.elements[e],children:t,collapsible:o.collapsible,collapsed:o.collapsed}}function decompress(o){return _decompress(o,0)}function splice(o,e,t){return o.element===e?Object.assign(Object.assign({},o),{children:t}):Object.assign(Object.assign({},o),{children:Iterable.map(Iterable.from(o.children),i=>splice(i,e,t))})}const wrapIdentityProvider=o=>({getId(e){return e.elements.map(t=>o.getId(t).toString()).join("\0")}});class CompressedObjectTreeModel{get onDidSplice(){return this.model.onDidSplice}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}get onDidChangeRenderNodeCount(){return this.model.onDidChangeRenderNodeCount}constructor(e,t,i={}){this.user=e,this.rootRef=null,this.nodes=new Map,this.model=new ObjectTreeModel(e,t,i),this.enabled=typeof i.compressionEnabled>"u"?!0:i.compressionEnabled,this.identityProvider=i.identityProvider}setChildren(e,t=Iterable.empty(),i){const n=i.diffIdentityProvider&&wrapIdentityProvider(i.diffIdentityProvider);if(e===null){const p=Iterable.map(t,this.enabled?compress:noCompress);this._setChildren(null,p,{diffIdentityProvider:n,diffDepth:1/0});return}const r=this.nodes.get(e);if(!r)throw new TreeError(this.user,"Unknown compressed tree node");const s=this.model.getNode(r),a=this.model.getParentNodeLocation(r),l=this.model.getNode(a),d=decompress(s),c=splice(d,e,t),u=(this.enabled?compress:noCompress)(c),g=i.diffIdentityProvider?(p,m)=>i.diffIdentityProvider.getId(p)===i.diffIdentityProvider.getId(m):void 0;if(equals$2(u.element.elements,s.element.elements,g)){this._setChildren(r,u.children||Iterable.empty(),{diffIdentityProvider:n,diffDepth:1});return}const f=l.children.map(p=>p===s?u:p);this._setChildren(l.element,f,{diffIdentityProvider:n,diffDepth:s.depth-l.depth})}setCompressionEnabled(e){if(e===this.enabled)return;this.enabled=e;const i=this.model.getNode().children,n=Iterable.map(i,decompress),r=Iterable.map(n,e?compress:noCompress);this._setChildren(null,r,{diffIdentityProvider:this.identityProvider,diffDepth:1/0})}_setChildren(e,t,i){const n=new Set,r=a=>{for(const l of a.element.elements)n.add(l),this.nodes.set(l,a.element)},s=a=>{for(const l of a.element.elements)n.has(l)||this.nodes.delete(l)};this.model.setChildren(e,t,Object.assign(Object.assign({},i),{onDidCreateNode:r,onDidDeleteNode:s}))}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(typeof e>"u")return this.model.getNode();const t=this.getCompressedNode(e);return this.model.getNode(t)}getNodeLocation(e){const t=this.model.getNodeLocation(e);return t===null?null:t.elements[t.elements.length-1]}getParentNodeLocation(e){const t=this.getCompressedNode(e),i=this.model.getParentNodeLocation(t);return i===null?null:i.elements[i.elements.length-1]}getFirstElementChild(e){const t=this.getCompressedNode(e);return this.model.getFirstElementChild(t)}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(e===null)return null;const t=this.nodes.get(e);if(!t)throw new TreeError(this.user,`Tree element not found: ${e}`);return t}}const DefaultElementMapper=o=>o[o.length-1];class CompressedTreeNodeWrapper{get element(){return this.node.element===null?null:this.unwrapper(this.node.element)}get children(){return this.node.children.map(e=>new CompressedTreeNodeWrapper(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}constructor(e,t){this.unwrapper=e,this.node=t}}function mapList(o,e){return{splice(t,i,n){e.splice(t,i,n.map(r=>o.map(r)))},updateElementHeight(t,i){e.updateElementHeight(t,i)}}}function mapOptions(o,e){return Object.assign(Object.assign({},e),{identityProvider:e.identityProvider&&{getId(t){return e.identityProvider.getId(o(t))}},sorter:e.sorter&&{compare(t,i){return e.sorter.compare(t.elements[0],i.elements[0])}},filter:e.filter&&{filter(t,i){return e.filter.filter(o(t),i)}}})}class CompressibleObjectTreeModel{get onDidSplice(){return Event.map(this.model.onDidSplice,({insertedNodes:e,deletedNodes:t})=>({insertedNodes:e.map(i=>this.nodeMapper.map(i)),deletedNodes:t.map(i=>this.nodeMapper.map(i))}))}get onDidChangeCollapseState(){return Event.map(this.model.onDidChangeCollapseState,({node:e,deep:t})=>({node:this.nodeMapper.map(e),deep:t}))}get onDidChangeRenderNodeCount(){return Event.map(this.model.onDidChangeRenderNodeCount,e=>this.nodeMapper.map(e))}constructor(e,t,i={}){this.rootRef=null,this.elementMapper=i.elementMapper||DefaultElementMapper;const n=r=>this.elementMapper(r.elements);this.nodeMapper=new WeakMapper(r=>new CompressedTreeNodeWrapper(n,r)),this.model=new CompressedObjectTreeModel(e,mapList(this.nodeMapper,t),mapOptions(n,i))}setChildren(e,t=Iterable.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)}getFirstElementChild(e){const t=this.model.getFirstElementChild(e);return t===null||typeof t>"u"?t:this.elementMapper(t.elements)}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 __decorate$1L=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r};class ObjectTree extends AbstractTree{get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}constructor(e,t,i,n,r={}){super(e,t,i,n,r),this.user=e}setChildren(e,t=Iterable.empty(),i){this.model.setChildren(e,t,i)}rerender(e){if(e===void 0){this.view.rerender();return}this.model.rerender(e)}hasElement(e){return this.model.has(e)}createModel(e,t,i){return new ObjectTreeModel(e,t,i)}}class CompressibleRenderer{get compressedTreeNodeProvider(){return this._compressedTreeNodeProvider()}constructor(e,t){this._compressedTreeNodeProvider=e,this.renderer=t,this.templateId=t.templateId,t.onDidChangeTwistieState&&(this.onDidChangeTwistieState=t.onDidChangeTwistieState)}renderTemplate(e){return{compressedTreeNode:void 0,data:this.renderer.renderTemplate(e)}}renderElement(e,t,i,n){const r=this.compressedTreeNodeProvider.getCompressedTreeNode(e.element);r.element.elements.length===1?(i.compressedTreeNode=void 0,this.renderer.renderElement(e,t,i.data,n)):(i.compressedTreeNode=r,this.renderer.renderCompressedElements(r,t,i.data,n))}disposeElement(e,t,i,n){var r,s,a,l;i.compressedTreeNode?(s=(r=this.renderer).disposeCompressedElements)===null||s===void 0||s.call(r,i.compressedTreeNode,t,i.data,n):(l=(a=this.renderer).disposeElement)===null||l===void 0||l.call(a,e,t,i.data,n)}disposeTemplate(e){this.renderer.disposeTemplate(e.data)}renderTwistie(e,t){return this.renderer.renderTwistie?this.renderer.renderTwistie(e,t):!1}}__decorate$1L([memoize],CompressibleRenderer.prototype,"compressedTreeNodeProvider",null);function asObjectTreeOptions$1(o,e){return e&&Object.assign(Object.assign({},e),{keyboardNavigationLabelProvider:e.keyboardNavigationLabelProvider&&{getKeyboardNavigationLabel(t){let i;try{i=o().getCompressedTreeNode(t)}catch{return e.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(t)}return i.element.elements.length===1?e.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(t):e.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(i.element.elements)}}})}class CompressibleObjectTree extends ObjectTree{constructor(e,t,i,n,r={}){const s=()=>this,a=n.map(l=>new CompressibleRenderer(s,l));super(e,t,i,a,asObjectTreeOptions$1(s,r))}setChildren(e,t=Iterable.empty(),i){this.model.setChildren(e,t,i)}createModel(e,t,i){return new CompressibleObjectTreeModel(e,t,i)}updateOptions(e={}){super.updateOptions(e),typeof e.compressionEnabled<"u"&&this.model.setCompressionEnabled(e.compressionEnabled)}getCompressedTreeNode(e=null){return this.model.getCompressedTreeNode(e)}}var __awaiter$1j=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};function createAsyncDataTreeNode(o){return Object.assign(Object.assign({},o),{children:[],refreshPromise:void 0,stale:!0,slow:!1,collapsedByDefault:void 0})}function isAncestor(o,e){return e.parent?e.parent===o?!0:isAncestor(o,e.parent):!1}function intersects(o,e){return o===e||isAncestor(o,e)||isAncestor(e,o)}class AsyncDataTreeNodeWrapper{get element(){return this.node.element.element}get children(){return this.node.children.map(e=>new AsyncDataTreeNodeWrapper(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}constructor(e){this.node=e}}class AsyncDataTreeRenderer{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(...ThemeIcon.asClassNameArray(Codicon.treeItemLoading)),!0):(t.classList.remove(...ThemeIcon.asClassNameArray(Codicon.treeItemLoading)),!1)}disposeElement(e,t,i,n){var r,s;(s=(r=this.renderer).disposeElement)===null||s===void 0||s.call(r,this.nodeMapper.map(e),t,i.templateData,n)}disposeTemplate(e){this.renderer.disposeTemplate(e.templateData)}dispose(){this.renderedNodes.clear()}}function asTreeEvent(o){return{browserEvent:o.browserEvent,elements:o.elements.map(e=>e.element)}}function asTreeMouseEvent(o){return{browserEvent:o.browserEvent,element:o.element&&o.element.element,target:o.target}}class AsyncDataTreeElementsDragAndDropData extends ElementsDragAndDropData{constructor(e){super(e.elements.map(t=>t.element)),this.data=e}}function asAsyncDataTreeDragAndDropData(o){return o instanceof ElementsDragAndDropData?new AsyncDataTreeElementsDragAndDropData(o):o}class AsyncDataTreeNodeListDragAndDrop{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(i=>i.element),t)}onDragStart(e,t){var i,n;(n=(i=this.dnd).onDragStart)===null||n===void 0||n.call(i,asAsyncDataTreeDragAndDropData(e),t)}onDragOver(e,t,i,n,r=!0){return this.dnd.onDragOver(asAsyncDataTreeDragAndDropData(e),t&&t.element,i,n)}drop(e,t,i,n){this.dnd.drop(asAsyncDataTreeDragAndDropData(e),t&&t.element,i,n)}onDragEnd(e){var t,i;(i=(t=this.dnd).onDragEnd)===null||i===void 0||i.call(t,e)}dispose(){this.dnd.dispose()}}function asObjectTreeOptions(o){return o&&Object.assign(Object.assign({},o),{collapseByDefault:!0,identityProvider:o.identityProvider&&{getId(e){return o.identityProvider.getId(e.element)}},dnd:o.dnd&&new AsyncDataTreeNodeListDragAndDrop(o.dnd),multipleSelectionController:o.multipleSelectionController&&{isSelectionSingleChangeEvent(e){return o.multipleSelectionController.isSelectionSingleChangeEvent(Object.assign(Object.assign({},e),{element:e.element}))},isSelectionRangeChangeEvent(e){return o.multipleSelectionController.isSelectionRangeChangeEvent(Object.assign(Object.assign({},e),{element:e.element}))}},accessibilityProvider:o.accessibilityProvider&&Object.assign(Object.assign({},o.accessibilityProvider),{getPosInSet:void 0,getSetSize:void 0,getRole:o.accessibilityProvider.getRole?e=>o.accessibilityProvider.getRole(e.element):()=>"treeitem",isChecked:o.accessibilityProvider.isChecked?e=>{var t;return!!(!((t=o.accessibilityProvider)===null||t===void 0)&&t.isChecked(e.element))}:void 0,getAriaLabel(e){return o.accessibilityProvider.getAriaLabel(e.element)},getWidgetAriaLabel(){return o.accessibilityProvider.getWidgetAriaLabel()},getWidgetRole:o.accessibilityProvider.getWidgetRole?()=>o.accessibilityProvider.getWidgetRole():()=>"tree",getAriaLevel:o.accessibilityProvider.getAriaLevel&&(e=>o.accessibilityProvider.getAriaLevel(e.element)),getActiveDescendantId:o.accessibilityProvider.getActiveDescendantId&&(e=>o.accessibilityProvider.getActiveDescendantId(e.element))}),filter:o.filter&&{filter(e,t){return o.filter.filter(e.element,t)}},keyboardNavigationLabelProvider:o.keyboardNavigationLabelProvider&&Object.assign(Object.assign({},o.keyboardNavigationLabelProvider),{getKeyboardNavigationLabel(e){return o.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e.element)}}),sorter:void 0,expandOnlyOnTwistieClick:typeof o.expandOnlyOnTwistieClick>"u"?void 0:typeof o.expandOnlyOnTwistieClick!="function"?o.expandOnlyOnTwistieClick:e=>o.expandOnlyOnTwistieClick(e.element),defaultFindVisibility:e=>e.hasChildren&&e.stale?1:typeof o.defaultFindVisibility=="number"?o.defaultFindVisibility:typeof o.defaultFindVisibility>"u"?2:o.defaultFindVisibility(e.element)})}function dfs(o,e){e(o),o.children.forEach(t=>dfs(t,e))}class AsyncDataTree{get onDidScroll(){return this.tree.onDidScroll}get onDidChangeFocus(){return Event.map(this.tree.onDidChangeFocus,asTreeEvent)}get onDidChangeSelection(){return Event.map(this.tree.onDidChangeSelection,asTreeEvent)}get onMouseDblClick(){return Event.map(this.tree.onMouseDblClick,asTreeMouseEvent)}get onPointer(){return Event.map(this.tree.onPointer,asTreeMouseEvent)}get onDidFocus(){return this.tree.onDidFocus}get onDidChangeModel(){return this.tree.onDidChangeModel}get onDidChangeCollapseState(){return this.tree.onDidChangeCollapseState}get onDidChangeFindOpenState(){return this.tree.onDidChangeFindOpenState}get onDidDispose(){return this.tree.onDidDispose}constructor(e,t,i,n,r,s={}){this.user=e,this.dataSource=r,this.nodes=new Map,this.subTreeRefreshPromises=new Map,this.refreshPromises=new Map,this._onDidRender=new Emitter$1,this._onDidChangeNodeSlowState=new Emitter$1,this.nodeMapper=new WeakMapper(a=>new AsyncDataTreeNodeWrapper(a)),this.disposables=new DisposableStore,this.identityProvider=s.identityProvider,this.autoExpandSingleChildren=typeof s.autoExpandSingleChildren>"u"?!1:s.autoExpandSingleChildren,this.sorter=s.sorter,this.collapseByDefault=s.collapseByDefault,this.tree=this.createTree(e,t,i,n,s),this.onDidChangeFindMode=this.tree.onDidChangeFindMode,this.root=createAsyncDataTreeNode({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)}createTree(e,t,i,n,r){const s=new ComposedTreeDelegate(i),a=n.map(d=>new AsyncDataTreeRenderer(d,this.nodeMapper,this._onDidChangeNodeSlowState.event)),l=asObjectTreeOptions(r)||{};return new ObjectTree(e,t,s,a,l)}updateOptions(e={}){this.tree.updateOptions(e)}getHTMLElement(){return this.tree.getHTMLElement()}get scrollTop(){return this.tree.scrollTop}set scrollTop(e){this.tree.scrollTop=e}get scrollHeight(){return this.tree.scrollHeight}get renderHeight(){return this.tree.renderHeight}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 __awaiter$1j(this,void 0,void 0,function*(){this.refreshPromises.forEach(n=>n.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&&typeof t.scrollTop=="number"&&(this.scrollTop=t.scrollTop)})}_updateChildren(e=this.root.element,t=!0,i=!1,n,r){return __awaiter$1j(this,void 0,void 0,function*(){if(typeof this.root.element>"u")throw new TreeError(this.user,"Tree input not set");this.root.refreshPromise&&(yield this.root.refreshPromise,yield Event.toPromise(this._onDidRender.event));const s=this.getDataNode(e);if(yield this.refreshAndRenderNode(s,t,n,r),i)try{this.tree.rerender(s)}catch{}})}rerender(e){if(e===void 0||e===this.root.element){this.tree.rerender();return}const t=this.getDataNode(e);this.tree.rerender(t)}getNode(e=this.root.element){const t=this.getDataNode(e),i=this.tree.getNode(t===this.root?null:t);return this.nodeMapper.map(i)}collapse(e,t=!1){const i=this.getDataNode(e);return this.tree.collapse(i===this.root?null:i,t)}expand(e,t=!1){return __awaiter$1j(this,void 0,void 0,function*(){if(typeof this.root.element>"u")throw new TreeError(this.user,"Tree input not set");this.root.refreshPromise&&(yield this.root.refreshPromise,yield Event.toPromise(this._onDidRender.event));const i=this.getDataNode(e);if(this.tree.hasElement(i)&&!this.tree.isCollapsible(i)||(i.refreshPromise&&(yield this.root.refreshPromise,yield Event.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 Event.toPromise(this._onDidRender.event)),n})}setSelection(e,t){const i=e.map(n=>this.getDataNode(n));this.tree.setSelection(i,t)}getSelection(){return this.tree.getSelection().map(t=>t.element)}setFocus(e,t){const i=e.map(n=>this.getDataNode(n));this.tree.setFocus(i,t)}getFocus(){return this.tree.getFocus().map(t=>t.element)}reveal(e,t){this.tree.reveal(this.getDataNode(e),t)}getParentElement(e){const t=this.tree.getParentElement(this.getDataNode(e));return t&&t.element}getFirstElementChild(e=this.root.element){const t=this.getDataNode(e),i=this.tree.getFirstElementChild(t===this.root?null:t);return i&&i.element}getDataNode(e){const t=this.nodes.get(e===this.root.element?null:e);if(!t)throw new TreeError(this.user,`Data tree node not found: ${e}`);return t}refreshAndRenderNode(e,t,i,n){return __awaiter$1j(this,void 0,void 0,function*(){yield this.refreshNode(e,t,i),this.render(e,i,n)})}refreshNode(e,t,i){return __awaiter$1j(this,void 0,void 0,function*(){let n;if(this.subTreeRefreshPromises.forEach((r,s)=>{!n&&intersects(s,e)&&(n=r.then(()=>this.refreshNode(e,t,i)))}),n)return n;if(e!==this.root&&this.tree.getNode(e).collapsed){e.hasChildren=!!this.dataSource.hasChildren(e.element),e.stale=!0;return}return this.doRefreshSubTree(e,t,i)})}doRefreshSubTree(e,t,i){return __awaiter$1j(this,void 0,void 0,function*(){let n;e.refreshPromise=new Promise(r=>n=r),this.subTreeRefreshPromises.set(e,e.refreshPromise),e.refreshPromise.finally(()=>{e.refreshPromise=void 0,this.subTreeRefreshPromises.delete(e)});try{const r=yield this.doRefreshNode(e,t,i);e.stale=!1,yield Promises.settled(r.map(s=>this.doRefreshSubTree(s,t,i)))}finally{n()}})}doRefreshNode(e,t,i){return __awaiter$1j(this,void 0,void 0,function*(){e.hasChildren=!!this.dataSource.hasChildren(e.element);let n;if(!e.hasChildren)n=Promise.resolve(Iterable.empty());else{const r=this.doGetChildren(e);if(isIterable(r))n=Promise.resolve(r);else{const s=timeout(800);s.then(()=>{e.slow=!0,this._onDidChangeNodeSlowState.fire(e)},a=>null),n=r.finally(()=>s.cancel())}}try{const r=yield n;return this.setChildren(e,r,t,i)}catch(r){if(e!==this.root&&this.tree.hasElement(e)&&this.tree.collapse(e),isCancellationError(r))return[];throw r}finally{e.slow&&(e.slow=!1,this._onDidChangeNodeSlowState.fire(e))}})}doGetChildren(e){let t=this.refreshPromises.get(e);if(t)return t;const i=this.dataSource.getChildren(e.element);return isIterable(i)?this.processChildren(i):(t=createCancelablePromise(()=>__awaiter$1j(this,void 0,void 0,function*(){return this.processChildren(yield i)})),this.refreshPromises.set(e,t),t.finally(()=>{this.refreshPromises.delete(e)}))}_onDidChangeCollapseState({node:e,deep:t}){e.element!==null&&!e.collapsed&&e.element.stale&&(t?this.collapse(e.element.element):this.refreshAndRenderNode(e.element,!1).catch(onUnexpectedError))}setChildren(e,t,i,n){const r=[...t];if(e.children.length===0&&r.length===0)return[];const s=new Map,a=new Map;for(const c of e.children)if(s.set(c.element,c),this.identityProvider){const u=this.tree.isCollapsed(c);a.set(c.id,{node:c,collapsed:u})}const l=[],d=r.map(c=>{const u=!!this.dataSource.hasChildren(c);if(!this.identityProvider){const m=createAsyncDataTreeNode({element:c,parent:e,hasChildren:u});return u&&this.collapseByDefault&&!this.collapseByDefault(c)&&(m.collapsedByDefault=!1,l.push(m)),m}const g=this.identityProvider.getId(c).toString(),f=a.get(g);if(f){const m=f.node;return s.delete(m.element),this.nodes.delete(m.element),this.nodes.set(c,m),m.element=c,m.hasChildren=u,i?f.collapsed?(m.children.forEach(b=>dfs(b,_=>this.nodes.delete(_.element))),m.children.splice(0,m.children.length),m.stale=!0):l.push(m):u&&this.collapseByDefault&&!this.collapseByDefault(c)&&(m.collapsedByDefault=!1,l.push(m)),m}const p=createAsyncDataTreeNode({element:c,parent:e,id:g,hasChildren:u});return n&&n.viewState.focus&&n.viewState.focus.indexOf(g)>-1&&n.focus.push(p),n&&n.viewState.selection&&n.viewState.selection.indexOf(g)>-1&&n.selection.push(p),n&&n.viewState.expanded&&n.viewState.expanded.indexOf(g)>-1?l.push(p):u&&this.collapseByDefault&&!this.collapseByDefault(c)&&(p.collapsedByDefault=!1,l.push(p)),p});for(const c of s.values())dfs(c,u=>this.nodes.delete(u.element));for(const c of d)this.nodes.set(c.element,c);return e.children.splice(0,e.children.length,...d),e!==this.root&&this.autoExpandSingleChildren&&d.length===1&&l.length===0&&(d[0].collapsedByDefault=!1,l.push(d[0])),l}render(e,t,i){const n=e.children.map(s=>this.asTreeElement(s,t)),r=i&&Object.assign(Object.assign({},i),{diffIdentityProvider:i.diffIdentityProvider&&{getId(s){return i.diffIdentityProvider.getId(s.element)}}});this.tree.setChildren(e===this.root?null:e,n,r),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 t&&t.viewState.expanded&&e.id&&t.viewState.expanded.indexOf(e.id)>-1?i=!1:i=e.collapsedByDefault,e.collapsedByDefault=void 0,{element:e,children:e.hasChildren?Iterable.map(e.children,n=>this.asTreeElement(n,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(),this.tree.dispose()}}class CompressibleAsyncDataTreeNodeWrapper{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 CompressibleAsyncDataTreeNodeWrapper(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}constructor(e){this.node=e}}class CompressibleAsyncDataTreeRenderer{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(...ThemeIcon.asClassNameArray(Codicon.treeItemLoading)),!0):(t.classList.remove(...ThemeIcon.asClassNameArray(Codicon.treeItemLoading)),!1)}disposeElement(e,t,i,n){var r,s;(s=(r=this.renderer).disposeElement)===null||s===void 0||s.call(r,this.nodeMapper.map(e),t,i.templateData,n)}disposeCompressedElements(e,t,i,n){var r,s;(s=(r=this.renderer).disposeCompressedElements)===null||s===void 0||s.call(r,this.compressibleNodeMapperProvider().map(e),t,i.templateData,n)}disposeTemplate(e){this.renderer.disposeTemplate(e.templateData)}dispose(){this.renderedNodes.clear(),this.disposables=dispose(this.disposables)}}function asCompressibleObjectTreeOptions(o){const e=o&&asObjectTreeOptions(o);return e&&Object.assign(Object.assign({},e),{keyboardNavigationLabelProvider:e.keyboardNavigationLabelProvider&&Object.assign(Object.assign({},e.keyboardNavigationLabelProvider),{getCompressedNodeKeyboardNavigationLabel(t){return o.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(t.map(i=>i.element))}})})}class CompressibleAsyncDataTree extends AsyncDataTree{constructor(e,t,i,n,r,s,a={}){super(e,t,i,r,s,a),this.compressionDelegate=n,this.compressibleNodeMapper=new WeakMapper(l=>new CompressibleAsyncDataTreeNodeWrapper(l)),this.filter=a.filter}createTree(e,t,i,n,r){const s=new ComposedTreeDelegate(i),a=n.map(d=>new CompressibleAsyncDataTreeRenderer(d,this.nodeMapper,()=>this.compressibleNodeMapper,this._onDidChangeNodeSlowState.event)),l=asCompressibleObjectTreeOptions(r)||{};return new CompressibleObjectTree(e,t,s,a,l)}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=g=>this.identityProvider.getId(g).toString(),n=g=>{const f=new Set;for(const p of g){const m=this.tree.getCompressedTreeNode(p===this.root?null:p);if(m.element)for(const b of m.element.elements)f.add(i(b.element))}return f},r=n(this.tree.getSelection()),s=n(this.tree.getFocus());super.render(e,t);const a=this.getSelection();let l=!1;const d=this.getFocus();let c=!1;const u=g=>{const f=g.element;if(f)for(let p=0;p<f.elements.length;p++){const m=i(f.elements[p].element),b=f.elements[f.elements.length-1].element;r.has(m)&&a.indexOf(b)===-1&&(a.push(b),l=!0),s.has(m)&&d.indexOf(b)===-1&&(d.push(b),c=!0)}g.children.forEach(u)};u(this.tree.getCompressedTreeNode(e===this.root?null:e)),l&&this.setSelection(a),c&&this.setFocus(d)}processChildren(e){return this.filter&&(e=Iterable.filter(e,t=>{const i=this.filter.filter(t,1),n=getVisibility(i);if(n===2)throw new Error("Recursive tree visibility not supported in async data compressed trees");return n===1})),super.processChildren(e)}}function getVisibility(o){return typeof o=="boolean"?o?1:0:isFilterResult(o)?getVisibleState(o.visibility):getVisibleState(o)}class DataTree extends AbstractTree{constructor(e,t,i,n,r,s={}){super(e,t,i,n,s),this.user=e,this.dataSource=r,this.identityProvider=s.identityProvider}createModel(e,t,i){return new ObjectTreeModel(e,t,i)}}new RawContextKey("isMac",isMacintosh,localize("isMac","Whether the operating system is macOS"));new RawContextKey("isLinux",isLinux,localize("isLinux","Whether the operating system is Linux"));const IsWindowsContext=new RawContextKey("isWindows",isWindows,localize("isWindows","Whether the operating system is Windows")),IsWebContext=new RawContextKey("isWeb",isWeb,localize("isWeb","Whether the platform is a web browser"));new RawContextKey("isMacNative",isMacintosh&&!isWeb,localize("isMacNative","Whether the operating system is macOS on a non-browser platform"));new RawContextKey("isIOS",isIOS,localize("isIOS","Whether the operating system is iOS"));new RawContextKey("isMobile",isMobile,localize("isMobile","Whether the platform is a mobile web browser"));new RawContextKey("isDevelopment",!1,!0);new RawContextKey("productQualityType","",localize("productQualityType","Quality type of VS Code"));const InputFocusedContextKey="inputFocus";new RawContextKey(InputFocusedContextKey,!1,localize("inputFocus","Whether keyboard focus is inside an input box"));var __decorate$1K=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1I=function(o,e){return function(t,i){e(t,i,o)}};const IListService=createDecorator("listService");class ListService{get lastFocusedList(){return this._lastFocusedWidget}constructor(){this.disposables=new DisposableStore,this.lists=[],this._lastFocusedWidget=void 0,this._hasCreatedStyleController=!1}setLastFocusedList(e){var t,i;e!==this._lastFocusedWidget&&((t=this._lastFocusedWidget)===null||t===void 0||t.getHTMLElement().classList.remove("last-focused"),this._lastFocusedWidget=e,(i=this._lastFocusedWidget)===null||i===void 0||i.getHTMLElement().classList.add("last-focused"))}register(e,t){if(this._hasCreatedStyleController||(this._hasCreatedStyleController=!0,new DefaultStyleController(createStyleSheet(),"").style(defaultListStyles)),this.lists.some(n=>n.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.setLastFocusedList(e),combinedDisposable(e.onDidFocus(()=>this.setLastFocusedList(e)),toDisposable(()=>this.lists.splice(this.lists.indexOf(i),1)),e.onDidDispose(()=>{this.lists=this.lists.filter(n=>n!==i),this._lastFocusedWidget===e&&this.setLastFocusedList(void 0)}))}dispose(){this.disposables.dispose()}}const RawWorkbenchListScrollAtBoundaryContextKey=new RawContextKey("listScrollAtBoundary","none");ContextKeyExpr.or(RawWorkbenchListScrollAtBoundaryContextKey.isEqualTo("top"),RawWorkbenchListScrollAtBoundaryContextKey.isEqualTo("both"));ContextKeyExpr.or(RawWorkbenchListScrollAtBoundaryContextKey.isEqualTo("bottom"),RawWorkbenchListScrollAtBoundaryContextKey.isEqualTo("both"));const RawWorkbenchListFocusContextKey=new RawContextKey("listFocus",!0),WorkbenchListSupportsMultiSelectContextKey=new RawContextKey("listSupportsMultiselect",!0),WorkbenchListFocusContextKey=ContextKeyExpr.and(RawWorkbenchListFocusContextKey,ContextKeyExpr.not(InputFocusedContextKey)),WorkbenchListHasSelectionOrFocus=new RawContextKey("listHasSelectionOrFocus",!1),WorkbenchListDoubleSelection=new RawContextKey("listDoubleSelection",!1),WorkbenchListMultiSelection=new RawContextKey("listMultiSelection",!1),WorkbenchListSelectionNavigation=new RawContextKey("listSelectionNavigation",!1),WorkbenchListSupportsFind=new RawContextKey("listSupportsFind",!0),WorkbenchTreeElementCanCollapse=new RawContextKey("treeElementCanCollapse",!1),WorkbenchTreeElementHasParent=new RawContextKey("treeElementHasParent",!1),WorkbenchTreeElementCanExpand=new RawContextKey("treeElementCanExpand",!1),WorkbenchTreeElementHasChild=new RawContextKey("treeElementHasChild",!1),WorkbenchTreeFindOpen=new RawContextKey("treeFindOpen",!1),WorkbenchListTypeNavigationModeKey="listTypeNavigationMode",WorkbenchListAutomaticKeyboardNavigationLegacyKey="listAutomaticKeyboardNavigation";function createScopedContextKeyService(o,e){const t=o.createScoped(e.getHTMLElement());return RawWorkbenchListFocusContextKey.bindTo(t),t}function createScrollObserver(o,e){const t=RawWorkbenchListScrollAtBoundaryContextKey.bindTo(o),i=()=>{const n=e.scrollTop===0,r=e.scrollHeight-e.renderHeight-e.scrollTop<1;n&&r?t.set("both"):n?t.set("top"):r?t.set("bottom"):t.set("none")};return i(),e.onDidScroll(i)}const multiSelectModifierSettingKey="workbench.list.multiSelectModifier",openModeSettingKey="workbench.list.openMode",horizontalScrollingKey="workbench.list.horizontalScrolling",defaultFindModeSettingKey="workbench.list.defaultFindMode",typeNavigationModeSettingKey="workbench.list.typeNavigationMode",keyboardNavigationSettingKey="workbench.list.keyboardNavigation",scrollByPageKey="workbench.list.scrollByPage",defaultFindMatchTypeSettingKey="workbench.list.defaultFindMatchType",treeIndentKey="workbench.tree.indent",treeRenderIndentGuidesKey="workbench.tree.renderIndentGuides",listSmoothScrolling="workbench.list.smoothScrolling",mouseWheelScrollSensitivityKey="workbench.list.mouseWheelScrollSensitivity",fastScrollSensitivityKey="workbench.list.fastScrollSensitivity",treeExpandMode="workbench.tree.expandMode";function useAltAsMultipleSelectionModifier(o){return o.getValue(multiSelectModifierSettingKey)==="alt"}class MultipleSelectionController extends Disposable{constructor(e){super(),this.configurationService=e,this.useAltAsMultipleSelectionModifier=useAltAsMultipleSelectionModifier(e),this.registerListeners()}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration(e=>{e.affectsConfiguration(multiSelectModifierSettingKey)&&(this.useAltAsMultipleSelectionModifier=useAltAsMultipleSelectionModifier(this.configurationService))}))}isSelectionSingleChangeEvent(e){return this.useAltAsMultipleSelectionModifier?e.browserEvent.altKey:isSelectionSingleChangeEvent(e)}isSelectionRangeChangeEvent(e){return isSelectionRangeChangeEvent(e)}}function toWorkbenchListOptions(o,e){var t;const i=o.get(IConfigurationService),n=o.get(IKeybindingService),r=new DisposableStore;return[Object.assign(Object.assign({},e),{keyboardNavigationDelegate:{mightProducePrintableCharacter(a){return n.mightProducePrintableCharacter(a)}},smoothScrolling:!!i.getValue(listSmoothScrolling),mouseWheelScrollSensitivity:i.getValue(mouseWheelScrollSensitivityKey),fastScrollSensitivity:i.getValue(fastScrollSensitivityKey),multipleSelectionController:(t=e.multipleSelectionController)!==null&&t!==void 0?t:r.add(new MultipleSelectionController(i)),keyboardNavigationEventFilter:createKeyboardNavigationEventFilter(n),scrollByPage:!!i.getValue(scrollByPageKey)}),r]}let WorkbenchList=class extends List{constructor(e,t,i,n,r,s,a,l,d){const c=typeof r.horizontalScrolling<"u"?r.horizontalScrolling:!!l.getValue(horizontalScrollingKey),[u,g]=d.invokeFunction(toWorkbenchListOptions,r);super(e,t,i,n,Object.assign(Object.assign({keyboardSupport:!1},u),{horizontalScrolling:c})),this.disposables.add(g),this.contextKeyService=createScopedContextKeyService(s,this),this.disposables.add(createScrollObserver(this.contextKeyService,this)),this.listSupportsMultiSelect=WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(r.multipleSelectionSupport!==!1),WorkbenchListSelectionNavigation.bindTo(this.contextKeyService).set(!!r.selectionNavigation),this.listHasSelectionOrFocus=WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService),this.listDoubleSelection=WorkbenchListDoubleSelection.bindTo(this.contextKeyService),this.listMultiSelection=WorkbenchListMultiSelection.bindTo(this.contextKeyService),this.horizontalScrolling=r.horizontalScrolling,this._useAltAsMultipleSelectionModifier=useAltAsMultipleSelectionModifier(l),this.disposables.add(this.contextKeyService),this.disposables.add(a.register(this)),this.updateStyles(r.overrideStyles),this.disposables.add(this.onDidChangeSelection(()=>{const p=this.getSelection(),m=this.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.listHasSelectionOrFocus.set(p.length>0||m.length>0),this.listMultiSelection.set(p.length>1),this.listDoubleSelection.set(p.length===2)})})),this.disposables.add(this.onDidChangeFocus(()=>{const p=this.getSelection(),m=this.getFocus();this.listHasSelectionOrFocus.set(p.length>0||m.length>0)})),this.disposables.add(l.onDidChangeConfiguration(p=>{p.affectsConfiguration(multiSelectModifierSettingKey)&&(this._useAltAsMultipleSelectionModifier=useAltAsMultipleSelectionModifier(l));let m={};if(p.affectsConfiguration(horizontalScrollingKey)&&this.horizontalScrolling===void 0){const b=!!l.getValue(horizontalScrollingKey);m=Object.assign(Object.assign({},m),{horizontalScrolling:b})}if(p.affectsConfiguration(scrollByPageKey)){const b=!!l.getValue(scrollByPageKey);m=Object.assign(Object.assign({},m),{scrollByPage:b})}if(p.affectsConfiguration(listSmoothScrolling)){const b=!!l.getValue(listSmoothScrolling);m=Object.assign(Object.assign({},m),{smoothScrolling:b})}if(p.affectsConfiguration(mouseWheelScrollSensitivityKey)){const b=l.getValue(mouseWheelScrollSensitivityKey);m=Object.assign(Object.assign({},m),{mouseWheelScrollSensitivity:b})}if(p.affectsConfiguration(fastScrollSensitivityKey)){const b=l.getValue(fastScrollSensitivityKey);m=Object.assign(Object.assign({},m),{fastScrollSensitivity:b})}Object.keys(m).length>0&&this.updateOptions(m)})),this.navigator=new ListResourceNavigator(this,Object.assign({configurationService:l},r)),this.disposables.add(this.navigator)}updateOptions(e){super.updateOptions(e),e.overrideStyles!==void 0&&this.updateStyles(e.overrideStyles),e.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyles(e){this.style(e?getListStyles(e):defaultListStyles)}};WorkbenchList=__decorate$1K([__param$1I(5,IContextKeyService),__param$1I(6,IListService),__param$1I(7,IConfigurationService),__param$1I(8,IInstantiationService)],WorkbenchList);let WorkbenchPagedList=class extends PagedList{constructor(e,t,i,n,r,s,a,l,d){const c=typeof r.horizontalScrolling<"u"?r.horizontalScrolling:!!l.getValue(horizontalScrollingKey),[u,g]=d.invokeFunction(toWorkbenchListOptions,r);super(e,t,i,n,Object.assign(Object.assign({keyboardSupport:!1},u),{horizontalScrolling:c})),this.disposables=new DisposableStore,this.disposables.add(g),this.contextKeyService=createScopedContextKeyService(s,this),this.disposables.add(createScrollObserver(this.contextKeyService,this.widget)),this.horizontalScrolling=r.horizontalScrolling,this.listSupportsMultiSelect=WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(r.multipleSelectionSupport!==!1),WorkbenchListSelectionNavigation.bindTo(this.contextKeyService).set(!!r.selectionNavigation),this._useAltAsMultipleSelectionModifier=useAltAsMultipleSelectionModifier(l),this.disposables.add(this.contextKeyService),this.disposables.add(a.register(this)),this.updateStyles(r.overrideStyles),this.disposables.add(l.onDidChangeConfiguration(p=>{p.affectsConfiguration(multiSelectModifierSettingKey)&&(this._useAltAsMultipleSelectionModifier=useAltAsMultipleSelectionModifier(l));let m={};if(p.affectsConfiguration(horizontalScrollingKey)&&this.horizontalScrolling===void 0){const b=!!l.getValue(horizontalScrollingKey);m=Object.assign(Object.assign({},m),{horizontalScrolling:b})}if(p.affectsConfiguration(scrollByPageKey)){const b=!!l.getValue(scrollByPageKey);m=Object.assign(Object.assign({},m),{scrollByPage:b})}if(p.affectsConfiguration(listSmoothScrolling)){const b=!!l.getValue(listSmoothScrolling);m=Object.assign(Object.assign({},m),{smoothScrolling:b})}if(p.affectsConfiguration(mouseWheelScrollSensitivityKey)){const b=l.getValue(mouseWheelScrollSensitivityKey);m=Object.assign(Object.assign({},m),{mouseWheelScrollSensitivity:b})}if(p.affectsConfiguration(fastScrollSensitivityKey)){const b=l.getValue(fastScrollSensitivityKey);m=Object.assign(Object.assign({},m),{fastScrollSensitivity:b})}Object.keys(m).length>0&&this.updateOptions(m)})),this.navigator=new ListResourceNavigator(this,Object.assign({configurationService:l},r)),this.disposables.add(this.navigator)}updateOptions(e){super.updateOptions(e),e.overrideStyles!==void 0&&this.updateStyles(e.overrideStyles),e.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyles(e){this.style(e?getListStyles(e):defaultListStyles)}dispose(){this.disposables.dispose(),super.dispose()}};WorkbenchPagedList=__decorate$1K([__param$1I(5,IContextKeyService),__param$1I(6,IListService),__param$1I(7,IConfigurationService),__param$1I(8,IInstantiationService)],WorkbenchPagedList);let WorkbenchTable=class extends Table{constructor(e,t,i,n,r,s,a,l,d,c){const u=typeof s.horizontalScrolling<"u"?s.horizontalScrolling:!!d.getValue(horizontalScrollingKey),[g,f]=c.invokeFunction(toWorkbenchListOptions,s);super(e,t,i,n,r,Object.assign(Object.assign({keyboardSupport:!1},g),{horizontalScrolling:u})),this.disposables.add(f),this.contextKeyService=createScopedContextKeyService(a,this),this.disposables.add(createScrollObserver(this.contextKeyService,this)),this.listSupportsMultiSelect=WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(s.multipleSelectionSupport!==!1),WorkbenchListSelectionNavigation.bindTo(this.contextKeyService).set(!!s.selectionNavigation),this.listHasSelectionOrFocus=WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService),this.listDoubleSelection=WorkbenchListDoubleSelection.bindTo(this.contextKeyService),this.listMultiSelection=WorkbenchListMultiSelection.bindTo(this.contextKeyService),this.horizontalScrolling=s.horizontalScrolling,this._useAltAsMultipleSelectionModifier=useAltAsMultipleSelectionModifier(d),this.disposables.add(this.contextKeyService),this.disposables.add(l.register(this)),this.updateStyles(s.overrideStyles),this.disposables.add(this.onDidChangeSelection(()=>{const m=this.getSelection(),b=this.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.listHasSelectionOrFocus.set(m.length>0||b.length>0),this.listMultiSelection.set(m.length>1),this.listDoubleSelection.set(m.length===2)})})),this.disposables.add(this.onDidChangeFocus(()=>{const m=this.getSelection(),b=this.getFocus();this.listHasSelectionOrFocus.set(m.length>0||b.length>0)})),this.disposables.add(d.onDidChangeConfiguration(m=>{m.affectsConfiguration(multiSelectModifierSettingKey)&&(this._useAltAsMultipleSelectionModifier=useAltAsMultipleSelectionModifier(d));let b={};if(m.affectsConfiguration(horizontalScrollingKey)&&this.horizontalScrolling===void 0){const _=!!d.getValue(horizontalScrollingKey);b=Object.assign(Object.assign({},b),{horizontalScrolling:_})}if(m.affectsConfiguration(scrollByPageKey)){const _=!!d.getValue(scrollByPageKey);b=Object.assign(Object.assign({},b),{scrollByPage:_})}if(m.affectsConfiguration(listSmoothScrolling)){const _=!!d.getValue(listSmoothScrolling);b=Object.assign(Object.assign({},b),{smoothScrolling:_})}if(m.affectsConfiguration(mouseWheelScrollSensitivityKey)){const _=d.getValue(mouseWheelScrollSensitivityKey);b=Object.assign(Object.assign({},b),{mouseWheelScrollSensitivity:_})}if(m.affectsConfiguration(fastScrollSensitivityKey)){const _=d.getValue(fastScrollSensitivityKey);b=Object.assign(Object.assign({},b),{fastScrollSensitivity:_})}Object.keys(b).length>0&&this.updateOptions(b)})),this.navigator=new TableResourceNavigator(this,Object.assign({configurationService:d},s)),this.disposables.add(this.navigator)}updateOptions(e){super.updateOptions(e),e.overrideStyles!==void 0&&this.updateStyles(e.overrideStyles),e.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyles(e){this.style(e?getListStyles(e):defaultListStyles)}dispose(){this.disposables.dispose(),super.dispose()}};WorkbenchTable=__decorate$1K([__param$1I(6,IContextKeyService),__param$1I(7,IListService),__param$1I(8,IConfigurationService),__param$1I(9,IInstantiationService)],WorkbenchTable);class ResourceNavigator extends Disposable{constructor(e,t){var i;super(),this.widget=e,this._onDidOpen=this._register(new Emitter$1),this.onDidOpen=this._onDidOpen.event,this._register(Event.filter(this.widget.onDidChangeSelection,n=>n.browserEvent instanceof KeyboardEvent)(n=>this.onSelectionFromKeyboard(n))),this._register(this.widget.onPointer(n=>this.onPointer(n.element,n.browserEvent))),this._register(this.widget.onMouseDblClick(n=>this.onMouseDblClick(n.element,n.browserEvent))),typeof(t==null?void 0:t.openOnSingleClick)!="boolean"&&(t!=null&&t.configurationService)?(this.openOnSingleClick=(t==null?void 0:t.configurationService.getValue(openModeSettingKey))!=="doubleClick",this._register(t==null?void 0:t.configurationService.onDidChangeConfiguration(n=>{n.affectsConfiguration(openModeSettingKey)&&(this.openOnSingleClick=(t==null?void 0:t.configurationService.getValue(openModeSettingKey))!=="doubleClick")}))):this.openOnSingleClick=(i=t==null?void 0:t.openOnSingleClick)!==null&&i!==void 0?i:!0}onSelectionFromKeyboard(e){if(e.elements.length!==1)return;const t=e.browserEvent,i=typeof t.preserveFocus=="boolean"?t.preserveFocus:!0,n=typeof t.pinned=="boolean"?t.pinned:!i;this._open(this.getSelectedElement(),i,n,!1,e.browserEvent)}onPointer(e,t){if(!this.openOnSingleClick||t.detail===2)return;const n=t.button===1,r=!0,s=n,a=t.ctrlKey||t.metaKey||t.altKey;this._open(e,r,s,a,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 r=!1,s=!0,a=t.ctrlKey||t.metaKey||t.altKey;this._open(e,r,s,a,t)}_open(e,t,i,n,r){e&&this._onDidOpen.fire({editorOptions:{preserveFocus:t,pinned:i,revealIfVisible:!0},sideBySide:n,element:e,browserEvent:r})}}class ListResourceNavigator extends ResourceNavigator{constructor(e,t){super(e,t),this.widget=e}getSelectedElement(){return this.widget.getSelectedElements()[0]}}class TableResourceNavigator extends ResourceNavigator{constructor(e,t){super(e,t)}getSelectedElement(){return this.widget.getSelectedElements()[0]}}class TreeResourceNavigator extends ResourceNavigator{constructor(e,t){super(e,t)}getSelectedElement(){var e;return(e=this.widget.getSelection()[0])!==null&&e!==void 0?e:void 0}}function createKeyboardNavigationEventFilter(o){let e=!1;return t=>{if(t.toKeyCodeChord().isModifierKey())return!1;if(e)return e=!1,!1;const i=o.softDispatch(t,t.target);return i.kind===1?(e=!0,!1):(e=!1,i.kind===0)}}let WorkbenchObjectTree=class extends ObjectTree{constructor(e,t,i,n,r,s,a,l,d){const{options:c,getTypeNavigationMode:u,disposable:g}=s.invokeFunction(workbenchTreeDataPreamble,r);super(e,t,i,n,c),this.disposables.add(g),this.internals=new WorkbenchTreeInternals(this,r,u,r.overrideStyles,a,l,d),this.disposables.add(this.internals)}updateOptions(e){super.updateOptions(e),this.internals.updateOptions(e)}};WorkbenchObjectTree=__decorate$1K([__param$1I(5,IInstantiationService),__param$1I(6,IContextKeyService),__param$1I(7,IListService),__param$1I(8,IConfigurationService)],WorkbenchObjectTree);let WorkbenchCompressibleObjectTree=class extends CompressibleObjectTree{constructor(e,t,i,n,r,s,a,l,d){const{options:c,getTypeNavigationMode:u,disposable:g}=s.invokeFunction(workbenchTreeDataPreamble,r);super(e,t,i,n,c),this.disposables.add(g),this.internals=new WorkbenchTreeInternals(this,r,u,r.overrideStyles,a,l,d),this.disposables.add(this.internals)}updateOptions(e={}){super.updateOptions(e),e.overrideStyles&&this.internals.updateStyleOverrides(e.overrideStyles),this.internals.updateOptions(e)}};WorkbenchCompressibleObjectTree=__decorate$1K([__param$1I(5,IInstantiationService),__param$1I(6,IContextKeyService),__param$1I(7,IListService),__param$1I(8,IConfigurationService)],WorkbenchCompressibleObjectTree);let WorkbenchDataTree=class extends DataTree{constructor(e,t,i,n,r,s,a,l,d,c){const{options:u,getTypeNavigationMode:g,disposable:f}=a.invokeFunction(workbenchTreeDataPreamble,s);super(e,t,i,n,r,u),this.disposables.add(f),this.internals=new WorkbenchTreeInternals(this,s,g,s.overrideStyles,l,d,c),this.disposables.add(this.internals)}updateOptions(e={}){super.updateOptions(e),e.overrideStyles!==void 0&&this.internals.updateStyleOverrides(e.overrideStyles),this.internals.updateOptions(e)}};WorkbenchDataTree=__decorate$1K([__param$1I(6,IInstantiationService),__param$1I(7,IContextKeyService),__param$1I(8,IListService),__param$1I(9,IConfigurationService)],WorkbenchDataTree);let WorkbenchAsyncDataTree=class extends AsyncDataTree{get onDidOpen(){return this.internals.onDidOpen}constructor(e,t,i,n,r,s,a,l,d,c){const{options:u,getTypeNavigationMode:g,disposable:f}=a.invokeFunction(workbenchTreeDataPreamble,s);super(e,t,i,n,r,u),this.disposables.add(f),this.internals=new WorkbenchTreeInternals(this,s,g,s.overrideStyles,l,d,c),this.disposables.add(this.internals)}updateOptions(e={}){super.updateOptions(e),e.overrideStyles&&this.internals.updateStyleOverrides(e.overrideStyles),this.internals.updateOptions(e)}};WorkbenchAsyncDataTree=__decorate$1K([__param$1I(6,IInstantiationService),__param$1I(7,IContextKeyService),__param$1I(8,IListService),__param$1I(9,IConfigurationService)],WorkbenchAsyncDataTree);let WorkbenchCompressibleAsyncDataTree=class extends CompressibleAsyncDataTree{constructor(e,t,i,n,r,s,a,l,d,c,u){const{options:g,getTypeNavigationMode:f,disposable:p}=l.invokeFunction(workbenchTreeDataPreamble,a);super(e,t,i,n,r,s,g),this.disposables.add(p),this.internals=new WorkbenchTreeInternals(this,a,f,a.overrideStyles,d,c,u),this.disposables.add(this.internals)}updateOptions(e){super.updateOptions(e),this.internals.updateOptions(e)}};WorkbenchCompressibleAsyncDataTree=__decorate$1K([__param$1I(7,IInstantiationService),__param$1I(8,IContextKeyService),__param$1I(9,IListService),__param$1I(10,IConfigurationService)],WorkbenchCompressibleAsyncDataTree);function getDefaultTreeFindMode(o){const e=o.getValue(defaultFindModeSettingKey);if(e==="highlight")return TreeFindMode.Highlight;if(e==="filter")return TreeFindMode.Filter;const t=o.getValue(keyboardNavigationSettingKey);if(t==="simple"||t==="highlight")return TreeFindMode.Highlight;if(t==="filter")return TreeFindMode.Filter}function getDefaultTreeFindMatchType(o){const e=o.getValue(defaultFindMatchTypeSettingKey);if(e==="fuzzy")return TreeFindMatchType.Fuzzy;if(e==="contiguous")return TreeFindMatchType.Contiguous}function workbenchTreeDataPreamble(o,e){var t;const i=o.get(IConfigurationService),n=o.get(IContextViewService),r=o.get(IContextKeyService),s=o.get(IInstantiationService),a=()=>{const f=r.getContextKeyValue(WorkbenchListTypeNavigationModeKey);if(f==="automatic")return TypeNavigationMode.Automatic;if(f==="trigger"||r.getContextKeyValue(WorkbenchListAutomaticKeyboardNavigationLegacyKey)===!1)return TypeNavigationMode.Trigger;const m=i.getValue(typeNavigationModeSettingKey);if(m==="automatic")return TypeNavigationMode.Automatic;if(m==="trigger")return TypeNavigationMode.Trigger},l=e.horizontalScrolling!==void 0?e.horizontalScrolling:!!i.getValue(horizontalScrollingKey),[d,c]=s.invokeFunction(toWorkbenchListOptions,e),u=e.paddingBottom,g=e.renderIndentGuides!==void 0?e.renderIndentGuides:i.getValue(treeRenderIndentGuidesKey);return{getTypeNavigationMode:a,disposable:c,options:Object.assign(Object.assign({keyboardSupport:!1},d),{indent:typeof i.getValue(treeIndentKey)=="number"?i.getValue(treeIndentKey):void 0,renderIndentGuides:g,smoothScrolling:!!i.getValue(listSmoothScrolling),defaultFindMode:getDefaultTreeFindMode(i),defaultFindMatchType:getDefaultTreeFindMatchType(i),horizontalScrolling:l,scrollByPage:!!i.getValue(scrollByPageKey),paddingBottom:u,hideTwistiesOfChildlessElements:e.hideTwistiesOfChildlessElements,expandOnlyOnTwistieClick:(t=e.expandOnlyOnTwistieClick)!==null&&t!==void 0?t:i.getValue(treeExpandMode)==="doubleClick",contextViewProvider:n,findWidgetStyles:defaultFindWidgetStyles})}}let WorkbenchTreeInternals=class{get onDidOpen(){return this.navigator.onDidOpen}constructor(e,t,i,n,r,s,a){var l;this.tree=e,this.disposables=[],this.contextKeyService=createScopedContextKeyService(r,e),this.disposables.push(createScrollObserver(this.contextKeyService,e)),this.listSupportsMultiSelect=WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(t.multipleSelectionSupport!==!1),WorkbenchListSelectionNavigation.bindTo(this.contextKeyService).set(!!t.selectionNavigation),this.listSupportFindWidget=WorkbenchListSupportsFind.bindTo(this.contextKeyService),this.listSupportFindWidget.set((l=t.findWidgetEnabled)!==null&&l!==void 0?l:!0),this.hasSelectionOrFocus=WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService),this.hasDoubleSelection=WorkbenchListDoubleSelection.bindTo(this.contextKeyService),this.hasMultiSelection=WorkbenchListMultiSelection.bindTo(this.contextKeyService),this.treeElementCanCollapse=WorkbenchTreeElementCanCollapse.bindTo(this.contextKeyService),this.treeElementHasParent=WorkbenchTreeElementHasParent.bindTo(this.contextKeyService),this.treeElementCanExpand=WorkbenchTreeElementCanExpand.bindTo(this.contextKeyService),this.treeElementHasChild=WorkbenchTreeElementHasChild.bindTo(this.contextKeyService),this.treeFindOpen=WorkbenchTreeFindOpen.bindTo(this.contextKeyService),this._useAltAsMultipleSelectionModifier=useAltAsMultipleSelectionModifier(a),this.updateStyleOverrides(n);const c=()=>{const g=e.getFocus()[0];if(!g)return;const f=e.getNode(g);this.treeElementCanCollapse.set(f.collapsible&&!f.collapsed),this.treeElementHasParent.set(!!e.getParentElement(g)),this.treeElementCanExpand.set(f.collapsible&&f.collapsed),this.treeElementHasChild.set(!!e.getFirstElementChild(g))},u=new Set;u.add(WorkbenchListTypeNavigationModeKey),u.add(WorkbenchListAutomaticKeyboardNavigationLegacyKey),this.disposables.push(this.contextKeyService,s.register(e),e.onDidChangeSelection(()=>{const g=e.getSelection(),f=e.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.hasSelectionOrFocus.set(g.length>0||f.length>0),this.hasMultiSelection.set(g.length>1),this.hasDoubleSelection.set(g.length===2)})}),e.onDidChangeFocus(()=>{const g=e.getSelection(),f=e.getFocus();this.hasSelectionOrFocus.set(g.length>0||f.length>0),c()}),e.onDidChangeCollapseState(c),e.onDidChangeModel(c),e.onDidChangeFindOpenState(g=>this.treeFindOpen.set(g)),a.onDidChangeConfiguration(g=>{let f={};if(g.affectsConfiguration(multiSelectModifierSettingKey)&&(this._useAltAsMultipleSelectionModifier=useAltAsMultipleSelectionModifier(a)),g.affectsConfiguration(treeIndentKey)){const p=a.getValue(treeIndentKey);f=Object.assign(Object.assign({},f),{indent:p})}if(g.affectsConfiguration(treeRenderIndentGuidesKey)&&t.renderIndentGuides===void 0){const p=a.getValue(treeRenderIndentGuidesKey);f=Object.assign(Object.assign({},f),{renderIndentGuides:p})}if(g.affectsConfiguration(listSmoothScrolling)){const p=!!a.getValue(listSmoothScrolling);f=Object.assign(Object.assign({},f),{smoothScrolling:p})}if(g.affectsConfiguration(defaultFindModeSettingKey)||g.affectsConfiguration(keyboardNavigationSettingKey)){const p=getDefaultTreeFindMode(a);f=Object.assign(Object.assign({},f),{defaultFindMode:p})}if(g.affectsConfiguration(typeNavigationModeSettingKey)||g.affectsConfiguration(keyboardNavigationSettingKey)){const p=i();f=Object.assign(Object.assign({},f),{typeNavigationMode:p})}if(g.affectsConfiguration(defaultFindMatchTypeSettingKey)){const p=getDefaultTreeFindMatchType(a);f=Object.assign(Object.assign({},f),{defaultFindMatchType:p})}if(g.affectsConfiguration(horizontalScrollingKey)&&t.horizontalScrolling===void 0){const p=!!a.getValue(horizontalScrollingKey);f=Object.assign(Object.assign({},f),{horizontalScrolling:p})}if(g.affectsConfiguration(scrollByPageKey)){const p=!!a.getValue(scrollByPageKey);f=Object.assign(Object.assign({},f),{scrollByPage:p})}if(g.affectsConfiguration(treeExpandMode)&&t.expandOnlyOnTwistieClick===void 0&&(f=Object.assign(Object.assign({},f),{expandOnlyOnTwistieClick:a.getValue(treeExpandMode)==="doubleClick"})),g.affectsConfiguration(mouseWheelScrollSensitivityKey)){const p=a.getValue(mouseWheelScrollSensitivityKey);f=Object.assign(Object.assign({},f),{mouseWheelScrollSensitivity:p})}if(g.affectsConfiguration(fastScrollSensitivityKey)){const p=a.getValue(fastScrollSensitivityKey);f=Object.assign(Object.assign({},f),{fastScrollSensitivity:p})}Object.keys(f).length>0&&e.updateOptions(f)}),this.contextKeyService.onDidChangeContext(g=>{g.affectsSome(u)&&e.updateOptions({typeNavigationMode:i()})})),this.navigator=new TreeResourceNavigator(e,Object.assign({configurationService:a},t)),this.disposables.push(this.navigator)}updateOptions(e){e.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyleOverrides(e){this.tree.style(e?getListStyles(e):defaultListStyles)}dispose(){this.disposables=dispose(this.disposables)}};WorkbenchTreeInternals=__decorate$1K([__param$1I(4,IContextKeyService),__param$1I(5,IListService),__param$1I(6,IConfigurationService)],WorkbenchTreeInternals);const configurationRegistry=Registry.as(Extensions$6.Configuration);configurationRegistry.registerConfiguration({id:"workbench",order:7,title:localize("workbenchConfigurationTitle","Workbench"),type:"object",properties:{[multiSelectModifierSettingKey]:{type:"string",enum:["ctrlCmd","alt"],markdownEnumDescriptions:[localize("multiSelectModifier.ctrlCmd","Maps to `Control` on Windows and Linux and to `Command` on macOS."),localize("multiSelectModifier.alt","Maps to `Alt` on Windows and Linux and to `Option` on macOS.")],default:"ctrlCmd",description:localize({},"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.")},[openModeSettingKey]:{type:"string",enum:["singleClick","doubleClick"],default:"singleClick",description:localize({},"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.")},[horizontalScrollingKey]:{type:"boolean",default:!1,description:localize("horizontalScrolling setting","Controls whether lists and trees support horizontal scrolling in the workbench. Warning: turning on this setting has a performance implication.")},[scrollByPageKey]:{type:"boolean",default:!1,description:localize("list.scrollByPage","Controls whether clicks in the scrollbar scroll page by page.")},[treeIndentKey]:{type:"number",default:8,minimum:4,maximum:40,description:localize("tree indent setting","Controls tree indentation in pixels.")},[treeRenderIndentGuidesKey]:{type:"string",enum:["none","onHover","always"],default:"onHover",description:localize("render tree indent guides","Controls whether the tree should render indent guides.")},[listSmoothScrolling]:{type:"boolean",default:!1,description:localize("list smoothScrolling setting","Controls whether lists and trees have smooth scrolling.")},[mouseWheelScrollSensitivityKey]:{type:"number",default:1,markdownDescription:localize("Mouse Wheel Scroll Sensitivity","A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.")},[fastScrollSensitivityKey]:{type:"number",default:5,markdownDescription:localize("Fast Scroll Sensitivity","Scrolling speed multiplier when pressing `Alt`.")},[defaultFindModeSettingKey]:{type:"string",enum:["highlight","filter"],enumDescriptions:[localize("defaultFindModeSettingKey.highlight","Highlight elements when searching. Further up and down navigation will traverse only the highlighted elements."),localize("defaultFindModeSettingKey.filter","Filter elements when searching.")],default:"highlight",description:localize("defaultFindModeSettingKey","Controls the default find mode for lists and trees in the workbench.")},[keyboardNavigationSettingKey]:{type:"string",enum:["simple","highlight","filter"],enumDescriptions:[localize("keyboardNavigationSettingKey.simple","Simple keyboard navigation focuses elements which match the keyboard input. Matching is done only on prefixes."),localize("keyboardNavigationSettingKey.highlight","Highlight keyboard navigation highlights elements which match the keyboard input. Further up and down navigation will traverse only the highlighted elements."),localize("keyboardNavigationSettingKey.filter","Filter keyboard navigation will filter out and hide all the elements which do not match the keyboard input.")],default:"highlight",description:localize("keyboardNavigationSettingKey","Controls the keyboard navigation style for lists and trees in the workbench. Can be simple, highlight and filter."),deprecated:!0,deprecationMessage:localize("keyboardNavigationSettingKeyDeprecated","Please use 'workbench.list.defaultFindMode' and 'workbench.list.typeNavigationMode' instead.")},[defaultFindMatchTypeSettingKey]:{type:"string",enum:["fuzzy","contiguous"],enumDescriptions:[localize("defaultFindMatchTypeSettingKey.fuzzy","Use fuzzy matching when searching."),localize("defaultFindMatchTypeSettingKey.contiguous","Use contiguous matching when searching.")],default:"fuzzy",description:localize("defaultFindMatchTypeSettingKey","Controls the type of matching used when searching lists and trees in the workbench.")},[treeExpandMode]:{type:"string",enum:["singleClick","doubleClick"],default:"singleClick",description:localize("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.")},[typeNavigationModeSettingKey]:{type:"string",enum:["automatic","trigger"],default:"automatic",markdownDescription:localize("typeNavigationMode2","Controls how type navigation works in lists and trees in the workbench. When set to `trigger`, type navigation begins once the `list.triggerTypeNavigation` command is run.")}}});var DefaultQuickAccessFilterValue;(function(o){o[o.PRESERVE=0]="PRESERVE",o[o.LAST=1]="LAST"})(DefaultQuickAccessFilterValue||(DefaultQuickAccessFilterValue={}));const Extensions$2={Quickaccess:"workbench.contributions.quickaccess"};class QuickAccessRegistry{constructor(){this.providers=[],this.defaultProvider=void 0}registerQuickAccessProvider(e){return e.prefix.length===0?this.defaultProvider=e:this.providers.push(e),this.providers.sort((t,i)=>i.prefix.length-t.prefix.length),toDisposable(()=>{this.providers.splice(this.providers.indexOf(e),1),this.defaultProvider===e&&(this.defaultProvider=void 0)})}getQuickAccessProviders(){return coalesce([this.defaultProvider,...this.providers])}getQuickAccessProvider(e){return e&&this.providers.find(i=>e.startsWith(i.prefix))||void 0||this.defaultProvider}}Registry.add(Extensions$2.Quickaccess,new QuickAccessRegistry);const NO_KEY_MODS={ctrlCmd:!1,alt:!1};var QuickInputHideReason;(function(o){o[o.Blur=1]="Blur",o[o.Gesture=2]="Gesture",o[o.Other=3]="Other"})(QuickInputHideReason||(QuickInputHideReason={}));var ItemActivation;(function(o){o[o.NONE=0]="NONE",o[o.FIRST=1]="FIRST",o[o.SECOND=2]="SECOND",o[o.LAST=3]="LAST"})(ItemActivation||(ItemActivation={}));const IQuickInputService=createDecorator("quickInputService");var __decorate$1J=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1H=function(o,e){return function(t,i){e(t,i,o)}};let QuickAccessController=class extends Disposable{constructor(e,t){super(),this.quickInputService=e,this.instantiationService=t,this.registry=Registry.as(Extensions$2.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[r,s]=this.getOrInstantiateProvider(e),a=this.visibleQuickAccess,l=a==null?void 0:a.descriptor;if(a&&s&&l===s){e!==s.prefix&&!(i!=null&&i.preserveValue)&&(a.picker.value=e),this.adjustValueSelection(a.picker,s,i);return}if(s&&!(i!=null&&i.preserveValue)){let f;if(a&&l&&l!==s){const p=a.value.substr(l.prefix.length);p&&(f=`${s.prefix}${p}`)}if(!f){const p=r==null?void 0:r.defaultFilterValue;p===DefaultQuickAccessFilterValue.LAST?f=this.lastAcceptedPickerValues.get(s):typeof p=="string"&&(f=`${s.prefix}${p}`)}typeof f=="string"&&(e=f)}const d=new DisposableStore,c=d.add(this.quickInputService.createQuickPick());c.value=e,this.adjustValueSelection(c,s,i),c.placeholder=s==null?void 0:s.placeholder,c.quickNavigate=i==null?void 0:i.quickNavigateConfiguration,c.hideInput=!!c.quickNavigate&&!a,(typeof(i==null?void 0:i.itemActivation)=="number"||i!=null&&i.quickNavigateConfiguration)&&(c.itemActivation=(n=i==null?void 0:i.itemActivation)!==null&&n!==void 0?n:ItemActivation.SECOND),c.contextKey=s==null?void 0:s.contextKey,c.filterValue=f=>f.substring(s?s.prefix.length:0);let u;t&&(u=new DeferredPromise,d.add(Event.once(c.onWillAccept)(f=>{f.veto(),c.hide()}))),d.add(this.registerPickerListeners(c,r,s,e,i==null?void 0:i.providerOptions));const g=d.add(new CancellationTokenSource$1);if(r&&d.add(r.provide(c,g.token,i==null?void 0:i.providerOptions)),Event.once(c.onDidHide)(()=>{c.selectedItems.length===0&&g.cancel(),d.dispose(),u==null||u.complete(c.selectedItems.slice(0))}),c.show(),t)return u==null?void 0:u.p}adjustValueSelection(e,t,i){var n;let r;i!=null&&i.preserveValue?r=[e.value.length,e.value.length]:r=[(n=t==null?void 0:t.prefix.length)!==null&&n!==void 0?n:0,e.value.length],e.valueSelection=r}registerPickerListeners(e,t,i,n,r){const s=new DisposableStore,a=this.visibleQuickAccess={picker:e,descriptor:i,value:n};return s.add(toDisposable(()=>{a===this.visibleQuickAccess&&(this.visibleQuickAccess=void 0)})),s.add(e.onDidChangeValue(l=>{const[d]=this.getOrInstantiateProvider(l);d!==t?this.show(l,{preserveValue:!0,providerOptions:r}):a.value=l})),i&&s.add(e.onDidAccept(()=>{this.lastAcceptedPickerValues.set(i,e.value)})),s}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]}};QuickAccessController=__decorate$1J([__param$1H(0,IQuickInputService),__param$1H(1,IInstantiationService)],QuickAccessController);Color.white.toString(),Color.white.toString();class Button extends Disposable{get onDidClick(){return this._onDidClick.event}constructor(e,t){super(),this._label="",this._onDidClick=this._register(new Emitter$1),this.options=t,this._element=document.createElement("a"),this._element.classList.add("monaco-button"),this._element.tabIndex=0,this._element.setAttribute("role","button"),this._element.classList.toggle("secondary",!!t.secondary);const i=t.secondary?t.buttonSecondaryBackground:t.buttonBackground,n=t.secondary?t.buttonSecondaryForeground:t.buttonForeground;this._element.style.color=n||"",this._element.style.backgroundColor=i||"",t.supportShortLabel&&(this._labelShortElement=document.createElement("div"),this._labelShortElement.classList.add("monaco-button-label-short"),this._element.appendChild(this._labelShortElement),this._labelElement=document.createElement("div"),this._labelElement.classList.add("monaco-button-label"),this._element.appendChild(this._labelElement),this._element.classList.add("monaco-text-button-with-short-label")),e.appendChild(this._element),this._register(Gesture.addTarget(this._element)),[EventType$1.CLICK,EventType.Tap].forEach(r=>{this._register(addDisposableListener(this._element,r,s=>{if(!this.enabled){EventHelper.stop(s);return}this._onDidClick.fire(s)}))}),this._register(addDisposableListener(this._element,EventType$1.KEY_DOWN,r=>{const s=new StandardKeyboardEvent(r);let a=!1;this.enabled&&(s.equals(3)||s.equals(10))?(this._onDidClick.fire(r),a=!0):s.equals(9)&&(this._element.blur(),a=!0),a&&EventHelper.stop(s,!0)})),this._register(addDisposableListener(this._element,EventType$1.MOUSE_OVER,r=>{this._element.classList.contains("disabled")||this.updateBackground(!0)})),this._register(addDisposableListener(this._element,EventType$1.MOUSE_OUT,r=>{this.updateBackground(!1)})),this.focusTracker=this._register(trackFocus(this._element)),this._register(this.focusTracker.onDidFocus(()=>{this.enabled&&this.updateBackground(!0)})),this._register(this.focusTracker.onDidBlur(()=>{this.enabled&&this.updateBackground(!1)}))}dispose(){super.dispose(),this._element.remove()}getContentElements(e){const t=[];for(let i of renderLabelWithIcons(e))if(typeof i=="string"){if(i=i.trim(),i==="")continue;const n=document.createElement("span");n.textContent=i,t.push(n)}else t.push(i);return t}updateBackground(e){let t;this.options.secondary?t=e?this.options.buttonSecondaryHoverBackground:this.options.buttonSecondaryBackground:t=e?this.options.buttonHoverBackground:this.options.buttonBackground,t&&(this._element.style.backgroundColor=t)}get element(){return this._element}set label(e){var t;if(this._label===e||isMarkdownString(this._label)&&isMarkdownString(e)&&markdownStringEqual(this._label,e))return;this._element.classList.add("monaco-text-button");const i=this.options.supportShortLabel?this._labelElement:this._element;if(isMarkdownString(e)){const n=renderMarkdown(e,{inline:!0});n.dispose();const r=(t=n.element.querySelector("p"))===null||t===void 0?void 0:t.innerHTML;if(r){const s=sanitize$1(r,{ADD_TAGS:["b","i","u","code","span"],ALLOWED_ATTR:["class"],RETURN_TRUSTED_TYPE:!0});i.innerHTML=s}else reset(i)}else this.options.supportIcons?reset(i,...this.getContentElements(e)):i.textContent=e;typeof this.options.title=="string"?this._element.title=this.options.title:this.options.title&&(this._element.title=renderStringAsPlaintext(e)),this._label=e}get label(){return this._label}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")}}class CountBadge{constructor(e,t,i){this.options=t,this.styles=i,this.count=0,this.element=append$1(e,$$d(".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(){var e,t;this.element.textContent=format(this.countFormat,this.count),this.element.title=format(this.titleFormat,this.count),this.element.style.backgroundColor=(e=this.styles.badgeBackground)!==null&&e!==void 0?e:"",this.element.style.color=(t=this.styles.badgeForeground)!==null&&t!==void 0?t:"",this.styles.badgeBorder&&(this.element.style.border=`1px solid ${this.styles.badgeBorder}`)}}const CSS_DONE="done",CSS_ACTIVE="active",CSS_INFINITE="infinite",CSS_INFINITE_LONG_RUNNING="infinite-long-running",CSS_DISCRETE="discrete";class ProgressBar extends Disposable{constructor(e,t){super(),this.workedVal=0,this.showDelayedScheduler=this._register(new RunOnceScheduler(()=>show(this.element),0)),this.longRunningScheduler=this._register(new RunOnceScheduler(()=>this.infiniteLongRunning(),ProgressBar.LONG_RUNNING_INFINITE_THRESHOLD)),this.create(e,t)}create(e,t){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.bit.style.backgroundColor=(t==null?void 0:t.progressBarBackground)||"#0E70C0",this.element.appendChild(this.bit)}off(){this.bit.style.width="inherit",this.bit.style.opacity="1",this.element.classList.remove(CSS_ACTIVE,CSS_INFINITE,CSS_INFINITE_LONG_RUNNING,CSS_DISCRETE),this.workedVal=0,this.totalWork=void 0,this.longRunningScheduler.cancel()}stop(){return this.doDone(!1)}doDone(e){return this.element.classList.add(CSS_DONE),this.element.classList.contains(CSS_INFINITE)?(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(CSS_DISCRETE,CSS_DONE,CSS_INFINITE_LONG_RUNNING),this.element.classList.add(CSS_ACTIVE,CSS_INFINITE),this.longRunningScheduler.schedule(),this}infiniteLongRunning(){this.element.classList.add(CSS_INFINITE_LONG_RUNNING)}getContainer(){return this.element}}ProgressBar.LONG_RUNNING_INFINITE_THRESHOLD=1e4;const $$a=$$d;class QuickInputBox extends Disposable{constructor(e,t,i){super(),this.parent=e,this.onKeyDown=r=>addDisposableListener(this.findInput.inputBox.inputElement,EventType$1.KEY_DOWN,s=>{r(new StandardKeyboardEvent(s))}),this.onMouseDown=r=>addDisposableListener(this.findInput.inputBox.inputElement,EventType$1.MOUSE_DOWN,s=>{r(new StandardMouseEvent(s))}),this.onDidChange=r=>this.findInput.onDidChange(r),this.container=append$1(this.parent,$$a(".quick-input-box")),this.findInput=this._register(new FindInput(this.container,void 0,{label:"",inputBoxStyles:t,toggleStyles:i}));const n=this.findInput.inputBox.inputElement;n.role="combobox",n.ariaHasPopup="menu",n.ariaAutoComplete="list",n.ariaExpanded="true"}get value(){return this.findInput.getValue()}set value(e){this.findInput.setValue(e)}select(e=null){this.findInput.inputBox.select(e)}isSelectionAtEnd(){return this.findInput.inputBox.isSelectionAtEnd()}get placeholder(){return this.findInput.inputBox.inputElement.getAttribute("placeholder")||""}set placeholder(e){this.findInput.inputBox.setPlaceHolder(e)}get password(){return this.findInput.inputBox.inputElement.type==="password"}set password(e){this.findInput.inputBox.inputElement.type=e?"password":"text"}set enabled(e){this.findInput.inputBox.inputElement.toggleAttribute("readonly",!e)}set toggles(e){this.findInput.setAdditionalToggles(e)}setAttribute(e,t){this.findInput.inputBox.inputElement.setAttribute(e,t)}showDecoration(e){e===Severity$2.Ignore?this.findInput.clearMessage():this.findInput.showMessage({type:e===Severity$2.Info?1:e===Severity$2.Warning?2:3,content:""})}stylesForType(e){return this.findInput.inputBox.stylesForType(e===Severity$2.Info?1:e===Severity$2.Warning?2:3)}setFocus(){this.findInput.focus()}layout(){this.findInput.inputBox.layout()}}class HighlightedLabel{constructor(e,t){var i;this.text="",this.title="",this.highlights=[],this.didEverRender=!1,this.supportIcons=(i=t==null?void 0:t.supportIcons)!==null&&i!==void 0?i:!1,this.domNode=append$1(e,$$d("span.monaco-highlighted-label"))}get element(){return this.domNode}set(e,t=[],i="",n){e||(e=""),n&&(e=HighlightedLabel.escapeNewLines(e,t)),!(this.didEverRender&&this.text===e&&this.title===i&&equals$1(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 s=this.text.substring(t,i.start);this.supportIcons?e.push(...renderLabelWithIcons(s)):e.push(s),t=i.start}const n=this.text.substring(t,i.end),r=$$d("span.highlight",void 0,...this.supportIcons?renderLabelWithIcons(n):[n]);i.extraClasses&&r.classList.add(...i.extraClasses),e.push(r),t=i.end}if(t<this.text.length){const i=this.text.substring(t);this.supportIcons?e.push(...renderLabelWithIcons(i)):e.push(i)}reset(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,(r,s)=>{n=r===`\r
- `?-1:0,s+=i;for(const a of t)a.end<=s||(a.start>=s&&(a.start+=n),a.end>=s&&(a.end+=n));return i+=n,"⏎"})}}class FastLabelNode{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 IconLabel extends Disposable{constructor(e,t){super(),this.customHovers=new Map,this.creationOptions=t,this.domNode=this._register(new FastLabelNode(append$1(e,$$d(".monaco-icon-label")))),this.labelContainer=append$1(this.domNode.element,$$d(".monaco-icon-label-container"));const i=append$1(this.labelContainer,$$d("span.monaco-icon-name-container"));t!=null&&t.supportHighlights||t!=null&&t.supportIcons?this.nameNode=new LabelWithHighlights(i,!!t.supportIcons):this.nameNode=new Label(i),this.hoverDelegate=t==null?void 0:t.hoverDelegate}get element(){return this.domNode.element}setLabel(e,t,i){const n=["monaco-icon-label"],r=["monaco-icon-label-container"];let s="";if(i&&(i.extraClasses&&n.push(...i.extraClasses),i.italic&&n.push("italic"),i.strikethrough&&n.push("strikethrough"),i.disabledCommand&&r.push("disabled"),i.title&&(s+=i.title)),this.domNode.className=n.join(" "),this.domNode.element.setAttribute("aria-label",s),this.labelContainer.className=r.join(" "),this.setupHover(i!=null&&i.descriptionTitle?this.labelContainer:this.element,i==null?void 0:i.title),this.nameNode.setLabel(e,i),t||this.descriptionNode){const a=this.getOrCreateDescriptionNode();a instanceof HighlightedLabel?(a.set(t||"",i?i.descriptionMatches:void 0,void 0,i==null?void 0:i.labelEscapeNewLines),this.setupHover(a.element,i==null?void 0:i.descriptionTitle)):(a.textContent=t&&(i!=null&&i.labelEscapeNewLines)?HighlightedLabel.escapeNewLines(t,[]):t||"",this.setupHover(a.element,(i==null?void 0:i.descriptionTitle)||""),a.empty=!t)}}setupHover(e,t){const i=this.customHovers.get(e);if(i&&(i.dispose(),this.customHovers.delete(e)),!t){e.removeAttribute("title");return}if(!this.hoverDelegate)setupNativeHover(e,t);else{const n=setupCustomHover(this.hoverDelegate,e,t);n&&this.customHovers.set(e,n)}}dispose(){super.dispose();for(const e of this.customHovers.values())e.dispose();this.customHovers.clear()}getOrCreateDescriptionNode(){var e;if(!this.descriptionNode){const t=this._register(new FastLabelNode(append$1(this.labelContainer,$$d("span.monaco-icon-description-container"))));!((e=this.creationOptions)===null||e===void 0)&&e.supportDescriptionHighlights?this.descriptionNode=new HighlightedLabel(append$1(t.element,$$d("span.label-description")),{supportIcons:!!this.creationOptions.supportIcons}):this.descriptionNode=this._register(new FastLabelNode(append$1(t.element,$$d("span.label-description"))))}return this.descriptionNode}}class Label{constructor(e){this.container=e,this.label=void 0,this.singleLabel=void 0}setLabel(e,t){if(!(this.label===e&&equals$1(this.options,t)))if(this.label=e,this.options=t,typeof e=="string")this.singleLabel||(this.container.innerText="",this.container.classList.remove("multiple"),this.singleLabel=append$1(this.container,$$d("a.label-name",{id:t==null?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 n=e[i],r=(t==null?void 0:t.domId)&&`${t==null?void 0:t.domId}_${i}`;append$1(this.container,$$d("a.label-name",{id:r,"data-icon-label-count":e.length,"data-icon-label-index":i,role:"treeitem"},n)),i<e.length-1&&append$1(this.container,$$d("span.label-separator",void 0,(t==null?void 0:t.separator)||"/"))}}}}function splitMatches(o,e,t){if(!t)return;let i=0;return o.map(n=>{const r={start:i,end:i+n.length},s=t.map(a=>Range$1.intersect(r,a)).filter(a=>!Range$1.isEmpty(a)).map(({start:a,end:l})=>({start:a-i,end:l-i}));return i=r.end+e.length,s})}class LabelWithHighlights{constructor(e,t){this.container=e,this.supportIcons=t,this.label=void 0,this.singleLabel=void 0}setLabel(e,t){if(!(this.label===e&&equals$1(this.options,t)))if(this.label=e,this.options=t,typeof e=="string")this.singleLabel||(this.container.innerText="",this.container.classList.remove("multiple"),this.singleLabel=new HighlightedLabel(append$1(this.container,$$d("a.label-name",{id:t==null?void 0:t.domId})),{supportIcons:this.supportIcons})),this.singleLabel.set(e,t==null?void 0:t.matches,void 0,t==null?void 0:t.labelEscapeNewLines);else{this.container.innerText="",this.container.classList.add("multiple"),this.singleLabel=void 0;const i=(t==null?void 0:t.separator)||"/",n=splitMatches(e,i,t==null?void 0:t.matches);for(let r=0;r<e.length;r++){const s=e[r],a=n?n[r]:void 0,l=(t==null?void 0:t.domId)&&`${t==null?void 0:t.domId}_${r}`,d=$$d("a.label-name",{id:l,"data-icon-label-count":e.length,"data-icon-label-index":r,role:"treeitem"});new HighlightedLabel(append$1(this.container,d),{supportIcons:this.supportIcons}).set(s,a,void 0,t==null?void 0:t.labelEscapeNewLines),r<e.length-1&&append$1(d,$$d("span.label-separator",void 0,i))}}}}const $$9=$$d,unthemedKeybindingLabelOptions={keybindingLabelBackground:void 0,keybindingLabelForeground:void 0,keybindingLabelBorder:void 0,keybindingLabelBottomBorder:void 0,keybindingLabelShadow:void 0};class KeybindingLabel{constructor(e,t,i){this.os=t,this.keyElements=new Set,this.options=i||Object.create(null);const n=this.options.keybindingLabelForeground;this.domNode=append$1(e,$$9(".monaco-keybinding")),n&&(this.domNode.style.color=n),this.didEverRender=!1,e.appendChild(this.domNode)}get element(){return this.domNode}set(e,t){this.didEverRender&&this.keybinding===e&&KeybindingLabel.areSame(this.matches,t)||(this.keybinding=e,this.matches=t,this.render())}render(){var e;if(this.clear(),this.keybinding){const t=this.keybinding.getChords();t[0]&&this.renderChord(this.domNode,t[0],this.matches?this.matches.firstPart:null);for(let n=1;n<t.length;n++)append$1(this.domNode,$$9("span.monaco-keybinding-key-chord-separator",void 0," ")),this.renderChord(this.domNode,t[n],this.matches?this.matches.chordPart:null);const i=(e=this.options.disableTitle)!==null&&e!==void 0&&e?void 0:this.keybinding.getAriaLabel()||void 0;i!==void 0?this.domNode.title=i:this.domNode.removeAttribute("title")}else this.options&&this.options.renderUnboundKeybindings&&this.renderUnbound(this.domNode);this.didEverRender=!0}clear(){clearNode(this.domNode),this.keyElements.clear()}renderChord(e,t,i){const n=UILabelProvider.modifierLabels[this.os];t.ctrlKey&&this.renderKey(e,n.ctrlKey,!!(i!=null&&i.ctrlKey),n.separator),t.shiftKey&&this.renderKey(e,n.shiftKey,!!(i!=null&&i.shiftKey),n.separator),t.altKey&&this.renderKey(e,n.altKey,!!(i!=null&&i.altKey),n.separator),t.metaKey&&this.renderKey(e,n.metaKey,!!(i!=null&&i.metaKey),n.separator);const r=t.keyLabel;r&&this.renderKey(e,r,!!(i!=null&&i.keyCode),"")}renderKey(e,t,i,n){append$1(e,this.createKeyElement(t,i?".highlight":"")),n&&append$1(e,$$9("span.monaco-keybinding-key-separator",void 0,n))}renderUnbound(e){append$1(e,this.createKeyElement(localize("unbound","Unbound")))}createKeyElement(e,t=""){const i=$$9("span.monaco-keybinding-key"+t,void 0,e);return this.keyElements.add(i),this.options.keybindingLabelBackground&&(i.style.backgroundColor=this.options.keybindingLabelBackground),this.options.keybindingLabelBorder&&(i.style.borderColor=this.options.keybindingLabelBorder),this.options.keybindingLabelBottomBorder&&(i.style.borderBottomColor=this.options.keybindingLabelBottomBorder),this.options.keybindingLabelShadow&&(i.style.boxShadow=`inset 0 -1px 0 ${this.options.keybindingLabelShadow}`),i}static areSame(e,t){return e===t||!e&&!t?!0:!!e&&!!t&&equals$1(e.firstPart,t.firstPart)&&equals$1(e.chordPart,t.chordPart)}}const intlFileNameCollatorBaseNumeric=new Lazy(()=>{const o=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});return{collator:o,collatorIsNumeric:o.resolvedOptions().numeric}});function compareFileNames(o,e,t=!1){const i=o||"",n=e||"",r=intlFileNameCollatorBaseNumeric.value.collator.compare(i,n);return intlFileNameCollatorBaseNumeric.value.collatorIsNumeric&&r===0&&i!==n?i<n?-1:1:r}function compareAnything(o,e,t){const i=o.toLowerCase(),n=e.toLowerCase(),r=compareByPrefix(o,e,t);if(r)return r;const s=i.endsWith(t),a=n.endsWith(t);if(s!==a)return s?-1:1;const l=compareFileNames(i,n);return l!==0?l:i.localeCompare(n)}function compareByPrefix(o,e,t){const i=o.toLowerCase(),n=e.toLowerCase(),r=i.startsWith(t),s=n.startsWith(t);if(r!==s)return r?-1:1;if(r&&s){if(i.length<n.length)return-1;if(i.length>n.length)return 1}return 0}var __decorate$1I=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r};class LinkedText{constructor(e){this.nodes=e}toString(){return this.nodes.map(e=>typeof e=="string"?e:e.label).join("")}}__decorate$1I([memoize],LinkedText.prototype,"toString",null);const LINK_REGEX=/\[([^\]]+)\]\(((?:https?:\/\/|command:|file:)[^\)\s]+)(?: (["'])(.+?)(\3))?\)/gi;function parseLinkedText(o){const e=[];let t=0,i;for(;i=LINK_REGEX.exec(o);){i.index-t>0&&e.push(o.substring(t,i.index));const[,n,r,,s]=i;s?e.push({label:n,href:r,title:s}):e.push({label:n,href:r}),t=i.index+i[0].length}return t<o.length&&e.push(o.substring(t)),new LinkedText(e)}const iconPathToClass={},iconClassGenerator=new IdGenerator("quick-input-button-icon-");function getIconClass(o){if(!o)return;let e;const t=o.dark.toString();return iconPathToClass[t]?e=iconPathToClass[t]:(e=iconClassGenerator.nextId(),createCSSRule(`.${e}, .hc-light .${e}`,`background-image: ${asCSSUrl(o.light||o.dark)}`),createCSSRule(`.vs-dark .${e}, .hc-black .${e}`,`background-image: ${asCSSUrl(o.dark)}`),iconPathToClass[t]=e),e}function renderQuickInputDescription(o,e,t){reset(e);const i=parseLinkedText(o);let n=0;for(const r of i.nodes)if(typeof r=="string")e.append(...renderLabelWithIcons(r));else{let s=r.title;!s&&r.href.startsWith("command:")?s=localize("executeCommand","Click to execute command '{0}'",r.href.substring(8)):s||(s=r.href);const a=$$d("a",{href:r.href,title:s,tabIndex:n++},r.label);a.style.textDecoration="underline";const l=f=>{isEventLike(f)&&EventHelper.stop(f,!0),t.callback(r.href)},d=t.disposables.add(new DomEmitter(a,EventType$1.CLICK)).event,c=t.disposables.add(new DomEmitter(a,EventType$1.KEY_DOWN)).event,u=Event.chain(c,f=>f.filter(p=>{const m=new StandardKeyboardEvent(p);return m.equals(10)||m.equals(3)}));t.disposables.add(Gesture.addTarget(a));const g=t.disposables.add(new DomEmitter(a,EventType.Tap)).event;Event.any(d,g,u)(l,null,t.disposables),e.appendChild(a)}}var __decorate$1H=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__awaiter$1i=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};const $$8=$$d;class ListElement{constructor(e,t,i,n,r,s,a){var l,d,c;this._checked=!1,this._hidden=!1,this.hasCheckbox=n,this.index=i,this.fireButtonTriggered=r,this.fireSeparatorButtonTriggered=s,this._onChecked=a,this.onChecked=n?Event.map(Event.filter(this._onChecked.event,u=>u.listElement===this),u=>u.checked):Event.None,e.type==="separator"?this._separator=e:(this.item=e,t&&t.type==="separator"&&!t.buttons&&(this._separator=t),this.saneDescription=this.item.description,this.saneDetail=this.item.detail,this._labelHighlights=(l=this.item.highlights)===null||l===void 0?void 0:l.label,this._descriptionHighlights=(d=this.item.highlights)===null||d===void 0?void 0:d.description,this._detailHighlights=(c=this.item.highlights)===null||c===void 0?void 0:c.detail,this.saneTooltip=this.item.tooltip),this._init=new Lazy(()=>{var u;const g=(u=e.label)!==null&&u!==void 0?u:"",f=parseLabelWithIcons(g).text.trim(),p=e.ariaLabel||[g,this.saneDescription,this.saneDetail].map(m=>getCodiconAriaLabel(m)).filter(m=>!!m).join(", ");return{saneLabel:g,saneSortLabel:f,saneAriaLabel:p}})}get saneLabel(){return this._init.value.saneLabel}get saneSortLabel(){return this._init.value.saneSortLabel}get saneAriaLabel(){return this._init.value.saneAriaLabel}get element(){return this._element}set element(e){this._element=e}get hidden(){return this._hidden}set hidden(e){this._hidden=e}get checked(){return this._checked}set checked(e){e!==this._checked&&(this._checked=e,this._onChecked.fire({listElement:this,checked:e}))}get separator(){return this._separator}set separator(e){this._separator=e}get labelHighlights(){return this._labelHighlights}set labelHighlights(e){this._labelHighlights=e}get descriptionHighlights(){return this._descriptionHighlights}set descriptionHighlights(e){this._descriptionHighlights=e}get detailHighlights(){return this._detailHighlights}set detailHighlights(e){this._detailHighlights=e}}class ListElementRenderer{constructor(e){this.themeService=e}get templateId(){return ListElementRenderer.ID}renderTemplate(e){const t=Object.create(null);t.toDisposeElement=[],t.toDisposeTemplate=[],t.entry=append$1(e,$$8(".quick-input-list-entry"));const i=append$1(t.entry,$$8("label.quick-input-list-label"));t.toDisposeTemplate.push(addStandardDisposableListener(i,EventType$1.CLICK,d=>{t.checkbox.offsetParent||d.preventDefault()})),t.checkbox=append$1(i,$$8("input.quick-input-list-checkbox")),t.checkbox.type="checkbox",t.toDisposeTemplate.push(addStandardDisposableListener(t.checkbox,EventType$1.CHANGE,d=>{t.element.checked=t.checkbox.checked}));const n=append$1(i,$$8(".quick-input-list-rows")),r=append$1(n,$$8(".quick-input-list-row")),s=append$1(n,$$8(".quick-input-list-row"));t.label=new IconLabel(r,{supportHighlights:!0,supportDescriptionHighlights:!0,supportIcons:!0}),t.toDisposeTemplate.push(t.label),t.icon=prepend$1(t.label.element,$$8(".quick-input-list-icon"));const a=append$1(r,$$8(".quick-input-list-entry-keybinding"));t.keybinding=new KeybindingLabel(a,OS);const l=append$1(s,$$8(".quick-input-list-label-meta"));return t.detail=new IconLabel(l,{supportHighlights:!0,supportIcons:!0}),t.toDisposeTemplate.push(t.detail),t.separator=append$1(t.entry,$$8(".quick-input-list-separator")),t.actionBar=new ActionBar(t.entry),t.actionBar.domNode.classList.add("quick-input-list-entry-action-bar"),t.toDisposeTemplate.push(t.actionBar),t}renderElement(e,t,i){var n,r,s,a;i.element=e,e.element=(n=i.entry)!==null&&n!==void 0?n:void 0;const l=e.item?e.item:e.separator;i.checkbox.checked=e.checked,i.toDisposeElement.push(e.onChecked(p=>i.checkbox.checked=p));const{labelHighlights:d,descriptionHighlights:c,detailHighlights:u}=e;if(!((r=e.item)===null||r===void 0)&&r.iconPath){const p=isDark(this.themeService.getColorTheme().type)?e.item.iconPath.dark:(s=e.item.iconPath.light)!==null&&s!==void 0?s:e.item.iconPath.dark,m=URI.revive(p);i.icon.className="quick-input-list-icon",i.icon.style.backgroundImage=asCSSUrl(m)}else i.icon.style.backgroundImage="",i.icon.className=!((a=e.item)===null||a===void 0)&&a.iconClass?`quick-input-list-icon ${e.item.iconClass}`:"";const g={matches:d||[],descriptionTitle:e.saneDescription,descriptionMatches:c||[],labelEscapeNewLines:!0};l.type!=="separator"?(g.extraClasses=l.iconClasses,g.italic=l.italic,g.strikethrough=l.strikethrough,i.entry.classList.remove("quick-input-list-separator-as-item")):i.entry.classList.add("quick-input-list-separator-as-item"),i.label.setLabel(e.saneLabel,e.saneDescription,g),i.keybinding.set(l.type==="separator"?void 0:l.keybinding),e.saneDetail?(i.detail.element.style.display="",i.detail.setLabel(e.saneDetail,void 0,{matches:u,title:e.saneDetail,labelEscapeNewLines:!0})):i.detail.element.style.display="none",e.item&&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);const f=l.buttons;f&&f.length?(i.actionBar.push(f.map((p,m)=>{let b=p.iconClass||(p.iconPath?getIconClass(p.iconPath):void 0);return p.alwaysVisible&&(b=b?`${b} always-visible`:"always-visible"),{id:`id-${m}`,class:b,enabled:!0,label:"",tooltip:p.tooltip||"",run:()=>{l.type!=="separator"?e.fireButtonTriggered({button:p,item:l}):e.fireSeparatorButtonTriggered({button:p,separator:l})}}}),{icon:!0,label:!1}),i.entry.classList.add("has-actions")):i.entry.classList.remove("has-actions")}disposeElement(e,t,i){i.toDisposeElement=dispose(i.toDisposeElement),i.actionBar.clear()}disposeTemplate(e){e.toDisposeElement=dispose(e.toDisposeElement),e.toDisposeTemplate=dispose(e.toDisposeTemplate)}}ListElementRenderer.ID="listelement";class ListElementDelegate{getHeight(e){return e.item?e.saneDetail?44:22:24}getTemplateId(e){return ListElementRenderer.ID}}var QuickInputListFocus;(function(o){o[o.First=1]="First",o[o.Second=2]="Second",o[o.Last=3]="Last",o[o.Next=4]="Next",o[o.Previous=5]="Previous",o[o.NextPage=6]="NextPage",o[o.PreviousPage=7]="PreviousPage"})(QuickInputListFocus||(QuickInputListFocus={}));class QuickInputList{constructor(e,t,i,n){this.parent=e,this.options=i,this.inputElements=[],this.elements=[],this.elementsToIndexes=new Map,this.matchOnDescription=!1,this.matchOnDetail=!1,this.matchOnLabel=!0,this.matchOnLabelMode="fuzzy",this.sortByLabel=!0,this._onChangedAllVisibleChecked=new Emitter$1,this.onChangedAllVisibleChecked=this._onChangedAllVisibleChecked.event,this._onChangedCheckedCount=new Emitter$1,this.onChangedCheckedCount=this._onChangedCheckedCount.event,this._onChangedVisibleCount=new Emitter$1,this.onChangedVisibleCount=this._onChangedVisibleCount.event,this._onChangedCheckedElements=new Emitter$1,this.onChangedCheckedElements=this._onChangedCheckedElements.event,this._onButtonTriggered=new Emitter$1,this.onButtonTriggered=this._onButtonTriggered.event,this._onSeparatorButtonTriggered=new Emitter$1,this.onSeparatorButtonTriggered=this._onSeparatorButtonTriggered.event,this._onKeyDown=new Emitter$1,this.onKeyDown=this._onKeyDown.event,this._onLeave=new Emitter$1,this.onLeave=this._onLeave.event,this._listElementChecked=new Emitter$1,this._fireCheckedEvents=!0,this.elementDisposables=[],this.disposables=[],this.id=t,this.container=append$1(this.parent,$$8(".quick-input-list"));const r=new ListElementDelegate,s=new QuickInputAccessibilityProvider;if(this.list=i.createList("QuickInput",this.container,r,[new ListElementRenderer(n)],{identityProvider:{getId:a=>{var l,d,c,u,g,f,p,m;return(m=(f=(u=(d=(l=a.item)===null||l===void 0?void 0:l.id)!==null&&d!==void 0?d:(c=a.item)===null||c===void 0?void 0:c.label)!==null&&u!==void 0?u:(g=a.separator)===null||g===void 0?void 0:g.id)!==null&&f!==void 0?f:(p=a.separator)===null||p===void 0?void 0:p.label)!==null&&m!==void 0?m:""}},setRowLineHeight:!1,multipleSelectionSupport:!1,horizontalScrolling:!1,accessibilityProvider:s}),this.list.getHTMLElement().id=t,this.disposables.push(this.list),this.disposables.push(this.list.onKeyDown(a=>{const l=new StandardKeyboardEvent(a);switch(l.keyCode){case 10:this.toggleCheckbox();break;case 31:(isMacintosh?a.metaKey:a.ctrlKey)&&this.list.setFocus(range(this.list.length));break;case 16:{const d=this.list.getFocus();d.length===1&&d[0]===0&&this._onLeave.fire();break}case 18:{const d=this.list.getFocus();d.length===1&&d[0]===this.list.length-1&&this._onLeave.fire();break}}this._onKeyDown.fire(l)})),this.disposables.push(this.list.onMouseDown(a=>{a.browserEvent.button!==2&&a.browserEvent.preventDefault()})),this.disposables.push(addDisposableListener(this.container,EventType$1.CLICK,a=>{(a.x||a.y)&&this._onLeave.fire()})),this.disposables.push(this.list.onMouseMiddleClick(a=>{this._onLeave.fire()})),this.disposables.push(this.list.onContextMenu(a=>{typeof a.index=="number"&&(a.browserEvent.preventDefault(),this.list.setSelection([a.index]))})),i.hoverDelegate){const a=new ThrottledDelayer(i.hoverDelegate.delay);this.disposables.push(this.list.onMouseOver(l=>__awaiter$1i(this,void 0,void 0,function*(){var d;if(l.browserEvent.target instanceof HTMLAnchorElement){a.cancel();return}if(!(!(l.browserEvent.relatedTarget instanceof HTMLAnchorElement)&&isAncestor$1(l.browserEvent.relatedTarget,(d=l.element)===null||d===void 0?void 0:d.element)))try{yield a.trigger(()=>__awaiter$1i(this,void 0,void 0,function*(){l.element&&this.showHover(l.element)}))}catch(c){if(!isCancellationError(c))throw c}}))),this.disposables.push(this.list.onMouseOut(l=>{var d;isAncestor$1(l.browserEvent.relatedTarget,(d=l.element)===null||d===void 0?void 0:d.element)||a.cancel()})),this.disposables.push(a)}this.disposables.push(this._listElementChecked.event(a=>this.fireCheckedEvents())),this.disposables.push(this._onChangedAllVisibleChecked,this._onChangedCheckedCount,this._onChangedVisibleCount,this._onChangedCheckedElements,this._onButtonTriggered,this._onSeparatorButtonTriggered,this._onLeave,this._onKeyDown)}get onDidChangeFocus(){return Event.map(this.list.onDidChangeFocus,e=>e.elements.map(t=>t.item))}get onDidChangeSelection(){return Event.map(this.list.onDidChangeSelection,e=>({items:e.elements.map(t=>t.item),event:e.browserEvent}))}get scrollTop(){return this.list.scrollTop}set scrollTop(e){this.list.scrollTop=e}get ariaLabel(){return this.list.getHTMLElement().ariaLabel}set ariaLabel(e){this.list.getHTMLElement().ariaLabel=e}getAllVisibleChecked(){return this.allVisibleChecked(this.elements,!1)}allVisibleChecked(e,t=!0){for(let i=0,n=e.length;i<n;i++){const r=e[i];if(!r.hidden)if(r.checked)t=!0;else return!1}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=dispose(this.elementDisposables);const t=s=>this.fireButtonTriggered(s),i=s=>this.fireSeparatorButtonTriggered(s);this.inputElements=e;const n=new Map,r=this.parent.classList.contains("show-checkboxes");this.elements=e.reduce((s,a,l)=>{var d;const c=l>0?e[l-1]:void 0;if(a.type==="separator"&&!a.buttons)return s;const u=new ListElement(a,c,l,r,t,i,this._listElementChecked),g=s.length;return s.push(u),n.set((d=u.item)!==null&&d!==void 0?d:u.separator,g),s},[]),this.elementsToIndexes=n,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(t=>this.elementsToIndexes.has(t)).map(t=>this.elementsToIndexes.get(t))),e.length>0){const t=this.list.getFocus()[0];typeof t=="number"&&this.list.reveal(t)}}getActiveDescendant(){return this.list.getHTMLElement().getAttribute("aria-activedescendant")}setSelectedElements(e){this.list.setSelection(e.filter(t=>this.elementsToIndexes.has(t)).map(t=>this.elementsToIndexes.get(t)))}getCheckedElements(){return this.elements.filter(e=>e.checked).map(e=>e.item).filter(e=>!!e)}setCheckedElements(e){try{this._fireCheckedEvents=!1;const t=new Set;for(const i of e)t.add(i);for(const i of this.elements)i.checked=t.has(i.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===QuickInputListFocus.Second&&this.list.length<2&&(e=QuickInputListFocus.First),e){case QuickInputListFocus.First:this.list.scrollTop=0,this.list.focusFirst(void 0,i=>!!i.item);break;case QuickInputListFocus.Second:this.list.scrollTop=0,this.list.focusNth(1,void 0,i=>!!i.item);break;case QuickInputListFocus.Last:this.list.scrollTop=this.list.scrollHeight,this.list.focusLast(void 0,i=>!!i.item);break;case QuickInputListFocus.Next:{this.list.focusNext(void 0,!0,void 0,n=>!!n.item);const i=this.list.getFocus()[0];i!==0&&!this.elements[i-1].item&&this.list.firstVisibleIndex>i-1&&this.list.reveal(i-1);break}case QuickInputListFocus.Previous:{this.list.focusPrevious(void 0,!0,void 0,n=>!!n.item);const i=this.list.getFocus()[0];i!==0&&!this.elements[i-1].item&&this.list.firstVisibleIndex>i-1&&this.list.reveal(i-1);break}case QuickInputListFocus.NextPage:this.list.focusNextPage(void 0,i=>!!i.item);break;case QuickInputListFocus.PreviousPage:this.list.focusPreviousPage(void 0,i=>!!i.item);break}const t=this.list.getFocus()[0];typeof t=="number"&&this.list.reveal(t)}clearFocus(){this.list.setFocus([])}domFocus(){this.list.domFocus()}showHover(e){var t,i,n;this.options.hoverDelegate!==void 0&&(this._lastHover&&!this._lastHover.isDisposed&&((i=(t=this.options.hoverDelegate).onDidHideHover)===null||i===void 0||i.call(t),(n=this._lastHover)===null||n===void 0||n.dispose()),!(!e.element||!e.saneTooltip)&&(this._lastHover=this.options.hoverDelegate.showHover({content:e.saneTooltip,target:e.element,linkHandler:r=>{this.options.linkOpenerDelegate(r)},showPointer:!0,container:this.container,hoverPosition:1},!1)))}layout(e){this.list.getHTMLElement().style.maxHeight=e?`${Math.floor(e/44)*44+6}px`:"",this.list.layout()}filter(e){if(!(this.sortByLabel||this.matchOnLabel||this.matchOnDescription||this.matchOnDetail))return this.list.layout(),!1;const t=e;if(e=e.trim(),!e||!(this.matchOnLabel||this.matchOnDescription||this.matchOnDetail))this.elements.forEach(n=>{n.labelHighlights=void 0,n.descriptionHighlights=void 0,n.detailHighlights=void 0,n.hidden=!1;const r=n.index&&this.inputElements[n.index-1];n.item&&(n.separator=r&&r.type==="separator"&&!r.buttons?r:void 0)});else{let n;this.elements.forEach(r=>{var s,a,l,d;let c;this.matchOnLabelMode==="fuzzy"?c=this.matchOnLabel&&(s=matchesFuzzyIconAware(e,parseLabelWithIcons(r.saneLabel)))!==null&&s!==void 0?s:void 0:c=this.matchOnLabel&&(a=matchesContiguousIconAware(t,parseLabelWithIcons(r.saneLabel)))!==null&&a!==void 0?a:void 0;const u=this.matchOnDescription&&(l=matchesFuzzyIconAware(e,parseLabelWithIcons(r.saneDescription||"")))!==null&&l!==void 0?l:void 0,g=this.matchOnDetail&&(d=matchesFuzzyIconAware(e,parseLabelWithIcons(r.saneDetail||"")))!==null&&d!==void 0?d:void 0;if(c||u||g?(r.labelHighlights=c,r.descriptionHighlights=u,r.detailHighlights=g,r.hidden=!1):(r.labelHighlights=void 0,r.descriptionHighlights=void 0,r.detailHighlights=void 0,r.hidden=r.item?!r.item.alwaysShow:!0),r.item?r.separator=void 0:r.separator&&(r.hidden=!0),!this.sortByLabel){const f=r.index&&this.inputElements[r.index-1];n=f&&f.type==="separator"?f:n,n&&!r.hidden&&(r.separator=n,n=void 0)}})}const i=this.elements.filter(n=>!n.hidden);if(this.sortByLabel&&e){const n=e.toLowerCase();i.sort((r,s)=>compareEntries(r,s,n))}return this.elementsToIndexes=i.reduce((n,r,s)=>{var a;return n.set((a=r.item)!==null&&a!==void 0?a:r.separator,s),n},new Map),this.list.splice(0,this.list.length,i),this.list.setFocus([]),this.list.layout(),this._onChangedAllVisibleChecked.fire(this.getAllVisibleChecked()),this._onChangedVisibleCount.fire(i.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 this.container.style.display!=="none"}dispose(){this.elementDisposables=dispose(this.elementDisposables),this.disposables=dispose(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)}fireSeparatorButtonTriggered(e){this._onSeparatorButtonTriggered.fire(e)}style(e){this.list.style(e)}toggleHover(){const e=this.list.getFocusedElements()[0];if(!(e!=null&&e.saneTooltip))return;if(this._lastHover&&!this._lastHover.isDisposed){this._lastHover.dispose();return}const t=this.list.getFocusedElements()[0];if(!t)return;this.showHover(t);const i=new DisposableStore;i.add(this.list.onDidChangeFocus(n=>{n.indexes.length&&this.showHover(n.elements[0])})),this._lastHover&&i.add(this._lastHover),this._toggleHover=i,this.elementDisposables.push(this._toggleHover)}}__decorate$1H([memoize],QuickInputList.prototype,"onDidChangeFocus",null);__decorate$1H([memoize],QuickInputList.prototype,"onDidChangeSelection",null);function matchesContiguousIconAware(o,e){const{text:t,iconOffsets:i}=e;if(!i||i.length===0)return matchesContiguous(o,t);const n=ltrim(t," "),r=t.length-n.length,s=matchesContiguous(o,n);if(s)for(const a of s){const l=i[a.start+r]+r;a.start+=l,a.end+=l}return s}function matchesContiguous(o,e){const t=e.toLowerCase().indexOf(o.toLowerCase());return t!==-1?[{start:t,end:t+o.length}]:null}function compareEntries(o,e,t){const i=o.labelHighlights||[],n=e.labelHighlights||[];return i.length&&!n.length?-1:!i.length&&n.length?1:i.length===0&&n.length===0?0:compareAnything(o.saneSortLabel,e.saneSortLabel,t)}class QuickInputAccessibilityProvider{getWidgetAriaLabel(){return localize("quickInput","Quick Input")}getAriaLabel(e){var t;return!((t=e.separator)===null||t===void 0)&&t.label?`${e.saneAriaLabel}, ${e.separator.label}`:e.saneAriaLabel}getWidgetRole(){return"listbox"}getRole(e){return e.hasCheckbox?"checkbox":"option"}isChecked(e){if(e.hasCheckbox)return{value:e.checked,onDidChange:e.onChecked}}}var __awaiter$1h=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};const backButton={iconClass:ThemeIcon.asClassName(Codicon.quickInputBack),tooltip:localize("quickInput.back","Back")};class QuickInput extends Disposable{constructor(e){super(),this.ui=e,this._widgetUpdated=!1,this.visible=!1,this._enabled=!0,this._busy=!1,this._ignoreFocusOut=!1,this._buttons=[],this.buttonsUpdated=!1,this._toggles=[],this.togglesUpdated=!1,this.noValidationMessage=QuickInput.noPromptMessage,this._severity=Severity$2.Ignore,this.onDidTriggerButtonEmitter=this._register(new Emitter$1),this.onDidHideEmitter=this._register(new Emitter$1),this.onDisposeEmitter=this._register(new Emitter$1),this.visibleDisposables=this._register(new DisposableStore),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&&!isIOS;this._ignoreFocusOut=e&&!isIOS,t&&this.update()}get buttons(){return this._buttons}set buttons(e){this._buttons=e,this.buttonsUpdated=!0,this.update()}get toggles(){return this._toggles}set toggles(e){this._toggles=e??[],this.togglesUpdated=!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=>{this.buttons.indexOf(e)!==-1&&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.toggles.length&&(this.togglesUpdated=!0),this.update())}hide(){this.visible&&this.ui.hide()}didHide(e=QuickInputHideReason.Other){this.visible=!1,this.visibleDisposables.clear(),this.onDidHideEmitter.fire({reason:e})}update(){var e,t;if(!this.visible)return;const i=this.getTitle();i&&this.ui.title.textContent!==i?this.ui.title.textContent=i:!i&&this.ui.title.innerHTML!==" "&&(this.ui.title.innerText=" ");const n=this.getDescription();if(this.ui.description1.textContent!==n&&(this.ui.description1.textContent=n),this.ui.description2.textContent!==n&&(this.ui.description2.textContent=n),this._widgetUpdated&&(this._widgetUpdated=!1,this._widget?reset(this.ui.widget,this._widget):reset(this.ui.widget)),this.busy&&!this.busyDelay&&(this.busyDelay=new TimeoutTimer,this.busyDelay.setIfNotSet(()=>{this.visible&&this.ui.progressBar.infinite()},800)),!this.busy&&this.busyDelay&&(this.ui.progressBar.stop(),this.busyDelay.cancel(),this.busyDelay=void 0),this.buttonsUpdated){this.buttonsUpdated=!1,this.ui.leftActionBar.clear();const s=this.buttons.filter(l=>l===backButton);this.ui.leftActionBar.push(s.map((l,d)=>{const c=new Action(`id-${d}`,"",l.iconClass||getIconClass(l.iconPath),!0,()=>__awaiter$1h(this,void 0,void 0,function*(){this.onDidTriggerButtonEmitter.fire(l)}));return c.tooltip=l.tooltip||"",c}),{icon:!0,label:!1}),this.ui.rightActionBar.clear();const a=this.buttons.filter(l=>l!==backButton);this.ui.rightActionBar.push(a.map((l,d)=>{const c=new Action(`id-${d}`,"",l.iconClass||getIconClass(l.iconPath),!0,()=>__awaiter$1h(this,void 0,void 0,function*(){this.onDidTriggerButtonEmitter.fire(l)}));return c.tooltip=l.tooltip||"",c}),{icon:!0,label:!1})}if(this.togglesUpdated){this.togglesUpdated=!1;const s=(t=(e=this.toggles)===null||e===void 0?void 0:e.filter(a=>a instanceof Toggle))!==null&&t!==void 0?t:[];this.ui.inputBox.toggles=s}this.ui.ignoreFocusOut=this.ignoreFocusOut,this.ui.setEnabled(this.enabled),this.ui.setContextKey(this.contextKey);const r=this.validationMessage||this.noValidationMessage;this._lastValidationMessage!==r&&(this._lastValidationMessage=r,reset(this.ui.message),renderQuickInputDescription(r,this.ui.message,{callback:s=>{this.ui.linkOpenerDelegate(s)},disposables:this.visibleDisposables})),this._lastSeverity!==this.severity&&(this._lastSeverity=this.severity,this.showMessageDecoration(this.severity))}getTitle(){return this.title&&this.step?`${this.title} (${this.getSteps()})`:this.title?this.title:this.step?this.getSteps():""}getDescription(){return this.description||""}getSteps(){return this.step&&this.totalSteps?localize("quickInput.steps","{0}/{1}",this.step,this.totalSteps):this.step?String(this.step):""}showMessageDecoration(e){if(this.ui.inputBox.showDecoration(e),e!==Severity$2.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.marginBottom="-2px"}else this.ui.message.style.color="",this.ui.message.style.backgroundColor="",this.ui.message.style.border="",this.ui.message.style.marginBottom=""}dispose(){this.hide(),this.onDisposeEmitter.fire(),super.dispose()}}QuickInput.noPromptMessage=localize("inputModeEntry","Press 'Enter' to confirm your input or 'Escape' to cancel");class QuickPick extends QuickInput{constructor(){super(...arguments),this._value="",this.onDidChangeValueEmitter=this._register(new Emitter$1),this.onWillAcceptEmitter=this._register(new Emitter$1),this.onDidAcceptEmitter=this._register(new Emitter$1),this.onDidCustomEmitter=this._register(new Emitter$1),this._items=[],this.itemsUpdated=!1,this._canSelectMany=!1,this._canAcceptInBackground=!1,this._matchOnDescription=!1,this._matchOnDetail=!1,this._matchOnLabel=!0,this._matchOnLabelMode="fuzzy",this._sortByLabel=!0,this._autoFocusOnList=!0,this._keepScrollPosition=!1,this._itemActivation=ItemActivation.FIRST,this._activeItems=[],this.activeItemsUpdated=!1,this.activeItemsToConfirm=[],this.onDidChangeActiveEmitter=this._register(new Emitter$1),this._selectedItems=[],this.selectedItemsUpdated=!1,this.selectedItemsToConfirm=[],this.onDidChangeSelectionEmitter=this._register(new Emitter$1),this.onDidTriggerItemButtonEmitter=this._register(new Emitter$1),this.onDidTriggerSeparatorButtonEmitter=this._register(new Emitter$1),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,this.onDidTriggerSeparatorButton=this.onDidTriggerSeparatorButtonEmitter.event}get quickNavigate(){return this._quickNavigate}set quickNavigate(e){this._quickNavigate=e,this.update()}get value(){return this._value}set value(e){this.doSetValue(e)}doSetValue(e,t){this._value!==e&&(this._value=e,t||this.update(),this.visible&&this.ui.list.filter(this.filterValue(this._value))&&this.trySelectFirst(),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}get scrollTop(){return this.ui.list.scrollTop}set scrollTop(e){this.ui.list.scrollTop=e}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 matchOnLabelMode(){return this._matchOnLabelMode}set matchOnLabelMode(e){this._matchOnLabelMode=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 keepScrollPosition(){return this._keepScrollPosition}set keepScrollPosition(e){this._keepScrollPosition=e}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?NO_KEY_MODS: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(QuickInputListFocus.First))}show(){this.visible||(this.visibleDisposables.add(this.ui.inputBox.onDidChange(e=>{this.doSetValue(e,!0)})),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(QuickInputListFocus.Next),this.canSelectMany&&this.ui.list.domFocus(),EventHelper.stop(e,!0);break;case 16:this.ui.list.getFocusedElements().length?this.ui.list.focus(QuickInputListFocus.Previous):this.ui.list.focus(QuickInputListFocus.Last),this.canSelectMany&&this.ui.list.domFocus(),EventHelper.stop(e,!0);break;case 12:this.ui.list.focus(QuickInputListFocus.NextPage),this.canSelectMany&&this.ui.list.domFocus(),EventHelper.stop(e,!0);break;case 11:this.ui.list.focus(QuickInputListFocus.PreviousPage),this.canSelectMany&&this.ui.list.domFocus(),EventHelper.stop(e,!0);break;case 17:if(!this._canAcceptInBackground||!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(QuickInputListFocus.First),EventHelper.stop(e,!0));break;case 13:(e.ctrlKey||e.metaKey)&&!e.shiftKey&&!e.altKey&&(this.ui.list.focus(QuickInputListFocus.Last),EventHelper.stop(e,!0));break}})),this.visibleDisposables.add(this.ui.onDidAccept(()=>{this.canSelectMany?this.ui.list.getCheckedElements().length||(this._selectedItems=[],this.onDidChangeSelectionEmitter.fire(this.selectedItems)):this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems)),this.handleAccept(!1)})),this.visibleDisposables.add(this.ui.onDidCustom(()=>{this.onDidCustomEmitter.fire()})),this.visibleDisposables.add(this.ui.list.onDidChangeFocus(e=>{this.activeItemsUpdated||this.activeItemsToConfirm!==this._activeItems&&equals$2(e,this._activeItems,(t,i)=>t===i)||(this._activeItems=e,this.onDidChangeActiveEmitter.fire(e))})),this.visibleDisposables.add(this.ui.list.onDidChangeSelection(({items:e,event:t})=>{if(this.canSelectMany){e.length&&this.ui.list.setSelectedElements([]);return}this.selectedItemsToConfirm!==this._selectedItems&&equals$2(e,this._selectedItems,(i,n)=>i===n)||(this._selectedItems=e,this.onDidChangeSelectionEmitter.fire(e),e.length&&this.handleAccept(t instanceof MouseEvent&&t.button===1))})),this.visibleDisposables.add(this.ui.list.onChangedCheckedElements(e=>{this.canSelectMany&&(this.selectedItemsToConfirm!==this._selectedItems&&equals$2(e,this._selectedItems,(t,i)=>t===i)||(this._selectedItems=e,this.onDidChangeSelectionEmitter.fire(e)))})),this.visibleDisposables.add(this.ui.list.onButtonTriggered(e=>this.onDidTriggerItemButtonEmitter.fire(e))),this.visibleDisposables.add(this.ui.list.onSeparatorButtonTriggered(e=>this.onDidTriggerSeparatorButtonEmitter.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 addDisposableListener(this.ui.container,EventType$1.KEY_UP,e=>{if(this.canSelectMany||!this._quickNavigate)return;const t=new StandardKeyboardEvent(e),i=t.keyCode;this._quickNavigate.keybindings.some(s=>{const a=s.getChords();return a.length>1?!1:a[0].shiftKey&&i===4?!(t.ctrlKey||t.altKey||t.metaKey):!!(a[0].altKey&&i===6||a[0].ctrlKey&&i===5||a[0].metaKey&&i===57)})&&(this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems),this.handleAccept(!1)),this._quickNavigate=void 0)})}update(){if(!this.visible)return;const e=this.keepScrollPosition?this.scrollTop:0,t=!!this.description,i={title:!!this.title||!!this.step||!!this.buttons.length,description:t,checkAll:this.canSelectMany&&!this._hideCheckAll,checkBox:this.canSelectMany,inputBox:!this._hideInput,progressBar:!this._hideInput||t,visibleCount:!0,count:this.canSelectMany&&!this._hideCountBadge,ok:this.ok==="default"?this.canSelectMany:this.ok,list:!0,message:!!this.validationMessage,customButton:this.customButton};this.ui.setVisibilities(i),super.update(),this.ui.inputBox.value!==this.value&&(this.ui.inputBox.value=this.value),this.valueSelectionUpdated&&(this.valueSelectionUpdated=!1,this.ui.inputBox.select(this._valueSelection&&{start:this._valueSelection[0],end:this._valueSelection[1]})),this.ui.inputBox.placeholder!==(this.placeholder||"")&&(this.ui.inputBox.placeholder=this.placeholder||"");let n=this.ariaLabel;if(!n&&i.inputBox&&(n=this.placeholder||QuickPick.DEFAULT_ARIA_LABEL,this.title&&(n+=` - ${this.title}`)),this.ui.list.ariaLabel!==n&&(this.ui.list.ariaLabel=n??null),this.ui.list.matchOnDescription=this.matchOnDescription,this.ui.list.matchOnDetail=this.matchOnDetail,this.ui.list.matchOnLabel=this.matchOnLabel,this.ui.list.matchOnLabelMode=this.matchOnLabelMode,this.ui.list.sortByLabel=this.sortByLabel,this.itemsUpdated)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 ItemActivation.NONE:this._itemActivation=ItemActivation.FIRST;break;case ItemActivation.SECOND:this.ui.list.focus(QuickInputListFocus.Second),this._itemActivation=ItemActivation.FIRST;break;case ItemActivation.LAST:this.ui.list.focus(QuickInputListFocus.Last),this._itemActivation=ItemActivation.FIRST;break;default:this.trySelectFirst();break}this.ui.container.classList.contains("show-checkboxes")!==!!this.canSelectMany&&(this.canSelectMany?this.ui.list.clearFocus():this.trySelectFirst()),this.activeItemsUpdated&&(this.activeItemsUpdated=!1,this.activeItemsToConfirm=this._activeItems,this.ui.list.setFocusedElements(this.activeItems),this.activeItemsToConfirm===this._activeItems&&(this.activeItemsToConfirm=null)),this.selectedItemsUpdated&&(this.selectedItemsUpdated=!1,this.selectedItemsToConfirm=this._selectedItems,this.canSelectMany?this.ui.list.setCheckedElements(this.selectedItems):this.ui.list.setSelectedElements(this.selectedItems),this.selectedItemsToConfirm===this._selectedItems&&(this.selectedItemsToConfirm=null)),this.ui.customButton.label=this.customLabel||"",this.ui.customButton.element.title=this.customHover||"",i.inputBox||(this.ui.list.domFocus(),this.canSelectMany&&this.ui.list.focus(QuickInputListFocus.First)),this.keepScrollPosition&&(this.scrollTop=e)}}QuickPick.DEFAULT_ARIA_LABEL=localize("quickInputBox.ariaLabel","Type to narrow down results.");class InputBox extends QuickInput{constructor(){super(...arguments),this._value="",this.valueSelectionUpdated=!0,this._password=!1,this.onDidValueChangeEmitter=this._register(new Emitter$1),this.onDidAcceptEmitter=this._register(new Emitter$1),this.onDidChangeValue=this.onDidValueChangeEmitter.event,this.onDidAccept=this.onDidAcceptEmitter.event}get value(){return this._value}set value(e){this._value=e||"",this.update()}get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.update()}get password(){return this._password}set password(e){this._password=e,this.update()}show(){this.visible||(this.visibleDisposables.add(this.ui.inputBox.onDidChange(e=>{e!==this.value&&(this._value=e,this.onDidValueChangeEmitter.fire(e))})),this.visibleDisposables.add(this.ui.onDidAccept(()=>this.onDidAcceptEmitter.fire())),this.valueSelectionUpdated=!0),super.show()}update(){if(!this.visible)return;this.ui.container.classList.remove("hidden-input");const e={title:!!this.title||!!this.step||!!this.buttons.length,description:!!this.description||!!this.step,inputBox:!0,message:!0,progressBar:!0};this.ui.setVisibilities(e),super.update(),this.ui.inputBox.value!==this.value&&(this.ui.inputBox.value=this.value),this.valueSelectionUpdated&&(this.valueSelectionUpdated=!1,this.ui.inputBox.select(this._valueSelection&&{start:this._valueSelection[0],end:this._valueSelection[1]})),this.ui.inputBox.placeholder!==(this.placeholder||"")&&(this.ui.inputBox.placeholder=this.placeholder||""),this.ui.inputBox.password!==this.password&&(this.ui.inputBox.password=this.password)}}const $$7=$$d;class QuickInputController extends Disposable{constructor(e,t){super(),this.options=e,this.themeService=t,this.enabled=!0,this.onDidAcceptEmitter=this._register(new Emitter$1),this.onDidCustomEmitter=this._register(new Emitter$1),this.onDidTriggerButtonEmitter=this._register(new Emitter$1),this.keyMods={ctrlCmd:!1,alt:!1},this.controller=null,this.onShowEmitter=this._register(new Emitter$1),this.onShow=this.onShowEmitter.event,this.onHideEmitter=this._register(new Emitter$1),this.onHide=this.onHideEmitter.event,this.idPrefix=e.idPrefix,this.parentElement=e.container,this.styles=e.styles,this.registerKeyModsListeners()}registerKeyModsListeners(){const e=t=>{this.keyMods.ctrlCmd=t.ctrlKey||t.metaKey,this.keyMods.alt=t.altKey};this._register(addDisposableListener(window,EventType$1.KEY_DOWN,e,!0)),this._register(addDisposableListener(window,EventType$1.KEY_UP,e,!0)),this._register(addDisposableListener(window,EventType$1.MOUSE_DOWN,e,!0))}getUI(){if(this.ui)return this.ui;const e=append$1(this.parentElement,$$7(".quick-input-widget.show-file-icons"));e.tabIndex=-1,e.style.display="none";const t=createStyleSheet(e),i=append$1(e,$$7(".quick-input-titlebar")),n=this.options.hoverDelegate?{hoverDelegate:this.options.hoverDelegate}:void 0,r=this._register(new ActionBar(i,n));r.domNode.classList.add("quick-input-left-action-bar");const s=append$1(i,$$7(".quick-input-title")),a=this._register(new ActionBar(i,n));a.domNode.classList.add("quick-input-right-action-bar");const l=append$1(e,$$7(".quick-input-header")),d=append$1(l,$$7("input.quick-input-check-all"));d.type="checkbox",d.setAttribute("aria-label",localize("quickInput.checkAll","Toggle all checkboxes")),this._register(addStandardDisposableListener(d,EventType$1.CHANGE,M=>{const W=d.checked;F.setAllVisibleChecked(W)})),this._register(addDisposableListener(d,EventType$1.CLICK,M=>{(M.x||M.y)&&f.setFocus()}));const c=append$1(l,$$7(".quick-input-description")),u=append$1(l,$$7(".quick-input-and-message")),g=append$1(u,$$7(".quick-input-filter")),f=this._register(new QuickInputBox(g,this.styles.inputBox,this.styles.toggle));f.setAttribute("aria-describedby",`${this.idPrefix}message`);const p=append$1(g,$$7(".quick-input-visible-count"));p.setAttribute("aria-live","polite"),p.setAttribute("aria-atomic","true");const m=new CountBadge(p,{countFormat:localize({},"{0} Results")},this.styles.countBadge),b=append$1(g,$$7(".quick-input-count"));b.setAttribute("aria-live","polite");const _=new CountBadge(b,{countFormat:localize({},"{0} Selected")},this.styles.countBadge),C=append$1(l,$$7(".quick-input-action")),S=this._register(new Button(C,this.styles.button));S.label=localize("ok","OK"),this._register(S.onDidClick(M=>{this.onDidAcceptEmitter.fire()}));const y=append$1(l,$$7(".quick-input-action")),E=this._register(new Button(y,this.styles.button));E.label=localize("custom","Custom"),this._register(E.onDidClick(M=>{this.onDidCustomEmitter.fire()}));const x=append$1(u,$$7(`#${this.idPrefix}message.quick-input-message`)),L=this._register(new ProgressBar(e,this.styles.progressBar));L.getContainer().classList.add("quick-input-progress");const I=append$1(e,$$7(".quick-input-html-widget"));I.tabIndex=-1;const D=append$1(e,$$7(".quick-input-description")),N=this.idPrefix+"list",F=this._register(new QuickInputList(e,N,this.options,this.themeService));f.setAttribute("aria-controls",N),this._register(F.onDidChangeFocus(()=>{var M;f.setAttribute("aria-activedescendant",(M=F.getActiveDescendant())!==null&&M!==void 0?M:"")})),this._register(F.onChangedAllVisibleChecked(M=>{d.checked=M})),this._register(F.onChangedVisibleCount(M=>{m.setCount(M)})),this._register(F.onChangedCheckedCount(M=>{_.setCount(M)})),this._register(F.onLeave(()=>{setTimeout(()=>{f.setFocus(),this.controller instanceof QuickPick&&this.controller.canSelectMany&&F.clearFocus()},0)}));const R=trackFocus(e);return this._register(R),this._register(addDisposableListener(e,EventType$1.FOCUS,M=>{isAncestor$1(M.relatedTarget,e)||(this.previousFocusElement=M.relatedTarget instanceof HTMLElement?M.relatedTarget:void 0)},!0)),this._register(R.onDidBlur(()=>{!this.getUI().ignoreFocusOut&&!this.options.ignoreFocusOut()&&this.hide(QuickInputHideReason.Blur),this.previousFocusElement=void 0})),this._register(addDisposableListener(e,EventType$1.FOCUS,M=>{f.setFocus()})),this._register(addStandardDisposableListener(e,EventType$1.KEY_DOWN,M=>{if(!isAncestor$1(M.target,I))switch(M.keyCode){case 3:EventHelper.stop(M,!0),this.enabled&&this.onDidAcceptEmitter.fire();break;case 9:EventHelper.stop(M,!0),this.hide(QuickInputHideReason.Gesture);break;case 2:if(!M.altKey&&!M.ctrlKey&&!M.metaKey){const W=[".quick-input-list .monaco-action-bar .always-visible",".quick-input-list-entry:hover .monaco-action-bar",".monaco-list-row.focused .monaco-action-bar"];if(e.classList.contains("show-checkboxes")?W.push("input"):W.push("input[type=text]"),this.getUI().list.isDisplayed()&&W.push(".monaco-list"),this.getUI().message&&W.push(".quick-input-message a"),this.getUI().widget){if(isAncestor$1(M.target,this.getUI().widget))break;W.push(".quick-input-html-widget")}const V=e.querySelectorAll(W.join(", "));M.shiftKey&&M.target===V[0]?(EventHelper.stop(M,!0),F.clearFocus()):!M.shiftKey&&isAncestor$1(M.target,V[V.length-1])&&(EventHelper.stop(M,!0),V[0].focus())}break;case 10:M.ctrlKey&&(EventHelper.stop(M,!0),this.getUI().list.toggleHover());break}})),this.ui={container:e,styleSheet:t,leftActionBar:r,titleBar:i,title:s,description1:D,description2:c,widget:I,rightActionBar:a,checkAll:d,inputContainer:u,filterContainer:g,inputBox:f,visibleCountContainer:p,visibleCount:m,countContainer:b,count:_,okContainer:C,ok:S,message:x,customButtonContainer:y,customButton:E,list:F,progressBar:L,onDidAccept:this.onDidAcceptEmitter.event,onDidCustom:this.onDidCustomEmitter.event,onDidTriggerButton:this.onDidTriggerButtonEmitter.event,ignoreFocusOut:!1,keyMods:this.keyMods,show:M=>this.show(M),hide:()=>this.hide(),setVisibilities:M=>this.setVisibilities(M),setEnabled:M=>this.setEnabled(M),setContextKey:M=>this.options.setContextKey(M),linkOpenerDelegate:M=>this.options.linkOpenerDelegate(M)},this.updateStyles(),this.ui}pick(e,t={},i=CancellationToken.None){return new Promise((n,r)=>{let s=c=>{var u;s=n,(u=t.onKeyMods)===null||u===void 0||u.call(t,a.keyMods),n(c)};if(i.isCancellationRequested){s(void 0);return}const a=this.createQuickPick();let l;const d=[a,a.onDidAccept(()=>{if(a.canSelectMany)s(a.selectedItems.slice()),a.hide();else{const c=a.activeItems[0];c&&(s(c),a.hide())}}),a.onDidChangeActive(c=>{const u=c[0];u&&t.onDidFocus&&t.onDidFocus(u)}),a.onDidChangeSelection(c=>{if(!a.canSelectMany){const u=c[0];u&&(s(u),a.hide())}}),a.onDidTriggerItemButton(c=>t.onDidTriggerItemButton&&t.onDidTriggerItemButton(Object.assign(Object.assign({},c),{removeItem:()=>{const u=a.items.indexOf(c.item);if(u!==-1){const g=a.items.slice(),f=g.splice(u,1),p=a.activeItems.filter(b=>b!==f[0]),m=a.keepScrollPosition;a.keepScrollPosition=!0,a.items=g,p&&(a.activeItems=p),a.keepScrollPosition=m}}}))),a.onDidTriggerSeparatorButton(c=>{var u;return(u=t.onDidTriggerSeparatorButton)===null||u===void 0?void 0:u.call(t,c)}),a.onDidChangeValue(c=>{l&&!c&&(a.activeItems.length!==1||a.activeItems[0]!==l)&&(a.activeItems=[l])}),i.onCancellationRequested(()=>{a.hide()}),a.onDidHide(()=>{dispose(d),s(void 0)})];a.title=t.title,a.canSelectMany=!!t.canPickMany,a.placeholder=t.placeHolder,a.ignoreFocusOut=!!t.ignoreFocusLost,a.matchOnDescription=!!t.matchOnDescription,a.matchOnDetail=!!t.matchOnDetail,a.matchOnLabel=t.matchOnLabel===void 0||t.matchOnLabel,a.autoFocusOnList=t.autoFocusOnList===void 0||t.autoFocusOnList,a.quickNavigate=t.quickNavigate,a.hideInput=!!t.hideInput,a.contextKey=t.contextKey,a.busy=!0,Promise.all([e,t.activeItem]).then(([c,u])=>{l=u,a.busy=!1,a.items=c,a.canSelectMany&&(a.selectedItems=c.filter(g=>g.type!=="separator"&&g.picked)),l&&(a.activeItems=[l])}),a.show(),Promise.resolve(e).then(void 0,c=>{r(c),a.hide()})})}createQuickPick(){const e=this.getUI();return new QuickPick(e)}createInputBox(){const e=this.getUI();return new InputBox(e)}show(e){const t=this.getUI();this.onShowEmitter.fire();const i=this.controller;this.controller=e,i==null||i.didHide(),this.setEnabled(!0),t.leftActionBar.clear(),t.title.textContent="",t.description1.textContent="",t.description2.textContent="",reset(t.widget),t.rightActionBar.clear(),t.checkAll.checked=!1,t.inputBox.placeholder="",t.inputBox.password=!1,t.inputBox.showDecoration(Severity$2.Ignore),t.visibleCount.setCount(0),t.count.setCount(0),reset(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,t.inputBox.toggles=void 0;const n=this.options.backKeybindingLabel();backButton.tooltip=n?localize("quickInput.backWithKeybinding","Back ({0})",n):localize("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.inputContainer.style.display=e.inputBox?"":"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.toggle("show-checkboxes",!!e.checkBox),t.container.classList.toggle("hidden-input",!e.inputBox&&!e.description),this.updateLayout()}setEnabled(e){if(e!==this.enabled){this.enabled=e;for(const t of this.getUI().leftActionBar.viewItems)t.action.enabled=e;for(const t of this.getUI().rightActionBar.viewItems)t.action.enabled=e;this.getUI().checkAll.disabled=!e,this.getUI().inputBox.enabled=e,this.getUI().ok.enabled=e,this.getUI().list.enabled=e}}hide(e){var t,i,n;const r=this.controller;if(!r)return;const s=!isAncestor$1(document.activeElement,(i=(t=this.ui)===null||t===void 0?void 0:t.container)!==null&&i!==void 0?i:null);if(this.controller=null,this.onHideEmitter.fire(),this.getUI().container.style.display="none",!s){let a=this.previousFocusElement;for(;a&&!a.offsetParent;)a=(n=a.parentElement)!==null&&n!==void 0?n:void 0;a!=null&&a.offsetParent?(a.focus(),this.previousFocusElement=void 0):this.options.returnFocus()}r.didHide(e)}layout(e,t){this.dimension=e,this.titleBarOffset=t,this.updateLayout()}updateLayout(){if(this.ui&&this.isDisplayed()){this.ui.container.style.top=`${this.titleBarOffset}px`;const e=this.ui.container.style,t=Math.min(this.dimension.width*.62,QuickInputController.MAX_WIDTH);e.width=t+"px",e.marginLeft="-"+t/2+"px",this.ui.inputBox.layout(),this.ui.list.layout(this.dimension&&this.dimension.height*.4)}}applyStyles(e){this.styles=e,this.updateStyles()}updateStyles(){if(this.ui){const{quickInputTitleBackground:e,quickInputBackground:t,quickInputForeground:i,widgetBorder:n,widgetShadow:r}=this.styles.widget;this.ui.titleBar.style.backgroundColor=e??"",this.ui.container.style.backgroundColor=t??"",this.ui.container.style.color=i??"",this.ui.container.style.border=n?`1px solid ${n}`:"",this.ui.container.style.boxShadow=r?`0 0 8px 2px ${r}`:"",this.ui.list.style(this.styles.list);const s=[];this.styles.pickerGroup.pickerGroupBorder&&s.push(`.quick-input-list .quick-input-list-entry { border-top-color: ${this.styles.pickerGroup.pickerGroupBorder}; }`),this.styles.pickerGroup.pickerGroupForeground&&s.push(`.quick-input-list .quick-input-list-separator { color: ${this.styles.pickerGroup.pickerGroupForeground}; }`),this.styles.pickerGroup.pickerGroupForeground&&s.push(".quick-input-list .quick-input-list-separator-as-item { color: var(--vscode-descriptionForeground); }"),(this.styles.keybindingLabel.keybindingLabelBackground||this.styles.keybindingLabel.keybindingLabelBorder||this.styles.keybindingLabel.keybindingLabelBottomBorder||this.styles.keybindingLabel.keybindingLabelShadow||this.styles.keybindingLabel.keybindingLabelForeground)&&(s.push(".quick-input-list .monaco-keybinding > .monaco-keybinding-key {"),this.styles.keybindingLabel.keybindingLabelBackground&&s.push(`background-color: ${this.styles.keybindingLabel.keybindingLabelBackground};`),this.styles.keybindingLabel.keybindingLabelBorder&&s.push(`border-color: ${this.styles.keybindingLabel.keybindingLabelBorder};`),this.styles.keybindingLabel.keybindingLabelBottomBorder&&s.push(`border-bottom-color: ${this.styles.keybindingLabel.keybindingLabelBottomBorder};`),this.styles.keybindingLabel.keybindingLabelShadow&&s.push(`box-shadow: inset 0 -1px 0 ${this.styles.keybindingLabel.keybindingLabelShadow};`),this.styles.keybindingLabel.keybindingLabelForeground&&s.push(`color: ${this.styles.keybindingLabel.keybindingLabelForeground};`),s.push("}"));const a=s.join(`
- `);a!==this.ui.styleSheet.textContent&&(this.ui.styleSheet.textContent=a)}}isDisplayed(){return this.ui&&this.ui.container.style.display!=="none"}}QuickInputController.MAX_WIDTH=600;var __decorate$1G=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1G=function(o,e){return function(t,i){e(t,i,o)}};let QuickInputService=class extends Themable{get controller(){return this._controller||(this._controller=this._register(this.createController())),this._controller}get hasController(){return!!this._controller}get quickAccess(){return this._quickAccess||(this._quickAccess=this._register(this.instantiationService.createInstance(QuickAccessController))),this._quickAccess}constructor(e,t,i,n){super(i),this.instantiationService=e,this.contextKeyService=t,this.layoutService=n,this._onShow=this._register(new Emitter$1),this._onHide=this._register(new Emitter$1),this.contexts=new Map}createController(e=this.layoutService,t){const i={idPrefix:"quickInput_",container:e.container,ignoreFocusOut:()=>!1,backKeybindingLabel:()=>{},setContextKey:r=>this.setContextKey(r),linkOpenerDelegate:r=>{this.instantiationService.invokeFunction(s=>{s.get(IOpenerService).open(r,{allowCommands:!0,fromUserGesture:!0})})},returnFocus:()=>e.focus(),createList:(r,s,a,l,d)=>this.instantiationService.createInstance(WorkbenchList,r,s,a,l,d),styles:this.computeStyles()},n=this._register(new QuickInputController(Object.assign(Object.assign({},i),t),this.themeService));return n.layout(e.dimension,e.offset.quickPickTop),this._register(e.onDidLayout(r=>n.layout(r,e.offset.quickPickTop))),this._register(n.onShow(()=>{this.resetContextKeys(),this._onShow.fire()})),this._register(n.onHide(()=>{this.resetContextKeys(),this._onHide.fire()})),n}setContextKey(e){let t;e&&(t=this.contexts.get(e),t||(t=new RawContextKey(e,!1).bindTo(this.contextKeyService),this.contexts.set(e,t))),!(t&&t.get())&&(this.resetContextKeys(),t==null||t.set(!0))}resetContextKeys(){this.contexts.forEach(e=>{e.get()&&e.reset()})}pick(e,t={},i=CancellationToken.None){return this.controller.pick(e,t,i)}createQuickPick(){return this.controller.createQuickPick()}createInputBox(){return this.controller.createInputBox()}updateStyles(){this.hasController&&this.controller.applyStyles(this.computeStyles())}computeStyles(){return{widget:{quickInputBackground:asCssVariable(quickInputBackground),quickInputForeground:asCssVariable(quickInputForeground),quickInputTitleBackground:asCssVariable(quickInputTitleBackground),widgetBorder:asCssVariable(widgetBorder),widgetShadow:asCssVariable(widgetShadow)},inputBox:defaultInputBoxStyles,toggle:defaultToggleStyles,countBadge:defaultCountBadgeStyles,button:defaultButtonStyles,progressBar:defaultProgressBarStyles,keybindingLabel:defaultKeybindingLabelStyles,list:getListStyles({listBackground:quickInputBackground,listFocusBackground:quickInputListFocusBackground,listFocusForeground:quickInputListFocusForeground,listInactiveFocusForeground:quickInputListFocusForeground,listInactiveSelectionIconForeground:quickInputListFocusIconForeground,listInactiveFocusBackground:quickInputListFocusBackground,listFocusOutline:activeContrastBorder,listInactiveFocusOutline:activeContrastBorder}),pickerGroup:{pickerGroupBorder:asCssVariable(pickerGroupBorder),pickerGroupForeground:asCssVariable(pickerGroupForeground)}}}};QuickInputService=__decorate$1G([__param$1G(0,IInstantiationService),__param$1G(1,IContextKeyService),__param$1G(2,IThemeService),__param$1G(3,ILayoutService)],QuickInputService);var __decorate$1F=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1F=function(o,e){return function(t,i){e(t,i,o)}};let EditorScopedQuickInputService=class extends QuickInputService{constructor(e,t,i,n,r){super(t,i,n,new EditorScopedLayoutService(e.getContainerDomNode(),r)),this.host=void 0;const s=QuickInputEditorContribution.get(e);if(s){const a=s.widget;this.host={_serviceBrand:void 0,get hasContainer(){return!0},get container(){return a.getDomNode()},get dimension(){return e.getLayoutInfo()},get onDidLayout(){return e.onDidLayoutChange},focus:()=>e.focus(),offset:{top:0,quickPickTop:0}}}else this.host=void 0}createController(){return super.createController(this.host)}};EditorScopedQuickInputService=__decorate$1F([__param$1F(1,IInstantiationService),__param$1F(2,IContextKeyService),__param$1F(3,IThemeService),__param$1F(4,ICodeEditorService)],EditorScopedQuickInputService);let StandaloneQuickInputService=class{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(EditorScopedQuickInputService,e);this.mapEditorToService.set(e,t),createSingleCallFunction(e.onDidDispose)(()=>{i.dispose(),this.mapEditorToService.delete(e)})}return t}get quickAccess(){return this.activeService.quickAccess}constructor(e,t){this.instantiationService=e,this.codeEditorService=t,this.mapEditorToService=new Map}pick(e,t={},i=CancellationToken.None){return this.activeService.pick(e,t,i)}createQuickPick(){return this.activeService.createQuickPick()}createInputBox(){return this.activeService.createInputBox()}};StandaloneQuickInputService=__decorate$1F([__param$1F(0,IInstantiationService),__param$1F(1,ICodeEditorService)],StandaloneQuickInputService);class QuickInputEditorContribution{static get(e){return e.getContribution(QuickInputEditorContribution.ID)}constructor(e){this.editor=e,this.widget=new QuickInputEditorWidget(this.editor)}dispose(){this.widget.dispose()}}QuickInputEditorContribution.ID="editor.controller.quickInput";class QuickInputEditorWidget{constructor(e){this.codeEditor=e,this.domNode=document.createElement("div"),this.codeEditor.addOverlayWidget(this)}getId(){return QuickInputEditorWidget.ID}getDomNode(){return this.domNode}getPosition(){return{preference:2}}dispose(){this.codeEditor.removeOverlayWidget(this)}}QuickInputEditorWidget.ID="editor.contrib.quickInputWidget";registerEditorContribution(QuickInputEditorContribution.ID,QuickInputEditorContribution,4);class ParsedTokenThemeRule{constructor(e,t,i,n,r){this._parsedThemeRuleBrand=void 0,this.token=e,this.index=t,this.fontStyle=i,this.foreground=n,this.background=r}}function parseTokenTheme(o){if(!o||!Array.isArray(o))return[];const e=[];let t=0;for(let i=0,n=o.length;i<n;i++){const r=o[i];let s=-1;if(typeof r.fontStyle=="string"){s=0;const d=r.fontStyle.split(" ");for(let c=0,u=d.length;c<u;c++)switch(d[c]){case"italic":s=s|1;break;case"bold":s=s|2;break;case"underline":s=s|4;break;case"strikethrough":s=s|8;break}}let a=null;typeof r.foreground=="string"&&(a=r.foreground);let l=null;typeof r.background=="string"&&(l=r.background),e[t++]=new ParsedTokenThemeRule(r.token||"",i,s,a,l)}return e}function resolveParsedTokenThemeRules(o,e){o.sort((c,u)=>{const g=strcmp(c.token,u.token);return g!==0?g:c.index-u.index});let t=0,i="000000",n="ffffff";for(;o.length>=1&&o[0].token==="";){const c=o.shift();c.fontStyle!==-1&&(t=c.fontStyle),c.foreground!==null&&(i=c.foreground),c.background!==null&&(n=c.background)}const r=new ColorMap;for(const c of e)r.getId(c);const s=r.getId(i),a=r.getId(n),l=new ThemeTrieElementRule(t,s,a),d=new ThemeTrieElement(l);for(let c=0,u=o.length;c<u;c++){const g=o[c];d.insert(g.token,g.fontStyle,r.getId(g.foreground),r.getId(g.background))}return new TokenTheme(r,d)}const colorRegExp=/^#?([0-9A-Fa-f]{6})([0-9A-Fa-f]{2})?$/;class ColorMap{constructor(){this._lastColorId=0,this._id2color=[],this._color2id=new Map}getId(e){if(e===null)return 0;const t=e.match(colorRegExp);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]=Color.fromHex("#"+e),i)}getColorMap(){return this._id2color.slice(0)}}class TokenTheme{static createFromRawTokenTheme(e,t){return this.createFromParsedTokenTheme(parseTokenTheme(e),t)}static createFromParsedTokenTheme(e,t){return resolveParsedTokenThemeRules(e,t)}constructor(e,t){this._colorMap=e,this._root=t,this._cache=new Map}getColorMap(){return this._colorMap.getColorMap()}_match(e){return this._root.match(e)}match(e,t){let i=this._cache.get(t);if(typeof i>"u"){const n=this._match(t),r=toStandardTokenType(t);i=(n.metadata|r<<8)>>>0,this._cache.set(t,i)}return(i|e<<0)>>>0}}const STANDARD_TOKEN_TYPE_REGEXP=/\b(comment|string|regex|regexp)\b/;function toStandardTokenType(o){const e=o.match(STANDARD_TOKEN_TYPE_REGEXP);if(!e)return 0;switch(e[1]){case"comment":return 1;case"string":return 2;case"regex":return 3;case"regexp":return 3}throw new Error("Unexpected match for standard token type!")}function strcmp(o,e){return o<e?-1:o>e?1:0}class ThemeTrieElementRule{constructor(e,t,i){this._themeTrieElementRuleBrand=void 0,this._fontStyle=e,this._foreground=t,this._background=i,this.metadata=(this._fontStyle<<11|this._foreground<<15|this._background<<24)>>>0}clone(){return new ThemeTrieElementRule(this._fontStyle,this._foreground,this._background)}acceptOverwrite(e,t,i){e!==-1&&(this._fontStyle=e),t!==0&&(this._foreground=t),i!==0&&(this._background=i),this.metadata=(this._fontStyle<<11|this._foreground<<15|this._background<<24)>>>0}}class ThemeTrieElement{constructor(e){this._themeTrieElementBrand=void 0,this._mainRule=e,this._children=new Map}match(e){if(e==="")return this._mainRule;const t=e.indexOf(".");let i,n;t===-1?(i=e,n=""):(i=e.substring(0,t),n=e.substring(t+1));const r=this._children.get(i);return typeof r<"u"?r.match(n):this._mainRule}insert(e,t,i,n){if(e===""){this._mainRule.acceptOverwrite(t,i,n);return}const r=e.indexOf(".");let s,a;r===-1?(s=e,a=""):(s=e.substring(0,r),a=e.substring(r+1));let l=this._children.get(s);typeof l>"u"&&(l=new ThemeTrieElement(this._mainRule.clone()),this._children.set(s,l)),l.insert(a,t,i,n)}}function generateTokensCSSForColorMap(o){const e=[];for(let t=1,i=o.length;t<i;t++){const n=o[t];e[t]=`.mtk${t} { color: ${n}; }`}return e.push(".mtki { font-style: italic; }"),e.push(".mtkb { font-weight: bold; }"),e.push(".mtku { text-decoration: underline; text-underline-position: under; }"),e.push(".mtks { text-decoration: line-through; }"),e.push(".mtks.mtku { text-decoration: underline line-through; text-underline-position: under; }"),e.join(`
- `)}const vs={base:"vs",inherit:!1,rules:[{token:"",foreground:"000000",background:"fffffe"},{token:"invalid",foreground:"cd3131"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"001188"},{token:"variable.predefined",foreground:"4864AA"},{token:"constant",foreground:"dd0000"},{token:"comment",foreground:"008000"},{token:"number",foreground:"098658"},{token:"number.hex",foreground:"3030c0"},{token:"regexp",foreground:"800000"},{token:"annotation",foreground:"808080"},{token:"type",foreground:"008080"},{token:"delimiter",foreground:"000000"},{token:"delimiter.html",foreground:"383838"},{token:"delimiter.xml",foreground:"0000FF"},{token:"tag",foreground:"800000"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta.scss",foreground:"800000"},{token:"metatag",foreground:"e00000"},{token:"metatag.content.html",foreground:"FF0000"},{token:"metatag.html",foreground:"808080"},{token:"metatag.xml",foreground:"808080"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"863B00"},{token:"string.key.json",foreground:"A31515"},{token:"string.value.json",foreground:"0451A5"},{token:"attribute.name",foreground:"FF0000"},{token:"attribute.value",foreground:"0451A5"},{token:"attribute.value.number",foreground:"098658"},{token:"attribute.value.unit",foreground:"098658"},{token:"attribute.value.html",foreground:"0000FF"},{token:"attribute.value.xml",foreground:"0000FF"},{token:"string",foreground:"A31515"},{token:"string.html",foreground:"0000FF"},{token:"string.sql",foreground:"FF0000"},{token:"string.yaml",foreground:"0451A5"},{token:"keyword",foreground:"0000FF"},{token:"keyword.json",foreground:"0451A5"},{token:"keyword.flow",foreground:"AF00DB"},{token:"keyword.flow.scss",foreground:"0000FF"},{token:"operator.scss",foreground:"666666"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"666666"},{token:"predefined.sql",foreground:"C700C7"}],colors:{[editorBackground]:"#FFFFFE",[editorForeground]:"#000000",[editorInactiveSelection]:"#E5EBF1",[editorIndentGuide1]:"#D3D3D3",[editorActiveIndentGuide1]:"#939393",[editorSelectionHighlight]:"#ADD6FF4D"}},vs_dark={base:"vs-dark",inherit:!1,rules:[{token:"",foreground:"D4D4D4",background:"1E1E1E"},{token:"invalid",foreground:"f44747"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"74B0DF"},{token:"variable.predefined",foreground:"4864AA"},{token:"variable.parameter",foreground:"9CDCFE"},{token:"constant",foreground:"569CD6"},{token:"comment",foreground:"608B4E"},{token:"number",foreground:"B5CEA8"},{token:"number.hex",foreground:"5BB498"},{token:"regexp",foreground:"B46695"},{token:"annotation",foreground:"cc6666"},{token:"type",foreground:"3DC9B0"},{token:"delimiter",foreground:"DCDCDC"},{token:"delimiter.html",foreground:"808080"},{token:"delimiter.xml",foreground:"808080"},{token:"tag",foreground:"569CD6"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta.scss",foreground:"A79873"},{token:"meta.tag",foreground:"CE9178"},{token:"metatag",foreground:"DD6A6F"},{token:"metatag.content.html",foreground:"9CDCFE"},{token:"metatag.html",foreground:"569CD6"},{token:"metatag.xml",foreground:"569CD6"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"9CDCFE"},{token:"string.key.json",foreground:"9CDCFE"},{token:"string.value.json",foreground:"CE9178"},{token:"attribute.name",foreground:"9CDCFE"},{token:"attribute.value",foreground:"CE9178"},{token:"attribute.value.number.css",foreground:"B5CEA8"},{token:"attribute.value.unit.css",foreground:"B5CEA8"},{token:"attribute.value.hex.css",foreground:"D4D4D4"},{token:"string",foreground:"CE9178"},{token:"string.sql",foreground:"FF0000"},{token:"keyword",foreground:"569CD6"},{token:"keyword.flow",foreground:"C586C0"},{token:"keyword.json",foreground:"CE9178"},{token:"keyword.flow.scss",foreground:"569CD6"},{token:"operator.scss",foreground:"909090"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"909090"},{token:"predefined.sql",foreground:"FF00FF"}],colors:{[editorBackground]:"#1E1E1E",[editorForeground]:"#D4D4D4",[editorInactiveSelection]:"#3A3D41",[editorIndentGuide1]:"#404040",[editorActiveIndentGuide1]:"#707070",[editorSelectionHighlight]:"#ADD6FF26"}},hc_black={base:"hc-black",inherit:!1,rules:[{token:"",foreground:"FFFFFF",background:"000000"},{token:"invalid",foreground:"f44747"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"1AEBFF"},{token:"variable.parameter",foreground:"9CDCFE"},{token:"constant",foreground:"569CD6"},{token:"comment",foreground:"608B4E"},{token:"number",foreground:"FFFFFF"},{token:"regexp",foreground:"C0C0C0"},{token:"annotation",foreground:"569CD6"},{token:"type",foreground:"3DC9B0"},{token:"delimiter",foreground:"FFFF00"},{token:"delimiter.html",foreground:"FFFF00"},{token:"tag",foreground:"569CD6"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta",foreground:"D4D4D4"},{token:"meta.tag",foreground:"CE9178"},{token:"metatag",foreground:"569CD6"},{token:"metatag.content.html",foreground:"1AEBFF"},{token:"metatag.html",foreground:"569CD6"},{token:"metatag.xml",foreground:"569CD6"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"9CDCFE"},{token:"string.key",foreground:"9CDCFE"},{token:"string.value",foreground:"CE9178"},{token:"attribute.name",foreground:"569CD6"},{token:"attribute.value",foreground:"3FF23F"},{token:"string",foreground:"CE9178"},{token:"string.sql",foreground:"FF0000"},{token:"keyword",foreground:"569CD6"},{token:"keyword.flow",foreground:"C586C0"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"909090"},{token:"predefined.sql",foreground:"FF00FF"}],colors:{[editorBackground]:"#000000",[editorForeground]:"#FFFFFF",[editorIndentGuide1]:"#FFFFFF",[editorActiveIndentGuide1]:"#FFFFFF"}},hc_light={base:"hc-light",inherit:!1,rules:[{token:"",foreground:"292929",background:"FFFFFF"},{token:"invalid",foreground:"B5200D"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"264F70"},{token:"variable.predefined",foreground:"4864AA"},{token:"constant",foreground:"dd0000"},{token:"comment",foreground:"008000"},{token:"number",foreground:"098658"},{token:"number.hex",foreground:"3030c0"},{token:"regexp",foreground:"800000"},{token:"annotation",foreground:"808080"},{token:"type",foreground:"008080"},{token:"delimiter",foreground:"000000"},{token:"delimiter.html",foreground:"383838"},{token:"tag",foreground:"800000"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta.scss",foreground:"800000"},{token:"metatag",foreground:"e00000"},{token:"metatag.content.html",foreground:"B5200D"},{token:"metatag.html",foreground:"808080"},{token:"metatag.xml",foreground:"808080"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"863B00"},{token:"string.key.json",foreground:"A31515"},{token:"string.value.json",foreground:"0451A5"},{token:"attribute.name",foreground:"264F78"},{token:"attribute.value",foreground:"0451A5"},{token:"string",foreground:"A31515"},{token:"string.sql",foreground:"B5200D"},{token:"keyword",foreground:"0000FF"},{token:"keyword.flow",foreground:"AF00DB"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"666666"},{token:"predefined.sql",foreground:"C700C7"}],colors:{[editorBackground]:"#FFFFFF",[editorForeground]:"#292929",[editorIndentGuide1]:"#292929",[editorActiveIndentGuide1]:"#292929"}},Extensions$1={IconContribution:"base.contributions.icons"};var IconContribution;(function(o){function e(t,i){let n=t.defaults;for(;ThemeIcon.isThemeIcon(n);){const r=iconRegistry.getIcon(n.id);if(!r)return;n=r.defaults}return n}o.getDefinition=e})(IconContribution||(IconContribution={}));var IconFontDefinition;(function(o){function e(i){return{weight:i.weight,style:i.style,src:i.src.map(n=>({format:n.format,location:n.location.toString()}))}}o.toJSONObject=e;function t(i){const n=r=>isString$1(r)?r:void 0;if(i&&Array.isArray(i.src)&&i.src.every(r=>isString$1(r.format)&&isString$1(r.location)))return{weight:n(i.weight),style:n(i.style),src:i.src.map(r=>({format:r.format,location:URI.parse(r.location)}))}}o.fromJSONObject=t})(IconFontDefinition||(IconFontDefinition={}));class IconRegistry{constructor(){this._onDidChange=new Emitter$1,this.onDidChange=this._onDidChange.event,this.iconSchema={definitions:{icons:{type:"object",properties:{fontId:{type:"string",description:localize("iconDefinition.fontId","The id of the font to use. If not set, the font that is defined first is used.")},fontCharacter:{type:"string",description:localize("iconDefinition.fontCharacter","The font character associated with the icon definition.")}},additionalProperties:!1,defaultSnippets:[{body:{fontCharacter:"\\\\e030"}}]}},type:"object",properties:{}},this.iconReferenceSchema={type:"string",pattern:`^${ThemeIcon.iconNameExpression}$`,enum:[],enumDescriptions:[]},this.iconsById={},this.iconFontsById={}}registerIcon(e,t,i,n){const r=this.iconsById[e];if(r){if(i&&!r.description){r.description=i,this.iconSchema.properties[e].markdownDescription=`${i} $(${e})`;const l=this.iconReferenceSchema.enum.indexOf(e);l!==-1&&(this.iconReferenceSchema.enumDescriptions[l]=i),this._onDidChange.fire()}return r}const s={id:e,description:i,defaults:t,deprecationMessage:n};this.iconsById[e]=s;const a={$ref:"#/definitions/icons"};return n&&(a.deprecationMessage=n),i&&(a.markdownDescription=`${i}: $(${e})`),this.iconSchema.properties[e]=a,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}toString(){const e=(r,s)=>r.id.localeCompare(s.id),t=r=>{for(;ThemeIcon.isThemeIcon(r.defaults);)r=this.iconsById[r.defaults.id];return`codicon codicon-${r?r.id:""}`},i=[];i.push("| preview | identifier | default codicon ID | description"),i.push("| ----------- | --------------------------------- | --------------------------------- | --------------------------------- |");const n=Object.keys(this.iconsById).map(r=>this.iconsById[r]);for(const r of n.filter(s=>!!s.description).sort(e))i.push(`|<i class="${t(r)}"></i>|${r.id}|${ThemeIcon.isThemeIcon(r.defaults)?r.defaults.id:r.id}|${r.description||""}|`);i.push("| preview | identifier "),i.push("| ----------- | --------------------------------- |");for(const r of n.filter(s=>!ThemeIcon.isThemeIcon(s.defaults)).sort(e))i.push(`|<i class="${t(r)}"></i>|${r.id}|`);return i.join(`
- `)}}const iconRegistry=new IconRegistry;Registry.add(Extensions$1.IconContribution,iconRegistry);function registerIcon(o,e,t,i){return iconRegistry.registerIcon(o,e,t,i)}function getIconRegistry(){return iconRegistry}function initialize(){const o=getCodiconFontCharacters();for(const e in o){const t="\\"+o[e].toString(16);iconRegistry.registerIcon(e,{fontCharacter:t})}}initialize();const iconsSchemaId="vscode://schemas/icons",schemaRegistry=Registry.as(Extensions$7.JSONContribution);schemaRegistry.registerSchema(iconsSchemaId,iconRegistry.getIconSchema());const delayer=new RunOnceScheduler(()=>schemaRegistry.notifySchemaChanged(iconsSchemaId),200);iconRegistry.onDidChange(()=>{delayer.isScheduled()||delayer.schedule()});const widgetClose=registerIcon("widget-close",Codicon.close,localize("widgetClose","Icon for the close action in widgets."));registerIcon("goto-previous-location",Codicon.arrowUp,localize("previousChangeIcon","Icon for goto previous editor location."));registerIcon("goto-next-location",Codicon.arrowDown,localize("nextChangeIcon","Icon for goto next editor location."));ThemeIcon.modify(Codicon.sync,"spin");ThemeIcon.modify(Codicon.loading,"spin");function getIconsStyleSheet(o){const e=new DisposableStore,t=e.add(new Emitter$1),i=getIconRegistry();return e.add(i.onDidChange(()=>t.fire())),o&&e.add(o.onDidProductIconThemeChange(()=>t.fire())),{dispose:()=>e.dispose(),onDidChange:t.event,getCSS(){const n=o?o.getProductIconTheme():new UnthemedProductIconTheme,r={},s=l=>{const d=n.getIcon(l);if(!d)return;const c=d.font;return c?(r[c.id]=c.definition,`.codicon-${l.id}:before { content: '${d.fontCharacter}'; font-family: ${asCSSPropertyValue(c.id)}; }`):`.codicon-${l.id}:before { content: '${d.fontCharacter}'; }`},a=[];for(const l of i.getIcons()){const d=s(l);d&&a.push(d)}for(const l in r){const d=r[l],c=d.weight?`font-weight: ${d.weight};`:"",u=d.style?`font-style: ${d.style};`:"",g=d.src.map(f=>`${asCSSUrl(f.location)} format('${f.format}')`).join(", ");a.push(`@font-face { src: ${g}; font-family: ${asCSSPropertyValue(l)};${c}${u} font-display: block; }`)}return a.join(`
- `)}}}class UnthemedProductIconTheme{getIcon(e){const t=getIconRegistry();let i=e.defaults;for(;ThemeIcon.isThemeIcon(i);){const n=t.getIcon(i.id);if(!n)return;i=n.defaults}return i}}const VS_LIGHT_THEME_NAME="vs",VS_DARK_THEME_NAME="vs-dark",HC_BLACK_THEME_NAME="hc-black",HC_LIGHT_THEME_NAME="hc-light",colorRegistry=Registry.as(Extensions$4.ColorContribution),themingRegistry=Registry.as(Extensions$3.ThemingContribution);class StandaloneTheme{constructor(e,t){this.semanticHighlighting=!1,this.themeData=t;const i=t.base;e.length>0?(isBuiltinTheme(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(const t in this.themeData.colors)e.set(t,Color.fromHex(this.themeData.colors[t]));if(this.themeData.inherit){const t=getBuiltinRules(this.themeData.base);for(const i in t.colors)e.has(i)||e.set(i,Color.fromHex(t.colors[i]))}this.colors=e}return this.colors}getColor(e,t){const i=this.getColors().get(e);if(i)return i;if(t!==!1)return this.getDefault(e)}getDefault(e){let t=this.defaultColors[e];return t||(t=colorRegistry.resolveDefaultColor(e,this),this.defaultColors[e]=t,t)}defines(e){return this.getColors().has(e)}get type(){switch(this.base){case VS_LIGHT_THEME_NAME:return ColorScheme.LIGHT;case HC_BLACK_THEME_NAME:return ColorScheme.HIGH_CONTRAST_DARK;case HC_LIGHT_THEME_NAME:return ColorScheme.HIGH_CONTRAST_LIGHT;default:return ColorScheme.DARK}}get tokenTheme(){if(!this._tokenTheme){let e=[],t=[];if(this.themeData.inherit){const r=getBuiltinRules(this.themeData.base);e=r.rules,r.encodedTokensColors&&(t=r.encodedTokensColors)}const i=this.themeData.colors["editor.foreground"],n=this.themeData.colors["editor.background"];if(i||n){const r={token:""};i&&(r.foreground=i),n&&(r.background=n),e.push(r)}e=e.concat(this.themeData.rules),this.themeData.encodedTokensColors&&(t=this.themeData.encodedTokensColors),this._tokenTheme=TokenTheme.createFromRawTokenTheme(e,t)}return this._tokenTheme}getTokenStyleMetadata(e,t,i){const r=this.tokenTheme._match([e].concat(t).join(".")).metadata,s=TokenMetadata.getForeground(r),a=TokenMetadata.getFontStyle(r);return{foreground:s,italic:!!(a&1),bold:!!(a&2),underline:!!(a&4),strikethrough:!!(a&8)}}}function isBuiltinTheme(o){return o===VS_LIGHT_THEME_NAME||o===VS_DARK_THEME_NAME||o===HC_BLACK_THEME_NAME||o===HC_LIGHT_THEME_NAME}function getBuiltinRules(o){switch(o){case VS_LIGHT_THEME_NAME:return vs;case VS_DARK_THEME_NAME:return vs_dark;case HC_BLACK_THEME_NAME:return hc_black;case HC_LIGHT_THEME_NAME:return hc_light}}function newBuiltInTheme(o){const e=getBuiltinRules(o);return new StandaloneTheme(o,e)}class StandaloneThemeService extends Disposable{constructor(){super(),this._onColorThemeChange=this._register(new Emitter$1),this.onDidColorThemeChange=this._onColorThemeChange.event,this._onProductIconThemeChange=this._register(new Emitter$1),this.onDidProductIconThemeChange=this._onProductIconThemeChange.event,this._environment=Object.create(null),this._builtInProductIconTheme=new UnthemedProductIconTheme,this._autoDetectHighContrast=!0,this._knownThemes=new Map,this._knownThemes.set(VS_LIGHT_THEME_NAME,newBuiltInTheme(VS_LIGHT_THEME_NAME)),this._knownThemes.set(VS_DARK_THEME_NAME,newBuiltInTheme(VS_DARK_THEME_NAME)),this._knownThemes.set(HC_BLACK_THEME_NAME,newBuiltInTheme(HC_BLACK_THEME_NAME)),this._knownThemes.set(HC_LIGHT_THEME_NAME,newBuiltInTheme(HC_LIGHT_THEME_NAME));const e=this._register(getIconsStyleSheet(this));this._codiconCSS=e.getCSS(),this._themeCSS="",this._allCSS=`${this._codiconCSS}
- ${this._themeCSS}`,this._globalStyleElement=null,this._styleElements=[],this._colorMapOverride=null,this.setTheme(VS_LIGHT_THEME_NAME),this._onOSSchemeChanged(),this._register(e.onDidChange(()=>{this._codiconCSS=e.getCSS(),this._updateCSS()})),addMatchMediaChangeListener("(forced-colors: active)",()=>{this._onOSSchemeChanged()})}registerEditorContainer(e){return isInShadowDOM(e)?this._registerShadowDomContainer(e):this._registerRegularEditorContainer()}_registerRegularEditorContainer(){return this._globalStyleElement||(this._globalStyleElement=createStyleSheet(void 0,e=>{e.className="monaco-colors",e.textContent=this._allCSS}),this._styleElements.push(this._globalStyleElement)),Disposable.None}_registerShadowDomContainer(e){const t=createStyleSheet(e,i=>{i.className="monaco-colors",i.textContent=this._allCSS});return this._styleElements.push(t),{dispose:()=>{for(let i=0;i<this._styleElements.length;i++)if(this._styleElements[i]===t){this._styleElements.splice(i,1);return}}}}defineTheme(e,t){if(!/^[a-z0-9\-]+$/i.test(e))throw new Error("Illegal theme name!");if(!isBuiltinTheme(t.base)&&!isBuiltinTheme(e))throw new Error("Illegal theme base!");this._knownThemes.set(e,new StandaloneTheme(e,t)),isBuiltinTheme(e)&&this._knownThemes.forEach(i=>{i.base===e&&i.notifyBaseUpdated()}),this._theme.themeName===e&&this.setTheme(e)}getColorTheme(){return this._theme}setColorMapOverride(e){this._colorMapOverride=e,this._updateThemeOrColorMap()}setTheme(e){let t;this._knownThemes.has(e)?t=this._knownThemes.get(e):t=this._knownThemes.get(VS_LIGHT_THEME_NAME),this._updateActualTheme(t)}_updateActualTheme(e){!e||this._theme===e||(this._theme=e,this._updateThemeOrColorMap())}_onOSSchemeChanged(){if(this._autoDetectHighContrast){const e=window.matchMedia("(forced-colors: active)").matches;if(e!==isHighContrast(this._theme.type)){let t;isDark(this._theme.type)?t=e?HC_BLACK_THEME_NAME:VS_DARK_THEME_NAME:t=e?HC_LIGHT_THEME_NAME:VS_LIGHT_THEME_NAME,this._updateActualTheme(this._knownThemes.get(t))}}}setAutoDetectHighContrast(e){this._autoDetectHighContrast=e,this._onOSSchemeChanged()}_updateThemeOrColorMap(){const e=[],t={},i={addRule:s=>{t[s]||(e.push(s),t[s]=!0)}};themingRegistry.getThemingParticipants().forEach(s=>s(this._theme,i,this._environment));const n=[];for(const s of colorRegistry.getColors()){const a=this._theme.getColor(s.id,!0);a&&n.push(`${asCssVariableName(s.id)}: ${a.toString()};`)}i.addRule(`.monaco-editor, .monaco-diff-editor { ${n.join(`
- `)} }`);const r=this._colorMapOverride||this._theme.tokenTheme.getColorMap();i.addRule(generateTokensCSSForColorMap(r)),this._themeCSS=e.join(`
- `),this._updateCSS(),TokenizationRegistry.setColorMap(r),this._onColorThemeChange.fire(this._theme)}_updateCSS(){this._allCSS=`${this._codiconCSS}
- ${this._themeCSS}`,this._styleElements.forEach(e=>e.textContent=this._allCSS)}getFileIconTheme(){return{hasFileIcons:!1,hasFolderIcons:!1,hidesExplorerArrows:!1}}getProductIconTheme(){return this._builtInProductIconTheme}}const IStandaloneThemeService=createDecorator("themeService");var __decorate$1E=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1E=function(o,e){return function(t,i){e(t,i,o)}};let AccessibilityService=class extends Disposable{constructor(e,t,i){super(),this._contextKeyService=e,this._layoutService=t,this._configurationService=i,this._accessibilitySupport=0,this._onDidChangeScreenReaderOptimized=new Emitter$1,this._onDidChangeReducedMotion=new Emitter$1,this._accessibilityModeEnabledContext=CONTEXT_ACCESSIBILITY_MODE_ENABLED.bindTo(this._contextKeyService);const n=()=>this._accessibilityModeEnabledContext.set(this.isScreenReaderOptimized());this._register(this._configurationService.onDidChangeConfiguration(s=>{s.affectsConfiguration("editor.accessibilitySupport")&&(n(),this._onDidChangeScreenReaderOptimized.fire()),s.affectsConfiguration("workbench.reduceMotion")&&(this._configMotionReduced=this._configurationService.getValue("workbench.reduceMotion"),this._onDidChangeReducedMotion.fire())})),n(),this._register(this.onDidChangeScreenReaderOptimized(()=>n()));const r=window.matchMedia("(prefers-reduced-motion: reduce)");this._systemMotionReduced=r.matches,this._configMotionReduced=this._configurationService.getValue("workbench.reduceMotion"),this.initReducedMotionListeners(r)}initReducedMotionListeners(e){if(!this._layoutService.hasContainer)return;this._register(addDisposableListener(e,"change",()=>{this._systemMotionReduced=e.matches,this._configMotionReduced==="auto"&&this._onDidChangeReducedMotion.fire()}));const t=()=>{const i=this.isMotionReduced();this._layoutService.container.classList.toggle("reduce-motion",i),this._layoutService.container.classList.toggle("enable-motion",!i)};t(),this._register(this.onDidChangeReducedMotion(()=>t()))}get onDidChangeScreenReaderOptimized(){return this._onDidChangeScreenReaderOptimized.event}isScreenReaderOptimized(){const e=this._configurationService.getValue("editor.accessibilitySupport");return e==="on"||e==="auto"&&this._accessibilitySupport===2}get onDidChangeReducedMotion(){return this._onDidChangeReducedMotion.event}isMotionReduced(){const e=this._configMotionReduced;return e==="on"||e==="auto"&&this._systemMotionReduced}getAccessibilitySupport(){return this._accessibilitySupport}};AccessibilityService=__decorate$1E([__param$1E(0,IContextKeyService),__param$1E(1,ILayoutService),__param$1E(2,IConfigurationService)],AccessibilityService);var __decorate$1D=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1D=function(o,e){return function(t,i){e(t,i,o)}},PersistedMenuHideState_1,MenuInfo_1;let MenuService=class{constructor(e,t){this._commandService=e,this._hiddenStates=new PersistedMenuHideState(t)}createMenu(e,t,i){return new MenuImpl(e,this._hiddenStates,Object.assign({emitEventsForSubmenuChanges:!1,eventDebounceDelay:50},i),this._commandService,t)}resetHiddenStates(e){this._hiddenStates.reset(e)}};MenuService=__decorate$1D([__param$1D(0,ICommandService),__param$1D(1,IStorageService)],MenuService);let PersistedMenuHideState=PersistedMenuHideState_1=class{constructor(e){this._storageService=e,this._disposables=new DisposableStore,this._onDidChange=new Emitter$1,this.onDidChange=this._onDidChange.event,this._ignoreChangeEvent=!1,this._hiddenByDefaultCache=new Map;try{const t=e.get(PersistedMenuHideState_1._key,0,"{}");this._data=JSON.parse(t)}catch{this._data=Object.create(null)}this._disposables.add(e.onDidChangeValue(0,PersistedMenuHideState_1._key,this._disposables)(()=>{if(!this._ignoreChangeEvent)try{const t=e.get(PersistedMenuHideState_1._key,0,"{}");this._data=JSON.parse(t)}catch(t){console.log("FAILED to read storage after UPDATE",t)}this._onDidChange.fire()}))}dispose(){this._onDidChange.dispose(),this._disposables.dispose()}_isHiddenByDefault(e,t){var i;return(i=this._hiddenByDefaultCache.get(`${e.id}/${t}`))!==null&&i!==void 0?i:!1}setDefaultState(e,t,i){this._hiddenByDefaultCache.set(`${e.id}/${t}`,i)}isHidden(e,t){var i,n;const r=this._isHiddenByDefault(e,t),s=(n=(i=this._data[e.id])===null||i===void 0?void 0:i.includes(t))!==null&&n!==void 0?n:!1;return r?!s:s}updateHidden(e,t,i){this._isHiddenByDefault(e,t)&&(i=!i);const r=this._data[e.id];if(i)r?r.indexOf(t)<0&&r.push(t):this._data[e.id]=[t];else if(r){const s=r.indexOf(t);s>=0&&removeFastWithoutKeepingOrder(r,s),r.length===0&&delete this._data[e.id]}this._persist()}reset(e){if(e===void 0)this._data=Object.create(null),this._persist();else{for(const{id:t}of e)this._data[t]&&delete this._data[t];this._persist()}}_persist(){try{this._ignoreChangeEvent=!0;const e=JSON.stringify(this._data);this._storageService.store(PersistedMenuHideState_1._key,e,0,0)}finally{this._ignoreChangeEvent=!1}}};PersistedMenuHideState._key="menu.hiddenCommands";PersistedMenuHideState=PersistedMenuHideState_1=__decorate$1D([__param$1D(0,IStorageService)],PersistedMenuHideState);let MenuInfo=MenuInfo_1=class{constructor(e,t,i,n,r){this._id=e,this._hiddenStates=t,this._collectContextKeysForSubmenus=i,this._commandService=n,this._contextKeyService=r,this._menuGroups=[],this._structureContextKeys=new Set,this._preconditionContextKeys=new Set,this._toggledContextKeys=new Set,this.refresh()}get structureContextKeys(){return this._structureContextKeys}get preconditionContextKeys(){return this._preconditionContextKeys}get toggledContextKeys(){return this._toggledContextKeys}refresh(){this._menuGroups.length=0,this._structureContextKeys.clear(),this._preconditionContextKeys.clear(),this._toggledContextKeys.clear();const e=MenuRegistry.getMenuItems(this._id);let t;e.sort(MenuInfo_1._compareMenuItems);for(const i of e){const n=i.group||"";(!t||t[0]!==n)&&(t=[n,[]],this._menuGroups.push(t)),t[1].push(i),this._collectContextKeys(i)}}_collectContextKeys(e){if(MenuInfo_1._fillInKbExprKeys(e.when,this._structureContextKeys),isIMenuItem(e)){if(e.command.precondition&&MenuInfo_1._fillInKbExprKeys(e.command.precondition,this._preconditionContextKeys),e.command.toggled){const t=e.command.toggled.condition||e.command.toggled;MenuInfo_1._fillInKbExprKeys(t,this._toggledContextKeys)}}else this._collectContextKeysForSubmenus&&MenuRegistry.getMenuItems(e.submenu).forEach(this._collectContextKeys,this)}createActionGroups(e){const t=[];for(const i of this._menuGroups){const[n,r]=i,s=[];for(const a of r)if(this._contextKeyService.contextMatchesRules(a.when)){const l=isIMenuItem(a);l&&this._hiddenStates.setDefaultState(this._id,a.command.id,!!a.isHiddenByDefault);const d=createMenuHide(this._id,l?a.command:a,this._hiddenStates);if(l)s.push(new MenuItemAction(a.command,a.alt,e,d,this._contextKeyService,this._commandService));else{const c=new MenuInfo_1(a.submenu,this._hiddenStates,this._collectContextKeysForSubmenus,this._commandService,this._contextKeyService).createActionGroups(e),u=Separator.join(...c.map(g=>g[1]));u.length>0&&s.push(new SubmenuItemAction(a,d,u))}}s.length>0&&t.push([n,s])}return t}static _fillInKbExprKeys(e,t){if(e)for(const i of e.keys())t.add(i)}static _compareMenuItems(e,t){const i=e.group,n=t.group;if(i!==n){if(i){if(!n)return-1}else return 1;if(i==="navigation")return-1;if(n==="navigation")return 1;const a=i.localeCompare(n);if(a!==0)return a}const r=e.order||0,s=t.order||0;return r<s?-1:r>s?1:MenuInfo_1._compareTitles(isIMenuItem(e)?e.command.title:e.title,isIMenuItem(t)?t.command.title:t.title)}static _compareTitles(e,t){const i=typeof e=="string"?e:e.original,n=typeof t=="string"?t:t.original;return i.localeCompare(n)}};MenuInfo=MenuInfo_1=__decorate$1D([__param$1D(3,ICommandService),__param$1D(4,IContextKeyService)],MenuInfo);let MenuImpl=class{constructor(e,t,i,n,r){this._disposables=new DisposableStore,this._menuInfo=new MenuInfo(e,t,i.emitEventsForSubmenuChanges,n,r);const s=new RunOnceScheduler(()=>{this._menuInfo.refresh(),this._onDidChange.fire({menu:this,isStructuralChange:!0,isEnablementChange:!0,isToggleChange:!0})},i.eventDebounceDelay);this._disposables.add(s),this._disposables.add(MenuRegistry.onDidChangeMenu(c=>{c.has(e)&&s.schedule()}));const a=this._disposables.add(new DisposableStore),l=c=>{let u=!1,g=!1,f=!1;for(const p of c)if(u=u||p.isStructuralChange,g=g||p.isEnablementChange,f=f||p.isToggleChange,u&&g&&f)break;return{menu:this,isStructuralChange:u,isEnablementChange:g,isToggleChange:f}},d=()=>{a.add(r.onDidChangeContext(c=>{const u=c.affectsSome(this._menuInfo.structureContextKeys),g=c.affectsSome(this._menuInfo.preconditionContextKeys),f=c.affectsSome(this._menuInfo.toggledContextKeys);(u||g||f)&&this._onDidChange.fire({menu:this,isStructuralChange:u,isEnablementChange:g,isToggleChange:f})})),a.add(t.onDidChange(c=>{this._onDidChange.fire({menu:this,isStructuralChange:!0,isEnablementChange:!1,isToggleChange:!1})}))};this._onDidChange=new DebounceEmitter({onWillAddFirstListener:d,onDidRemoveLastListener:a.clear.bind(a),delay:i.eventDebounceDelay,merge:l}),this.onDidChange=this._onDidChange.event}getActions(e){return this._menuInfo.createActionGroups(e)}dispose(){this._disposables.dispose(),this._onDidChange.dispose()}};MenuImpl=__decorate$1D([__param$1D(3,ICommandService),__param$1D(4,IContextKeyService)],MenuImpl);function createMenuHide(o,e,t){const i=isISubmenuItem(e)?e.submenu.id:e.id,n=typeof e.title=="string"?e.title:e.title.value,r=toAction({id:`hide/${o.id}/${i}`,label:localize("hide.label","Hide '{0}'",n),run(){t.updateHidden(o,i,!0)}}),s=toAction({id:`toggle/${o.id}/${i}`,label:n,get checked(){return!t.isHidden(o,i)},run(){t.updateHidden(o,i,!!this.checked)}});return{hide:r,toggle:s,get isHidden(){return!s.checked}}}var __decorate$1C=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1C=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$1g=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};let BrowserClipboardService=class extends Disposable{constructor(e,t){super(),this.layoutService=e,this.logService=t,this.mapTextToType=new Map,this.findText="",this.resources=[],(isSafari||isWebkitWebView)&&this.installWebKitWriteTextWorkaround()}installWebKitWriteTextWorkaround(){const e=()=>{const t=new DeferredPromise;this.webKitPendingClipboardWritePromise&&!this.webKitPendingClipboardWritePromise.isSettled&&this.webKitPendingClipboardWritePromise.cancel(),this.webKitPendingClipboardWritePromise=t,navigator.clipboard.write([new ClipboardItem({"text/plain":t.p})]).catch(i=>__awaiter$1g(this,void 0,void 0,function*(){(!(i instanceof Error)||i.name!=="NotAllowedError"||!t.isRejected)&&this.logService.error(i)}))};this.layoutService.hasContainer&&(this._register(addDisposableListener(this.layoutService.container,"click",e)),this._register(addDisposableListener(this.layoutService.container,"keydown",e)))}writeText(e,t){return __awaiter$1g(this,void 0,void 0,function*(){if(t){this.mapTextToType.set(t,e);return}if(this.webKitPendingClipboardWritePromise)return this.webKitPendingClipboardWritePromise.complete(e);try{return yield navigator.clipboard.writeText(e)}catch(r){console.error(r)}const i=document.activeElement,n=document.body.appendChild($$d("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 __awaiter$1g(this,void 0,void 0,function*(){if(e)return this.mapTextToType.get(e)||"";try{return yield navigator.clipboard.readText()}catch(t){return console.error(t),""}})}readFindText(){return __awaiter$1g(this,void 0,void 0,function*(){return this.findText})}writeFindText(e){return __awaiter$1g(this,void 0,void 0,function*(){this.findText=e})}writeResources(e){return __awaiter$1g(this,void 0,void 0,function*(){this.resources=e})}readResources(){return __awaiter$1g(this,void 0,void 0,function*(){return this.resources})}};BrowserClipboardService=__decorate$1C([__param$1C(0,ILayoutService),__param$1C(1,ILogService)],BrowserClipboardService);const IClipboardService=createDecorator("clipboardService");var __decorate$1B=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1B=function(o,e){return function(t,i){e(t,i,o)}};const KEYBINDING_CONTEXT_ATTR="data-keybinding-context";let Context$2=class{constructor(e,t){this._id=e,this._parent=t,this._value=Object.create(null),this._value._contextId=e}get value(){return Object.assign({},this._value)}setValue(e,t){return this._value[e]!==t?(this._value[e]=t,!0):!1}removeValue(e){return e in this._value?(delete this._value[e],!0):!1}getValue(e){const t=this._value[e];return typeof t>"u"&&this._parent?this._parent.getValue(e):t}};class NullContext extends Context$2{constructor(){super(-1,null)}setValue(e,t){return!1}removeValue(e){return!1}getValue(e){}}NullContext.INSTANCE=new NullContext;class ConfigAwareContextValuesContainer extends Context$2{constructor(e,t,i){super(e,null),this._configurationService=t,this._values=TernarySearchTree.forConfigKeys(),this._listener=this._configurationService.onDidChangeConfiguration(n=>{if(n.source===7){const r=Array.from(this._values,([s])=>s);this._values.clear(),i.fire(new ArrayContextKeyChangeEvent(r))}else{const r=[];for(const s of n.affectedKeys){const a=`config.${s}`,l=this._values.findSuperstr(a);l!==void 0&&(r.push(...Iterable.map(l,([d])=>d)),this._values.deleteSuperstr(a)),this._values.has(a)&&(r.push(a),this._values.delete(a))}i.fire(new ArrayContextKeyChangeEvent(r))}})}dispose(){this._listener.dispose()}getValue(e){if(e.indexOf(ConfigAwareContextValuesContainer._keyPrefix)!==0)return super.getValue(e);if(this._values.has(e))return this._values.get(e);const t=e.substr(ConfigAwareContextValuesContainer._keyPrefix.length),i=this._configurationService.getValue(t);let n;switch(typeof i){case"number":case"boolean":case"string":n=i;break;default:Array.isArray(i)?n=JSON.stringify(i):n=i}return this._values.set(e,n),n}setValue(e,t){return super.setValue(e,t)}removeValue(e){return super.removeValue(e)}}ConfigAwareContextValuesContainer._keyPrefix="config.";class ContextKey{constructor(e,t,i){this._service=e,this._key=t,this._defaultValue=i,this.reset()}set(e){this._service.setContext(this._key,e)}reset(){typeof this._defaultValue>"u"?this._service.removeContext(this._key):this._service.setContext(this._key,this._defaultValue)}get(){return this._service.getContextKeyValue(this._key)}}class SimpleContextKeyChangeEvent{constructor(e){this.key=e}affectsSome(e){return e.has(this.key)}allKeysContainedIn(e){return this.affectsSome(e)}}class ArrayContextKeyChangeEvent{constructor(e){this.keys=e}affectsSome(e){for(const t of this.keys)if(e.has(t))return!0;return!1}allKeysContainedIn(e){return this.keys.every(t=>e.has(t))}}class CompositeContextKeyChangeEvent{constructor(e){this.events=e}affectsSome(e){for(const t of this.events)if(t.affectsSome(e))return!0;return!1}allKeysContainedIn(e){return this.events.every(t=>t.allKeysContainedIn(e))}}function allEventKeysInContext(o,e){return o.allKeysContainedIn(new Set(Object.keys(e)))}class AbstractContextKeyService extends Disposable{constructor(e){super(),this._onDidChangeContext=this._register(new PauseableEmitter({merge:t=>new CompositeContextKeyChangeEvent(t)})),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 ContextKey(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 ScopedContextKeyService(this,e)}contextMatchesRules(e){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");const t=this.getContextValuesContainer(this._myContextId);return e?e.evaluate(t):!0}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 SimpleContextKeyChangeEvent(e))}removeContext(e){this._isDisposed||this.getContextValuesContainer(this._myContextId).removeValue(e)&&this._onDidChangeContext.fire(new SimpleContextKeyChangeEvent(e))}getContext(e){return this._isDisposed?NullContext.INSTANCE:this.getContextValuesContainer(findContextAttr(e))}dispose(){super.dispose(),this._isDisposed=!0}}let ContextKeyService=class extends AbstractContextKeyService{constructor(e){super(0),this._contexts=new Map,this._lastContextId=0;const t=this._register(new ConfigAwareContextValuesContainer(this._myContextId,e,this._onDidChangeContext));this._contexts.set(this._myContextId,t)}getContextValuesContainer(e){return this._isDisposed?NullContext.INSTANCE:this._contexts.get(e)||NullContext.INSTANCE}createChildContext(e=this._myContextId){if(this._isDisposed)throw new Error("ContextKeyService has been disposed");const t=++this._lastContextId;return this._contexts.set(t,new Context$2(t,this.getContextValuesContainer(e))),t}disposeContext(e){this._isDisposed||this._contexts.delete(e)}};ContextKeyService=__decorate$1B([__param$1B(0,IConfigurationService)],ContextKeyService);class ScopedContextKeyService extends AbstractContextKeyService{constructor(e,t){if(super(e.createChildContext()),this._parentChangeListener=this._register(new MutableDisposable),this._parent=e,this._updateParentChangeListener(),this._domNode=t,this._domNode.hasAttribute(KEYBINDING_CONTEXT_ATTR)){let i="";this._domNode.classList&&(i=Array.from(this._domNode.classList.values()).join(", ")),console.error(`Element already has context attribute${i?": "+i:""}`)}this._domNode.setAttribute(KEYBINDING_CONTEXT_ATTR,String(this._myContextId))}_updateParentChangeListener(){this._parentChangeListener.value=this._parent.onDidChangeContext(e=>{const i=this._parent.getContextValuesContainer(this._myContextId).value;allEventKeysInContext(e,i)||this._onDidChangeContext.fire(e)})}dispose(){this._isDisposed||(this._parent.disposeContext(this._myContextId),this._domNode.removeAttribute(KEYBINDING_CONTEXT_ATTR),super.dispose())}getContextValuesContainer(e){return this._isDisposed?NullContext.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)}}function findContextAttr(o){for(;o;){if(o.hasAttribute(KEYBINDING_CONTEXT_ATTR)){const e=o.getAttribute(KEYBINDING_CONTEXT_ATTR);return e?parseInt(e,10):NaN}o=o.parentElement}return 0}function setContext(o,e,t){o.get(IContextKeyService).createKey(String(e),stringifyURIs(t))}function stringifyURIs(o){return cloneAndChange(o,e=>{if(typeof e=="object"&&e.$mid===1)return URI.revive(e).toString();if(e instanceof URI)return e.toString()})}CommandsRegistry.registerCommand("_setContext",setContext);CommandsRegistry.registerCommand({id:"getContextKeyInfo",handler(){return[...RawContextKey.all()].sort((o,e)=>o.key.localeCompare(e.key))},description:{description:localize("getContextKeyInfo","A command that returns information about context keys"),args:[]}});CommandsRegistry.registerCommand("_generateContextKeyInfo",function(){const o=[],e=new Set;for(const t of RawContextKey.all())e.has(t.key)||(e.add(t.key),o.push(t));o.sort((t,i)=>t.key.localeCompare(i.key)),console.log(JSON.stringify(o,void 0,2))});let Node$1=class{constructor(e,t){this.key=e,this.data=t,this.incoming=new Map,this.outgoing=new Map}};class Graph{constructor(e){this._hashFn=e,this._nodes=new Map}roots(){const e=[];for(const t of this._nodes.values())t.outgoing.size===0&&e.push(t);return e}insertEdge(e,t){const i=this.lookupOrInsertNode(e),n=this.lookupOrInsertNode(t);i.outgoing.set(n.key,n),n.incoming.set(i.key,i)}removeNode(e){const t=this._hashFn(e);this._nodes.delete(t);for(const i of this._nodes.values())i.outgoing.delete(t),i.incoming.delete(t)}lookupOrInsertNode(e){const t=this._hashFn(e);let i=this._nodes.get(t);return i||(i=new Node$1(t,e),this._nodes.set(t,i)),i}isEmpty(){return this._nodes.size===0}toString(){const e=[];for(const[t,i]of this._nodes)e.push(`${t}
- (-> incoming)[${[...i.incoming.keys()].join(", ")}]
- (outgoing ->)[${[...i.outgoing.keys()].join(",")}]
- `);return e.join(`
- `)}findCycleSlow(){for(const[e,t]of this._nodes){const i=new Set([e]),n=this._findCycle(t,i);if(n)return n}}_findCycle(e,t){for(const[i,n]of e.outgoing){if(t.has(i))return[...t,i].join(" -> ");t.add(i);const r=this._findCycle(n,t);if(r)return r;t.delete(i)}}}const _enableAllTracing=!1;class CyclicDependencyError extends Error{constructor(e){var t;super("cyclic dependency between services"),this.message=(t=e.findCycleSlow())!==null&&t!==void 0?t:`UNABLE to detect cycle, dumping graph:
- ${e.toString()}`}}class InstantiationService{constructor(e=new ServiceCollection,t=!1,i,n=_enableAllTracing){var r;this._services=e,this._strict=t,this._parent=i,this._enableTracing=n,this._activeInstantiations=new Set,this._services.set(IInstantiationService,this),this._globalGraph=n?(r=i==null?void 0:i._globalGraph)!==null&&r!==void 0?r:new Graph(s=>s):void 0}createChild(e){return new InstantiationService(e,this._strict,this,this._enableTracing)}invokeFunction(e,...t){const i=Trace.traceInvocation(this._enableTracing,e);let n=!1;try{return e({get:s=>{if(n)throw illegalState("service accessor is only valid during the invocation of its target method");const a=this._getOrCreateServiceInstance(s,i);if(!a)throw new Error(`[invokeFunction] unknown service '${s}'`);return a}},...t)}finally{n=!0,i.stop()}}createInstance(e,...t){let i,n;return e instanceof SyncDescriptor?(i=Trace.traceCreation(this._enableTracing,e.ctor),n=this._createInstance(e.ctor,e.staticArguments.concat(t),i)):(i=Trace.traceCreation(this._enableTracing,e),n=this._createInstance(e,t,i)),i.stop(),n}_createInstance(e,t=[],i){const n=_util.getServiceDependencies(e).sort((a,l)=>a.index-l.index),r=[];for(const a of n){const l=this._getOrCreateServiceInstance(a.id,i);l||this._throwIfStrict(`[createInstance] ${e.name} depends on UNKNOWN service ${a.id}.`,!1),r.push(l)}const s=n.length>0?n[0].index:t.length;if(t.length!==s){console.trace(`[createInstance] First service dependency of ${e.name} at position ${s+1} conflicts with ${t.length} static arguments`);const a=s-t.length;a>0?t=t.concat(new Array(a)):t=t.slice(0,s)}return Reflect.construct(e,t.concat(r))}_setServiceInstance(e,t){if(this._services.get(e)instanceof SyncDescriptor)this._services.set(e,t);else if(this._parent)this._parent._setServiceInstance(e,t);else throw new Error("illegalState - setting UNKNOWN service instance")}_getServiceInstanceOrDescriptor(e){const t=this._services.get(e);return!t&&this._parent?this._parent._getServiceInstanceOrDescriptor(e):t}_getOrCreateServiceInstance(e,t){this._globalGraph&&this._globalGraphImplicitDependency&&this._globalGraph.insertEdge(this._globalGraphImplicitDependency,String(e));const i=this._getServiceInstanceOrDescriptor(e);return i instanceof SyncDescriptor?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){var n;const r=new Graph(l=>l.id.toString());let s=0;const a=[{id:e,desc:t,_trace:i}];for(;a.length;){const l=a.pop();if(r.lookupOrInsertNode(l),s++>1e3)throw new CyclicDependencyError(r);for(const d of _util.getServiceDependencies(l.desc.ctor)){const c=this._getServiceInstanceOrDescriptor(d.id);if(c||this._throwIfStrict(`[createInstance] ${e} depends on ${d.id} which is NOT registered.`,!0),(n=this._globalGraph)===null||n===void 0||n.insertEdge(String(l.id),String(d.id)),c instanceof SyncDescriptor){const u={id:d.id,desc:c,_trace:l._trace.branch(d.id,!0)};r.insertEdge(l,u),a.push(u)}}}for(;;){const l=r.roots();if(l.length===0){if(!r.isEmpty())throw new CyclicDependencyError(r);break}for(const{data:d}of l){if(this._getServiceInstanceOrDescriptor(d.id)instanceof SyncDescriptor){const u=this._createServiceInstanceWithOwner(d.id,d.desc.ctor,d.desc.staticArguments,d.desc.supportsDelayedInstantiation,d._trace);this._setServiceInstance(d.id,u)}r.removeNode(d)}}return this._getServiceInstanceOrDescriptor(e)}_createServiceInstanceWithOwner(e,t,i=[],n,r){if(this._services.get(e)instanceof SyncDescriptor)return this._createServiceInstance(e,t,i,n,r);if(this._parent)return this._parent._createServiceInstanceWithOwner(e,t,i,n,r);throw new Error(`illegalState - creating UNKNOWN service instance ${t.name}`)}_createServiceInstance(e,t,i=[],n,r){if(n){const s=new InstantiationService(void 0,this._strict,this,this._enableTracing);s._globalGraphImplicitDependency=String(e);const a=new Map,l=new IdleValue(()=>{const d=s._createInstance(t,i,r);for(const[c,u]of a){const g=d[c];if(typeof g=="function")for(const f of u)g.apply(d,f)}return a.clear(),d});return new Proxy(Object.create(null),{get(d,c){if(!l.isInitialized&&typeof c=="string"&&(c.startsWith("onDid")||c.startsWith("onWill"))){let f=a.get(c);return f||(f=new LinkedList,a.set(c,f)),(m,b,_)=>{const C=f.push([m,b,_]);return toDisposable(C)}}if(c in d)return d[c];const u=l.value;let g=u[c];return typeof g!="function"||(g=g.bind(u),d[c]=g),g},set(d,c,u){return l.value[c]=u,!0},getPrototypeOf(d){return t.prototype}})}else return this._createInstance(t,i,r)}_throwIfStrict(e,t){if(t&&console.warn(e),this._strict)throw new Error(e)}}class Trace{static traceInvocation(e,t){return e?new Trace(2,t.name||new Error().stack.split(`
- `).slice(3,4).join(`
- `)):Trace._None}static traceCreation(e,t){return e?new Trace(1,t.name):Trace._None}constructor(e,t){this.type=e,this.name=t,this._start=Date.now(),this._dep=[]}branch(e,t){const i=new Trace(3,e.toString());return this._dep.push([e,t,i]),i}stop(){const e=Date.now()-this._start;Trace._totals+=e;let t=!1;function i(r,s){const a=[],l=new Array(r+1).join(" ");for(const[d,c,u]of s._dep)if(c&&u){t=!0,a.push(`${l}CREATES -> ${d}`);const g=i(r+1,u);g&&a.push(g)}else a.push(`${l}uses -> ${d}`);return a.join(`
- `)}const n=[`${this.type===1?"CREATE":"CALL"} ${this.name}`,`${i(1,this)}`,`DONE, took ${e.toFixed(2)}ms (grand total ${Trace._totals.toFixed(2)}ms)`];(e>2||t)&&Trace.all.add(n.join(`
- `))}}Trace.all=new Set;Trace._None=new class extends Trace{constructor(){super(0,null)}stop(){}branch(){return this}};Trace._totals=0;const unsupportedSchemas=new Set([Schemas.inMemory,Schemas.vscodeSourceControl,Schemas.walkThrough,Schemas.walkThroughSnippet]);class DoubleResourceMap{constructor(){this._byResource=new ResourceMap,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 r=this._byOwner.get(t);r||(r=new ResourceMap,this._byOwner.set(t,r)),r.set(e,i)}get(e,t){const i=this._byResource.get(e);return i==null?void 0:i.get(t)}delete(e,t){let i=!1,n=!1;const r=this._byResource.get(e);r&&(i=r.delete(t));const s=this._byOwner.get(t);if(s&&(n=s.delete(e)),i!==n)throw new Error("illegal state");return i&&n}values(e){var t,i,n,r;return typeof e=="string"?(i=(t=this._byOwner.get(e))===null||t===void 0?void 0:t.values())!==null&&i!==void 0?i:Iterable.empty():URI.isUri(e)?(r=(n=this._byResource.get(e))===null||n===void 0?void 0:n.values())!==null&&r!==void 0?r:Iterable.empty():Iterable.map(Iterable.concat(...this._byOwner.values()),s=>s[1])}}class MarkerStats{constructor(e){this.errors=0,this.infos=0,this.warnings=0,this.unknowns=0,this._data=new ResourceMap,this._service=e,this._subscription=e.onMarkerChanged(this._update,this)}dispose(){this._subscription.dispose()}_update(e){for(const t of e){const i=this._data.get(t);i&&this._substract(i);const n=this._resourceStats(t);this._add(n),this._data.set(t,n)}}_resourceStats(e){const t={errors:0,warnings:0,infos:0,unknowns:0};if(unsupportedSchemas.has(e.scheme))return t;for(const{severity:i}of this._service.read({resource:e}))i===MarkerSeverity$1.Error?t.errors+=1:i===MarkerSeverity$1.Warning?t.warnings+=1:i===MarkerSeverity$1.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 MarkerService{constructor(){this._onMarkerChanged=new DebounceEmitter({delay:0,merge:MarkerService._merge}),this.onMarkerChanged=this._onMarkerChanged.event,this._data=new DoubleResourceMap,this._stats=new MarkerStats(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(isFalsyOrEmpty(i))this._data.delete(t,e)&&this._onMarkerChanged.fire([t]);else{const n=[];for(const r of i){const s=MarkerService._toMarker(e,t,r);s&&n.push(s)}this._data.set(t,e,n),this._onMarkerChanged.fire([t])}}static _toMarker(e,t,i){let{code:n,severity:r,message:s,source:a,startLineNumber:l,startColumn:d,endLineNumber:c,endColumn:u,relatedInformation:g,tags:f}=i;if(s)return l=l>0?l:1,d=d>0?d:1,c=c>=l?c:l,u=u>0?u:d,{resource:t,owner:e,code:n,severity:r,message:s,source:a,startLineNumber:l,startColumn:d,endLineNumber:c,endColumn:u,relatedInformation:g,tags:f}}changeAll(e,t){const i=[],n=this._data.values(e);if(n)for(const r of n){const s=Iterable.first(r);s&&(i.push(s.resource),this._data.delete(s.resource,e))}if(isNonEmptyArray(t)){const r=new ResourceMap;for(const{resource:s,marker:a}of t){const l=MarkerService._toMarker(e,s,a);if(!l)continue;const d=r.get(s);d?d.push(l):(r.set(s,[l]),i.push(s))}for(const[s,a]of r)this._data.set(s,e,a)}i.length>0&&this._onMarkerChanged.fire(i)}read(e=Object.create(null)){let{owner:t,resource:i,severities:n,take:r}=e;if((!r||r<0)&&(r=-1),t&&i){const s=this._data.get(i,t);if(s){const a=[];for(const l of s)if(MarkerService._accept(l,n)){const d=a.push(l);if(r>0&&d===r)break}return a}else return[]}else if(!t&&!i){const s=[];for(const a of this._data.values())for(const l of a)if(MarkerService._accept(l,n)){const d=s.push(l);if(r>0&&d===r)return s}return s}else{const s=this._data.values(i??t),a=[];for(const l of s)for(const d of l)if(MarkerService._accept(d,n)){const c=a.push(d);if(r>0&&c===r)return a}return a}}static _accept(e,t){return t===void 0||(t&e.severity)===e.severity}static _merge(e){const t=new ResourceMap;for(const i of e)for(const n of i)t.set(n,!0);return Array.from(t.keys())}}class DefaultConfiguration extends Disposable{constructor(){super(...arguments),this._configurationModel=new ConfigurationModel}get configurationModel(){return this._configurationModel}reload(){return this.resetConfigurationModel(),this.configurationModel}getConfigurationDefaultOverrides(){return{}}resetConfigurationModel(){this._configurationModel=new ConfigurationModel;const e=Registry.as(Extensions$6.Configuration).getConfigurationProperties();this.updateConfigurationModel(Object.keys(e),e)}updateConfigurationModel(e,t){const i=this.getConfigurationDefaultOverrides();for(const n of e){const r=i[n],s=t[n];r!==void 0?this._configurationModel.addValue(n,r):s?this._configurationModel.addValue(n,s.default):this._configurationModel.removeValue(n)}}}const IAudioCueService=createDecorator("audioCue");class Sound{static register(e){return new Sound(e.fileName)}constructor(e){this.fileName=e}}Sound.error=Sound.register({fileName:"error.mp3"});Sound.warning=Sound.register({fileName:"warning.mp3"});Sound.foldedArea=Sound.register({fileName:"foldedAreas.mp3"});Sound.break=Sound.register({fileName:"break.mp3"});Sound.quickFixes=Sound.register({fileName:"quickFixes.mp3"});Sound.taskCompleted=Sound.register({fileName:"taskCompleted.mp3"});Sound.taskFailed=Sound.register({fileName:"taskFailed.mp3"});Sound.terminalBell=Sound.register({fileName:"terminalBell.mp3"});Sound.diffLineInserted=Sound.register({fileName:"diffLineInserted.mp3"});Sound.diffLineDeleted=Sound.register({fileName:"diffLineDeleted.mp3"});Sound.diffLineModified=Sound.register({fileName:"diffLineModified.mp3"});Sound.chatRequestSent=Sound.register({fileName:"chatRequestSent.mp3"});Sound.chatResponsePending=Sound.register({fileName:"chatResponsePending.mp3"});Sound.chatResponseReceived1=Sound.register({fileName:"chatResponseReceived1.mp3"});Sound.chatResponseReceived2=Sound.register({fileName:"chatResponseReceived2.mp3"});Sound.chatResponseReceived3=Sound.register({fileName:"chatResponseReceived3.mp3"});Sound.chatResponseReceived4=Sound.register({fileName:"chatResponseReceived4.mp3"});class SoundSource{constructor(e){this.randomOneOf=e}}class AudioCue{static register(e){const t=new SoundSource("randomOneOf"in e.sound?e.sound.randomOneOf:[e.sound]),i=new AudioCue(t,e.name,e.settingsKey);return AudioCue._audioCues.add(i),i}constructor(e,t,i){this.sound=e,this.name=t,this.settingsKey=i}}AudioCue._audioCues=new Set;AudioCue.error=AudioCue.register({name:localize("audioCues.lineHasError.name","Error on Line"),sound:Sound.error,settingsKey:"audioCues.lineHasError"});AudioCue.warning=AudioCue.register({name:localize("audioCues.lineHasWarning.name","Warning on Line"),sound:Sound.warning,settingsKey:"audioCues.lineHasWarning"});AudioCue.foldedArea=AudioCue.register({name:localize("audioCues.lineHasFoldedArea.name","Folded Area on Line"),sound:Sound.foldedArea,settingsKey:"audioCues.lineHasFoldedArea"});AudioCue.break=AudioCue.register({name:localize("audioCues.lineHasBreakpoint.name","Breakpoint on Line"),sound:Sound.break,settingsKey:"audioCues.lineHasBreakpoint"});AudioCue.inlineSuggestion=AudioCue.register({name:localize("audioCues.lineHasInlineSuggestion.name","Inline Suggestion on Line"),sound:Sound.quickFixes,settingsKey:"audioCues.lineHasInlineSuggestion"});AudioCue.terminalQuickFix=AudioCue.register({name:localize("audioCues.terminalQuickFix.name","Terminal Quick Fix"),sound:Sound.quickFixes,settingsKey:"audioCues.terminalQuickFix"});AudioCue.onDebugBreak=AudioCue.register({name:localize("audioCues.onDebugBreak.name","Debugger Stopped on Breakpoint"),sound:Sound.break,settingsKey:"audioCues.onDebugBreak"});AudioCue.noInlayHints=AudioCue.register({name:localize("audioCues.noInlayHints","No Inlay Hints on Line"),sound:Sound.error,settingsKey:"audioCues.noInlayHints"});AudioCue.taskCompleted=AudioCue.register({name:localize("audioCues.taskCompleted","Task Completed"),sound:Sound.taskCompleted,settingsKey:"audioCues.taskCompleted"});AudioCue.taskFailed=AudioCue.register({name:localize("audioCues.taskFailed","Task Failed"),sound:Sound.taskFailed,settingsKey:"audioCues.taskFailed"});AudioCue.terminalCommandFailed=AudioCue.register({name:localize("audioCues.terminalCommandFailed","Terminal Command Failed"),sound:Sound.error,settingsKey:"audioCues.terminalCommandFailed"});AudioCue.terminalBell=AudioCue.register({name:localize("audioCues.terminalBell","Terminal Bell"),sound:Sound.terminalBell,settingsKey:"audioCues.terminalBell"});AudioCue.notebookCellCompleted=AudioCue.register({name:localize("audioCues.notebookCellCompleted","Notebook Cell Completed"),sound:Sound.taskCompleted,settingsKey:"audioCues.notebookCellCompleted"});AudioCue.notebookCellFailed=AudioCue.register({name:localize("audioCues.notebookCellFailed","Notebook Cell Failed"),sound:Sound.taskFailed,settingsKey:"audioCues.notebookCellFailed"});AudioCue.diffLineInserted=AudioCue.register({name:localize("audioCues.diffLineInserted","Diff Line Inserted"),sound:Sound.diffLineInserted,settingsKey:"audioCues.diffLineInserted"});AudioCue.diffLineDeleted=AudioCue.register({name:localize("audioCues.diffLineDeleted","Diff Line Deleted"),sound:Sound.diffLineDeleted,settingsKey:"audioCues.diffLineDeleted"});AudioCue.diffLineModified=AudioCue.register({name:localize("audioCues.diffLineModified","Diff Line Modified"),sound:Sound.diffLineModified,settingsKey:"audioCues.diffLineModified"});AudioCue.chatRequestSent=AudioCue.register({name:localize("audioCues.chatRequestSent","Chat Request Sent"),sound:Sound.chatRequestSent,settingsKey:"audioCues.chatRequestSent"});AudioCue.chatResponseReceived=AudioCue.register({name:localize("audioCues.chatResponseReceived","Chat Response Received"),settingsKey:"audioCues.chatResponseReceived",sound:{randomOneOf:[Sound.chatResponseReceived1,Sound.chatResponseReceived2,Sound.chatResponseReceived3,Sound.chatResponseReceived4]}});AudioCue.chatResponsePending=AudioCue.register({name:localize("audioCues.chatResponsePending","Chat Response Pending"),sound:Sound.chatResponsePending,settingsKey:"audioCues.chatResponsePending"});class LogService extends Disposable{constructor(e,t=[]){super(),this.logger=new MultiplexLogger([e,...t]),this._register(e.onDidChangeLogLevel(i=>this.setLevel(i)))}get onDidChangeLogLevel(){return this.logger.onDidChangeLogLevel}setLevel(e){this.logger.setLevel(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)}warn(e,...t){this.logger.warn(e,...t)}error(e,...t){this.logger.error(e,...t)}}const editorFeatures=[];function registerEditorFeature(o){editorFeatures.push(o)}function getEditorFeatures(){return editorFeatures.slice(0)}var __decorate$1A=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1A=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$1f=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};class SimpleModel{constructor(e){this.disposed=!1,this.model=e,this._onWillDispose=new Emitter$1}get textEditorModel(){return this.model}dispose(){this.disposed=!0,this._onWillDispose.fire()}}let StandaloneTextModelService=class{constructor(e){this.modelService=e}createModelReference(e){const t=this.modelService.getModel(e);return t?Promise.resolve(new ImmortalReference(new SimpleModel(t))):Promise.reject(new Error("Model not found"))}};StandaloneTextModelService=__decorate$1A([__param$1A(0,IModelService)],StandaloneTextModelService);class StandaloneEditorProgressService{show(){return StandaloneEditorProgressService.NULL_PROGRESS_RUNNER}showWhile(e,t){return __awaiter$1f(this,void 0,void 0,function*(){yield e})}}StandaloneEditorProgressService.NULL_PROGRESS_RUNNER={done:()=>{},total:()=>{},worked:()=>{}};class StandaloneProgressService{withProgress(e,t,i){return t({report:()=>{}})}}class StandaloneEnvironmentService{constructor(){this.isExtensionDevelopment=!1,this.isBuilt=!1}}class StandaloneDialogService{confirm(e){return __awaiter$1f(this,void 0,void 0,function*(){return{confirmed:this.doConfirm(e.message,e.detail),checkboxChecked:!1}})}doConfirm(e,t){let i=e;return t&&(i=i+`
- `+t),window.confirm(i)}prompt(e){var t,i;return __awaiter$1f(this,void 0,void 0,function*(){let n;if(this.doConfirm(e.message,e.detail)){const s=[...(t=e.buttons)!==null&&t!==void 0?t:[]];e.cancelButton&&typeof e.cancelButton!="string"&&typeof e.cancelButton!="boolean"&&s.push(e.cancelButton),n=yield(i=s[0])===null||i===void 0?void 0:i.run({checkboxChecked:!1})}return{result:n}})}error(e,t){return __awaiter$1f(this,void 0,void 0,function*(){yield this.prompt({type:Severity$2.Error,message:e,detail:t})})}}class StandaloneNotificationService{info(e){return this.notify({severity:Severity$2.Info,message:e})}warn(e){return this.notify({severity:Severity$2.Warning,message:e})}error(e){return this.notify({severity:Severity$2.Error,message:e})}notify(e){switch(e.severity){case Severity$2.Error:console.error(e.message);break;case Severity$2.Warning:console.warn(e.message);break;default:console.log(e.message);break}return StandaloneNotificationService.NO_OP}prompt(e,t,i,n){return StandaloneNotificationService.NO_OP}status(e,t){return Disposable.None}}StandaloneNotificationService.NO_OP=new NoOpNotification;let StandaloneCommandService=class{constructor(e){this._onWillExecuteCommand=new Emitter$1,this._onDidExecuteCommand=new Emitter$1,this.onDidExecuteCommand=this._onDidExecuteCommand.event,this._instantiationService=e}executeCommand(e,...t){const i=CommandsRegistry.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(n){return Promise.reject(n)}}};StandaloneCommandService=__decorate$1A([__param$1A(0,IInstantiationService)],StandaloneCommandService);let StandaloneKeybindingService=class extends AbstractKeybindingService{constructor(e,t,i,n,r,s){super(e,t,i,n,r),this._cachedResolver=null,this._dynamicKeybindings=[],this._domNodeListeners=[];const a=f=>{const p=new DisposableStore;p.add(addDisposableListener(f,EventType$1.KEY_DOWN,m=>{const b=new StandardKeyboardEvent(m);this._dispatch(b,b.target)&&(b.preventDefault(),b.stopPropagation())})),p.add(addDisposableListener(f,EventType$1.KEY_UP,m=>{const b=new StandardKeyboardEvent(m);this._singleModifierDispatch(b,b.target)&&b.preventDefault()})),this._domNodeListeners.push(new DomNodeListeners(f,p))},l=f=>{for(let p=0;p<this._domNodeListeners.length;p++){const m=this._domNodeListeners[p];m.domNode===f&&(this._domNodeListeners.splice(p,1),m.dispose())}},d=f=>{f.getOption(61)||a(f.getContainerDomNode())},c=f=>{f.getOption(61)||l(f.getContainerDomNode())};this._register(s.onCodeEditorAdd(d)),this._register(s.onCodeEditorRemove(c)),s.listCodeEditors().forEach(d);const u=f=>{a(f.getContainerDomNode())},g=f=>{l(f.getContainerDomNode())};this._register(s.onDiffEditorAdd(u)),this._register(s.onDiffEditorRemove(g)),s.listDiffEditors().forEach(u)}addDynamicKeybinding(e,t,i,n){return combinedDisposable(CommandsRegistry.registerCommand(e,i),this.addDynamicKeybindings([{keybinding:t,command:e,when:n}]))}addDynamicKeybindings(e){const t=e.map(i=>{var n;return{keybinding:decodeKeybinding(i.keybinding,OS),command:(n=i.command)!==null&&n!==void 0?n:null,commandArgs:i.commandArgs,when:i.when,weight1:1e3,weight2:0,extensionId:null,isBuiltinExtension:!1}});return this._dynamicKeybindings=this._dynamicKeybindings.concat(t),this.updateResolver(),toDisposable(()=>{for(let i=0;i<this._dynamicKeybindings.length;i++)if(this._dynamicKeybindings[i]===t[0]){this._dynamicKeybindings.splice(i,t.length),this.updateResolver();return}})}updateResolver(){this._cachedResolver=null,this._onDidUpdateKeybindings.fire()}_getResolver(){if(!this._cachedResolver){const e=this._toNormalizedKeybindingItems(KeybindingsRegistry.getDefaultKeybindings(),!0),t=this._toNormalizedKeybindingItems(this._dynamicKeybindings,!1);this._cachedResolver=new KeybindingResolver(e,t,i=>this._log(i))}return this._cachedResolver}_documentHasFocus(){return document.hasFocus()}_toNormalizedKeybindingItems(e,t){const i=[];let n=0;for(const r of e){const s=r.when||void 0,a=r.keybinding;if(!a)i[n++]=new ResolvedKeybindingItem(void 0,r.command,r.commandArgs,s,t,null,!1);else{const l=USLayoutResolvedKeybinding.resolveKeybinding(a,OS);for(const d of l)i[n++]=new ResolvedKeybindingItem(d,r.command,r.commandArgs,s,t,null,!1)}}return i}resolveKeyboardEvent(e){const t=new KeyCodeChord(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,e.keyCode);return new USLayoutResolvedKeybinding([t],OS)}};StandaloneKeybindingService=__decorate$1A([__param$1A(0,IContextKeyService),__param$1A(1,ICommandService),__param$1A(2,ITelemetryService),__param$1A(3,INotificationService),__param$1A(4,ILogService),__param$1A(5,ICodeEditorService)],StandaloneKeybindingService);class DomNodeListeners extends Disposable{constructor(e,t){super(),this.domNode=e,this._register(t)}}function isConfigurationOverrides(o){return o&&typeof o=="object"&&(!o.overrideIdentifier||typeof o.overrideIdentifier=="string")&&(!o.resource||o.resource instanceof URI)}class StandaloneConfigurationService{constructor(){this._onDidChangeConfiguration=new Emitter$1,this.onDidChangeConfiguration=this._onDidChangeConfiguration.event;const e=new DefaultConfiguration;this._configuration=new Configuration(e.reload(),new ConfigurationModel,new ConfigurationModel,new ConfigurationModel),e.dispose()}getValue(e,t){const i=typeof e=="string"?e:void 0,n=isConfigurationOverrides(e)?e:isConfigurationOverrides(t)?t:{};return this._configuration.getValue(i,n,void 0)}updateValues(e){const t={data:this._configuration.toData()},i=[];for(const n of e){const[r,s]=n;this.getValue(r)!==s&&(this._configuration.updateValue(r,s),i.push(r))}if(i.length>0){const n=new ConfigurationChangeEvent({keys:i,overrides:[]},t,this._configuration);n.source=8,n.sourceConfig=null,this._onDidChangeConfiguration.fire(n)}return Promise.resolve()}updateValue(e,t,i,n){return this.updateValues([[e,t]])}inspect(e,t={}){return this._configuration.inspect(e,t,void 0)}}let StandaloneResourceConfigurationService=class{constructor(e,t,i){this.configurationService=e,this.modelService=t,this.languageService=i,this._onDidChangeConfiguration=new Emitter$1,this.configurationService.onDidChangeConfiguration(n=>{this._onDidChangeConfiguration.fire({affectedKeys:n.affectedKeys,affectsConfiguration:(r,s)=>n.affectsConfiguration(s)})})}getValue(e,t,i){const n=Position$1.isIPosition(t)?t:null,r=n?typeof i=="string"?i:void 0:typeof t=="string"?t:void 0,s=e?this.getLanguage(e,n):void 0;return typeof r>"u"?this.configurationService.getValue({resource:e,overrideIdentifier:s}):this.configurationService.getValue(r,{resource:e,overrideIdentifier:s})}getLanguage(e,t){const i=this.modelService.getModel(e);return i?t?i.getLanguageIdAtPosition(t.lineNumber,t.column):i.getLanguageId():this.languageService.guessLanguageIdByFilepathOrFirstLine(e)}};StandaloneResourceConfigurationService=__decorate$1A([__param$1A(0,IConfigurationService),__param$1A(1,IModelService),__param$1A(2,ILanguageService)],StandaloneResourceConfigurationService);let StandaloneResourcePropertiesService=class{constructor(e){this.configurationService=e}getEOL(e,t){const i=this.configurationService.getValue("files.eol",{overrideIdentifier:t,resource:e});return i&&typeof i=="string"&&i!=="auto"?i:isLinux||isMacintosh?`
- `:`\r
- `}};StandaloneResourcePropertiesService=__decorate$1A([__param$1A(0,IConfigurationService)],StandaloneResourcePropertiesService);class StandaloneTelemetryService{publicLog2(){}}class StandaloneWorkspaceContextService{constructor(){const e=URI.from({scheme:StandaloneWorkspaceContextService.SCHEME,authority:"model",path:"/"});this.workspace={id:STANDALONE_EDITOR_WORKSPACE_ID,folders:[new WorkspaceFolder({uri:e,name:"",index:0})]}}getWorkspace(){return this.workspace}getWorkspaceFolder(e){return e&&e.scheme===StandaloneWorkspaceContextService.SCHEME?this.workspace.folders[0]:null}}StandaloneWorkspaceContextService.SCHEME="inmemory";function updateConfigurationService(o,e,t){if(!e||!(o instanceof StandaloneConfigurationService))return;const i=[];Object.keys(e).forEach(n=>{isEditorConfigurationKey(n)&&i.push([`editor.${n}`,e[n]]),t&&isDiffEditorConfigurationKey(n)&&i.push([`diffEditor.${n}`,e[n]])}),i.length>0&&o.updateValues(i)}let StandaloneBulkEditService=class{constructor(e){this._modelService=e}hasPreviewHandler(){return!1}apply(e,t){return __awaiter$1f(this,void 0,void 0,function*(){const i=Array.isArray(e)?e:ResourceEdit.convert(e),n=new Map;for(const a of i){if(!(a instanceof ResourceTextEdit))throw new Error("bad edit - only text edits are supported");const l=this._modelService.getModel(a.resource);if(!l)throw new Error("bad edit - model not found");if(typeof a.versionId=="number"&&l.getVersionId()!==a.versionId)throw new Error("bad state - model changed in the meantime");let d=n.get(l);d||(d=[],n.set(l,d)),d.push(EditOperation.replaceMove(Range$2.lift(a.textEdit.range),a.textEdit.text))}let r=0,s=0;for(const[a,l]of n)a.pushStackElement(),a.pushEditOperations([],l,()=>[]),a.pushStackElement(),s+=1,r+=l.length;return{ariaSummary:format(StandaloneServicesNLS.bulkEditServiceSummary,r,s),isApplied:r>0}})}};StandaloneBulkEditService=__decorate$1A([__param$1A(0,IModelService)],StandaloneBulkEditService);class StandaloneUriLabelService{getUriLabel(e,t){return e.scheme==="file"?e.fsPath:e.path}getUriBasenameLabel(e){return basename(e)}}let StandaloneContextViewService=class extends ContextViewService{constructor(e,t){super(e),this._codeEditorService=t}showContextView(e,t,i){if(!t){const n=this._codeEditorService.getFocusedCodeEditor()||this._codeEditorService.getActiveCodeEditor();n&&(t=n.getContainerDomNode())}return super.showContextView(e,t,i)}};StandaloneContextViewService=__decorate$1A([__param$1A(0,ILayoutService),__param$1A(1,ICodeEditorService)],StandaloneContextViewService);class StandaloneWorkspaceTrustManagementService{constructor(){this._neverEmitter=new Emitter$1,this.onDidChangeTrust=this._neverEmitter.event}isWorkspaceTrusted(){return!0}}class StandaloneLanguageService extends LanguageService{constructor(){super()}}class StandaloneLogService extends LogService{constructor(){super(new ConsoleLogger)}}let StandaloneContextMenuService=class extends ContextMenuService{constructor(e,t,i,n,r,s){super(e,t,i,n,r,s),this.configure({blockMouse:!1})}};StandaloneContextMenuService=__decorate$1A([__param$1A(0,ITelemetryService),__param$1A(1,INotificationService),__param$1A(2,IContextViewService),__param$1A(3,IKeybindingService),__param$1A(4,IMenuService),__param$1A(5,IContextKeyService)],StandaloneContextMenuService);class StandaloneAudioService{playAudioCue(e,t){return __awaiter$1f(this,void 0,void 0,function*(){})}}registerSingleton(IConfigurationService,StandaloneConfigurationService,0);registerSingleton(ITextResourceConfigurationService,StandaloneResourceConfigurationService,0);registerSingleton(ITextResourcePropertiesService,StandaloneResourcePropertiesService,0);registerSingleton(IWorkspaceContextService,StandaloneWorkspaceContextService,0);registerSingleton(ILabelService,StandaloneUriLabelService,0);registerSingleton(ITelemetryService,StandaloneTelemetryService,0);registerSingleton(IDialogService,StandaloneDialogService,0);registerSingleton(IEnvironmentService,StandaloneEnvironmentService,0);registerSingleton(INotificationService,StandaloneNotificationService,0);registerSingleton(IMarkerService,MarkerService,0);registerSingleton(ILanguageService,StandaloneLanguageService,0);registerSingleton(IStandaloneThemeService,StandaloneThemeService,0);registerSingleton(ILogService,StandaloneLogService,0);registerSingleton(IModelService,ModelService,0);registerSingleton(IMarkerDecorationsService,MarkerDecorationsService,0);registerSingleton(IContextKeyService,ContextKeyService,0);registerSingleton(IProgressService,StandaloneProgressService,0);registerSingleton(IEditorProgressService,StandaloneEditorProgressService,0);registerSingleton(IStorageService,InMemoryStorageService,0);registerSingleton(IEditorWorkerService,EditorWorkerService,0);registerSingleton(IBulkEditService,StandaloneBulkEditService,0);registerSingleton(IWorkspaceTrustManagementService,StandaloneWorkspaceTrustManagementService,0);registerSingleton(ITextModelService,StandaloneTextModelService,0);registerSingleton(IAccessibilityService,AccessibilityService,0);registerSingleton(IListService,ListService,0);registerSingleton(ICommandService,StandaloneCommandService,0);registerSingleton(IKeybindingService,StandaloneKeybindingService,0);registerSingleton(IQuickInputService,StandaloneQuickInputService,0);registerSingleton(IContextViewService,StandaloneContextViewService,0);registerSingleton(IOpenerService,OpenerService,0);registerSingleton(IClipboardService,BrowserClipboardService,0);registerSingleton(IContextMenuService,StandaloneContextMenuService,0);registerSingleton(IMenuService,MenuService,0);registerSingleton(IAudioCueService,StandaloneAudioService,0);var StandaloneServices;(function(o){const e=new ServiceCollection;for(const[l,d]of getSingletonServiceDescriptors())e.set(l,d);const t=new InstantiationService(e,!0);e.set(IInstantiationService,t);function i(l){n||s({});const d=e.get(l);if(!d)throw new Error("Missing service "+l);return d instanceof SyncDescriptor?t.invokeFunction(c=>c.get(l)):d}o.get=i;let n=!1;const r=new Emitter$1;function s(l){if(n)return t;n=!0;for(const[c,u]of getSingletonServiceDescriptors())e.get(c)||e.set(c,u);for(const c in l)if(l.hasOwnProperty(c)){const u=createDecorator(c);e.get(u)instanceof SyncDescriptor&&e.set(u,l[c])}const d=getEditorFeatures();for(const c of d)try{t.createInstance(c)}catch(u){onUnexpectedError(u)}return r.fire(),t}o.initialize=s;function a(l){if(n)return l();const d=new DisposableStore,c=d.add(r.event(()=>{c.dispose(),d.add(l())}));return d}o.withServices=a})(StandaloneServices||(StandaloneServices={}));let globalObservableLogger;function getLogger(){return globalObservableLogger}let _derived;function _setDerivedOpts(o){_derived=o}class ConvenientObservable{get TChange(){return null}reportChanges(){this.get()}read(e){return e?e.readObservable(this):this.get()}map(e,t){const i=t===void 0?void 0:e,n=t===void 0?e:t;return _derived({owner:i,debugName:()=>{const r=getFunctionName(n);if(r!==void 0)return r;const a=/^\s*\(?\s*([a-zA-Z_$][a-zA-Z_$0-9]*)\s*\)?\s*=>\s*\1\.([a-zA-Z_$][a-zA-Z_$0-9]*)\s*$/.exec(n.toString());if(a)return`${this.debugName}.${a[2]}`;if(!i)return`${this.debugName} (mapped)`}},r=>n(this.read(r),r))}}class BaseObservable extends ConvenientObservable{constructor(){super(...arguments),this.observers=new Set}addObserver(e){const t=this.observers.size;this.observers.add(e),t===0&&this.onFirstObserverAdded()}removeObserver(e){this.observers.delete(e)&&this.observers.size===0&&this.onLastObserverRemoved()}onFirstObserverAdded(){}onLastObserverRemoved(){}}function transaction(o,e){const t=new TransactionImpl(o,e);try{o(t)}finally{t.finish()}}function subtransaction(o,e,t){o?e(o):transaction(e,t)}class TransactionImpl{constructor(e,t){var i;this._fn=e,this._getDebugName=t,this.updatingObservers=[],(i=getLogger())===null||i===void 0||i.handleBeginTransaction(this)}getDebugName(){return this._getDebugName?this._getDebugName():getFunctionName(this._fn)}updateObserver(e,t){this.updatingObservers.push({observer:e,observable:t}),e.beginUpdate(t)}finish(){var e;const t=this.updatingObservers;this.updatingObservers=null;for(const{observer:i,observable:n}of t)i.endUpdate(n);(e=getLogger())===null||e===void 0||e.handleEndTransaction()}}function getDebugName(o,e,t,i){let n;if(o!==void 0)if(typeof o=="function"){if(n=o(),n!==void 0)return n}else return o;if(e!==void 0&&(n=getFunctionName(e),n!==void 0))return n;if(t!==void 0){for(const r in t)if(t[r]===i)return r}}function getFunctionName(o){const e=o.toString(),i=/\/\*\*\s*@description\s*([^*]*)\*\//.exec(e),n=i?i[1]:void 0;return n==null?void 0:n.trim()}function observableValue(o,e){return typeof o=="string"?new ObservableValue(void 0,o,e):new ObservableValue(o,void 0,e)}class ObservableValue extends BaseObservable{get debugName(){var e;return(e=getDebugName(this._debugName,void 0,this._owner,this))!==null&&e!==void 0?e:"ObservableValue"}constructor(e,t,i){super(),this._owner=e,this._debugName=t,this._value=i}get(){return this._value}set(e,t,i){var n;if(this._value===e)return;let r;t||(t=r=new TransactionImpl(()=>{},()=>`Setting ${this.debugName}`));try{const s=this._value;this._setValue(e),(n=getLogger())===null||n===void 0||n.handleObservableChanged(this,{oldValue:s,newValue:e,change:i,didChange:!0,hadValue:!0});for(const a of this.observers)t.updateObserver(a,this),a.handleChange(this,i)}finally{r&&r.finish()}}toString(){return`${this.debugName}: ${this._value}`}_setValue(e){this._value=e}}function disposableObservableValue(o,e){return typeof o=="string"?new DisposableObservableValue(void 0,o,e):new DisposableObservableValue(o,void 0,e)}class DisposableObservableValue extends ObservableValue{_setValue(e){this._value!==e&&(this._value&&this._value.dispose(),this._value=e)}dispose(){var e;(e=this._value)===null||e===void 0||e.dispose()}}const defaultEqualityComparer=(o,e)=>o===e;function derived(o,e){return e!==void 0?new Derived(o,void 0,e,void 0,void 0,void 0,defaultEqualityComparer):new Derived(void 0,void 0,o,void 0,void 0,void 0,defaultEqualityComparer)}function derivedOpts(o,e){var t;return new Derived(o.owner,o.debugName,e,void 0,void 0,void 0,(t=o.equalityComparer)!==null&&t!==void 0?t:defaultEqualityComparer)}function derivedHandleChanges(o,e){var t;return new Derived(o.owner,o.debugName,e,o.createEmptyChangeSummary,o.handleChange,void 0,(t=o.equalityComparer)!==null&&t!==void 0?t:defaultEqualityComparer)}function derivedWithStore(o,e){let t,i;e===void 0?(t=o,i=void 0):(i=o,t=e);const n=new DisposableStore;return new Derived(i,()=>{var r;return(r=getFunctionName(t))!==null&&r!==void 0?r:"(anonymous)"},r=>(n.clear(),t(r,n)),void 0,void 0,()=>n.dispose(),defaultEqualityComparer)}_setDerivedOpts(derived);class Derived extends BaseObservable{get debugName(){var e;return(e=getDebugName(this._debugName,this._computeFn,this._owner,this))!==null&&e!==void 0?e:"(anonymous)"}constructor(e,t,i,n,r,s=void 0,a){var l,d;super(),this._owner=e,this._debugName=t,this._computeFn=i,this.createChangeSummary=n,this._handleChange=r,this._handleLastObserverRemoved=s,this._equalityComparator=a,this.state=0,this.value=void 0,this.updateCount=0,this.dependencies=new Set,this.dependenciesToBeRemoved=new Set,this.changeSummary=void 0,this.changeSummary=(l=this.createChangeSummary)===null||l===void 0?void 0:l.call(this),(d=getLogger())===null||d===void 0||d.handleDerivedCreated(this)}onLastObserverRemoved(){var e;this.state=0,this.value=void 0;for(const t of this.dependencies)t.removeObserver(this);this.dependencies.clear(),(e=this._handleLastObserverRemoved)===null||e===void 0||e.call(this)}get(){var e;if(this.observers.size===0){const t=this._computeFn(this,(e=this.createChangeSummary)===null||e===void 0?void 0:e.call(this));return this.onLastObserverRemoved(),t}else{do{if(this.state===1){for(const t of this.dependencies)if(t.reportChanges(),this.state===2)break}this.state===1&&(this.state=3),this._recomputeIfNeeded()}while(this.state!==3);return this.value}}_recomputeIfNeeded(){var e,t;if(this.state===3)return;const i=this.dependenciesToBeRemoved;this.dependenciesToBeRemoved=this.dependencies,this.dependencies=i;const n=this.state!==0,r=this.value;this.state=3;const s=this.changeSummary;this.changeSummary=(e=this.createChangeSummary)===null||e===void 0?void 0:e.call(this);try{this.value=this._computeFn(this,s)}finally{for(const l of this.dependenciesToBeRemoved)l.removeObserver(this);this.dependenciesToBeRemoved.clear()}const a=n&&!this._equalityComparator(r,this.value);if((t=getLogger())===null||t===void 0||t.handleDerivedRecomputed(this,{oldValue:r,newValue:this.value,change:void 0,didChange:a,hadValue:n}),a)for(const l of this.observers)l.handleChange(this,void 0)}toString(){return`LazyDerived<${this.debugName}>`}beginUpdate(e){this.updateCount++;const t=this.updateCount===1;if(this.state===3&&(this.state=1,!t))for(const i of this.observers)i.handlePossibleChange(this);if(t)for(const i of this.observers)i.beginUpdate(this)}endUpdate(e){if(this.updateCount--,this.updateCount===0){const t=[...this.observers];for(const i of t)i.endUpdate(this)}if(this.updateCount<0)throw new BugIndicatingError}handlePossibleChange(e){if(this.state===3&&this.dependencies.has(e)&&!this.dependenciesToBeRemoved.has(e)){this.state=1;for(const t of this.observers)t.handlePossibleChange(this)}}handleChange(e,t){if(this.dependencies.has(e)&&!this.dependenciesToBeRemoved.has(e)){const i=this._handleChange?this._handleChange({changedObservable:e,change:t,didChange:r=>r===e},this.changeSummary):!0,n=this.state===3;if(i&&(this.state===1||n)&&(this.state=2,n))for(const r of this.observers)r.handlePossibleChange(this)}}readObservable(e){e.addObserver(this);const t=e.get();return this.dependencies.add(e),this.dependenciesToBeRemoved.delete(e),t}addObserver(e){const t=!this.observers.has(e)&&this.updateCount>0;super.addObserver(e),t&&e.beginUpdate(this)}removeObserver(e){const t=this.observers.has(e)&&this.updateCount>0;super.removeObserver(e),t&&e.endUpdate(this)}}function autorunOpts(o,e){return new AutorunObserver(o.debugName,e,void 0,void 0)}function autorun(o){return new AutorunObserver(void 0,o,void 0,void 0)}function autorunHandleChanges(o,e){return new AutorunObserver(o.debugName,e,o.createEmptyChangeSummary,o.handleChange)}function autorunWithStore(o){const e=new DisposableStore,t=autorunOpts({debugName:()=>getFunctionName(o)||"(anonymous)"},i=>{e.clear(),o(i,e)});return toDisposable(()=>{t.dispose(),e.dispose()})}class AutorunObserver{get debugName(){if(typeof this._debugName=="string")return this._debugName;if(typeof this._debugName=="function"){const t=this._debugName();if(t!==void 0)return t}const e=getFunctionName(this._runFn);return e!==void 0?e:"(anonymous)"}constructor(e,t,i,n){var r,s;this._debugName=e,this._runFn=t,this.createChangeSummary=i,this._handleChange=n,this.state=2,this.updateCount=0,this.disposed=!1,this.dependencies=new Set,this.dependenciesToBeRemoved=new Set,this.changeSummary=(r=this.createChangeSummary)===null||r===void 0?void 0:r.call(this),(s=getLogger())===null||s===void 0||s.handleAutorunCreated(this),this._runIfNeeded()}dispose(){this.disposed=!0;for(const e of this.dependencies)e.removeObserver(this);this.dependencies.clear()}_runIfNeeded(){var e,t,i;if(this.state===3)return;const n=this.dependenciesToBeRemoved;this.dependenciesToBeRemoved=this.dependencies,this.dependencies=n,this.state=3;try{if(!this.disposed){(e=getLogger())===null||e===void 0||e.handleAutorunTriggered(this);const r=this.changeSummary;this.changeSummary=(t=this.createChangeSummary)===null||t===void 0?void 0:t.call(this),this._runFn(this,r)}}finally{(i=getLogger())===null||i===void 0||i.handleAutorunFinished(this);for(const r of this.dependenciesToBeRemoved)r.removeObserver(this);this.dependenciesToBeRemoved.clear()}}toString(){return`Autorun<${this.debugName}>`}beginUpdate(){this.state===3&&(this.state=1),this.updateCount++}endUpdate(){if(this.updateCount===1)do{if(this.state===1){this.state=3;for(const e of this.dependencies)if(e.reportChanges(),this.state===2)break}this._runIfNeeded()}while(this.state!==3);this.updateCount--,assertFn(()=>this.updateCount>=0)}handlePossibleChange(e){this.state===3&&this.dependencies.has(e)&&!this.dependenciesToBeRemoved.has(e)&&(this.state=1)}handleChange(e,t){this.dependencies.has(e)&&!this.dependenciesToBeRemoved.has(e)&&(!this._handleChange||this._handleChange({changedObservable:e,change:t,didChange:n=>n===e},this.changeSummary))&&(this.state=2)}readObservable(e){if(this.disposed)return e.get();e.addObserver(this);const t=e.get();return this.dependencies.add(e),this.dependenciesToBeRemoved.delete(e),t}}(function(o){o.Observer=AutorunObserver})(autorun||(autorun={}));function constObservable(o){return new ConstObservable(o)}class ConstObservable extends ConvenientObservable{constructor(e){super(),this.value=e}get debugName(){return this.toString()}get(){return this.value}addObserver(e){}removeObserver(e){}toString(){return`Const: ${this.value}`}}function waitForState(o,e){return new Promise(t=>{let i=!1,n=!1;const r=autorun(s=>{const a=o.read(s);e(a)&&(i?r.dispose():n=!0,t(a))});i=!0,n&&r.dispose()})}function observableFromEvent(o,e){return new FromEventObservable(o,e)}class FromEventObservable extends BaseObservable{constructor(e,t){super(),this.event=e,this._getValue=t,this.hasValue=!1,this.handleEvent=i=>{var n;const r=this._getValue(i),s=!this.hasValue||this.value!==r;(n=getLogger())===null||n===void 0||n.handleFromEventObservableTriggered(this,{oldValue:this.value,newValue:r,change:void 0,didChange:s,hadValue:this.hasValue}),s&&(this.value=r,this.hasValue&&transaction(a=>{for(const l of this.observers)a.updateObserver(l,this),l.handleChange(this,void 0)},()=>{const a=this.getDebugName();return"Event fired"+(a?`: ${a}`:"")}),this.hasValue=!0)}}getDebugName(){return getFunctionName(this._getValue)}get debugName(){const e=this.getDebugName();return"From Event"+(e?`: ${e}`:"")}onFirstObserverAdded(){this.subscription=this.event(this.handleEvent)}onLastObserverRemoved(){this.subscription.dispose(),this.subscription=void 0,this.hasValue=!1,this.value=void 0}get(){return this.subscription?(this.hasValue||this.handleEvent(void 0),this.value):this._getValue(void 0)}}(function(o){o.Observer=FromEventObservable})(observableFromEvent||(observableFromEvent={}));function observableSignalFromEvent(o,e){return new FromEventObservableSignal(o,e)}class FromEventObservableSignal extends BaseObservable{constructor(e,t){super(),this.debugName=e,this.event=t,this.handleEvent=()=>{transaction(i=>{for(const n of this.observers)i.updateObserver(n,this),n.handleChange(this,void 0)},()=>this.debugName)}}onFirstObserverAdded(){this.subscription=this.event(this.handleEvent)}onLastObserverRemoved(){this.subscription.dispose(),this.subscription=void 0}get(){}}function observableSignal(o){return typeof o=="string"?new ObservableSignal(o):new ObservableSignal(void 0,o)}class ObservableSignal extends BaseObservable{get debugName(){var e;return(e=getDebugName(this._debugName,void 0,this._owner,this))!==null&&e!==void 0?e:"Observable Signal"}constructor(e,t){super(),this._debugName=e,this._owner=t}trigger(e,t){if(!e){transaction(i=>{this.trigger(i,t)},()=>`Trigger signal ${this.debugName}`);return}for(const i of this.observers)e.updateObserver(i,this),i.handleChange(this,t)}get(){}}function recomputeInitiallyAndOnChange(o){const e=new KeepAliveObserver(!0);return o.addObserver(e),o.reportChanges(),toDisposable(()=>{o.removeObserver(e)})}class KeepAliveObserver{constructor(e){this.forceRecompute=e,this.counter=0}beginUpdate(e){this.counter++}endUpdate(e){this.counter--,this.counter===0&&this.forceRecompute&&e.reportChanges()}handlePossibleChange(e){}handleChange(e,t){}}function isHotReloadEnabled(){return!!env.VSCODE_DEV}function registerHotReloadHandler(o){if(isHotReloadEnabled()){const e=registerGlobalHotReloadHandler();return e.add(o),{dispose(){e.delete(o)}}}else return{dispose(){}}}function registerGlobalHotReloadHandler(){hotReloadHandlers||(hotReloadHandlers=new Set);const o=globalThis;return o.$hotReload_applyNewExports||(o.$hotReload_applyNewExports=e=>{for(const t of hotReloadHandlers){const i=t(e);if(i)return i}}),hotReloadHandlers}let hotReloadHandlers;function joinCombine(o,e,t,i){if(o.length===0)return e;if(e.length===0)return o;const n=[];let r=0,s=0;for(;r<o.length&&s<e.length;){const a=o[r],l=e[s],d=t(a),c=t(l);d<c?(n.push(a),r++):d>c?(n.push(l),s++):(n.push(i(a,l)),r++,s++)}for(;r<o.length;)n.push(o[r]),r++;for(;s<e.length;)n.push(e[s]),s++;return n}function applyObservableDecorations$1(o,e){const t=new DisposableStore,i=o.createDecorationsCollection();return t.add(autorunOpts({debugName:()=>`Apply decorations from ${e.debugName}`},n=>{const r=e.read(n);i.set(r)})),t.add({dispose:()=>{i.clear()}}),t}function appendRemoveOnDispose(o,e){return o.appendChild(e),toDisposable(()=>{o.removeChild(e)})}class ObservableElementSizeObserver extends Disposable{get width(){return this._width}get height(){return this._height}constructor(e,t){super(),this.elementSizeObserver=this._register(new ElementSizeObserver(e,t)),this._width=observableValue(this,this.elementSizeObserver.getWidth()),this._height=observableValue(this,this.elementSizeObserver.getHeight()),this._register(this.elementSizeObserver.onDidChange(i=>transaction(n=>{this._width.set(this.elementSizeObserver.getWidth(),n),this._height.set(this.elementSizeObserver.getHeight(),n)})))}observe(e){this.elementSizeObserver.observe(e)}setAutomaticLayout(e){e?this.elementSizeObserver.startObserving():this.elementSizeObserver.stopObserving()}}function animatedObservable(o,e){let t=o.get(),i=t,n=t;const r=observableValue("animatedValue",t);let s=-1;const a=300;let l;e.add(autorunHandleChanges({createEmptyChangeSummary:()=>({animate:!1}),handleChange:(c,u)=>(c.didChange(o)&&(u.animate=u.animate||c.change),!0)},(c,u)=>{l!==void 0&&(cancelAnimationFrame(l),l=void 0),i=n,t=o.read(c),s=Date.now()-(u.animate?0:a),d()}));function d(){const c=Date.now()-s;n=Math.floor(easeOutExpo(c,i,t-i,a)),c<a?l=requestAnimationFrame(d):n=t,r.set(n,void 0)}return r}function easeOutExpo(o,e,t,i){return o===i?e+t:t*(-Math.pow(2,-10*o/i)+1)+e}class ViewZoneOverlayWidget extends Disposable{constructor(e,t,i){super(),this._register(new ManagedOverlayWidget(e,i)),this._register(applyStyle(i,{height:t.actualHeight,top:t.actualTop}))}}class PlaceholderViewZone{get afterLineNumber(){return this._afterLineNumber.get()}constructor(e,t){this._afterLineNumber=e,this.heightInPx=t,this.domNode=document.createElement("div"),this._actualTop=observableValue(this,void 0),this._actualHeight=observableValue(this,void 0),this.actualTop=this._actualTop,this.actualHeight=this._actualHeight,this.showInHiddenAreas=!0,this.onChange=this._afterLineNumber,this.onDomNodeTop=i=>{this._actualTop.set(i,void 0)},this.onComputedHeight=i=>{this._actualHeight.set(i,void 0)}}}class ManagedOverlayWidget{constructor(e,t){this._editor=e,this._domElement=t,this._overlayWidgetId=`managedOverlayWidget-${ManagedOverlayWidget._counter++}`,this._overlayWidget={getId:()=>this._overlayWidgetId,getDomNode:()=>this._domElement,getPosition:()=>null},this._editor.addOverlayWidget(this._overlayWidget)}dispose(){this._editor.removeOverlayWidget(this._overlayWidget)}}ManagedOverlayWidget._counter=0;function applyStyle(o,e){return autorun(t=>{for(let[i,n]of Object.entries(e))n&&typeof n=="object"&&"read"in n&&(n=n.read(t)),typeof n=="number"&&(n=`${n}px`),i=i.replace(/[A-Z]/g,r=>"-"+r.toLowerCase()),o.style[i]=n})}function readHotReloadableExport(o,e){return observeHotReloadableExports([o],e),o}function observeHotReloadableExports(o,e){isHotReloadEnabled()&&observableSignalFromEvent("reload",i=>registerHotReloadHandler(n=>{if([...Object.values(n)].some(r=>o.includes(r)))return r=>(i(void 0),!0)})).read(e)}function applyViewZones(o,e,t){const i=new DisposableStore,n=[];return i.add(autorun(r=>{const s=e.read(r),a=new Map,l=new Map;t&&t(!0),o.changeViewZones(d=>{for(const c of n)d.removeZone(c);n.length=0;for(const c of s){const u=d.addZone(c);n.push(u),a.set(c,u)}}),t&&t(!1),i.add(autorunHandleChanges({createEmptyChangeSummary(){return[]},handleChange(d,c){const u=l.get(d.changedObservable);return u!==void 0&&c.push(u),!0}},(d,c)=>{for(const u of s)u.onChange&&(l.set(u.onChange,a.get(u)),u.onChange.read(d));t&&t(!0),o.changeViewZones(u=>{for(const g of c)u.layoutZone(g)}),t&&t(!1)}))})),i.add({dispose(){t&&t(!0),o.changeViewZones(r=>{for(const s of n)r.removeZone(s)}),t&&t(!1)}}),i}class DisposableCancellationTokenSource extends CancellationTokenSource$1{dispose(){super.dispose(!0)}}var __decorate$1z=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1z=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$1e=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};const accessibleDiffViewerInsertIcon=registerIcon("diff-review-insert",Codicon.add,localize("accessibleDiffViewerInsertIcon","Icon for 'Insert' in accessible diff viewer.")),accessibleDiffViewerRemoveIcon=registerIcon("diff-review-remove",Codicon.remove,localize("accessibleDiffViewerRemoveIcon","Icon for 'Remove' in accessible diff viewer.")),accessibleDiffViewerCloseIcon=registerIcon("diff-review-close",Codicon.close,localize("accessibleDiffViewerCloseIcon","Icon for 'Close' in accessible diff viewer."));let AccessibleDiffViewer=class extends Disposable{constructor(e,t,i,n,r,s,a,l,d){super(),this._parentNode=e,this._visible=t,this._setVisible=i,this._canClose=n,this._width=r,this._height=s,this._diffs=a,this._editors=l,this._instantiationService=d,this.model=derivedWithStore(this,(c,u)=>{const g=this._visible.read(c);if(this._parentNode.style.visibility=g?"visible":"hidden",!g)return null;const f=u.add(this._instantiationService.createInstance(ViewModel,this._diffs,this._editors,this._setVisible,this._canClose)),p=u.add(this._instantiationService.createInstance(View,this._parentNode,f,this._width,this._height,this._editors));return{model:f,view:p}}),this._register(recomputeInitiallyAndOnChange(this.model))}next(){transaction(e=>{const t=this._visible.get();this._setVisible(!0,e),t&&this.model.get().model.nextGroup(e)})}prev(){transaction(e=>{this._setVisible(!0,e),this.model.get().model.previousGroup(e)})}close(){transaction(e=>{this._setVisible(!1,e)})}};AccessibleDiffViewer._ttPolicy=createTrustedTypesPolicy("diffReview",{createHTML:o=>o});AccessibleDiffViewer=__decorate$1z([__param$1z(8,IInstantiationService)],AccessibleDiffViewer);let ViewModel=class extends Disposable{constructor(e,t,i,n,r){super(),this._diffs=e,this._editors=t,this._setVisible=i,this.canClose=n,this._audioCueService=r,this._groups=observableValue(this,[]),this._currentGroupIdx=observableValue(this,0),this._currentElementIdx=observableValue(this,0),this.groups=this._groups,this.currentGroup=this._currentGroupIdx.map((s,a)=>this._groups.read(a)[s]),this.currentGroupIndex=this._currentGroupIdx,this.currentElement=this._currentElementIdx.map((s,a)=>{var l;return(l=this.currentGroup.read(a))===null||l===void 0?void 0:l.lines[s]}),this._register(autorun(s=>{const a=this._diffs.read(s);if(!a){this._groups.set([],void 0);return}const l=computeViewElementGroups(a,this._editors.original.getModel().getLineCount(),this._editors.modified.getModel().getLineCount());transaction(d=>{const c=this._editors.modified.getPosition();if(c){const u=l.findIndex(g=>(c==null?void 0:c.lineNumber)<g.range.modified.endLineNumberExclusive);u!==-1&&this._currentGroupIdx.set(u,d)}this._groups.set(l,d)})})),this._register(autorun(s=>{const a=this.currentElement.read(s);(a==null?void 0:a.type)===LineType.Deleted?this._audioCueService.playAudioCue(AudioCue.diffLineDeleted,{source:"accessibleDiffViewer.currentElementChanged"}):(a==null?void 0:a.type)===LineType.Added&&this._audioCueService.playAudioCue(AudioCue.diffLineInserted,{source:"accessibleDiffViewer.currentElementChanged"})})),this._register(autorun(s=>{var a;const l=this.currentElement.read(s);if(l&&l.type!==LineType.Header){const d=(a=l.modifiedLineNumber)!==null&&a!==void 0?a:l.diff.modified.startLineNumber;this._editors.modified.setSelection(Range$2.fromPositions(new Position$1(d,1)))}}))}_goToGroupDelta(e,t){const i=this.groups.get();!i||i.length<=1||subtransaction(t,n=>{this._currentGroupIdx.set(OffsetRange.ofLength(i.length).clipCyclic(this._currentGroupIdx.get()+e),n),this._currentElementIdx.set(0,n)})}nextGroup(e){this._goToGroupDelta(1,e)}previousGroup(e){this._goToGroupDelta(-1,e)}_goToLineDelta(e){const t=this.currentGroup.get();!t||t.lines.length<=1||transaction(i=>{this._currentElementIdx.set(OffsetRange.ofLength(t.lines.length).clip(this._currentElementIdx.get()+e),i)})}goToNextLine(){this._goToLineDelta(1)}goToPreviousLine(){this._goToLineDelta(-1)}goToLine(e){const t=this.currentGroup.get();if(!t)return;const i=t.lines.indexOf(e);i!==-1&&transaction(n=>{this._currentElementIdx.set(i,n)})}revealCurrentElementInEditor(){this._setVisible(!1,void 0);const e=this.currentElement.get();e&&(e.type===LineType.Deleted?(this._editors.original.setSelection(Range$2.fromPositions(new Position$1(e.originalLineNumber,1))),this._editors.original.revealLine(e.originalLineNumber),this._editors.original.focus()):(e.type!==LineType.Header&&(this._editors.modified.setSelection(Range$2.fromPositions(new Position$1(e.modifiedLineNumber,1))),this._editors.modified.revealLine(e.modifiedLineNumber)),this._editors.modified.focus()))}close(){this._setVisible(!1,void 0),this._editors.modified.focus()}};ViewModel=__decorate$1z([__param$1z(4,IAudioCueService)],ViewModel);const viewElementGroupLineMargin=3;function computeViewElementGroups(o,e,t){const i=[];for(const n of groupAdjacentBy(o,(r,s)=>s.modified.startLineNumber-r.modified.endLineNumberExclusive<2*viewElementGroupLineMargin)){const r=[];r.push(new HeaderViewElement);const s=new LineRange$1(Math.max(1,n[0].original.startLineNumber-viewElementGroupLineMargin),Math.min(n[n.length-1].original.endLineNumberExclusive+viewElementGroupLineMargin,e+1)),a=new LineRange$1(Math.max(1,n[0].modified.startLineNumber-viewElementGroupLineMargin),Math.min(n[n.length-1].modified.endLineNumberExclusive+viewElementGroupLineMargin,t+1));forEachAdjacent(n,(c,u)=>{const g=new LineRange$1(c?c.original.endLineNumberExclusive:s.startLineNumber,u?u.original.startLineNumber:s.endLineNumberExclusive),f=new LineRange$1(c?c.modified.endLineNumberExclusive:a.startLineNumber,u?u.modified.startLineNumber:a.endLineNumberExclusive);g.forEach(p=>{r.push(new UnchangedLineViewElement(p,f.startLineNumber+(p-g.startLineNumber)))}),u&&(u.original.forEach(p=>{r.push(new DeletedLineViewElement(u,p))}),u.modified.forEach(p=>{r.push(new AddedLineViewElement(u,p))}))});const l=n[0].modified.join(n[n.length-1].modified),d=n[0].original.join(n[n.length-1].original);i.push(new ViewElementGroup(new LineRangeMapping(l,d),r))}return i}var LineType;(function(o){o[o.Header=0]="Header",o[o.Unchanged=1]="Unchanged",o[o.Deleted=2]="Deleted",o[o.Added=3]="Added"})(LineType||(LineType={}));class ViewElementGroup{constructor(e,t){this.range=e,this.lines=t}}class HeaderViewElement{constructor(){this.type=LineType.Header}}class DeletedLineViewElement{constructor(e,t){this.diff=e,this.originalLineNumber=t,this.type=LineType.Deleted,this.modifiedLineNumber=void 0}}class AddedLineViewElement{constructor(e,t){this.diff=e,this.modifiedLineNumber=t,this.type=LineType.Added,this.originalLineNumber=void 0}}class UnchangedLineViewElement{constructor(e,t){this.originalLineNumber=e,this.modifiedLineNumber=t,this.type=LineType.Unchanged}}let View=class extends Disposable{constructor(e,t,i,n,r,s){super(),this._element=e,this._model=t,this._width=i,this._height=n,this._editors=r,this._languageService=s,this.domNode=this._element,this.domNode.className="diff-review monaco-editor-background";const a=document.createElement("div");a.className="diff-review-actions",this._actionBar=this._register(new ActionBar(a)),this._register(autorun(l=>{this._actionBar.clear(),this._model.canClose.read(l)&&this._actionBar.push(new Action("diffreview.close",localize("label.close","Close"),"close-diff-review "+ThemeIcon.asClassName(accessibleDiffViewerCloseIcon),!0,()=>__awaiter$1e(this,void 0,void 0,function*(){return t.close()})),{label:!1,icon:!0})})),this._content=document.createElement("div"),this._content.className="diff-review-content",this._content.setAttribute("role","code"),this._scrollbar=this._register(new DomScrollableElement(this._content,{})),reset(this.domNode,this._scrollbar.getDomNode(),a),this._register(toDisposable(()=>{reset(this.domNode)})),this._register(applyStyle(this.domNode,{width:this._width,height:this._height})),this._register(applyStyle(this._content,{width:this._width,height:this._height})),this._register(autorunWithStore((l,d)=>{this._model.currentGroup.read(l),this._render(d)})),this._register(addStandardDisposableListener(this.domNode,"keydown",l=>{(l.equals(18)||l.equals(2066)||l.equals(530))&&(l.preventDefault(),this._model.goToNextLine()),(l.equals(16)||l.equals(2064)||l.equals(528))&&(l.preventDefault(),this._model.goToPreviousLine()),(l.equals(9)||l.equals(2057)||l.equals(521)||l.equals(1033))&&(l.preventDefault(),this._model.close()),(l.equals(10)||l.equals(3))&&(l.preventDefault(),this._model.revealCurrentElementInEditor())}))}_render(e){const t=this._editors.original.getOptions(),i=this._editors.modified.getOptions(),n=document.createElement("div");n.className="diff-review-table",n.setAttribute("role","list"),n.setAttribute("aria-label",localize("ariaLabel","Accessible Diff Viewer. Use arrow up and down to navigate.")),applyFontInfo(n,i.get(50)),reset(this._content,n);const r=this._editors.original.getModel(),s=this._editors.modified.getModel();if(!r||!s)return;const a=r.getOptions(),l=s.getOptions(),d=i.get(66),c=this._model.currentGroup.get();for(const u of(c==null?void 0:c.lines)||[]){if(!c)break;let g;if(u.type===LineType.Header){const p=document.createElement("div");p.className="diff-review-row",p.setAttribute("role","listitem");const m=c.range,b=this._model.currentGroupIndex.get(),_=this._model.groups.get().length,C=x=>x===0?localize("no_lines_changed","no lines changed"):x===1?localize("one_line_changed","1 line changed"):localize("more_lines_changed","{0} lines changed",x),S=C(m.original.length),y=C(m.modified.length);p.setAttribute("aria-label",localize({},"Difference {0} of {1}: original line {2}, {3}, modified line {4}, {5}",b+1,_,m.original.startLineNumber,S,m.modified.startLineNumber,y));const E=document.createElement("div");E.className="diff-review-cell diff-review-summary",E.appendChild(document.createTextNode(`${b+1}/${_}: @@ -${m.original.startLineNumber},${m.original.length} +${m.modified.startLineNumber},${m.modified.length} @@`)),p.appendChild(E),g=p}else g=this._createRow(u,d,this._width.get(),t,r,a,i,s,l);n.appendChild(g);const f=derived(p=>this._model.currentElement.read(p)===u);e.add(autorun(p=>{const m=f.read(p);g.tabIndex=m?0:-1,m&&g.focus()})),e.add(addDisposableListener(g,"focus",()=>{this._model.goToLine(u)}))}this._scrollbar.scanDomNode()}_createRow(e,t,i,n,r,s,a,l,d){const c=n.get(143),u=c.glyphMarginWidth+c.lineNumbersWidth,g=a.get(143),f=10+g.glyphMarginWidth+g.lineNumbersWidth;let p="diff-review-row",m="";const b="diff-review-spacer";let _=null;switch(e.type){case LineType.Added:p="diff-review-row line-insert",m=" char-insert",_=accessibleDiffViewerInsertIcon;break;case LineType.Deleted:p="diff-review-row line-delete",m=" char-delete",_=accessibleDiffViewerRemoveIcon;break}const C=document.createElement("div");C.style.minWidth=i+"px",C.className=p,C.setAttribute("role","listitem"),C.ariaLevel="";const S=document.createElement("div");S.className="diff-review-cell",S.style.height=`${t}px`,C.appendChild(S);const y=document.createElement("span");y.style.width=u+"px",y.style.minWidth=u+"px",y.className="diff-review-line-number"+m,e.originalLineNumber!==void 0?y.appendChild(document.createTextNode(String(e.originalLineNumber))):y.innerText=" ",S.appendChild(y);const E=document.createElement("span");E.style.width=f+"px",E.style.minWidth=f+"px",E.style.paddingRight="10px",E.className="diff-review-line-number"+m,e.modifiedLineNumber!==void 0?E.appendChild(document.createTextNode(String(e.modifiedLineNumber))):E.innerText=" ",S.appendChild(E);const x=document.createElement("span");if(x.className=b,_){const D=document.createElement("span");D.className=ThemeIcon.asClassName(_),D.innerText=" ",x.appendChild(D)}else x.innerText=" ";S.appendChild(x);let L;if(e.modifiedLineNumber!==void 0){let D=this._getLineHtml(l,a,d.tabSize,e.modifiedLineNumber,this._languageService.languageIdCodec);AccessibleDiffViewer._ttPolicy&&(D=AccessibleDiffViewer._ttPolicy.createHTML(D)),S.insertAdjacentHTML("beforeend",D),L=l.getLineContent(e.modifiedLineNumber)}else{let D=this._getLineHtml(r,n,s.tabSize,e.originalLineNumber,this._languageService.languageIdCodec);AccessibleDiffViewer._ttPolicy&&(D=AccessibleDiffViewer._ttPolicy.createHTML(D)),S.insertAdjacentHTML("beforeend",D),L=r.getLineContent(e.originalLineNumber)}L.length===0&&(L=localize("blankLine","blank"));let I="";switch(e.type){case LineType.Unchanged:e.originalLineNumber===e.modifiedLineNumber?I=localize({},"{0} unchanged line {1}",L,e.originalLineNumber):I=localize("equalLine","{0} original line {1} modified line {2}",L,e.originalLineNumber,e.modifiedLineNumber);break;case LineType.Added:I=localize("insertLine","+ {0} modified line {1}",L,e.modifiedLineNumber);break;case LineType.Deleted:I=localize("deleteLine","- {0} original line {1}",L,e.originalLineNumber);break}return C.setAttribute("aria-label",I),C}_getLineHtml(e,t,i,n,r){const s=e.getLineContent(n),a=t.get(50),l=LineTokens.createEmpty(s,r),d=ViewLineRenderingData.isBasicASCII(s,e.mightContainNonBasicASCII()),c=ViewLineRenderingData.containsRTL(s,d,e.mightContainRTL());return renderViewLine2(new RenderLineInput(a.isMonospace&&!t.get(33),a.canUseHalfwidthRightwardsArrow,s,!1,d,c,0,l,[],i,0,a.spaceWidth,a.middotWidth,a.wsmiddotWidth,t.get(116),t.get(98),t.get(93),t.get(51)!==EditorFontLigatures.OFF,null)).html}};View=__decorate$1z([__param$1z(5,ILanguageService)],View);const diffInsertIcon=registerIcon("diff-insert",Codicon.add,localize("diffInsertIcon","Line decoration for inserts in the diff editor.")),diffRemoveIcon=registerIcon("diff-remove",Codicon.remove,localize("diffRemoveIcon","Line decoration for removals in the diff editor.")),diffLineAddDecorationBackgroundWithIndicator=ModelDecorationOptions.register({className:"line-insert",description:"line-insert",isWholeLine:!0,linesDecorationsClassName:"insert-sign "+ThemeIcon.asClassName(diffInsertIcon),marginClassName:"gutter-insert"}),diffLineDeleteDecorationBackgroundWithIndicator=ModelDecorationOptions.register({className:"line-delete",description:"line-delete",isWholeLine:!0,linesDecorationsClassName:"delete-sign "+ThemeIcon.asClassName(diffRemoveIcon),marginClassName:"gutter-delete"}),diffLineAddDecorationBackground=ModelDecorationOptions.register({className:"line-insert",description:"line-insert",isWholeLine:!0,marginClassName:"gutter-insert"}),diffLineDeleteDecorationBackground=ModelDecorationOptions.register({className:"line-delete",description:"line-delete",isWholeLine:!0,marginClassName:"gutter-delete"}),diffAddDecoration=ModelDecorationOptions.register({className:"char-insert",description:"char-insert",shouldFillLineOnLineBreak:!0}),diffWholeLineAddDecoration=ModelDecorationOptions.register({className:"char-insert",description:"char-insert",isWholeLine:!0}),diffAddDecorationEmpty=ModelDecorationOptions.register({className:"char-insert diff-range-empty",description:"char-insert diff-range-empty"}),diffDeleteDecoration=ModelDecorationOptions.register({className:"char-delete",description:"char-delete",shouldFillLineOnLineBreak:!0}),diffWholeLineDeleteDecoration=ModelDecorationOptions.register({className:"char-delete",description:"char-delete",isWholeLine:!0}),diffDeleteDecorationEmpty=ModelDecorationOptions.register({className:"char-delete diff-range-empty",description:"char-delete diff-range-empty"}),arrowRevertChange=ModelDecorationOptions.register({description:"diff-editor-arrow-revert-change",glyphMarginHoverMessage:new MarkdownString(void 0,{isTrusted:!0,supportThemeIcons:!0}).appendMarkdown(localize("revertChangeHoverMessage","Click to revert change")),glyphMarginClassName:"arrow-revert-change "+ThemeIcon.asClassName(Codicon.arrowRight),zIndex:10001});class MovedBlocksLinesPart extends Disposable{constructor(e,t,i,n,r){super(),this._rootElement=e,this._diffModel=t,this._originalEditorLayoutInfo=i,this._modifiedEditorLayoutInfo=n,this._editors=r,this._originalScrollTop=observableFromEvent(this._editors.original.onDidScrollChange,()=>this._editors.original.getScrollTop()),this._modifiedScrollTop=observableFromEvent(this._editors.modified.onDidScrollChange,()=>this._editors.modified.getScrollTop()),this._viewZonesChanged=observableSignalFromEvent("onDidChangeViewZones",this._editors.modified.onDidChangeViewZones),this.width=observableValue(this,0),this._modifiedViewZonesChangedSignal=observableSignalFromEvent("modified.onDidChangeViewZones",this._editors.modified.onDidChangeViewZones),this._originalViewZonesChangedSignal=observableSignalFromEvent("original.onDidChangeViewZones",this._editors.original.onDidChangeViewZones),this._state=derivedWithStore((g,f)=>{var p;this._element.replaceChildren();const m=this._diffModel.read(g),b=(p=m==null?void 0:m.diff.read(g))===null||p===void 0?void 0:p.movedTexts;if(!b||b.length===0){this.width.set(0,void 0);return}this._viewZonesChanged.read(g);const _=this._originalEditorLayoutInfo.read(g),C=this._modifiedEditorLayoutInfo.read(g);if(!_||!C){this.width.set(0,void 0);return}this._modifiedViewZonesChangedSignal.read(g),this._originalViewZonesChangedSignal.read(g);const S=b.map(N=>{function F(U,z){const J=z.getTopForLineNumber(U.startLineNumber,!0),X=z.getTopForLineNumber(U.endLineNumberExclusive,!0);return(J+X)/2}const R=F(N.lineRangeMapping.original,this._editors.original),M=this._originalScrollTop.read(g),W=F(N.lineRangeMapping.modified,this._editors.modified),V=this._modifiedScrollTop.read(g),A=R-M,P=W-V,k=Math.min(R,W),T=Math.max(R,W);return{range:new OffsetRange(k,T),from:A,to:P,fromWithoutScroll:R,toWithoutScroll:W,move:N}});S.sort(tieBreakComparators(compareBy(N=>N.fromWithoutScroll>N.toWithoutScroll,booleanComparator),compareBy(N=>N.fromWithoutScroll>N.toWithoutScroll?N.fromWithoutScroll:-N.toWithoutScroll,numberComparator)));const y=LinesLayout.compute(S.map(N=>N.range)),E=10,x=_.verticalScrollbarWidth,L=(y.getTrackCount()-1)*10+E*2,I=x+L+(C.contentLeft-MovedBlocksLinesPart.movedCodeBlockPadding);let D=0;for(const N of S){const F=y.getTrack(D),R=x+E+F*10,M=15,W=15,V=I,A=C.glyphMarginWidth+C.lineNumbersWidth,P=18,k=document.createElementNS("http://www.w3.org/2000/svg","rect");k.classList.add("arrow-rectangle"),k.setAttribute("x",`${V-A}`),k.setAttribute("y",`${N.to-P/2}`),k.setAttribute("width",`${A}`),k.setAttribute("height",`${P}`),this._element.appendChild(k);const T=document.createElementNS("http://www.w3.org/2000/svg","g"),U=document.createElementNS("http://www.w3.org/2000/svg","path");U.setAttribute("d",`M 0 ${N.from} L ${R} ${N.from} L ${R} ${N.to} L ${V-W} ${N.to}`),U.setAttribute("fill","none"),T.appendChild(U);const z=document.createElementNS("http://www.w3.org/2000/svg","polygon");z.classList.add("arrow"),f.add(autorun(J=>{U.classList.toggle("currentMove",N.move===m.activeMovedText.read(J)),z.classList.toggle("currentMove",N.move===m.activeMovedText.read(J))})),z.setAttribute("points",`${V-W},${N.to-M/2} ${V},${N.to} ${V-W},${N.to+M/2}`),T.appendChild(z),this._element.appendChild(T),D++}this.width.set(L,void 0)}),this._element=document.createElementNS("http://www.w3.org/2000/svg","svg"),this._element.setAttribute("class","moved-blocks-lines"),this._rootElement.appendChild(this._element),this._register(toDisposable(()=>this._element.remove())),this._register(autorun(g=>{const f=this._originalEditorLayoutInfo.read(g),p=this._modifiedEditorLayoutInfo.read(g);!f||!p||(this._element.style.left=`${f.width-f.verticalScrollbarWidth}px`,this._element.style.height=`${f.height}px`,this._element.style.width=`${f.verticalScrollbarWidth+f.contentLeft-MovedBlocksLinesPart.movedCodeBlockPadding+this.width.read(g)}px`)})),this._register(recomputeInitiallyAndOnChange(this._state));const s=derived(g=>{const f=this._diffModel.read(g),p=f==null?void 0:f.diff.read(g);return p?p.movedTexts.map(m=>({move:m,original:new PlaceholderViewZone(constObservable(m.lineRangeMapping.original.startLineNumber-1),18),modified:new PlaceholderViewZone(constObservable(m.lineRangeMapping.modified.startLineNumber-1),18)})):[]});this._register(applyViewZones(this._editors.original,s.map(g=>g.map(f=>f.original)))),this._register(applyViewZones(this._editors.modified,s.map(g=>g.map(f=>f.modified)))),this._register(autorunWithStore((g,f)=>{const p=s.read(g);for(const m of p)f.add(new MovedBlockOverlayWidget(this._editors.original,m.original,m.move,"original",this._diffModel.get())),f.add(new MovedBlockOverlayWidget(this._editors.modified,m.modified,m.move,"modified",this._diffModel.get()))}));const a=observableFromEvent(this._editors.original.onDidChangeCursorPosition,()=>this._editors.original.getPosition()),l=observableFromEvent(this._editors.modified.onDidChangeCursorPosition,()=>this._editors.modified.getPosition()),d=observableSignalFromEvent("original.onDidFocusEditorWidget",g=>this._editors.original.onDidFocusEditorWidget(()=>setTimeout(()=>g(void 0),0))),c=observableSignalFromEvent("modified.onDidFocusEditorWidget",g=>this._editors.modified.onDidFocusEditorWidget(()=>setTimeout(()=>g(void 0),0)));let u="modified";this._register(autorunHandleChanges({createEmptyChangeSummary:()=>{},handleChange:(g,f)=>(g.didChange(d)&&(u="original"),g.didChange(c)&&(u="modified"),!0)},g=>{d.read(g),c.read(g);const f=this._diffModel.read(g);if(!f)return;const p=f.diff.read(g);let m;if(p&&u==="original"){const b=a.read(g);b&&(m=p.movedTexts.find(_=>_.lineRangeMapping.original.contains(b.lineNumber)))}if(p&&u==="modified"){const b=l.read(g);b&&(m=p.movedTexts.find(_=>_.lineRangeMapping.modified.contains(b.lineNumber)))}m!==f.movedTextToCompare.get()&&f.movedTextToCompare.set(void 0,void 0),f.setActiveMovedText(m)}))}}MovedBlocksLinesPart.movedCodeBlockPadding=4;class LinesLayout{static compute(e){const t=[],i=[];for(const n of e){let r=t.findIndex(s=>!s.intersectsStrict(n));r===-1&&(t.length>=6?r=findMaxIdxBy(t,compareBy(a=>a.intersectWithRangeLength(n),numberComparator)):(r=t.length,t.push(new OffsetRangeSet))),t[r].addRange(n),i.push(r)}return new LinesLayout(t.length,i)}constructor(e,t){this._trackCount=e,this.trackPerLineIdx=t}getTrack(e){return this.trackPerLineIdx[e]}getTrackCount(){return this._trackCount}}class MovedBlockOverlayWidget extends ViewZoneOverlayWidget{constructor(e,t,i,n,r){const s=h("div.diff-hidden-lines-widget");super(e,t,s.root),this._editor=e,this._move=i,this._kind=n,this._diffModel=r,this._nodes=h("div.diff-moved-code-block",{style:{marginRight:"4px"}},[h("div.text-content@textContent"),h("div.action-bar@actionBar")]),s.root.appendChild(this._nodes.root);const a=observableFromEvent(this._editor.onDidLayoutChange,()=>this._editor.getLayoutInfo());this._register(applyStyle(this._nodes.root,{paddingRight:a.map(g=>g.verticalScrollbarWidth)}));let l;i.changes.length>0?l=this._kind==="original"?localize("codeMovedToWithChanges","Code moved with changes to line {0}-{1}",this._move.lineRangeMapping.modified.startLineNumber,this._move.lineRangeMapping.modified.endLineNumberExclusive-1):localize("codeMovedFromWithChanges","Code moved with changes from line {0}-{1}",this._move.lineRangeMapping.original.startLineNumber,this._move.lineRangeMapping.original.endLineNumberExclusive-1):l=this._kind==="original"?localize("codeMovedTo","Code moved to line {0}-{1}",this._move.lineRangeMapping.modified.startLineNumber,this._move.lineRangeMapping.modified.endLineNumberExclusive-1):localize("codeMovedFrom","Code moved from line {0}-{1}",this._move.lineRangeMapping.original.startLineNumber,this._move.lineRangeMapping.original.endLineNumberExclusive-1);const d=this._register(new ActionBar(this._nodes.actionBar,{highlightToggledItems:!0})),c=new Action("",l,"",!1);d.push(c,{icon:!1,label:!0});const u=new Action("","Compare",ThemeIcon.asClassName(Codicon.compareChanges),!0,()=>{this._editor.focus(),this._diffModel.movedTextToCompare.set(this._diffModel.movedTextToCompare.get()===i?void 0:this._move,void 0)});this._register(autorun(g=>{const f=this._diffModel.movedTextToCompare.read(g)===i;u.checked=f})),d.push(u,{icon:!1,label:!0})}}class DiffEditorDecorations extends Disposable{constructor(e,t,i){super(),this._editors=e,this._diffModel=t,this._options=i,this._decorations=derived(this,n=>{var r;const s=(r=this._diffModel.read(n))===null||r===void 0?void 0:r.diff.read(n);if(!s)return null;const a=this._diffModel.read(n).movedTextToCompare.read(n),l=this._options.renderIndicators.read(n),d=this._options.showEmptyDecorations.read(n),c=[],u=[];if(!a)for(const f of s.mappings){if(f.lineRangeMapping.original.isEmpty||c.push({range:f.lineRangeMapping.original.toInclusiveRange(),options:l?diffLineDeleteDecorationBackgroundWithIndicator:diffLineDeleteDecorationBackground}),f.lineRangeMapping.modified.isEmpty||u.push({range:f.lineRangeMapping.modified.toInclusiveRange(),options:l?diffLineAddDecorationBackgroundWithIndicator:diffLineAddDecorationBackground}),f.lineRangeMapping.modified.isEmpty||f.lineRangeMapping.original.isEmpty)f.lineRangeMapping.original.isEmpty||c.push({range:f.lineRangeMapping.original.toInclusiveRange(),options:diffWholeLineDeleteDecoration}),f.lineRangeMapping.modified.isEmpty||u.push({range:f.lineRangeMapping.modified.toInclusiveRange(),options:diffWholeLineAddDecoration});else for(const p of f.lineRangeMapping.innerChanges||[])f.lineRangeMapping.original.contains(p.originalRange.startLineNumber)&&c.push({range:p.originalRange,options:p.originalRange.isEmpty()&&d?diffDeleteDecorationEmpty:diffDeleteDecoration}),f.lineRangeMapping.modified.contains(p.modifiedRange.startLineNumber)&&u.push({range:p.modifiedRange,options:p.modifiedRange.isEmpty()&&d?diffAddDecorationEmpty:diffAddDecoration});!f.lineRangeMapping.modified.isEmpty&&this._options.shouldRenderRevertArrows.read(n)&&!a&&u.push({range:Range$2.fromPositions(new Position$1(f.lineRangeMapping.modified.startLineNumber,1)),options:arrowRevertChange})}if(a)for(const f of a.changes){const p=f.original.toInclusiveRange();p&&c.push({range:p,options:l?diffLineDeleteDecorationBackgroundWithIndicator:diffLineDeleteDecorationBackground});const m=f.modified.toInclusiveRange();m&&u.push({range:m,options:l?diffLineAddDecorationBackgroundWithIndicator:diffLineAddDecorationBackground});for(const b of f.innerChanges||[])c.push({range:b.originalRange,options:diffDeleteDecoration}),u.push({range:b.modifiedRange,options:diffAddDecoration})}const g=this._diffModel.read(n).activeMovedText.read(n);for(const f of s.movedTexts)c.push({range:f.lineRangeMapping.original.toInclusiveRange(),options:{description:"moved",blockClassName:"movedOriginal"+(f===g?" currentMove":""),blockPadding:[MovedBlocksLinesPart.movedCodeBlockPadding,0,MovedBlocksLinesPart.movedCodeBlockPadding,MovedBlocksLinesPart.movedCodeBlockPadding]}}),u.push({range:f.lineRangeMapping.modified.toInclusiveRange(),options:{description:"moved",blockClassName:"movedModified"+(f===g?" currentMove":""),blockPadding:[4,0,4,4]}});return{originalDecorations:c,modifiedDecorations:u}}),this._register(applyObservableDecorations$1(this._editors.original,this._decorations.map(n=>(n==null?void 0:n.originalDecorations)||[]))),this._register(applyObservableDecorations$1(this._editors.modified,this._decorations.map(n=>(n==null?void 0:n.modifiedDecorations)||[])))}}class DiffEditorSash extends Disposable{constructor(e,t,i){super(),this._options=e,this._domNode=t,this._dimensions=i,this._sashRatio=observableValue(this,void 0),this.sashLeft=derived(this,n=>{var r;const s=(r=this._sashRatio.read(n))!==null&&r!==void 0?r:this._options.splitViewDefaultRatio.read(n);return this._computeSashLeft(s,n)}),this._sash=this._register(new Sash(this._domNode,{getVerticalSashTop:n=>0,getVerticalSashLeft:n=>this.sashLeft.get(),getVerticalSashHeight:n=>this._dimensions.height.get()},{orientation:0})),this._startSashPosition=void 0,this._register(this._sash.onDidStart(()=>{this._startSashPosition=this.sashLeft.get()})),this._register(this._sash.onDidChange(n=>{const r=this._dimensions.width.get(),s=this._computeSashLeft((this._startSashPosition+(n.currentX-n.startX))/r,void 0);this._sashRatio.set(s/r,void 0)})),this._register(this._sash.onDidEnd(()=>this._sash.layout())),this._register(this._sash.onDidReset(()=>this._sashRatio.set(void 0,void 0))),this._register(autorun(n=>{const r=this._options.enableSplitViewResizing.read(n);this._sash.state=r?3:0,this.sashLeft.read(n),this._dimensions.height.read(n),this._sash.layout()}))}setBoundarySashes(e){this._sash.orthogonalEndSash=e.bottom}_computeSashLeft(e,t){const i=this._dimensions.width.read(t),n=Math.floor(this._options.splitViewDefaultRatio.read(t)*i),r=this._options.enableSplitViewResizing.read(t)?Math.floor(e*i):n,s=100;return i<=s*2?n:r<s?s:r>i-s?i-s:r}}let TreeElement$1=class{remove(){var e;(e=this.parent)===null||e===void 0||e.children.delete(this.id)}static findId(e,t){let i;typeof e=="string"?i=`${t.id}/${e}`:(i=`${t.id}/${e.name}`,t.children.get(i)!==void 0&&(i=`${t.id}/${e.name}_${e.range.startLineNumber}_${e.range.startColumn}`));let n=i;for(let r=0;t.children.get(n)!==void 0;r++)n=`${i}_${r}`;return n}static empty(e){return e.children.size===0}},OutlineElement$1=class extends TreeElement$1{constructor(e,t,i){super(),this.id=e,this.parent=t,this.symbol=i,this.children=new Map}},OutlineGroup$1=class extends TreeElement$1{constructor(e,t,i,n){super(),this.id=e,this.parent=t,this.label=i,this.order=n,this.children=new Map}},OutlineModel$1=class tt extends TreeElement$1{static create(e,t,i){const n=new CancellationTokenSource$1(i),r=new tt(t.uri),s=e.ordered(t),a=s.map((d,c)=>{var u;const g=TreeElement$1.findId(`provider_${c}`,r),f=new OutlineGroup$1(g,r,(u=d.displayName)!==null&&u!==void 0?u:"Unknown Outline Provider",c);return Promise.resolve(d.provideDocumentSymbols(t,n.token)).then(p=>{for(const m of p||[])tt._makeOutlineElement(m,f);return f},p=>(onUnexpectedExternalError(p),f)).then(p=>{TreeElement$1.empty(p)?p.remove():r._groups.set(g,p)})}),l=e.onDidChange(()=>{const d=e.ordered(t);equals$2(d,s)||n.cancel()});return Promise.all(a).then(()=>n.token.isCancellationRequested&&!i.isCancellationRequested?tt.create(e,t,i):r._compact()).finally(()=>{n.dispose(),l.dispose()})}static _makeOutlineElement(e,t){const i=TreeElement$1.findId(e,t),n=new OutlineElement$1(i,t,e);if(e.children)for(const r of e.children)tt._makeOutlineElement(r,n);t.children.set(n.id,n)}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}_compact(){let e=0;for(const[t,i]of this._groups)i.children.size===0?this._groups.delete(t):e+=1;if(e!==1)this.children=this._groups;else{const t=Iterable.first(this._groups.values());for(const[,i]of t.children)i.parent=this,this.children.set(i.id,i)}return this}getTopLevelSymbols(){const e=[];for(const t of this.children.values())t instanceof OutlineElement$1?e.push(t.symbol):e.push(...Iterable.map(t.children.values(),i=>i.symbol));return e.sort((t,i)=>Range$2.compareRangesUsingStarts(t.range,i.range))}asListOfDocumentSymbols(){const e=this.getTopLevelSymbols(),t=[];return tt._flattenDocumentSymbols(t,e,""),t.sort((i,n)=>Position$1.compare(Range$2.getStartPosition(i.range),Range$2.getStartPosition(n.range))||Position$1.compare(Range$2.getEndPosition(n.range),Range$2.getEndPosition(i.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&&tt._flattenDocumentSymbols(e,n.children,n.name)}};var __decorate$1y=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1y=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$1d=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};let HideUnchangedRegionsFeature=class extends Disposable{get isUpdatingViewZones(){return this._isUpdatingViewZones}constructor(e,t,i,n){super(),this._editors=e,this._diffModel=t,this._options=i,this._languageFeaturesService=n,this._isUpdatingViewZones=!1,this._modifiedOutlineSource=derivedWithStore(this,(d,c)=>{const u=this._editors.modifiedModel.read(d);if(u)return c.add(new OutlineSource(this._languageFeaturesService,u))}),this._register(this._editors.original.onDidChangeCursorPosition(d=>{if(d.reason===3){const c=this._diffModel.get();transaction(u=>{for(const g of this._editors.original.getSelections()||[])c==null||c.ensureOriginalLineIsVisible(g.getStartPosition().lineNumber,u),c==null||c.ensureOriginalLineIsVisible(g.getEndPosition().lineNumber,u)})}})),this._register(this._editors.modified.onDidChangeCursorPosition(d=>{if(d.reason===3){const c=this._diffModel.get();transaction(u=>{for(const g of this._editors.modified.getSelections()||[])c==null||c.ensureModifiedLineIsVisible(g.getStartPosition().lineNumber,u),c==null||c.ensureModifiedLineIsVisible(g.getEndPosition().lineNumber,u)})}}));const r=this._diffModel.map((d,c)=>{var u,g;return((u=d==null?void 0:d.diff.read(c))===null||u===void 0?void 0:u.mappings.length)===0?[]:(g=d==null?void 0:d.unchangedRegions.read(c))!==null&&g!==void 0?g:[]}),s=derivedWithStore(this,(d,c)=>{const u=this._modifiedOutlineSource.read(d);if(!u)return{origViewZones:[],modViewZones:[]};const g=[],f=[],p=this._options.renderSideBySide.read(d),m=r.read(d);for(const b of m)if(!b.shouldHideControls(d)){{const _=derived(S=>b.getHiddenOriginalRange(S).startLineNumber-1),C=new PlaceholderViewZone(_,24);g.push(C),c.add(new CollapsedCodeOverlayWidget(this._editors.original,C,b,b.originalUnchangedRange,!p,u,S=>this._diffModel.get().ensureModifiedLineIsVisible(S,void 0),this._options))}{const _=derived(S=>b.getHiddenModifiedRange(S).startLineNumber-1),C=new PlaceholderViewZone(_,24);f.push(C),c.add(new CollapsedCodeOverlayWidget(this._editors.modified,C,b,b.modifiedUnchangedRange,!1,u,S=>this._diffModel.get().ensureModifiedLineIsVisible(S,void 0),this._options))}}return{origViewZones:g,modViewZones:f}}),a={description:"unchanged lines",className:"diff-unchanged-lines",isWholeLine:!0},l={description:"Fold Unchanged",glyphMarginHoverMessage:new MarkdownString(void 0,{isTrusted:!0,supportThemeIcons:!0}).appendMarkdown(localize("foldUnchanged","Fold Unchanged Region")),glyphMarginClassName:"fold-unchanged "+ThemeIcon.asClassName(Codicon.fold),zIndex:10001};this._register(applyObservableDecorations$1(this._editors.original,derived(d=>{const c=r.read(d),u=c.map(g=>({range:g.originalUnchangedRange.toInclusiveRange(),options:a}));for(const g of c)g.shouldHideControls(d)&&u.push({range:Range$2.fromPositions(new Position$1(g.originalLineNumber,1)),options:l});return u}))),this._register(applyObservableDecorations$1(this._editors.modified,derived(d=>{const c=r.read(d),u=c.map(g=>({range:g.modifiedUnchangedRange.toInclusiveRange(),options:a}));for(const g of c)g.shouldHideControls(d)&&u.push({range:LineRange$1.ofLength(g.modifiedLineNumber,1).toInclusiveRange(),options:l});return u}))),this._register(applyViewZones(this._editors.original,s.map(d=>d.origViewZones),d=>this._isUpdatingViewZones=d)),this._register(applyViewZones(this._editors.modified,s.map(d=>d.modViewZones),d=>this._isUpdatingViewZones=d)),this._register(autorun(d=>{const c=r.read(d);this._editors.original.setHiddenAreas(c.map(u=>u.getHiddenOriginalRange(d).toInclusiveRange()).filter(isDefined)),this._editors.modified.setHiddenAreas(c.map(u=>u.getHiddenModifiedRange(d).toInclusiveRange()).filter(isDefined))})),this._register(this._editors.modified.onMouseUp(d=>{var c;if(!d.event.rightButton&&d.target.position&&(!((c=d.target.element)===null||c===void 0)&&c.className.includes("fold-unchanged"))){const u=d.target.position.lineNumber,g=this._diffModel.get();if(!g)return;const f=g.unchangedRegions.get().find(p=>p.modifiedUnchangedRange.includes(u));if(!f)return;f.collapseAll(void 0),d.event.stopPropagation(),d.event.preventDefault()}})),this._register(this._editors.original.onMouseUp(d=>{var c;if(!d.event.rightButton&&d.target.position&&(!((c=d.target.element)===null||c===void 0)&&c.className.includes("fold-unchanged"))){const u=d.target.position.lineNumber,g=this._diffModel.get();if(!g)return;const f=g.unchangedRegions.get().find(p=>p.originalUnchangedRange.includes(u));if(!f)return;f.collapseAll(void 0),d.event.stopPropagation(),d.event.preventDefault()}}))}};HideUnchangedRegionsFeature=__decorate$1y([__param$1y(3,ILanguageFeaturesService)],HideUnchangedRegionsFeature);let OutlineSource=class extends Disposable{constructor(e,t){super(),this._languageFeaturesService=e,this._textModel=t,this._currentModel=observableValue(this,void 0);const i=observableSignalFromEvent("documentSymbolProvider.onDidChange",this._languageFeaturesService.documentSymbolProvider.onDidChange),n=observableSignalFromEvent("_textModel.onDidChangeContent",Event.debounce(r=>this._textModel.onDidChangeContent(r),()=>{},100));this._register(autorunWithStore((r,s)=>__awaiter$1d(this,void 0,void 0,function*(){i.read(r),n.read(r);const a=s.add(new DisposableCancellationTokenSource),l=yield OutlineModel$1.create(this._languageFeaturesService.documentSymbolProvider,this._textModel,a.token);s.isDisposed||this._currentModel.set(l,void 0)})))}getBreadcrumbItems(e,t){const i=this._currentModel.read(t);if(!i)return[];const n=i.asListOfDocumentSymbols().filter(r=>e.contains(r.range.startLineNumber)&&!e.contains(r.range.endLineNumber));return n.sort(reverseOrder(compareBy(r=>r.range.endLineNumber-r.range.startLineNumber,numberComparator))),n.map(r=>({name:r.name,kind:r.kind,startLineNumber:r.range.startLineNumber}))}};OutlineSource=__decorate$1y([__param$1y(0,ILanguageFeaturesService)],OutlineSource);class CollapsedCodeOverlayWidget extends ViewZoneOverlayWidget{constructor(e,t,i,n,r,s,a,l){const d=h("div.diff-hidden-lines-widget");super(e,t,d.root),this._editor=e,this._unchangedRegion=i,this._unchangedRegionRange=n,this.hide=r,this._modifiedOutlineSource=s,this._revealModifiedHiddenLine=a,this._options=l,this._nodes=h("div.diff-hidden-lines",[h("div.top@top",{title:localize("diff.hiddenLines.top","Click or drag to show more above")}),h("div.center@content",{style:{display:"flex"}},[h("div@first",{style:{display:"flex",justifyContent:"center",alignItems:"center",flexShrink:"0"}},[$$d("a",{title:localize("showAll","Show all"),role:"button",onclick:()=>{this._unchangedRegion.showAll(void 0)}},...renderLabelWithIcons("$(unfold)"))]),h("div@others",{style:{display:"flex",justifyContent:"center",alignItems:"center"}})]),h("div.bottom@bottom",{title:localize("diff.bottom","Click or drag to show more below"),role:"button"})]),d.root.appendChild(this._nodes.root);const c=observableFromEvent(this._editor.onDidLayoutChange,()=>this._editor.getLayoutInfo());this.hide?reset(this._nodes.first):this._register(applyStyle(this._nodes.first,{width:c.map(g=>g.contentLeft)}));const u=this._editor;this._register(addDisposableListener(this._nodes.top,"mousedown",g=>{if(g.button!==0)return;this._nodes.top.classList.toggle("dragging",!0),this._nodes.root.classList.toggle("dragging",!0),g.preventDefault();const f=g.clientY;let p=!1;const m=this._unchangedRegion.visibleLineCountTop.get();this._unchangedRegion.isDragged.set(!0,void 0);const b=addDisposableListener(window,"mousemove",C=>{const y=C.clientY-f;p=p||Math.abs(y)>2;const E=Math.round(y/u.getOption(66)),x=Math.max(0,Math.min(m+E,this._unchangedRegion.getMaxVisibleLineCountTop()));this._unchangedRegion.visibleLineCountTop.set(x,void 0)}),_=addDisposableListener(window,"mouseup",C=>{p||this._unchangedRegion.showMoreAbove(this._options.hideUnchangedRegionsRevealLineCount.get(),void 0),this._nodes.top.classList.toggle("dragging",!1),this._nodes.root.classList.toggle("dragging",!1),this._unchangedRegion.isDragged.set(!1,void 0),b.dispose(),_.dispose()})})),this._register(addDisposableListener(this._nodes.bottom,"mousedown",g=>{if(g.button!==0)return;this._nodes.bottom.classList.toggle("dragging",!0),this._nodes.root.classList.toggle("dragging",!0),g.preventDefault();const f=g.clientY;let p=!1;const m=this._unchangedRegion.visibleLineCountBottom.get();this._unchangedRegion.isDragged.set(!0,void 0);const b=addDisposableListener(window,"mousemove",C=>{const y=C.clientY-f;p=p||Math.abs(y)>2;const E=Math.round(y/u.getOption(66)),x=Math.max(0,Math.min(m-E,this._unchangedRegion.getMaxVisibleLineCountBottom())),L=u.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);this._unchangedRegion.visibleLineCountBottom.set(x,void 0);const I=u.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);u.setScrollTop(u.getScrollTop()+(I-L))}),_=addDisposableListener(window,"mouseup",C=>{if(this._unchangedRegion.isDragged.set(!1,void 0),!p){const S=u.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);this._unchangedRegion.showMoreBelow(this._options.hideUnchangedRegionsRevealLineCount.get(),void 0);const y=u.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);u.setScrollTop(u.getScrollTop()+(y-S))}this._nodes.bottom.classList.toggle("dragging",!1),this._nodes.root.classList.toggle("dragging",!1),b.dispose(),_.dispose()})})),this._register(autorun(g=>{const f=[];if(!this.hide){const p=i.getHiddenModifiedRange(g).length,m=localize("hiddenLines","{0} hidden lines",p),b=$$d("span",{title:localize("diff.hiddenLines.expandAll","Double click to unfold")},m);b.addEventListener("dblclick",S=>{S.button===0&&(S.preventDefault(),this._unchangedRegion.showAll(void 0))}),f.push(b);const _=this._unchangedRegion.getHiddenModifiedRange(g),C=this._modifiedOutlineSource.getBreadcrumbItems(_,g);if(C.length>0){f.push($$d("span",void 0," | "));for(let S=0;S<C.length;S++){const y=C[S],E=SymbolKinds.toIcon(y.kind),x=h("div.breadcrumb-item",{style:{display:"flex",alignItems:"center"}},[renderIcon(E)," ",y.name,...S===C.length-1?[]:[renderIcon(Codicon.chevronRight)]]).root;f.push(x),x.onclick=()=>{this._revealModifiedHiddenLine(y.startLineNumber)}}}}reset(this._nodes.others,...f)}))}}class StableEditorScrollState{static capture(e){if(e.getScrollTop()===0||e.hasPendingScrollAnimation())return new StableEditorScrollState(e.getScrollTop(),e.getContentHeight(),null,0,null);let t=null,i=0;const n=e.getVisibleRanges();if(n.length>0){t=n[0].getStartPosition();const r=e.getTopForPosition(t.lineNumber,t.column);i=e.getScrollTop()-r}return new StableEditorScrollState(e.getScrollTop(),e.getContentHeight(),t,i,e.getPosition())}constructor(e,t,i,n,r){this._initialScrollTop=e,this._initialContentHeight=t,this._visiblePosition=i,this._visiblePositionScrollDelta=n,this._cursorPosition=r}restore(e){if(!(this._initialContentHeight===e.getContentHeight()&&this._initialScrollTop===e.getScrollTop())&&this._visiblePosition){const t=e.getTopForPosition(this._visiblePosition.lineNumber,this._visiblePosition.column);e.setScrollTop(t+this._visiblePositionScrollDelta)}}restoreRelativeVerticalPositionOfCursor(e){if(this._initialContentHeight===e.getContentHeight()&&this._initialScrollTop===e.getScrollTop())return;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)}}var __decorate$1x=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1x=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$1c=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},WorkerBasedDocumentDiffProvider_1;let WorkerBasedDocumentDiffProvider=WorkerBasedDocumentDiffProvider_1=class{constructor(e,t,i){this.editorWorkerService=t,this.telemetryService=i,this.onDidChangeEventEmitter=new Emitter$1,this.onDidChange=this.onDidChangeEventEmitter.event,this.diffAlgorithm="advanced",this.diffAlgorithmOnDidChangeSubscription=void 0,this.setOptions(e)}dispose(){var e;(e=this.diffAlgorithmOnDidChangeSubscription)===null||e===void 0||e.dispose()}computeDiff(e,t,i,n){var r,s;return __awaiter$1c(this,void 0,void 0,function*(){if(typeof this.diffAlgorithm!="string")return this.diffAlgorithm.computeDiff(e,t,i,n);if(e.getLineCount()===1&&e.getLineMaxColumn(1)===1)return t.getLineCount()===1&&t.getLineMaxColumn(1)===1?{changes:[],identical:!0,quitEarly:!1,moves:[]}:{changes:[new DetailedLineRangeMapping(new LineRange$1(1,2),new LineRange$1(1,t.getLineCount()+1),[new RangeMapping(e.getFullModelRange(),t.getFullModelRange())])],identical:!1,quitEarly:!1,moves:[]};const a=JSON.stringify([e.uri.toString(),t.uri.toString()]),l=JSON.stringify([e.id,t.id,e.getAlternativeVersionId(),t.getAlternativeVersionId(),JSON.stringify(i)]),d=WorkerBasedDocumentDiffProvider_1.diffCache.get(a);if(d&&d.context===l)return d.result;const c=StopWatch.create(),u=yield this.editorWorkerService.computeDiff(e.uri,t.uri,i,this.diffAlgorithm),g=c.elapsed();if(this.telemetryService.publicLog2("diffEditor.computeDiff",{timeMs:g,timedOut:(r=u==null?void 0:u.quitEarly)!==null&&r!==void 0?r:!0,detectedMoves:i.computeMoves?(s=u==null?void 0:u.moves.length)!==null&&s!==void 0?s:0:-1}),n.isCancellationRequested)return{changes:[],identical:!1,quitEarly:!0,moves:[]};if(!u)throw new Error("no diff result available");return WorkerBasedDocumentDiffProvider_1.diffCache.size>10&&WorkerBasedDocumentDiffProvider_1.diffCache.delete(WorkerBasedDocumentDiffProvider_1.diffCache.keys().next().value),WorkerBasedDocumentDiffProvider_1.diffCache.set(a,{result:u,context:l}),u})}setOptions(e){var t;let i=!1;e.diffAlgorithm&&this.diffAlgorithm!==e.diffAlgorithm&&((t=this.diffAlgorithmOnDidChangeSubscription)===null||t===void 0||t.dispose(),this.diffAlgorithmOnDidChangeSubscription=void 0,this.diffAlgorithm=e.diffAlgorithm,typeof e.diffAlgorithm!="string"&&(this.diffAlgorithmOnDidChangeSubscription=e.diffAlgorithm.onDidChange(()=>this.onDidChangeEventEmitter.fire())),i=!0),i&&this.onDidChangeEventEmitter.fire()}};WorkerBasedDocumentDiffProvider.diffCache=new Map;WorkerBasedDocumentDiffProvider=WorkerBasedDocumentDiffProvider_1=__decorate$1x([__param$1x(1,IEditorWorkerService),__param$1x(2,ITelemetryService)],WorkerBasedDocumentDiffProvider);var __decorate$1w=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1w=function(o,e){return function(t,i){e(t,i,o)}};const IDiffProviderFactoryService=createDecorator("diffProviderFactoryService");let DiffProviderFactoryService=class{constructor(e){this.instantiationService=e}createDiffProvider(e,t){return this.instantiationService.createInstance(WorkerBasedDocumentDiffProvider,t)}};DiffProviderFactoryService=__decorate$1w([__param$1w(0,IInstantiationService)],DiffProviderFactoryService);registerSingleton(IDiffProviderFactoryService,DiffProviderFactoryService,1);var __decorate$1v=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1v=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$1b=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};let DiffEditorViewModel=class extends Disposable{setActiveMovedText(e){this._activeMovedText.set(e,void 0)}constructor(e,t,i,n){super(),this.model=e,this._options=t,this._editor=i,this._diffProviderFactoryService=n,this._isDiffUpToDate=observableValue(this,!1),this.isDiffUpToDate=this._isDiffUpToDate,this._diff=observableValue(this,void 0),this.diff=this._diff,this._unchangedRegions=observableValue(this,{regions:[],originalDecorationIds:[],modifiedDecorationIds:[]}),this.unchangedRegions=derived(this,l=>this._options.hideUnchangedRegions.read(l)?this._unchangedRegions.read(l).regions:(transaction(d=>{for(const c of this._unchangedRegions.get().regions)c.collapseAll(d)}),[])),this.movedTextToCompare=observableValue(this,void 0),this._activeMovedText=observableValue(this,void 0),this._hoveredMovedText=observableValue(this,void 0),this.activeMovedText=derived(this,l=>{var d,c;return(c=(d=this.movedTextToCompare.read(l))!==null&&d!==void 0?d:this._hoveredMovedText.read(l))!==null&&c!==void 0?c:this._activeMovedText.read(l)}),this._cancellationTokenSource=new CancellationTokenSource$1,this._diffProvider=derived(this,l=>{const d=this._diffProviderFactoryService.createDiffProvider(this._editor,{diffAlgorithm:this._options.diffAlgorithm.read(l)}),c=observableSignalFromEvent("onDidChange",d.onDidChange);return{diffProvider:d,onChangeSignal:c}}),this._register(toDisposable(()=>this._cancellationTokenSource.cancel()));const r=observableSignal("contentChangedSignal"),s=this._register(new RunOnceScheduler(()=>r.trigger(void 0),200)),a=(l,d,c)=>{const u=UnchangedRegion.fromDiffs(l.changes,e.original.getLineCount(),e.modified.getLineCount(),this._options.hideUnchangedRegionsMinimumLineCount.read(c),this._options.hideUnchangedRegionsContextLineCount.read(c)),g=this._unchangedRegions.get(),f=g.originalDecorationIds.map(_=>e.original.getDecorationRange(_)).filter(_=>!!_).map(_=>LineRange$1.fromRange(_)),p=g.modifiedDecorationIds.map(_=>e.modified.getDecorationRange(_)).filter(_=>!!_).map(_=>LineRange$1.fromRange(_)),m=e.original.deltaDecorations(g.originalDecorationIds,u.map(_=>({range:_.originalUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}}))),b=e.modified.deltaDecorations(g.modifiedDecorationIds,u.map(_=>({range:_.modifiedUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}})));for(const _ of u)for(let C=0;C<g.regions.length;C++)if(_.originalUnchangedRange.intersectsStrict(f[C])&&_.modifiedUnchangedRange.intersectsStrict(p[C])){_.setHiddenModifiedRange(g.regions[C].getHiddenModifiedRange(void 0),d);break}this._unchangedRegions.set({regions:u,originalDecorationIds:m,modifiedDecorationIds:b},d)};this._register(e.modified.onDidChangeContent(l=>{if(this._diff.get()){const c=TextEditInfo.fromModelContentChanges(l.changes);this._lastDiff,e.original,e.modified}s.schedule()})),this._register(e.original.onDidChangeContent(l=>{if(this._diff.get()){const c=TextEditInfo.fromModelContentChanges(l.changes);this._lastDiff,e.original,e.modified}s.schedule()})),this._register(autorunWithStore((l,d)=>__awaiter$1b(this,void 0,void 0,function*(){var c,u;this._options.hideUnchangedRegionsMinimumLineCount.read(l),this._options.hideUnchangedRegionsContextLineCount.read(l),s.cancel(),r.read(l);const g=this._diffProvider.read(l);g.onChangeSignal.read(l),readHotReloadableExport(DefaultLinesDiffComputer,l),readHotReloadableExport(optimizeSequenceDiffs,l),this._isDiffUpToDate.set(!1,void 0);let f=[];d.add(e.original.onDidChangeContent(b=>{const _=TextEditInfo.fromModelContentChanges(b.changes);f=combineTextEditInfos(f,_)}));let p=[];d.add(e.modified.onDidChangeContent(b=>{const _=TextEditInfo.fromModelContentChanges(b.changes);p=combineTextEditInfos(p,_)}));let m=yield g.diffProvider.computeDiff(e.original,e.modified,{ignoreTrimWhitespace:this._options.ignoreTrimWhitespace.read(l),maxComputationTimeMs:this._options.maxComputationTimeMs.read(l),computeMoves:this._options.showMoves.read(l)},this._cancellationTokenSource.token);this._cancellationTokenSource.token.isCancellationRequested||(m=normalizeDocumentDiff(m,e.original,e.modified),m=(c=(e.original,e.modified,void 0))!==null&&c!==void 0?c:m,m=(u=(e.original,e.modified,void 0))!==null&&u!==void 0?u:m,transaction(b=>{a(m,b),this._lastDiff=m;const _=DiffState.fromDiffResult(m);this._diff.set(_,b),this._isDiffUpToDate.set(!0,b);const C=this.movedTextToCompare.get();this.movedTextToCompare.set(C?this._lastDiff.moves.find(S=>S.lineRangeMapping.modified.intersect(C.lineRangeMapping.modified)):void 0,b)}))})))}ensureModifiedLineIsVisible(e,t){var i;if(((i=this.diff.get())===null||i===void 0?void 0:i.mappings.length)===0)return;const n=this._unchangedRegions.get().regions;for(const r of n)if(r.getHiddenModifiedRange(void 0).contains(e)){r.showModifiedLine(e,t);return}}ensureOriginalLineIsVisible(e,t){var i;if(((i=this.diff.get())===null||i===void 0?void 0:i.mappings.length)===0)return;const n=this._unchangedRegions.get().regions;for(const r of n)if(r.getHiddenOriginalRange(void 0).contains(e)){r.showOriginalLine(e,t);return}}waitForDiff(){return __awaiter$1b(this,void 0,void 0,function*(){yield waitForState(this.isDiffUpToDate,e=>e)})}serializeState(){return{collapsedRegions:this._unchangedRegions.get().regions.map(t=>({range:t.getHiddenModifiedRange(void 0).serialize()}))}}restoreSerializedState(e){const t=e.collapsedRegions.map(n=>LineRange$1.deserialize(n.range)),i=this._unchangedRegions.get();transaction(n=>{for(const r of i.regions)for(const s of t)if(r.modifiedUnchangedRange.intersect(s)){r.setHiddenModifiedRange(s,n);break}})}};DiffEditorViewModel=__decorate$1v([__param$1v(3,IDiffProviderFactoryService)],DiffEditorViewModel);function normalizeDocumentDiff(o,e,t){return{changes:o.changes.map(i=>new DetailedLineRangeMapping(i.original,i.modified,i.innerChanges?i.innerChanges.map(n=>normalizeRangeMapping(n,e,t)):void 0)),moves:o.moves,identical:o.identical,quitEarly:o.quitEarly}}function normalizeRangeMapping(o,e,t){let i=o.originalRange,n=o.modifiedRange;return(i.endColumn!==1||n.endColumn!==1)&&i.endColumn===e.getLineMaxColumn(i.endLineNumber)&&n.endColumn===t.getLineMaxColumn(n.endLineNumber)&&i.endLineNumber<e.getLineCount()&&n.endLineNumber<t.getLineCount()&&(i=i.setEndPosition(i.endLineNumber+1,1),n=n.setEndPosition(n.endLineNumber+1,1)),new RangeMapping(i,n)}class DiffState{static fromDiffResult(e){return new DiffState(e.changes.map(t=>new DiffMapping(t)),e.moves||[],e.identical,e.quitEarly)}constructor(e,t,i,n){this.mappings=e,this.movedTexts=t,this.identical=i,this.quitEarly=n}}class DiffMapping{constructor(e){this.lineRangeMapping=e}}class UnchangedRegion{static fromDiffs(e,t,i,n,r){const s=DetailedLineRangeMapping.inverse(e,t,i),a=[];for(const l of s){let d=l.original.startLineNumber,c=l.modified.startLineNumber,u=l.original.length;const g=d===1&&c===1,f=d+u===t+1&&c+u===i+1;(g||f)&&u>=r+n?(g&&!f&&(u-=r),f&&!g&&(d+=r,c+=r,u-=r),a.push(new UnchangedRegion(d,c,u,0,0))):u>=r*2+n&&(d+=r,c+=r,u-=r*2,a.push(new UnchangedRegion(d,c,u,0,0)))}return a}get originalUnchangedRange(){return LineRange$1.ofLength(this.originalLineNumber,this.lineCount)}get modifiedUnchangedRange(){return LineRange$1.ofLength(this.modifiedLineNumber,this.lineCount)}constructor(e,t,i,n,r){this.originalLineNumber=e,this.modifiedLineNumber=t,this.lineCount=i,this._visibleLineCountTop=observableValue(this,0),this.visibleLineCountTop=this._visibleLineCountTop,this._visibleLineCountBottom=observableValue(this,0),this.visibleLineCountBottom=this._visibleLineCountBottom,this._shouldHideControls=derived(this,s=>this.visibleLineCountTop.read(s)+this.visibleLineCountBottom.read(s)===this.lineCount&&!this.isDragged.read(s)),this.isDragged=observableValue(this,!1),this._visibleLineCountTop.set(n,void 0),this._visibleLineCountBottom.set(r,void 0)}shouldHideControls(e){return this._shouldHideControls.read(e)}getHiddenOriginalRange(e){return LineRange$1.ofLength(this.originalLineNumber+this._visibleLineCountTop.read(e),this.lineCount-this._visibleLineCountTop.read(e)-this._visibleLineCountBottom.read(e))}getHiddenModifiedRange(e){return LineRange$1.ofLength(this.modifiedLineNumber+this._visibleLineCountTop.read(e),this.lineCount-this._visibleLineCountTop.read(e)-this._visibleLineCountBottom.read(e))}setHiddenModifiedRange(e,t){const i=e.startLineNumber-this.modifiedLineNumber,n=this.modifiedLineNumber+this.lineCount-e.endLineNumberExclusive;this.setState(i,n,t)}getMaxVisibleLineCountTop(){return this.lineCount-this._visibleLineCountBottom.get()}getMaxVisibleLineCountBottom(){return this.lineCount-this._visibleLineCountTop.get()}showMoreAbove(e=10,t){const i=this.getMaxVisibleLineCountTop();this._visibleLineCountTop.set(Math.min(this._visibleLineCountTop.get()+e,i),t)}showMoreBelow(e=10,t){const i=this.lineCount-this._visibleLineCountTop.get();this._visibleLineCountBottom.set(Math.min(this._visibleLineCountBottom.get()+e,i),t)}showAll(e){this._visibleLineCountBottom.set(this.lineCount-this._visibleLineCountTop.get(),e)}showModifiedLine(e,t){const i=e+1-(this.modifiedLineNumber+this._visibleLineCountTop.get()),n=this.modifiedLineNumber-this._visibleLineCountBottom.get()+this.lineCount-e;i<n?this._visibleLineCountTop.set(this._visibleLineCountTop.get()+i,t):this._visibleLineCountBottom.set(this._visibleLineCountBottom.get()+n,t)}showOriginalLine(e,t){const i=e-this.originalLineNumber,n=this.originalLineNumber+this.lineCount-e;i<n?this._visibleLineCountTop.set(Math.min(this._visibleLineCountTop.get()+n-i,this.getMaxVisibleLineCountTop()),t):this._visibleLineCountBottom.set(Math.min(this._visibleLineCountBottom.get()+i-n,this.getMaxVisibleLineCountBottom()),t)}collapseAll(e){this._visibleLineCountTop.set(0,e),this._visibleLineCountBottom.set(0,e)}setState(e,t,i){e=Math.max(Math.min(e,this.lineCount),0),t=Math.max(Math.min(t,this.lineCount-e),0),this._visibleLineCountTop.set(e,i),this._visibleLineCountBottom.set(t,i)}}function applyOriginalEdits(o,e,t,i){}function applyModifiedEdits(o,e,t,i){}var __awaiter$1a=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};class InlineDiffDeletedCodeMargin extends Disposable{get visibility(){return this._visibility}set visibility(e){this._visibility!==e&&(this._visibility=e,this._diffActions.style.visibility=e?"visible":"hidden")}constructor(e,t,i,n,r,s,a,l,d){super(),this._getViewZoneId=e,this._marginDomNode=t,this._modifiedEditor=i,this._diff=n,this._editor=r,this._viewLineCounts=s,this._originalTextModel=a,this._contextMenuService=l,this._clipboardService=d,this._visibility=!1,this._marginDomNode.style.zIndex="10",this._diffActions=document.createElement("div"),this._diffActions.className=ThemeIcon.asClassName(Codicon.lightBulb)+" lightbulb-glyph",this._diffActions.style.position="absolute";const c=this._modifiedEditor.getOption(66);this._diffActions.style.right="0px",this._diffActions.style.visibility="hidden",this._diffActions.style.height=`${c}px`,this._diffActions.style.lineHeight=`${c}px`,this._marginDomNode.appendChild(this._diffActions);let u=0;const g=i.getOption(126)&&!isIOS,f=(p,m)=>{var b;this._contextMenuService.showContextMenu({domForShadowRoot:g&&(b=i.getDomNode())!==null&&b!==void 0?b:void 0,getAnchor:()=>({x:p,y:m}),getActions:()=>{const _=[],C=n.modified.isEmpty;return _.push(new Action("diff.clipboard.copyDeletedContent",C?n.original.length>1?localize("diff.clipboard.copyDeletedLinesContent.label","Copy deleted lines"):localize("diff.clipboard.copyDeletedLinesContent.single.label","Copy deleted line"):n.original.length>1?localize("diff.clipboard.copyChangedLinesContent.label","Copy changed lines"):localize("diff.clipboard.copyChangedLinesContent.single.label","Copy changed line"),void 0,!0,()=>__awaiter$1a(this,void 0,void 0,function*(){const y=this._originalTextModel.getValueInRange(n.original.toExclusiveRange());yield this._clipboardService.writeText(y)}))),n.original.length>1&&_.push(new Action("diff.clipboard.copyDeletedLineContent",C?localize("diff.clipboard.copyDeletedLineContent.label","Copy deleted line ({0})",n.original.startLineNumber+u):localize("diff.clipboard.copyChangedLineContent.label","Copy changed line ({0})",n.original.startLineNumber+u),void 0,!0,()=>__awaiter$1a(this,void 0,void 0,function*(){let y=this._originalTextModel.getLineContent(n.original.startLineNumber+u);y===""&&(y=this._originalTextModel.getEndOfLineSequence()===0?`
- `:`\r
- `),yield this._clipboardService.writeText(y)}))),i.getOption(90)||_.push(new Action("diff.inline.revertChange",localize("diff.inline.revertChange.label","Revert this change"),void 0,!0,()=>__awaiter$1a(this,void 0,void 0,function*(){this._editor.revert(this._diff)}))),_},autoSelectFirstItem:!0})};this._register(addStandardDisposableListener(this._diffActions,"mousedown",p=>{const{top:m,height:b}=getDomNodePagePosition(this._diffActions),_=Math.floor(c/3);p.preventDefault(),f(p.posx,m+b+_)})),this._register(i.onMouseMove(p=>{(p.target.type===8||p.target.type===5)&&p.target.detail.viewZoneId===this._getViewZoneId()?(u=this._updateLightBulbPosition(this._marginDomNode,p.event.browserEvent.y,c),this.visibility=!0):this.visibility=!1})),this._register(i.onMouseDown(p=>{p.event.rightButton&&(p.target.type===8||p.target.type===5)&&p.target.detail.viewZoneId===this._getViewZoneId()&&(p.event.preventDefault(),u=this._updateLightBulbPosition(this._marginDomNode,p.event.browserEvent.y,c),f(p.event.posx,p.event.posy+c))}))}_updateLightBulbPosition(e,t,i){const{top:n}=getDomNodePagePosition(e),r=t-n,s=Math.floor(r/i),a=s*i;if(this._diffActions.style.top=`${a}px`,this._viewLineCounts){let l=0;for(let d=0;d<this._viewLineCounts.length;d++)if(l+=this._viewLineCounts[d],s<l)return d}return s}}const ttPolicy$1=createTrustedTypesPolicy("diffEditorWidget",{createHTML:o=>o});function renderLines$1(o,e,t,i){applyFontInfo(i,e.fontInfo);const n=t.length>0,r=new StringBuilder(1e4);let s=0,a=0;const l=[];for(let g=0;g<o.lineTokens.length;g++){const f=g+1,p=o.lineTokens[g],m=o.lineBreakData[g],b=LineDecoration.filter(t,f,1,Number.MAX_SAFE_INTEGER);if(m){let _=0;for(const C of m.breakOffsets){const S=p.sliceAndInflate(_,C,0);s=Math.max(s,renderOriginalLine(a,S,LineDecoration.extractWrapped(b,_,C),n,o.mightContainNonBasicASCII,o.mightContainRTL,e,r)),a++,_=C}l.push(m.breakOffsets.length)}else l.push(1),s=Math.max(s,renderOriginalLine(a,p,b,n,o.mightContainNonBasicASCII,o.mightContainRTL,e,r)),a++}s+=e.scrollBeyondLastColumn;const d=r.build(),c=ttPolicy$1?ttPolicy$1.createHTML(d):d;i.innerHTML=c;const u=s*e.typicalHalfwidthCharacterWidth;return{heightInLines:a,minWidthInPx:u,viewLineCounts:l}}class LineSource{constructor(e,t,i,n){this.lineTokens=e,this.lineBreakData=t,this.mightContainNonBasicASCII=i,this.mightContainRTL=n}}class RenderOptions{static fromEditor(e){var t;const i=e.getOptions(),n=i.get(50),r=i.get(143);return new RenderOptions(((t=e.getModel())===null||t===void 0?void 0:t.getOptions().tabSize)||0,n,i.get(33),n.typicalHalfwidthCharacterWidth,i.get(103),i.get(66),r.decorationsWidth,i.get(116),i.get(98),i.get(93),i.get(51))}constructor(e,t,i,n,r,s,a,l,d,c,u){this.tabSize=e,this.fontInfo=t,this.disableMonospaceOptimizations=i,this.typicalHalfwidthCharacterWidth=n,this.scrollBeyondLastColumn=r,this.lineHeight=s,this.lineDecorationsWidth=a,this.stopRenderingLineAfter=l,this.renderWhitespace=d,this.renderControlCharacters=c,this.fontLigatures=u}}function renderOriginalLine(o,e,t,i,n,r,s,a){a.appendString('<div class="view-line'),i||a.appendString(" char-delete"),a.appendString('" style="top:'),a.appendString(String(o*s.lineHeight)),a.appendString('px;width:1000000px;">');const l=e.getLineContent(),d=ViewLineRenderingData.isBasicASCII(l,n),c=ViewLineRenderingData.containsRTL(l,d,r),u=renderViewLine(new RenderLineInput(s.fontInfo.isMonospace&&!s.disableMonospaceOptimizations,s.fontInfo.canUseHalfwidthRightwardsArrow,l,!1,d,c,0,e,t,s.tabSize,0,s.fontInfo.spaceWidth,s.fontInfo.middotWidth,s.fontInfo.wsmiddotWidth,s.stopRenderingLineAfter,s.renderWhitespace,s.renderControlCharacters,s.fontLigatures!==EditorFontLigatures.OFF,null),a);return a.appendString("</div>"),u.characterMapping.getHorizontalOffset(u.characterMapping.length)}var __decorate$1u=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1u=function(o,e){return function(t,i){e(t,i,o)}};let ViewZoneManager=class extends Disposable{constructor(e,t,i,n,r,s,a){super(),this._editors=e,this._diffModel=t,this._options=i,this._diffEditorWidget=n,this._canIgnoreViewZoneUpdateEvent=r,this._clipboardService=s,this._contextMenuService=a,this._originalTopPadding=observableValue(this,0),this._originalScrollOffset=observableValue(this,0),this._originalScrollOffsetAnimated=animatedObservable(this._originalScrollOffset,this._store),this._modifiedTopPadding=observableValue(this,0),this._modifiedScrollOffset=observableValue(this,0),this._modifiedScrollOffsetAnimated=animatedObservable(this._modifiedScrollOffset,this._store);let l=!1;const d=observableValue("state",0),c=this._register(new RunOnceScheduler(()=>{d.set(d.get()+1,void 0)},0));this._register(this._editors.original.onDidChangeViewZones(y=>{!l&&!this._canIgnoreViewZoneUpdateEvent()&&c.schedule()})),this._register(this._editors.modified.onDidChangeViewZones(y=>{!l&&!this._canIgnoreViewZoneUpdateEvent()&&c.schedule()})),this._register(this._editors.original.onDidChangeConfiguration(y=>{(y.hasChanged(144)||y.hasChanged(66))&&c.schedule()})),this._register(this._editors.modified.onDidChangeConfiguration(y=>{(y.hasChanged(144)||y.hasChanged(66))&&c.schedule()}));const u=this._diffModel.map(y=>y?observableFromEvent(y.model.original.onDidChangeTokens,()=>y.model.original.tokenization.backgroundTokenizationState===2):void 0).map((y,E)=>y==null?void 0:y.read(E)),g=new Set,f=new Set,p=derived(y=>{const E=this._diffModel.read(y),x=E==null?void 0:E.diff.read(y);if(!E||!x)return null;d.read(y);const I=this._options.renderSideBySide.read(y);return computeRangeAlignment(this._editors.original,this._editors.modified,x.mappings,g,f,I)}),m=derived(y=>{var E;const x=(E=this._diffModel.read(y))===null||E===void 0?void 0:E.movedTextToCompare.read(y);if(!x)return null;d.read(y);const L=x.changes.map(I=>new DiffMapping(I));return computeRangeAlignment(this._editors.original,this._editors.modified,L,g,f,!0)});function b(){const y=document.createElement("div");return y.className="diagonal-fill",y}const _=this._register(new DisposableStore),C=derived(y=>{var E,x,L,I,D,N,F,R;_.clear();const M=p.read(y)||[],W=[],V=[],A=this._modifiedTopPadding.read(y);A>0&&V.push({afterLineNumber:0,domNode:document.createElement("div"),heightInPx:A,showInHiddenAreas:!0,suppressMouseDown:!0});const P=this._originalTopPadding.read(y);P>0&&W.push({afterLineNumber:0,domNode:document.createElement("div"),heightInPx:P,showInHiddenAreas:!0,suppressMouseDown:!0});const k=this._options.renderSideBySide.read(y),T=k||(E=this._editors.modified._getViewModel())===null||E===void 0?void 0:E.createLineBreaksComputer();if(T){for(const fe of M)if(fe.diff)for(let xe=fe.originalRange.startLineNumber;xe<fe.originalRange.endLineNumberExclusive;xe++)T==null||T.addRequest(this._editors.original.getModel().getLineContent(xe),null,null)}const U=(x=T==null?void 0:T.finalize())!==null&&x!==void 0?x:[];let z=0;const J=this._editors.modified.getOption(66),X=(L=this._diffModel.read(y))===null||L===void 0?void 0:L.movedTextToCompare.read(y),ae=(D=(I=this._editors.original.getModel())===null||I===void 0?void 0:I.mightContainNonBasicASCII())!==null&&D!==void 0?D:!1,ve=(F=(N=this._editors.original.getModel())===null||N===void 0?void 0:N.mightContainRTL())!==null&&F!==void 0?F:!1,me=RenderOptions.fromEditor(this._editors.modified);for(const fe of M)if(fe.diff&&!k){if(!fe.originalRange.isEmpty){u.read(y);const Ie=document.createElement("div");Ie.classList.add("view-lines","line-delete","monaco-mouse-cursor-text");const De=new LineSource(fe.originalRange.mapToLineArray(ke=>this._editors.original.getModel().tokenization.getLineTokens(ke)),fe.originalRange.mapToLineArray(ke=>U[z++]),ae,ve),he=[];for(const ke of fe.diff.innerChanges||[])he.push(new InlineDecoration(ke.originalRange.delta(-(fe.diff.original.startLineNumber-1)),diffDeleteDecoration.className,0));const Me=renderLines$1(De,me,he,Ie),we=document.createElement("div");if(we.className="inline-deleted-margin-view-zone",applyFontInfo(we,me.fontInfo),this._options.renderIndicators.read(y))for(let ke=0;ke<Me.heightInLines;ke++){const Re=document.createElement("div");Re.className=`delete-sign ${ThemeIcon.asClassName(diffRemoveIcon)}`,Re.setAttribute("style",`position:absolute;top:${ke*J}px;width:${me.lineDecorationsWidth}px;height:${J}px;right:0;`),we.appendChild(Re)}let ue;_.add(new InlineDiffDeletedCodeMargin(()=>assertIsDefined(ue),we,this._editors.modified,fe.diff,this._diffEditorWidget,Me.viewLineCounts,this._editors.original.getModel(),this._contextMenuService,this._clipboardService));for(let ke=0;ke<Me.viewLineCounts.length;ke++){const Re=Me.viewLineCounts[ke];Re>1&&W.push({afterLineNumber:fe.originalRange.startLineNumber+ke,domNode:b(),heightInPx:(Re-1)*J,showInHiddenAreas:!0,suppressMouseDown:!0})}V.push({afterLineNumber:fe.modifiedRange.startLineNumber-1,domNode:Ie,heightInPx:Me.heightInLines*J,minWidthInPx:Me.minWidthInPx,marginDomNode:we,setZoneId(ke){ue=ke},showInHiddenAreas:!0,suppressMouseDown:!0})}const xe=document.createElement("div");xe.className="gutter-delete",W.push({afterLineNumber:fe.originalRange.endLineNumberExclusive-1,domNode:b(),heightInPx:fe.modifiedHeightInPx,marginDomNode:xe,showInHiddenAreas:!0,suppressMouseDown:!0})}else{const xe=fe.modifiedHeightInPx-fe.originalHeightInPx;if(xe>0){if(X!=null&&X.lineRangeMapping.original.delta(-1).deltaLength(2).contains(fe.originalRange.endLineNumberExclusive-1))continue;W.push({afterLineNumber:fe.originalRange.endLineNumberExclusive-1,domNode:b(),heightInPx:xe,showInHiddenAreas:!0,suppressMouseDown:!0})}else{let Ie=function(){const he=document.createElement("div");return he.className="arrow-revert-change "+ThemeIcon.asClassName(Codicon.arrowRight),$$d("div",{},he)};if(X!=null&&X.lineRangeMapping.modified.delta(-1).deltaLength(2).contains(fe.modifiedRange.endLineNumberExclusive-1))continue;let De;fe.diff&&fe.diff.modified.isEmpty&&this._options.shouldRenderRevertArrows.read(y)&&(De=Ie()),V.push({afterLineNumber:fe.modifiedRange.endLineNumberExclusive-1,domNode:b(),heightInPx:-xe,marginDomNode:De,showInHiddenAreas:!0,suppressMouseDown:!0})}}for(const fe of(R=m.read(y))!==null&&R!==void 0?R:[]){if(!(X!=null&&X.lineRangeMapping.original.intersect(fe.originalRange))||!(X!=null&&X.lineRangeMapping.modified.intersect(fe.modifiedRange)))continue;const xe=fe.modifiedHeightInPx-fe.originalHeightInPx;xe>0?W.push({afterLineNumber:fe.originalRange.endLineNumberExclusive-1,domNode:b(),heightInPx:xe,showInHiddenAreas:!0,suppressMouseDown:!0}):V.push({afterLineNumber:fe.modifiedRange.endLineNumberExclusive-1,domNode:b(),heightInPx:-xe,showInHiddenAreas:!0,suppressMouseDown:!0})}return{orig:W,mod:V}});this._register(autorunWithStore(y=>{const E=StableEditorScrollState.capture(this._editors.modified),x=C.read(y);l=!0,this._editors.original.changeViewZones(L=>{for(const I of g)L.removeZone(I);g.clear();for(const I of x.orig){const D=L.addZone(I);I.setZoneId&&I.setZoneId(D),g.add(D)}}),this._editors.modified.changeViewZones(L=>{for(const I of f)L.removeZone(I);f.clear();for(const I of x.mod){const D=L.addZone(I);I.setZoneId&&I.setZoneId(D),f.add(D)}}),l=!1,E.restore(this._editors.modified)})),this._register(toDisposable(()=>{this._editors.original.changeViewZones(y=>{for(const E of g)y.removeZone(E);g.clear()}),this._editors.modified.changeViewZones(y=>{for(const E of f)y.removeZone(E);f.clear()})}));let S=!1;this._register(this._editors.original.onDidScrollChange(y=>{y.scrollLeftChanged&&!S&&(S=!0,this._editors.modified.setScrollLeft(y.scrollLeft),S=!1)})),this._register(this._editors.modified.onDidScrollChange(y=>{y.scrollLeftChanged&&!S&&(S=!0,this._editors.original.setScrollLeft(y.scrollLeft),S=!1)})),this._originalScrollTop=observableFromEvent(this._editors.original.onDidScrollChange,()=>this._editors.original.getScrollTop()),this._modifiedScrollTop=observableFromEvent(this._editors.modified.onDidScrollChange,()=>this._editors.modified.getScrollTop()),this._register(autorun(y=>{const E=this._originalScrollTop.read(y)-(this._originalScrollOffsetAnimated.get()-this._modifiedScrollOffsetAnimated.read(y))-(this._originalTopPadding.get()-this._modifiedTopPadding.read(y));E!==this._editors.modified.getScrollTop()&&this._editors.modified.setScrollTop(E,1)})),this._register(autorun(y=>{const E=this._modifiedScrollTop.read(y)-(this._modifiedScrollOffsetAnimated.get()-this._originalScrollOffsetAnimated.read(y))-(this._modifiedTopPadding.get()-this._originalTopPadding.read(y));E!==this._editors.original.getScrollTop()&&this._editors.original.setScrollTop(E,1)})),this._register(autorun(y=>{var E;const x=(E=this._diffModel.read(y))===null||E===void 0?void 0:E.movedTextToCompare.read(y);let L=0;if(x){const I=this._editors.original.getTopForLineNumber(x.lineRangeMapping.original.startLineNumber,!0)-this._originalTopPadding.get();L=this._editors.modified.getTopForLineNumber(x.lineRangeMapping.modified.startLineNumber,!0)-this._modifiedTopPadding.get()-I}L>0?(this._modifiedTopPadding.set(0,void 0),this._originalTopPadding.set(L,void 0)):L<0?(this._modifiedTopPadding.set(-L,void 0),this._originalTopPadding.set(0,void 0)):setTimeout(()=>{this._modifiedTopPadding.set(0,void 0),this._originalTopPadding.set(0,void 0)},400),this._editors.modified.hasTextFocus()?this._originalScrollOffset.set(this._modifiedScrollOffset.get()-L,void 0,!0):this._modifiedScrollOffset.set(this._originalScrollOffset.get()+L,void 0,!0)}))}};ViewZoneManager=__decorate$1u([__param$1u(5,IClipboardService),__param$1u(6,IContextMenuService)],ViewZoneManager);function computeRangeAlignment(o,e,t,i,n,r){const s=new ArrayQueue(getAdditionalLineHeights(o,i)),a=new ArrayQueue(getAdditionalLineHeights(e,n)),l=o.getOption(66),d=e.getOption(66),c=[];let u=0,g=0;function f(p,m){for(;;){let b=s.peek(),_=a.peek();if(b&&b.lineNumber>=p&&(b=void 0),_&&_.lineNumber>=m&&(_=void 0),!b&&!_)break;const C=b?b.lineNumber-u:Number.MAX_VALUE,S=_?_.lineNumber-g:Number.MAX_VALUE;C<S?(s.dequeue(),_={lineNumber:b.lineNumber-u+g,heightInPx:0}):C>S?(a.dequeue(),b={lineNumber:_.lineNumber-g+u,heightInPx:0}):(s.dequeue(),a.dequeue()),c.push({originalRange:LineRange$1.ofLength(b.lineNumber,1),modifiedRange:LineRange$1.ofLength(_.lineNumber,1),originalHeightInPx:l+b.heightInPx,modifiedHeightInPx:d+_.heightInPx,diff:void 0})}}for(const p of t){let S=function(y,E){var x,L,I,D;if(y<C||E<_)return;if(b)b=!1;else if(y===C||E===_)return;const N=new LineRange$1(C,y),F=new LineRange$1(_,E);if(N.isEmpty&&F.isEmpty)return;const R=(L=(x=s.takeWhile(W=>W.lineNumber<y))===null||x===void 0?void 0:x.reduce((W,V)=>W+V.heightInPx,0))!==null&&L!==void 0?L:0,M=(D=(I=a.takeWhile(W=>W.lineNumber<E))===null||I===void 0?void 0:I.reduce((W,V)=>W+V.heightInPx,0))!==null&&D!==void 0?D:0;c.push({originalRange:N,modifiedRange:F,originalHeightInPx:N.length*l+R,modifiedHeightInPx:F.length*d+M,diff:p.lineRangeMapping}),C=y,_=E};const m=p.lineRangeMapping;f(m.original.startLineNumber,m.modified.startLineNumber);let b=!0,_=m.modified.startLineNumber,C=m.original.startLineNumber;if(r)for(const y of m.innerChanges||[])y.originalRange.startColumn>1&&y.modifiedRange.startColumn>1&&S(y.originalRange.startLineNumber,y.modifiedRange.startLineNumber),y.originalRange.endColumn<o.getModel().getLineMaxColumn(y.originalRange.endLineNumber)&&S(y.originalRange.endLineNumber,y.modifiedRange.endLineNumber);S(m.original.endLineNumberExclusive,m.modified.endLineNumberExclusive),u=m.original.endLineNumberExclusive,g=m.modified.endLineNumberExclusive}return f(Number.MAX_VALUE,Number.MAX_VALUE),c}function getAdditionalLineHeights(o,e){const t=[],i=[],n=o.getOption(144).wrappingColumn!==-1,r=o._getViewModel().coordinatesConverter,s=o.getOption(66);if(n)for(let l=1;l<=o.getModel().getLineCount();l++){const d=r.getModelLineViewLineCount(l);d>1&&i.push({lineNumber:l,heightInPx:s*(d-1)})}for(const l of o.getWhitespaces()){if(e.has(l.id))continue;const d=l.afterLineNumber===0?0:r.convertViewPositionToModelPosition(new Position$1(l.afterLineNumber,1)).lineNumber;t.push({lineNumber:d,heightInPx:l.height})}return joinCombine(t,i,l=>l.lineNumber,(l,d)=>({lineNumber:l.lineNumber,heightInPx:l.heightInPx+d.heightInPx}))}var __decorate$1t=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1t=function(o,e){return function(t,i){e(t,i,o)}},OverviewRulerPart_1;let OverviewRulerPart=OverviewRulerPart_1=class extends Disposable{constructor(e,t,i,n,r,s,a,l){super(),this._editors=e,this._rootElement=t,this._diffModel=i,this._rootWidth=n,this._rootHeight=r,this._modifiedEditorLayoutInfo=s,this._options=a,this._themeService=l;const d=observableFromEvent(this._themeService.onDidColorThemeChange,()=>this._themeService.getColorTheme()),c=derived(f=>{const p=d.read(f),m=p.getColor(diffOverviewRulerInserted)||(p.getColor(diffInserted)||defaultInsertColor).transparent(2),b=p.getColor(diffOverviewRulerRemoved)||(p.getColor(diffRemoved)||defaultRemoveColor).transparent(2);return{insertColor:m,removeColor:b}}),u=observableFromEvent(this._editors.modified.onDidScrollChange,()=>this._editors.modified.getScrollTop()),g=observableFromEvent(this._editors.modified.onDidScrollChange,()=>this._editors.modified.getScrollHeight());this._register(autorunWithStore((f,p)=>{if(!this._options.renderOverviewRuler.read(f))return;const m=createFastDomNode(document.createElement("div"));m.setClassName("diffViewport"),m.setPosition("absolute");const b=h("div.diffOverview",{style:{position:"absolute",top:"0px",width:OverviewRulerPart_1.ENTIRE_DIFF_OVERVIEW_WIDTH+"px"}}).root;p.add(appendRemoveOnDispose(b,m.domNode)),p.add(addStandardDisposableListener(b,EventType$1.POINTER_DOWN,_=>{this._editors.modified.delegateVerticalScrollbarPointerDown(_)})),p.add(addDisposableListener(b,EventType$1.MOUSE_WHEEL,_=>{this._editors.modified.delegateScrollFromMouseWheelEvent(_)},{passive:!1})),p.add(appendRemoveOnDispose(this._rootElement,b)),p.add(autorunWithStore((_,C)=>{const S=this._diffModel.read(_),y=this._editors.original.createOverviewRuler("original diffOverviewRuler");y&&(C.add(y),C.add(appendRemoveOnDispose(b,y.getDomNode())));const E=this._editors.modified.createOverviewRuler("modified diffOverviewRuler");if(E&&(C.add(E),C.add(appendRemoveOnDispose(b,E.getDomNode()))),!y||!E)return;const x=observableSignalFromEvent("viewZoneChanged",this._editors.original.onDidChangeViewZones),L=observableSignalFromEvent("viewZoneChanged",this._editors.modified.onDidChangeViewZones),I=observableSignalFromEvent("hiddenRangesChanged",this._editors.original.onDidChangeHiddenAreas),D=observableSignalFromEvent("hiddenRangesChanged",this._editors.modified.onDidChangeHiddenAreas);C.add(autorun(N=>{var F;x.read(N),L.read(N),I.read(N),D.read(N);const R=c.read(N),M=(F=S==null?void 0:S.diff.read(N))===null||F===void 0?void 0:F.mappings;function W(P,k,T){const U=T._getViewModel();return U?P.filter(z=>z.length>0).map(z=>{const J=U.coordinatesConverter.convertModelPositionToViewPosition(new Position$1(z.startLineNumber,1)),X=U.coordinatesConverter.convertModelPositionToViewPosition(new Position$1(z.endLineNumberExclusive,1)),ae=X.lineNumber-J.lineNumber;return new OverviewRulerZone(J.lineNumber,X.lineNumber,ae,k.toString())}):[]}const V=W((M||[]).map(P=>P.lineRangeMapping.original),R.removeColor,this._editors.original),A=W((M||[]).map(P=>P.lineRangeMapping.modified),R.insertColor,this._editors.modified);y==null||y.setZones(V),E==null||E.setZones(A)})),C.add(autorun(N=>{const F=this._rootHeight.read(N),R=this._rootWidth.read(N),M=this._modifiedEditorLayoutInfo.read(N);if(M){const W=OverviewRulerPart_1.ENTIRE_DIFF_OVERVIEW_WIDTH-2*OverviewRulerPart_1.ONE_OVERVIEW_WIDTH;y.setLayout({top:0,height:F,right:W+OverviewRulerPart_1.ONE_OVERVIEW_WIDTH,width:OverviewRulerPart_1.ONE_OVERVIEW_WIDTH}),E.setLayout({top:0,height:F,right:0,width:OverviewRulerPart_1.ONE_OVERVIEW_WIDTH});const V=u.read(N),A=g.read(N),P=this._editors.modified.getOption(102),k=new ScrollbarState(P.verticalHasArrows?P.arrowSize:0,P.verticalScrollbarSize,0,M.height,A,V);m.setTop(k.getSliderPosition()),m.setHeight(k.getSliderSize())}else m.setTop(0),m.setHeight(0);b.style.height=F+"px",b.style.left=R-OverviewRulerPart_1.ENTIRE_DIFF_OVERVIEW_WIDTH+"px",m.setWidth(OverviewRulerPart_1.ENTIRE_DIFF_OVERVIEW_WIDTH)}))}))}))}};OverviewRulerPart.ONE_OVERVIEW_WIDTH=15;OverviewRulerPart.ENTIRE_DIFF_OVERVIEW_WIDTH=OverviewRulerPart_1.ONE_OVERVIEW_WIDTH*2;OverviewRulerPart=OverviewRulerPart_1=__decorate$1t([__param$1t(7,IThemeService)],OverviewRulerPart);registerColor("diffEditor.move.border",{dark:"#8b8b8b9c",light:"#8b8b8b9c",hcDark:"#8b8b8b9c",hcLight:"#8b8b8b9c"},localize("diffEditor.move.border","The border color for text that got moved in the diff editor."));registerColor("diffEditor.moveActive.border",{dark:"#FFA500",light:"#FFA500",hcDark:"#FFA500",hcLight:"#FFA500"},localize("diffEditor.moveActive.border","The active border color for text that got moved in the diff editor."));class DelegatingEditor extends Disposable{constructor(){super(...arguments),this._id=++DelegatingEditor.idCounter,this._onDidDispose=this._register(new Emitter$1),this.onDidDispose=this._onDidDispose.event}getId(){return this.getEditorType()+":v2:"+this._id}getVisibleColumnFromPosition(e){return this._targetEditor.getVisibleColumnFromPosition(e)}getPosition(){return this._targetEditor.getPosition()}setPosition(e,t="api"){this._targetEditor.setPosition(e,t)}revealLine(e,t=0){this._targetEditor.revealLine(e,t)}revealLineInCenter(e,t=0){this._targetEditor.revealLineInCenter(e,t)}revealLineInCenterIfOutsideViewport(e,t=0){this._targetEditor.revealLineInCenterIfOutsideViewport(e,t)}revealLineNearTop(e,t=0){this._targetEditor.revealLineNearTop(e,t)}revealPosition(e,t=0){this._targetEditor.revealPosition(e,t)}revealPositionInCenter(e,t=0){this._targetEditor.revealPositionInCenter(e,t)}revealPositionInCenterIfOutsideViewport(e,t=0){this._targetEditor.revealPositionInCenterIfOutsideViewport(e,t)}revealPositionNearTop(e,t=0){this._targetEditor.revealPositionNearTop(e,t)}getSelection(){return this._targetEditor.getSelection()}getSelections(){return this._targetEditor.getSelections()}setSelection(e,t="api"){this._targetEditor.setSelection(e,t)}setSelections(e,t="api"){this._targetEditor.setSelections(e,t)}revealLines(e,t,i=0){this._targetEditor.revealLines(e,t,i)}revealLinesInCenter(e,t,i=0){this._targetEditor.revealLinesInCenter(e,t,i)}revealLinesInCenterIfOutsideViewport(e,t,i=0){this._targetEditor.revealLinesInCenterIfOutsideViewport(e,t,i)}revealLinesNearTop(e,t,i=0){this._targetEditor.revealLinesNearTop(e,t,i)}revealRange(e,t=0,i=!1,n=!0){this._targetEditor.revealRange(e,t,i,n)}revealRangeInCenter(e,t=0){this._targetEditor.revealRangeInCenter(e,t)}revealRangeInCenterIfOutsideViewport(e,t=0){this._targetEditor.revealRangeInCenterIfOutsideViewport(e,t)}revealRangeNearTop(e,t=0){this._targetEditor.revealRangeNearTop(e,t)}revealRangeNearTopIfOutsideViewport(e,t=0){this._targetEditor.revealRangeNearTopIfOutsideViewport(e,t)}revealRangeAtTop(e,t=0){this._targetEditor.revealRangeAtTop(e,t)}getSupportedActions(){return this._targetEditor.getSupportedActions()}focus(){this._targetEditor.focus()}trigger(e,t,i){this._targetEditor.trigger(e,t,i)}createDecorationsCollection(e){return this._targetEditor.createDecorationsCollection(e)}changeDecorations(e){return this._targetEditor.changeDecorations(e)}}DelegatingEditor.idCounter=0;var __decorate$1s=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1s=function(o,e){return function(t,i){e(t,i,o)}};let DiffEditorEditors=class extends Disposable{constructor(e,t,i,n,r,s,a){super(),this.originalEditorElement=e,this.modifiedEditorElement=t,this._options=i,this._createInnerEditor=r,this._instantiationService=s,this._keybindingService=a,this._onDidContentSizeChange=this._register(new Emitter$1),this.original=this._register(this._createLeftHandSideEditor(i.editorOptions.get(),n.originalEditor||{})),this.modified=this._register(this._createRightHandSideEditor(i.editorOptions.get(),n.modifiedEditor||{})),this.modifiedModel=observableFromEvent(this.modified.onDidChangeModel,()=>this.modified.getModel()),this._register(autorunHandleChanges({createEmptyChangeSummary:()=>({}),handleChange:(l,d)=>(l.didChange(i.editorOptions)&&Object.assign(d,l.change.changedOptions),!0)},(l,d)=>{i.editorOptions.read(l),this._options.renderSideBySide.read(l),this.modified.updateOptions(this._adjustOptionsForRightHandSide(l,d)),this.original.updateOptions(this._adjustOptionsForLeftHandSide(l,d))}))}_createLeftHandSideEditor(e,t){const i=this._adjustOptionsForLeftHandSide(void 0,e),n=this._constructInnerEditor(this._instantiationService,this.originalEditorElement,i,t);return n.setContextValue("isInDiffLeftEditor",!0),n}_createRightHandSideEditor(e,t){const i=this._adjustOptionsForRightHandSide(void 0,e),n=this._constructInnerEditor(this._instantiationService,this.modifiedEditorElement,i,t);return n.setContextValue("isInDiffRightEditor",!0),n}_constructInnerEditor(e,t,i,n){const r=this._createInnerEditor(e,t,i,n);return this._register(r.onDidContentSizeChange(s=>{const a=this.original.getContentWidth()+this.modified.getContentWidth()+OverviewRulerPart.ENTIRE_DIFF_OVERVIEW_WIDTH,l=Math.max(this.modified.getContentHeight(),this.original.getContentHeight());this._onDidContentSizeChange.fire({contentHeight:l,contentWidth:a,contentHeightChanged:s.contentHeightChanged,contentWidthChanged:s.contentWidthChanged})})),r}_adjustOptionsForLeftHandSide(e,t){const i=this._adjustOptionsForSubEditor(t);return this._options.renderSideBySide.get()?(i.unicodeHighlight=this._options.editorOptions.get().unicodeHighlight||{},i.wordWrapOverride1=this._options.diffWordWrap.get()):(i.wordWrapOverride1="off",i.wordWrapOverride2="off",i.stickyScroll={enabled:!1},i.unicodeHighlight={nonBasicASCII:!1,ambiguousCharacters:!1,invisibleCharacters:!1}),t.originalAriaLabel&&(i.ariaLabel=t.originalAriaLabel),i.ariaLabel=this._updateAriaLabel(i.ariaLabel),i.readOnly=!this._options.originalEditable.get(),i.dropIntoEditor={enabled:!i.readOnly},i.extraEditorClassName="original-in-monaco-diff-editor",i}_adjustOptionsForRightHandSide(e,t){const i=this._adjustOptionsForSubEditor(t);return t.modifiedAriaLabel&&(i.ariaLabel=t.modifiedAriaLabel),i.ariaLabel=this._updateAriaLabel(i.ariaLabel),i.wordWrapOverride1=this._options.diffWordWrap.get(),i.revealHorizontalRightPadding=EditorOptions.revealHorizontalRightPadding.defaultValue+OverviewRulerPart.ENTIRE_DIFF_OVERVIEW_WIDTH,i.scrollbar.verticalHasArrows=!1,i.extraEditorClassName="modified-in-monaco-diff-editor",i}_adjustOptionsForSubEditor(e){const t=Object.assign(Object.assign({},e),{dimension:{height:0,width:0}});return t.inDiffEditor=!0,t.automaticLayout=!1,t.scrollbar=Object.assign({},t.scrollbar||{}),t.scrollbar.vertical="visible",t.folding=!1,t.codeLens=this._options.diffCodeLens.get(),t.fixedOverflowWidgets=!0,t.minimap=Object.assign({},t.minimap||{}),t.minimap.enabled=!1,this._options.hideUnchangedRegions.get()?t.stickyScroll={enabled:!1}:t.stickyScroll=this._options.editorOptions.get().stickyScroll,t}_updateAriaLabel(e){var t;e||(e="");const i=localize("diff-aria-navigation-tip"," use {0} to open the accessibility help.",(t=this._keybindingService.lookupKeybinding("editor.action.accessibilityHelp"))===null||t===void 0?void 0:t.getAriaLabel());return this._options.accessibilityVerbose.get()?e+i:e?e.replaceAll(i,""):""}};DiffEditorEditors=__decorate$1s([__param$1s(5,IInstantiationService),__param$1s(6,IKeybindingService)],DiffEditorEditors);class DiffEditorOptions{get editorOptions(){return this._options}constructor(e,t){this.diffEditorWidth=t,this.couldShowInlineViewBecauseOfSize=derived(this,n=>this._options.read(n).renderSideBySide&&this.diffEditorWidth.read(n)<=this._options.read(n).renderSideBySideInlineBreakpoint),this.renderOverviewRuler=derived(this,n=>this._options.read(n).renderOverviewRuler),this.renderSideBySide=derived(this,n=>this._options.read(n).renderSideBySide&&!(this._options.read(n).useInlineViewWhenSpaceIsLimited&&this.couldShowInlineViewBecauseOfSize.read(n))),this.readOnly=derived(this,n=>this._options.read(n).readOnly),this.shouldRenderRevertArrows=derived(this,n=>!(!this._options.read(n).renderMarginRevertIcon||!this.renderSideBySide.read(n)||this.readOnly.read(n))),this.renderIndicators=derived(this,n=>this._options.read(n).renderIndicators),this.enableSplitViewResizing=derived(this,n=>this._options.read(n).enableSplitViewResizing),this.splitViewDefaultRatio=derived(this,n=>this._options.read(n).splitViewDefaultRatio),this.ignoreTrimWhitespace=derived(this,n=>this._options.read(n).ignoreTrimWhitespace),this.maxComputationTimeMs=derived(this,n=>this._options.read(n).maxComputationTime),this.showMoves=derived(this,n=>this._options.read(n).experimental.showMoves&&this.renderSideBySide.read(n)),this.isInEmbeddedEditor=derived(this,n=>this._options.read(n).isInEmbeddedEditor),this.diffWordWrap=derived(this,n=>this._options.read(n).diffWordWrap),this.originalEditable=derived(this,n=>this._options.read(n).originalEditable),this.diffCodeLens=derived(this,n=>this._options.read(n).diffCodeLens),this.accessibilityVerbose=derived(this,n=>this._options.read(n).accessibilityVerbose),this.diffAlgorithm=derived(this,n=>this._options.read(n).diffAlgorithm),this.showEmptyDecorations=derived(this,n=>this._options.read(n).experimental.showEmptyDecorations),this.onlyShowAccessibleDiffViewer=derived(this,n=>this._options.read(n).onlyShowAccessibleDiffViewer),this.hideUnchangedRegions=derived(this,n=>this._options.read(n).hideUnchangedRegions.enabled),this.hideUnchangedRegionsRevealLineCount=derived(this,n=>this._options.read(n).hideUnchangedRegions.revealLineCount),this.hideUnchangedRegionsContextLineCount=derived(this,n=>this._options.read(n).hideUnchangedRegions.contextLineCount),this.hideUnchangedRegionsMinimumLineCount=derived(this,n=>this._options.read(n).hideUnchangedRegions.minimumLineCount);const i=Object.assign(Object.assign({},e),validateDiffEditorOptions(e,diffEditorDefaultOptions));this._options=observableValue(this,i)}updateOptions(e){const t=validateDiffEditorOptions(e,this._options.get()),i=Object.assign(Object.assign(Object.assign({},this._options.get()),e),t);this._options.set(i,void 0,{changedOptions:e})}}function validateDiffEditorOptions(o,e){var t,i,n,r,s,a,l,d;return{enableSplitViewResizing:boolean(o.enableSplitViewResizing,e.enableSplitViewResizing),splitViewDefaultRatio:clampedFloat(o.splitViewDefaultRatio,.5,.1,.9),renderSideBySide:boolean(o.renderSideBySide,e.renderSideBySide),renderMarginRevertIcon:boolean(o.renderMarginRevertIcon,e.renderMarginRevertIcon),maxComputationTime:clampedInt(o.maxComputationTime,e.maxComputationTime,0,1073741824),maxFileSize:clampedInt(o.maxFileSize,e.maxFileSize,0,1073741824),ignoreTrimWhitespace:boolean(o.ignoreTrimWhitespace,e.ignoreTrimWhitespace),renderIndicators:boolean(o.renderIndicators,e.renderIndicators),originalEditable:boolean(o.originalEditable,e.originalEditable),diffCodeLens:boolean(o.diffCodeLens,e.diffCodeLens),renderOverviewRuler:boolean(o.renderOverviewRuler,e.renderOverviewRuler),diffWordWrap:stringSet(o.diffWordWrap,e.diffWordWrap,["off","on","inherit"]),diffAlgorithm:stringSet(o.diffAlgorithm,e.diffAlgorithm,["legacy","advanced"],{smart:"legacy",experimental:"advanced"}),accessibilityVerbose:boolean(o.accessibilityVerbose,e.accessibilityVerbose),experimental:{showMoves:boolean((t=o.experimental)===null||t===void 0?void 0:t.showMoves,e.experimental.showMoves),showEmptyDecorations:boolean((i=o.experimental)===null||i===void 0?void 0:i.showEmptyDecorations,e.experimental.showEmptyDecorations)},hideUnchangedRegions:{enabled:boolean((r=(n=o.hideUnchangedRegions)===null||n===void 0?void 0:n.enabled)!==null&&r!==void 0?r:(s=o.experimental)===null||s===void 0?void 0:s.collapseUnchangedRegions,e.hideUnchangedRegions.enabled),contextLineCount:clampedInt((a=o.hideUnchangedRegions)===null||a===void 0?void 0:a.contextLineCount,e.hideUnchangedRegions.contextLineCount,0,1073741824),minimumLineCount:clampedInt((l=o.hideUnchangedRegions)===null||l===void 0?void 0:l.minimumLineCount,e.hideUnchangedRegions.minimumLineCount,0,1073741824),revealLineCount:clampedInt((d=o.hideUnchangedRegions)===null||d===void 0?void 0:d.revealLineCount,e.hideUnchangedRegions.revealLineCount,0,1073741824)},isInEmbeddedEditor:boolean(o.isInEmbeddedEditor,e.isInEmbeddedEditor),onlyShowAccessibleDiffViewer:boolean(o.onlyShowAccessibleDiffViewer,e.onlyShowAccessibleDiffViewer),renderSideBySideInlineBreakpoint:clampedInt(o.renderSideBySideInlineBreakpoint,e.renderSideBySideInlineBreakpoint,0,1073741824),useInlineViewWhenSpaceIsLimited:boolean(o.useInlineViewWhenSpaceIsLimited,e.useInlineViewWhenSpaceIsLimited)}}var __decorate$1r=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1r=function(o,e){return function(t,i){e(t,i,o)}};let DiffEditorWidget=class extends DelegatingEditor{constructor(e,t,i,n,r,s,a,l){var d;super(),this._domElement=e,this._parentContextKeyService=n,this._parentInstantiationService=r,this._audioCueService=a,this._editorProgressService=l,this.elements=h("div.monaco-diff-editor.side-by-side",{style:{position:"relative",height:"100%"}},[h("div.noModificationsOverlay@overlay",{style:{position:"absolute",height:"100%",visibility:"hidden"}},[$$d("span",{},"No Changes")]),h("div.editor.original@original",{style:{position:"absolute",height:"100%"}}),h("div.editor.modified@modified",{style:{position:"absolute",height:"100%"}}),h("div.accessibleDiffViewer@accessibleDiffViewer",{style:{position:"absolute",height:"100%"}})]),this._diffModel=this._register(disposableObservableValue("diffModel",void 0)),this.onDidChangeModel=Event.fromObservableLight(this._diffModel),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._domElement)),this._instantiationService=this._parentInstantiationService.createChild(new ServiceCollection([IContextKeyService,this._contextKeyService])),this._boundarySashes=observableValue(this,void 0),this._accessibleDiffViewerShouldBeVisible=observableValue(this,!1),this._accessibleDiffViewerVisible=derived(this,m=>this._options.onlyShowAccessibleDiffViewer.read(m)?!0:this._accessibleDiffViewerShouldBeVisible.read(m)),this.movedBlocksLinesPart=observableValue(this,void 0),this._layoutInfo=derived(this,m=>{var b,_,C;const S=this._rootSizeObserver.width.read(m),y=this._rootSizeObserver.height.read(m),E=(b=this._sash.read(m))===null||b===void 0?void 0:b.sashLeft.read(m),x=E??Math.max(5,this._editors.original.getLayoutInfo().decorationsLeft),L=S-x-(this._options.renderOverviewRuler.read(m)?OverviewRulerPart.ENTIRE_DIFF_OVERVIEW_WIDTH:0),I=(C=(_=this.movedBlocksLinesPart.read(m))===null||_===void 0?void 0:_.width.read(m))!==null&&C!==void 0?C:0,D=x-I;return this.elements.original.style.width=D+"px",this.elements.original.style.left="0px",this.elements.modified.style.width=L+"px",this.elements.modified.style.left=x+"px",this._editors.original.layout({width:D,height:y}),this._editors.modified.layout({width:L,height:y}),{modifiedEditor:this._editors.modified.getLayoutInfo(),originalEditor:this._editors.original.getLayoutInfo()}}),this._diffValue=this._diffModel.map((m,b)=>m==null?void 0:m.diff.read(b)),this.onDidUpdateDiff=Event.fromObservableLight(this._diffValue),s.willCreateDiffEditor(),this._contextKeyService.createKey("isInDiffEditor",!0),this._domElement.appendChild(this.elements.root),this._register(toDisposable(()=>this._domElement.removeChild(this.elements.root))),this._rootSizeObserver=this._register(new ObservableElementSizeObserver(this.elements.root,t.dimension)),this._rootSizeObserver.setAutomaticLayout((d=t.automaticLayout)!==null&&d!==void 0?d:!1),this._options=new DiffEditorOptions(t,this._rootSizeObserver.width),this._contextKeyService.createKey(EditorContextKeys.isEmbeddedDiffEditor.key,!1);const c=EditorContextKeys.isEmbeddedDiffEditor.bindTo(this._contextKeyService);this._register(autorun(m=>{c.set(this._options.isInEmbeddedEditor.read(m))}));const u=EditorContextKeys.comparingMovedCode.bindTo(this._contextKeyService);this._register(autorun(m=>{var b;u.set(!!(!((b=this._diffModel.read(m))===null||b===void 0)&&b.movedTextToCompare.read(m)))}));const g=EditorContextKeys.diffEditorRenderSideBySideInlineBreakpointReached.bindTo(this._contextKeyService);this._register(autorun(m=>{g.set(this._options.couldShowInlineViewBecauseOfSize.read(m))})),this._editors=this._register(this._instantiationService.createInstance(DiffEditorEditors,this.elements.original,this.elements.modified,this._options,i,(m,b,_,C)=>this._createInnerEditor(m,b,_,C))),this._sash=derivedWithStore(this,(m,b)=>{const _=this._options.renderSideBySide.read(m);if(this.elements.root.classList.toggle("side-by-side",_),!_)return;const C=b.add(new DiffEditorSash(this._options,this.elements.root,{height:this._rootSizeObserver.height,width:this._rootSizeObserver.width.map((S,y)=>S-(this._options.renderOverviewRuler.read(y)?OverviewRulerPart.ENTIRE_DIFF_OVERVIEW_WIDTH:0))}));return b.add(autorun(S=>{const y=this._boundarySashes.read(S);y&&C.setBoundarySashes(y)})),C}),this._register(recomputeInitiallyAndOnChange(this._sash)),this._register(autorunWithStore((m,b)=>{this.unchangedRangesFeature=b.add(this._instantiationService.createInstance(readHotReloadableExport(HideUnchangedRegionsFeature,m),this._editors,this._diffModel,this._options))})),this._register(autorunWithStore((m,b)=>{b.add(new(readHotReloadableExport(DiffEditorDecorations,m))(this._editors,this._diffModel,this._options))})),this._register(autorunWithStore((m,b)=>{b.add(this._instantiationService.createInstance(readHotReloadableExport(ViewZoneManager,m),this._editors,this._diffModel,this._options,this,()=>this.unchangedRangesFeature.isUpdatingViewZones))})),this._register(autorunWithStore((m,b)=>{b.add(this._instantiationService.createInstance(readHotReloadableExport(OverviewRulerPart,m),this._editors,this.elements.root,this._diffModel,this._rootSizeObserver.width,this._rootSizeObserver.height,this._layoutInfo.map(_=>_.modifiedEditor),this._options))})),this._register(autorunWithStore((m,b)=>{this._accessibleDiffViewer=b.add(this._register(this._instantiationService.createInstance(readHotReloadableExport(AccessibleDiffViewer,m),this.elements.accessibleDiffViewer,this._accessibleDiffViewerVisible,(_,C)=>this._accessibleDiffViewerShouldBeVisible.set(_,C),this._options.onlyShowAccessibleDiffViewer.map(_=>!_),this._rootSizeObserver.width,this._rootSizeObserver.height,this._diffModel.map((_,C)=>{var S;return(S=_==null?void 0:_.diff.read(C))===null||S===void 0?void 0:S.mappings.map(y=>y.lineRangeMapping)}),this._editors)))}));const f=this._accessibleDiffViewerVisible.map(m=>m?"hidden":"visible");this._register(applyStyle(this.elements.modified,{visibility:f})),this._register(applyStyle(this.elements.original,{visibility:f})),this._createDiffEditorContributions(),s.addDiffEditor(this),this._register(recomputeInitiallyAndOnChange(this._layoutInfo)),this._register(autorunWithStore((m,b)=>{this.movedBlocksLinesPart.set(b.add(new(readHotReloadableExport(MovedBlocksLinesPart,m))(this.elements.root,this._diffModel,this._layoutInfo.map(_=>_.originalEditor),this._layoutInfo.map(_=>_.modifiedEditor),this._editors)),void 0)})),this._register(applyStyle(this.elements.overlay,{width:this._layoutInfo.map((m,b)=>m.originalEditor.width+(this._options.renderSideBySide.read(b)?0:m.modifiedEditor.width)),visibility:derived(m=>{var b,_;return this._options.hideUnchangedRegions.read(m)&&((_=(b=this._diffModel.read(m))===null||b===void 0?void 0:b.diff.read(m))===null||_===void 0?void 0:_.mappings.length)===0?"visible":"hidden"})})),this._register(this._editors.modified.onMouseDown(m=>{var b,_;if(!m.event.rightButton&&m.target.position&&(!((b=m.target.element)===null||b===void 0)&&b.className.includes("arrow-revert-change"))){const C=m.target.position.lineNumber,S=m.target,y=this._diffModel.get();if(!y)return;const E=(_=y.diff.get())===null||_===void 0?void 0:_.mappings;if(!E)return;const x=E.find(L=>(S==null?void 0:S.detail.afterLineNumber)===L.lineRangeMapping.modified.startLineNumber-1||L.lineRangeMapping.modified.startLineNumber===C);if(!x)return;this.revert(x.lineRangeMapping),m.event.stopPropagation()}})),this._register(Event.runAndSubscribe(this._editors.modified.onDidChangeCursorPosition,m=>{var b,_;if((m==null?void 0:m.reason)===3){const C=(_=(b=this._diffModel.get())===null||b===void 0?void 0:b.diff.get())===null||_===void 0?void 0:_.mappings.find(S=>S.lineRangeMapping.modified.contains(m.position.lineNumber));C!=null&&C.lineRangeMapping.modified.isEmpty?this._audioCueService.playAudioCue(AudioCue.diffLineDeleted,{source:"diffEditor.cursorPositionChanged"}):C!=null&&C.lineRangeMapping.original.isEmpty?this._audioCueService.playAudioCue(AudioCue.diffLineInserted,{source:"diffEditor.cursorPositionChanged"}):C&&this._audioCueService.playAudioCue(AudioCue.diffLineModified,{source:"diffEditor.cursorPositionChanged"})}}));const p=this._diffModel.map((m,b)=>m==null?void 0:m.isDiffUpToDate.read(b));this._register(autorunWithStore((m,b)=>{if(p.read(m)===!1){const _=this._editorProgressService.show(!0,1e3);b.add(toDisposable(()=>_.done()))}}))}_createInnerEditor(e,t,i,n){return e.createInstance(CodeEditorWidget,t,i,n)}_createDiffEditorContributions(){const e=EditorExtensionsRegistry.getDiffEditorContributions();for(const t of e)try{this._register(this._instantiationService.createInstance(t.ctor,this))}catch(i){onUnexpectedError(i)}}get _targetEditor(){return this._editors.modified}getEditorType(){return EditorType.IDiffEditor}layout(e){this._rootSizeObserver.observe(e)}hasTextFocus(){return this._editors.original.hasTextFocus()||this._editors.modified.hasTextFocus()}saveViewState(){var e;const t=this._editors.original.saveViewState(),i=this._editors.modified.saveViewState();return{original:t,modified:i,modelState:(e=this._diffModel.get())===null||e===void 0?void 0:e.serializeState()}}restoreViewState(e){var t;if(e&&e.original&&e.modified){const i=e;this._editors.original.restoreViewState(i.original),this._editors.modified.restoreViewState(i.modified),i.modelState&&((t=this._diffModel.get())===null||t===void 0||t.restoreSerializedState(i.modelState))}}createViewModel(e){return this._instantiationService.createInstance(DiffEditorViewModel,e,this._options,this)}getModel(){var e,t;return(t=(e=this._diffModel.get())===null||e===void 0?void 0:e.model)!==null&&t!==void 0?t:null}setModel(e){!e&&this._diffModel.get()&&this._accessibleDiffViewer.close();const t=e?"model"in e?e:this.createViewModel(e):void 0;this._editors.original.setModel(t?t.model.original:null),this._editors.modified.setModel(t?t.model.modified:null),transaction(i=>{this._diffModel.set(t,i)})}updateOptions(e){this._options.updateOptions(e)}getContainerDomNode(){return this._domElement}getOriginalEditor(){return this._editors.original}getModifiedEditor(){return this._editors.modified}getLineChanges(){var e;const t=(e=this._diffModel.get())===null||e===void 0?void 0:e.diff.get();return t?toLineChanges(t):null}revert(e){var t;const i=(t=this._diffModel.get())===null||t===void 0?void 0:t.model;if(!i)return;const n=e.innerChanges?e.innerChanges.map(r=>({range:r.modifiedRange,text:i.original.getValueInRange(r.originalRange)})):[{range:e.modified.toExclusiveRange(),text:i.original.getValueInRange(e.original.toExclusiveRange())}];this._editors.modified.executeEdits("diffEditor",n)}accessibleDiffViewerNext(){this._accessibleDiffViewer.next()}accessibleDiffViewerPrev(){this._accessibleDiffViewer.prev()}mapToOtherSide(){var e,t;const i=this._editors.modified.hasWidgetFocus(),n=i?this._editors.modified:this._editors.original,r=i?this._editors.original:this._editors.modified;let s;const a=n.getSelection();if(a){const l=(t=(e=this._diffModel.get())===null||e===void 0?void 0:e.diff.get())===null||t===void 0?void 0:t.mappings.map(d=>i?d.lineRangeMapping.flip():d.lineRangeMapping);if(l){const d=translatePosition(a.getStartPosition(),l),c=translatePosition(a.getEndPosition(),l);s=Range$2.plusRange(d,c)}}return{destination:r,destinationSelection:s}}switchSide(){const{destination:e,destinationSelection:t}=this.mapToOtherSide();e.focus(),t&&e.setSelection(t)}exitCompareMove(){const e=this._diffModel.get();e&&e.movedTextToCompare.set(void 0,void 0)}collapseAllUnchangedRegions(){var e;const t=(e=this._diffModel.get())===null||e===void 0?void 0:e.unchangedRegions.get();t&&transaction(i=>{for(const n of t)n.collapseAll(i)})}showAllUnchangedRegions(){var e;const t=(e=this._diffModel.get())===null||e===void 0?void 0:e.unchangedRegions.get();t&&transaction(i=>{for(const n of t)n.showAll(i)})}};DiffEditorWidget=__decorate$1r([__param$1r(3,IContextKeyService),__param$1r(4,IInstantiationService),__param$1r(5,ICodeEditorService),__param$1r(6,IAudioCueService),__param$1r(7,IEditorProgressService)],DiffEditorWidget);function translatePosition(o,e){const t=findLast(e,n=>n.original.startLineNumber<=o.lineNumber);if(!t)return Range$2.fromPositions(o);if(t.original.endLineNumberExclusive<=o.lineNumber){const n=o.lineNumber-t.original.endLineNumberExclusive+t.modified.endLineNumberExclusive;return Range$2.fromPositions(new Position$1(n,o.column))}if(!t.innerChanges)return Range$2.fromPositions(new Position$1(t.modified.startLineNumber,1));const i=findLast(t.innerChanges,n=>n.originalRange.getStartPosition().isBeforeOrEqual(o));if(!i){const n=o.lineNumber-t.original.startLineNumber+t.modified.startLineNumber;return Range$2.fromPositions(new Position$1(n,o.column))}if(i.originalRange.containsPosition(o))return i.modifiedRange;{const n=lengthBetweenPositions(i.originalRange.getEndPosition(),o);return Range$2.fromPositions(addLength(i.modifiedRange.getEndPosition(),n))}}function lengthBetweenPositions(o,e){return o.lineNumber===e.lineNumber?new LengthObj(0,e.column-o.column):new LengthObj(e.lineNumber-o.lineNumber,e.column-1)}function addLength(o,e){return e.lineCount===0?new Position$1(o.lineNumber,o.column+e.columnCount):new Position$1(o.lineNumber+e.lineCount,e.columnCount+1)}function toLineChanges(o){return o.mappings.map(e=>{const t=e.lineRangeMapping;let i,n,r,s,a=t.innerChanges;return t.original.isEmpty?(i=t.original.startLineNumber-1,n=0,a=void 0):(i=t.original.startLineNumber,n=t.original.endLineNumberExclusive-1),t.modified.isEmpty?(r=t.modified.startLineNumber-1,s=0,a=void 0):(r=t.modified.startLineNumber,s=t.modified.endLineNumberExclusive-1),{originalStartLineNumber:i,originalEndLineNumber:n,modifiedStartLineNumber:r,modifiedEndLineNumber:s,charChanges:a==null?void 0:a.map(l=>({originalStartLineNumber:l.originalRange.startLineNumber,originalStartColumn:l.originalRange.startColumn,originalEndLineNumber:l.originalRange.endLineNumber,originalEndColumn:l.originalRange.endColumn,modifiedStartLineNumber:l.modifiedRange.startLineNumber,modifiedStartColumn:l.modifiedRange.startColumn,modifiedEndLineNumber:l.modifiedRange.endLineNumber,modifiedEndColumn:l.modifiedRange.endColumn}))}})}var __decorate$1q=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1q=function(o,e){return function(t,i){e(t,i,o)}};let LAST_GENERATED_COMMAND_ID=0,ariaDomNodeCreated=!1;function createAriaDomNode(o){if(!o){if(ariaDomNodeCreated)return;ariaDomNodeCreated=!0}setARIAContainer(o||document.body)}let StandaloneCodeEditor=class extends CodeEditorWidget{constructor(e,t,i,n,r,s,a,l,d,c,u,g){const f=Object.assign({},t);f.ariaLabel=f.ariaLabel||StandaloneCodeEditorNLS.editorViewAccessibleLabel,f.ariaLabel=f.ariaLabel+";"+StandaloneCodeEditorNLS.accessibilityHelpMessage,super(e,f,{},i,n,r,s,l,d,c,u,g),a instanceof StandaloneKeybindingService?this._standaloneKeybindingService=a:this._standaloneKeybindingService=null,createAriaDomNode(f.ariaContainerElement)}addCommand(e,t,i){if(!this._standaloneKeybindingService)return console.warn("Cannot add command because the editor is configured with an unrecognized KeybindingService"),null;const n="DYNAMIC_"+ ++LAST_GENERATED_COMMAND_ID,r=ContextKeyExpr.deserialize(i);return this._standaloneKeybindingService.addDynamicKeybinding(n,e,t,r),n}createContextKey(e,t){return this._contextKeyService.createKey(e,t)}addAction(e){if(typeof e.id!="string"||typeof e.label!="string"||typeof e.run!="function")throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");if(!this._standaloneKeybindingService)return console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),Disposable.None;const t=e.id,i=e.label,n=ContextKeyExpr.and(ContextKeyExpr.equals("editorId",this.getId()),ContextKeyExpr.deserialize(e.precondition)),r=e.keybindings,s=ContextKeyExpr.and(n,ContextKeyExpr.deserialize(e.keybindingContext)),a=e.contextMenuGroupId||null,l=e.contextMenuOrder||0,d=(f,...p)=>Promise.resolve(e.run(this,...p)),c=new DisposableStore,u=this.getId()+":"+t;if(c.add(CommandsRegistry.registerCommand(u,d)),a){const f={command:{id:u,title:i},when:n,group:a,order:l};c.add(MenuRegistry.appendMenuItem(MenuId.EditorContext,f))}if(Array.isArray(r))for(const f of r)c.add(this._standaloneKeybindingService.addDynamicKeybinding(u,f,d,s));const g=new InternalEditorAction(u,i,i,n,(...f)=>Promise.resolve(e.run(this,...f)),this._contextKeyService);return this._actions.set(t,g),c.add(toDisposable(()=>{this._actions.delete(t)})),c}_triggerCommand(e,t){if(this._codeEditorService instanceof StandaloneCodeEditorService)try{this._codeEditorService.setActiveCodeEditor(this),super._triggerCommand(e,t)}finally{this._codeEditorService.setActiveCodeEditor(null)}else super._triggerCommand(e,t)}};StandaloneCodeEditor=__decorate$1q([__param$1q(2,IInstantiationService),__param$1q(3,ICodeEditorService),__param$1q(4,ICommandService),__param$1q(5,IContextKeyService),__param$1q(6,IKeybindingService),__param$1q(7,IThemeService),__param$1q(8,INotificationService),__param$1q(9,IAccessibilityService),__param$1q(10,ILanguageConfigurationService),__param$1q(11,ILanguageFeaturesService)],StandaloneCodeEditor);let StandaloneEditor=class extends StandaloneCodeEditor{constructor(e,t,i,n,r,s,a,l,d,c,u,g,f,p,m){const b=Object.assign({},t);updateConfigurationService(c,b,!1);const _=l.registerEditorContainer(e);typeof b.theme=="string"&&l.setTheme(b.theme),typeof b.autoDetectHighContrast<"u"&&l.setAutoDetectHighContrast(!!b.autoDetectHighContrast);const C=b.model;delete b.model,super(e,b,i,n,r,s,a,l,d,u,p,m),this._configurationService=c,this._standaloneThemeService=l,this._register(_);let S;if(typeof C>"u"){const y=f.getLanguageIdByMimeType(b.language)||b.language||PLAINTEXT_LANGUAGE_ID;S=createTextModel(g,f,b.value||"",y,void 0),this._ownsModel=!0}else S=C,this._ownsModel=!1;if(this._attachModel(S),S){const y={oldModelUrl:null,newModelUrl:S.uri};this._onDidChangeModel.fire(y)}}dispose(){super.dispose()}updateOptions(e){updateConfigurationService(this._configurationService,e,!1),typeof e.theme=="string"&&this._standaloneThemeService.setTheme(e.theme),typeof e.autoDetectHighContrast<"u"&&this._standaloneThemeService.setAutoDetectHighContrast(!!e.autoDetectHighContrast),super.updateOptions(e)}_postDetachModelCleanup(e){super._postDetachModelCleanup(e),e&&this._ownsModel&&(e.dispose(),this._ownsModel=!1)}};StandaloneEditor=__decorate$1q([__param$1q(2,IInstantiationService),__param$1q(3,ICodeEditorService),__param$1q(4,ICommandService),__param$1q(5,IContextKeyService),__param$1q(6,IKeybindingService),__param$1q(7,IStandaloneThemeService),__param$1q(8,INotificationService),__param$1q(9,IConfigurationService),__param$1q(10,IAccessibilityService),__param$1q(11,IModelService),__param$1q(12,ILanguageService),__param$1q(13,ILanguageConfigurationService),__param$1q(14,ILanguageFeaturesService)],StandaloneEditor);let StandaloneDiffEditor2=class extends DiffEditorWidget{constructor(e,t,i,n,r,s,a,l,d,c,u,g){const f=Object.assign({},t);updateConfigurationService(l,f,!0);const p=s.registerEditorContainer(e);typeof f.theme=="string"&&s.setTheme(f.theme),typeof f.autoDetectHighContrast<"u"&&s.setAutoDetectHighContrast(!!f.autoDetectHighContrast),super(e,f,{},n,i,r,g,c),this._configurationService=l,this._standaloneThemeService=s,this._register(p)}dispose(){super.dispose()}updateOptions(e){updateConfigurationService(this._configurationService,e,!0),typeof e.theme=="string"&&this._standaloneThemeService.setTheme(e.theme),typeof e.autoDetectHighContrast<"u"&&this._standaloneThemeService.setAutoDetectHighContrast(!!e.autoDetectHighContrast),super.updateOptions(e)}_createInnerEditor(e,t,i){return e.createInstance(StandaloneCodeEditor,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)}};StandaloneDiffEditor2=__decorate$1q([__param$1q(2,IInstantiationService),__param$1q(3,IContextKeyService),__param$1q(4,ICodeEditorService),__param$1q(5,IStandaloneThemeService),__param$1q(6,INotificationService),__param$1q(7,IConfigurationService),__param$1q(8,IContextMenuService),__param$1q(9,IEditorProgressService),__param$1q(10,IClipboardService),__param$1q(11,IAudioCueService)],StandaloneDiffEditor2);function createTextModel(o,e,t,i,n){if(t=t||"",!i){const r=t.indexOf(`
- `);let s=t;return r!==-1&&(s=t.substring(0,r)),doCreateModel(o,t,e.createByFilepathOrFirstLine(n||null,s),n)}return doCreateModel(o,t,e.createById(i),n)}function doCreateModel(o,e,t,i){return o.createModel(e,t,i)}var __awaiter$19=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};function create(o,e,t){return StandaloneServices.initialize(t||{}).createInstance(StandaloneEditor,o,e)}function onDidCreateEditor(o){return StandaloneServices.get(ICodeEditorService).onCodeEditorAdd(t=>{o(t)})}function onDidCreateDiffEditor(o){return StandaloneServices.get(ICodeEditorService).onDiffEditorAdd(t=>{o(t)})}function getEditors(){return StandaloneServices.get(ICodeEditorService).listCodeEditors()}function getDiffEditors(){return StandaloneServices.get(ICodeEditorService).listDiffEditors()}function createDiffEditor(o,e,t){return StandaloneServices.initialize(t||{}).createInstance(StandaloneDiffEditor2,o,e)}function addCommand(o){if(typeof o.id!="string"||typeof o.run!="function")throw new Error("Invalid command descriptor, `id` and `run` are required properties!");return CommandsRegistry.registerCommand(o.id,o.run)}function addEditorAction(o){if(typeof o.id!="string"||typeof o.label!="string"||typeof o.run!="function")throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");const e=ContextKeyExpr.deserialize(o.precondition),t=(n,...r)=>EditorCommand.runEditorCommand(n,r,e,(s,a,l)=>Promise.resolve(o.run(a,...l))),i=new DisposableStore;if(i.add(CommandsRegistry.registerCommand(o.id,t)),o.contextMenuGroupId){const n={command:{id:o.id,title:o.label},when:e,group:o.contextMenuGroupId,order:o.contextMenuOrder||0};i.add(MenuRegistry.appendMenuItem(MenuId.EditorContext,n))}if(Array.isArray(o.keybindings)){const n=StandaloneServices.get(IKeybindingService);if(!(n instanceof StandaloneKeybindingService))console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService");else{const r=ContextKeyExpr.and(e,ContextKeyExpr.deserialize(o.keybindingContext));i.add(n.addDynamicKeybindings(o.keybindings.map(s=>({keybinding:s,command:o.id,when:r}))))}}return i}function addKeybindingRule(o){return addKeybindingRules([o])}function addKeybindingRules(o){const e=StandaloneServices.get(IKeybindingService);return e instanceof StandaloneKeybindingService?e.addDynamicKeybindings(o.map(t=>({keybinding:t.keybinding,command:t.command,commandArgs:t.commandArgs,when:ContextKeyExpr.deserialize(t.when)}))):(console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),Disposable.None)}function createModel(o,e,t){const i=StandaloneServices.get(ILanguageService),n=i.getLanguageIdByMimeType(e)||e;return createTextModel(StandaloneServices.get(IModelService),i,o,n,t)}function setModelLanguage(o,e){const t=StandaloneServices.get(ILanguageService),i=t.getLanguageIdByMimeType(e)||e||PLAINTEXT_LANGUAGE_ID;o.setLanguage(t.createById(i))}function setModelMarkers(o,e,t){o&&StandaloneServices.get(IMarkerService).changeOne(e,o.uri,t)}function removeAllMarkers(o){StandaloneServices.get(IMarkerService).changeAll(o,[])}function getModelMarkers(o){return StandaloneServices.get(IMarkerService).read(o)}function onDidChangeMarkers(o){return StandaloneServices.get(IMarkerService).onMarkerChanged(o)}function getModel(o){return StandaloneServices.get(IModelService).getModel(o)}function getModels(){return StandaloneServices.get(IModelService).getModels()}function onDidCreateModel(o){return StandaloneServices.get(IModelService).onModelAdded(o)}function onWillDisposeModel(o){return StandaloneServices.get(IModelService).onModelRemoved(o)}function onDidChangeModelLanguage(o){return StandaloneServices.get(IModelService).onModelLanguageChanged(t=>{o({model:t.model,oldLanguage:t.oldLanguageId})})}function createWebWorker(o){return createWebWorker$1(StandaloneServices.get(IModelService),StandaloneServices.get(ILanguageConfigurationService),o)}function colorizeElement(o,e){const t=StandaloneServices.get(ILanguageService),i=StandaloneServices.get(IStandaloneThemeService);return Colorizer.colorizeElement(i,t,o,e).then(()=>{i.registerEditorContainer(o)})}function colorize(o,e,t){const i=StandaloneServices.get(ILanguageService);return StandaloneServices.get(IStandaloneThemeService).registerEditorContainer(document.body),Colorizer.colorize(i,o,e,t)}function colorizeModelLine(o,e,t=4){return StandaloneServices.get(IStandaloneThemeService).registerEditorContainer(document.body),Colorizer.colorizeModelLine(o,e,t)}function getSafeTokenizationSupport$1(o){const e=TokenizationRegistry.get(o);return e||{getInitialState:()=>NullState,tokenize:(t,i,n)=>nullTokenize(o,n)}}function tokenize(o,e){TokenizationRegistry.getOrCreate(e);const t=getSafeTokenizationSupport$1(e),i=splitLines(o),n=[];let r=t.getInitialState();for(let s=0,a=i.length;s<a;s++){const l=i[s],d=t.tokenize(l,!0,r);n[s]=d.tokens,r=d.endState}return n}function defineTheme(o,e){StandaloneServices.get(IStandaloneThemeService).defineTheme(o,e)}function setTheme(o){StandaloneServices.get(IStandaloneThemeService).setTheme(o)}function remeasureFonts(){FontMeasurements.clearAllFontInfos()}function registerCommand$1(o,e){return CommandsRegistry.registerCommand({id:o,handler:e})}function registerLinkOpener(o){return StandaloneServices.get(IOpenerService).registerOpener({open(t){return __awaiter$19(this,void 0,void 0,function*(){return typeof t=="string"&&(t=URI.parse(t)),o.open(t)})}})}function registerEditorOpener(o){return StandaloneServices.get(ICodeEditorService).registerCodeEditorOpenHandler((t,i,n)=>__awaiter$19(this,void 0,void 0,function*(){var r;if(!i)return null;const s=(r=t.options)===null||r===void 0?void 0:r.selection;let a;return s&&typeof s.endLineNumber=="number"&&typeof s.endColumn=="number"?a=s:s&&(a={lineNumber:s.startLineNumber,column:s.startColumn}),(yield o.openCodeEditor(i,t.resource,a))?i:null}))}function createMonacoEditorAPI(){return{create,getEditors,getDiffEditors,onDidCreateEditor,onDidCreateDiffEditor,createDiffEditor,addCommand,addEditorAction,addKeybindingRule,addKeybindingRules,createModel,setModelLanguage,setModelMarkers,getModelMarkers,removeAllMarkers,onDidChangeMarkers,getModels,getModel,onDidCreateModel,onWillDisposeModel,onDidChangeModelLanguage,createWebWorker,colorizeElement,colorize,colorizeModelLine,tokenize,defineTheme,setTheme,remeasureFonts,registerCommand:registerCommand$1,registerLinkOpener,registerEditorOpener,AccessibilitySupport,ContentWidgetPositionPreference,CursorChangeReason,DefaultEndOfLine,EditorAutoIndentStrategy,EditorOption,EndOfLinePreference,EndOfLineSequence,MinimapPosition:MinimapPosition$1,MouseTargetType,OverlayWidgetPositionPreference,OverviewRulerLane:OverviewRulerLane$1,GlyphMarginLane:GlyphMarginLane$1,RenderLineNumbersType,RenderMinimap,ScrollbarVisibility,ScrollType,TextEditorCursorBlinkingStyle,TextEditorCursorStyle,TrackedRangeStickiness,WrappingIndent,InjectedTextCursorStops:InjectedTextCursorStops$1,PositionAffinity,ConfigurationChangedEvent,BareFontInfo,FontInfo,TextModelResolvedOptions,FindMatch,ApplyUpdateResult,EditorZoom,EditorType,EditorOptions}}function isArrayOf(o,e){if(!e||!Array.isArray(e))return!1;for(const t of e)if(!o(t))return!1;return!0}function bool(o,e){return typeof o=="boolean"?o:e}function string(o,e){return typeof o=="string"?o:e}function arrayToHash(o){const e={};for(const t of o)e[t]=!0;return e}function createKeywordMatcher(o,e=!1){e&&(o=o.map(function(i){return i.toLowerCase()}));const t=arrayToHash(o);return e?function(i){return t[i.toLowerCase()]!==void 0&&t.hasOwnProperty(i.toLowerCase())}:function(i){return t[i]!==void 0&&t.hasOwnProperty(i)}}function compileRegExp(o,e){e=e.replace(/@@/g,"");let t=0,i;do i=!1,e=e.replace(/@(\w+)/g,function(r,s){i=!0;let a="";if(typeof o[s]=="string")a=o[s];else if(o[s]&&o[s]instanceof RegExp)a=o[s].source;else throw o[s]===void 0?createError(o,"language definition does not contain attribute '"+s+"', used at: "+e):createError(o,"attribute reference '"+s+"' must be a string, used at: "+e);return empty(a)?"":"(?:"+a+")"}),t++;while(i&&t<5);e=e.replace(/\x01/g,"@");const n=(o.ignoreCase?"i":"")+(o.unicode?"u":"");return new RegExp(e,n)}function selectScrutinee(o,e,t,i){if(i<0)return o;if(i<e.length)return e[i];if(i>=100){i=i-100;const n=t.split(".");if(n.unshift(t),i<n.length)return n[i]}return null}function createGuard(o,e,t,i){let n=-1,r=t,s=t.match(/^\$(([sS]?)(\d\d?)|#)(.*)$/);s&&(s[3]&&(n=parseInt(s[3]),s[2]&&(n=n+100)),r=s[4]);let a="~",l=r;!r||r.length===0?(a="!=",l=""):/^\w*$/.test(l)?a="==":(s=r.match(/^(@|!@|~|!~|==|!=)(.*)$/),s&&(a=s[1],l=s[2]));let d;if((a==="~"||a==="!~")&&/^(\w|\|)*$/.test(l)){const c=createKeywordMatcher(l.split("|"),o.ignoreCase);d=function(u){return a==="~"?c(u):!c(u)}}else if(a==="@"||a==="!@"){const c=o[l];if(!c)throw createError(o,"the @ match target '"+l+"' is not defined, in rule: "+e);if(!isArrayOf(function(g){return typeof g=="string"},c))throw createError(o,"the @ match target '"+l+"' must be an array of strings, in rule: "+e);const u=createKeywordMatcher(c,o.ignoreCase);d=function(g){return a==="@"?u(g):!u(g)}}else if(a==="~"||a==="!~")if(l.indexOf("$")<0){const c=compileRegExp(o,"^"+l+"$");d=function(u){return a==="~"?c.test(u):!c.test(u)}}else d=function(c,u,g,f){return compileRegExp(o,"^"+substituteMatches(o,l,u,g,f)+"$").test(c)};else if(l.indexOf("$")<0){const c=fixCase(o,l);d=function(u){return a==="=="?u===c:u!==c}}else{const c=fixCase(o,l);d=function(u,g,f,p,m){const b=substituteMatches(o,c,g,f,p);return a==="=="?u===b:u!==b}}return n===-1?{name:t,value:i,test:function(c,u,g,f){return d(c,c,u,g,f)}}:{name:t,value:i,test:function(c,u,g,f){const p=selectScrutinee(c,u,g,n);return d(p||"",c,u,g,f)}}}function compileAction(o,e,t){if(t){if(typeof t=="string")return t;if(t.token||t.token===""){if(typeof t.token!="string")throw createError(o,"a 'token' attribute must be of type string, in rule: "+e);{const i={token:t.token};if(t.token.indexOf("$")>=0&&(i.tokenSubst=!0),typeof t.bracket=="string")if(t.bracket==="@open")i.bracket=1;else if(t.bracket==="@close")i.bracket=-1;else throw createError(o,"a 'bracket' attribute must be either '@open' or '@close', in rule: "+e);if(t.next){if(typeof t.next!="string")throw createError(o,"the next state must be a string value in rule: "+e);{let n=t.next;if(!/^(@pop|@push|@popall)$/.test(n)&&(n[0]==="@"&&(n=n.substr(1)),n.indexOf("$")<0&&!stateExists(o,substituteMatches(o,n,"",[],""))))throw createError(o,"the next state '"+t.next+"' is not defined in rule: "+e);i.next=n}}return typeof t.goBack=="number"&&(i.goBack=t.goBack),typeof t.switchTo=="string"&&(i.switchTo=t.switchTo),typeof t.log=="string"&&(i.log=t.log),typeof t.nextEmbedded=="string"&&(i.nextEmbedded=t.nextEmbedded,o.usesEmbedded=!0),i}}else if(Array.isArray(t)){const i=[];for(let n=0,r=t.length;n<r;n++)i[n]=compileAction(o,e,t[n]);return{group:i}}else if(t.cases){const i=[];for(const r in t.cases)if(t.cases.hasOwnProperty(r)){const s=compileAction(o,e,t.cases[r]);r==="@default"||r==="@"||r===""?i.push({test:void 0,value:s,name:r}):r==="@eos"?i.push({test:function(a,l,d,c){return c},value:s,name:r}):i.push(createGuard(o,e,r,s))}const n=o.defaultToken;return{test:function(r,s,a,l){for(const d of i)if(!d.test||d.test(r,s,a,l))return d.value;return n}}}else throw createError(o,"an action must be a string, an object with a 'token' or 'cases' attribute, or an array of actions; in rule: "+e)}else return{token:""}}class Rule{constructor(e){this.regex=new RegExp(""),this.action={token:""},this.matchOnlyAtLineStart=!1,this.name="",this.name=e}setRegex(e,t){let i;if(typeof t=="string")i=t;else if(t instanceof RegExp)i=t.source;else throw createError(e,"rules must start with a match string or regular expression: "+this.name);this.matchOnlyAtLineStart=i.length>0&&i[0]==="^",this.name=this.name+": "+i,this.regex=compileRegExp(e,"^(?:"+(this.matchOnlyAtLineStart?i.substr(1):i)+")")}setAction(e,t){this.action=compileAction(e,this.name,t)}}function compile(o,e){if(!e||typeof e!="object")throw new Error("Monarch: expecting a language definition object");const t={};t.languageId=o,t.includeLF=bool(e.includeLF,!1),t.noThrow=!1,t.maxStack=100,t.start=typeof e.start=="string"?e.start:null,t.ignoreCase=bool(e.ignoreCase,!1),t.unicode=bool(e.unicode,!1),t.tokenPostfix=string(e.tokenPostfix,"."+t.languageId),t.defaultToken=string(e.defaultToken,"source"),t.usesEmbedded=!1;const i=e;i.languageId=o,i.includeLF=t.includeLF,i.ignoreCase=t.ignoreCase,i.unicode=t.unicode,i.noThrow=t.noThrow,i.usesEmbedded=t.usesEmbedded,i.stateNames=e.tokenizer,i.defaultToken=t.defaultToken;function n(s,a,l){for(const d of l){let c=d.include;if(c){if(typeof c!="string")throw createError(t,"an 'include' attribute must be a string at: "+s);if(c[0]==="@"&&(c=c.substr(1)),!e.tokenizer[c])throw createError(t,"include target '"+c+"' is not defined at: "+s);n(s+"."+c,a,e.tokenizer[c])}else{const u=new Rule(s);if(Array.isArray(d)&&d.length>=1&&d.length<=3)if(u.setRegex(i,d[0]),d.length>=3)if(typeof d[1]=="string")u.setAction(i,{token:d[1],next:d[2]});else if(typeof d[1]=="object"){const g=d[1];g.next=d[2],u.setAction(i,g)}else throw createError(t,"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: "+s);else u.setAction(i,d[1]);else{if(!d.regex)throw createError(t,"a rule must either be an array, or an object with a 'regex' or 'include' field at: "+s);d.name&&typeof d.name=="string"&&(u.name=d.name),d.matchOnlyAtStart&&(u.matchOnlyAtLineStart=bool(d.matchOnlyAtLineStart,!1)),u.setRegex(i,d.regex),u.setAction(i,d.action)}a.push(u)}}}if(!e.tokenizer||typeof e.tokenizer!="object")throw createError(t,"a language definition must define the 'tokenizer' attribute as an object");t.tokenizer=[];for(const s in e.tokenizer)if(e.tokenizer.hasOwnProperty(s)){t.start||(t.start=s);const a=e.tokenizer[s];t.tokenizer[s]=new Array,n("tokenizer."+s,t.tokenizer[s],a)}if(t.usesEmbedded=i.usesEmbedded,e.brackets){if(!Array.isArray(e.brackets))throw createError(t,"the 'brackets' attribute must be defined as an array")}else e.brackets=[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}];const r=[];for(const s of e.brackets){let a=s;if(a&&Array.isArray(a)&&a.length===3&&(a={token:a[2],open:a[0],close:a[1]}),a.open===a.close)throw createError(t,"open and close brackets in a 'brackets' attribute must be different: "+a.open+`
- hint: use the 'bracket' attribute if matching on equal brackets is required.`);if(typeof a.open=="string"&&typeof a.token=="string"&&typeof a.close=="string")r.push({token:a.token+t.tokenPostfix,open:fixCase(t,a.open),close:fixCase(t,a.close)});else throw createError(t,"every element in the 'brackets' array must be a '{open,close,token}' object or array")}return t.brackets=r,t.noThrow=!0,t}var __awaiter$18=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};function register(o){ModesRegistry.registerLanguage(o)}function getLanguages(){let o=[];return o=o.concat(ModesRegistry.getLanguages()),o}function getEncodedLanguageId(o){return StandaloneServices.get(ILanguageService).languageIdCodec.encodeLanguageId(o)}function onLanguage(o,e){return StandaloneServices.withServices(()=>{const i=StandaloneServices.get(ILanguageService).onDidRequestRichLanguageFeatures(n=>{n===o&&(i.dispose(),e())});return i})}function onLanguageEncountered(o,e){return StandaloneServices.withServices(()=>{const i=StandaloneServices.get(ILanguageService).onDidRequestBasicLanguageFeatures(n=>{n===o&&(i.dispose(),e())});return i})}function setLanguageConfiguration(o,e){if(!StandaloneServices.get(ILanguageService).isRegisteredLanguageId(o))throw new Error(`Cannot set configuration for unknown language ${o}`);return StandaloneServices.get(ILanguageConfigurationService).register(o,e,100)}class EncodedTokenizationSupportAdapter{constructor(e,t){this._languageId=e,this._actual=t}dispose(){}getInitialState(){return this._actual.getInitialState()}tokenize(e,t,i){if(typeof this._actual.tokenize=="function")return TokenizationSupportAdapter.adaptTokenize(this._languageId,this._actual,e,i);throw new Error("Not supported!")}tokenizeEncoded(e,t,i){const n=this._actual.tokenizeEncoded(e,i);return new EncodedTokenizationResult(n.tokens,n.endState)}}class TokenizationSupportAdapter{constructor(e,t,i,n){this._languageId=e,this._actual=t,this._languageService=i,this._standaloneThemeService=n}dispose(){}getInitialState(){return this._actual.getInitialState()}static _toClassicTokens(e,t){const i=[];let n=0;for(let r=0,s=e.length;r<s;r++){const a=e[r];let l=a.startIndex;r===0?l=0:l<n&&(l=n),i[r]=new Token$2(l,a.scopes,t),n=l}return i}static adaptTokenize(e,t,i,n){const r=t.tokenize(i,n),s=TokenizationSupportAdapter._toClassicTokens(r.tokens,e);let a;return r.endState.equals(n)?a=n:a=r.endState,new TokenizationResult(s,a)}tokenize(e,t,i){return TokenizationSupportAdapter.adaptTokenize(this._languageId,this._actual,e,i)}_toBinaryTokens(e,t){const i=e.encodeLanguageId(this._languageId),n=this._standaloneThemeService.getColorTheme().tokenTheme,r=[];let s=0,a=0;for(let d=0,c=t.length;d<c;d++){const u=t[d],g=n.match(i,u.scopes)|1024;if(s>0&&r[s-1]===g)continue;let f=u.startIndex;d===0?f=0:f<a&&(f=a),r[s++]=f,r[s++]=g,a=f}const l=new Uint32Array(s);for(let d=0;d<s;d++)l[d]=r[d];return l}tokenizeEncoded(e,t,i){const n=this._actual.tokenize(e,i),r=this._toBinaryTokens(this._languageService.languageIdCodec,n.tokens);let s;return n.endState.equals(i)?s=i:s=n.endState,new EncodedTokenizationResult(r,s)}}function isATokensProvider(o){return typeof o.getInitialState=="function"}function isEncodedTokensProvider(o){return"tokenizeEncoded"in o}function isThenable(o){return o&&typeof o.then=="function"}function setColorMap(o){const e=StandaloneServices.get(IStandaloneThemeService);if(o){const t=[null];for(let i=1,n=o.length;i<n;i++)t[i]=Color.fromHex(o[i]);e.setColorMapOverride(t)}else e.setColorMapOverride(null)}function createTokenizationSupportAdapter(o,e){return isEncodedTokensProvider(e)?new EncodedTokenizationSupportAdapter(o,e):new TokenizationSupportAdapter(o,e,StandaloneServices.get(ILanguageService),StandaloneServices.get(IStandaloneThemeService))}function registerTokensProviderFactory(o,e){const t=new LazyTokenizationSupport(()=>__awaiter$18(this,void 0,void 0,function*(){const i=yield Promise.resolve(e.create());return i?isATokensProvider(i)?createTokenizationSupportAdapter(o,i):new MonarchTokenizer(StandaloneServices.get(ILanguageService),StandaloneServices.get(IStandaloneThemeService),o,compile(o,i),StandaloneServices.get(IConfigurationService)):null}));return TokenizationRegistry.registerFactory(o,t)}function setTokensProvider(o,e){if(!StandaloneServices.get(ILanguageService).isRegisteredLanguageId(o))throw new Error(`Cannot set tokens provider for unknown language ${o}`);return isThenable(e)?registerTokensProviderFactory(o,{create:()=>e}):TokenizationRegistry.register(o,createTokenizationSupportAdapter(o,e))}function setMonarchTokensProvider(o,e){const t=i=>new MonarchTokenizer(StandaloneServices.get(ILanguageService),StandaloneServices.get(IStandaloneThemeService),o,compile(o,i),StandaloneServices.get(IConfigurationService));return isThenable(e)?registerTokensProviderFactory(o,{create:()=>e}):TokenizationRegistry.register(o,t(e))}function registerReferenceProvider(o,e){return StandaloneServices.get(ILanguageFeaturesService).referenceProvider.register(o,e)}function registerRenameProvider(o,e){return StandaloneServices.get(ILanguageFeaturesService).renameProvider.register(o,e)}function registerSignatureHelpProvider(o,e){return StandaloneServices.get(ILanguageFeaturesService).signatureHelpProvider.register(o,e)}function registerHoverProvider(o,e){return StandaloneServices.get(ILanguageFeaturesService).hoverProvider.register(o,{provideHover:(i,n,r)=>{const s=i.getWordAtPosition(n);return Promise.resolve(e.provideHover(i,n,r)).then(a=>{if(a)return!a.range&&s&&(a.range=new Range$2(n.lineNumber,s.startColumn,n.lineNumber,s.endColumn)),a.range||(a.range=new Range$2(n.lineNumber,n.column,n.lineNumber,n.column)),a})}})}function registerDocumentSymbolProvider(o,e){return StandaloneServices.get(ILanguageFeaturesService).documentSymbolProvider.register(o,e)}function registerDocumentHighlightProvider(o,e){return StandaloneServices.get(ILanguageFeaturesService).documentHighlightProvider.register(o,e)}function registerLinkedEditingRangeProvider(o,e){return StandaloneServices.get(ILanguageFeaturesService).linkedEditingRangeProvider.register(o,e)}function registerDefinitionProvider(o,e){return StandaloneServices.get(ILanguageFeaturesService).definitionProvider.register(o,e)}function registerImplementationProvider(o,e){return StandaloneServices.get(ILanguageFeaturesService).implementationProvider.register(o,e)}function registerTypeDefinitionProvider(o,e){return StandaloneServices.get(ILanguageFeaturesService).typeDefinitionProvider.register(o,e)}function registerCodeLensProvider(o,e){return StandaloneServices.get(ILanguageFeaturesService).codeLensProvider.register(o,e)}function registerCodeActionProvider(o,e,t){return StandaloneServices.get(ILanguageFeaturesService).codeActionProvider.register(o,{providedCodeActionKinds:t==null?void 0:t.providedCodeActionKinds,documentation:t==null?void 0:t.documentation,provideCodeActions:(n,r,s,a)=>{const d=StandaloneServices.get(IMarkerService).read({resource:n.uri}).filter(c=>Range$2.areIntersectingOrTouching(c,r));return e.provideCodeActions(n,r,{markers:d,only:s.only,trigger:s.trigger},a)},resolveCodeAction:e.resolveCodeAction})}function registerDocumentFormattingEditProvider(o,e){return StandaloneServices.get(ILanguageFeaturesService).documentFormattingEditProvider.register(o,e)}function registerDocumentRangeFormattingEditProvider(o,e){return StandaloneServices.get(ILanguageFeaturesService).documentRangeFormattingEditProvider.register(o,e)}function registerOnTypeFormattingEditProvider(o,e){return StandaloneServices.get(ILanguageFeaturesService).onTypeFormattingEditProvider.register(o,e)}function registerLinkProvider(o,e){return StandaloneServices.get(ILanguageFeaturesService).linkProvider.register(o,e)}function registerCompletionItemProvider(o,e){return StandaloneServices.get(ILanguageFeaturesService).completionProvider.register(o,e)}function registerColorProvider(o,e){return StandaloneServices.get(ILanguageFeaturesService).colorProvider.register(o,e)}function registerFoldingRangeProvider(o,e){return StandaloneServices.get(ILanguageFeaturesService).foldingRangeProvider.register(o,e)}function registerDeclarationProvider(o,e){return StandaloneServices.get(ILanguageFeaturesService).declarationProvider.register(o,e)}function registerSelectionRangeProvider(o,e){return StandaloneServices.get(ILanguageFeaturesService).selectionRangeProvider.register(o,e)}function registerDocumentSemanticTokensProvider(o,e){return StandaloneServices.get(ILanguageFeaturesService).documentSemanticTokensProvider.register(o,e)}function registerDocumentRangeSemanticTokensProvider(o,e){return StandaloneServices.get(ILanguageFeaturesService).documentRangeSemanticTokensProvider.register(o,e)}function registerInlineCompletionsProvider(o,e){return StandaloneServices.get(ILanguageFeaturesService).inlineCompletionsProvider.register(o,e)}function registerInlayHintsProvider(o,e){return StandaloneServices.get(ILanguageFeaturesService).inlayHintsProvider.register(o,e)}function createMonacoLanguagesAPI(){return{register,getLanguages,onLanguage,onLanguageEncountered,getEncodedLanguageId,setLanguageConfiguration,setColorMap,registerTokensProviderFactory,setTokensProvider,setMonarchTokensProvider,registerReferenceProvider,registerRenameProvider,registerCompletionItemProvider,registerSignatureHelpProvider,registerHoverProvider,registerDocumentSymbolProvider,registerDocumentHighlightProvider,registerLinkedEditingRangeProvider,registerDefinitionProvider,registerImplementationProvider,registerTypeDefinitionProvider,registerCodeLensProvider,registerCodeActionProvider,registerDocumentFormattingEditProvider,registerDocumentRangeFormattingEditProvider,registerOnTypeFormattingEditProvider,registerLinkProvider,registerColorProvider,registerFoldingRangeProvider,registerDeclarationProvider,registerSelectionRangeProvider,registerDocumentSemanticTokensProvider,registerDocumentRangeSemanticTokensProvider,registerInlineCompletionsProvider,registerInlayHintsProvider,DocumentHighlightKind,CompletionItemKind,CompletionItemTag,CompletionItemInsertTextRule,SymbolKind,SymbolTag,IndentAction:IndentAction$1,CompletionTriggerKind,SignatureHelpTriggerKind,InlayHintKind,InlineCompletionTriggerKind,CodeActionTriggerType,FoldingRangeKind,SelectedSuggestionInfo}}const IEditorCancellationTokens=createDecorator("IEditorCancelService"),ctxCancellableOperation=new RawContextKey("cancellableOperation",!1,localize("cancellableOperation","Whether the editor runs a cancellable operation, e.g. like 'Peek References'"));registerSingleton(IEditorCancellationTokens,class{constructor(){this._tokens=new WeakMap}add(o,e){let t=this._tokens.get(o);t||(t=o.invokeWithinContext(n=>{const r=ctxCancellableOperation.bindTo(n.get(IContextKeyService)),s=new LinkedList;return{key:r,tokens:s}}),this._tokens.set(o,t));let i;return t.key.set(!0),i=t.tokens.push(e),()=>{i&&(i(),t.key.set(!t.tokens.isEmpty()),i=void 0)}}cancel(o){const e=this._tokens.get(o);if(!e)return;const t=e.tokens.pop();t&&(t.cancel(),e.key.set(!e.tokens.isEmpty()))}},1);class EditorKeybindingCancellationTokenSource extends CancellationTokenSource$1{constructor(e,t){super(t),this.editor=e,this._unregister=e.invokeWithinContext(i=>i.get(IEditorCancellationTokens).add(e,this))}dispose(){this._unregister(),super.dispose()}}registerEditorCommand(new class extends EditorCommand{constructor(){super({id:"editor.cancelOperation",kbOpts:{weight:100,primary:9},precondition:ctxCancellableOperation})}runEditorCommand(o,e){o.get(IEditorCancellationTokens).cancel(e)}});let EditorState$1=class ct{constructor(e,t){if(this.flags=t,(this.flags&1)!==0){const i=e.getModel();this.modelVersionId=i?format("{0}#{1}",i.uri.toString(),i.getVersionId()):null}else this.modelVersionId=null;(this.flags&4)!==0?this.position=e.getPosition():this.position=null,(this.flags&2)!==0?this.selection=e.getSelection():this.selection=null,(this.flags&8)!==0?(this.scrollLeft=e.getScrollLeft(),this.scrollTop=e.getScrollTop()):(this.scrollLeft=-1,this.scrollTop=-1)}_equals(e){if(!(e instanceof ct))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 ct(e,this.flags))}};class EditorStateCancellationTokenSource extends EditorKeybindingCancellationTokenSource{constructor(e,t,i,n){super(e,n),this._listener=new DisposableStore,t&4&&this._listener.add(e.onDidChangeCursorPosition(r=>{(!i||!Range$2.containsPosition(i,r.position))&&this.cancel()})),t&2&&this._listener.add(e.onDidChangeCursorSelection(r=>{(!i||!Range$2.containsRange(i,r.selection))&&this.cancel()})),t&8&&this._listener.add(e.onDidScrollChange(r=>this.cancel())),t&1&&(this._listener.add(e.onDidChangeModel(r=>this.cancel())),this._listener.add(e.onDidChangeModelContent(r=>this.cancel())))}dispose(){this._listener.dispose(),super.dispose()}}class TextModelCancellationTokenSource extends CancellationTokenSource$1{constructor(e,t){super(t),this._listener=e.onDidChangeContent(()=>this.cancel())}dispose(){this._listener.dispose(),super.dispose()}}function isCodeEditor(o){return o&&typeof o.getEditorType=="function"?o.getEditorType()===EditorType.ICodeEditor:!1}function isDiffEditor(o){return o&&typeof o.getEditorType=="function"?o.getEditorType()===EditorType.IDiffEditor:!1}function isCompositeEditor(o){return!!o&&typeof o=="object"&&typeof o.onDidChangeActiveEditor=="function"}function getCodeEditor(o){return isCodeEditor(o)?o:isDiffEditor(o)?o.getModifiedEditor():isCompositeEditor(o)&&isCodeEditor(o.activeCodeEditor)?o.activeCodeEditor:null}class FormattingEdit{static _handleEolEdits(e,t){let i;const n=[];for(const r of t)typeof r.eol=="number"&&(i=r.eol),r.range&&typeof r.text=="string"&&n.push(r);return typeof i=="number"&&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 n=StableEditorScrollState.capture(e),r=FormattingEdit._handleEolEdits(e,t);r.length===1&&FormattingEdit._isFullModelReplaceEdit(e,r[0])?e.executeEdits("formatEditsCommand",r.map(s=>EditOperation.replace(Range$2.lift(s.range),s.text))):e.executeEdits("formatEditsCommand",r.map(s=>EditOperation.replaceMove(Range$2.lift(s.range),s.text))),i&&e.pushUndoStop(),n.restoreRelativeVerticalPositionOfCursor(e)}}class ExtensionIdentifier{constructor(e){this.value=e,this._lower=e.toLowerCase()}static toKey(e){return typeof e=="string"?e.toLowerCase():e._lower}}class ExtensionIdentifierSet{constructor(e){if(this._set=new Set,e)for(const t of e)this.add(t)}add(e){this._set.add(ExtensionIdentifier.toKey(e))}has(e){return this._set.has(ExtensionIdentifier.toKey(e))}}var __awaiter$17=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};function alertFormattingEdits(o){if(o=o.filter(n=>n.range),!o.length)return;let{range:e}=o[0];for(let n=1;n<o.length;n++)e=Range$2.plusRange(e,o[n].range);const{startLineNumber:t,endLineNumber:i}=e;t===i?o.length===1?alert(localize("hint11","Made 1 formatting edit on line {0}",t)):alert(localize("hintn1","Made {0} formatting edits on line {1}",o.length,t)):o.length===1?alert(localize("hint1n","Made 1 formatting edit between lines {0} and {1}",t,i)):alert(localize("hintnn","Made {0} formatting edits between lines {1} and {2}",o.length,t,i))}function getRealAndSyntheticDocumentFormattersOrdered(o,e,t){const i=[],n=new ExtensionIdentifierSet,r=o.ordered(t);for(const a of r)i.push(a),a.extensionId&&n.add(a.extensionId);const s=e.ordered(t);for(const a of s){if(a.extensionId){if(n.has(a.extensionId))continue;n.add(a.extensionId)}i.push({displayName:a.displayName,extensionId:a.extensionId,provideDocumentFormattingEdits(l,d,c){return a.provideDocumentRangeFormattingEdits(l,l.getFullModelRange(),d,c)}})}return i}class FormattingConflicts{static setFormatterSelector(e){return{dispose:FormattingConflicts._selectors.unshift(e)}}static select(e,t,i){return __awaiter$17(this,void 0,void 0,function*(){if(e.length===0)return;const n=Iterable.first(FormattingConflicts._selectors);if(n)return yield n(e,t,i)})}}FormattingConflicts._selectors=new LinkedList;function formatDocumentRangesWithSelectedProvider(o,e,t,i,n,r){return __awaiter$17(this,void 0,void 0,function*(){const s=o.get(IInstantiationService),{documentRangeFormattingEditProvider:a}=o.get(ILanguageFeaturesService),l=isCodeEditor(e)?e.getModel():e,d=a.ordered(l),c=yield FormattingConflicts.select(d,l,i);c&&(n.report(c),yield s.invokeFunction(formatDocumentRangesWithProvider,c,e,t,r))})}function formatDocumentRangesWithProvider(o,e,t,i,n){var r,s;return __awaiter$17(this,void 0,void 0,function*(){const a=o.get(IEditorWorkerService),l=o.get(ILogService);let d,c;isCodeEditor(t)?(d=t.getModel(),c=new EditorStateCancellationTokenSource(t,5,void 0,n)):(d=t,c=new TextModelCancellationTokenSource(t,n));const u=[];let g=0;for(const _ of asArray(i).sort(Range$2.compareRangesUsingStarts))g>0&&Range$2.areIntersectingOrTouching(u[g-1],_)?u[g-1]=Range$2.fromPositions(u[g-1].getStartPosition(),_.getEndPosition()):g=u.push(_);const f=_=>__awaiter$17(this,void 0,void 0,function*(){var C,S;l.trace("[format][provideDocumentRangeFormattingEdits] (request)",(C=e.extensionId)===null||C===void 0?void 0:C.value,_);const y=(yield e.provideDocumentRangeFormattingEdits(d,_,d.getFormattingOptions(),c.token))||[];return l.trace("[format][provideDocumentRangeFormattingEdits] (response)",(S=e.extensionId)===null||S===void 0?void 0:S.value,y),y}),p=(_,C)=>{if(!_.length||!C.length)return!1;const S=_.reduce((y,E)=>Range$2.plusRange(y,E.range),_[0].range);if(!C.some(y=>Range$2.intersectRanges(S,y.range)))return!1;for(const y of _)for(const E of C)if(Range$2.intersectRanges(y.range,E.range))return!0;return!1},m=[],b=[];try{if(typeof e.provideDocumentRangesFormattingEdits=="function"){l.trace("[format][provideDocumentRangeFormattingEdits] (request)",(r=e.extensionId)===null||r===void 0?void 0:r.value,u);const _=(yield e.provideDocumentRangesFormattingEdits(d,u,d.getFormattingOptions(),c.token))||[];l.trace("[format][provideDocumentRangeFormattingEdits] (response)",(s=e.extensionId)===null||s===void 0?void 0:s.value,_),b.push(_)}else{for(const _ of u){if(c.token.isCancellationRequested)return!0;b.push(yield f(_))}for(let _=0;_<u.length;++_)for(let C=_+1;C<u.length;++C){if(c.token.isCancellationRequested)return!0;if(p(b[_],b[C])){const S=Range$2.plusRange(u[_],u[C]),y=yield f(S);u.splice(C,1),u.splice(_,1),u.push(S),b.splice(C,1),b.splice(_,1),b.push(y),_=0,C=0}}}for(const _ of b){if(c.token.isCancellationRequested)return!0;const C=yield a.computeMoreMinimalEdits(d.uri,_);C&&m.push(...C)}}finally{c.dispose()}if(m.length===0)return!1;if(isCodeEditor(t))FormattingEdit.execute(t,m,!0),alertFormattingEdits(m),t.revealPositionInCenterIfOutsideViewport(t.getPosition(),1);else{const[{range:_}]=m,C=new Selection$1(_.startLineNumber,_.startColumn,_.endLineNumber,_.endColumn);d.pushEditOperations([C],m.map(S=>({text:S.text,range:Range$2.lift(S.range),forceMoveMarkers:!0})),S=>{for(const{range:y}of S)if(Range$2.areIntersectingOrTouching(y,C))return[new Selection$1(y.startLineNumber,y.startColumn,y.endLineNumber,y.endColumn)];return null})}return!0})}function formatDocumentWithSelectedProvider(o,e,t,i,n){return __awaiter$17(this,void 0,void 0,function*(){const r=o.get(IInstantiationService),s=o.get(ILanguageFeaturesService),a=isCodeEditor(e)?e.getModel():e,l=getRealAndSyntheticDocumentFormattersOrdered(s.documentFormattingEditProvider,s.documentRangeFormattingEditProvider,a),d=yield FormattingConflicts.select(l,a,t);d&&(i.report(d),yield r.invokeFunction(formatDocumentWithProvider,d,e,t,n))})}function formatDocumentWithProvider(o,e,t,i,n){return __awaiter$17(this,void 0,void 0,function*(){const r=o.get(IEditorWorkerService);let s,a;isCodeEditor(t)?(s=t.getModel(),a=new EditorStateCancellationTokenSource(t,5,void 0,n)):(s=t,a=new TextModelCancellationTokenSource(t,n));let l;try{const d=yield e.provideDocumentFormattingEdits(s,s.getFormattingOptions(),a.token);if(l=yield r.computeMoreMinimalEdits(s.uri,d),a.token.isCancellationRequested)return!0}finally{a.dispose()}if(!l||l.length===0)return!1;if(isCodeEditor(t))FormattingEdit.execute(t,l,i!==2),i!==2&&(alertFormattingEdits(l),t.revealPositionInCenterIfOutsideViewport(t.getPosition(),1));else{const[{range:d}]=l,c=new Selection$1(d.startLineNumber,d.startColumn,d.endLineNumber,d.endColumn);s.pushEditOperations([c],l.map(u=>({text:u.text,range:Range$2.lift(u.range),forceMoveMarkers:!0})),u=>{for(const{range:g}of u)if(Range$2.areIntersectingOrTouching(g,c))return[new Selection$1(g.startLineNumber,g.startColumn,g.endLineNumber,g.endColumn)];return null})}return!0})}function getDocumentRangeFormattingEditsUntilResult(o,e,t,i,n,r){return __awaiter$17(this,void 0,void 0,function*(){const s=e.documentRangeFormattingEditProvider.ordered(t);for(const a of s){const l=yield Promise.resolve(a.provideDocumentRangeFormattingEdits(t,i,n,r)).catch(onUnexpectedExternalError);if(isNonEmptyArray(l))return yield o.computeMoreMinimalEdits(t.uri,l)}})}function getDocumentFormattingEditsUntilResult(o,e,t,i,n){return __awaiter$17(this,void 0,void 0,function*(){const r=getRealAndSyntheticDocumentFormattersOrdered(e.documentFormattingEditProvider,e.documentRangeFormattingEditProvider,t);for(const s of r){const a=yield Promise.resolve(s.provideDocumentFormattingEdits(t,i,n)).catch(onUnexpectedExternalError);if(isNonEmptyArray(a))return yield o.computeMoreMinimalEdits(t.uri,a)}})}function getOnTypeFormattingEdits(o,e,t,i,n,r,s){const a=e.onTypeFormattingEditProvider.ordered(t);return a.length===0||a[0].autoFormatTriggerCharacters.indexOf(n)<0?Promise.resolve(void 0):Promise.resolve(a[0].provideOnTypeFormattingEdits(t,i,n,r,s)).catch(onUnexpectedExternalError).then(l=>o.computeMoreMinimalEdits(t.uri,l))}CommandsRegistry.registerCommand("_executeFormatRangeProvider",function(o,...e){return __awaiter$17(this,void 0,void 0,function*(){const[t,i,n]=e;assertType(URI.isUri(t)),assertType(Range$2.isIRange(i));const r=o.get(ITextModelService),s=o.get(IEditorWorkerService),a=o.get(ILanguageFeaturesService),l=yield r.createModelReference(t);try{return getDocumentRangeFormattingEditsUntilResult(s,a,l.object.textEditorModel,Range$2.lift(i),n,CancellationToken.None)}finally{l.dispose()}})});CommandsRegistry.registerCommand("_executeFormatDocumentProvider",function(o,...e){return __awaiter$17(this,void 0,void 0,function*(){const[t,i]=e;assertType(URI.isUri(t));const n=o.get(ITextModelService),r=o.get(IEditorWorkerService),s=o.get(ILanguageFeaturesService),a=yield n.createModelReference(t);try{return getDocumentFormattingEditsUntilResult(r,s,a.object.textEditorModel,i,CancellationToken.None)}finally{a.dispose()}})});CommandsRegistry.registerCommand("_executeFormatOnTypeProvider",function(o,...e){return __awaiter$17(this,void 0,void 0,function*(){const[t,i,n,r]=e;assertType(URI.isUri(t)),assertType(Position$1.isIPosition(i)),assertType(typeof n=="string");const s=o.get(ITextModelService),a=o.get(IEditorWorkerService),l=o.get(ILanguageFeaturesService),d=yield s.createModelReference(t);try{return getOnTypeFormattingEdits(a,l,d.object.textEditorModel,Position$1.lift(i),n,r,CancellationToken.None)}finally{d.dispose()}})});EditorOptions.wrappingIndent.defaultValue=0;EditorOptions.glyphMargin.defaultValue=!1;EditorOptions.autoIndent.defaultValue=3;EditorOptions.overviewRulerLanes.defaultValue=2;FormattingConflicts.setFormatterSelector((o,e,t)=>Promise.resolve(o[0]));const api=createMonacoBaseAPI();api.editor=createMonacoEditorAPI();api.languages=createMonacoLanguagesAPI();const CancellationTokenSource=api.CancellationTokenSource,Emitter=api.Emitter,KeyCode=api.KeyCode,KeyMod=api.KeyMod,Position=api.Position,Range=api.Range,Selection=api.Selection,SelectionDirection=api.SelectionDirection,MarkerSeverity=api.MarkerSeverity,MarkerTag=api.MarkerTag,Uri=api.Uri,Token=api.Token,editor=api.editor,languages=api.languages,monacoEnvironment=globalThis.MonacoEnvironment;(monacoEnvironment!=null&&monacoEnvironment.globalAPI||typeof define=="function"&&define.amd)&&(globalThis.monaco=api);typeof globalThis.require<"u"&&typeof globalThis.require.config=="function"&&globalThis.require.config({ignoreDuplicateModules:["vscode-languageserver-types","vscode-languageserver-types/main","vscode-languageserver-textdocument","vscode-languageserver-textdocument/main","vscode-nls","vscode-nls/vscode-nls","jsonc-parser","jsonc-parser/main","vscode-uri","vscode-uri/index","vs/basic-languages/typescript/typescript"]});const monaco_editor_core_star=Object.freeze(Object.defineProperty({__proto__:null,CancellationTokenSource,Emitter,KeyCode,KeyMod,MarkerSeverity,MarkerTag,Position,Range,Selection,SelectionDirection,Token,Uri,editor,languages},Symbol.toStringTag,{value:"Module"}));/*!-----------------------------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Version: 0.44.0(3e047efd345ff102c8c61b5398fb30845aaac166)
- * Released under the MIT license
- * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
- *-----------------------------------------------------------------------------*/var __defProp$4=Object.defineProperty,__getOwnPropDesc$4=Object.getOwnPropertyDescriptor,__getOwnPropNames$4=Object.getOwnPropertyNames,__hasOwnProp$4=Object.prototype.hasOwnProperty,__copyProps$4=(o,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of __getOwnPropNames$4(e))!__hasOwnProp$4.call(o,n)&&n!==t&&__defProp$4(o,n,{get:()=>e[n],enumerable:!(i=__getOwnPropDesc$4(e,n))||i.enumerable});return o},__reExport$4=(o,e,t)=>(__copyProps$4(o,e,"default"),t),monaco_editor_core_exports$4={};__reExport$4(monaco_editor_core_exports$4,monaco_editor_core_star);var languageDefinitions={},lazyLanguageLoaders={},LazyLanguageLoader=class{constructor(o){Oe(this,"_languageId");Oe(this,"_loadingTriggered");Oe(this,"_lazyLoadPromise");Oe(this,"_lazyLoadPromiseResolve");Oe(this,"_lazyLoadPromiseReject");this._languageId=o,this._loadingTriggered=!1,this._lazyLoadPromise=new Promise((e,t)=>{this._lazyLoadPromiseResolve=e,this._lazyLoadPromiseReject=t})}static getOrCreate(o){return lazyLanguageLoaders[o]||(lazyLanguageLoaders[o]=new LazyLanguageLoader(o)),lazyLanguageLoaders[o]}load(){return this._loadingTriggered||(this._loadingTriggered=!0,languageDefinitions[this._languageId].loader().then(o=>this._lazyLoadPromiseResolve(o),o=>this._lazyLoadPromiseReject(o))),this._lazyLoadPromise}};function registerLanguage(o){const e=o.id;languageDefinitions[e]=o,monaco_editor_core_exports$4.languages.register(o);const t=LazyLanguageLoader.getOrCreate(e);monaco_editor_core_exports$4.languages.registerTokensProviderFactory(e,{create:async()=>(await t.load()).language}),monaco_editor_core_exports$4.languages.onLanguageEncountered(e,async()=>{const i=await t.load();monaco_editor_core_exports$4.languages.setLanguageConfiguration(e,i.conf)})}registerLanguage({id:"abap",extensions:[".abap"],aliases:["abap","ABAP"],loader:()=>__vitePreload(()=>import("./abap-Bs-KDgo-.js"),[],import.meta.url)});registerLanguage({id:"apex",extensions:[".cls"],aliases:["Apex","apex"],mimetypes:["text/x-apex-source","text/x-apex"],loader:()=>__vitePreload(()=>import("./apex-BB8ijgrA.js"),[],import.meta.url)});registerLanguage({id:"azcli",extensions:[".azcli"],aliases:["Azure CLI","azcli"],loader:()=>__vitePreload(()=>import("./azcli-CM0y7Ame.js"),[],import.meta.url)});registerLanguage({id:"bat",extensions:[".bat",".cmd"],aliases:["Batch","bat"],loader:()=>__vitePreload(()=>import("./bat-Bfxf8Mzl.js"),[],import.meta.url)});registerLanguage({id:"bicep",extensions:[".bicep"],aliases:["Bicep"],loader:()=>__vitePreload(()=>import("./bicep-DJPqIr_M.js"),[],import.meta.url)});registerLanguage({id:"cameligo",extensions:[".mligo"],aliases:["Cameligo"],loader:()=>__vitePreload(()=>import("./cameligo-PnszTm2c.js"),[],import.meta.url)});registerLanguage({id:"clojure",extensions:[".clj",".cljs",".cljc",".edn"],aliases:["clojure","Clojure"],loader:()=>__vitePreload(()=>import("./clojure-B3cFVYI-.js"),[],import.meta.url)});registerLanguage({id:"coffeescript",extensions:[".coffee"],aliases:["CoffeeScript","coffeescript","coffee"],mimetypes:["text/x-coffeescript","text/coffeescript"],loader:()=>__vitePreload(()=>import("./coffee-D8tSzcLH.js"),[],import.meta.url)});registerLanguage({id:"c",extensions:[".c",".h"],aliases:["C","c"],loader:()=>__vitePreload(()=>import("./cpp-CP-cATHl.js"),[],import.meta.url)});registerLanguage({id:"cpp",extensions:[".cpp",".cc",".cxx",".hpp",".hh",".hxx"],aliases:["C++","Cpp","cpp"],loader:()=>__vitePreload(()=>import("./cpp-CP-cATHl.js"),[],import.meta.url)});registerLanguage({id:"csharp",extensions:[".cs",".csx",".cake"],aliases:["C#","csharp"],loader:()=>__vitePreload(()=>import("./csharp-Dfj4WFqy.js"),[],import.meta.url)});registerLanguage({id:"csp",extensions:[],aliases:["CSP","csp"],loader:()=>__vitePreload(()=>import("./csp-D9HxVpWn.js"),[],import.meta.url)});registerLanguage({id:"css",extensions:[".css"],aliases:["CSS","css"],mimetypes:["text/css"],loader:()=>__vitePreload(()=>import("./css-CkCHETKw.js"),[],import.meta.url)});registerLanguage({id:"cypher",extensions:[".cypher",".cyp"],aliases:["Cypher","OpenCypher"],loader:()=>__vitePreload(()=>import("./cypher-B50w5pq9.js"),[],import.meta.url)});registerLanguage({id:"dart",extensions:[".dart"],aliases:["Dart","dart"],mimetypes:["text/x-dart-source","text/x-dart"],loader:()=>__vitePreload(()=>import("./dart-DvROnYA_.js"),[],import.meta.url)});registerLanguage({id:"dockerfile",extensions:[".dockerfile"],filenames:["Dockerfile"],aliases:["Dockerfile"],loader:()=>__vitePreload(()=>import("./dockerfile-C4f37Dvd.js"),[],import.meta.url)});registerLanguage({id:"ecl",extensions:[".ecl"],aliases:["ECL","Ecl","ecl"],loader:()=>__vitePreload(()=>import("./ecl-DW46Dzft.js"),[],import.meta.url)});registerLanguage({id:"elixir",extensions:[".ex",".exs"],aliases:["Elixir","elixir","ex"],loader:()=>__vitePreload(()=>import("./elixir-BIa5JtGe.js"),[],import.meta.url)});registerLanguage({id:"flow9",extensions:[".flow"],aliases:["Flow9","Flow","flow9","flow"],loader:()=>__vitePreload(()=>import("./flow9-ByI4Scwv.js"),[],import.meta.url)});registerLanguage({id:"fsharp",extensions:[".fs",".fsi",".ml",".mli",".fsx",".fsscript"],aliases:["F#","FSharp","fsharp"],loader:()=>__vitePreload(()=>import("./fsharp-Cgf6u04w.js"),[],import.meta.url)});registerLanguage({id:"freemarker2",extensions:[".ftl",".ftlh",".ftlx"],aliases:["FreeMarker2","Apache FreeMarker2"],loader:()=>__vitePreload(()=>import("./freemarker2-CfdpeQII.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8]),import.meta.url).then(o=>o.TagAutoInterpolationDollar)});registerLanguage({id:"freemarker2.tag-angle.interpolation-dollar",aliases:["FreeMarker2 (Angle/Dollar)","Apache FreeMarker2 (Angle/Dollar)"],loader:()=>__vitePreload(()=>import("./freemarker2-CfdpeQII.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8]),import.meta.url).then(o=>o.TagAngleInterpolationDollar)});registerLanguage({id:"freemarker2.tag-bracket.interpolation-dollar",aliases:["FreeMarker2 (Bracket/Dollar)","Apache FreeMarker2 (Bracket/Dollar)"],loader:()=>__vitePreload(()=>import("./freemarker2-CfdpeQII.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8]),import.meta.url).then(o=>o.TagBracketInterpolationDollar)});registerLanguage({id:"freemarker2.tag-angle.interpolation-bracket",aliases:["FreeMarker2 (Angle/Bracket)","Apache FreeMarker2 (Angle/Bracket)"],loader:()=>__vitePreload(()=>import("./freemarker2-CfdpeQII.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8]),import.meta.url).then(o=>o.TagAngleInterpolationBracket)});registerLanguage({id:"freemarker2.tag-bracket.interpolation-bracket",aliases:["FreeMarker2 (Bracket/Bracket)","Apache FreeMarker2 (Bracket/Bracket)"],loader:()=>__vitePreload(()=>import("./freemarker2-CfdpeQII.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8]),import.meta.url).then(o=>o.TagBracketInterpolationBracket)});registerLanguage({id:"freemarker2.tag-auto.interpolation-dollar",aliases:["FreeMarker2 (Auto/Dollar)","Apache FreeMarker2 (Auto/Dollar)"],loader:()=>__vitePreload(()=>import("./freemarker2-CfdpeQII.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8]),import.meta.url).then(o=>o.TagAutoInterpolationDollar)});registerLanguage({id:"freemarker2.tag-auto.interpolation-bracket",aliases:["FreeMarker2 (Auto/Bracket)","Apache FreeMarker2 (Auto/Bracket)"],loader:()=>__vitePreload(()=>import("./freemarker2-CfdpeQII.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8]),import.meta.url).then(o=>o.TagAutoInterpolationBracket)});registerLanguage({id:"go",extensions:[".go"],aliases:["Go"],loader:()=>__vitePreload(()=>import("./go-CJfxPkej.js"),[],import.meta.url)});registerLanguage({id:"graphql",extensions:[".graphql",".gql"],aliases:["GraphQL","graphql","gql"],mimetypes:["application/graphql"],loader:()=>__vitePreload(()=>import("./graphql-CGlhcY2-.js"),[],import.meta.url)});registerLanguage({id:"handlebars",extensions:[".handlebars",".hbs"],aliases:["Handlebars","handlebars","hbs"],mimetypes:["text/x-handlebars-template"],loader:()=>__vitePreload(()=>import("./handlebars-D_zh2eoQ.js"),__vite__mapDeps([9,1,2,3,4,5,6,7,8]),import.meta.url)});registerLanguage({id:"hcl",extensions:[".tf",".tfvars",".hcl"],aliases:["Terraform","tf","HCL","hcl"],loader:()=>__vitePreload(()=>import("./hcl-CTI7WNlW.js"),[],import.meta.url)});registerLanguage({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:()=>__vitePreload(()=>import("./html-DP_aZkqC.js"),__vite__mapDeps([10,1,2,3,4,5,6,7,8]),import.meta.url)});registerLanguage({id:"ini",extensions:[".ini",".properties",".gitconfig"],filenames:["config",".gitattributes",".gitconfig",".editorconfig"],aliases:["Ini","ini"],loader:()=>__vitePreload(()=>import("./ini-qJXHXiTY.js"),[],import.meta.url)});registerLanguage({id:"java",extensions:[".java",".jav"],aliases:["Java","java"],mimetypes:["text/x-java-source","text/x-java"],loader:()=>__vitePreload(()=>import("./java-Dnrl9822.js"),[],import.meta.url)});registerLanguage({id:"javascript",extensions:[".js",".es6",".jsx",".mjs",".cjs"],firstLine:"^#!.*\\bnode",filenames:["jakefile"],aliases:["JavaScript","javascript","js"],mimetypes:["text/javascript"],loader:()=>__vitePreload(()=>import("./javascript-ZhKeO5eX.js"),__vite__mapDeps([11,12,1,2,3,4,5,6,7,8]),import.meta.url)});registerLanguage({id:"julia",extensions:[".jl"],aliases:["julia","Julia"],loader:()=>__vitePreload(()=>import("./julia-pqMLycLG.js"),[],import.meta.url)});registerLanguage({id:"kotlin",extensions:[".kt",".kts"],aliases:["Kotlin","kotlin"],mimetypes:["text/x-kotlin-source","text/x-kotlin"],loader:()=>__vitePreload(()=>import("./kotlin-DLX697jv.js"),[],import.meta.url)});registerLanguage({id:"less",extensions:[".less"],aliases:["Less","less"],mimetypes:["text/x-less","text/less"],loader:()=>__vitePreload(()=>import("./less-2ExdFhZM.js"),[],import.meta.url)});registerLanguage({id:"lexon",extensions:[".lex"],aliases:["Lexon"],loader:()=>__vitePreload(()=>import("./lexon-ABKfEwhw.js"),[],import.meta.url)});registerLanguage({id:"lua",extensions:[".lua"],aliases:["Lua","lua"],loader:()=>__vitePreload(()=>import("./lua-CI0blgFs.js"),[],import.meta.url)});registerLanguage({id:"liquid",extensions:[".liquid",".html.liquid"],aliases:["Liquid","liquid"],mimetypes:["application/liquid"],loader:()=>__vitePreload(()=>import("./liquid-DSP5qmFQ.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8]),import.meta.url)});registerLanguage({id:"m3",extensions:[".m3",".i3",".mg",".ig"],aliases:["Modula-3","Modula3","modula3","m3"],loader:()=>__vitePreload(()=>import("./m3-yVPEHiu4.js"),[],import.meta.url)});registerLanguage({id:"markdown",extensions:[".md",".markdown",".mdown",".mkdn",".mkd",".mdwn",".mdtxt",".mdtext"],aliases:["Markdown","markdown"],loader:()=>__vitePreload(()=>import("./markdown-CjOKAnMy.js"),[],import.meta.url)});registerLanguage({id:"mdx",extensions:[".mdx"],aliases:["MDX","mdx"],loader:()=>__vitePreload(()=>import("./mdx-CItUZfhc.js"),__vite__mapDeps([14,1,2,3,4,5,6,7,8]),import.meta.url)});registerLanguage({id:"mips",extensions:[".s"],aliases:["MIPS","MIPS-V"],mimetypes:["text/x-mips","text/mips","text/plaintext"],loader:()=>__vitePreload(()=>import("./mips-B7KWClFm.js"),[],import.meta.url)});registerLanguage({id:"msdax",extensions:[".dax",".msdax"],aliases:["DAX","MSDAX"],loader:()=>__vitePreload(()=>import("./msdax-N_40gjXO.js"),[],import.meta.url)});registerLanguage({id:"mysql",extensions:[],aliases:["MySQL","mysql"],loader:()=>__vitePreload(()=>import("./mysql-CzgTwwi2.js"),[],import.meta.url)});registerLanguage({id:"objective-c",extensions:[".m"],aliases:["Objective-C"],loader:()=>__vitePreload(()=>import("./objective-c-CwAIQX-6.js"),[],import.meta.url)});registerLanguage({id:"pascal",extensions:[".pas",".p",".pp"],aliases:["Pascal","pas"],mimetypes:["text/x-pascal-source","text/x-pascal"],loader:()=>__vitePreload(()=>import("./pascal-3SrKWnFX.js"),[],import.meta.url)});registerLanguage({id:"pascaligo",extensions:[".ligo"],aliases:["Pascaligo","ligo"],loader:()=>__vitePreload(()=>import("./pascaligo-Cv9Y0fbC.js"),[],import.meta.url)});registerLanguage({id:"perl",extensions:[".pl",".pm"],aliases:["Perl","pl"],loader:()=>__vitePreload(()=>import("./perl-DHxnJL0_.js"),[],import.meta.url)});registerLanguage({id:"pgsql",extensions:[],aliases:["PostgreSQL","postgres","pg","postgre"],loader:()=>__vitePreload(()=>import("./pgsql-DGJFw0qd.js"),[],import.meta.url)});registerLanguage({id:"php",extensions:[".php",".php4",".php5",".phtml",".ctp"],aliases:["PHP","php"],mimetypes:["application/x-php"],loader:()=>__vitePreload(()=>import("./php-BA3Rqjpx.js"),[],import.meta.url)});registerLanguage({id:"pla",extensions:[".pla"],loader:()=>__vitePreload(()=>import("./pla-DKf5_u7N.js"),[],import.meta.url)});registerLanguage({id:"postiats",extensions:[".dats",".sats",".hats"],aliases:["ATS","ATS/Postiats"],loader:()=>__vitePreload(()=>import("./postiats-Bup1kUyj.js"),[],import.meta.url)});registerLanguage({id:"powerquery",extensions:[".pq",".pqm"],aliases:["PQ","M","Power Query","Power Query M"],loader:()=>__vitePreload(()=>import("./powerquery-BfbPeLER.js"),[],import.meta.url)});registerLanguage({id:"powershell",extensions:[".ps1",".psm1",".psd1"],aliases:["PowerShell","powershell","ps","ps1"],loader:()=>__vitePreload(()=>import("./powershell-DAsS7BG8.js"),[],import.meta.url)});registerLanguage({id:"proto",extensions:[".proto"],aliases:["protobuf","Protocol Buffers"],loader:()=>__vitePreload(()=>import("./protobuf-Dzs34GPr.js"),[],import.meta.url)});registerLanguage({id:"pug",extensions:[".jade",".pug"],aliases:["Pug","Jade","jade"],loader:()=>__vitePreload(()=>import("./pug-CVuUMJ1K.js"),[],import.meta.url)});registerLanguage({id:"python",extensions:[".py",".rpy",".pyw",".cpy",".gyp",".gypi"],aliases:["Python","py"],firstLine:"^#!/.*\\bpython[0-9.-]*\\b",loader:()=>__vitePreload(()=>import("./python-C-aG2PRa.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8]),import.meta.url)});registerLanguage({id:"qsharp",extensions:[".qs"],aliases:["Q#","qsharp"],loader:()=>__vitePreload(()=>import("./qsharp-BgY1GbL_.js"),[],import.meta.url)});registerLanguage({id:"r",extensions:[".r",".rhistory",".rmd",".rprofile",".rt"],aliases:["R","r"],loader:()=>__vitePreload(()=>import("./r-C2Iz-cGs.js"),[],import.meta.url)});registerLanguage({id:"razor",extensions:[".cshtml"],aliases:["Razor","razor"],mimetypes:["text/x-cshtml"],loader:()=>__vitePreload(()=>import("./razor-CZiad-Tu.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8]),import.meta.url)});registerLanguage({id:"redis",extensions:[".redis"],aliases:["redis"],loader:()=>__vitePreload(()=>import("./redis-F7UxdB6U.js"),[],import.meta.url)});registerLanguage({id:"redshift",extensions:[],aliases:["Redshift","redshift"],loader:()=>__vitePreload(()=>import("./redshift-CDF44XVS.js"),[],import.meta.url)});registerLanguage({id:"restructuredtext",extensions:[".rst"],aliases:["reStructuredText","restructuredtext"],loader:()=>__vitePreload(()=>import("./restructuredtext-C_dzeD_4.js"),[],import.meta.url)});registerLanguage({id:"ruby",extensions:[".rb",".rbx",".rjs",".gemspec",".pp"],filenames:["rakefile","Gemfile"],aliases:["Ruby","rb"],loader:()=>__vitePreload(()=>import("./ruby-BdxlVRg3.js"),[],import.meta.url)});registerLanguage({id:"rust",extensions:[".rs",".rlib"],aliases:["Rust","rust"],loader:()=>__vitePreload(()=>import("./rust-gU8692nP.js"),[],import.meta.url)});registerLanguage({id:"sb",extensions:[".sb"],aliases:["Small Basic","sb"],loader:()=>__vitePreload(()=>import("./sb-CsAkPjmq.js"),[],import.meta.url)});registerLanguage({id:"scala",extensions:[".scala",".sc",".sbt"],aliases:["Scala","scala","SBT","Sbt","sbt","Dotty","dotty"],mimetypes:["text/x-scala-source","text/x-scala","text/x-sbt","text/x-dotty"],loader:()=>__vitePreload(()=>import("./scala-D_TH4Qyk.js"),[],import.meta.url)});registerLanguage({id:"scheme",extensions:[".scm",".ss",".sch",".rkt"],aliases:["scheme","Scheme"],loader:()=>__vitePreload(()=>import("./scheme-CTXRt_ZJ.js"),[],import.meta.url)});registerLanguage({id:"scss",extensions:[".scss"],aliases:["Sass","sass","scss"],mimetypes:["text/x-scss","text/scss"],loader:()=>__vitePreload(()=>import("./scss-Rf_ppwBg.js"),[],import.meta.url)});registerLanguage({id:"shell",extensions:[".sh",".bash"],aliases:["Shell","sh"],loader:()=>__vitePreload(()=>import("./shell-osqRiq1b.js"),[],import.meta.url)});registerLanguage({id:"sol",extensions:[".sol"],aliases:["sol","solidity","Solidity"],loader:()=>__vitePreload(()=>import("./solidity-BTHmi1CB.js"),[],import.meta.url)});registerLanguage({id:"aes",extensions:[".aes"],aliases:["aes","sophia","Sophia"],loader:()=>__vitePreload(()=>import("./sophia-BRe4RArb.js"),[],import.meta.url)});registerLanguage({id:"sparql",extensions:[".rq"],aliases:["sparql","SPARQL"],loader:()=>__vitePreload(()=>import("./sparql-CaSv-uNl.js"),[],import.meta.url)});registerLanguage({id:"sql",extensions:[".sql"],aliases:["SQL"],loader:()=>__vitePreload(()=>import("./sql-CHiRcria.js"),[],import.meta.url)});registerLanguage({id:"st",extensions:[".st",".iecst",".iecplc",".lc3lib",".TcPOU",".TcDUT",".TcGVL",".TcIO"],aliases:["StructuredText","scl","stl"],loader:()=>__vitePreload(()=>import("./st-CCGZ7KTi.js"),[],import.meta.url)});registerLanguage({id:"swift",aliases:["Swift","swift"],extensions:[".swift"],mimetypes:["text/swift"],loader:()=>__vitePreload(()=>import("./swift-DeyDsJzf.js"),[],import.meta.url)});registerLanguage({id:"systemverilog",extensions:[".sv",".svh"],aliases:["SV","sv","SystemVerilog","systemverilog"],loader:()=>__vitePreload(()=>import("./systemverilog-RSGMMa-l.js"),[],import.meta.url)});registerLanguage({id:"verilog",extensions:[".v",".vh"],aliases:["V","v","Verilog","verilog"],loader:()=>__vitePreload(()=>import("./systemverilog-RSGMMa-l.js"),[],import.meta.url)});registerLanguage({id:"tcl",extensions:[".tcl"],aliases:["tcl","Tcl","tcltk","TclTk","tcl/tk","Tcl/Tk"],loader:()=>__vitePreload(()=>import("./tcl-B28K5YOH.js"),[],import.meta.url)});registerLanguage({id:"twig",extensions:[".twig"],aliases:["Twig","twig"],mimetypes:["text/x-twig"],loader:()=>__vitePreload(()=>import("./twig-ChoE7Tfw.js"),[],import.meta.url)});registerLanguage({id:"typescript",extensions:[".ts",".tsx",".cts",".mts"],aliases:["TypeScript","ts","typescript"],mimetypes:["text/typescript"],loader:()=>__vitePreload(()=>import("./typescript-C2eHGO45.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8]),import.meta.url)});registerLanguage({id:"vb",extensions:[".vb"],aliases:["Visual Basic","vb"],loader:()=>__vitePreload(()=>import("./vb-BCnlgLOU.js"),[],import.meta.url)});registerLanguage({id:"wgsl",extensions:[".wgsl"],aliases:["WebGPU Shading Language","WGSL","wgsl"],loader:()=>__vitePreload(()=>import("./wgsl-DlxrJ_uh.js"),[],import.meta.url)});registerLanguage({id:"xml",extensions:[".xml",".xsd",".dtd",".ascx",".csproj",".config",".props",".targets",".wxi",".wxl",".wxs",".xaml",".svg",".svgz",".opf",".xslt",".xsl"],firstLine:"(\\<\\?xml.*)|(\\<svg)|(\\<\\!doctype\\s+svg)",aliases:["XML","xml"],mimetypes:["text/xml","application/xml","application/xaml+xml","application/xml-dtd"],loader:()=>__vitePreload(()=>import("./xml-Cl6sRh62.js"),__vite__mapDeps([17,1,2,3,4,5,6,7,8]),import.meta.url)});registerLanguage({id:"yaml",extensions:[".yaml",".yml"],aliases:["YAML","yaml","YML","yml"],mimetypes:["application/x-yaml","text/x-yaml"],loader:()=>__vitePreload(()=>import("./yaml-DlEYMLm9.js"),__vite__mapDeps([18,1,2,3,4,5,6,7,8]),import.meta.url)});/*!-----------------------------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Version: 0.44.0(3e047efd345ff102c8c61b5398fb30845aaac166)
- * Released under the MIT license
- * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
- *-----------------------------------------------------------------------------*/var __defProp$3=Object.defineProperty,__getOwnPropDesc$3=Object.getOwnPropertyDescriptor,__getOwnPropNames$3=Object.getOwnPropertyNames,__hasOwnProp$3=Object.prototype.hasOwnProperty,__copyProps$3=(o,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of __getOwnPropNames$3(e))!__hasOwnProp$3.call(o,n)&&n!==t&&__defProp$3(o,n,{get:()=>e[n],enumerable:!(i=__getOwnPropDesc$3(e,n))||i.enumerable});return o},__reExport$3=(o,e,t)=>(__copyProps$3(o,e,"default"),t),monaco_editor_core_exports$3={};__reExport$3(monaco_editor_core_exports$3,monaco_editor_core_star);var LanguageServiceDefaultsImpl$3=class{constructor(e,t,i){Oe(this,"_onDidChange",new monaco_editor_core_exports$3.Emitter);Oe(this,"_options");Oe(this,"_modeConfiguration");Oe(this,"_languageId");this._languageId=e,this.setOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this.options}get options(){return this._options}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setDiagnosticsOptions(e){this.setOptions(e)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}},optionsDefault$1={validate:!0,lint:{compatibleVendorPrefixes:"ignore",vendorPrefix:"warning",duplicateProperties:"warning",emptyRules:"warning",importStatement:"ignore",boxModel:"ignore",universalSelector:"ignore",zeroUnits:"ignore",fontFaceProperties:"warning",hexColorLength:"error",argumentsInColorFunction:"error",unknownProperties:"warning",ieHack:"ignore",unknownVendorSpecificProperties:"ignore",propertyIgnoredDueToDisplay:"warning",important:"ignore",float:"ignore",idSelector:"ignore"},data:{useDefaultDataProvider:!0},format:{newlineBetweenSelectors:!0,newlineBetweenRules:!0,spaceAroundSelectorSeparator:!1,braceStyle:"collapse",maxPreserveNewLines:void 0,preserveNewLines:!0}},modeConfigurationDefault$2={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0,documentFormattingEdits:!0,documentRangeFormattingEdits:!0},cssDefaults=new LanguageServiceDefaultsImpl$3("css",optionsDefault$1,modeConfigurationDefault$2),scssDefaults=new LanguageServiceDefaultsImpl$3("scss",optionsDefault$1,modeConfigurationDefault$2),lessDefaults=new LanguageServiceDefaultsImpl$3("less",optionsDefault$1,modeConfigurationDefault$2);monaco_editor_core_exports$3.languages.css={cssDefaults,lessDefaults,scssDefaults};function getMode$3(){return __vitePreload(()=>import("./cssMode-BKiSyxm6.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8]),import.meta.url)}monaco_editor_core_exports$3.languages.onLanguage("less",()=>{getMode$3().then(o=>o.setupMode(lessDefaults))});monaco_editor_core_exports$3.languages.onLanguage("scss",()=>{getMode$3().then(o=>o.setupMode(scssDefaults))});monaco_editor_core_exports$3.languages.onLanguage("css",()=>{getMode$3().then(o=>o.setupMode(cssDefaults))});/*!-----------------------------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Version: 0.44.0(3e047efd345ff102c8c61b5398fb30845aaac166)
- * Released under the MIT license
- * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
- *-----------------------------------------------------------------------------*/var __defProp$2=Object.defineProperty,__getOwnPropDesc$2=Object.getOwnPropertyDescriptor,__getOwnPropNames$2=Object.getOwnPropertyNames,__hasOwnProp$2=Object.prototype.hasOwnProperty,__copyProps$2=(o,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of __getOwnPropNames$2(e))!__hasOwnProp$2.call(o,n)&&n!==t&&__defProp$2(o,n,{get:()=>e[n],enumerable:!(i=__getOwnPropDesc$2(e,n))||i.enumerable});return o},__reExport$2=(o,e,t)=>(__copyProps$2(o,e,"default"),t),monaco_editor_core_exports$2={};__reExport$2(monaco_editor_core_exports$2,monaco_editor_core_star);var LanguageServiceDefaultsImpl$2=class{constructor(e,t,i){Oe(this,"_onDidChange",new monaco_editor_core_exports$2.Emitter);Oe(this,"_options");Oe(this,"_modeConfiguration");Oe(this,"_languageId");this._languageId=e,this.setOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get options(){return this._options}get modeConfiguration(){return this._modeConfiguration}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}},formatDefaults={tabSize:4,insertSpaces:!1,wrapLineLength:120,unformatted:'default": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',contentUnformatted:"pre",indentInnerHtml:!1,preserveNewLines:!0,maxPreserveNewLines:void 0,indentHandlebars:!1,endWithNewline:!1,extraLiners:"head, body, /html",wrapAttributes:"auto"},optionsDefault={format:formatDefaults,suggest:{},data:{useDefaultDataProvider:!0}};function getConfigurationDefault(o){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:o===htmlLanguageId,documentFormattingEdits:o===htmlLanguageId,documentRangeFormattingEdits:o===htmlLanguageId}}var htmlLanguageId="html",handlebarsLanguageId="handlebars",razorLanguageId="razor",htmlLanguageService=registerHTMLLanguageService(htmlLanguageId,optionsDefault,getConfigurationDefault(htmlLanguageId)),htmlDefaults=htmlLanguageService.defaults,handlebarLanguageService=registerHTMLLanguageService(handlebarsLanguageId,optionsDefault,getConfigurationDefault(handlebarsLanguageId)),handlebarDefaults=handlebarLanguageService.defaults,razorLanguageService=registerHTMLLanguageService(razorLanguageId,optionsDefault,getConfigurationDefault(razorLanguageId)),razorDefaults=razorLanguageService.defaults;monaco_editor_core_exports$2.languages.html={htmlDefaults,razorDefaults,handlebarDefaults,htmlLanguageService,handlebarLanguageService,razorLanguageService,registerHTMLLanguageService};function getMode$2(){return __vitePreload(()=>import("./htmlMode-Be5m4GVS.js"),__vite__mapDeps([20,1,2,3,4,5,6,7,8]),import.meta.url)}function registerHTMLLanguageService(o,e=optionsDefault,t=getConfigurationDefault(o)){const i=new LanguageServiceDefaultsImpl$2(o,e,t);let n;const r=monaco_editor_core_exports$2.languages.onLanguage(o,async()=>{n=(await getMode$2()).setupMode(i)});return{defaults:i,dispose(){r.dispose(),n==null||n.dispose(),n=void 0}}}/*!-----------------------------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Version: 0.44.0(3e047efd345ff102c8c61b5398fb30845aaac166)
- * Released under the MIT license
- * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
- *-----------------------------------------------------------------------------*/var __defProp$1=Object.defineProperty,__getOwnPropDesc$1=Object.getOwnPropertyDescriptor,__getOwnPropNames$1=Object.getOwnPropertyNames,__hasOwnProp$1=Object.prototype.hasOwnProperty,__copyProps$1=(o,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of __getOwnPropNames$1(e))!__hasOwnProp$1.call(o,n)&&n!==t&&__defProp$1(o,n,{get:()=>e[n],enumerable:!(i=__getOwnPropDesc$1(e,n))||i.enumerable});return o},__reExport$1=(o,e,t)=>(__copyProps$1(o,e,"default"),t),monaco_editor_core_exports$1={};__reExport$1(monaco_editor_core_exports$1,monaco_editor_core_star);var LanguageServiceDefaultsImpl$1=class{constructor(e,t,i){Oe(this,"_onDidChange",new monaco_editor_core_exports$1.Emitter);Oe(this,"_diagnosticsOptions");Oe(this,"_modeConfiguration");Oe(this,"_languageId");this._languageId=e,this.setDiagnosticsOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}},diagnosticDefault={validate:!0,allowComments:!0,schemas:[],enableSchemaRequest:!1,schemaRequest:"warning",schemaValidation:"warning",comments:"error",trailingCommas:"error"},modeConfigurationDefault$1={documentFormattingEdits:!0,documentRangeFormattingEdits:!0,completionItems:!0,hovers:!0,documentSymbols:!0,tokens:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0},jsonDefaults=new LanguageServiceDefaultsImpl$1("json",diagnosticDefault,modeConfigurationDefault$1);monaco_editor_core_exports$1.languages.json={jsonDefaults};function getMode$1(){return __vitePreload(()=>import("./jsonMode-C-fGz9zy.js"),__vite__mapDeps([21,1,2,3,4,5,6,7,8]),import.meta.url)}monaco_editor_core_exports$1.languages.register({id:"json",extensions:[".json",".bowerrc",".jshintrc",".jscsrc",".eslintrc",".babelrc",".har"],aliases:["JSON","json"],mimetypes:["application/json"]});monaco_editor_core_exports$1.languages.onLanguage("json",()=>{getMode$1().then(o=>o.setupMode(jsonDefaults))});/*!-----------------------------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Version: 0.44.0(3e047efd345ff102c8c61b5398fb30845aaac166)
- * Released under the MIT license
- * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
- *-----------------------------------------------------------------------------*/var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__copyProps=(o,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of __getOwnPropNames(e))!__hasOwnProp.call(o,n)&&n!==t&&__defProp(o,n,{get:()=>e[n],enumerable:!(i=__getOwnPropDesc(e,n))||i.enumerable});return o},__reExport=(o,e,t)=>(__copyProps(o,e,"default"),t),typescriptVersion="5.0.2",monaco_editor_core_exports={};__reExport(monaco_editor_core_exports,monaco_editor_core_star);var ModuleKind=(o=>(o[o.None=0]="None",o[o.CommonJS=1]="CommonJS",o[o.AMD=2]="AMD",o[o.UMD=3]="UMD",o[o.System=4]="System",o[o.ES2015=5]="ES2015",o[o.ESNext=99]="ESNext",o))(ModuleKind||{}),JsxEmit=(o=>(o[o.None=0]="None",o[o.Preserve=1]="Preserve",o[o.React=2]="React",o[o.ReactNative=3]="ReactNative",o[o.ReactJSX=4]="ReactJSX",o[o.ReactJSXDev=5]="ReactJSXDev",o))(JsxEmit||{}),NewLineKind=(o=>(o[o.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",o[o.LineFeed=1]="LineFeed",o))(NewLineKind||{}),ScriptTarget=(o=>(o[o.ES3=0]="ES3",o[o.ES5=1]="ES5",o[o.ES2015=2]="ES2015",o[o.ES2016=3]="ES2016",o[o.ES2017=4]="ES2017",o[o.ES2018=5]="ES2018",o[o.ES2019=6]="ES2019",o[o.ES2020=7]="ES2020",o[o.ESNext=99]="ESNext",o[o.JSON=100]="JSON",o[o.Latest=99]="Latest",o))(ScriptTarget||{}),ModuleResolutionKind=(o=>(o[o.Classic=1]="Classic",o[o.NodeJs=2]="NodeJs",o))(ModuleResolutionKind||{}),LanguageServiceDefaultsImpl=class{constructor(o,e,t,i,n){Oe(this,"_onDidChange",new monaco_editor_core_exports.Emitter);Oe(this,"_onDidExtraLibsChange",new monaco_editor_core_exports.Emitter);Oe(this,"_extraLibs");Oe(this,"_removedExtraLibs");Oe(this,"_eagerModelSync");Oe(this,"_compilerOptions");Oe(this,"_diagnosticsOptions");Oe(this,"_workerOptions");Oe(this,"_onDidExtraLibsChangeTimeout");Oe(this,"_inlayHintsOptions");Oe(this,"_modeConfiguration");this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(o),this.setDiagnosticsOptions(e),this.setWorkerOptions(t),this.setInlayHintsOptions(i),this.setModeConfiguration(n),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get modeConfiguration(){return this._modeConfiguration}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(o,e){let t;if(typeof e>"u"?t=`ts:extralib-${Math.random().toString(36).substring(2,15)}`:t=e,this._extraLibs[t]&&this._extraLibs[t].content===o)return{dispose:()=>{}};let i=1;return this._removedExtraLibs[t]&&(i=this._removedExtraLibs[t]+1),this._extraLibs[t]&&(i=this._extraLibs[t].version+1),this._extraLibs[t]={content:o,version:i},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let n=this._extraLibs[t];n&&n.version===i&&(delete this._extraLibs[t],this._removedExtraLibs[t]=i,this._fireOnDidExtraLibsChangeSoon())}}}setExtraLibs(o){for(const e in this._extraLibs)this._removedExtraLibs[e]=this._extraLibs[e].version;if(this._extraLibs=Object.create(null),o&&o.length>0)for(const e of o){const t=e.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`,i=e.content;let n=1;this._removedExtraLibs[t]&&(n=this._removedExtraLibs[t]+1),this._extraLibs[t]={content:i,version:n}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){this._onDidExtraLibsChangeTimeout===-1&&(this._onDidExtraLibsChangeTimeout=window.setTimeout(()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)},0))}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(o){this._compilerOptions=o||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(o){this._diagnosticsOptions=o||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(o){this._workerOptions=o||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(o){this._inlayHintsOptions=o||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(o){}setEagerModelSync(o){this._eagerModelSync=o}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(o){this._modeConfiguration=o||Object.create(null),this._onDidChange.fire(void 0)}},typescriptVersion2=typescriptVersion,modeConfigurationDefault={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,diagnostics:!0,documentRangeFormattingEdits:!0,signatureHelp:!0,onTypeFormattingEdits:!0,codeActions:!0,inlayHints:!0},typescriptDefaults=new LanguageServiceDefaultsImpl({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},modeConfigurationDefault),javascriptDefaults=new LanguageServiceDefaultsImpl({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},modeConfigurationDefault),getTypeScriptWorker=()=>getMode().then(o=>o.getTypeScriptWorker()),getJavaScriptWorker=()=>getMode().then(o=>o.getJavaScriptWorker());monaco_editor_core_exports.languages.typescript={ModuleKind,JsxEmit,NewLineKind,ScriptTarget,ModuleResolutionKind,typescriptVersion:typescriptVersion2,typescriptDefaults,javascriptDefaults,getTypeScriptWorker,getJavaScriptWorker};function getMode(){return __vitePreload(()=>import("./tsMode-Dc0KogTY.js"),__vite__mapDeps([22,1,2,3,4,5,6,7,8]),import.meta.url)}monaco_editor_core_exports.languages.onLanguage("typescript",()=>getMode().then(o=>o.setupTypeScript(typescriptDefaults)));monaco_editor_core_exports.languages.onLanguage("javascript",()=>getMode().then(o=>o.setupJavaScript(javascriptDefaults)));class ToggleCollapseUnchangedRegions extends Action2{constructor(){super({id:"diffEditor.toggleCollapseUnchangedRegions",title:{value:localize("toggleCollapseUnchangedRegions","Toggle Collapse Unchanged Regions"),original:"Toggle Collapse Unchanged Regions"},icon:Codicon.map,toggled:ContextKeyExpr.has("config.diffEditor.hideUnchangedRegions.enabled"),precondition:ContextKeyExpr.has("isInDiffEditor"),menu:{when:ContextKeyExpr.has("isInDiffEditor"),id:MenuId.EditorTitle,order:22,group:"navigation"}})}run(e,...t){const i=e.get(IConfigurationService),n=!i.getValue("diffEditor.hideUnchangedRegions.enabled");i.updateValue("diffEditor.hideUnchangedRegions.enabled",n)}}registerAction2(ToggleCollapseUnchangedRegions);class ToggleShowMovedCodeBlocks extends Action2{constructor(){super({id:"diffEditor.toggleShowMovedCodeBlocks",title:{value:localize("toggleShowMovedCodeBlocks","Toggle Show Moved Code Blocks"),original:"Toggle Show Moved Code Blocks"},precondition:ContextKeyExpr.has("isInDiffEditor")})}run(e,...t){const i=e.get(IConfigurationService),n=!i.getValue("diffEditor.experimental.showMoves");i.updateValue("diffEditor.experimental.showMoves",n)}}registerAction2(ToggleShowMovedCodeBlocks);class ToggleUseInlineViewWhenSpaceIsLimited extends Action2{constructor(){super({id:"diffEditor.toggleUseInlineViewWhenSpaceIsLimited",title:{value:localize("toggleUseInlineViewWhenSpaceIsLimited","Toggle Use Inline View When Space Is Limited"),original:"Toggle Use Inline View When Space Is Limited"},precondition:ContextKeyExpr.has("isInDiffEditor")})}run(e,...t){const i=e.get(IConfigurationService),n=!i.getValue("diffEditor.useInlineViewWhenSpaceIsLimited");i.updateValue("diffEditor.useInlineViewWhenSpaceIsLimited",n)}}registerAction2(ToggleUseInlineViewWhenSpaceIsLimited);MenuRegistry.appendMenuItem(MenuId.EditorTitle,{command:{id:new ToggleUseInlineViewWhenSpaceIsLimited().desc.id,title:localize("useInlineViewWhenSpaceIsLimited","Use Inline View When Space Is Limited"),toggled:ContextKeyExpr.has("config.diffEditor.useInlineViewWhenSpaceIsLimited"),precondition:ContextKeyExpr.has("isInDiffEditor")},order:11,group:"1_diff",when:ContextKeyExpr.and(EditorContextKeys.diffEditorRenderSideBySideInlineBreakpointReached,ContextKeyExpr.has("isInDiffEditor"))});MenuRegistry.appendMenuItem(MenuId.EditorTitle,{command:{id:new ToggleShowMovedCodeBlocks().desc.id,title:localize("showMoves","Show Moved Code Blocks"),icon:Codicon.move,toggled:ContextKeyEqualsExpr.create("config.diffEditor.experimental.showMoves",!0),precondition:ContextKeyExpr.has("isInDiffEditor")},order:10,group:"1_diff",when:ContextKeyExpr.has("isInDiffEditor")});const diffEditorCategory={value:localize("diffEditor","Diff Editor"),original:"Diff Editor"};class SwitchSide extends EditorAction2{constructor(){super({id:"diffEditor.switchSide",title:{value:localize("switchSide","Switch Side"),original:"Switch Side"},icon:Codicon.arrowSwap,precondition:ContextKeyExpr.has("isInDiffEditor"),f1:!0,category:diffEditorCategory})}runEditorCommand(e,t,i){const n=findFocusedDiffEditor(e);if(n instanceof DiffEditorWidget){if(i&&i.dryRun)return{destinationSelection:n.mapToOtherSide().destinationSelection};n.switchSide()}}}registerAction2(SwitchSide);class ExitCompareMove extends EditorAction2{constructor(){super({id:"diffEditor.exitCompareMove",title:{value:localize("exitCompareMove","Exit Compare Move"),original:"Exit Compare Move"},icon:Codicon.close,precondition:EditorContextKeys.comparingMovedCode,f1:!1,category:diffEditorCategory,keybinding:{weight:1e4,primary:9}})}runEditorCommand(e,t,...i){const n=findFocusedDiffEditor(e);n instanceof DiffEditorWidget&&n.exitCompareMove()}}registerAction2(ExitCompareMove);class CollapseAllUnchangedRegions extends EditorAction2{constructor(){super({id:"diffEditor.collapseAllUnchangedRegions",title:{value:localize("collapseAllUnchangedRegions","Collapse All Unchanged Regions"),original:"Collapse All Unchanged Regions"},icon:Codicon.fold,precondition:ContextKeyExpr.has("isInDiffEditor"),f1:!0,category:diffEditorCategory})}runEditorCommand(e,t,...i){const n=findFocusedDiffEditor(e);n instanceof DiffEditorWidget&&n.collapseAllUnchangedRegions()}}registerAction2(CollapseAllUnchangedRegions);class ShowAllUnchangedRegions extends EditorAction2{constructor(){super({id:"diffEditor.showAllUnchangedRegions",title:{value:localize("showAllUnchangedRegions","Show All Unchanged Regions"),original:"Show All Unchanged Regions"},icon:Codicon.unfold,precondition:ContextKeyExpr.has("isInDiffEditor"),f1:!0,category:diffEditorCategory})}runEditorCommand(e,t,...i){const n=findFocusedDiffEditor(e);n instanceof DiffEditorWidget&&n.showAllUnchangedRegions()}}registerAction2(ShowAllUnchangedRegions);const accessibleDiffViewerCategory={value:localize("accessibleDiffViewer","Accessible Diff Viewer"),original:"Accessible Diff Viewer"};class AccessibleDiffViewerNext extends Action2{constructor(){super({id:AccessibleDiffViewerNext.id,title:{value:localize("editor.action.accessibleDiffViewer.next","Go to Next Difference"),original:"Go to Next Difference"},category:accessibleDiffViewerCategory,precondition:ContextKeyExpr.has("isInDiffEditor"),keybinding:{primary:65,weight:100},f1:!0})}run(e){const t=findFocusedDiffEditor(e);t==null||t.accessibleDiffViewerNext()}}AccessibleDiffViewerNext.id="editor.action.accessibleDiffViewer.next";MenuRegistry.appendMenuItem(MenuId.EditorTitle,{command:{id:AccessibleDiffViewerNext.id,title:localize("Open Accessible Diff Viewer","Open Accessible Diff Viewer"),precondition:ContextKeyExpr.has("isInDiffEditor")},order:10,group:"2_diff",when:ContextKeyExpr.and(EditorContextKeys.accessibleDiffViewerVisible.negate(),ContextKeyExpr.has("isInDiffEditor"))});class AccessibleDiffViewerPrev extends Action2{constructor(){super({id:AccessibleDiffViewerPrev.id,title:{value:localize("editor.action.accessibleDiffViewer.prev","Go to Previous Difference"),original:"Go to Previous Difference"},category:accessibleDiffViewerCategory,precondition:ContextKeyExpr.has("isInDiffEditor"),keybinding:{primary:1089,weight:100},f1:!0})}run(e){const t=findFocusedDiffEditor(e);t==null||t.accessibleDiffViewerPrev()}}AccessibleDiffViewerPrev.id="editor.action.accessibleDiffViewer.prev";function findFocusedDiffEditor(o){var e;const t=o.get(ICodeEditorService),i=t.listDiffEditors(),n=(e=t.getFocusedCodeEditor())!==null&&e!==void 0?e:t.getActiveCodeEditor();if(!n)return null;for(let s=0,a=i.length;s<a;s++){const l=i[s];if(l.getModifiedEditor().getId()===n.getId()||l.getOriginalEditor().getId()===n.getId())return l}const r=getActiveElement();if(r)for(const s of i){const a=s.getContainerDomNode();if(isElementOrParentOf(a,r))return s}return null}function isElementOrParentOf(o,e){let t=e;for(;t;){if(t===o)return!0;t=t.parentElement}return!1}CommandsRegistry.registerCommandAlias("editor.action.diffReview.next",AccessibleDiffViewerNext.id);registerAction2(AccessibleDiffViewerNext);CommandsRegistry.registerCommandAlias("editor.action.diffReview.prev",AccessibleDiffViewerPrev.id);registerAction2(AccessibleDiffViewerPrev);var __decorate$1p=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1p=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$16=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},SelectionAnchorController_1;const SelectionAnchorSet=new RawContextKey("selectionAnchorSet",!1);let SelectionAnchorController=SelectionAnchorController_1=class{static get(e){return e.getContribution(SelectionAnchorController_1.ID)}constructor(e,t){this.editor=e,this.selectionAnchorSetContextKey=SelectionAnchorSet.bindTo(t),this.modelChangeListener=e.onDidChangeModel(()=>this.selectionAnchorSetContextKey.reset())}setSelectionAnchor(){if(this.editor.hasModel()){const e=this.editor.getPosition();this.editor.changeDecorations(t=>{this.decorationId&&t.removeDecoration(this.decorationId),this.decorationId=t.addDecoration(Selection$1.fromPositions(e,e),{description:"selection-anchor",stickiness:1,hoverMessage:new MarkdownString().appendText(localize("selectionAnchor","Selection Anchor")),className:"selection-anchor"})}),this.selectionAnchorSetContextKey.set(!!this.decorationId),alert(localize("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(Selection$1.fromPositions(e.getStartPosition(),t)),this.cancelSelectionAnchor()}}}cancelSelectionAnchor(){if(this.decorationId){const e=this.decorationId;this.editor.changeDecorations(t=>{t.removeDecoration(e),this.decorationId=void 0}),this.selectionAnchorSetContextKey.set(!1)}}dispose(){this.cancelSelectionAnchor(),this.modelChangeListener.dispose()}};SelectionAnchorController.ID="editor.contrib.selectionAnchorController";SelectionAnchorController=SelectionAnchorController_1=__decorate$1p([__param$1p(1,IContextKeyService)],SelectionAnchorController);class SetSelectionAnchor extends EditorAction{constructor(){super({id:"editor.action.setSelectionAnchor",label:localize("setSelectionAnchor","Set Selection Anchor"),alias:"Set Selection Anchor",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2080),weight:100}})}run(e,t){var i;return __awaiter$16(this,void 0,void 0,function*(){(i=SelectionAnchorController.get(t))===null||i===void 0||i.setSelectionAnchor()})}}class GoToSelectionAnchor extends EditorAction{constructor(){super({id:"editor.action.goToSelectionAnchor",label:localize("goToSelectionAnchor","Go to Selection Anchor"),alias:"Go to Selection Anchor",precondition:SelectionAnchorSet})}run(e,t){var i;return __awaiter$16(this,void 0,void 0,function*(){(i=SelectionAnchorController.get(t))===null||i===void 0||i.goToSelectionAnchor()})}}class SelectFromAnchorToCursor extends EditorAction{constructor(){super({id:"editor.action.selectFromAnchorToCursor",label:localize("selectFromAnchorToCursor","Select from Anchor to Cursor"),alias:"Select from Anchor to Cursor",precondition:SelectionAnchorSet,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2089),weight:100}})}run(e,t){var i;return __awaiter$16(this,void 0,void 0,function*(){(i=SelectionAnchorController.get(t))===null||i===void 0||i.selectFromAnchorToCursor()})}}class CancelSelectionAnchor extends EditorAction{constructor(){super({id:"editor.action.cancelSelectionAnchor",label:localize("cancelSelectionAnchor","Cancel Selection Anchor"),alias:"Cancel Selection Anchor",precondition:SelectionAnchorSet,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:9,weight:100}})}run(e,t){var i;return __awaiter$16(this,void 0,void 0,function*(){(i=SelectionAnchorController.get(t))===null||i===void 0||i.cancelSelectionAnchor()})}}registerEditorContribution(SelectionAnchorController.ID,SelectionAnchorController,4);registerEditorAction(SetSelectionAnchor);registerEditorAction(GoToSelectionAnchor);registerEditorAction(SelectFromAnchorToCursor);registerEditorAction(CancelSelectionAnchor);const overviewRulerBracketMatchForeground=registerColor("editorOverviewRuler.bracketMatchForeground",{dark:"#A0A0A0",light:"#A0A0A0",hcDark:"#A0A0A0",hcLight:"#A0A0A0"},localize("overviewRulerBracketMatchForeground","Overview ruler marker color for matching brackets."));class JumpToBracketAction extends EditorAction{constructor(){super({id:"editor.action.jumpToBracket",label:localize("smartSelect.jumpBracket","Go to Bracket"),alias:"Go to Bracket",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:3165,weight:100}})}run(e,t){var i;(i=BracketMatchingController.get(t))===null||i===void 0||i.jumpToBracket()}}class SelectToBracketAction extends EditorAction{constructor(){super({id:"editor.action.selectToBracket",label:localize("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){var n;let r=!0;i&&i.selectBrackets===!1&&(r=!1),(n=BracketMatchingController.get(t))===null||n===void 0||n.selectToBracket(r)}}class RemoveBracketsAction extends EditorAction{constructor(){super({id:"editor.action.removeBrackets",label:localize("smartSelect.removeBrackets","Remove Brackets"),alias:"Remove Brackets",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:2561,weight:100}})}run(e,t){var i;(i=BracketMatchingController.get(t))===null||i===void 0||i.removeBrackets(this.id)}}class BracketsData{constructor(e,t,i){this.position=e,this.brackets=t,this.options=i}}class BracketMatchingController extends Disposable{static get(e){return e.getContribution(BracketMatchingController.ID)}constructor(e){super(),this._editor=e,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new RunOnceScheduler(()=>this._updateBrackets(),50)),this._matchBrackets=this._editor.getOption(71),this._updateBracketsSoon.schedule(),this._register(e.onDidChangeCursorPosition(t=>{this._matchBrackets!=="never"&&this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModelContent(t=>{this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModel(t=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModelLanguageConfiguration(t=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeConfiguration(t=>{t.hasChanged(71)&&(this._matchBrackets=this._editor.getOption(71),this._decorations.clear(),this._lastBracketsData=[],this._lastVersionId=0,this._updateBracketsSoon.schedule())})),this._register(e.onDidBlurEditorWidget(()=>{this._updateBracketsSoon.schedule()})),this._register(e.onDidFocusEditorWidget(()=>{this._updateBracketsSoon.schedule()}))}jumpToBracket(){if(!this._editor.hasModel())return;const e=this._editor.getModel(),t=this._editor.getSelections().map(i=>{const n=i.getStartPosition(),r=e.bracketPairs.matchBracket(n);let s=null;if(r)r[0].containsPosition(n)&&!r[1].containsPosition(n)?s=r[1].getStartPosition():r[1].containsPosition(n)&&(s=r[0].getStartPosition());else{const a=e.bracketPairs.findEnclosingBrackets(n);if(a)s=a[1].getStartPosition();else{const l=e.bracketPairs.findNextBracket(n);l&&l.range&&(s=l.range.getStartPosition())}}return s?new Selection$1(s.lineNumber,s.column,s.lineNumber,s.column):new Selection$1(n.lineNumber,n.column,n.lineNumber,n.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 r=n.getStartPosition();let s=t.bracketPairs.matchBracket(r);if(!s&&(s=t.bracketPairs.findEnclosingBrackets(r),!s)){const d=t.bracketPairs.findNextBracket(r);d&&d.range&&(s=t.bracketPairs.matchBracket(d.range.getStartPosition()))}let a=null,l=null;if(s){s.sort(Range$2.compareRangesUsingStarts);const[d,c]=s;if(a=e?d.getStartPosition():d.getEndPosition(),l=e?c.getEndPosition():c.getStartPosition(),c.containsPosition(r)){const u=a;a=l,l=u}}a&&l&&i.push(new Selection$1(a.lineNumber,a.column,l.lineNumber,l.column))}),i.length>0&&(this._editor.setSelections(i),this._editor.revealRange(i[0]))}removeBrackets(e){if(!this._editor.hasModel())return;const t=this._editor.getModel();this._editor.getSelections().forEach(i=>{const n=i.getPosition();let r=t.bracketPairs.matchBracket(n);r||(r=t.bracketPairs.findEnclosingBrackets(n)),r&&(this._editor.pushUndoStop(),this._editor.executeEdits(e,[{range:r[0],text:""},{range:r[1],text:""}]),this._editor.pushUndoStop())})}_updateBrackets(){if(this._matchBrackets==="never")return;this._recomputeBrackets();const e=[];let t=0;for(const i of this._lastBracketsData){const n=i.brackets;n&&(e[t++]={range:n[0],options:i.options},e[t++]={range:n[1],options:i.options})}this._decorations.set(e)}_recomputeBrackets(){if(!this._editor.hasModel()||!this._editor.hasWidgetFocus()){this._lastBracketsData=[],this._lastVersionId=0;return}const e=this._editor.getSelections();if(e.length>100){this._lastBracketsData=[],this._lastVersionId=0;return}const t=this._editor.getModel(),i=t.getVersionId();let n=[];this._lastVersionId===i&&(n=this._lastBracketsData);const r=[];let s=0;for(let u=0,g=e.length;u<g;u++){const f=e[u];f.isEmpty()&&(r[s++]=f.getStartPosition())}r.length>1&&r.sort(Position$1.compare);const a=[];let l=0,d=0;const c=n.length;for(let u=0,g=r.length;u<g;u++){const f=r[u];for(;d<c&&n[d].position.isBefore(f);)d++;if(d<c&&n[d].position.equals(f))a[l++]=n[d];else{let p=t.bracketPairs.matchBracket(f,20),m=BracketMatchingController._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;!p&&this._matchBrackets==="always"&&(p=t.bracketPairs.findEnclosingBrackets(f,20),m=BracketMatchingController._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER),a[l++]=new BracketsData(f,p,m)}}this._lastBracketsData=a,this._lastVersionId=i}}BracketMatchingController.ID="editor.contrib.bracketMatchingController";BracketMatchingController._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=ModelDecorationOptions.register({description:"bracket-match-overview",stickiness:1,className:"bracket-match",overviewRuler:{color:themeColorFromId(overviewRulerBracketMatchForeground),position:OverviewRulerLane.Center}});BracketMatchingController._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=ModelDecorationOptions.register({description:"bracket-match-no-overview",stickiness:1,className:"bracket-match"});registerEditorContribution(BracketMatchingController.ID,BracketMatchingController,1);registerEditorAction(SelectToBracketAction);registerEditorAction(JumpToBracketAction);registerEditorAction(RemoveBracketsAction);MenuRegistry.appendMenuItem(MenuId.MenubarGoMenu,{group:"5_infile_nav",command:{id:"editor.action.jumpToBracket",title:localize({},"Go to &&Bracket")},order:2});class MoveCaretCommand{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,r=this._selection.endColumn;if(!(this._isMovingLeft&&n===1)&&!(!this._isMovingLeft&&r===e.getLineMaxColumn(i)))if(this._isMovingLeft){const s=new Range$2(i,n-1,i,n),a=e.getValueInRange(s);t.addEditOperation(s,null),t.addEditOperation(new Range$2(i,r,i,r),a)}else{const s=new Range$2(i,r,i,r+1),a=e.getValueInRange(s);t.addEditOperation(s,null),t.addEditOperation(new Range$2(i,n,i,n),a)}}computeCursorState(e,t){return this._isMovingLeft?new Selection$1(this._selection.startLineNumber,this._selection.startColumn-1,this._selection.endLineNumber,this._selection.endColumn-1):new Selection$1(this._selection.startLineNumber,this._selection.startColumn+1,this._selection.endLineNumber,this._selection.endColumn+1)}}class MoveCaretAction extends EditorAction{constructor(e,t){super(t),this.left=e}run(e,t){if(!t.hasModel())return;const i=[],n=t.getSelections();for(const r of n)i.push(new MoveCaretCommand(r,this.left));t.pushUndoStop(),t.executeCommands(this.id,i),t.pushUndoStop()}}class MoveCaretLeftAction extends MoveCaretAction{constructor(){super(!0,{id:"editor.action.moveCarretLeftAction",label:localize("caret.moveLeft","Move Selected Text Left"),alias:"Move Selected Text Left",precondition:EditorContextKeys.writable})}}class MoveCaretRightAction extends MoveCaretAction{constructor(){super(!1,{id:"editor.action.moveCarretRightAction",label:localize("caret.moveRight","Move Selected Text Right"),alias:"Move Selected Text Right",precondition:EditorContextKeys.writable})}}registerEditorAction(MoveCaretLeftAction);registerEditorAction(MoveCaretRightAction);class TransposeLettersAction extends EditorAction{constructor(){super({id:"editor.action.transposeLetters",label:localize("transposeLetters.label","Transpose Letters"),alias:"Transpose Letters",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:306},weight:100}})}run(e,t){if(!t.hasModel())return;const i=t.getModel(),n=[],r=t.getSelections();for(const s of r){if(!s.isEmpty())continue;const a=s.startLineNumber,l=s.startColumn,d=i.getLineMaxColumn(a);if(a===1&&(l===1||l===2&&d===2))continue;const c=l===d?s.getPosition():MoveOperations.rightPosition(i,s.getPosition().lineNumber,s.getPosition().column),u=MoveOperations.leftPosition(i,c),g=MoveOperations.leftPosition(i,u),f=i.getValueInRange(Range$2.fromPositions(g,u)),p=i.getValueInRange(Range$2.fromPositions(u,c)),m=Range$2.fromPositions(g,c);n.push(new ReplaceCommand(m,p+f))}n.length>0&&(t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop())}}registerEditorAction(TransposeLettersAction);var __awaiter$15=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};const CLIPBOARD_CONTEXT_MENU_GROUP="9_cutcopypaste",supportsCut=isNative||document.queryCommandSupported("cut"),supportsCopy=isNative||document.queryCommandSupported("copy"),supportsPaste=typeof navigator.clipboard>"u"||isFirefox?document.queryCommandSupported("paste"):!0;function registerCommand(o){return o.register(),o}const CutAction=supportsCut?registerCommand(new MultiCommand({id:"editor.action.clipboardCutAction",precondition:void 0,kbOpts:isNative?{primary:2102,win:{primary:2102,secondary:[1044]},weight:100}:void 0,menuOpts:[{menuId:MenuId.MenubarEditMenu,group:"2_ccp",title:localize({},"Cu&&t"),order:1},{menuId:MenuId.EditorContext,group:CLIPBOARD_CONTEXT_MENU_GROUP,title:localize("actions.clipboard.cutLabel","Cut"),when:EditorContextKeys.writable,order:1},{menuId:MenuId.CommandPalette,group:"",title:localize("actions.clipboard.cutLabel","Cut"),order:1},{menuId:MenuId.SimpleEditorContext,group:CLIPBOARD_CONTEXT_MENU_GROUP,title:localize("actions.clipboard.cutLabel","Cut"),when:EditorContextKeys.writable,order:1}]})):void 0,CopyAction=supportsCopy?registerCommand(new MultiCommand({id:"editor.action.clipboardCopyAction",precondition:void 0,kbOpts:isNative?{primary:2081,win:{primary:2081,secondary:[2067]},weight:100}:void 0,menuOpts:[{menuId:MenuId.MenubarEditMenu,group:"2_ccp",title:localize({},"&&Copy"),order:2},{menuId:MenuId.EditorContext,group:CLIPBOARD_CONTEXT_MENU_GROUP,title:localize("actions.clipboard.copyLabel","Copy"),order:2},{menuId:MenuId.CommandPalette,group:"",title:localize("actions.clipboard.copyLabel","Copy"),order:1},{menuId:MenuId.SimpleEditorContext,group:CLIPBOARD_CONTEXT_MENU_GROUP,title:localize("actions.clipboard.copyLabel","Copy"),order:2}]})):void 0;MenuRegistry.appendMenuItem(MenuId.MenubarEditMenu,{submenu:MenuId.MenubarCopy,title:{value:localize("copy as","Copy As"),original:"Copy As"},group:"2_ccp",order:3});MenuRegistry.appendMenuItem(MenuId.EditorContext,{submenu:MenuId.EditorContextCopy,title:{value:localize("copy as","Copy As"),original:"Copy As"},group:CLIPBOARD_CONTEXT_MENU_GROUP,order:3});MenuRegistry.appendMenuItem(MenuId.EditorContext,{submenu:MenuId.EditorContextShare,title:{value:localize("share","Share"),original:"Share"},group:"11_share",order:-1,when:ContextKeyExpr.and(ContextKeyExpr.notEquals("resourceScheme","output"),EditorContextKeys.editorTextFocus)});MenuRegistry.appendMenuItem(MenuId.EditorTitleContext,{submenu:MenuId.EditorTitleContextShare,title:{value:localize("share","Share"),original:"Share"},group:"11_share",order:-1});MenuRegistry.appendMenuItem(MenuId.ExplorerContext,{submenu:MenuId.ExplorerContextShare,title:{value:localize("share","Share"),original:"Share"},group:"11_share",order:-1});const PasteAction=supportsPaste?registerCommand(new MultiCommand({id:"editor.action.clipboardPasteAction",precondition:void 0,kbOpts:isNative?{primary:2100,win:{primary:2100,secondary:[1043]},linux:{primary:2100,secondary:[1043]},weight:100}:void 0,menuOpts:[{menuId:MenuId.MenubarEditMenu,group:"2_ccp",title:localize({},"&&Paste"),order:4},{menuId:MenuId.EditorContext,group:CLIPBOARD_CONTEXT_MENU_GROUP,title:localize("actions.clipboard.pasteLabel","Paste"),when:EditorContextKeys.writable,order:4},{menuId:MenuId.CommandPalette,group:"",title:localize("actions.clipboard.pasteLabel","Paste"),order:1},{menuId:MenuId.SimpleEditorContext,group:CLIPBOARD_CONTEXT_MENU_GROUP,title:localize("actions.clipboard.pasteLabel","Paste"),when:EditorContextKeys.writable,order:4}]})):void 0;class ExecCommandCopyWithSyntaxHighlightingAction extends EditorAction{constructor(){super({id:"editor.action.clipboardCopyWithSyntaxHighlightingAction",label:localize("actions.clipboard.copyWithSyntaxHighlightingLabel","Copy With Syntax Highlighting"),alias:"Copy With Syntax Highlighting",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:0,weight:100}})}run(e,t){!t.hasModel()||!t.getOption(37)&&t.getSelection().isEmpty()||(CopyOptions.forceCopyWithSyntaxHighlighting=!0,t.focus(),t.getContainerDomNode().ownerDocument.execCommand("copy"),CopyOptions.forceCopyWithSyntaxHighlighting=!1)}}function registerExecCommandImpl(o,e){o&&(o.addImplementation(1e4,"code-editor",(t,i)=>{const n=t.get(ICodeEditorService).getFocusedCodeEditor();if(n&&n.hasTextFocus()){const r=n.getOption(37),s=n.getSelection();return s&&s.isEmpty()&&!r||n.getContainerDomNode().ownerDocument.execCommand(e),!0}return!1}),o.addImplementation(0,"generic-dom",(t,i)=>(getActiveDocument().execCommand(e),!0)))}registerExecCommandImpl(CutAction,"cut");registerExecCommandImpl(CopyAction,"copy");PasteAction&&(PasteAction.addImplementation(1e4,"code-editor",(o,e)=>{const t=o.get(ICodeEditorService),i=o.get(IClipboardService),n=t.getFocusedCodeEditor();return n&&n.hasTextFocus()?!n.getContainerDomNode().ownerDocument.execCommand("paste")&&isWeb?__awaiter$15(void 0,void 0,void 0,function*(){const s=yield i.readText();if(s!==""){const a=InMemoryClipboardMetadataManager.INSTANCE.get(s);let l=!1,d=null,c=null;a&&(l=n.getOption(37)&&!!a.isFromEmptySelection,d=typeof a.multicursorText<"u"?a.multicursorText:null,c=a.mode),n.trigger("keyboard","paste",{text:s,pasteOnNewLine:l,multicursorText:d,mode:c})}}):!0:!1}),PasteAction.addImplementation(0,"generic-dom",(o,e)=>(getActiveDocument().execCommand("paste"),!0)));supportsCopy&®isterEditorAction(ExecCommandCopyWithSyntaxHighlightingAction);var __awaiter$14=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};class CodeActionKind{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+CodeActionKind.sep)}intersects(e){return this.contains(e)||e.contains(this)}append(e){return new CodeActionKind(this.value+CodeActionKind.sep+e)}}CodeActionKind.sep=".";CodeActionKind.None=new CodeActionKind("@@none@@");CodeActionKind.Empty=new CodeActionKind("");CodeActionKind.QuickFix=new CodeActionKind("quickfix");CodeActionKind.Refactor=new CodeActionKind("refactor");CodeActionKind.RefactorExtract=CodeActionKind.Refactor.append("extract");CodeActionKind.RefactorInline=CodeActionKind.Refactor.append("inline");CodeActionKind.RefactorMove=CodeActionKind.Refactor.append("move");CodeActionKind.RefactorRewrite=CodeActionKind.Refactor.append("rewrite");CodeActionKind.Notebook=new CodeActionKind("notebook");CodeActionKind.Source=new CodeActionKind("source");CodeActionKind.SourceOrganizeImports=CodeActionKind.Source.append("organizeImports");CodeActionKind.SourceFixAll=CodeActionKind.Source.append("fixAll");CodeActionKind.SurroundWith=CodeActionKind.Refactor.append("surround");var CodeActionTriggerSource;(function(o){o.Refactor="refactor",o.RefactorPreview="refactor preview",o.Lightbulb="lightbulb",o.Default="other (default)",o.SourceAction="source action",o.QuickFix="quick fix action",o.FixAll="fix all",o.OrganizeImports="organize imports",o.AutoFix="auto fix",o.QuickFixHover="quick fix hover window",o.OnSave="save participants",o.ProblemsView="problems view"})(CodeActionTriggerSource||(CodeActionTriggerSource={}));function mayIncludeActionsOfKind(o,e){return!(o.include&&!o.include.intersects(e)||o.excludes&&o.excludes.some(t=>excludesAction(e,t,o.include))||!o.includeSourceActions&&CodeActionKind.Source.contains(e))}function filtersAction(o,e){const t=e.kind?new CodeActionKind(e.kind):void 0;return!(o.include&&(!t||!o.include.contains(t))||o.excludes&&t&&o.excludes.some(i=>excludesAction(t,i,o.include))||!o.includeSourceActions&&t&&CodeActionKind.Source.contains(t)||o.onlyIncludePreferredActions&&!e.isPreferred)}function excludesAction(o,e,t){return!(!e.contains(o)||t&&e.contains(t))}class CodeActionCommandArgs{static fromUser(e,t){return!e||typeof e!="object"?new CodeActionCommandArgs(t.kind,t.apply,!1):new CodeActionCommandArgs(CodeActionCommandArgs.getKindFromUser(e,t.kind),CodeActionCommandArgs.getApplyFromUser(e,t.apply),CodeActionCommandArgs.getPreferredUser(e))}static getApplyFromUser(e,t){switch(typeof e.apply=="string"?e.apply.toLowerCase():""){case"first":return"first";case"never":return"never";case"ifsingle":return"ifSingle";default:return t}}static getKindFromUser(e,t){return typeof e.kind=="string"?new CodeActionKind(e.kind):t}static getPreferredUser(e){return typeof e.preferred=="boolean"?e.preferred:!1}constructor(e,t,i){this.kind=e,this.apply=t,this.preferred=i}}class CodeActionItem{constructor(e,t,i){this.action=e,this.provider=t,this.highlightRange=i}resolve(e){var t;return __awaiter$14(this,void 0,void 0,function*(){if(!((t=this.provider)===null||t===void 0)&&t.resolveCodeAction&&!this.action.edit){let i;try{i=yield this.provider.resolveCodeAction(this.action,e)}catch(n){onUnexpectedExternalError(n)}i&&(this.action.edit=i.edit)}return this})}}var __awaiter$13=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};const codeActionCommandId="editor.action.codeAction",quickFixCommandId="editor.action.quickFix",autoFixCommandId="editor.action.autoFix",refactorCommandId="editor.action.refactor",sourceActionCommandId="editor.action.sourceAction",organizeImportsCommandId="editor.action.organizeImports",fixAllCommandId="editor.action.fixAll";class ManagedCodeActionSet extends Disposable{static codeActionsPreferredComparator(e,t){return e.isPreferred&&!t.isPreferred?-1:!e.isPreferred&&t.isPreferred?1:0}static codeActionsComparator({action:e},{action:t}){return isNonEmptyArray(e.diagnostics)?isNonEmptyArray(t.diagnostics)?ManagedCodeActionSet.codeActionsPreferredComparator(e,t):-1:isNonEmptyArray(t.diagnostics)?1:ManagedCodeActionSet.codeActionsPreferredComparator(e,t)}constructor(e,t,i){super(),this.documentation=t,this._register(i),this.allActions=[...e].sort(ManagedCodeActionSet.codeActionsComparator),this.validActions=this.allActions.filter(({action:n})=>!n.disabled)}get hasAutoFix(){return this.validActions.some(({action:e})=>!!e.kind&&CodeActionKind.QuickFix.contains(new CodeActionKind(e.kind))&&!!e.isPreferred)}}const emptyCodeActionsResponse={actions:[],documentation:void 0};function getCodeActions(o,e,t,i,n,r){var s;return __awaiter$13(this,void 0,void 0,function*(){const a=i.filter||{},l=Object.assign(Object.assign({},a),{excludes:[...a.excludes||[],CodeActionKind.Notebook]}),d={only:(s=a.include)===null||s===void 0?void 0:s.value,trigger:i.type},c=new TextModelCancellationTokenSource(e,r),u=i.type===2,g=getCodeActionProviders(o,e,u?l:a),f=new DisposableStore,p=g.map(b=>__awaiter$13(this,void 0,void 0,function*(){try{n.report(b);const _=yield b.provideCodeActions(e,t,d,c.token);if(_&&f.add(_),c.token.isCancellationRequested)return emptyCodeActionsResponse;const C=((_==null?void 0:_.actions)||[]).filter(y=>y&&filtersAction(a,y)),S=getDocumentationFromProvider(b,C,a.include);return{actions:C.map(y=>new CodeActionItem(y,b)),documentation:S}}catch(_){if(isCancellationError(_))throw _;return onUnexpectedExternalError(_),emptyCodeActionsResponse}})),m=o.onDidChange(()=>{const b=o.all(e);equals$2(b,g)||c.cancel()});try{const b=yield Promise.all(p),_=b.map(S=>S.actions).flat(),C=[...coalesce(b.map(S=>S.documentation)),...getAdditionalDocumentationForShowingActions(o,e,i,_)];return new ManagedCodeActionSet(_,C,f)}finally{m.dispose(),c.dispose()}})}function getCodeActionProviders(o,e,t){return o.all(e).filter(i=>i.providedCodeActionKinds?i.providedCodeActionKinds.some(n=>mayIncludeActionsOfKind(t,new CodeActionKind(n))):!0)}function*getAdditionalDocumentationForShowingActions(o,e,t,i){var n,r,s;if(e&&i.length)for(const a of o.all(e))a._getAdditionalMenuItems&&(yield*(n=a._getAdditionalMenuItems)===null||n===void 0?void 0:n.call(a,{trigger:t.type,only:(s=(r=t.filter)===null||r===void 0?void 0:r.include)===null||s===void 0?void 0:s.value},i.map(l=>l.action)))}function getDocumentationFromProvider(o,e,t){if(!o.documentation)return;const i=o.documentation.map(n=>({kind:new CodeActionKind(n.kind),command:n.command}));if(t){let n;for(const r of i)r.kind.contains(t)&&(n?n.kind.contains(r.kind)&&(n=r):n=r);if(n)return n==null?void 0:n.command}for(const n of e)if(n.kind){for(const r of i)if(r.kind.contains(new CodeActionKind(n.kind)))return r.command}}var ApplyCodeActionReason;(function(o){o.OnSave="onSave",o.FromProblemsView="fromProblemsView",o.FromCodeActions="fromCodeActions"})(ApplyCodeActionReason||(ApplyCodeActionReason={}));function applyCodeAction(o,e,t,i,n=CancellationToken.None){var r;return __awaiter$13(this,void 0,void 0,function*(){const s=o.get(IBulkEditService),a=o.get(ICommandService),l=o.get(ITelemetryService),d=o.get(INotificationService);if(l.publicLog2("codeAction.applyCodeAction",{codeActionTitle:e.action.title,codeActionKind:e.action.kind,codeActionIsPreferred:!!e.action.isPreferred,reason:t}),yield e.resolve(n),!n.isCancellationRequested&&!(!((r=e.action.edit)===null||r===void 0)&&r.edits.length&&!(yield s.apply(e.action.edit,{editor:i==null?void 0:i.editor,label:e.action.title,quotableLabel:e.action.title,code:"undoredo.codeAction",respectAutoSaveConfig:t!==ApplyCodeActionReason.OnSave,showPreview:i==null?void 0:i.preview})).isApplied)&&e.action.command)try{yield a.executeCommand(e.action.command.id,...e.action.command.arguments||[])}catch(c){const u=asMessage(c);d.error(typeof u=="string"?u:localize("applyCodeActionFailed","An unknown error occurred while applying the code action"))}})}function asMessage(o){return typeof o=="string"?o:o instanceof Error&&typeof o.message=="string"?o.message:void 0}CommandsRegistry.registerCommand("_executeCodeActionProvider",function(o,e,t,i,n){return __awaiter$13(this,void 0,void 0,function*(){if(!(e instanceof URI))throw illegalArgument();const{codeActionProvider:r}=o.get(ILanguageFeaturesService),s=o.get(IModelService).getModel(e);if(!s)throw illegalArgument();const a=Selection$1.isISelection(t)?Selection$1.liftSelection(t):Range$2.isIRange(t)?s.validateRange(t):void 0;if(!a)throw illegalArgument();const l=typeof i=="string"?new CodeActionKind(i):void 0,d=yield getCodeActions(r,s,a,{type:1,triggerAction:CodeActionTriggerSource.Default,filter:{includeSourceActions:!0,include:l}},Progress.None,CancellationToken.None),c=[],u=Math.min(d.validActions.length,typeof n=="number"?n:0);for(let g=0;g<u;g++)c.push(d.validActions[g].resolve(CancellationToken.None));try{return yield Promise.all(c),d.validActions.map(g=>g.action)}finally{setTimeout(()=>d.dispose(),100)}})});var __decorate$1o=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1o=function(o,e){return function(t,i){e(t,i,o)}},CodeActionKeybindingResolver_1;let CodeActionKeybindingResolver=CodeActionKeybindingResolver_1=class{constructor(e){this.keybindingService=e}getResolver(){const e=new Lazy(()=>this.keybindingService.getKeybindings().filter(t=>CodeActionKeybindingResolver_1.codeActionCommands.indexOf(t.command)>=0).filter(t=>t.resolvedKeybinding).map(t=>{let i=t.commandArgs;return t.command===organizeImportsCommandId?i={kind:CodeActionKind.SourceOrganizeImports.value}:t.command===fixAllCommandId&&(i={kind:CodeActionKind.SourceFixAll.value}),Object.assign({resolvedKeybinding:t.resolvedKeybinding},CodeActionCommandArgs.fromUser(i,{kind:CodeActionKind.None,apply:"never"}))}));return t=>{if(t.kind){const i=this.bestKeybindingForCodeAction(t,e.value);return i==null?void 0:i.resolvedKeybinding}}}bestKeybindingForCodeAction(e,t){if(!e.kind)return;const i=new CodeActionKind(e.kind);return t.filter(n=>n.kind.contains(i)).filter(n=>n.preferred?e.isPreferred:!0).reduceRight((n,r)=>n?n.kind.contains(r.kind)?r:n:r,void 0)}};CodeActionKeybindingResolver.codeActionCommands=[refactorCommandId,codeActionCommandId,sourceActionCommandId,organizeImportsCommandId,fixAllCommandId];CodeActionKeybindingResolver=CodeActionKeybindingResolver_1=__decorate$1o([__param$1o(0,IKeybindingService)],CodeActionKeybindingResolver);registerColor("symbolIcon.arrayForeground",{dark:foreground,light:foreground,hcDark:foreground,hcLight:foreground},localize("symbolIcon.arrayForeground","The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.booleanForeground",{dark:foreground,light:foreground,hcDark:foreground,hcLight:foreground},localize("symbolIcon.booleanForeground","The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.classForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},localize("symbolIcon.classForeground","The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.colorForeground",{dark:foreground,light:foreground,hcDark:foreground,hcLight:foreground},localize("symbolIcon.colorForeground","The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.constantForeground",{dark:foreground,light:foreground,hcDark:foreground,hcLight:foreground},localize("symbolIcon.constantForeground","The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.constructorForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},localize("symbolIcon.constructorForeground","The foreground color for constructor symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.enumeratorForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},localize("symbolIcon.enumeratorForeground","The foreground color for enumerator symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.enumeratorMemberForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},localize("symbolIcon.enumeratorMemberForeground","The foreground color for enumerator member symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.eventForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},localize("symbolIcon.eventForeground","The foreground color for event symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.fieldForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},localize("symbolIcon.fieldForeground","The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.fileForeground",{dark:foreground,light:foreground,hcDark:foreground,hcLight:foreground},localize("symbolIcon.fileForeground","The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.folderForeground",{dark:foreground,light:foreground,hcDark:foreground,hcLight:foreground},localize("symbolIcon.folderForeground","The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.functionForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},localize("symbolIcon.functionForeground","The foreground color for function symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.interfaceForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},localize("symbolIcon.interfaceForeground","The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.keyForeground",{dark:foreground,light:foreground,hcDark:foreground,hcLight:foreground},localize("symbolIcon.keyForeground","The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.keywordForeground",{dark:foreground,light:foreground,hcDark:foreground,hcLight:foreground},localize("symbolIcon.keywordForeground","The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.methodForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},localize("symbolIcon.methodForeground","The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.moduleForeground",{dark:foreground,light:foreground,hcDark:foreground,hcLight:foreground},localize("symbolIcon.moduleForeground","The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.namespaceForeground",{dark:foreground,light:foreground,hcDark:foreground,hcLight:foreground},localize("symbolIcon.namespaceForeground","The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.nullForeground",{dark:foreground,light:foreground,hcDark:foreground,hcLight:foreground},localize("symbolIcon.nullForeground","The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.numberForeground",{dark:foreground,light:foreground,hcDark:foreground,hcLight:foreground},localize("symbolIcon.numberForeground","The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.objectForeground",{dark:foreground,light:foreground,hcDark:foreground,hcLight:foreground},localize("symbolIcon.objectForeground","The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.operatorForeground",{dark:foreground,light:foreground,hcDark:foreground,hcLight:foreground},localize("symbolIcon.operatorForeground","The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.packageForeground",{dark:foreground,light:foreground,hcDark:foreground,hcLight:foreground},localize("symbolIcon.packageForeground","The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.propertyForeground",{dark:foreground,light:foreground,hcDark:foreground,hcLight:foreground},localize("symbolIcon.propertyForeground","The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.referenceForeground",{dark:foreground,light:foreground,hcDark:foreground,hcLight:foreground},localize("symbolIcon.referenceForeground","The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.snippetForeground",{dark:foreground,light:foreground,hcDark:foreground,hcLight:foreground},localize("symbolIcon.snippetForeground","The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.stringForeground",{dark:foreground,light:foreground,hcDark:foreground,hcLight:foreground},localize("symbolIcon.stringForeground","The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.structForeground",{dark:foreground,light:foreground,hcDark:foreground,hcLight:foreground},localize("symbolIcon.structForeground","The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.textForeground",{dark:foreground,light:foreground,hcDark:foreground,hcLight:foreground},localize("symbolIcon.textForeground","The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.typeParameterForeground",{dark:foreground,light:foreground,hcDark:foreground,hcLight:foreground},localize("symbolIcon.typeParameterForeground","The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.unitForeground",{dark:foreground,light:foreground,hcDark:foreground,hcLight:foreground},localize("symbolIcon.unitForeground","The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.variableForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},localize("symbolIcon.variableForeground","The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));const uncategorizedCodeActionGroup=Object.freeze({kind:CodeActionKind.Empty,title:localize("codeAction.widget.id.more","More Actions...")}),codeActionGroups=Object.freeze([{kind:CodeActionKind.QuickFix,title:localize("codeAction.widget.id.quickfix","Quick Fix")},{kind:CodeActionKind.RefactorExtract,title:localize("codeAction.widget.id.extract","Extract"),icon:Codicon.wrench},{kind:CodeActionKind.RefactorInline,title:localize("codeAction.widget.id.inline","Inline"),icon:Codicon.wrench},{kind:CodeActionKind.RefactorRewrite,title:localize("codeAction.widget.id.convert","Rewrite"),icon:Codicon.wrench},{kind:CodeActionKind.RefactorMove,title:localize("codeAction.widget.id.move","Move"),icon:Codicon.wrench},{kind:CodeActionKind.SurroundWith,title:localize("codeAction.widget.id.surround","Surround With"),icon:Codicon.symbolSnippet},{kind:CodeActionKind.Source,title:localize("codeAction.widget.id.source","Source Action"),icon:Codicon.symbolFile},uncategorizedCodeActionGroup]);function toMenuItems(o,e,t){if(!e)return o.map(r=>{var s;return{kind:"action",item:r,group:uncategorizedCodeActionGroup,disabled:!!r.action.disabled,label:r.action.disabled||r.action.title,canPreview:!!(!((s=r.action.edit)===null||s===void 0)&&s.edits.length)}});const i=codeActionGroups.map(r=>({group:r,actions:[]}));for(const r of o){const s=r.action.kind?new CodeActionKind(r.action.kind):CodeActionKind.None;for(const a of i)if(a.group.kind.contains(s)){a.actions.push(r);break}}const n=[];for(const r of i)if(r.actions.length){n.push({kind:"header",group:r.group});for(const s of r.actions)n.push({kind:"action",item:s,group:r.group,label:s.action.title,disabled:!!s.action.disabled,keybinding:t(s.action)})}return n}var __decorate$1n=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1n=function(o,e){return function(t,i){e(t,i,o)}},LightBulbWidget_1,LightBulbState;(function(o){o.Hidden={type:0};class e{constructor(i,n,r,s){this.actions=i,this.trigger=n,this.editorPosition=r,this.widgetPosition=s,this.type=1}}o.Showing=e})(LightBulbState||(LightBulbState={}));let LightBulbWidget=LightBulbWidget_1=class extends Disposable{constructor(e,t){super(),this._editor=e,this._onClick=this._register(new Emitter$1),this.onClick=this._onClick.event,this._state=LightBulbState.Hidden,this._domNode=$$d("div.lightBulbWidget"),this._register(Gesture.ignoreTarget(this._domNode)),this._editor.addContentWidget(this),this._register(this._editor.onDidChangeModelContent(i=>{const n=this._editor.getModel();(this.state.type!==1||!n||this.state.editorPosition.lineNumber>=n.getLineCount())&&this.hide()})),this._register(addStandardDisposableGenericMouseDownListener(this._domNode,i=>{if(this.state.type!==1)return;this._editor.focus(),i.preventDefault();const{top:n,height:r}=getDomNodePagePosition(this._domNode),s=this._editor.getOption(66);let a=Math.floor(s/3);this.state.widgetPosition.position!==null&&this.state.widgetPosition.position.lineNumber<this.state.editorPosition.lineNumber&&(a+=s),this._onClick.fire({x:i.posx,y:n+r+a,actions:this.state.actions,trigger:this.state.trigger})})),this._register(addDisposableListener(this._domNode,"mouseenter",i=>{(i.buttons&1)===1&&this.hide()})),this._register(this._editor.onDidChangeConfiguration(i=>{i.hasChanged(64)&&!this._editor.getOption(64).enabled&&this.hide()})),this._register(Event.runAndSubscribe(t.onDidUpdateKeybindings,()=>{var i,n,r,s;this._preferredKbLabel=(n=(i=t.lookupKeybinding(autoFixCommandId))===null||i===void 0?void 0:i.getLabel())!==null&&n!==void 0?n:void 0,this._quickFixKbLabel=(s=(r=t.lookupKeybinding(quickFixCommandId))===null||r===void 0?void 0:r.getLabel())!==null&&s!==void 0?s:void 0,this._updateLightBulbTitleAndIcon()}))}dispose(){super.dispose(),this._editor.removeContentWidget(this)}getId(){return"LightBulbWidget"}getDomNode(){return this._domNode}getPosition(){return this._state.type===1?this._state.widgetPosition:null}update(e,t,i){if(e.validActions.length<=0)return this.hide();const n=this._editor.getOptions();if(!n.get(64).enabled)return this.hide();const r=this._editor.getModel();if(!r)return this.hide();const{lineNumber:s,column:a}=r.validatePosition(i),l=r.getOptions().tabSize,d=n.get(50),c=r.getLineContent(s),u=computeIndentLevel(c,l),g=d.spaceWidth*u>22,f=m=>m>2&&this._editor.getTopForLineNumber(m)===this._editor.getTopForLineNumber(m-1);let p=s;if(!g){if(s>1&&!f(s-1))p-=1;else if(!f(s+1))p+=1;else if(a*d.spaceWidth<22)return this.hide()}this.state=new LightBulbState.Showing(e,t,i,{position:{lineNumber:p,column:1},preference:LightBulbWidget_1._posPref}),this._editor.layoutContentWidget(this)}hide(){this.state!==LightBulbState.Hidden&&(this.state=LightBulbState.Hidden,this._editor.layoutContentWidget(this))}get state(){return this._state}set state(e){this._state=e,this._updateLightBulbTitleAndIcon()}_updateLightBulbTitleAndIcon(){if(this.state.type===1&&this.state.actions.hasAutoFix&&(this._domNode.classList.remove(...ThemeIcon.asClassNameArray(Codicon.lightBulb)),this._domNode.classList.add(...ThemeIcon.asClassNameArray(Codicon.lightbulbAutofix)),this._preferredKbLabel)){this.title=localize("preferredcodeActionWithKb","Show Code Actions. Preferred Quick Fix Available ({0})",this._preferredKbLabel);return}this._domNode.classList.remove(...ThemeIcon.asClassNameArray(Codicon.lightbulbAutofix)),this._domNode.classList.add(...ThemeIcon.asClassNameArray(Codicon.lightBulb)),this._quickFixKbLabel?this.title=localize("codeActionWithKb","Show Code Actions ({0})",this._quickFixKbLabel):this.title=localize("codeAction","Show Code Actions")}set title(e){this._domNode.title=e}};LightBulbWidget.ID="editor.contrib.lightbulbWidget";LightBulbWidget._posPref=[0];LightBulbWidget=LightBulbWidget_1=__decorate$1n([__param$1n(1,IKeybindingService)],LightBulbWidget);var __decorate$1m=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1m=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$12=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},MarkdownRenderer_1;let MarkdownRenderer=MarkdownRenderer_1=class{constructor(e,t,i){this._options=e,this._languageService=t,this._openerService=i,this._onDidRenderAsync=new Emitter$1,this.onDidRenderAsync=this._onDidRenderAsync.event}dispose(){this._onDidRenderAsync.dispose()}render(e,t,i){if(!e)return{element:document.createElement("span"),dispose:()=>{}};const n=new DisposableStore,r=n.add(renderMarkdown(e,Object.assign(Object.assign({},this._getRenderOptions(e,n)),t),i));return r.element.classList.add("rendered-markdown"),{element:r.element,dispose:()=>n.dispose()}}_getRenderOptions(e,t){return{codeBlockRenderer:(i,n)=>__awaiter$12(this,void 0,void 0,function*(){var r,s,a;let l;i?l=this._languageService.getLanguageIdByLanguageName(i):this._options.editor&&(l=(r=this._options.editor.getModel())===null||r===void 0?void 0:r.getLanguageId()),l||(l=PLAINTEXT_LANGUAGE_ID);const d=yield tokenizeToString(this._languageService,n,l),c=document.createElement("span");if(c.innerHTML=(a=(s=MarkdownRenderer_1._ttpTokenizer)===null||s===void 0?void 0:s.createHTML(d))!==null&&a!==void 0?a:d,this._options.editor){const u=this._options.editor.getOption(50);applyFontInfo(c,u)}else this._options.codeBlockFontFamily&&(c.style.fontFamily=this._options.codeBlockFontFamily);return this._options.codeBlockFontSize!==void 0&&(c.style.fontSize=this._options.codeBlockFontSize),c}),asyncRenderCallback:()=>this._onDidRenderAsync.fire(),actionHandler:{callback:i=>openLinkFromMarkdown(this._openerService,i,e.isTrusted),disposables:t}}}};MarkdownRenderer._ttpTokenizer=createTrustedTypesPolicy("tokenizeToString",{createHTML(o){return o}});MarkdownRenderer=MarkdownRenderer_1=__decorate$1m([__param$1m(1,ILanguageService),__param$1m(2,IOpenerService)],MarkdownRenderer);function openLinkFromMarkdown(o,e,t){return __awaiter$12(this,void 0,void 0,function*(){try{return yield o.open(e,{fromUserGesture:!0,allowContributedOpeners:!0,allowCommands:toAllowCommandsOption(t)})}catch(i){return onUnexpectedError(i),!1}})}function toAllowCommandsOption(o){return o===!0?!0:o&&Array.isArray(o.enabledCommands)?o.enabledCommands:!1}var __decorate$1l=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1l=function(o,e){return function(t,i){e(t,i,o)}},MessageController_1;let MessageController=MessageController_1=class{static get(e){return e.getContribution(MessageController_1.ID)}constructor(e,t,i){this._openerService=i,this._messageWidget=new MutableDisposable,this._messageListeners=new DisposableStore,this._mouseOverMessage=!1,this._editor=e,this._visible=MessageController_1.MESSAGE_VISIBLE.bindTo(t)}dispose(){var e;(e=this._message)===null||e===void 0||e.dispose(),this._messageListeners.dispose(),this._messageWidget.dispose(),this._visible.reset()}showMessage(e,t){alert(isMarkdownString(e)?e.value:e),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),this._message=isMarkdownString(e)?renderMarkdown(e,{actionHandler:{callback:n=>openLinkFromMarkdown(this._openerService,n,isMarkdownString(e)?e.isTrusted:void 0),disposables:this._messageListeners}}):void 0,this._messageWidget.value=new MessageWidget$1(this._editor,t,typeof e=="string"?e:this._message.element),this._messageListeners.add(Event.debounce(this._editor.onDidBlurEditorText,(n,r)=>r,0)(()=>{this._mouseOverMessage||this._messageWidget.value&&isAncestor$1(getActiveElement(),this._messageWidget.value.getDomNode())||this.closeMessage()})),this._messageListeners.add(this._editor.onDidChangeCursorPosition(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidDispose(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidChangeModel(()=>this.closeMessage())),this._messageListeners.add(addDisposableListener(this._messageWidget.value.getDomNode(),EventType$1.MOUSE_ENTER,()=>this._mouseOverMessage=!0,!0)),this._messageListeners.add(addDisposableListener(this._messageWidget.value.getDomNode(),EventType$1.MOUSE_LEAVE,()=>this._mouseOverMessage=!1,!0));let i;this._messageListeners.add(this._editor.onMouseMove(n=>{n.target.position&&(i?i.containsPosition(n.target.position)||this.closeMessage():i=new Range$2(t.lineNumber-3,1,n.target.position.lineNumber+3,1))}))}closeMessage(){this._visible.reset(),this._messageListeners.clear(),this._messageWidget.value&&this._messageListeners.add(MessageWidget$1.fadeOut(this._messageWidget.value))}};MessageController.ID="editor.contrib.messageController";MessageController.MESSAGE_VISIBLE=new RawContextKey("messageVisible",!1,localize("messageVisible","Whether the editor is currently showing an inline message"));MessageController=MessageController_1=__decorate$1l([__param$1l(1,IContextKeyService),__param$1l(2,IOpenerService)],MessageController);const MessageCommand=EditorCommand.bindToContribution(MessageController.get);registerEditorCommand(new MessageCommand({id:"leaveEditorMessage",precondition:MessageController.MESSAGE_VISIBLE,handler:o=>o.closeMessage(),kbOpts:{weight:130,primary:9}}));let MessageWidget$1=class{static fadeOut(e){const t=()=>{e.dispose(),clearTimeout(i),e.getDomNode().removeEventListener("animationend",t)},i=setTimeout(t,110);return e.getDomNode().addEventListener("animationend",t),e.getDomNode().classList.add("fadeOut"),{dispose: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},this._domNode=document.createElement("div"),this._domNode.classList.add("monaco-editor-overlaymessage"),this._domNode.style.marginLeft="-6px";const r=document.createElement("div");r.classList.add("anchor","top"),this._domNode.appendChild(r);const s=document.createElement("div");typeof n=="string"?(s.classList.add("message"),s.textContent=n):(n.classList.add("message"),s.appendChild(n)),this._domNode.appendChild(s);const a=document.createElement("div");a.classList.add("anchor","below"),this._domNode.appendChild(a),this._editor.addContentWidget(this),this._domNode.classList.add("fadeIn")}dispose(){this._editor.removeContentWidget(this)}getId(){return"messageoverlay"}getDomNode(){return this._domNode}getPosition(){return{position:this._position,preference:[1,2],positionAffinity:1}}afterRender(e){this._domNode.classList.toggle("below",e===2)}};registerEditorContribution(MessageController.ID,MessageController,4);var __decorate$1k=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1k=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$11=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};const acceptSelectedActionCommand="acceptSelectedCodeAction",previewSelectedActionCommand="previewSelectedCodeAction";class HeaderRenderer{get templateId(){return"header"}renderTemplate(e){e.classList.add("group-header");const t=document.createElement("span");return e.append(t),{container:e,text:t}}renderElement(e,t,i){var n,r;i.text.textContent=(r=(n=e.group)===null||n===void 0?void 0:n.title)!==null&&r!==void 0?r:""}disposeTemplate(e){}}let ActionItemRenderer=class{get templateId(){return"action"}constructor(e,t){this._supportsPreview=e,this._keybindingService=t}renderTemplate(e){e.classList.add(this.templateId);const t=document.createElement("div");t.className="icon",e.append(t);const i=document.createElement("span");i.className="title",e.append(i);const n=new KeybindingLabel(e,OS);return{container:e,icon:t,text:i,keybinding:n}}renderElement(e,t,i){var n,r,s;if(!((n=e.group)===null||n===void 0)&&n.icon?(i.icon.className=ThemeIcon.asClassName(e.group.icon),e.group.icon.color&&(i.icon.style.color=asCssVariable(e.group.icon.color.id))):(i.icon.className=ThemeIcon.asClassName(Codicon.lightBulb),i.icon.style.color="var(--vscode-editorLightBulb-foreground)"),!e.item||!e.label)return;i.text.textContent=stripNewlines(e.label),i.keybinding.set(e.keybinding),setVisibility(!!e.keybinding,i.keybinding.element);const a=(r=this._keybindingService.lookupKeybinding(acceptSelectedActionCommand))===null||r===void 0?void 0:r.getLabel(),l=(s=this._keybindingService.lookupKeybinding(previewSelectedActionCommand))===null||s===void 0?void 0:s.getLabel();i.container.classList.toggle("option-disabled",e.disabled),e.disabled?i.container.title=e.label:a&&l?this._supportsPreview&&e.canPreview?i.container.title=localize({},"{0} to apply, {1} to preview",a,l):i.container.title=localize({},"{0} to apply",a):i.container.title=""}disposeTemplate(e){}};ActionItemRenderer=__decorate$1k([__param$1k(1,IKeybindingService)],ActionItemRenderer);class AcceptSelectedEvent extends UIEvent{constructor(){super("acceptSelectedAction")}}class PreviewSelectedEvent extends UIEvent{constructor(){super("previewSelectedAction")}}function getKeyboardNavigationLabel(o){if(o.kind==="action")return o.label}let ActionList=class extends Disposable{constructor(e,t,i,n,r,s){super(),this._delegate=n,this._contextViewService=r,this._keybindingService=s,this._actionLineHeight=24,this._headerLineHeight=26,this.cts=this._register(new CancellationTokenSource$1),this.domNode=document.createElement("div"),this.domNode.classList.add("actionList");const a={getHeight:l=>l.kind==="header"?this._headerLineHeight:this._actionLineHeight,getTemplateId:l=>l.kind};this._list=this._register(new List(e,this.domNode,a,[new ActionItemRenderer(t,this._keybindingService),new HeaderRenderer],{keyboardSupport:!1,typeNavigationEnabled:!0,keyboardNavigationLabelProvider:{getKeyboardNavigationLabel},accessibilityProvider:{getAriaLabel:l=>{if(l.kind==="action"){let d=l.label?stripNewlines(l==null?void 0:l.label):"";return l.disabled&&(d=localize({},"{0}, Disabled Reason: {1}",d,l.disabled)),d}return null},getWidgetAriaLabel:()=>localize({},"Action Widget"),getRole:l=>l.kind==="action"?"option":"separator",getWidgetRole:()=>"listbox"}})),this._list.style(defaultListStyles),this._register(this._list.onMouseClick(l=>this.onListClick(l))),this._register(this._list.onMouseOver(l=>this.onListHover(l))),this._register(this._list.onDidChangeFocus(()=>this.onFocus())),this._register(this._list.onDidChangeSelection(l=>this.onListSelection(l))),this._allMenuItems=i,this._list.splice(0,this._list.length,this._allMenuItems),this._list.length&&this.focusNext()}focusCondition(e){return!e.disabled&&e.kind==="action"}hide(e){this._delegate.onHide(e),this.cts.cancel(),this._contextViewService.hideContextView()}layout(e){const t=this._allMenuItems.filter(d=>d.kind==="header").length,n=this._allMenuItems.length*this._actionLineHeight+t*this._headerLineHeight-t*this._actionLineHeight;this._list.layout(n);const r=this._allMenuItems.map((d,c)=>{const u=document.getElementById(this._list.getElementID(c));if(u){u.style.width="auto";const g=u.getBoundingClientRect().width;return u.style.width="",g}return 0}),s=Math.max(...r,e),l=Math.min(n,document.body.clientHeight*.7);return this._list.layout(l,s),this.domNode.style.height=`${l}px`,this._list.domFocus(),s}focusPrevious(){this._list.focusPrevious(1,!0,void 0,this.focusCondition)}focusNext(){this._list.focusNext(1,!0,void 0,this.focusCondition)}acceptSelected(e){const t=this._list.getFocus();if(t.length===0)return;const i=t[0],n=this._list.element(i);if(!this.focusCondition(n))return;const r=e?new PreviewSelectedEvent:new AcceptSelectedEvent;this._list.setSelection([i],r)}onListSelection(e){if(!e.elements.length)return;const t=e.elements[0];t.item&&this.focusCondition(t)?this._delegate.onSelect(t.item,e.browserEvent instanceof PreviewSelectedEvent):this._list.setSelection([])}onFocus(){var e,t;this._list.domFocus();const i=this._list.getFocus();if(i.length===0)return;const n=i[0],r=this._list.element(n);(t=(e=this._delegate).onFocus)===null||t===void 0||t.call(e,r.item)}onListHover(e){return __awaiter$11(this,void 0,void 0,function*(){const t=e.element;if(t&&t.item&&this.focusCondition(t)){if(this._delegate.onHover&&!t.disabled&&t.kind==="action"){const i=yield this._delegate.onHover(t.item,this.cts.token);t.canPreview=i?i.canPreview:void 0}e.index&&this._list.splice(e.index,1,[t])}this._list.setFocus(typeof e.index=="number"?[e.index]:[])})}onListClick(e){e.element&&this.focusCondition(e.element)&&this._list.setFocus([])}};ActionList=__decorate$1k([__param$1k(4,IContextViewService),__param$1k(5,IKeybindingService)],ActionList);function stripNewlines(o){return o.replace(/\r\n|\r|\n/g," ")}var __decorate$1j=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1j=function(o,e){return function(t,i){e(t,i,o)}};registerColor("actionBar.toggledBackground",{dark:inputActiveOptionBackground,light:inputActiveOptionBackground,hcDark:inputActiveOptionBackground,hcLight:inputActiveOptionBackground},localize("actionBar.toggledBackground","Background color for toggled action items in action bar."));const ActionWidgetContextKeys={Visible:new RawContextKey("codeActionMenuVisible",!1,localize("codeActionMenuVisible","Whether the action widget list is visible"))},IActionWidgetService=createDecorator("actionWidgetService");let ActionWidgetService=class extends Disposable{get isVisible(){return ActionWidgetContextKeys.Visible.getValue(this._contextKeyService)||!1}constructor(e,t,i){super(),this._contextViewService=e,this._contextKeyService=t,this._instantiationService=i,this._list=this._register(new MutableDisposable)}show(e,t,i,n,r,s,a){const l=ActionWidgetContextKeys.Visible.bindTo(this._contextKeyService),d=this._instantiationService.createInstance(ActionList,e,t,i,n);this._contextViewService.showContextView({getAnchor:()=>r,render:c=>(l.set(!0),this._renderWidget(c,d,a??[])),onHide:c=>{l.reset(),this._onWidgetClosed(c)}},s,!1)}acceptSelected(e){var t;(t=this._list.value)===null||t===void 0||t.acceptSelected(e)}focusPrevious(){var e,t;(t=(e=this._list)===null||e===void 0?void 0:e.value)===null||t===void 0||t.focusPrevious()}focusNext(){var e,t;(t=(e=this._list)===null||e===void 0?void 0:e.value)===null||t===void 0||t.focusNext()}hide(){var e;(e=this._list.value)===null||e===void 0||e.hide(),this._list.clear()}_renderWidget(e,t,i){var n;const r=document.createElement("div");if(r.classList.add("action-widget"),e.appendChild(r),this._list.value=t,this._list.value)r.appendChild(this._list.value.domNode);else throw new Error("List has no value");const s=new DisposableStore,a=document.createElement("div"),l=e.appendChild(a);l.classList.add("context-view-block"),s.add(addDisposableListener(l,EventType$1.MOUSE_DOWN,p=>p.stopPropagation()));const d=document.createElement("div"),c=e.appendChild(d);c.classList.add("context-view-pointerBlock"),s.add(addDisposableListener(c,EventType$1.POINTER_MOVE,()=>c.remove())),s.add(addDisposableListener(c,EventType$1.MOUSE_DOWN,()=>c.remove()));let u=0;if(i.length){const p=this._createActionBar(".action-widget-action-bar",i);p&&(r.appendChild(p.getContainer().parentElement),s.add(p),u=p.getContainer().offsetWidth)}const g=(n=this._list.value)===null||n===void 0?void 0:n.layout(u);r.style.width=`${g}px`;const f=s.add(trackFocus(e));return s.add(f.onDidBlur(()=>this.hide())),s}_createActionBar(e,t){if(!t.length)return;const i=$$d(e),n=new ActionBar(i);return n.push(t,{icon:!1,label:!0}),n}_onWidgetClosed(e){var t;(t=this._list.value)===null||t===void 0||t.hide(e)}};ActionWidgetService=__decorate$1j([__param$1j(0,IContextViewService),__param$1j(1,IContextKeyService),__param$1j(2,IInstantiationService)],ActionWidgetService);registerSingleton(IActionWidgetService,ActionWidgetService,1);const weight$3=1100;registerAction2(class extends Action2{constructor(){super({id:"hideCodeActionWidget",title:{value:localize("hideCodeActionWidget.title","Hide action widget"),original:"Hide action widget"},precondition:ActionWidgetContextKeys.Visible,keybinding:{weight:weight$3,primary:9,secondary:[1033]}})}run(o){o.get(IActionWidgetService).hide()}});registerAction2(class extends Action2{constructor(){super({id:"selectPrevCodeAction",title:{value:localize("selectPrevCodeAction.title","Select previous action"),original:"Select previous action"},precondition:ActionWidgetContextKeys.Visible,keybinding:{weight:weight$3,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})}run(o){const e=o.get(IActionWidgetService);e instanceof ActionWidgetService&&e.focusPrevious()}});registerAction2(class extends Action2{constructor(){super({id:"selectNextCodeAction",title:{value:localize("selectNextCodeAction.title","Select next action"),original:"Select next action"},precondition:ActionWidgetContextKeys.Visible,keybinding:{weight:weight$3,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})}run(o){const e=o.get(IActionWidgetService);e instanceof ActionWidgetService&&e.focusNext()}});registerAction2(class extends Action2{constructor(){super({id:acceptSelectedActionCommand,title:{value:localize("acceptSelected.title","Accept selected action"),original:"Accept selected action"},precondition:ActionWidgetContextKeys.Visible,keybinding:{weight:weight$3,primary:3,secondary:[2137]}})}run(o){const e=o.get(IActionWidgetService);e instanceof ActionWidgetService&&e.acceptSelected()}});registerAction2(class extends Action2{constructor(){super({id:previewSelectedActionCommand,title:{value:localize("previewSelected.title","Preview selected action"),original:"Preview selected action"},precondition:ActionWidgetContextKeys.Visible,keybinding:{weight:weight$3,primary:2051}})}run(o){const e=o.get(IActionWidgetService);e instanceof ActionWidgetService&&e.acceptSelected(!0)}});var __awaiter$10=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};const SUPPORTED_CODE_ACTIONS=new RawContextKey("supportedCodeAction","");class CodeActionOracle extends Disposable{constructor(e,t,i,n=250){super(),this._editor=e,this._markerService=t,this._signalChange=i,this._delay=n,this._autoTriggerTimer=this._register(new TimeoutTimer),this._register(this._markerService.onMarkerChanged(r=>this._onMarkerChanges(r))),this._register(this._editor.onDidChangeCursorPosition(()=>this._tryAutoTrigger()))}trigger(e){const t=this._getRangeOfSelectionUnlessWhitespaceEnclosed(e);this._signalChange(t?{trigger:e,selection:t}:void 0)}_onMarkerChanges(e){const t=this._editor.getModel();t&&e.some(i=>isEqual(i,t.uri))&&this._tryAutoTrigger()}_tryAutoTrigger(){this._autoTriggerTimer.cancelAndSet(()=>{this.trigger({type:2,triggerAction:CodeActionTriggerSource.Default})},this._delay)}_getRangeOfSelectionUnlessWhitespaceEnclosed(e){if(!this._editor.hasModel())return;const t=this._editor.getModel(),i=this._editor.getSelection();if(i.isEmpty()&&e.type===2){const{lineNumber:n,column:r}=i.getPosition(),s=t.getLineContent(n);if(s.length===0)return;if(r===1){if(/\s/.test(s[0]))return}else if(r===t.getLineMaxColumn(n)){if(/\s/.test(s[s.length-1]))return}else if(/\s/.test(s[r-2])&&/\s/.test(s[r-1]))return}return i}}var CodeActionsState;(function(o){o.Empty={type:0};class e{constructor(i,n,r){this.trigger=i,this.position=n,this._cancellablePromise=r,this.type=1,this.actions=r.catch(s=>{if(isCancellationError(s))return emptyCodeActionSet;throw s})}cancel(){this._cancellablePromise.cancel()}}o.Triggered=e})(CodeActionsState||(CodeActionsState={}));const emptyCodeActionSet=Object.freeze({allActions:[],validActions:[],dispose:()=>{},documentation:[],hasAutoFix:!1});class CodeActionModel extends Disposable{constructor(e,t,i,n,r,s){super(),this._editor=e,this._registry=t,this._markerService=i,this._progressService=r,this._configurationService=s,this._codeActionOracle=this._register(new MutableDisposable),this._state=CodeActionsState.Empty,this._onDidChangeState=this._register(new Emitter$1),this.onDidChangeState=this._onDidChangeState.event,this._disposed=!1,this._supportedCodeActions=SUPPORTED_CODE_ACTIONS.bindTo(n),this._register(this._editor.onDidChangeModel(()=>this._update())),this._register(this._editor.onDidChangeModelLanguage(()=>this._update())),this._register(this._registry.onDidChange(()=>this._update())),this._update()}dispose(){this._disposed||(this._disposed=!0,super.dispose(),this.setState(CodeActionsState.Empty,!0))}_settingEnabledNearbyQuickfixes(){var e;const t=(e=this._editor)===null||e===void 0?void 0:e.getModel();return this._configurationService?this._configurationService.getValue("editor.codeActionWidget.includeNearbyQuickfixes",{resource:t==null?void 0:t.uri}):!1}_update(){if(this._disposed)return;this._codeActionOracle.value=void 0,this.setState(CodeActionsState.Empty);const e=this._editor.getModel();if(e&&this._registry.has(e)&&!this._editor.getOption(90)){const t=this._registry.all(e).flatMap(i=>{var n;return(n=i.providedCodeActionKinds)!==null&&n!==void 0?n:[]});this._supportedCodeActions.set(t.join(" ")),this._codeActionOracle.value=new CodeActionOracle(this._editor,this._markerService,i=>{var n;if(!i){this.setState(CodeActionsState.Empty);return}const r=i.selection.getStartPosition(),s=createCancelablePromise(a=>__awaiter$10(this,void 0,void 0,function*(){var l,d,c,u,g,f;if(this._settingEnabledNearbyQuickfixes()&&i.trigger.type===1&&(i.trigger.triggerAction===CodeActionTriggerSource.QuickFix||!((d=(l=i.trigger.filter)===null||l===void 0?void 0:l.include)===null||d===void 0)&&d.contains(CodeActionKind.QuickFix))){const p=yield getCodeActions(this._registry,e,i.selection,i.trigger,Progress.None,a);if(a.isCancellationRequested)return emptyCodeActionSet;if(!((c=p.validActions)===null||c===void 0?void 0:c.some(b=>b.action.kind?CodeActionKind.QuickFix.contains(new CodeActionKind(b.action.kind)):!1))){const b=this._markerService.read({resource:e.uri});if(b.length>0){const _=i.selection.getPosition();let C=_,S=Number.MAX_VALUE,y=!1;for(const E of b){const x=E.endColumn,L=E.endLineNumber,I=E.startLineNumber;(L===_.lineNumber||I===_.lineNumber)&&Math.abs(_.column-x)<S&&(S=Math.abs(_.column-x),y=!0,C=new Position$1(L,x))}if(y){const E={type:i.trigger.type,triggerAction:i.trigger.triggerAction,filter:{include:!((u=i.trigger.filter)===null||u===void 0)&&u.include?(g=i.trigger.filter)===null||g===void 0?void 0:g.include:CodeActionKind.QuickFix},autoApply:i.trigger.autoApply,context:{notAvailableMessage:((f=i.trigger.context)===null||f===void 0?void 0:f.notAvailableMessage)||"",position:C}},x=new Selection$1(C.lineNumber,C.column,C.lineNumber,C.column),L=yield getCodeActions(this._registry,e,x,E,Progress.None,a),I=[...p.validActions];return L.validActions.length!==0&&(L.validActions.forEach(D=>{D.highlightRange=D.action.isPreferred}),I.push(...L.validActions)),{validActions:I,allActions:p.allActions,documentation:p.documentation,hasAutoFix:p.hasAutoFix,dispose:()=>{p.dispose()}}}}}}return getCodeActions(this._registry,e,i.selection,i.trigger,Progress.None,a)}));i.trigger.type===1&&((n=this._progressService)===null||n===void 0||n.showWhile(s,250)),this.setState(new CodeActionsState.Triggered(i.trigger,r,s))},void 0),this._codeActionOracle.value.trigger({type:2,triggerAction:CodeActionTriggerSource.Default})}else this._supportedCodeActions.reset()}trigger(e){var t;(t=this._codeActionOracle.value)===null||t===void 0||t.trigger(e)}setState(e,t){e!==this._state&&(this._state.type===1&&this._state.cancel(),this._state=e,!t&&!this._disposed&&this._onDidChangeState.fire(e))}}var __decorate$1i=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1i=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$$=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},CodeActionController_1;const DECORATION_CLASS_NAME$1="quickfix-edit-highlight";let CodeActionController=CodeActionController_1=class extends Disposable{static get(e){return e.getContribution(CodeActionController_1.ID)}constructor(e,t,i,n,r,s,a,l,d,c){super(),this._commandService=a,this._configurationService=l,this._actionWidgetService=d,this._instantiationService=c,this._activeCodeActions=this._register(new MutableDisposable),this._showDisabled=!1,this._disposed=!1,this._editor=e,this._model=this._register(new CodeActionModel(this._editor,r.codeActionProvider,t,i,s,l)),this._register(this._model.onDidChangeState(u=>this.update(u))),this._lightBulbWidget=new Lazy(()=>{const u=this._editor.getContribution(LightBulbWidget.ID);return u&&this._register(u.onClick(g=>this.showCodeActionList(g.actions,g,{includeDisabledActions:!1,fromLightbulb:!0}))),u}),this._resolver=n.createInstance(CodeActionKeybindingResolver),this._register(this._editor.onDidLayoutChange(()=>this._actionWidgetService.hide()))}dispose(){this._disposed=!0,super.dispose()}showCodeActions(e,t,i){return this.showCodeActionList(t,i,{includeDisabledActions:!1,fromLightbulb:!1})}manualTriggerAtCurrentPosition(e,t,i,n){var r;if(!this._editor.hasModel())return;(r=MessageController.get(this._editor))===null||r===void 0||r.closeMessage();const s=this._editor.getPosition();this._trigger({type:1,triggerAction:t,filter:i,autoApply:n,context:{notAvailableMessage:e,position:s}})}_trigger(e){return this._model.trigger(e)}_applyCodeAction(e,t,i){return __awaiter$$(this,void 0,void 0,function*(){try{yield this._instantiationService.invokeFunction(applyCodeAction,e,ApplyCodeActionReason.FromCodeActions,{preview:i,editor:this._editor})}finally{t&&this._trigger({type:2,triggerAction:CodeActionTriggerSource.QuickFix,filter:{}})}})}update(e){var t,i,n,r,s,a,l;return __awaiter$$(this,void 0,void 0,function*(){if(e.type!==1){(t=this._lightBulbWidget.rawValue)===null||t===void 0||t.hide();return}let d;try{d=yield e.actions}catch(c){onUnexpectedError(c);return}if(!this._disposed)if((i=this._lightBulbWidget.value)===null||i===void 0||i.update(d,e.trigger,e.position),e.trigger.type===1){if(!((n=e.trigger.filter)===null||n===void 0)&&n.include){const u=this.tryGetValidActionToApply(e.trigger,d);if(u){try{(r=this._lightBulbWidget.value)===null||r===void 0||r.hide(),yield this._applyCodeAction(u,!1,!1)}finally{d.dispose()}return}if(e.trigger.context){const g=this.getInvalidActionThatWouldHaveBeenApplied(e.trigger,d);if(g&&g.action.disabled){(s=MessageController.get(this._editor))===null||s===void 0||s.showMessage(g.action.disabled,e.trigger.context.position),d.dispose();return}}}const c=!!(!((a=e.trigger.filter)===null||a===void 0)&&a.include);if(e.trigger.context&&(!d.allActions.length||!c&&!d.validActions.length)){(l=MessageController.get(this._editor))===null||l===void 0||l.showMessage(e.trigger.context.notAvailableMessage,e.trigger.context.position),this._activeCodeActions.value=d,d.dispose();return}this._activeCodeActions.value=d,this.showCodeActionList(d,this.toCoords(e.position),{includeDisabledActions:c,fromLightbulb:!1})}else this._actionWidgetService.isVisible?d.dispose():this._activeCodeActions.value=d})}getInvalidActionThatWouldHaveBeenApplied(e,t){if(t.allActions.length&&(e.autoApply==="first"&&t.validActions.length===0||e.autoApply==="ifSingle"&&t.allActions.length===1))return t.allActions.find(({action:i})=>i.disabled)}tryGetValidActionToApply(e,t){if(t.validActions.length&&(e.autoApply==="first"&&t.validActions.length>0||e.autoApply==="ifSingle"&&t.validActions.length===1))return t.validActions[0]}showCodeActionList(e,t,i){return __awaiter$$(this,void 0,void 0,function*(){const n=this._editor.createDecorationsCollection(),r=this._editor.getDomNode();if(!r)return;const s=i.includeDisabledActions&&(this._showDisabled||e.validActions.length===0)?e.allActions:e.validActions;if(!s.length)return;const a=Position$1.isIPosition(t)?this.toCoords(t):t,l={onSelect:(d,c)=>__awaiter$$(this,void 0,void 0,function*(){this._applyCodeAction(d,!0,!!c),this._actionWidgetService.hide(),n.clear()}),onHide:()=>{var d;(d=this._editor)===null||d===void 0||d.focus(),n.clear()},onHover:(d,c)=>__awaiter$$(this,void 0,void 0,function*(){var u;if(yield d.resolve(c),!c.isCancellationRequested)return{canPreview:!!(!((u=d.action.edit)===null||u===void 0)&&u.edits.length)}}),onFocus:d=>{var c,u;if(d&&d.highlightRange&&d.action.diagnostics){const g=[{range:d.action.diagnostics[0],options:CodeActionController_1.DECORATION}];n.set(g);const f=d.action.diagnostics[0],p=(u=(c=this._editor.getModel())===null||c===void 0?void 0:c.getWordAtPosition({lineNumber:f.startLineNumber,column:f.startColumn}))===null||u===void 0?void 0:u.word;status(localize("editingNewSelection","Context: {0} at line {1} and column {2}.",p,f.startLineNumber,f.startColumn))}else n.clear()}};this._actionWidgetService.show("codeActionWidget",!0,toMenuItems(s,this._shouldShowHeaders(),this._resolver.getResolver()),l,a,r,this._getActionBarActions(e,t,i))})}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=getDomNodePagePosition(this._editor.getDomNode()),n=i.left+t.left,r=i.top+t.top+t.height;return{x:n,y:r}}_shouldShowHeaders(){var e;const t=(e=this._editor)===null||e===void 0?void 0:e.getModel();return this._configurationService.getValue("editor.codeActionWidget.showHeaders",{resource:t==null?void 0:t.uri})}_getActionBarActions(e,t,i){if(i.fromLightbulb)return[];const n=e.documentation.map(r=>{var s;return{id:r.id,label:r.title,tooltip:(s=r.tooltip)!==null&&s!==void 0?s:"",class:void 0,enabled:!0,run:()=>{var a;return this._commandService.executeCommand(r.id,...(a=r.arguments)!==null&&a!==void 0?a:[])}}});return i.includeDisabledActions&&e.validActions.length>0&&e.allActions.length!==e.validActions.length&&n.push(this._showDisabled?{id:"hideMoreActions",label:localize("hideMoreActions","Hide Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!1,this.showCodeActionList(e,t,i))}:{id:"showMoreActions",label:localize("showMoreActions","Show Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!0,this.showCodeActionList(e,t,i))}),n}};CodeActionController.ID="editor.contrib.codeActionController";CodeActionController.DECORATION=ModelDecorationOptions.register({description:"quickfix-highlight",className:DECORATION_CLASS_NAME$1});CodeActionController=CodeActionController_1=__decorate$1i([__param$1i(1,IMarkerService),__param$1i(2,IContextKeyService),__param$1i(3,IInstantiationService),__param$1i(4,ILanguageFeaturesService),__param$1i(5,IEditorProgressService),__param$1i(6,ICommandService),__param$1i(7,IConfigurationService),__param$1i(8,IActionWidgetService),__param$1i(9,IInstantiationService)],CodeActionController);registerThemingParticipant((o,e)=>{((n,r)=>{r&&e.addRule(`.monaco-editor ${n} { background-color: ${r}; }`)})(".quickfix-edit-highlight",o.getColor(editorFindMatchHighlight));const i=o.getColor(editorFindMatchHighlightBorder);i&&e.addRule(`.monaco-editor .quickfix-edit-highlight { border: 1px ${isHighContrast(o.type)?"dotted":"solid"} ${i}; box-sizing: border-box; }`)});function contextKeyForSupportedActions(o){return ContextKeyExpr.regex(SUPPORTED_CODE_ACTIONS.keys()[0],new RegExp("(\\s|^)"+escapeRegExpCharacters(o.value)+"\\b"))}const argsSchema={type:"object",defaultSnippets:[{body:{kind:""}}],properties:{kind:{type:"string",description:localize("args.schema.kind","Kind of the code action to run.")},apply:{type:"string",description:localize("args.schema.apply","Controls when the returned actions are applied."),default:"ifSingle",enum:["first","ifSingle","never"],enumDescriptions:[localize("args.schema.apply.first","Always apply the first returned code action."),localize("args.schema.apply.ifSingle","Apply the first returned code action if it is the only one."),localize("args.schema.apply.never","Do not apply the returned code actions.")]},preferred:{type:"boolean",default:!1,description:localize("args.schema.preferred","Controls if only preferred code actions should be returned.")}}};function triggerCodeActionsForEditorSelection(o,e,t,i,n=CodeActionTriggerSource.Default){if(o.hasModel()){const r=CodeActionController.get(o);r==null||r.manualTriggerAtCurrentPosition(e,n,t,i)}}class QuickFixAction extends EditorAction{constructor(){super({id:quickFixCommandId,label:localize("quickfix.trigger.label","Quick Fix..."),alias:"Quick Fix...",precondition:ContextKeyExpr.and(EditorContextKeys.writable,EditorContextKeys.hasCodeActionsProvider),kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:2137,weight:100}})}run(e,t){return triggerCodeActionsForEditorSelection(t,localize("editor.action.quickFix.noneMessage","No code actions available"),void 0,void 0,CodeActionTriggerSource.QuickFix)}}class CodeActionCommand extends EditorCommand{constructor(){super({id:codeActionCommandId,precondition:ContextKeyExpr.and(EditorContextKeys.writable,EditorContextKeys.hasCodeActionsProvider),description:{description:"Trigger a code action",args:[{name:"args",schema:argsSchema}]}})}runEditorCommand(e,t,i){const n=CodeActionCommandArgs.fromUser(i,{kind:CodeActionKind.Empty,apply:"ifSingle"});return triggerCodeActionsForEditorSelection(t,typeof(i==null?void 0:i.kind)=="string"?n.preferred?localize("editor.action.codeAction.noneMessage.preferred.kind","No preferred code actions for '{0}' available",i.kind):localize("editor.action.codeAction.noneMessage.kind","No code actions for '{0}' available",i.kind):n.preferred?localize("editor.action.codeAction.noneMessage.preferred","No preferred code actions available"):localize("editor.action.codeAction.noneMessage","No code actions available"),{include:n.kind,includeSourceActions:!0,onlyIncludePreferredActions:n.preferred},n.apply)}}class RefactorAction extends EditorAction{constructor(){super({id:refactorCommandId,label:localize("refactor.label","Refactor..."),alias:"Refactor...",precondition:ContextKeyExpr.and(EditorContextKeys.writable,EditorContextKeys.hasCodeActionsProvider),kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:3120,mac:{primary:1328},weight:100},contextMenuOpts:{group:"1_modification",order:2,when:ContextKeyExpr.and(EditorContextKeys.writable,contextKeyForSupportedActions(CodeActionKind.Refactor))},description:{description:"Refactor...",args:[{name:"args",schema:argsSchema}]}})}run(e,t,i){const n=CodeActionCommandArgs.fromUser(i,{kind:CodeActionKind.Refactor,apply:"never"});return triggerCodeActionsForEditorSelection(t,typeof(i==null?void 0:i.kind)=="string"?n.preferred?localize("editor.action.refactor.noneMessage.preferred.kind","No preferred refactorings for '{0}' available",i.kind):localize("editor.action.refactor.noneMessage.kind","No refactorings for '{0}' available",i.kind):n.preferred?localize("editor.action.refactor.noneMessage.preferred","No preferred refactorings available"):localize("editor.action.refactor.noneMessage","No refactorings available"),{include:CodeActionKind.Refactor.contains(n.kind)?n.kind:CodeActionKind.None,onlyIncludePreferredActions:n.preferred},n.apply,CodeActionTriggerSource.Refactor)}}class SourceAction extends EditorAction{constructor(){super({id:sourceActionCommandId,label:localize("source.label","Source Action..."),alias:"Source Action...",precondition:ContextKeyExpr.and(EditorContextKeys.writable,EditorContextKeys.hasCodeActionsProvider),contextMenuOpts:{group:"1_modification",order:2.1,when:ContextKeyExpr.and(EditorContextKeys.writable,contextKeyForSupportedActions(CodeActionKind.Source))},description:{description:"Source Action...",args:[{name:"args",schema:argsSchema}]}})}run(e,t,i){const n=CodeActionCommandArgs.fromUser(i,{kind:CodeActionKind.Source,apply:"never"});return triggerCodeActionsForEditorSelection(t,typeof(i==null?void 0:i.kind)=="string"?n.preferred?localize("editor.action.source.noneMessage.preferred.kind","No preferred source actions for '{0}' available",i.kind):localize("editor.action.source.noneMessage.kind","No source actions for '{0}' available",i.kind):n.preferred?localize("editor.action.source.noneMessage.preferred","No preferred source actions available"):localize("editor.action.source.noneMessage","No source actions available"),{include:CodeActionKind.Source.contains(n.kind)?n.kind:CodeActionKind.None,includeSourceActions:!0,onlyIncludePreferredActions:n.preferred},n.apply,CodeActionTriggerSource.SourceAction)}}class OrganizeImportsAction extends EditorAction{constructor(){super({id:organizeImportsCommandId,label:localize("organizeImports.label","Organize Imports"),alias:"Organize Imports",precondition:ContextKeyExpr.and(EditorContextKeys.writable,contextKeyForSupportedActions(CodeActionKind.SourceOrganizeImports)),kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:1581,weight:100}})}run(e,t){return triggerCodeActionsForEditorSelection(t,localize("editor.action.organize.noneMessage","No organize imports action available"),{include:CodeActionKind.SourceOrganizeImports,includeSourceActions:!0},"ifSingle",CodeActionTriggerSource.OrganizeImports)}}class FixAllAction extends EditorAction{constructor(){super({id:fixAllCommandId,label:localize("fixAll.label","Fix All"),alias:"Fix All",precondition:ContextKeyExpr.and(EditorContextKeys.writable,contextKeyForSupportedActions(CodeActionKind.SourceFixAll))})}run(e,t){return triggerCodeActionsForEditorSelection(t,localize("fixAll.noneMessage","No fix all action available"),{include:CodeActionKind.SourceFixAll,includeSourceActions:!0},"ifSingle",CodeActionTriggerSource.FixAll)}}class AutoFixAction extends EditorAction{constructor(){super({id:autoFixCommandId,label:localize("autoFix.label","Auto Fix..."),alias:"Auto Fix...",precondition:ContextKeyExpr.and(EditorContextKeys.writable,contextKeyForSupportedActions(CodeActionKind.QuickFix)),kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:1625,mac:{primary:2649},weight:100}})}run(e,t){return triggerCodeActionsForEditorSelection(t,localize("editor.action.autoFix.noneMessage","No auto fixes available"),{include:CodeActionKind.QuickFix,onlyIncludePreferredActions:!0},"ifSingle",CodeActionTriggerSource.AutoFix)}}registerEditorContribution(CodeActionController.ID,CodeActionController,3);registerEditorContribution(LightBulbWidget.ID,LightBulbWidget,4);registerEditorAction(QuickFixAction);registerEditorAction(RefactorAction);registerEditorAction(SourceAction);registerEditorAction(OrganizeImportsAction);registerEditorAction(AutoFixAction);registerEditorAction(FixAllAction);registerEditorCommand(new CodeActionCommand);Registry.as(Extensions$6.Configuration).registerConfiguration(Object.assign(Object.assign({},editorConfigurationBaseNode),{properties:{"editor.codeActionWidget.showHeaders":{type:"boolean",scope:5,description:localize("showCodeActionHeaders","Enable/disable showing group headers in the Code Action menu."),default:!0}}}));Registry.as(Extensions$6.Configuration).registerConfiguration(Object.assign(Object.assign({},editorConfigurationBaseNode),{properties:{"editor.codeActionWidget.includeNearbyQuickfixes":{type:"boolean",scope:5,description:localize("includeNearbyQuickfixes","Enable/disable showing nearest quickfix within a line when not currently on a diagnostic."),default:!1}}}));var __awaiter$_=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};class CodeLensModel{constructor(){this.lenses=[],this._disposables=new DisposableStore}dispose(){this._disposables.dispose()}get isDisposed(){return this._disposables.isDisposed}add(e,t){this._disposables.add(e);for(const i of e.lenses)this.lenses.push({symbol:i,provider:t})}}function getCodeLensModel(o,e,t){return __awaiter$_(this,void 0,void 0,function*(){const i=o.ordered(e),n=new Map,r=new CodeLensModel,s=i.map((a,l)=>__awaiter$_(this,void 0,void 0,function*(){n.set(a,l);try{const d=yield Promise.resolve(a.provideCodeLenses(e,t));d&&r.add(d,a)}catch(d){onUnexpectedExternalError(d)}}));return yield Promise.all(s),r.lenses=r.lenses.sort((a,l)=>a.symbol.range.startLineNumber<l.symbol.range.startLineNumber?-1:a.symbol.range.startLineNumber>l.symbol.range.startLineNumber?1:n.get(a.provider)<n.get(l.provider)?-1:n.get(a.provider)>n.get(l.provider)?1:a.symbol.range.startColumn<l.symbol.range.startColumn?-1:a.symbol.range.startColumn>l.symbol.range.startColumn?1:0),r})}CommandsRegistry.registerCommand("_executeCodeLensProvider",function(o,...e){let[t,i]=e;assertType(URI.isUri(t)),assertType(typeof i=="number"||!i);const{codeLensProvider:n}=o.get(ILanguageFeaturesService),r=o.get(IModelService).getModel(t);if(!r)throw illegalArgument();const s=[],a=new DisposableStore;return getCodeLensModel(n,r,CancellationToken.None).then(l=>{a.add(l);const d=[];for(const c of l.lenses)i==null||c.symbol.command?s.push(c.symbol):i-- >0&&c.provider.resolveCodeLens&&d.push(Promise.resolve(c.provider.resolveCodeLens(r,c.symbol,CancellationToken.None)).then(u=>s.push(u||c.symbol)));return Promise.all(d)}).then(()=>s).finally(()=>{setTimeout(()=>a.dispose(),100)})});var __decorate$1h=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1h=function(o,e){return function(t,i){e(t,i,o)}};const ICodeLensCache=createDecorator("ICodeLensCache");class CacheItem{constructor(e,t){this.lineCount=e,this.data=t}}let CodeLensCache=class{constructor(e){this._fakeProvider=new class{provideCodeLenses(){throw new Error("not supported")}},this._cache=new LRUCache(20,.75);const t="codelens/cache";runWhenIdle(()=>e.remove(t,1));const i="codelens/cache2",n=e.get(i,1,"{}");this._deserialize(n),Event.once(e.onWillSaveState)(r=>{r.reason===WillSaveStateReason.SHUTDOWN&&e.store(i,this._serialize(),1,1)})}put(e,t){const i=t.lenses.map(s=>{var a;return{range:s.symbol.range,command:s.symbol.command&&{id:"",title:(a=s.symbol.command)===null||a===void 0?void 0:a.title}}}),n=new CodeLensModel;n.add({lenses:i,dispose:()=>{}},this._fakeProvider);const r=new CacheItem(e.getLineCount(),n);this._cache.set(e.uri.toString(),r)}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 r of i.data.lenses)n.add(r.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 i in t){const n=t[i],r=[];for(const a of n.lines)r.push({range:new Range$2(a,1,a,11)});const s=new CodeLensModel;s.add({lenses:r,dispose(){}},this._fakeProvider),this._cache.set(i,new CacheItem(n.lineCount,s))}}catch{}}};CodeLensCache=__decorate$1h([__param$1h(0,IStorageService)],CodeLensCache);registerSingleton(ICodeLensCache,CodeLensCache,1);class CodeLensViewZone{constructor(e,t,i){this.afterColumn=1073741824,this.afterLineNumber=e,this.heightInPx=t,this._onHeight=i,this.suppressMouseDown=!0,this.domNode=document.createElement("div")}onComputedHeight(e){this._lastHeight===void 0?this._lastHeight=e:this._lastHeight!==e&&(this._lastHeight=e,this._onHeight())}isVisible(){return this._lastHeight!==0&&this.domNode.hasAttribute("monaco-visible-view-zone")}}class CodeLensContentWidget{constructor(e,t){this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this._commands=new Map,this._isEmpty=!0,this._editor=e,this._id=`codelens.widget-${CodeLensContentWidget._idPool++}`,this.updatePosition(t),this._domNode=document.createElement("span"),this._domNode.className="codelens-decoration"}withCommands(e,t){this._commands.clear();const i=[];let n=!1;for(let r=0;r<e.length;r++){const s=e[r];if(s&&(n=!0,s.command)){const a=renderLabelWithIcons(s.command.title.trim());s.command.id?(i.push($$d("a",{id:String(r),title:s.command.tooltip,role:"button"},...a)),this._commands.set(String(r),s.command)):i.push($$d("span",{title:s.command.tooltip},...a)),r+1<e.length&&i.push($$d("span",void 0," | "))}}n?(reset(this._domNode,...i),this._isEmpty&&t&&this._domNode.classList.add("fadein"),this._isEmpty=!1):reset(this._domNode,$$d("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}}CodeLensContentWidget._idPool=0;class CodeLensHelper{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){const t=e.deltaDecorations(this._removeDecorations,this._addDecorations);for(let i=0,n=t.length;i<n;i++)this._addDecorationsCallbacks[i](t[i])}}const codeLensDecorationOptions=ModelDecorationOptions.register({collapseOnReplaceEdit:!0,description:"codelens"});class CodeLensWidget{constructor(e,t,i,n,r,s){this._isDisposed=!1,this._editor=t,this._data=e,this._decorationIds=[];let a;const l=[];this._data.forEach((d,c)=>{d.symbol.command&&l.push(d.symbol),i.addDecoration({range:d.symbol.range,options:codeLensDecorationOptions},u=>this._decorationIds[c]=u),a?a=Range$2.plusRange(a,d.symbol.range):a=Range$2.lift(d.symbol.range)}),this._viewZone=new CodeLensViewZone(a.startLineNumber-1,r,s),this._viewZoneId=n.addZone(this._viewZone),l.length>0&&(this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(l,!1))}_createContentWidgetIfNecessary(){this._contentWidget?this._editor.layoutContentWidget(this._contentWidget):(this._contentWidget=new CodeLensContentWidget(this._editor,this._viewZone.afterLineNumber+1),this._editor.addContentWidget(this._contentWidget))}dispose(e,t){this._decorationIds.forEach(e.removeDecoration,e),this._decorationIds=[],t==null||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&&Range$2.isEmpty(n.range)===i.isEmpty())})}updateCodeLensSymbols(e,t){this._decorationIds.forEach(t.removeDecoration,t),this._decorationIds=[],this._data=e,this._data.forEach((i,n)=>{t.addDecoration({range:i.symbol.range,options:codeLensDecorationOptions},r=>this._decorationIds[n]=r)})}updateHeight(e,t){this._viewZone.heightInPx=e,t.layoutZone(this._viewZoneId),this._contentWidget&&this._editor.layoutContentWidget(this._contentWidget)}computeIfNecessary(e){if(!this._viewZone.isVisible())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:n}=this._data[t];n.command=i.command||n.command}}}getCommand(e){var t;return(t=this._contentWidget)===null||t===void 0?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)))}}}var __decorate$1g=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1g=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$Z=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};let CodeLensContribution=class{constructor(e,t,i,n,r,s){this._editor=e,this._languageFeaturesService=t,this._commandService=n,this._notificationService=r,this._codeLensCache=s,this._disposables=new DisposableStore,this._localToDispose=new DisposableStore,this._lenses=[],this._oldCodeLensModels=new DisposableStore,this._provideCodeLensDebounce=i.for(t.codeLensProvider,"CodeLensProvide",{min:250}),this._resolveCodeLensesDebounce=i.for(t.codeLensProvider,"CodeLensResolve",{min:250,salt:"resolve"}),this._resolveCodeLensesScheduler=new RunOnceScheduler(()=>this._resolveCodeLensesInViewport(),this._resolveCodeLensesDebounce.default()),this._disposables.add(this._editor.onDidChangeModel(()=>this._onModelChange())),this._disposables.add(this._editor.onDidChangeModelLanguage(()=>this._onModelChange())),this._disposables.add(this._editor.onDidChangeConfiguration(a=>{(a.hasChanged(50)||a.hasChanged(19)||a.hasChanged(18))&&this._updateLensStyle(),a.hasChanged(17)&&this._onModelChange()})),this._disposables.add(t.codeLensProvider.onDidChange(this._onModelChange,this)),this._onModelChange(),this._updateLensStyle()}dispose(){var e;this._localDispose(),this._disposables.dispose(),this._oldCodeLensModels.dispose(),(e=this._currentCodeLensModel)===null||e===void 0||e.dispose()}_getLayoutInfo(){const e=Math.max(1.3,this._editor.getOption(66)/this._editor.getOption(52));let t=this._editor.getOption(19);return(!t||t<5)&&(t=this._editor.getOption(52)*.9|0),{fontSize:t,codeLensHeight:t*e|0}}_updateLensStyle(){const{codeLensHeight:e,fontSize:t}=this._getLayoutInfo(),i=this._editor.getOption(18),n=this._editor.getOption(50),{style:r}=this._editor.getContainerDomNode();r.setProperty("--vscode-editorCodeLens-lineHeight",`${e}px`),r.setProperty("--vscode-editorCodeLens-fontSize",`${t}px`),r.setProperty("--vscode-editorCodeLens-fontFeatureSettings",n.fontFeatureSettings),i&&(r.setProperty("--vscode-editorCodeLens-fontFamily",i),r.setProperty("--vscode-editorCodeLens-fontFamilyDefault",EDITOR_FONT_DEFAULTS.fontFamily)),this._editor.changeViewZones(s=>{for(const a of this._lenses)a.updateHeight(e,s)})}_localDispose(){var e,t,i;(e=this._getCodeLensModelPromise)===null||e===void 0||e.cancel(),this._getCodeLensModelPromise=void 0,(t=this._resolveCodeLensesPromise)===null||t===void 0||t.cancel(),this._resolveCodeLensesPromise=void 0,this._localToDispose.clear(),this._oldCodeLensModels.clear(),(i=this._currentCodeLensModel)===null||i===void 0||i.dispose()}_onModelChange(){this._localDispose();const e=this._editor.getModel();if(!e||!this._editor.getOption(17)||e.isTooLargeForTokenization())return;const t=this._codeLensCache.get(e);if(t&&this._renderCodeLensSymbols(t),!this._languageFeaturesService.codeLensProvider.has(e)){t&&this._localToDispose.add(disposableTimeout(()=>{const n=this._codeLensCache.get(e);t===n&&(this._codeLensCache.delete(e),this._onModelChange())},30*1e3));return}for(const n of this._languageFeaturesService.codeLensProvider.all(e))if(typeof n.onDidChange=="function"){const r=n.onDidChange(()=>i.schedule());this._localToDispose.add(r)}const i=new RunOnceScheduler(()=>{var n;const r=Date.now();(n=this._getCodeLensModelPromise)===null||n===void 0||n.cancel(),this._getCodeLensModelPromise=createCancelablePromise(s=>getCodeLensModel(this._languageFeaturesService.codeLensProvider,e,s)),this._getCodeLensModelPromise.then(s=>{this._currentCodeLensModel&&this._oldCodeLensModels.add(this._currentCodeLensModel),this._currentCodeLensModel=s,this._codeLensCache.put(e,s);const a=this._provideCodeLensDebounce.update(e,Date.now()-r);i.delay=a,this._renderCodeLensSymbols(s),this._resolveCodeLensesInViewportSoon()},onUnexpectedError)},this._provideCodeLensDebounce.get(e));this._localToDispose.add(i),this._localToDispose.add(toDisposable(()=>this._resolveCodeLensesScheduler.cancel())),this._localToDispose.add(this._editor.onDidChangeModelContent(()=>{var n;this._editor.changeDecorations(r=>{this._editor.changeViewZones(s=>{const a=[];let l=-1;this._lenses.forEach(c=>{!c.isValid()||l===c.getLineNumber()?a.push(c):(c.update(s),l=c.getLineNumber())});const d=new CodeLensHelper;a.forEach(c=>{c.dispose(d,s),this._lenses.splice(this._lenses.indexOf(c),1)}),d.commit(r)})}),i.schedule(),this._resolveCodeLensesScheduler.cancel(),(n=this._resolveCodeLensesPromise)===null||n===void 0||n.cancel(),this._resolveCodeLensesPromise=void 0})),this._localToDispose.add(this._editor.onDidFocusEditorWidget(()=>{i.schedule()})),this._localToDispose.add(this._editor.onDidBlurEditorText(()=>{i.cancel()})),this._localToDispose.add(this._editor.onDidScrollChange(n=>{n.scrollTopChanged&&this._lenses.length>0&&this._resolveCodeLensesInViewportSoon()})),this._localToDispose.add(this._editor.onDidLayoutChange(()=>{this._resolveCodeLensesInViewportSoon()})),this._localToDispose.add(toDisposable(()=>{if(this._editor.getModel()){const n=StableEditorScrollState.capture(this._editor);this._editor.changeDecorations(r=>{this._editor.changeViewZones(s=>{this._disposeAllLenses(r,s)})}),n.restore(this._editor)}else this._disposeAllLenses(void 0,void 0)})),this._localToDispose.add(this._editor.onMouseDown(n=>{if(n.target.type!==9)return;let r=n.target.element;if((r==null?void 0:r.tagName)==="SPAN"&&(r=r.parentElement),(r==null?void 0:r.tagName)==="A")for(const s of this._lenses){const a=s.getCommand(r);if(a){this._commandService.executeCommand(a.id,...a.arguments||[]).catch(l=>this._notificationService.error(l));break}}})),i.schedule()}_disposeAllLenses(e,t){const i=new CodeLensHelper;for(const n of this._lenses)n.dispose(i,t);e&&i.commit(e),this._lenses.length=0}_renderCodeLensSymbols(e){if(!this._editor.hasModel())return;const t=this._editor.getModel().getLineCount(),i=[];let n;for(const a of e.lenses){const l=a.symbol.range.startLineNumber;l<1||l>t||(n&&n[n.length-1].symbol.range.startLineNumber===l?n.push(a):(n=[a],i.push(n)))}if(!i.length&&!this._lenses.length)return;const r=StableEditorScrollState.capture(this._editor),s=this._getLayoutInfo();this._editor.changeDecorations(a=>{this._editor.changeViewZones(l=>{const d=new CodeLensHelper;let c=0,u=0;for(;u<i.length&&c<this._lenses.length;){const g=i[u][0].symbol.range.startLineNumber,f=this._lenses[c].getLineNumber();f<g?(this._lenses[c].dispose(d,l),this._lenses.splice(c,1)):f===g?(this._lenses[c].updateCodeLensSymbols(i[u],d),u++,c++):(this._lenses.splice(c,0,new CodeLensWidget(i[u],this._editor,d,l,s.codeLensHeight,()=>this._resolveCodeLensesInViewportSoon())),c++,u++)}for(;c<this._lenses.length;)this._lenses[c].dispose(d,l),this._lenses.splice(c,1);for(;u<i.length;)this._lenses.push(new CodeLensWidget(i[u],this._editor,d,l,s.codeLensHeight,()=>this._resolveCodeLensesInViewportSoon())),u++;d.commit(a)})}),r.restore(this._editor)}_resolveCodeLensesInViewportSoon(){this._editor.getModel()&&this._resolveCodeLensesScheduler.schedule()}_resolveCodeLensesInViewport(){var e;(e=this._resolveCodeLensesPromise)===null||e===void 0||e.cancel(),this._resolveCodeLensesPromise=void 0;const t=this._editor.getModel();if(!t)return;const i=[],n=[];if(this._lenses.forEach(a=>{const l=a.computeIfNecessary(t);l&&(i.push(l),n.push(a))}),i.length===0)return;const r=Date.now(),s=createCancelablePromise(a=>{const l=i.map((d,c)=>{const u=new Array(d.length),g=d.map((f,p)=>!f.symbol.command&&typeof f.provider.resolveCodeLens=="function"?Promise.resolve(f.provider.resolveCodeLens(t,f.symbol,a)).then(m=>{u[p]=m},onUnexpectedExternalError):(u[p]=f.symbol,Promise.resolve(void 0)));return Promise.all(g).then(()=>{!a.isCancellationRequested&&!n[c].isDisposed()&&n[c].updateCommands(u)})});return Promise.all(l)});this._resolveCodeLensesPromise=s,this._resolveCodeLensesPromise.then(()=>{const a=this._resolveCodeLensesDebounce.update(t,Date.now()-r);this._resolveCodeLensesScheduler.delay=a,this._currentCodeLensModel&&this._codeLensCache.put(t,this._currentCodeLensModel),this._oldCodeLensModels.clear(),s===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)},a=>{onUnexpectedError(a),s===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)})}getModel(){var e;return __awaiter$Z(this,void 0,void 0,function*(){return yield this._getCodeLensModelPromise,yield this._resolveCodeLensesPromise,!((e=this._currentCodeLensModel)===null||e===void 0)&&e.isDisposed?void 0:this._currentCodeLensModel})}};CodeLensContribution.ID="css.editor.codeLens";CodeLensContribution=__decorate$1g([__param$1g(1,ILanguageFeaturesService),__param$1g(2,ILanguageFeatureDebounceService),__param$1g(3,ICommandService),__param$1g(4,INotificationService),__param$1g(5,ICodeLensCache)],CodeLensContribution);registerEditorContribution(CodeLensContribution.ID,CodeLensContribution,1);registerEditorAction(class extends EditorAction{constructor(){super({id:"codelens.showLensesInCurrentLine",precondition:EditorContextKeys.hasCodeLensProvider,label:localize("showLensOnLine","Show CodeLens Commands For Current Line"),alias:"Show CodeLens Commands For Current Line"})}run(e,t){return __awaiter$Z(this,void 0,void 0,function*(){if(!t.hasModel())return;const i=e.get(IQuickInputService),n=e.get(ICommandService),r=e.get(INotificationService),s=t.getSelection().positionLineNumber,a=t.getContribution(CodeLensContribution.ID);if(!a)return;const l=yield a.getModel();if(!l)return;const d=[];for(const g of l.lenses)g.symbol.command&&g.symbol.range.startLineNumber===s&&d.push({label:g.symbol.command.title,command:g.symbol.command});if(d.length===0)return;const c=yield i.pick(d,{canPickMany:!1,placeHolder:localize("placeHolder","Select a command")});if(!c)return;let u=c.command;if(l.isDisposed){const g=yield a.getModel(),f=g==null?void 0:g.lenses.find(p=>{var m;return p.symbol.range.startLineNumber===s&&((m=p.symbol.command)===null||m===void 0?void 0:m.title)===u.title});if(!f||!f.symbol.command)return;u=f.symbol.command}try{yield n.executeCommand(u.id,...u.arguments||[])}catch(g){r.error(g)}})}});var __decorate$1f=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1f=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$Y=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};class DefaultDocumentColorProvider{constructor(e,t){this._editorWorkerClient=new EditorWorkerClient(e,!1,"editorWorkerService",t)}provideDocumentColors(e,t){return __awaiter$Y(this,void 0,void 0,function*(){return this._editorWorkerClient.computeDefaultDocumentColors(e.uri)})}provideColorPresentations(e,t,i){const n=t.range,r=t.color,s=r.alpha,a=new Color(new RGBA(Math.round(255*r.red),Math.round(255*r.green),Math.round(255*r.blue),s)),l=s?Color.Format.CSS.formatRGB(a):Color.Format.CSS.formatRGBA(a),d=s?Color.Format.CSS.formatHSL(a):Color.Format.CSS.formatHSLA(a),c=s?Color.Format.CSS.formatHex(a):Color.Format.CSS.formatHexA(a),u=[];return u.push({label:l,textEdit:{range:n,text:l}}),u.push({label:d,textEdit:{range:n,text:d}}),u.push({label:c,textEdit:{range:n,text:c}}),u}}let DefaultDocumentColorProviderFeature=class extends Disposable{constructor(e,t,i){super(),this._register(i.colorProvider.register("*",new DefaultDocumentColorProvider(e,t)))}};DefaultDocumentColorProviderFeature=__decorate$1f([__param$1f(0,IModelService),__param$1f(1,ILanguageConfigurationService),__param$1f(2,ILanguageFeaturesService)],DefaultDocumentColorProviderFeature);registerEditorFeature(DefaultDocumentColorProviderFeature);var __awaiter$X=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};function getColors(o,e,t,i=!0){return __awaiter$X(this,void 0,void 0,function*(){return _findColorData(new ColorDataCollector,o,e,t,i)})}function getColorPresentations(o,e,t,i){return Promise.resolve(t.provideColorPresentations(o,e,i))}class ColorDataCollector{constructor(){}compute(e,t,i,n){return __awaiter$X(this,void 0,void 0,function*(){const r=yield e.provideDocumentColors(t,i);if(Array.isArray(r))for(const s of r)n.push({colorInfo:s,provider:e});return Array.isArray(r)})}}class ExtColorDataCollector{constructor(){}compute(e,t,i,n){return __awaiter$X(this,void 0,void 0,function*(){const r=yield e.provideDocumentColors(t,i);if(Array.isArray(r))for(const s of r)n.push({range:s.range,color:[s.color.red,s.color.green,s.color.blue,s.color.alpha]});return Array.isArray(r)})}}class ColorPresentationsCollector{constructor(e){this.colorInfo=e}compute(e,t,i,n){return __awaiter$X(this,void 0,void 0,function*(){const r=yield e.provideColorPresentations(t,this.colorInfo,CancellationToken.None);return Array.isArray(r)&&n.push(...r),Array.isArray(r)})}}function _findColorData(o,e,t,i,n){return __awaiter$X(this,void 0,void 0,function*(){let r=!1,s;const a=[],l=e.ordered(t);for(let d=l.length-1;d>=0;d--){const c=l[d];if(c instanceof DefaultDocumentColorProvider)s=c;else try{(yield o.compute(c,t,i,a))&&(r=!0)}catch(u){onUnexpectedExternalError(u)}}return r?a:s&&n?(yield o.compute(s,t,i,a),a):[]})}function _setupColorCommand(o,e){const{colorProvider:t}=o.get(ILanguageFeaturesService),i=o.get(IModelService).getModel(e);if(!i)throw illegalArgument();const n=o.get(IConfigurationService).getValue("editor.defaultColorDecorators",{resource:e});return{model:i,colorProviderRegistry:t,isDefaultColorDecoratorsEnabled:n}}CommandsRegistry.registerCommand("_executeDocumentColorProvider",function(o,...e){const[t]=e;if(!(t instanceof URI))throw illegalArgument();const{model:i,colorProviderRegistry:n,isDefaultColorDecoratorsEnabled:r}=_setupColorCommand(o,t);return _findColorData(new ExtColorDataCollector,n,i,CancellationToken.None,r)});CommandsRegistry.registerCommand("_executeColorPresentationProvider",function(o,...e){const[t,i]=e,{uri:n,range:r}=i;if(!(n instanceof URI)||!Array.isArray(t)||t.length!==4||!Range$2.isIRange(r))throw illegalArgument();const{model:s,colorProviderRegistry:a,isDefaultColorDecoratorsEnabled:l}=_setupColorCommand(o,n),[d,c,u,g]=t;return _findColorData(new ColorPresentationsCollector({range:r,color:{red:d,green:c,blue:u,alpha:g}}),a,s,CancellationToken.None,l)});var __decorate$1e=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1e=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$W=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},ColorDetector_1;const ColorDecorationInjectedTextMarker=Object.create({});let ColorDetector=ColorDetector_1=class extends Disposable{constructor(e,t,i,n){super(),this._editor=e,this._configurationService=t,this._languageFeaturesService=i,this._localToDispose=this._register(new DisposableStore),this._decorationsIds=[],this._colorDatas=new Map,this._colorDecoratorIds=this._editor.createDecorationsCollection(),this._ruleFactory=new DynamicCssRules(this._editor),this._decoratorLimitReporter=new DecoratorLimitReporter,this._colorDecorationClassRefs=this._register(new DisposableStore),this._debounceInformation=n.for(i.colorProvider,"Document Colors",{min:ColorDetector_1.RECOMPUTE_TIME}),this._register(e.onDidChangeModel(()=>{this._isColorDecoratorsEnabled=this.isEnabled(),this.updateColors()})),this._register(e.onDidChangeModelLanguage(()=>this.updateColors())),this._register(i.colorProvider.onDidChange(()=>this.updateColors())),this._register(e.onDidChangeConfiguration(r=>{const s=this._isColorDecoratorsEnabled;this._isColorDecoratorsEnabled=this.isEnabled(),this._isDefaultColorDecoratorsEnabled=this._editor.getOption(145);const a=s!==this._isColorDecoratorsEnabled||r.hasChanged(21),l=r.hasChanged(145);(a||l)&&(this._isColorDecoratorsEnabled?this.updateColors():this.removeAllDecorations())})),this._timeoutTimer=null,this._computePromise=null,this._isColorDecoratorsEnabled=this.isEnabled(),this._isDefaultColorDecoratorsEnabled=this._editor.getOption(145),this.updateColors()}isEnabled(){const e=this._editor.getModel();if(!e)return!1;const t=e.getLanguageId(),i=this._configurationService.getValue(t);if(i&&typeof i=="object"){const n=i.colorDecorators;if(n&&n.enable!==void 0&&!n.enable)return n.enable}return this._editor.getOption(20)}static get(e){return e.getContribution(this.ID)}dispose(){this.stop(),this.removeAllDecorations(),super.dispose()}updateColors(){if(this.stop(),!this._isColorDecoratorsEnabled)return;const e=this._editor.getModel();!e||!this._languageFeaturesService.colorProvider.has(e)||(this._localToDispose.add(this._editor.onDidChangeModelContent(()=>{this._timeoutTimer||(this._timeoutTimer=new TimeoutTimer,this._timeoutTimer.cancelAndSet(()=>{this._timeoutTimer=null,this.beginCompute()},this._debounceInformation.get(e)))})),this.beginCompute())}beginCompute(){return __awaiter$W(this,void 0,void 0,function*(){this._computePromise=createCancelablePromise(e=>__awaiter$W(this,void 0,void 0,function*(){const t=this._editor.getModel();if(!t)return[];const i=new StopWatch(!1),n=yield getColors(this._languageFeaturesService.colorProvider,t,e,this._isDefaultColorDecoratorsEnabled);return this._debounceInformation.update(t,i.elapsed()),n}));try{const e=yield this._computePromise;this.updateDecorations(e),this.updateColorDecorators(e),this._computePromise=null}catch(e){onUnexpectedError(e)}})}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(i=>({range:{startLineNumber:i.colorInfo.range.startLineNumber,startColumn:i.colorInfo.range.startColumn,endLineNumber:i.colorInfo.range.endLineNumber,endColumn:i.colorInfo.range.endColumn},options:ModelDecorationOptions.EMPTY}));this._editor.changeDecorations(i=>{this._decorationsIds=i.deltaDecorations(this._decorationsIds,t),this._colorDatas=new Map,this._decorationsIds.forEach((n,r)=>this._colorDatas.set(n,e[r]))})}updateColorDecorators(e){this._colorDecorationClassRefs.clear();const t=[],i=this._editor.getOption(21);for(let r=0;r<e.length&&t.length<i;r++){const{red:s,green:a,blue:l,alpha:d}=e[r].colorInfo.color,c=new RGBA(Math.round(s*255),Math.round(a*255),Math.round(l*255),d),u=`rgba(${c.r}, ${c.g}, ${c.b}, ${c.a})`,g=this._colorDecorationClassRefs.add(this._ruleFactory.createClassNameRef({backgroundColor:u}));t.push({range:{startLineNumber:e[r].colorInfo.range.startLineNumber,startColumn:e[r].colorInfo.range.startColumn,endLineNumber:e[r].colorInfo.range.endLineNumber,endColumn:e[r].colorInfo.range.endColumn},options:{description:"colorDetector",before:{content:noBreakWhitespace,inlineClassName:`${g.className} colorpicker-color-decoration`,inlineClassNameAffectsLetterSpacing:!0,attachedData:ColorDecorationInjectedTextMarker}}})}const n=i<e.length?i:!1;this._decoratorLimitReporter.update(e.length,n),this._colorDecoratorIds.set(t)}removeAllDecorations(){this._editor.removeDecorations(this._decorationsIds),this._decorationsIds=[],this._colorDecoratorIds.clear(),this._colorDecorationClassRefs.clear()}getColorData(e){const t=this._editor.getModel();if(!t)return null;const i=t.getDecorationsInRange(Range$2.fromPositions(e,e)).filter(n=>this._colorDatas.has(n.id));return i.length===0?null:this._colorDatas.get(i[0].id)}isColorDecoration(e){return this._colorDecoratorIds.has(e)}};ColorDetector.ID="editor.contrib.colorDetector";ColorDetector.RECOMPUTE_TIME=1e3;ColorDetector=ColorDetector_1=__decorate$1e([__param$1e(1,IConfigurationService),__param$1e(2,ILanguageFeaturesService),__param$1e(3,ILanguageFeatureDebounceService)],ColorDetector);class DecoratorLimitReporter{constructor(){this._onDidChange=new Emitter$1,this._computed=0,this._limited=!1}update(e,t){(e!==this._computed||t!==this._limited)&&(this._computed=e,this._limited=t,this._onDidChange.fire())}}registerEditorContribution(ColorDetector.ID,ColorDetector,1);class ColorPickerModel{get color(){return this._color}set color(e){this._color.equals(e)||(this._color=e,this._onDidChangeColor.fire(e))}get presentation(){return this.colorPresentations[this.presentationIndex]}get colorPresentations(){return this._colorPresentations}set colorPresentations(e){this._colorPresentations=e,this.presentationIndex>e.length-1&&(this.presentationIndex=0),this._onDidChangePresentation.fire(this.presentation)}constructor(e,t,i){this.presentationIndex=i,this._onColorFlushed=new Emitter$1,this.onColorFlushed=this._onColorFlushed.event,this._onDidChangeColor=new Emitter$1,this.onDidChangeColor=this._onDidChangeColor.event,this._onDidChangePresentation=new Emitter$1,this.onDidChangePresentation=this._onDidChangePresentation.event,this.originalColor=e,this._color=e,this._colorPresentations=t}selectNextColorPresentation(){this.presentationIndex=(this.presentationIndex+1)%this.colorPresentations.length,this.flushColor(),this._onDidChangePresentation.fire(this.presentation)}guessColorPresentation(e,t){let i=-1;for(let n=0;n<this.colorPresentations.length;n++)if(t.toLowerCase()===this.colorPresentations[n].label){i=n;break}if(i===-1){const n=t.split("(")[0].toLowerCase();for(let r=0;r<this.colorPresentations.length;r++)if(this.colorPresentations[r].label.toLowerCase().startsWith(n)){i=r;break}}i!==-1&&i!==this.presentationIndex&&(this.presentationIndex=i,this._onDidChangePresentation.fire(this.presentation))}flushColor(){this._onColorFlushed.fire(this._color)}}const $$6=$$d;class ColorPickerHeader extends Disposable{constructor(e,t,i,n=!1){super(),this.model=t,this.showingStandaloneColorPicker=n,this._closeButton=null,this._domNode=$$6(".colorpicker-header"),append$1(e,this._domNode),this._pickedColorNode=append$1(this._domNode,$$6(".picked-color")),append$1(this._pickedColorNode,$$6("span.codicon.codicon-color-mode")),this._pickedColorPresentation=append$1(this._pickedColorNode,document.createElement("span")),this._pickedColorPresentation.classList.add("picked-color-presentation");const r=localize("clickToToggleColorOptions","Click to toggle color options (rgb/hsl/hex)");this._pickedColorNode.setAttribute("title",r),this._originalColorNode=append$1(this._domNode,$$6(".original-color")),this._originalColorNode.style.backgroundColor=Color.Format.CSS.format(this.model.originalColor)||"",this.backgroundColor=i.getColorTheme().getColor(editorHoverBackground)||Color.white,this._register(i.onDidColorThemeChange(s=>{this.backgroundColor=s.getColor(editorHoverBackground)||Color.white})),this._register(addDisposableListener(this._pickedColorNode,EventType$1.CLICK,()=>this.model.selectNextColorPresentation())),this._register(addDisposableListener(this._originalColorNode,EventType$1.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=Color.Format.CSS.format(t.color)||"",this._pickedColorNode.classList.toggle("light",t.color.rgba.a<.5?this.backgroundColor.isLighter():t.color.isLighter()),this.onDidChangeColor(this.model.color),this.showingStandaloneColorPicker&&(this._domNode.classList.add("standalone-colorpicker"),this._closeButton=this._register(new CloseButton(this._domNode)))}get closeButton(){return this._closeButton}get pickedColorNode(){return this._pickedColorNode}get originalColorNode(){return this._originalColorNode}onDidChangeColor(e){this._pickedColorNode.style.backgroundColor=Color.Format.CSS.format(e)||"",this._pickedColorNode.classList.toggle("light",e.rgba.a<.5?this.backgroundColor.isLighter():e.isLighter()),this.onDidChangePresentation()}onDidChangePresentation(){this._pickedColorPresentation.textContent=this.model.presentation?this.model.presentation.label:""}}class CloseButton extends Disposable{constructor(e){super(),this._onClicked=this._register(new Emitter$1),this.onClicked=this._onClicked.event,this._button=document.createElement("div"),this._button.classList.add("close-button"),append$1(e,this._button);const t=document.createElement("div");t.classList.add("close-button-inner-div"),append$1(this._button,t),append$1(t,$$6(".button"+ThemeIcon.asCSSSelector(registerIcon("color-picker-close",Codicon.close,localize("closeIcon","Icon to close the color picker"))))).classList.add("close-icon"),this._button.onclick=()=>{this._onClicked.fire()}}}class ColorPickerBody extends Disposable{constructor(e,t,i,n=!1){super(),this.model=t,this.pixelRatio=i,this._insertButton=null,this._domNode=$$6(".colorpicker-body"),append$1(e,this._domNode),this._saturationBox=new SaturationBox(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 OpacityStrip(this._domNode,this.model,n),this._register(this._opacityStrip),this._register(this._opacityStrip.onDidChange(this.onDidOpacityChange,this)),this._register(this._opacityStrip.onColorFlushed(this.flushColor,this)),this._hueStrip=new HueStrip(this._domNode,this.model,n),this._register(this._hueStrip),this._register(this._hueStrip.onDidChange(this.onDidHueChange,this)),this._register(this._hueStrip.onColorFlushed(this.flushColor,this)),n&&(this._insertButton=this._register(new InsertButton(this._domNode)),this._domNode.classList.add("standalone-colorpicker"))}flushColor(){this.model.flushColor()}onDidSaturationValueChange({s:e,v:t}){const i=this.model.color.hsva;this.model.color=new Color(new HSVA(i.h,e,t,i.a))}onDidOpacityChange(e){const t=this.model.color.hsva;this.model.color=new Color(new HSVA(t.h,t.s,t.v,e))}onDidHueChange(e){const t=this.model.color.hsva,i=(1-e)*360;this.model.color=new Color(new HSVA(i===360?0:i,t.s,t.v,t.a))}get domNode(){return this._domNode}get saturationBox(){return this._saturationBox}get enterButton(){return this._insertButton}layout(){this._saturationBox.layout(),this._opacityStrip.layout(),this._hueStrip.layout()}}class SaturationBox extends Disposable{constructor(e,t,i){super(),this.model=t,this.pixelRatio=i,this._onDidChange=new Emitter$1,this.onDidChange=this._onDidChange.event,this._onColorFlushed=new Emitter$1,this.onColorFlushed=this._onColorFlushed.event,this._domNode=$$6(".saturation-wrap"),append$1(e,this._domNode),this._canvas=document.createElement("canvas"),this._canvas.className="saturation-box",append$1(this._domNode,this._canvas),this.selection=$$6(".saturation-selection"),append$1(this._domNode,this.selection),this.layout(),this._register(addDisposableListener(this._domNode,EventType$1.POINTER_DOWN,n=>this.onPointerDown(n))),this._register(this.model.onDidChangeColor(this.onDidChangeColor,this)),this.monitor=null}get domNode(){return this._domNode}onPointerDown(e){if(!e.target||!(e.target instanceof Element))return;this.monitor=this._register(new GlobalPointerMoveMonitor);const t=getDomNodePagePosition(this._domNode);e.target!==this.selection&&this.onDidChangePosition(e.offsetX,e.offsetY),this.monitor.startMonitoring(e.target,e.pointerId,e.buttons,n=>this.onDidChangePosition(n.pageX-t.left,n.pageY-t.top),()=>null);const i=addDisposableListener(e.target.ownerDocument,EventType$1.POINTER_UP,()=>{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 Color(new HSVA(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 r=i.createLinearGradient(0,0,0,this._canvas.height);r.addColorStop(0,"rgba(0, 0, 0, 0)"),r.addColorStop(1,"rgba(0, 0, 0, 1)"),i.rect(0,0,this._canvas.width,this._canvas.height),i.fillStyle=Color.Format.CSS.format(t),i.fill(),i.fillStyle=n,i.fill(),i.fillStyle=r,i.fill()}paintSelection(e,t){this.selection.style.left=`${e*this.width}px`,this.selection.style.top=`${this.height-t*this.height}px`}onDidChangeColor(e){if(this.monitor&&this.monitor.isMonitoring())return;this.paint();const t=e.hsva;this.paintSelection(t.s,t.v)}}class Strip extends Disposable{constructor(e,t,i=!1){super(),this.model=t,this._onDidChange=new Emitter$1,this.onDidChange=this._onDidChange.event,this._onColorFlushed=new Emitter$1,this.onColorFlushed=this._onColorFlushed.event,i?(this.domNode=append$1(e,$$6(".standalone-strip")),this.overlay=append$1(this.domNode,$$6(".standalone-overlay"))):(this.domNode=append$1(e,$$6(".strip")),this.overlay=append$1(this.domNode,$$6(".overlay"))),this.slider=append$1(this.domNode,$$6(".slider")),this.slider.style.top="0px",this._register(addDisposableListener(this.domNode,EventType$1.POINTER_DOWN,n=>this.onPointerDown(n))),this._register(t.onDidChangeColor(this.onDidChangeColor,this)),this.layout()}layout(){this.height=this.domNode.offsetHeight-this.slider.offsetHeight;const e=this.getValue(this.model.color);this.updateSliderPosition(e)}onDidChangeColor(e){const t=this.getValue(e);this.updateSliderPosition(t)}onPointerDown(e){if(!e.target||!(e.target instanceof Element))return;const t=this._register(new GlobalPointerMoveMonitor),i=getDomNodePagePosition(this.domNode);this.domNode.classList.add("grabbing"),e.target!==this.slider&&this.onDidChangeTop(e.offsetY),t.startMonitoring(e.target,e.pointerId,e.buttons,r=>this.onDidChangeTop(r.pageY-i.top),()=>null);const n=addDisposableListener(e.target.ownerDocument,EventType$1.POINTER_UP,()=>{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 OpacityStrip extends Strip{constructor(e,t,i=!1){super(e,t,i),this.domNode.classList.add("opacity-strip"),this.onDidChangeColor(this.model.color)}onDidChangeColor(e){super.onDidChangeColor(e);const{r:t,g:i,b:n}=e.rgba,r=new Color(new RGBA(t,i,n,1)),s=new Color(new RGBA(t,i,n,0));this.overlay.style.background=`linear-gradient(to bottom, ${r} 0%, ${s} 100%)`}getValue(e){return e.hsva.a}}class HueStrip extends Strip{constructor(e,t,i=!1){super(e,t,i),this.domNode.classList.add("hue-strip")}getValue(e){return 1-e.hsva.h/360}}class InsertButton extends Disposable{constructor(e){super(),this._onClicked=this._register(new Emitter$1),this.onClicked=this._onClicked.event,this._button=append$1(e,document.createElement("button")),this._button.classList.add("insert-button"),this._button.textContent="Insert",this._button.onclick=t=>{this._onClicked.fire()}}get button(){return this._button}}class ColorPickerWidget extends Widget$1{constructor(e,t,i,n,r=!1){super(),this.model=t,this.pixelRatio=i,this._register(PixelRatio.onDidChange(()=>this.layout()));const s=$$6(".colorpicker-widget");e.appendChild(s),this.header=this._register(new ColorPickerHeader(s,this.model,n,r)),this.body=this._register(new ColorPickerBody(s,this.model,this.pixelRatio,r))}layout(){this.body.layout()}}var __decorate$1d=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1d=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$V=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};class ColorHover{constructor(e,t,i,n){this.owner=e,this.range=t,this.model=i,this.provider=n,this.forceShowAtRange=!0}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}let ColorHoverParticipant=class{constructor(e,t){this._editor=e,this._themeService=t,this.hoverOrdinal=2}computeSync(e,t){return[]}computeAsync(e,t,i){return AsyncIterableObject.fromPromise(this._computeAsync(e,t,i))}_computeAsync(e,t,i){return __awaiter$V(this,void 0,void 0,function*(){if(!this._editor.hasModel())return[];const n=ColorDetector.get(this._editor);if(!n)return[];for(const r of t){if(!n.isColorDecoration(r))continue;const s=n.getColorData(r.range.getStartPosition());if(s)return[yield _createColorHover(this,this._editor.getModel(),s.colorInfo,s.provider)]}return[]})}renderHoverParts(e,t){return renderHoverParts(this,this._editor,this._themeService,t,e)}};ColorHoverParticipant=__decorate$1d([__param$1d(1,IThemeService)],ColorHoverParticipant);class StandaloneColorPickerHover{constructor(e,t,i,n){this.owner=e,this.range=t,this.model=i,this.provider=n}}let StandaloneColorPickerParticipant=class{constructor(e,t){this._editor=e,this._themeService=t,this._color=null}createColorHover(e,t,i){return __awaiter$V(this,void 0,void 0,function*(){if(!this._editor.hasModel()||!ColorDetector.get(this._editor))return null;const r=yield getColors(i,this._editor.getModel(),CancellationToken.None);let s=null,a=null;for(const u of r){const g=u.colorInfo;Range$2.containsRange(g.range,e.range)&&(s=g,a=u.provider)}const l=s??e,d=a??t,c=!!s;return{colorHover:yield _createColorHover(this,this._editor.getModel(),l,d),foundInEditor:c}})}updateEditorModel(e){return __awaiter$V(this,void 0,void 0,function*(){if(!this._editor.hasModel())return;const t=e.model;let i=new Range$2(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn);this._color&&(yield _updateColorPresentations(this._editor.getModel(),t,this._color,i,e),i=_updateEditorModel(this._editor,i,t))})}renderHoverParts(e,t){return renderHoverParts(this,this._editor,this._themeService,t,e)}set color(e){this._color=e}get color(){return this._color}};StandaloneColorPickerParticipant=__decorate$1d([__param$1d(1,IThemeService)],StandaloneColorPickerParticipant);function _createColorHover(o,e,t,i){return __awaiter$V(this,void 0,void 0,function*(){const n=e.getValueInRange(t.range),{red:r,green:s,blue:a,alpha:l}=t.color,d=new RGBA(Math.round(r*255),Math.round(s*255),Math.round(a*255),l),c=new Color(d),u=yield getColorPresentations(e,t,i,CancellationToken.None),g=new ColorPickerModel(c,[],0);return g.colorPresentations=u||[],g.guessColorPresentation(c,n),o instanceof ColorHoverParticipant?new ColorHover(o,Range$2.lift(t.range),g,i):new StandaloneColorPickerHover(o,Range$2.lift(t.range),g,i)})}function renderHoverParts(o,e,t,i,n){if(i.length===0||!e.hasModel())return Disposable.None;if(n.setMinimumDimensions){const g=e.getOption(66)+8;n.setMinimumDimensions(new Dimension(302,g))}const r=new DisposableStore,s=i[0],a=e.getModel(),l=s.model,d=r.add(new ColorPickerWidget(n.fragment,l,e.getOption(141),t,o instanceof StandaloneColorPickerParticipant));n.setColorPicker(d);let c=!1,u=new Range$2(s.range.startLineNumber,s.range.startColumn,s.range.endLineNumber,s.range.endColumn);if(o instanceof StandaloneColorPickerParticipant){const g=i[0].model.color;o.color=g,_updateColorPresentations(a,l,g,u,s),r.add(l.onColorFlushed(f=>{o.color=f}))}else r.add(l.onColorFlushed(g=>__awaiter$V(this,void 0,void 0,function*(){yield _updateColorPresentations(a,l,g,u,s),c=!0,u=_updateEditorModel(e,u,l,n)})));return r.add(l.onDidChangeColor(g=>{_updateColorPresentations(a,l,g,u,s)})),r.add(e.onDidChangeModelContent(g=>{c?c=!1:(n.hide(),e.focus())})),r}function _updateEditorModel(o,e,t,i){let n,r;if(t.presentation.textEdit){n=[t.presentation.textEdit],r=new Range$2(t.presentation.textEdit.range.startLineNumber,t.presentation.textEdit.range.startColumn,t.presentation.textEdit.range.endLineNumber,t.presentation.textEdit.range.endColumn);const s=o.getModel()._setTrackedRange(null,r,3);o.pushUndoStop(),o.executeEdits("colorpicker",n),r=o.getModel()._getTrackedRange(s)||r}else n=[{range:e,text:t.presentation.label,forceMoveMarkers:!1}],r=e.setEndPosition(e.endLineNumber,e.startColumn+t.presentation.label.length),o.pushUndoStop(),o.executeEdits("colorpicker",n);return t.presentation.additionalTextEdits&&(n=[...t.presentation.additionalTextEdits],o.executeEdits("colorpicker",n),i&&i.hide()),o.pushUndoStop(),r}function _updateColorPresentations(o,e,t,i,n){return __awaiter$V(this,void 0,void 0,function*(){const r=yield getColorPresentations(o,{range:i,color:{red:t.rgba.r/255,green:t.rgba.g/255,blue:t.rgba.b/255,alpha:t.rgba.a}},n.provider,CancellationToken.None);e.colorPresentations=r||[]})}function hasModifier(o,e){return!!o[e]}class ClickLinkMouseEvent{constructor(e,t){this.target=e.target,this.isLeftClick=e.event.leftButton,this.isMiddleClick=e.event.middleButton,this.isRightClick=e.event.rightButton,this.hasTriggerModifier=hasModifier(e.event,t.triggerModifier),this.hasSideBySideModifier=hasModifier(e.event,t.triggerSideBySideModifier),this.isNoneOrSingleMouseDown=e.event.detail<=1}}class ClickLinkKeyboardEvent{constructor(e,t){this.keyCodeIsTriggerKey=e.keyCode===t.triggerKey,this.keyCodeIsSideBySideKey=e.keyCode===t.triggerSideBySideKey,this.hasTriggerModifier=hasModifier(e,t.triggerModifier)}}class ClickLinkOptions{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 createOptions(o){return o==="altKey"?isMacintosh?new ClickLinkOptions(57,"metaKey",6,"altKey"):new ClickLinkOptions(5,"ctrlKey",6,"altKey"):isMacintosh?new ClickLinkOptions(6,"altKey",57,"metaKey"):new ClickLinkOptions(6,"altKey",5,"ctrlKey")}class ClickLinkGesture extends Disposable{constructor(e,t){var i;super(),this._onMouseMoveOrRelevantKeyDown=this._register(new Emitter$1),this.onMouseMoveOrRelevantKeyDown=this._onMouseMoveOrRelevantKeyDown.event,this._onExecute=this._register(new Emitter$1),this.onExecute=this._onExecute.event,this._onCancel=this._register(new Emitter$1),this.onCancel=this._onCancel.event,this._editor=e,this._extractLineNumberFromMouseEvent=(i=t==null?void 0:t.extractLineNumberFromMouseEvent)!==null&&i!==void 0?i:n=>n.target.position?n.target.position.lineNumber:0,this._opts=createOptions(this._editor.getOption(77)),this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._register(this._editor.onDidChangeConfiguration(n=>{if(n.hasChanged(77)){const r=createOptions(this._editor.getOption(77));if(this._opts.equals(r))return;this._opts=r,this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._onCancel.fire()}})),this._register(this._editor.onMouseMove(n=>this._onEditorMouseMove(new ClickLinkMouseEvent(n,this._opts)))),this._register(this._editor.onMouseDown(n=>this._onEditorMouseDown(new ClickLinkMouseEvent(n,this._opts)))),this._register(this._editor.onMouseUp(n=>this._onEditorMouseUp(new ClickLinkMouseEvent(n,this._opts)))),this._register(this._editor.onKeyDown(n=>this._onEditorKeyDown(new ClickLinkKeyboardEvent(n,this._opts)))),this._register(this._editor.onKeyUp(n=>this._onEditorKeyUp(new ClickLinkKeyboardEvent(n,this._opts)))),this._register(this._editor.onMouseDrag(()=>this._resetHandler())),this._register(this._editor.onDidChangeCursorSelection(n=>this._onDidChangeCursorSelection(n))),this._register(this._editor.onDidChangeModel(n=>this._resetHandler())),this._register(this._editor.onDidChangeModelContent(()=>this._resetHandler())),this._register(this._editor.onDidScrollChange(n=>{(n.scrollTopChanged||n.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=this._extractLineNumberFromMouseEvent(e)}_onEditorMouseUp(e){const t=this._extractLineNumberFromMouseEvent(e);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()}}var __decorate$1c=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1c=function(o,e){return function(t,i){e(t,i,o)}};let EmbeddedCodeEditorWidget=class extends CodeEditorWidget{constructor(e,t,i,n,r,s,a,l,d,c,u,g,f){super(e,Object.assign(Object.assign({},n.getRawOptions()),{overflowWidgetsDomNode:n.getOverflowWidgetsDomNode()}),i,r,s,a,l,d,c,u,g,f),this._parentEditor=n,this._overwriteOptions=t,super.updateOptions(this._overwriteOptions),this._register(n.onDidChangeConfiguration(p=>this._onParentConfigurationChanged(p)))}getParentEditor(){return this._parentEditor}_onParentConfigurationChanged(e){super.updateOptions(this._parentEditor.getRawOptions()),super.updateOptions(this._overwriteOptions)}updateOptions(e){mixin(this._overwriteOptions,e,!0),super.updateOptions(this._overwriteOptions)}};EmbeddedCodeEditorWidget=__decorate$1c([__param$1c(4,IInstantiationService),__param$1c(5,ICodeEditorService),__param$1c(6,ICommandService),__param$1c(7,IContextKeyService),__param$1c(8,IThemeService),__param$1c(9,INotificationService),__param$1c(10,IAccessibilityService),__param$1c(11,ILanguageConfigurationService),__param$1c(12,ILanguageFeaturesService)],EmbeddedCodeEditorWidget);const defaultColor=new Color(new RGBA(0,122,204)),defaultOptions$1={showArrow:!0,showFrame:!0,className:"",frameColor:defaultColor,arrowColor:defaultColor,keepEditorSelection:!1},WIDGET_ID="vs.editor.contrib.zoneWidget";class ViewZoneDelegate{constructor(e,t,i,n,r,s,a,l){this.id="",this.domNode=e,this.afterLineNumber=t,this.afterColumn=i,this.heightInLines=n,this.showInHiddenAreas=a,this.ordinal=l,this._onDomNodeTop=r,this._onComputedHeight=s}onDomNodeTop(e){this._onDomNodeTop(e)}onComputedHeight(e){this._onComputedHeight(e)}}class OverlayWidgetDelegate{constructor(e,t){this._id=e,this._domNode=t}getId(){return this._id}getDomNode(){return this._domNode}getPosition(){return null}}class Arrow{constructor(e){this._editor=e,this._ruleName=Arrow._IdGenerator.nextId(),this._decorations=this._editor.createDecorationsCollection(),this._color=null,this._height=-1}dispose(){this.hide(),removeCSSRulesContainingSelector(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(){removeCSSRulesContainingSelector(this._ruleName),createCSSRule(`.monaco-editor ${this._ruleName}`,`border-style: solid; border-color: transparent; border-bottom-color: ${this._color}; border-width: ${this._height}px; bottom: -${this._height}px; margin-left: -${this._height}px; `)}show(e){e.column===1&&(e={lineNumber:e.lineNumber,column:2}),this._decorations.set([{range:Range$2.fromPositions(e),options:{description:"zone-widget-arrow",className:this._ruleName,stickiness:1}}])}hide(){this._decorations.clear()}}Arrow._IdGenerator=new IdGenerator(".arrow-decoration-");class ZoneWidget{constructor(e,t={}){this._arrow=null,this._overlayWidget=null,this._resizeSash=null,this._viewZone=null,this._disposables=new DisposableStore,this.container=null,this._isShowing=!1,this.editor=e,this._positionMarkerId=this.editor.createDecorationsCollection(),this.options=deepClone(t),mixin(this.options,defaultOptions$1,!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(i=>{const n=this._getWidth(i);this.domNode.style.width=n+"px",this.domNode.style.left=this._getLeft(i)+"px",this._onWidth(n)}))}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._positionMarkerId.clear(),this._disposables.dispose()}create(){this.domNode.classList.add("zone-widget"),this.options.className&&this.domNode.classList.add(this.options.className),this.container=document.createElement("div"),this.container.classList.add("zone-widget-container"),this.domNode.appendChild(this.container),this.options.showArrow&&(this._arrow=new Arrow(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){const e=this.options.frameColor.toString();this.container.style.borderTopColor=e,this.container.style.borderBottomColor=e}if(this._arrow&&this.options.arrowColor){const 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&&e.minimap.minimapLeft===0?e.minimap.minimapWidth:0}_onViewZoneTop(e){this.domNode.style.top=e+"px"}_onViewZoneHeight(e){var t;if(this.domNode.style.height=`${e}px`,this.container){const i=e-this._decoratingElementsHeight();this.container.style.height=`${i}px`;const n=this.editor.getLayoutInfo();this._doLayout(i,this._getWidth(n))}(t=this._resizeSash)===null||t===void 0||t.layout()}get position(){const e=this._positionMarkerId.getRange(0);if(e)return e.getStartPosition()}show(e,t){const i=Range$2.isIRange(e)?Range$2.lift(e):Range$2.fromPositions(e);this._isShowing=!0,this._showImpl(i,t),this._isShowing=!1,this._positionMarkerId.set([{range:i,options:ModelDecorationOptions.EMPTY}])}hide(){var e;this._viewZone&&(this.editor.changeViewZones(t=>{this._viewZone&&t.removeZone(this._viewZone.id)}),this._viewZone=null),this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),(e=this._arrow)===null||e===void 0||e.hide(),this._positionMarkerId.clear()}_decoratingElementsHeight(){const e=this.editor.getOption(66);let t=0;if(this.options.showArrow){const i=Math.round(e/3);t+=2*i}if(this.options.showFrame){const i=Math.round(e/9);t+=2*i}return t}_showImpl(e,t){const i=e.getStartPosition(),n=this.editor.getLayoutInfo(),r=this._getWidth(n);this.domNode.style.width=`${r}px`,this.domNode.style.left=this._getLeft(n)+"px";const s=document.createElement("div");s.style.overflow="hidden";const a=this.editor.getOption(66);if(!this.options.allowUnlimitedHeight){const g=Math.max(12,this.editor.getLayoutInfo().height/a*.8);t=Math.min(t,g)}let l=0,d=0;if(this._arrow&&this.options.showArrow&&(l=Math.round(a/3),this._arrow.height=l,this._arrow.show(i)),this.options.showFrame&&(d=Math.round(a/9)),this.editor.changeViewZones(g=>{this._viewZone&&g.removeZone(this._viewZone.id),this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this.domNode.style.top="-1000px",this._viewZone=new ViewZoneDelegate(s,i.lineNumber,i.column,t,f=>this._onViewZoneTop(f),f=>this._onViewZoneHeight(f),this.options.showInHiddenAreas,this.options.ordinal),this._viewZone.id=g.addZone(this._viewZone),this._overlayWidget=new OverlayWidgetDelegate(WIDGET_ID+this._viewZone.id,this.domNode),this.editor.addOverlayWidget(this._overlayWidget)}),this.container&&this.options.showFrame){const g=this.options.frameWidth?this.options.frameWidth:d;this.container.style.borderTopWidth=g+"px",this.container.style.borderBottomWidth=g+"px"}const c=t*a-this._decoratingElementsHeight();this.container&&(this.container.style.top=l+"px",this.container.style.height=c+"px",this.container.style.overflow="hidden"),this._doLayout(c,r),this.options.keepEditorSelection||this.editor.setSelection(e);const u=this.editor.getModel();if(u){const g=u.validateRange(new Range$2(e.startLineNumber,1,e.endLineNumber+1,1));this.revealRange(g,g.startLineNumber===u.getLineCount())}}revealRange(e,t){t?this.editor.revealLineNearTop(e.endLineNumber,0):this.editor.revealRange(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;this._resizeSash=this._disposables.add(new Sash(this.domNode,this,{orientation:1})),this.options.isResizeable||(this._resizeSash.state=0);let e;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){const i=(t.currentY-e.startY)/this.editor.getOption(66),n=i<0?Math.ceil(i):Math.floor(i),r=e.heightInLines+n;r>5&&r<35&&this._relayout(r)}}))}getHorizontalSashLeft(){return 0}getHorizontalSashTop(){return(this.domNode.style.height===null?0:parseInt(this.domNode.style.height))-this._decoratingElementsHeight()/2}getHorizontalSashWidth(){const e=this.editor.getLayoutInfo();return e.width-e.minimap.minimapWidth}}var __decorate$1b=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1b=function(o,e){return function(t,i){e(t,i,o)}};const IPeekViewService=createDecorator("IPeekViewService");registerSingleton(IPeekViewService,class{constructor(){this._widgets=new Map}addExclusiveWidget(o,e){const t=this._widgets.get(o);t&&(t.listener.dispose(),t.widget.dispose());const i=()=>{const n=this._widgets.get(o);n&&n.widget===e&&(n.listener.dispose(),this._widgets.delete(o))};this._widgets.set(o,{widget:e,listener:e.onDidClose(i)})}},1);var PeekContext;(function(o){o.inPeekEditor=new RawContextKey("inReferenceSearchEditor",!0,localize("inReferenceSearchEditor","Whether the current code editor is embedded inside peek")),o.notInPeekEditor=o.inPeekEditor.toNegated()})(PeekContext||(PeekContext={}));let PeekContextController=class{constructor(e,t){e instanceof EmbeddedCodeEditorWidget&&PeekContext.inPeekEditor.bindTo(t)}dispose(){}};PeekContextController.ID="editor.contrib.referenceController";PeekContextController=__decorate$1b([__param$1b(1,IContextKeyService)],PeekContextController);registerEditorContribution(PeekContextController.ID,PeekContextController,0);function getOuterEditor(o){const e=o.get(ICodeEditorService).getFocusedCodeEditor();return e instanceof EmbeddedCodeEditorWidget?e.getParentEditor():e}const defaultOptions={headerBackgroundColor:Color.white,primaryHeadingColor:Color.fromHex("#333333"),secondaryHeadingColor:Color.fromHex("#6c6c6cb3")};let PeekViewWidget=class extends ZoneWidget{constructor(e,t,i){super(e,t),this.instantiationService=i,this._onDidClose=new Emitter$1,this.onDidClose=this._onDidClose.event,mixin(this.options,defaultOptions,!1)}dispose(){this.disposed||(this.disposed=!0,super.dispose(),this._onDidClose.fire(this))}style(e){const 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();const 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=$$d(".head"),this._bodyElement=$$d(".body"),this._fillHead(this._headElement),this._fillBody(this._bodyElement),e.appendChild(this._headElement),e.appendChild(this._bodyElement)}_fillHead(e,t){this._titleElement=$$d(".peekview-title"),this.options.supportOnTitleClick&&(this._titleElement.classList.add("clickable"),addStandardDisposableListener(this._titleElement,"click",r=>this._onTitleClick(r))),append$1(this._headElement,this._titleElement),this._fillTitleIcon(this._titleElement),this._primaryHeading=$$d("span.filename"),this._secondaryHeading=$$d("span.dirname"),this._metaHeading=$$d("span.meta"),append$1(this._titleElement,this._primaryHeading,this._secondaryHeading,this._metaHeading);const i=$$d(".peekview-actions");append$1(this._headElement,i);const n=this._getActionBarOptions();this._actionbarWidget=new ActionBar(i,n),this._disposables.add(this._actionbarWidget),t||this._actionbarWidget.push(new Action("peekview.close",localize("label.close","Close"),ThemeIcon.asClassName(Codicon.close),!0,()=>(this.dispose(),Promise.resolve())),{label:!1,icon:!0})}_fillTitleIcon(e){}_getActionBarOptions(){return{actionViewItemProvider:createActionViewItem.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:clearNode(this._secondaryHeading))}setMetaTitle(e){this._metaHeading&&(e?(this._metaHeading.innerText=e,show(this._metaHeading)):hide(this._metaHeading))}_doLayout(e,t){if(!this._isShowing&&e<0){this.dispose();return}const i=Math.ceil(this.editor.getOption(66)*1.2),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`)}};PeekViewWidget=__decorate$1b([__param$1b(2,IInstantiationService)],PeekViewWidget);const peekViewTitleBackground=registerColor("peekViewTitle.background",{dark:"#252526",light:"#F3F3F3",hcDark:Color.black,hcLight:Color.white},localize("peekViewTitleBackground","Background color of the peek view title area.")),peekViewTitleForeground=registerColor("peekViewTitleLabel.foreground",{dark:Color.white,light:Color.black,hcDark:Color.white,hcLight:editorForeground},localize("peekViewTitleForeground","Color of the peek view title.")),peekViewTitleInfoForeground=registerColor("peekViewTitleDescription.foreground",{dark:"#ccccccb3",light:"#616161",hcDark:"#FFFFFF99",hcLight:"#292929"},localize("peekViewTitleInfoForeground","Color of the peek view title info.")),peekViewBorder=registerColor("peekView.border",{dark:editorInfoForeground,light:editorInfoForeground,hcDark:contrastBorder,hcLight:contrastBorder},localize("peekViewBorder","Color of the peek view borders and arrow.")),peekViewResultsBackground=registerColor("peekViewResult.background",{dark:"#252526",light:"#F3F3F3",hcDark:Color.black,hcLight:Color.white},localize("peekViewResultsBackground","Background color of the peek view result list."));registerColor("peekViewResult.lineForeground",{dark:"#bbbbbb",light:"#646465",hcDark:Color.white,hcLight:editorForeground},localize("peekViewResultsMatchForeground","Foreground color for line nodes in the peek view result list."));registerColor("peekViewResult.fileForeground",{dark:Color.white,light:"#1E1E1E",hcDark:Color.white,hcLight:editorForeground},localize("peekViewResultsFileForeground","Foreground color for file nodes in the peek view result list."));registerColor("peekViewResult.selectionBackground",{dark:"#3399ff33",light:"#3399ff33",hcDark:null,hcLight:null},localize("peekViewResultsSelectionBackground","Background color of the selected entry in the peek view result list."));registerColor("peekViewResult.selectionForeground",{dark:Color.white,light:"#6C6C6C",hcDark:Color.white,hcLight:editorForeground},localize("peekViewResultsSelectionForeground","Foreground color of the selected entry in the peek view result list."));const peekViewEditorBackground=registerColor("peekViewEditor.background",{dark:"#001F33",light:"#F2F8FC",hcDark:Color.black,hcLight:Color.white},localize("peekViewEditorBackground","Background color of the peek view editor."));registerColor("peekViewEditorGutter.background",{dark:peekViewEditorBackground,light:peekViewEditorBackground,hcDark:peekViewEditorBackground,hcLight:peekViewEditorBackground},localize("peekViewEditorGutterBackground","Background color of the gutter in the peek view editor."));registerColor("peekViewEditorStickyScroll.background",{dark:peekViewEditorBackground,light:peekViewEditorBackground,hcDark:peekViewEditorBackground,hcLight:peekViewEditorBackground},localize("peekViewEditorStickScrollBackground","Background color of sticky scroll in the peek view editor."));registerColor("peekViewResult.matchHighlightBackground",{dark:"#ea5c004d",light:"#ea5c004d",hcDark:null,hcLight:null},localize("peekViewResultsMatchHighlight","Match highlight color in the peek view result list."));registerColor("peekViewEditor.matchHighlightBackground",{dark:"#ff8f0099",light:"#f5d802de",hcDark:null,hcLight:null},localize("peekViewEditorMatchHighlight","Match highlight color in the peek view editor."));registerColor("peekViewEditor.matchHighlightBorder",{dark:null,light:null,hcDark:activeContrastBorder,hcLight:activeContrastBorder},localize("peekViewEditorMatchHighlightBorder","Match highlight border in the peek view editor."));var __awaiter$U=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};class OneReference{constructor(e,t,i,n){this.isProviderFirst=e,this.parent=t,this.link=i,this._rangeCallback=n,this.id=defaultGenerator.nextId()}get uri(){return this.link.uri}get range(){var e,t;return(t=(e=this._range)!==null&&e!==void 0?e:this.link.targetSelectionRange)!==null&&t!==void 0?t:this.link.range}set range(e){this._range=e,this._rangeCallback(this)}get ariaMessage(){var e;const t=(e=this.parent.getPreview(this))===null||e===void 0?void 0:e.preview(this.range);return t?localize({},"{0} in {1} on line {2} at column {3}",t.value,basename(this.uri),this.range.startLineNumber,this.range.startColumn):localize("aria.oneReference","in {0} on line {1} at column {2}",basename(this.uri),this.range.startLineNumber,this.range.startColumn)}}class FilePreview{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:r,endLineNumber:s,endColumn:a}=e,l=i.getWordUntilPosition({lineNumber:n,column:r-t}),d=new Range$2(n,l.startColumn,n,r),c=new Range$2(s,a,s,1073741824),u=i.getValueInRange(d).replace(/^\s+/,""),g=i.getValueInRange(e),f=i.getValueInRange(c).replace(/\s+$/,"");return{value:u+g+f,highlight:{start:u.length,end:u.length+g.length}}}}class FileReferences{constructor(e,t){this.parent=e,this.uri=t,this.children=[],this._previews=new ResourceMap}dispose(){dispose(this._previews.values()),this._previews.clear()}getPreview(e){return this._previews.get(e.uri)}get ariaMessage(){const e=this.children.length;return e===1?localize("aria.fileReferences.1","1 symbol in {0}, full path {1}",basename(this.uri),this.uri.fsPath):localize("aria.fileReferences.N","{0} symbols in {1}, full path {2}",e,basename(this.uri),this.uri.fsPath)}resolve(e){return __awaiter$U(this,void 0,void 0,function*(){if(this._previews.size!==0)return this;for(const t of this.children)if(!this._previews.has(t.uri))try{const i=yield e.createModelReference(t.uri);this._previews.set(t.uri,new FilePreview(i))}catch(i){onUnexpectedError(i)}return this})}}class ReferencesModel{constructor(e,t){this.groups=[],this.references=[],this._onDidChangeReferenceRange=new Emitter$1,this.onDidChangeReferenceRange=this._onDidChangeReferenceRange.event,this._links=e,this._title=t;const[i]=e;e.sort(ReferencesModel._compareReferences);let n;for(const r of e)if((!n||!extUri.isEqual(n.uri,r.uri,!0))&&(n=new FileReferences(this,r.uri),this.groups.push(n)),n.children.length===0||ReferencesModel._compareReferences(r,n.children[n.children.length-1])!==0){const s=new OneReference(i===r,n,r,a=>this._onDidChangeReferenceRange.fire(a));this.references.push(s),n.children.push(s)}}dispose(){dispose(this.groups),this._onDidChangeReferenceRange.dispose(),this.groups.length=0}clone(){return new ReferencesModel(this._links,this._title)}get title(){return this._title}get isEmpty(){return this.groups.length===0}get ariaMessage(){return this.isEmpty?localize("aria.result.0","No results found"):this.references.length===1?localize("aria.result.1","Found 1 symbol in {0}",this.references[0].uri.fsPath):this.groups.length===1?localize("aria.result.n1","Found {0} symbols in {1}",this.references.length,this.groups[0].uri.fsPath):localize("aria.result.nm","Found {0} symbols in {1} files",this.references.length,this.groups.length)}nextOrPreviousReference(e,t){const{parent:i}=e;let n=i.children.indexOf(e);const r=i.children.length,s=i.parent.groups.length;return s===1||t&&n+1<r||!t&&n>0?(t?n=(n+1)%r:n=(n+r-1)%r,i.children[n]):(n=i.parent.groups.indexOf(i),t?(n=(n+1)%s,i.parent.groups[n].children[0]):(n=(n+s-1)%s,i.parent.groups[n].children[i.parent.groups[n].children.length-1]))}nearestReference(e,t){const i=this.references.map((n,r)=>({idx:r,prefixLen:commonPrefixLength(n.uri.toString(),e.toString()),offsetDist:Math.abs(n.range.startLineNumber-t.lineNumber)*100+Math.abs(n.range.startColumn-t.column)})).sort((n,r)=>n.prefixLen>r.prefixLen?-1:n.prefixLen<r.prefixLen?1:n.offsetDist<r.offsetDist?-1:n.offsetDist>r.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()&&Range$2.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 extUri.compare(e.uri,t.uri)||Range$2.compareRangesUsingStarts(e.range,t.range)}}var __decorate$1a=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1a=function(o,e){return function(t,i){e(t,i,o)}},FileReferencesRenderer_1;let DataSource=class{constructor(e){this._resolverService=e}hasChildren(e){return e instanceof ReferencesModel||e instanceof FileReferences}getChildren(e){if(e instanceof ReferencesModel)return e.groups;if(e instanceof FileReferences)return e.resolve(this._resolverService).then(t=>t.children);throw new Error("bad tree")}};DataSource=__decorate$1a([__param$1a(0,ITextModelService)],DataSource);class Delegate{getHeight(){return 23}getTemplateId(e){return e instanceof FileReferences?FileReferencesRenderer.id:OneReferenceRenderer.id}}let StringRepresentationProvider=class{constructor(e){this._keybindingService=e}getKeyboardNavigationLabel(e){var t;if(e instanceof OneReference){const i=(t=e.parent.getPreview(e))===null||t===void 0?void 0:t.preview(e.range);if(i)return i.value}return basename(e.uri)}};StringRepresentationProvider=__decorate$1a([__param$1a(0,IKeybindingService)],StringRepresentationProvider);class IdentityProvider{getId(e){return e instanceof OneReference?e.id:e.uri}}let FileReferencesTemplate=class extends Disposable{constructor(e,t){super(),this._labelService=t;const i=document.createElement("div");i.classList.add("reference-file"),this.file=this._register(new IconLabel(i,{supportHighlights:!0})),this.badge=new CountBadge(append$1(i,$$d(".count")),{},defaultCountBadgeStyles),e.appendChild(i)}set(e,t){const i=dirname(e.uri);this.file.setLabel(this._labelService.getUriBasenameLabel(e.uri),this._labelService.getUriLabel(i,{relative:!0}),{title:this._labelService.getUriLabel(e.uri),matches:t});const n=e.children.length;this.badge.setCount(n),n>1?this.badge.setTitleFormat(localize("referencesCount","{0} references",n)):this.badge.setTitleFormat(localize("referenceCount","{0} reference",n))}};FileReferencesTemplate=__decorate$1a([__param$1a(1,ILabelService)],FileReferencesTemplate);let FileReferencesRenderer=FileReferencesRenderer_1=class{constructor(e){this._instantiationService=e,this.templateId=FileReferencesRenderer_1.id}renderTemplate(e){return this._instantiationService.createInstance(FileReferencesTemplate,e)}renderElement(e,t,i){i.set(e.element,createMatches(e.filterData))}disposeTemplate(e){e.dispose()}};FileReferencesRenderer.id="FileReferencesRenderer";FileReferencesRenderer=FileReferencesRenderer_1=__decorate$1a([__param$1a(0,IInstantiationService)],FileReferencesRenderer);class OneReferenceTemplate{constructor(e){this.label=new HighlightedLabel(e)}set(e,t){var i;const n=(i=e.parent.getPreview(e))===null||i===void 0?void 0:i.preview(e.range);if(!n||!n.value)this.label.set(`${basename(e.uri)}:${e.range.startLineNumber+1}:${e.range.startColumn+1}`);else{const{value:r,highlight:s}=n;t&&!FuzzyScore.isDefault(t)?(this.label.element.classList.toggle("referenceMatch",!1),this.label.set(r,createMatches(t))):(this.label.element.classList.toggle("referenceMatch",!0),this.label.set(r,[s]))}}}class OneReferenceRenderer{constructor(){this.templateId=OneReferenceRenderer.id}renderTemplate(e){return new OneReferenceTemplate(e)}renderElement(e,t,i){i.set(e.element,e.filterData)}disposeTemplate(){}}OneReferenceRenderer.id="OneReferenceRenderer";class AccessibilityProvider{getWidgetAriaLabel(){return localize("treeAriaLabel","References")}getAriaLabel(e){return e.ariaMessage}}var __decorate$19=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$19=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$T=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};class DecorationsManager{constructor(e,t){this._editor=e,this._model=t,this._decorations=new Map,this._decorationIgnoreSet=new Set,this._callOnDispose=new DisposableStore,this._callOnModelChange=new DisposableStore,this._callOnDispose.add(this._editor.onDidChangeModel(()=>this._onModelChanged())),this._onModelChanged()}dispose(){this._callOnModelChange.dispose(),this._callOnDispose.dispose(),this.removeDecorations()}_onModelChanged(){this._callOnModelChange.clear();const e=this._editor.getModel();if(e){for(const t of this._model.references)if(t.uri.toString()===e.uri.toString()){this._addDecorations(t.parent);return}}}_addDecorations(e){if(!this._editor.hasModel())return;this._callOnModelChange.add(this._editor.getModel().onDidChangeDecorations(()=>this._onDecorationChanged()));const t=[],i=[];for(let n=0,r=e.children.length;n<r;n++){const s=e.children[n];this._decorationIgnoreSet.has(s.id)||s.uri.toString()===this._editor.getModel().uri.toString()&&(t.push({range:s.range,options:DecorationsManager.DecorationOptions}),i.push(n))}this._editor.changeDecorations(n=>{const r=n.deltaDecorations([],t);for(let s=0;s<r.length;s++)this._decorations.set(r[s],e.children[i[s]])})}_onDecorationChanged(){const e=[],t=this._editor.getModel();if(t){for(const[i,n]of this._decorations){const r=t.getDecorationRange(i);if(!r)continue;let s=!1;if(!Range$2.equalsRange(r,n.range)){if(Range$2.spansMultipleLines(r))s=!0;else{const a=n.range.endColumn-n.range.startColumn,l=r.endColumn-r.startColumn;a!==l&&(s=!0)}s?(this._decorationIgnoreSet.add(n.id),e.push(i)):n.range=r}}for(let i=0,n=e.length;i<n;i++)this._decorations.delete(e[i]);this._editor.removeDecorations(e)}}removeDecorations(){this._editor.removeDecorations([...this._decorations.keys()]),this._decorations.clear()}}DecorationsManager.DecorationOptions=ModelDecorationOptions.register({description:"reference-decoration",stickiness:1,className:"reference-decoration"});class LayoutData{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{}return{ratio:t||.7,heightInLines:i||18}}}class ReferencesTree extends WorkbenchAsyncDataTree{}let ReferenceWidget=class extends PeekViewWidget{constructor(e,t,i,n,r,s,a,l,d,c,u,g){super(e,{showFrame:!1,showArrow:!0,isResizeable:!0,isAccessible:!0,supportOnTitleClick:!0},s),this._defaultTreeKeyboardSupport=t,this.layoutData=i,this._textModelResolverService=r,this._instantiationService=s,this._peekViewService=a,this._uriLabel=l,this._undoRedoService=d,this._keybindingService=c,this._languageService=u,this._languageConfigurationService=g,this._disposeOnNewModel=new DisposableStore,this._callOnDispose=new DisposableStore,this._onDidSelectReference=new Emitter$1,this.onDidSelectReference=this._onDidSelectReference.event,this._dim=new Dimension(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(),dispose(this._preview),dispose(this._previewNotAvailableMessage),dispose(this._tree),dispose(this._previewModelReference),this._splitView.dispose(),super.dispose()}_applyTheme(e){const t=e.getColor(peekViewBorder)||Color.transparent;this.style({arrowColor:t,frameColor:t,headerBackgroundColor:e.getColor(peekViewTitleBackground)||Color.transparent,primaryHeadingColor:e.getColor(peekViewTitleForeground),secondaryHeadingColor:e.getColor(peekViewTitleInfoForeground)})}show(e){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=append$1(e,$$d("div.messages")),hide(this._messageContainer),this._splitView=new SplitView(e,{orientation:1}),this._previewContainer=append$1(e,$$d("div.preview.inline"));const t={scrollBeyondLastLine:!1,scrollbar:{verticalScrollbarSize:14,horizontal:"auto",useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,alwaysConsumeMouseWheel:!0},overviewRulerLanes:2,fixedOverflowWidgets:!0,minimap:{enabled:!1}};this._preview=this._instantiationService.createInstance(EmbeddedCodeEditorWidget,this._previewContainer,t,{},this.editor),hide(this._previewContainer),this._previewNotAvailableMessage=new TextModel(localize("missingPreviewMessage","no preview available"),PLAINTEXT_LANGUAGE_ID,TextModel.DEFAULT_CREATION_OPTIONS,null,this._undoRedoService,this._languageService,this._languageConfigurationService),this._treeContainer=append$1(e,$$d("div.ref-tree.inline"));const i={keyboardSupport:this._defaultTreeKeyboardSupport,accessibilityProvider:new AccessibilityProvider,keyboardNavigationLabelProvider:this._instantiationService.createInstance(StringRepresentationProvider),identityProvider:new IdentityProvider,openOnSingleClick:!0,selectionNavigation:!0,overrideStyles:{listBackground:peekViewResultsBackground}};this._defaultTreeKeyboardSupport&&this._callOnDispose.add(addStandardDisposableListener(this._treeContainer,"keydown",r=>{r.equals(9)&&(this._keybindingService.dispatchEvent(r,r.target),r.stopPropagation())},!0)),this._tree=this._instantiationService.createInstance(ReferencesTree,"ReferencesWidget",this._treeContainer,new Delegate,[this._instantiationService.createInstance(FileReferencesRenderer),this._instantiationService.createInstance(OneReferenceRenderer)],this._instantiationService.createInstance(DataSource),i),this._splitView.addView({onDidChange:Event.None,element:this._previewContainer,minimumSize:200,maximumSize:Number.MAX_VALUE,layout:r=>{this._preview.layout({height:this._dim.height,width:r})}},Sizing.Distribute),this._splitView.addView({onDidChange:Event.None,element:this._treeContainer,minimumSize:100,maximumSize:Number.MAX_VALUE,layout:r=>{this._treeContainer.style.height=`${this._dim.height}px`,this._treeContainer.style.width=`${r}px`,this._tree.layout(this._dim.height,r)}},Sizing.Distribute),this._disposables.add(this._splitView.onDidSashChange(()=>{this._dim.width&&(this.layoutData.ratio=this._splitView.getViewSize(0)/this._dim.width)},void 0));const n=(r,s)=>{r instanceof OneReference&&(s==="show"&&this._revealReference(r,!1),this._onDidSelectReference.fire({element:r,kind:s,source:"tree"}))};this._tree.onDidOpen(r=>{r.sideBySide?n(r.element,"side"):r.editorOptions.pinned?n(r.element,"goto"):n(r.element,"show")}),hide(this._treeContainer)}_onWidth(e){this._dim&&this._doLayoutBody(this._dim.height,e)}_doLayoutBody(e,t){super._doLayoutBody(e,t),this._dim=new Dimension(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=localize("noResults","No results"),show(this._messageContainer),Promise.resolve(void 0)):(hide(this._messageContainer),this._decorationsManager=new DecorationsManager(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(t.detail!==2)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"),show(this._treeContainer),show(this._previewContainer),this._splitView.layout(this._dim.width),this.focusOnReferenceTree(),this._tree.setInput(this._model.groups.length===1?this._model.groups[0]:this._model)):Promise.resolve(void 0)}_getFocusedReference(){const[e]=this._tree.getFocus();if(e instanceof OneReference)return e;if(e instanceof FileReferences&&e.children.length>0)return e.children[0]}revealReference(e){return __awaiter$T(this,void 0,void 0,function*(){yield this._revealReference(e,!1),this._onDidSelectReference.fire({element:e,kind:"goto",source:"tree"})})}_revealReference(e,t){return __awaiter$T(this,void 0,void 0,function*(){if(this._revealedReference===e)return;this._revealedReference=e,e.uri.scheme!==Schemas.inMemory?this.setTitle(basenameOrAuthority(e.uri),this._uriLabel.getUriLabel(dirname(e.uri))):this.setTitle(localize("peekView.alternateTitle","References"));const i=this._textModelResolverService.createModelReference(e.uri);this._tree.getInput()===e.parent?this._tree.reveal(e):(t&&this._tree.reveal(e.parent),yield this._tree.expand(e.parent),this._tree.reveal(e));const n=yield i;if(!this._model){n.dispose();return}dispose(this._previewModelReference);const r=n.object;if(r){const s=this._preview.getModel()===r.textEditorModel?0:1,a=Range$2.lift(e.range).collapseToStart();this._previewModelReference=n,this._preview.setModel(r.textEditorModel),this._preview.setSelection(a),this._preview.revealRangeInCenter(a,s)}else this._preview.setModel(this._previewNotAvailableMessage),n.dispose()})}};ReferenceWidget=__decorate$19([__param$19(3,IThemeService),__param$19(4,ITextModelService),__param$19(5,IInstantiationService),__param$19(6,IPeekViewService),__param$19(7,ILabelService),__param$19(8,IUndoRedoService),__param$19(9,IKeybindingService),__param$19(10,ILanguageService),__param$19(11,ILanguageConfigurationService)],ReferenceWidget);var __decorate$18=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$18=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$S=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},ReferencesController_1;const ctxReferenceSearchVisible=new RawContextKey("referenceSearchVisible",!1,localize("referenceSearchVisible","Whether reference peek is visible, like 'Peek References' or 'Peek Definition'"));let ReferencesController=ReferencesController_1=class{static get(e){return e.getContribution(ReferencesController_1.ID)}constructor(e,t,i,n,r,s,a,l){this._defaultTreeKeyboardSupport=e,this._editor=t,this._editorService=n,this._notificationService=r,this._instantiationService=s,this._storageService=a,this._configurationService=l,this._disposables=new DisposableStore,this._requestIdPool=0,this._ignoreModelChangeEvent=!1,this._referenceSearchVisible=ctxReferenceSearchVisible.bindTo(i)}dispose(){var e,t;this._referenceSearchVisible.reset(),this._disposables.dispose(),(e=this._widget)===null||e===void 0||e.dispose(),(t=this._model)===null||t===void 0||t.dispose(),this._widget=void 0,this._model=void 0}toggleWidget(e,t,i){let n;if(this._widget&&(n=this._widget.position),this.closeWidget(),n&&e.containsPosition(n))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=LayoutData.fromJSON(this._storageService.get(r,0,"{}"));this._widget=this._instantiationService.createInstance(ReferenceWidget,this._editor,this._defaultTreeKeyboardSupport,s),this._widget.setTitle(localize("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(l=>{const{element:d,kind:c}=l;if(d)switch(c){case"open":(l.source!=="editor"||!this._configurationService.getValue("editor.stablePeek"))&&this.openReference(d,!1,!1);break;case"side":this.openReference(d,!0,!1);break;case"goto":i?this._gotoReference(d,!0):this.openReference(d,!1,!0);break}}));const a=++this._requestIdPool;t.then(l=>{var d;if(a!==this._requestIdPool||!this._widget){l.dispose();return}return(d=this._model)===null||d===void 0||d.dispose(),this._model=l,this._widget.setModel(this._model).then(()=>{if(this._widget&&this._model&&this._editor.hasModel()){this._model.isEmpty?this._widget.setMetaTitle(""):this._widget.setMetaTitle(localize("metaTitle.N","{0} ({1})",this._model.title,this._model.references.length));const c=this._editor.getModel().uri,u=new Position$1(e.startLineNumber,e.startColumn),g=this._model.nearestReference(c,u);if(g)return this._widget.setSelection(g).then(()=>{this._widget&&this._editor.getOption(86)==="editor"&&this._widget.focusOnPreviewEditor()})}})},l=>{this._notificationService.error(l)})}changeFocusBetweenPreviewAndReferences(){this._widget&&(this._widget.isPreviewEditorFocused()?this._widget.focusOnReferenceTree():this._widget.focusOnPreviewEditor())}goToNextOrPreviousReference(e){return __awaiter$S(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),r=this._editor.hasTextFocus(),s=this._widget.isPreviewEditorFocused();yield this._widget.setSelection(n),yield this._gotoReference(n,!1),r?this._editor.focus():this._widget&&s&&this._widget.focusOnPreviewEditor()})}revealReference(e){return __awaiter$S(this,void 0,void 0,function*(){!this._editor.hasModel()||!this._model||!this._widget||(yield this._widget.revealReference(e))})}closeWidget(e=!0){var t,i;(t=this._widget)===null||t===void 0||t.dispose(),(i=this._model)===null||i===void 0||i.dispose(),this._referenceSearchVisible.reset(),this._disposables.clear(),this._widget=void 0,this._model=void 0,e&&this._editor.focus(),this._requestIdPool+=1}_gotoReference(e,t){var i;(i=this._widget)===null||i===void 0||i.hide(),this._ignoreModelChangeEvent=!0;const n=Range$2.lift(e.range).collapseToStart();return this._editorService.openCodeEditor({resource:e.uri,options:{selection:n,selectionSource:"code.jump",pinned:t}},this._editor).then(r=>{var s;if(this._ignoreModelChangeEvent=!1,!r||!this._widget){this.closeWidget();return}if(this._editor===r)this._widget.show(n),this._widget.focusOnReferenceTree();else{const a=ReferencesController_1.get(r),l=this._model.clone();this.closeWidget(),r.focus(),a==null||a.toggleWidget(n,createCancelablePromise(d=>Promise.resolve(l)),(s=this._peekMode)!==null&&s!==void 0?s:!1)}},r=>{this._ignoreModelChangeEvent=!1,onUnexpectedError(r)})}openReference(e,t,i){t||this.closeWidget();const{uri:n,range:r}=e;this._editorService.openCodeEditor({resource:n,options:{selection:r,selectionSource:"code.jump",pinned:i}},this._editor,t)}};ReferencesController.ID="editor.contrib.referencesController";ReferencesController=ReferencesController_1=__decorate$18([__param$18(2,IContextKeyService),__param$18(3,ICodeEditorService),__param$18(4,INotificationService),__param$18(5,IInstantiationService),__param$18(6,IStorageService),__param$18(7,IConfigurationService)],ReferencesController);function withController(o,e){const t=getOuterEditor(o);if(!t)return;const i=ReferencesController.get(t);i&&e(i)}KeybindingsRegistry.registerCommandAndKeybindingRule({id:"togglePeekWidgetFocus",weight:100,primary:KeyChord(2089,60),when:ContextKeyExpr.or(ctxReferenceSearchVisible,PeekContext.inPeekEditor),handler(o){withController(o,e=>{e.changeFocusBetweenPreviewAndReferences()})}});KeybindingsRegistry.registerCommandAndKeybindingRule({id:"goToNextReference",weight:90,primary:62,secondary:[70],when:ContextKeyExpr.or(ctxReferenceSearchVisible,PeekContext.inPeekEditor),handler(o){withController(o,e=>{e.goToNextOrPreviousReference(!0)})}});KeybindingsRegistry.registerCommandAndKeybindingRule({id:"goToPreviousReference",weight:90,primary:1086,secondary:[1094],when:ContextKeyExpr.or(ctxReferenceSearchVisible,PeekContext.inPeekEditor),handler(o){withController(o,e=>{e.goToNextOrPreviousReference(!1)})}});CommandsRegistry.registerCommandAlias("goToNextReferenceFromEmbeddedEditor","goToNextReference");CommandsRegistry.registerCommandAlias("goToPreviousReferenceFromEmbeddedEditor","goToPreviousReference");CommandsRegistry.registerCommandAlias("closeReferenceSearchEditor","closeReferenceSearch");CommandsRegistry.registerCommand("closeReferenceSearch",o=>withController(o,e=>e.closeWidget()));KeybindingsRegistry.registerKeybindingRule({id:"closeReferenceSearch",weight:-1,primary:9,secondary:[1033],when:ContextKeyExpr.and(PeekContext.inPeekEditor,ContextKeyExpr.not("config.editor.stablePeek"))});KeybindingsRegistry.registerKeybindingRule({id:"closeReferenceSearch",weight:250,primary:9,secondary:[1033],when:ContextKeyExpr.and(ctxReferenceSearchVisible,ContextKeyExpr.not("config.editor.stablePeek"))});KeybindingsRegistry.registerCommandAndKeybindingRule({id:"revealReference",weight:200,primary:3,mac:{primary:3,secondary:[2066]},when:ContextKeyExpr.and(ctxReferenceSearchVisible,WorkbenchListFocusContextKey,WorkbenchTreeElementCanCollapse.negate(),WorkbenchTreeElementCanExpand.negate()),handler(o){var e;const i=(e=o.get(IListService).lastFocusedList)===null||e===void 0?void 0:e.getFocus();Array.isArray(i)&&i[0]instanceof OneReference&&withController(o,n=>n.revealReference(i[0]))}});KeybindingsRegistry.registerCommandAndKeybindingRule({id:"openReferenceToSide",weight:100,primary:2051,mac:{primary:259},when:ContextKeyExpr.and(ctxReferenceSearchVisible,WorkbenchListFocusContextKey,WorkbenchTreeElementCanCollapse.negate(),WorkbenchTreeElementCanExpand.negate()),handler(o){var e;const i=(e=o.get(IListService).lastFocusedList)===null||e===void 0?void 0:e.getFocus();Array.isArray(i)&&i[0]instanceof OneReference&&withController(o,n=>n.openReference(i[0],!0,!0))}});CommandsRegistry.registerCommand("openReference",o=>{var e;const i=(e=o.get(IListService).lastFocusedList)===null||e===void 0?void 0:e.getFocus();Array.isArray(i)&&i[0]instanceof OneReference&&withController(o,n=>n.openReference(i[0],!1,!0))});var __decorate$17=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$17=function(o,e){return function(t,i){e(t,i,o)}};const ctxHasSymbols=new RawContextKey("hasSymbols",!1,localize("hasSymbols","Whether there are symbol locations that can be navigated via keyboard-only.")),ISymbolNavigationService=createDecorator("ISymbolNavigationService");let SymbolNavigationService=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=ctxHasSymbols.bindTo(e)}reset(){var e,t;this._ctxHasSymbols.reset(),(e=this._currentState)===null||e===void 0||e.dispose(),(t=this._currentMessage)===null||t===void 0||t.dispose(),this._currentModel=void 0,this._currentIdx=-1}put(e){const t=e.parent.parent;if(t.references.length<=1){this.reset();return}this._currentModel=t,this._currentIdx=t.references.indexOf(e),this._ctxHasSymbols.set(!0),this._showMessage();const i=new EditorState(this._editorService),n=i.onDidChange(r=>{if(this._ignoreEditorChange)return;const s=this._editorService.getActiveCodeEditor();if(!s)return;const a=s.getModel(),l=s.getPosition();if(!a||!l)return;let d=!1,c=!1;for(const u of t.references)if(isEqual(u.uri,a.uri))d=!0,c=c||Range$2.containsPosition(u.range,l);else if(d)break;(!d||!c)&&this.reset()});this._currentState=combinedDisposable(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:Range$2.collapseToStart(t.range),selectionRevealType:3}},e).finally(()=>{this._ignoreEditorChange=!1})}_showMessage(){var e;(e=this._currentMessage)===null||e===void 0||e.dispose();const t=this._keybindingService.lookupKeybinding("editor.gotoNextSymbolFromResult"),i=t?localize("location.kb","Symbol {0} of {1}, {2} for next",this._currentIdx+1,this._currentModel.references.length,t.getLabel()):localize("location","Symbol {0} of {1}",this._currentIdx+1,this._currentModel.references.length);this._currentMessage=this._notificationService.status(i)}};SymbolNavigationService=__decorate$17([__param$17(0,IContextKeyService),__param$17(1,ICodeEditorService),__param$17(2,INotificationService),__param$17(3,IKeybindingService)],SymbolNavigationService);registerSingleton(ISymbolNavigationService,SymbolNavigationService,1);registerEditorCommand(new class extends EditorCommand{constructor(){super({id:"editor.gotoNextSymbolFromResult",precondition:ctxHasSymbols,kbOpts:{weight:100,primary:70}})}runEditorCommand(o,e){return o.get(ISymbolNavigationService).revealNext(e)}});KeybindingsRegistry.registerCommandAndKeybindingRule({id:"editor.gotoNextSymbolFromResult.cancel",weight:100,when:ctxHasSymbols,primary:9,handler(o){o.get(ISymbolNavigationService).reset()}});let EditorState=class{constructor(e){this._listener=new Map,this._disposables=new DisposableStore,this._onDidChange=new Emitter$1,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(),dispose(this._listener.values())}_onDidAddEditor(e){this._listener.set(e,combinedDisposable(e.onDidChangeCursorPosition(t=>this._onDidChange.fire({editor:e})),e.onDidChangeModelContent(t=>this._onDidChange.fire({editor:e}))))}_onDidRemoveEditor(e){var t;(t=this._listener.get(e))===null||t===void 0||t.dispose(),this._listener.delete(e)}};EditorState=__decorate$17([__param$17(0,ICodeEditorService)],EditorState);var __awaiter$R=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};function getLocationLinks(o,e,t,i){return __awaiter$R(this,void 0,void 0,function*(){const r=t.ordered(o).map(a=>Promise.resolve(i(a,o,e)).then(void 0,l=>{onUnexpectedExternalError(l)})),s=yield Promise.all(r);return coalesce(s.flat())})}function getDefinitionsAtPosition(o,e,t,i){return getLocationLinks(e,t,o,(n,r,s)=>n.provideDefinition(r,s,i))}function getDeclarationsAtPosition(o,e,t,i){return getLocationLinks(e,t,o,(n,r,s)=>n.provideDeclaration(r,s,i))}function getImplementationsAtPosition(o,e,t,i){return getLocationLinks(e,t,o,(n,r,s)=>n.provideImplementation(r,s,i))}function getTypeDefinitionsAtPosition(o,e,t,i){return getLocationLinks(e,t,o,(n,r,s)=>n.provideTypeDefinition(r,s,i))}function getReferencesAtPosition(o,e,t,i,n){return getLocationLinks(e,t,o,(r,s,a)=>__awaiter$R(this,void 0,void 0,function*(){const l=yield r.provideReferences(s,a,{includeDeclaration:!0},n);if(!i||!l||l.length!==2)return l;const d=yield r.provideReferences(s,a,{includeDeclaration:!1},n);return d&&d.length===1?d:l}))}function _sortedAndDeduped(o){return __awaiter$R(this,void 0,void 0,function*(){const e=yield o(),t=new ReferencesModel(e,""),i=t.references.map(n=>n.link);return t.dispose(),i})}registerModelAndPositionCommand("_executeDefinitionProvider",(o,e,t)=>{const i=o.get(ILanguageFeaturesService),n=getDefinitionsAtPosition(i.definitionProvider,e,t,CancellationToken.None);return _sortedAndDeduped(()=>n)});registerModelAndPositionCommand("_executeTypeDefinitionProvider",(o,e,t)=>{const i=o.get(ILanguageFeaturesService),n=getTypeDefinitionsAtPosition(i.typeDefinitionProvider,e,t,CancellationToken.None);return _sortedAndDeduped(()=>n)});registerModelAndPositionCommand("_executeDeclarationProvider",(o,e,t)=>{const i=o.get(ILanguageFeaturesService),n=getDeclarationsAtPosition(i.declarationProvider,e,t,CancellationToken.None);return _sortedAndDeduped(()=>n)});registerModelAndPositionCommand("_executeReferenceProvider",(o,e,t)=>{const i=o.get(ILanguageFeaturesService),n=getReferencesAtPosition(i.referenceProvider,e,t,!1,CancellationToken.None);return _sortedAndDeduped(()=>n)});registerModelAndPositionCommand("_executeImplementationProvider",(o,e,t)=>{const i=o.get(ILanguageFeaturesService),n=getImplementationsAtPosition(i.implementationProvider,e,t,CancellationToken.None);return _sortedAndDeduped(()=>n)});var __awaiter$Q=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},_a$1,_b,_c,_d,_e,_f,_g,_h;MenuRegistry.appendMenuItem(MenuId.EditorContext,{submenu:MenuId.EditorContextPeek,title:localize("peek.submenu","Peek"),group:"navigation",order:100});class SymbolNavigationAnchor{static is(e){return!e||typeof e!="object"?!1:!!(e instanceof SymbolNavigationAnchor||Position$1.isIPosition(e.position)&&e.model)}constructor(e,t){this.model=e,this.position=t}}class SymbolNavigationAction extends EditorAction2{static all(){return SymbolNavigationAction._allSymbolNavigationCommands.values()}static _patchConfig(e){const t=Object.assign(Object.assign({},e),{f1:!0});if(t.menu)for(const i of Iterable.wrap(t.menu))(i.id===MenuId.EditorContext||i.id===MenuId.EditorContextPeek)&&(i.when=ContextKeyExpr.and(e.precondition,i.when));return t}constructor(e,t){super(SymbolNavigationAction._patchConfig(t)),this.configuration=e,SymbolNavigationAction._allSymbolNavigationCommands.set(t.id,this)}runEditorCommand(e,t,i,n){if(!t.hasModel())return Promise.resolve(void 0);const r=e.get(INotificationService),s=e.get(ICodeEditorService),a=e.get(IEditorProgressService),l=e.get(ISymbolNavigationService),d=e.get(ILanguageFeaturesService),c=e.get(IInstantiationService),u=t.getModel(),g=t.getPosition(),f=SymbolNavigationAnchor.is(i)?i:new SymbolNavigationAnchor(u,g),p=new EditorStateCancellationTokenSource(t,5),m=raceCancellation(this._getLocationModel(d,f.model,f.position,p.token),p.token).then(b=>__awaiter$Q(this,void 0,void 0,function*(){var _;if(!b||p.token.isCancellationRequested)return;alert(b.ariaMessage);let C;if(b.referenceAt(u.uri,g)){const y=this._getAlternativeCommand(t);!SymbolNavigationAction._activeAlternativeCommands.has(y)&&SymbolNavigationAction._allSymbolNavigationCommands.has(y)&&(C=SymbolNavigationAction._allSymbolNavigationCommands.get(y))}const S=b.references.length;if(S===0){if(!this.configuration.muteMessage){const y=u.getWordAtPosition(g);(_=MessageController.get(t))===null||_===void 0||_.showMessage(this._getNoResultFoundMessage(y),g)}}else if(S===1&&C)SymbolNavigationAction._activeAlternativeCommands.add(this.desc.id),c.invokeFunction(y=>C.runEditorCommand(y,t,i,n).finally(()=>{SymbolNavigationAction._activeAlternativeCommands.delete(this.desc.id)}));else return this._onResult(s,l,t,b,n)}),b=>{r.error(b)}).finally(()=>{p.dispose()});return a.showWhile(m,250),m}_onResult(e,t,i,n,r){return __awaiter$Q(this,void 0,void 0,function*(){const s=this._getGoToPreference(i);if(!(i instanceof EmbeddedCodeEditorWidget)&&(this.configuration.openInPeek||s==="peek"&&n.references.length>1))this._openInPeek(i,n,r);else{const a=n.firstReference(),l=n.references.length>1&&s==="gotoAndPeek",d=yield this._openReference(i,e,a,this.configuration.openToSide,!l);l&&d?this._openInPeek(d,n,r):n.dispose(),s==="goto"&&t.put(a)}})}_openReference(e,t,i,n,r){return __awaiter$Q(this,void 0,void 0,function*(){let s;if(isLocationLink(i)&&(s=i.targetSelectionRange),s||(s=i.range),!s)return;const a=yield t.openCodeEditor({resource:i.uri,options:{selection:Range$2.collapseToStart(s),selectionRevealType:3,selectionSource:"code.jump"}},e,n);if(a){if(r){const l=a.getModel(),d=a.createDecorationsCollection([{range:s,options:{description:"symbol-navigate-action-highlight",className:"symbolHighlight"}}]);setTimeout(()=>{a.getModel()===l&&d.clear()},350)}return a}})}_openInPeek(e,t,i){const n=ReferencesController.get(e);n&&e.hasModel()?n.toggleWidget(i??e.getSelection(),createCancelablePromise(r=>Promise.resolve(t)),this.configuration.openInPeek):t.dispose()}}SymbolNavigationAction._allSymbolNavigationCommands=new Map;SymbolNavigationAction._activeAlternativeCommands=new Set;class DefinitionAction extends SymbolNavigationAction{_getLocationModel(e,t,i,n){return __awaiter$Q(this,void 0,void 0,function*(){return new ReferencesModel(yield getDefinitionsAtPosition(e.definitionProvider,t,i,n),localize("def.title","Definitions"))})}_getNoResultFoundMessage(e){return e&&e.word?localize("noResultWord","No definition found for '{0}'",e.word):localize("generic.noResults","No definition found")}_getAlternativeCommand(e){return e.getOption(58).alternativeDefinitionCommand}_getGoToPreference(e){return e.getOption(58).multipleDefinitions}}registerAction2((_a$1=class extends DefinitionAction{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:_a$1.id,title:{value:localize("actions.goToDecl.label","Go to Definition"),original:"Go to Definition",mnemonicTitle:localize({},"Go to &&Definition")},precondition:ContextKeyExpr.and(EditorContextKeys.hasDefinitionProvider,EditorContextKeys.isInWalkThroughSnippet.toNegated()),keybinding:[{when:EditorContextKeys.editorTextFocus,primary:70,weight:100},{when:ContextKeyExpr.and(EditorContextKeys.editorTextFocus,IsWebContext),primary:2118,weight:100}],menu:[{id:MenuId.EditorContext,group:"navigation",order:1.1},{id:MenuId.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:2}]}),CommandsRegistry.registerCommandAlias("editor.action.goToDeclaration",_a$1.id)}},_a$1.id="editor.action.revealDefinition",_a$1));registerAction2((_b=class extends DefinitionAction{constructor(){super({openToSide:!0,openInPeek:!1,muteMessage:!1},{id:_b.id,title:{value:localize("actions.goToDeclToSide.label","Open Definition to the Side"),original:"Open Definition to the Side"},precondition:ContextKeyExpr.and(EditorContextKeys.hasDefinitionProvider,EditorContextKeys.isInWalkThroughSnippet.toNegated()),keybinding:[{when:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,70),weight:100},{when:ContextKeyExpr.and(EditorContextKeys.editorTextFocus,IsWebContext),primary:KeyChord(2089,2118),weight:100}]}),CommandsRegistry.registerCommandAlias("editor.action.openDeclarationToTheSide",_b.id)}},_b.id="editor.action.revealDefinitionAside",_b));registerAction2((_c=class extends DefinitionAction{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:_c.id,title:{value:localize("actions.previewDecl.label","Peek Definition"),original:"Peek Definition"},precondition:ContextKeyExpr.and(EditorContextKeys.hasDefinitionProvider,PeekContext.notInPeekEditor,EditorContextKeys.isInWalkThroughSnippet.toNegated()),keybinding:{when:EditorContextKeys.editorTextFocus,primary:582,linux:{primary:3140},weight:100},menu:{id:MenuId.EditorContextPeek,group:"peek",order:2}}),CommandsRegistry.registerCommandAlias("editor.action.previewDeclaration",_c.id)}},_c.id="editor.action.peekDefinition",_c));class DeclarationAction extends SymbolNavigationAction{_getLocationModel(e,t,i,n){return __awaiter$Q(this,void 0,void 0,function*(){return new ReferencesModel(yield getDeclarationsAtPosition(e.declarationProvider,t,i,n),localize("decl.title","Declarations"))})}_getNoResultFoundMessage(e){return e&&e.word?localize("decl.noResultWord","No declaration found for '{0}'",e.word):localize("decl.generic.noResults","No declaration found")}_getAlternativeCommand(e){return e.getOption(58).alternativeDeclarationCommand}_getGoToPreference(e){return e.getOption(58).multipleDeclarations}}registerAction2((_d=class extends DeclarationAction{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:_d.id,title:{value:localize("actions.goToDeclaration.label","Go to Declaration"),original:"Go to Declaration",mnemonicTitle:localize({},"Go to &&Declaration")},precondition:ContextKeyExpr.and(EditorContextKeys.hasDeclarationProvider,EditorContextKeys.isInWalkThroughSnippet.toNegated()),menu:[{id:MenuId.EditorContext,group:"navigation",order:1.3},{id:MenuId.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}_getNoResultFoundMessage(e){return e&&e.word?localize("decl.noResultWord","No declaration found for '{0}'",e.word):localize("decl.generic.noResults","No declaration found")}},_d.id="editor.action.revealDeclaration",_d));registerAction2(class extends DeclarationAction{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.peekDeclaration",title:{value:localize("actions.peekDecl.label","Peek Declaration"),original:"Peek Declaration"},precondition:ContextKeyExpr.and(EditorContextKeys.hasDeclarationProvider,PeekContext.notInPeekEditor,EditorContextKeys.isInWalkThroughSnippet.toNegated()),menu:{id:MenuId.EditorContextPeek,group:"peek",order:3}})}});class TypeDefinitionAction extends SymbolNavigationAction{_getLocationModel(e,t,i,n){return __awaiter$Q(this,void 0,void 0,function*(){return new ReferencesModel(yield getTypeDefinitionsAtPosition(e.typeDefinitionProvider,t,i,n),localize("typedef.title","Type Definitions"))})}_getNoResultFoundMessage(e){return e&&e.word?localize("goToTypeDefinition.noResultWord","No type definition found for '{0}'",e.word):localize("goToTypeDefinition.generic.noResults","No type definition found")}_getAlternativeCommand(e){return e.getOption(58).alternativeTypeDefinitionCommand}_getGoToPreference(e){return e.getOption(58).multipleTypeDefinitions}}registerAction2((_e=class extends TypeDefinitionAction{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:_e.ID,title:{value:localize("actions.goToTypeDefinition.label","Go to Type Definition"),original:"Go to Type Definition",mnemonicTitle:localize({},"Go to &&Type Definition")},precondition:ContextKeyExpr.and(EditorContextKeys.hasTypeDefinitionProvider,EditorContextKeys.isInWalkThroughSnippet.toNegated()),keybinding:{when:EditorContextKeys.editorTextFocus,primary:0,weight:100},menu:[{id:MenuId.EditorContext,group:"navigation",order:1.4},{id:MenuId.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}},_e.ID="editor.action.goToTypeDefinition",_e));registerAction2((_f=class extends TypeDefinitionAction{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:_f.ID,title:{value:localize("actions.peekTypeDefinition.label","Peek Type Definition"),original:"Peek Type Definition"},precondition:ContextKeyExpr.and(EditorContextKeys.hasTypeDefinitionProvider,PeekContext.notInPeekEditor,EditorContextKeys.isInWalkThroughSnippet.toNegated()),menu:{id:MenuId.EditorContextPeek,group:"peek",order:4}})}},_f.ID="editor.action.peekTypeDefinition",_f));class ImplementationAction extends SymbolNavigationAction{_getLocationModel(e,t,i,n){return __awaiter$Q(this,void 0,void 0,function*(){return new ReferencesModel(yield getImplementationsAtPosition(e.implementationProvider,t,i,n),localize("impl.title","Implementations"))})}_getNoResultFoundMessage(e){return e&&e.word?localize("goToImplementation.noResultWord","No implementation found for '{0}'",e.word):localize("goToImplementation.generic.noResults","No implementation found")}_getAlternativeCommand(e){return e.getOption(58).alternativeImplementationCommand}_getGoToPreference(e){return e.getOption(58).multipleImplementations}}registerAction2((_g=class extends ImplementationAction{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:_g.ID,title:{value:localize("actions.goToImplementation.label","Go to Implementations"),original:"Go to Implementations",mnemonicTitle:localize({},"Go to &&Implementations")},precondition:ContextKeyExpr.and(EditorContextKeys.hasImplementationProvider,EditorContextKeys.isInWalkThroughSnippet.toNegated()),keybinding:{when:EditorContextKeys.editorTextFocus,primary:2118,weight:100},menu:[{id:MenuId.EditorContext,group:"navigation",order:1.45},{id:MenuId.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:4}]})}},_g.ID="editor.action.goToImplementation",_g));registerAction2((_h=class extends ImplementationAction{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:_h.ID,title:{value:localize("actions.peekImplementation.label","Peek Implementations"),original:"Peek Implementations"},precondition:ContextKeyExpr.and(EditorContextKeys.hasImplementationProvider,PeekContext.notInPeekEditor,EditorContextKeys.isInWalkThroughSnippet.toNegated()),keybinding:{when:EditorContextKeys.editorTextFocus,primary:3142,weight:100},menu:{id:MenuId.EditorContextPeek,group:"peek",order:5}})}},_h.ID="editor.action.peekImplementation",_h));class ReferencesAction extends SymbolNavigationAction{_getNoResultFoundMessage(e){return e?localize("references.no","No references found for '{0}'",e.word):localize("references.noGeneric","No references found")}_getAlternativeCommand(e){return e.getOption(58).alternativeReferenceCommand}_getGoToPreference(e){return e.getOption(58).multipleReferences}}registerAction2(class extends ReferencesAction{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:"editor.action.goToReferences",title:{value:localize("goToReferences.label","Go to References"),original:"Go to References",mnemonicTitle:localize({},"Go to &&References")},precondition:ContextKeyExpr.and(EditorContextKeys.hasReferenceProvider,PeekContext.notInPeekEditor,EditorContextKeys.isInWalkThroughSnippet.toNegated()),keybinding:{when:EditorContextKeys.editorTextFocus,primary:1094,weight:100},menu:[{id:MenuId.EditorContext,group:"navigation",order:1.45},{id:MenuId.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:5}]})}_getLocationModel(e,t,i,n){return __awaiter$Q(this,void 0,void 0,function*(){return new ReferencesModel(yield getReferencesAtPosition(e.referenceProvider,t,i,!0,n),localize("ref.title","References"))})}});registerAction2(class extends ReferencesAction{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.referenceSearch.trigger",title:{value:localize("references.action.label","Peek References"),original:"Peek References"},precondition:ContextKeyExpr.and(EditorContextKeys.hasReferenceProvider,PeekContext.notInPeekEditor,EditorContextKeys.isInWalkThroughSnippet.toNegated()),menu:{id:MenuId.EditorContextPeek,group:"peek",order:6}})}_getLocationModel(e,t,i,n){return __awaiter$Q(this,void 0,void 0,function*(){return new ReferencesModel(yield getReferencesAtPosition(e.referenceProvider,t,i,!1,n),localize("ref.title","References"))})}});class GenericGoToLocationAction extends SymbolNavigationAction{constructor(e,t,i){super(e,{id:"editor.action.goToLocation",title:{value:localize("label.generic","Go to Any Symbol"),original:"Go to Any Symbol"},precondition:ContextKeyExpr.and(PeekContext.notInPeekEditor,EditorContextKeys.isInWalkThroughSnippet.toNegated())}),this._references=t,this._gotoMultipleBehaviour=i}_getLocationModel(e,t,i,n){return __awaiter$Q(this,void 0,void 0,function*(){return new ReferencesModel(this._references,localize("generic.title","Locations"))})}_getNoResultFoundMessage(e){return e&&localize("generic.noResult","No results for '{0}'",e.word)||""}_getGoToPreference(e){var t;return(t=this._gotoMultipleBehaviour)!==null&&t!==void 0?t:e.getOption(58).multipleReferences}_getAlternativeCommand(){return""}}CommandsRegistry.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:URI},{name:"position",description:"The position at which to start",constraint:Position$1.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:(o,e,t,i,n,r,s)=>__awaiter$Q(void 0,void 0,void 0,function*(){assertType(URI.isUri(e)),assertType(Position$1.isIPosition(t)),assertType(Array.isArray(i)),assertType(typeof n>"u"||typeof n=="string"),assertType(typeof s>"u"||typeof s=="boolean");const a=o.get(ICodeEditorService),l=yield a.openCodeEditor({resource:e},a.getFocusedCodeEditor());if(isCodeEditor(l))return l.setPosition(t),l.revealPositionInCenterIfOutsideViewport(t,0),l.invokeWithinContext(d=>{const c=new class extends GenericGoToLocationAction{_getNoResultFoundMessage(u){return r||super._getNoResultFoundMessage(u)}}({muteMessage:!r,openInPeek:!!s,openToSide:!1},i,n);d.get(IInstantiationService).invokeFunction(c.run.bind(c),l)})})});CommandsRegistry.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:URI},{name:"position",description:"The position at which to start",constraint:Position$1.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:(o,e,t,i,n)=>__awaiter$Q(void 0,void 0,void 0,function*(){o.get(ICommandService).executeCommand("editor.action.goToLocations",e,t,i,n,void 0,!0)})});CommandsRegistry.registerCommand({id:"editor.action.findReferences",handler:(o,e,t)=>{assertType(URI.isUri(e)),assertType(Position$1.isIPosition(t));const i=o.get(ILanguageFeaturesService),n=o.get(ICodeEditorService);return n.openCodeEditor({resource:e},n.getFocusedCodeEditor()).then(r=>{if(!isCodeEditor(r)||!r.hasModel())return;const s=ReferencesController.get(r);if(!s)return;const a=createCancelablePromise(d=>getReferencesAtPosition(i.referenceProvider,r.getModel(),Position$1.lift(t),!1,d).then(c=>new ReferencesModel(c,localize("ref.title","References")))),l=new Range$2(t.lineNumber,t.column,t.lineNumber,t.column);return Promise.resolve(s.toggleWidget(l,a,!1))})}});CommandsRegistry.registerCommandAlias("editor.action.showReferences","editor.action.peekLocations");var __decorate$16=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$16=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$P=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},GotoDefinitionAtPositionEditorContribution_1;let GotoDefinitionAtPositionEditorContribution=GotoDefinitionAtPositionEditorContribution_1=class{constructor(e,t,i,n){this.textModelResolverService=t,this.languageService=i,this.languageFeaturesService=n,this.toUnhook=new DisposableStore,this.toUnhookForKeyboard=new DisposableStore,this.currentWordAtPosition=null,this.previousPromise=null,this.editor=e,this.linkDecorations=this.editor.createDecorationsCollection();const r=new ClickLinkGesture(e);this.toUnhook.add(r),this.toUnhook.add(r.onMouseMoveOrRelevantKeyDown(([s,a])=>{this.startFindDefinitionFromMouse(s,a??void 0)})),this.toUnhook.add(r.onExecute(s=>{this.isEnabled(s)&&this.gotoDefinition(s.target.position,s.hasSideBySideModifier).catch(a=>{onUnexpectedError(a)}).finally(()=>{this.removeLinkDecorations()})})),this.toUnhook.add(r.onCancel(()=>{this.removeLinkDecorations(),this.currentWordAtPosition=null}))}static get(e){return e.getContribution(GotoDefinitionAtPositionEditorContribution_1.ID)}startFindDefinitionFromCursor(e){return __awaiter$P(this,void 0,void 0,function*(){yield this.startFindDefinition(e),this.toUnhookForKeyboard.add(this.editor.onDidChangeCursorPosition(()=>{this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear()})),this.toUnhookForKeyboard.add(this.editor.onKeyDown(t=>{t&&(this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear())}))})}startFindDefinitionFromMouse(e,t){if(e.target.type===9&&this.linkDecorations.length>0)return;if(!this.editor.hasModel()||!this.isEnabled(e,t)){this.currentWordAtPosition=null,this.removeLinkDecorations();return}const i=e.target.position;this.startFindDefinition(i)}startFindDefinition(e){var t;return __awaiter$P(this,void 0,void 0,function*(){this.toUnhookForKeyboard.clear();const i=e?(t=this.editor.getModel())===null||t===void 0?void 0:t.getWordAtPosition(e):null;if(!i){this.currentWordAtPosition=null,this.removeLinkDecorations();return}if(this.currentWordAtPosition&&this.currentWordAtPosition.startColumn===i.startColumn&&this.currentWordAtPosition.endColumn===i.endColumn&&this.currentWordAtPosition.word===i.word)return;this.currentWordAtPosition=i;const n=new EditorState$1(this.editor,15);this.previousPromise&&(this.previousPromise.cancel(),this.previousPromise=null),this.previousPromise=createCancelablePromise(a=>this.findDefinition(e,a));let r;try{r=yield this.previousPromise}catch(a){onUnexpectedError(a);return}if(!r||!r.length||!n.validate(this.editor)){this.removeLinkDecorations();return}const s=r[0].originSelectionRange?Range$2.lift(r[0].originSelectionRange):new Range$2(e.lineNumber,i.startColumn,e.lineNumber,i.endColumn);if(r.length>1){let a=s;for(const{originSelectionRange:l}of r)l&&(a=Range$2.plusRange(a,l));this.addDecoration(a,new MarkdownString().appendText(localize("multipleResults","Click to show {0} definitions.",r.length)))}else{const a=r[0];if(!a.uri)return;this.textModelResolverService.createModelReference(a.uri).then(l=>{if(!l.object||!l.object.textEditorModel){l.dispose();return}const{object:{textEditorModel:d}}=l,{startLineNumber:c}=a.range;if(c<1||c>d.getLineCount()){l.dispose();return}const u=this.getPreviewValue(d,c,a),g=this.languageService.guessLanguageIdByFilepathOrFirstLine(d.uri);this.addDecoration(s,u?new MarkdownString().appendCodeblock(g||"",u):void 0),l.dispose()})}})}getPreviewValue(e,t,i){let n=i.range;return n.endLineNumber-n.startLineNumber>=GotoDefinitionAtPositionEditorContribution_1.MAX_SOURCE_PREVIEW_LINES&&(n=this.getPreviewRangeBasedOnIndentation(e,t)),this.stripIndentationFromPreviewRange(e,t,n)}stripIndentationFromPreviewRange(e,t,i){let r=e.getLineFirstNonWhitespaceColumn(t);for(let a=t+1;a<i.endLineNumber;a++){const l=e.getLineFirstNonWhitespaceColumn(a);r=Math.min(r,l)}return e.getValueInRange(i).replace(new RegExp(`^\\s{${r-1}}`,"gm"),"").trim()}getPreviewRangeBasedOnIndentation(e,t){const i=e.getLineFirstNonWhitespaceColumn(t),n=Math.min(e.getLineCount(),t+GotoDefinitionAtPositionEditorContribution_1.MAX_SOURCE_PREVIEW_LINES);let r=t+1;for(;r<n;r++){const s=e.getLineFirstNonWhitespaceColumn(r);if(i===s)break}return new Range$2(t,1,r+1,1)}addDecoration(e,t){const i={range:e,options:{description:"goto-definition-link",inlineClassName:"goto-definition-link",hoverMessage:t}};this.linkDecorations.set([i])}removeLinkDecorations(){this.linkDecorations.clear()}isEnabled(e,t){var i;return this.editor.hasModel()&&e.isLeftClick&&e.isNoneOrSingleMouseDown&&e.target.type===6&&!(((i=e.target.detail.injectedText)===null||i===void 0?void 0:i.options)instanceof ModelDecorationInjectedTextOptions)&&(e.hasTriggerModifier||(t?t.keyCodeIsTriggerKey:!1))&&this.languageFeaturesService.definitionProvider.has(this.editor.getModel())}findDefinition(e,t){const i=this.editor.getModel();return i?getDefinitionsAtPosition(this.languageFeaturesService.definitionProvider,i,e,t):Promise.resolve(null)}gotoDefinition(e,t){return this.editor.setPosition(e),this.editor.invokeWithinContext(i=>{const n=!t&&this.editor.getOption(87)&&!this.isInPeekEditor(i);return new DefinitionAction({openToSide:t,openInPeek:n,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(i)})}isInPeekEditor(e){const t=e.get(IContextKeyService);return PeekContext.inPeekEditor.getValue(t)}dispose(){this.toUnhook.dispose(),this.toUnhookForKeyboard.dispose()}};GotoDefinitionAtPositionEditorContribution.ID="editor.contrib.gotodefinitionatposition";GotoDefinitionAtPositionEditorContribution.MAX_SOURCE_PREVIEW_LINES=8;GotoDefinitionAtPositionEditorContribution=GotoDefinitionAtPositionEditorContribution_1=__decorate$16([__param$16(1,ITextModelService),__param$16(2,ILanguageService),__param$16(3,ILanguageFeaturesService)],GotoDefinitionAtPositionEditorContribution);registerEditorContribution(GotoDefinitionAtPositionEditorContribution.ID,GotoDefinitionAtPositionEditorContribution,2);const $$5=$$d;class HoverWidget extends Disposable{constructor(){super(),this.containerDomNode=document.createElement("div"),this.containerDomNode.className="monaco-hover",this.containerDomNode.tabIndex=0,this.containerDomNode.setAttribute("role","tooltip"),this.contentsDomNode=document.createElement("div"),this.contentsDomNode.className="monaco-hover-content",this.scrollbar=this._register(new DomScrollableElement(this.contentsDomNode,{consumeMouseWheelIfScrollbarIsNeeded:!0})),this.containerDomNode.appendChild(this.scrollbar.getDomNode())}onContentsChanged(){this.scrollbar.scanDomNode()}}class HoverAction extends Disposable{static render(e,t,i){return new HoverAction(e,t,i)}constructor(e,t,i){super(),this.actionContainer=append$1(e,$$5("div.action-container")),this.actionContainer.setAttribute("tabindex","0"),this.action=append$1(this.actionContainer,$$5("a.action")),this.action.setAttribute("role","button"),t.iconClass&&append$1(this.action,$$5(`span.icon.${t.iconClass}`));const n=append$1(this.action,$$5("span"));n.textContent=i?`${t.label} (${i})`:t.label,this._register(addDisposableListener(this.actionContainer,EventType$1.CLICK,r=>{r.stopPropagation(),r.preventDefault(),t.run(this.actionContainer)})),this._register(addDisposableListener(this.actionContainer,EventType$1.KEY_DOWN,r=>{const s=new StandardKeyboardEvent(r);(s.equals(3)||s.equals(10))&&(r.stopPropagation(),r.preventDefault(),t.run(this.actionContainer))})),this.setEnabled(!0)}setEnabled(e){e?(this.actionContainer.classList.remove("disabled"),this.actionContainer.removeAttribute("aria-disabled")):(this.actionContainer.classList.add("disabled"),this.actionContainer.setAttribute("aria-disabled","true"))}}function getHoverAccessibleViewHint(o,e){return o&&e?localize("acessibleViewHint","Inspect this in the accessible view with {0}.",e):o?localize("acessibleViewHintNoKbOpen","Inspect this in the accessible view via the command Open Accessible View which is currently not triggerable via keybinding."):""}var __awaiter$O=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},__asyncValues$1=function(o){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=o[Symbol.asyncIterator],t;return e?e.call(o):(o=typeof __values=="function"?__values(o):o[Symbol.iterator](),t={},i("next"),i("throw"),i("return"),t[Symbol.asyncIterator]=function(){return this},t);function i(r){t[r]=o[r]&&function(s){return new Promise(function(a,l){s=o[r](s),n(a,l,s.done,s.value)})}}function n(r,s,a,l){Promise.resolve(l).then(function(d){r({value:d,done:a})},s)}};let HoverResult$1=class{constructor(e,t,i){this.value=e,this.isComplete=t,this.hasLoadingMessage=i}};class HoverOperation extends Disposable{constructor(e,t){super(),this._editor=e,this._computer=t,this._onResult=this._register(new Emitter$1),this.onResult=this._onResult.event,this._firstWaitScheduler=this._register(new RunOnceScheduler(()=>this._triggerAsyncComputation(),0)),this._secondWaitScheduler=this._register(new RunOnceScheduler(()=>this._triggerSyncComputation(),0)),this._loadingMessageScheduler=this._register(new RunOnceScheduler(()=>this._triggerLoadingMessage(),0)),this._state=0,this._asyncIterable=null,this._asyncIterableDone=!1,this._result=[]}dispose(){this._asyncIterable&&(this._asyncIterable.cancel(),this._asyncIterable=null),super.dispose()}get _hoverTime(){return this._editor.getOption(60).delay}get _firstWaitTime(){return this._hoverTime/2}get _secondWaitTime(){return this._hoverTime-this._firstWaitTime}get _loadingMessageTime(){return 3*this._hoverTime}_setState(e,t=!0){this._state=e,t&&this._fireResult()}_triggerAsyncComputation(){this._setState(2),this._secondWaitScheduler.schedule(this._secondWaitTime),this._computer.computeAsync?(this._asyncIterableDone=!1,this._asyncIterable=createCancelableAsyncIterable(e=>this._computer.computeAsync(e)),__awaiter$O(this,void 0,void 0,function*(){var e,t,i,n;try{try{for(var r=!0,s=__asyncValues$1(this._asyncIterable),a;a=yield s.next(),e=a.done,!e;r=!0){n=a.value,r=!1;const l=n;l&&(this._result.push(l),this._fireResult())}}catch(l){t={error:l}}finally{try{!r&&!e&&(i=s.return)&&(yield i.call(s))}finally{if(t)throw t.error}}this._asyncIterableDone=!0,(this._state===3||this._state===4)&&this._setState(0)}catch(l){onUnexpectedError(l)}})):this._asyncIterableDone=!0}_triggerSyncComputation(){this._computer.computeSync&&(this._result=this._result.concat(this._computer.computeSync())),this._setState(this._asyncIterableDone?0:3)}_triggerLoadingMessage(){this._state===3&&this._setState(4)}_fireResult(){if(this._state===1||this._state===2)return;const e=this._state===0,t=this._state===4;this._onResult.fire(new HoverResult$1(this._result.slice(0),e,t))}start(e){if(e===0)this._state===0&&(this._setState(1),this._firstWaitScheduler.schedule(this._firstWaitTime),this._loadingMessageScheduler.schedule(this._loadingMessageTime));else switch(this._state){case 0:this._triggerAsyncComputation(),this._secondWaitScheduler.cancel(),this._triggerSyncComputation();break;case 2:this._secondWaitScheduler.cancel(),this._triggerSyncComputation();break}}cancel(){this._firstWaitScheduler.cancel(),this._secondWaitScheduler.cancel(),this._loadingMessageScheduler.cancel(),this._asyncIterable&&(this._asyncIterable.cancel(),this._asyncIterable=null),this._result=[],this._setState(0,!1)}}class HoverRangeAnchor{constructor(e,t,i,n){this.priority=e,this.range=t,this.initialMousePosX=i,this.initialMousePosY=n,this.type=1}equals(e){return e.type===1&&this.range.equalsRange(e.range)}canAdoptVisibleHover(e,t){return e.type===1&&t.lineNumber===this.range.startLineNumber}}class HoverForeignElementAnchor{constructor(e,t,i,n,r,s){this.priority=e,this.owner=t,this.range=i,this.initialMousePosX=n,this.initialMousePosY=r,this.supportsMarkerHover=s,this.type=2}equals(e){return e.type===2&&this.owner===e.owner}canAdoptVisibleHover(e,t){return e.type===2&&this.owner===e.owner}}const HoverParticipantRegistry=new class{constructor(){this._participants=[]}register(e){this._participants.push(e)}getAll(){return this._participants}};class ResizableHTMLElement{constructor(){this._onDidWillResize=new Emitter$1,this.onDidWillResize=this._onDidWillResize.event,this._onDidResize=new Emitter$1,this.onDidResize=this._onDidResize.event,this._sashListener=new DisposableStore,this._size=new Dimension(0,0),this._minSize=new Dimension(0,0),this._maxSize=new Dimension(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),this.domNode=document.createElement("div"),this._eastSash=new Sash(this.domNode,{getVerticalSashLeft:()=>this._size.width},{orientation:0}),this._westSash=new Sash(this.domNode,{getVerticalSashLeft:()=>0},{orientation:0}),this._northSash=new Sash(this.domNode,{getHorizontalSashTop:()=>0},{orientation:1,orthogonalEdge:OrthogonalEdge.North}),this._southSash=new Sash(this.domNode,{getHorizontalSashTop:()=>this._size.height},{orientation:1,orthogonalEdge:OrthogonalEdge.South}),this._northSash.orthogonalStartSash=this._westSash,this._northSash.orthogonalEndSash=this._eastSash,this._southSash.orthogonalStartSash=this._westSash,this._southSash.orthogonalEndSash=this._eastSash;let e,t=0,i=0;this._sashListener.add(Event.any(this._northSash.onDidStart,this._eastSash.onDidStart,this._southSash.onDidStart,this._westSash.onDidStart)(()=>{e===void 0&&(this._onDidWillResize.fire(),e=this._size,t=0,i=0)})),this._sashListener.add(Event.any(this._northSash.onDidEnd,this._eastSash.onDidEnd,this._southSash.onDidEnd,this._westSash.onDidEnd)(()=>{e!==void 0&&(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(Event.any(this._eastSash.onDidReset,this._westSash.onDidReset)(n=>{this._preferredSize&&(this.layout(this._size.height,this._preferredSize.width),this._onDidResize.fire({dimension:this._size,done:!0}))})),this._sashListener.add(Event.any(this._northSash.onDidReset,this._southSash.onDidReset)(n=>{this._preferredSize&&(this.layout(this._preferredSize.height,this._size.width),this._onDidResize.fire({dimension:this._size,done:!0}))}))}dispose(){this._northSash.dispose(),this._southSash.dispose(),this._eastSash.dispose(),this._westSash.dispose(),this._sashListener.dispose(),this._onDidResize.dispose(),this._onDidWillResize.dispose(),this.domNode.remove()}enableSashes(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:r,width:s}=this._maxSize;e=Math.max(i,Math.min(r,e)),t=Math.max(n,Math.min(s,t));const a=new Dimension(t,e);Dimension.equals(a,this._size)||(this.domNode.style.height=e+"px",this.domNode.style.width=t+"px",this._size=a,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}}const TOP_HEIGHT=30,BOTTOM_HEIGHT=24;class ResizableContentWidget extends Disposable{constructor(e,t=new Dimension(10,10)){super(),this._editor=e,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._resizableNode=this._register(new ResizableHTMLElement),this._contentPosition=null,this._isResizing=!1,this._resizableNode.domNode.style.position="absolute",this._resizableNode.minSize=Dimension.lift(t),this._resizableNode.layout(t.height,t.width),this._resizableNode.enableSashes(!0,!0,!0,!0),this._register(this._resizableNode.onDidResize(i=>{this._resize(new Dimension(i.dimension.width,i.dimension.height)),i.done&&(this._isResizing=!1)})),this._register(this._resizableNode.onDidWillResize(()=>{this._isResizing=!0}))}get isResizing(){return this._isResizing}getDomNode(){return this._resizableNode.domNode}getPosition(){return this._contentPosition}get position(){var e;return!((e=this._contentPosition)===null||e===void 0)&&e.position?Position$1.lift(this._contentPosition.position):void 0}_availableVerticalSpaceAbove(e){const t=this._editor.getDomNode(),i=this._editor.getScrolledVisiblePosition(e);return!t||!i?void 0:getDomNodePagePosition(t).top+i.top-TOP_HEIGHT}_availableVerticalSpaceBelow(e){const t=this._editor.getDomNode(),i=this._editor.getScrolledVisiblePosition(e);if(!t||!i)return;const n=getDomNodePagePosition(t),r=getClientArea(t.ownerDocument.body),s=n.top+i.top+i.height;return r.height-s-BOTTOM_HEIGHT}_findPositionPreference(e,t){var i,n;const r=Math.min((i=this._availableVerticalSpaceBelow(t))!==null&&i!==void 0?i:1/0,e),s=Math.min((n=this._availableVerticalSpaceAbove(t))!==null&&n!==void 0?n:1/0,e),a=Math.min(Math.max(s,r),e),l=Math.min(e,a);let d;return this._editor.getOption(60).above?d=l<=s?1:2:d=l<=r?2:1,d===1?this._resizableNode.enableSashes(!0,!0,!1,!1):this._resizableNode.enableSashes(!1,!0,!0,!1),d}_resize(e){this._resizableNode.layout(e.height,e.width)}}var __decorate$15=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$15=function(o,e){return function(t,i){e(t,i,o)}},ContentHoverController_1,ContentHoverWidget_1;const $$4=$$d;let ContentHoverController=ContentHoverController_1=class extends Disposable{constructor(e,t,i){super(),this._editor=e,this._instantiationService=t,this._keybindingService=i,this._currentResult=null,this._widget=this._register(this._instantiationService.createInstance(ContentHoverWidget,this._editor)),this._participants=[];for(const n of HoverParticipantRegistry.getAll())this._participants.push(this._instantiationService.createInstance(n,this._editor));this._participants.sort((n,r)=>n.hoverOrdinal-r.hoverOrdinal),this._computer=new ContentHoverComputer(this._editor,this._participants),this._hoverOperation=this._register(new HoverOperation(this._editor,this._computer)),this._register(this._hoverOperation.onResult(n=>{if(!this._computer.anchor)return;const r=n.hasLoadingMessage?this._addLoadingMessage(n.value):n.value;this._withResult(new HoverResult(this._computer.anchor,r,n.isComplete))})),this._register(addStandardDisposableListener(this._widget.getDomNode(),"keydown",n=>{n.equals(9)&&this.hide()})),this._register(TokenizationRegistry.onDidChange(()=>{this._widget.position&&this._currentResult&&this._setCurrentResult(this._currentResult)}))}get widget(){return this._widget}maybeShowAt(e){if(this._widget.isResizing)return!0;const t=[];for(const n of this._participants)if(n.suggestHoverAnchor){const r=n.suggestHoverAnchor(e);r&&t.push(r)}const i=e.target;if(i.type===6&&t.push(new HoverRangeAnchor(0,i.range,e.event.posx,e.event.posy)),i.type===7){const n=this._editor.getOption(50).typicalHalfwidthCharacterWidth/2;!i.detail.isAfterLines&&typeof i.detail.horizontalDistanceToText=="number"&&i.detail.horizontalDistanceToText<n&&t.push(new HoverRangeAnchor(0,i.range,e.event.posx,e.event.posy))}return t.length===0?this._startShowingOrUpdateHover(null,0,0,!1,e):(t.sort((n,r)=>r.priority-n.priority),this._startShowingOrUpdateHover(t[0],0,0,!1,e))}startShowingAtRange(e,t,i,n){this._startShowingOrUpdateHover(new HoverRangeAnchor(0,e,void 0,void 0),t,i,n,null)}_startShowingOrUpdateHover(e,t,i,n,r){return!this._widget.position||!this._currentResult?e?(this._startHoverOperationIfNecessary(e,t,i,n,!1),!0):!1:this._editor.getOption(60).sticky&&r&&this._widget.isMouseGettingCloser(r.event.posx,r.event.posy)?(e&&this._startHoverOperationIfNecessary(e,t,i,n,!0),!0):e?e&&this._currentResult.anchor.equals(e)?!0:e.canAdoptVisibleHover(this._currentResult.anchor,this._widget.position)?(this._setCurrentResult(this._currentResult.filter(e)),this._startHoverOperationIfNecessary(e,t,i,n,!1),!0):(this._setCurrentResult(null),this._startHoverOperationIfNecessary(e,t,i,n,!1),!0):(this._setCurrentResult(null),!1)}_startHoverOperationIfNecessary(e,t,i,n,r){this._computer.anchor&&this._computer.anchor.equals(e)||(this._hoverOperation.cancel(),this._computer.anchor=e,this._computer.shouldFocus=n,this._computer.source=i,this._computer.insistOnKeepingHoverVisible=r,this._hoverOperation.start(t))}_setCurrentResult(e){this._currentResult!==e&&(e&&e.messages.length===0&&(e=null),this._currentResult=e,this._currentResult?this._renderMessages(this._currentResult.anchor,this._currentResult.messages):this._widget.hide())}hide(){this._computer.anchor=null,this._hoverOperation.cancel(),this._setCurrentResult(null)}get isColorPickerVisible(){return this._widget.isColorPickerVisible}get isVisibleFromKeyboard(){return this._widget.isVisibleFromKeyboard}get isVisible(){return this._widget.isVisible}get isFocused(){return this._widget.isFocused}get isResizing(){return this._widget.isResizing}containsNode(e){return e?this._widget.getDomNode().contains(e):!1}_addLoadingMessage(e){if(this._computer.anchor){for(const t of this._participants)if(t.createLoadingMessage){const i=t.createLoadingMessage(this._computer.anchor);if(i)return e.slice(0).concat([i])}}return e}_withResult(e){this._widget.position&&this._currentResult&&this._currentResult.isComplete&&(!e.isComplete||this._computer.insistOnKeepingHoverVisible&&e.messages.length===0)||this._setCurrentResult(e)}_renderMessages(e,t){const{showAtPosition:i,showAtSecondaryPosition:n,highlightRange:r}=ContentHoverController_1.computeHoverRanges(this._editor,e.range,t),s=new DisposableStore,a=s.add(new EditorHoverStatusBar(this._keybindingService)),l=document.createDocumentFragment();let d=null;const c={fragment:l,statusBar:a,setColorPicker:g=>d=g,onContentsChanged:()=>this._widget.onContentsChanged(),setMinimumDimensions:g=>this._widget.setMinimumDimensions(g),hide:()=>this.hide()};for(const g of this._participants){const f=t.filter(p=>p.owner===g);f.length>0&&s.add(g.renderHoverParts(c,f))}const u=t.some(g=>g.isBeforeContent);if(a.hasContent&&l.appendChild(a.hoverElement),l.hasChildNodes()){if(r){const g=this._editor.createDecorationsCollection();g.set([{range:r,options:ContentHoverController_1._DECORATION_OPTIONS}]),s.add(toDisposable(()=>{g.clear()}))}this._widget.showAt(l,new ContentHoverVisibleData(d,i,n,this._editor.getOption(60).above,this._computer.shouldFocus,this._computer.source,u,e.initialMousePosX,e.initialMousePosY,s))}else s.dispose()}static computeHoverRanges(e,t,i){let n=1;if(e.hasModel()){const d=e._getViewModel(),c=d.coordinatesConverter,u=c.convertModelRangeToViewRange(t),g=new Position$1(u.startLineNumber,d.getLineMinColumn(u.startLineNumber));n=c.convertViewPositionToModelPosition(g).column}const r=t.startLineNumber;let s=t.startColumn,a=i[0].range,l=null;for(const d of i)a=Range$2.plusRange(a,d.range),d.range.startLineNumber===r&&d.range.endLineNumber===r&&(s=Math.max(Math.min(s,d.range.startColumn),n)),d.forceShowAtRange&&(l=d.range);return{showAtPosition:l?l.getStartPosition():new Position$1(r,t.startColumn),showAtSecondaryPosition:l?l.getStartPosition():new Position$1(r,s),highlightRange:a}}focus(){this._widget.focus()}scrollUp(){this._widget.scrollUp()}scrollDown(){this._widget.scrollDown()}scrollLeft(){this._widget.scrollLeft()}scrollRight(){this._widget.scrollRight()}pageUp(){this._widget.pageUp()}pageDown(){this._widget.pageDown()}goToTop(){this._widget.goToTop()}goToBottom(){this._widget.goToBottom()}};ContentHoverController._DECORATION_OPTIONS=ModelDecorationOptions.register({description:"content-hover-highlight",className:"hoverHighlight"});ContentHoverController=ContentHoverController_1=__decorate$15([__param$15(1,IInstantiationService),__param$15(2,IKeybindingService)],ContentHoverController);class HoverResult{constructor(e,t,i){this.anchor=e,this.messages=t,this.isComplete=i}filter(e){const t=this.messages.filter(i=>i.isValidForHoverAnchor(e));return t.length===this.messages.length?this:new FilteredHoverResult(this,this.anchor,t,this.isComplete)}}class FilteredHoverResult extends HoverResult{constructor(e,t,i,n){super(t,i,n),this.original=e}filter(e){return this.original.filter(e)}}class ContentHoverVisibleData{constructor(e,t,i,n,r,s,a,l,d,c){this.colorPicker=e,this.showAtPosition=t,this.showAtSecondaryPosition=i,this.preferAbove=n,this.stoleFocus=r,this.source=s,this.isBeforeContent=a,this.initialMousePosX=l,this.initialMousePosY=d,this.disposables=c,this.closestMouseDistance=void 0}}const HORIZONTAL_SCROLLING_BY=30,SCROLLBAR_WIDTH=10,CONTAINER_HEIGHT_PADDING=6;let ContentHoverWidget=ContentHoverWidget_1=class extends ResizableContentWidget{get isColorPickerVisible(){var e;return!!(!((e=this._visibleData)===null||e===void 0)&&e.colorPicker)}get isVisibleFromKeyboard(){var e;return((e=this._visibleData)===null||e===void 0?void 0:e.source)===1}get isVisible(){var e;return(e=this._hoverVisibleKey.get())!==null&&e!==void 0?e:!1}get isFocused(){var e;return(e=this._hoverFocusedKey.get())!==null&&e!==void 0?e:!1}constructor(e,t,i,n,r){const s=e.getOption(66)+8,a=150,l=new Dimension(a,s);super(e,l),this._configurationService=i,this._accessibilityService=n,this._keybindingService=r,this._hover=this._register(new HoverWidget),this._minimumSize=l,this._hoverVisibleKey=EditorContextKeys.hoverVisible.bindTo(t),this._hoverFocusedKey=EditorContextKeys.hoverFocused.bindTo(t),append$1(this._resizableNode.domNode,this._hover.containerDomNode),this._resizableNode.domNode.style.zIndex="50",this._register(this._editor.onDidLayoutChange(()=>this._layout())),this._register(this._editor.onDidChangeConfiguration(c=>{c.hasChanged(50)&&this._updateFont()}));const d=this._register(trackFocus(this._resizableNode.domNode));this._register(d.onDidFocus(()=>{this._hoverFocusedKey.set(!0)})),this._register(d.onDidBlur(()=>{this._hoverFocusedKey.set(!1)})),this._setHoverData(void 0),this._layout(),this._editor.addContentWidget(this)}dispose(){var e;super.dispose(),(e=this._visibleData)===null||e===void 0||e.disposables.dispose(),this._editor.removeContentWidget(this)}getId(){return ContentHoverWidget_1.ID}static _applyDimensions(e,t,i){const n=typeof t=="number"?`${t}px`:t,r=typeof i=="number"?`${i}px`:i;e.style.width=n,e.style.height=r}_setContentsDomNodeDimensions(e,t){const i=this._hover.contentsDomNode;return ContentHoverWidget_1._applyDimensions(i,e,t)}_setContainerDomNodeDimensions(e,t){const i=this._hover.containerDomNode;return ContentHoverWidget_1._applyDimensions(i,e,t)}_setHoverWidgetDimensions(e,t){this._setContentsDomNodeDimensions(e,t),this._setContainerDomNodeDimensions(e,t),this._layoutContentWidget()}static _applyMaxDimensions(e,t,i){const n=typeof t=="number"?`${t}px`:t,r=typeof i=="number"?`${i}px`:i;e.style.maxWidth=n,e.style.maxHeight=r}_setHoverWidgetMaxDimensions(e,t){ContentHoverWidget_1._applyMaxDimensions(this._hover.contentsDomNode,e,t),ContentHoverWidget_1._applyMaxDimensions(this._hover.containerDomNode,e,t),this._hover.containerDomNode.style.setProperty("--vscode-hover-maxWidth",typeof e=="number"?`${e}px`:e),this._layoutContentWidget()}_hasHorizontalScrollbar(){const e=this._hover.scrollbar.getScrollDimensions();return e.scrollWidth>e.width}_adjustContentsBottomPadding(){const e=this._hover.contentsDomNode,t=`${this._hover.scrollbar.options.horizontalScrollbarSize}px`;e.style.paddingBottom!==t&&(e.style.paddingBottom=t)}_setAdjustedHoverWidgetDimensions(e){this._setHoverWidgetMaxDimensions("none","none");const t=e.width,i=e.height;this._setHoverWidgetDimensions(t,i),this._hasHorizontalScrollbar()&&(this._adjustContentsBottomPadding(),this._setContentsDomNodeDimensions(t,i-SCROLLBAR_WIDTH))}_updateResizableNodeMaxDimensions(){var e,t;const i=(e=this._findMaximumRenderingWidth())!==null&&e!==void 0?e:1/0,n=(t=this._findMaximumRenderingHeight())!==null&&t!==void 0?t:1/0;this._resizableNode.maxSize=new Dimension(i,n),this._setHoverWidgetMaxDimensions(i,n)}_resize(e){var t,i;ContentHoverWidget_1._lastDimensions=new Dimension(e.width,e.height),this._setAdjustedHoverWidgetDimensions(e),this._resizableNode.layout(e.height,e.width),this._updateResizableNodeMaxDimensions(),this._hover.scrollbar.scanDomNode(),this._editor.layoutContentWidget(this),(i=(t=this._visibleData)===null||t===void 0?void 0:t.colorPicker)===null||i===void 0||i.layout()}_findAvailableSpaceVertically(){var e;const t=(e=this._visibleData)===null||e===void 0?void 0:e.showAtPosition;if(t)return this._positionPreference===1?this._availableVerticalSpaceAbove(t):this._availableVerticalSpaceBelow(t)}_findMaximumRenderingHeight(){const e=this._findAvailableSpaceVertically();if(!e)return;let t=CONTAINER_HEIGHT_PADDING;return Array.from(this._hover.contentsDomNode.children).forEach(i=>{t+=i.clientHeight}),this._hasHorizontalScrollbar()&&(t+=SCROLLBAR_WIDTH),Math.min(e,t)}_isHoverTextOverflowing(){this._hover.containerDomNode.style.setProperty("--vscode-hover-whiteSpace","nowrap"),this._hover.containerDomNode.style.setProperty("--vscode-hover-sourceWhiteSpace","nowrap");const e=Array.from(this._hover.contentsDomNode.children).some(t=>t.scrollWidth>t.clientWidth);return this._hover.containerDomNode.style.removeProperty("--vscode-hover-whiteSpace"),this._hover.containerDomNode.style.removeProperty("--vscode-hover-sourceWhiteSpace"),e}_findMaximumRenderingWidth(){if(!this._editor||!this._editor.hasModel())return;const e=this._isHoverTextOverflowing(),t=typeof this._contentWidth>"u"?0:this._contentWidth-2;return e||this._hover.containerDomNode.clientWidth<t?getClientArea(this._hover.containerDomNode.ownerDocument.body).width-14:this._hover.containerDomNode.clientWidth+2}isMouseGettingCloser(e,t){if(!this._visibleData)return!1;if(typeof this._visibleData.initialMousePosX>"u"||typeof this._visibleData.initialMousePosY>"u")return this._visibleData.initialMousePosX=e,this._visibleData.initialMousePosY=t,!1;const i=getDomNodePagePosition(this.getDomNode());typeof this._visibleData.closestMouseDistance>"u"&&(this._visibleData.closestMouseDistance=computeDistanceFromPointToRectangle(this._visibleData.initialMousePosX,this._visibleData.initialMousePosY,i.left,i.top,i.width,i.height));const n=computeDistanceFromPointToRectangle(e,t,i.left,i.top,i.width,i.height);return n>this._visibleData.closestMouseDistance+4?!1:(this._visibleData.closestMouseDistance=Math.min(this._visibleData.closestMouseDistance,n),!0)}_setHoverData(e){var t;(t=this._visibleData)===null||t===void 0||t.disposables.dispose(),this._visibleData=e,this._hoverVisibleKey.set(!!e),this._hover.containerDomNode.classList.toggle("hidden",!e)}_layout(){const{fontSize:e,lineHeight:t}=this._editor.getOption(50),i=this._hover.contentsDomNode;i.style.fontSize=`${e}px`,i.style.lineHeight=`${t/e}`,this._updateMaxDimensions()}_updateFont(){Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach(t=>this._editor.applyFontInfo(t))}_updateContent(e){const t=this._hover.contentsDomNode;t.style.paddingBottom="",t.textContent="",t.appendChild(e)}_layoutContentWidget(){this._editor.layoutContentWidget(this),this._hover.onContentsChanged()}_updateMaxDimensions(){const e=Math.max(this._editor.getLayoutInfo().height/4,250,ContentHoverWidget_1._lastDimensions.height),t=Math.max(this._editor.getLayoutInfo().width*.66,500,ContentHoverWidget_1._lastDimensions.width);this._setHoverWidgetMaxDimensions(t,e)}_render(e,t){this._setHoverData(t),this._updateFont(),this._updateContent(e),this._updateMaxDimensions(),this.onContentsChanged(),this._editor.render()}getPosition(){var e;return this._visibleData?{position:this._visibleData.showAtPosition,secondaryPosition:this._visibleData.showAtSecondaryPosition,positionAffinity:this._visibleData.isBeforeContent?3:void 0,preference:[(e=this._positionPreference)!==null&&e!==void 0?e:1]}:null}showAt(e,t){var i,n,r,s;if(!this._editor||!this._editor.hasModel())return;this._render(e,t);const a=getTotalHeight(this._hover.containerDomNode),l=t.showAtPosition;this._positionPreference=(i=this._findPositionPreference(a,l))!==null&&i!==void 0?i:1,this.onContentsChanged(),t.stoleFocus&&this._hover.containerDomNode.focus(),(n=t.colorPicker)===null||n===void 0||n.layout();const d=getHoverAccessibleViewHint(this._configurationService.getValue("accessibility.verbosity.hover")===!0&&this._accessibilityService.isScreenReaderOptimized(),(s=(r=this._keybindingService.lookupKeybinding("editor.action.accessibleView"))===null||r===void 0?void 0:r.getAriaLabel())!==null&&s!==void 0?s:"");d&&(this._hover.contentsDomNode.ariaLabel=this._hover.contentsDomNode.textContent+", "+d)}hide(){if(!this._visibleData)return;const e=this._visibleData.stoleFocus||this._hoverFocusedKey.get();this._setHoverData(void 0),this._resizableNode.maxSize=new Dimension(1/0,1/0),this._resizableNode.clearSashHoverState(),this._hoverFocusedKey.set(!1),this._editor.layoutContentWidget(this),e&&this._editor.focus()}_removeConstraintsRenderNormally(){const e=this._editor.getLayoutInfo();this._resizableNode.layout(e.height,e.width),this._setHoverWidgetDimensions("auto","auto")}_adjustHoverHeightForScrollbar(e){var t;const i=this._hover.containerDomNode,n=this._hover.contentsDomNode,r=(t=this._findMaximumRenderingHeight())!==null&&t!==void 0?t:1/0;this._setContainerDomNodeDimensions(getTotalWidth(i),Math.min(r,e)),this._setContentsDomNodeDimensions(getTotalWidth(n),Math.min(r,e-SCROLLBAR_WIDTH))}setMinimumDimensions(e){this._minimumSize=new Dimension(Math.max(this._minimumSize.width,e.width),Math.max(this._minimumSize.height,e.height)),this._updateMinimumWidth()}_updateMinimumWidth(){const e=typeof this._contentWidth>"u"?this._minimumSize.width:Math.min(this._contentWidth,this._minimumSize.width);this._resizableNode.minSize=new Dimension(e,this._minimumSize.height)}onContentsChanged(){var e;this._removeConstraintsRenderNormally();const t=this._hover.containerDomNode;let i=getTotalHeight(t),n=getTotalWidth(t);if(this._resizableNode.layout(i,n),this._setHoverWidgetDimensions(n,i),i=getTotalHeight(t),n=getTotalWidth(t),this._contentWidth=n,this._updateMinimumWidth(),this._resizableNode.layout(i,n),this._hasHorizontalScrollbar()&&(this._adjustContentsBottomPadding(),this._adjustHoverHeightForScrollbar(i)),!((e=this._visibleData)===null||e===void 0)&&e.showAtPosition){const r=getTotalHeight(this._hover.containerDomNode);this._positionPreference=this._findPositionPreference(r,this._visibleData.showAtPosition)}this._layoutContentWidget()}focus(){this._hover.containerDomNode.focus()}scrollUp(){const e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._editor.getOption(50);this._hover.scrollbar.setScrollPosition({scrollTop:e-t.lineHeight})}scrollDown(){const e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._editor.getOption(50);this._hover.scrollbar.setScrollPosition({scrollTop:e+t.lineHeight})}scrollLeft(){const e=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:e-HORIZONTAL_SCROLLING_BY})}scrollRight(){const e=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:e+HORIZONTAL_SCROLLING_BY})}pageUp(){const e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:e-t})}pageDown(){const e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:e+t})}goToTop(){this._hover.scrollbar.setScrollPosition({scrollTop:0})}goToBottom(){this._hover.scrollbar.setScrollPosition({scrollTop:this._hover.scrollbar.getScrollDimensions().scrollHeight})}};ContentHoverWidget.ID="editor.contrib.resizableContentHoverWidget";ContentHoverWidget._lastDimensions=new Dimension(0,0);ContentHoverWidget=ContentHoverWidget_1=__decorate$15([__param$15(1,IContextKeyService),__param$15(2,IConfigurationService),__param$15(3,IAccessibilityService),__param$15(4,IKeybindingService)],ContentHoverWidget);let EditorHoverStatusBar=class extends Disposable{get hasContent(){return this._hasContent}constructor(e){super(),this._keybindingService=e,this._hasContent=!1,this.hoverElement=$$4("div.hover-row.status-bar"),this.actionsElement=append$1(this.hoverElement,$$4("div.actions"))}addAction(e){const t=this._keybindingService.lookupKeybinding(e.commandId),i=t?t.getLabel():null;return this._hasContent=!0,this._register(HoverAction.render(this.actionsElement,e,i))}append(e){const t=append$1(this.actionsElement,e);return this._hasContent=!0,t}};EditorHoverStatusBar=__decorate$15([__param$15(0,IKeybindingService)],EditorHoverStatusBar);class ContentHoverComputer{get anchor(){return this._anchor}set anchor(e){this._anchor=e}get shouldFocus(){return this._shouldFocus}set shouldFocus(e){this._shouldFocus=e}get source(){return this._source}set source(e){this._source=e}get insistOnKeepingHoverVisible(){return this._insistOnKeepingHoverVisible}set insistOnKeepingHoverVisible(e){this._insistOnKeepingHoverVisible=e}constructor(e,t){this._editor=e,this._participants=t,this._anchor=null,this._shouldFocus=!1,this._source=0,this._insistOnKeepingHoverVisible=!1}static _getLineDecorations(e,t){if(t.type!==1&&!t.supportsMarkerHover)return[];const i=e.getModel(),n=t.range.startLineNumber;if(n>i.getLineCount())return[];const r=i.getLineMaxColumn(n);return e.getLineDecorations(n).filter(s=>{if(s.options.isWholeLine)return!0;const a=s.range.startLineNumber===n?s.range.startColumn:1,l=s.range.endLineNumber===n?s.range.endColumn:r;if(s.options.showIfCollapsed){if(a>t.range.startColumn+1||t.range.endColumn-1>l)return!1}else if(a>t.range.startColumn||t.range.endColumn>l)return!1;return!0})}computeAsync(e){const t=this._anchor;if(!this._editor.hasModel()||!t)return AsyncIterableObject.EMPTY;const i=ContentHoverComputer._getLineDecorations(this._editor,t);return AsyncIterableObject.merge(this._participants.map(n=>n.computeAsync?n.computeAsync(t,i,e):AsyncIterableObject.EMPTY))}computeSync(){if(!this._editor.hasModel()||!this._anchor)return[];const e=ContentHoverComputer._getLineDecorations(this._editor,this._anchor);let t=[];for(const i of this._participants)t=t.concat(i.computeSync(this._anchor,e));return coalesce(t)}}function computeDistanceFromPointToRectangle(o,e,t,i,n,r){const s=t+n/2,a=i+r/2,l=Math.max(Math.abs(o-s)-n/2,0),d=Math.max(Math.abs(e-a)-r/2,0);return Math.sqrt(l*l+d*d)}const $$3=$$d;class MarginHoverWidget extends Disposable{constructor(e,t,i){super(),this._renderDisposeables=this._register(new DisposableStore),this._editor=e,this._isVisible=!1,this._messages=[],this._hover=this._register(new HoverWidget),this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible),this._markdownRenderer=this._register(new MarkdownRenderer({editor:this._editor},t,i)),this._computer=new MarginHoverComputer(this._editor),this._hoverOperation=this._register(new HoverOperation(this._editor,this._computer)),this._register(this._hoverOperation.onResult(n=>{this._withResult(n.value)})),this._register(this._editor.onDidChangeModelDecorations(()=>this._onModelDecorationsChanged())),this._register(this._editor.onDidChangeConfiguration(n=>{n.hasChanged(50)&&this._updateFont()})),this._editor.addOverlayWidget(this)}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return MarginHoverWidget.ID}getDomNode(){return this._hover.containerDomNode}getPosition(){return null}_updateFont(){Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach(t=>this._editor.applyFontInfo(t))}_onModelDecorationsChanged(){this._isVisible&&(this._hoverOperation.cancel(),this._hoverOperation.start(0))}startShowingAt(e){this._computer.lineNumber!==e&&(this._hoverOperation.cancel(),this.hide(),this._computer.lineNumber=e,this._hoverOperation.start(0))}hide(){this._computer.lineNumber=-1,this._hoverOperation.cancel(),this._isVisible&&(this._isVisible=!1,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible))}_withResult(e){this._messages=e,this._messages.length>0?this._renderMessages(this._computer.lineNumber,this._messages):this.hide()}_renderMessages(e,t){this._renderDisposeables.clear();const i=document.createDocumentFragment();for(const n of t){const r=$$3("div.hover-row.markdown-hover"),s=append$1(r,$$3("div.hover-contents")),a=this._renderDisposeables.add(this._markdownRenderer.render(n.value));s.appendChild(a.element),i.appendChild(r)}this._updateContents(i),this._showAt(e)}_updateContents(e){this._hover.contentsDomNode.textContent="",this._hover.contentsDomNode.appendChild(e),this._updateFont()}_showAt(e){this._isVisible||(this._isVisible=!0,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible));const t=this._editor.getLayoutInfo(),i=this._editor.getTopForLineNumber(e),n=this._editor.getScrollTop(),r=this._editor.getOption(66),s=this._hover.containerDomNode.clientHeight,a=i-n-(s-r)/2;this._hover.containerDomNode.style.left=`${t.glyphMarginLeft+t.glyphMarginWidth}px`,this._hover.containerDomNode.style.top=`${Math.max(Math.round(a),0)}px`}}MarginHoverWidget.ID="editor.contrib.modesGlyphHoverWidget";class MarginHoverComputer{get lineNumber(){return this._lineNumber}set lineNumber(e){this._lineNumber=e}constructor(e){this._editor=e,this._lineNumber=-1}computeSync(){const e=n=>({value:n}),t=this._editor.getLineDecorations(this._lineNumber),i=[];if(!t)return i;for(const n of t){if(!n.options.glyphMarginClassName)continue;const r=n.options.glyphMarginHoverMessage;!r||isEmptyMarkdownString(r)||i.push(...asArray(r).map(e))}return i}}var __awaiter$N=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};class HoverProviderResult{constructor(e,t,i){this.provider=e,this.hover=t,this.ordinal=i}}function executeProvider(o,e,t,i,n){return __awaiter$N(this,void 0,void 0,function*(){try{const r=yield Promise.resolve(o.provideHover(t,i,n));if(r&&isValid(r))return new HoverProviderResult(o,r,e)}catch(r){onUnexpectedExternalError(r)}})}function getHover(o,e,t,i){const r=o.ordered(e).map((s,a)=>executeProvider(s,a,e,t,i));return AsyncIterableObject.fromPromises(r).coalesce()}function getHoverPromise(o,e,t,i){return getHover(o,e,t,i).map(n=>n.hover).toPromise()}registerModelAndPositionCommand("_executeHoverProvider",(o,e,t)=>{const i=o.get(ILanguageFeaturesService);return getHoverPromise(i.hoverProvider,e,t,CancellationToken.None)});function isValid(o){const e=typeof o.range<"u",t=typeof o.contents<"u"&&o.contents&&o.contents.length>0;return e&&t}var __decorate$14=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$14=function(o,e){return function(t,i){e(t,i,o)}};const $$2=$$d;class MarkdownHover{constructor(e,t,i,n,r){this.owner=e,this.range=t,this.contents=i,this.isBeforeContent=n,this.ordinal=r}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}let MarkdownHoverParticipant=class{constructor(e,t,i,n,r){this._editor=e,this._languageService=t,this._openerService=i,this._configurationService=n,this._languageFeaturesService=r,this.hoverOrdinal=3}createLoadingMessage(e){return new MarkdownHover(this,e.range,[new MarkdownString().appendText(localize("modesContentHover.loading","Loading..."))],!1,2e3)}computeSync(e,t){if(!this._editor.hasModel()||e.type!==1)return[];const i=this._editor.getModel(),n=e.range.startLineNumber,r=i.getLineMaxColumn(n),s=[];let a=1e3;const l=i.getLineLength(n),d=i.getLanguageIdAtPosition(e.range.startLineNumber,e.range.startColumn),c=this._editor.getOption(116),u=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:d});let g=!1;c>=0&&l>c&&e.range.startColumn>=c&&(g=!0,s.push(new MarkdownHover(this,e.range,[{value:localize("stopped rendering","Rendering paused for long line for performance reasons. This can be configured via `editor.stopRenderingLineAfter`.")}],!1,a++))),!g&&typeof u=="number"&&l>=u&&s.push(new MarkdownHover(this,e.range,[{value:localize("too many characters","Tokenization is skipped for long lines for performance reasons. This can be configured via `editor.maxTokenizationLineLength`.")}],!1,a++));let f=!1;for(const p of t){const m=p.range.startLineNumber===n?p.range.startColumn:1,b=p.range.endLineNumber===n?p.range.endColumn:r,_=p.options.hoverMessage;if(!_||isEmptyMarkdownString(_))continue;p.options.beforeContentClassName&&(f=!0);const C=new Range$2(e.range.startLineNumber,m,e.range.startLineNumber,b);s.push(new MarkdownHover(this,C,asArray(_),f,a++))}return s}computeAsync(e,t,i){if(!this._editor.hasModel()||e.type!==1)return AsyncIterableObject.EMPTY;const n=this._editor.getModel();if(!this._languageFeaturesService.hoverProvider.has(n))return AsyncIterableObject.EMPTY;const r=new Position$1(e.range.startLineNumber,e.range.startColumn);return getHover(this._languageFeaturesService.hoverProvider,n,r,i).filter(s=>!isEmptyMarkdownString(s.hover.contents)).map(s=>{const a=s.hover.range?Range$2.lift(s.hover.range):e.range;return new MarkdownHover(this,a,s.hover.contents,!1,s.ordinal)})}renderHoverParts(e,t){return renderMarkdownHovers(e,t,this._editor,this._languageService,this._openerService)}};MarkdownHoverParticipant=__decorate$14([__param$14(1,ILanguageService),__param$14(2,IOpenerService),__param$14(3,IConfigurationService),__param$14(4,ILanguageFeaturesService)],MarkdownHoverParticipant);function renderMarkdownHovers(o,e,t,i,n){e.sort((s,a)=>s.ordinal-a.ordinal);const r=new DisposableStore;for(const s of e)for(const a of s.contents){if(isEmptyMarkdownString(a))continue;const l=$$2("div.hover-row.markdown-hover"),d=append$1(l,$$2("div.hover-contents")),c=r.add(new MarkdownRenderer({editor:t},i,n));r.add(c.onDidRenderAsync(()=>{d.className="hover-contents code-hover-contents",o.onContentsChanged()}));const u=r.add(c.render(a));d.appendChild(u.element),o.fragment.appendChild(l)}return r}var __decorate$13=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$13=function(o,e){return function(t,i){e(t,i,o)}};class MarkerCoordinate{constructor(e,t,i){this.marker=e,this.index=t,this.total=i}}let MarkerList=class{constructor(e,t,i){this._markerService=t,this._configService=i,this._onDidChange=new Emitter$1,this.onDidChange=this._onDidChange.event,this._dispoables=new DisposableStore,this._markers=[],this._nextIdx=-1,URI.isUri(e)?this._resourceFilter=a=>a.toString()===e.toString():e&&(this._resourceFilter=e);const n=this._configService.getValue("problems.sortOrder"),r=(a,l)=>{let d=compare(a.resource.toString(),l.resource.toString());return d===0&&(n==="position"?d=Range$2.compareRangesUsingStarts(a,l)||MarkerSeverity$1.compare(a.severity,l.severity):d=MarkerSeverity$1.compare(a.severity,l.severity)||Range$2.compareRangesUsingStarts(a,l)),d},s=()=>{this._markers=this._markerService.read({resource:URI.isUri(e)?e:void 0,severities:MarkerSeverity$1.Error|MarkerSeverity$1.Warning|MarkerSeverity$1.Info}),typeof e=="function"&&(this._markers=this._markers.filter(a=>this._resourceFilter(a.resource))),this._markers.sort(r)};s(),this._dispoables.add(t.onMarkerChanged(a=>{(!this._resourceFilter||a.some(l=>this._resourceFilter(l)))&&(s(),this._nextIdx=-1,this._onDidChange.fire())}))}dispose(){this._dispoables.dispose(),this._onDidChange.dispose()}matches(e){return!this._resourceFilter&&!e?!0:!this._resourceFilter||!e?!1:this._resourceFilter(e)}get selected(){const e=this._markers[this._nextIdx];return e&&new MarkerCoordinate(e,this._nextIdx+1,this._markers.length)}_initIdx(e,t,i){let n=!1,r=this._markers.findIndex(s=>s.resource.toString()===e.uri.toString());r<0&&(r=binarySearch(this._markers,{resource:e.uri},(s,a)=>compare(s.resource.toString(),a.resource.toString())),r<0&&(r=~r));for(let s=r;s<this._markers.length;s++){let a=Range$2.lift(this._markers[s]);if(a.isEmpty()){const l=e.getWordAtPosition(a.getStartPosition());l&&(a=new Range$2(a.startLineNumber,l.startColumn,a.startLineNumber,l.endColumn))}if(t&&(a.containsPosition(t)||t.isBeforeOrEqual(a.getStartPosition()))){this._nextIdx=s,n=!0;break}if(this._markers[s].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(this._markers.length===0)return!1;const n=this._nextIdx;return this._nextIdx===-1?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(n=>n.resource.toString()===e.toString());if(!(i<0)){for(;i<this._markers.length;i++)if(Range$2.containsPosition(this._markers[i],t))return new MarkerCoordinate(this._markers[i],i+1,this._markers.length)}}};MarkerList=__decorate$13([__param$13(1,IMarkerService),__param$13(2,IConfigurationService)],MarkerList);const IMarkerNavigationService=createDecorator("IMarkerNavigationService");let MarkerNavigationService=class{constructor(e,t){this._markerService=e,this._configService=t,this._provider=new LinkedList}getMarkerList(e){for(const t of this._provider){const i=t.getMarkerList(e);if(i)return i}return new MarkerList(e,this._markerService,this._configService)}};MarkerNavigationService=__decorate$13([__param$13(0,IMarkerService),__param$13(1,IConfigurationService)],MarkerNavigationService);registerSingleton(IMarkerNavigationService,MarkerNavigationService,1);var SeverityIcon;(function(o){function e(t){switch(t){case Severity$2.Ignore:return"severity-ignore "+ThemeIcon.asClassName(Codicon.info);case Severity$2.Info:return ThemeIcon.asClassName(Codicon.info);case Severity$2.Warning:return ThemeIcon.asClassName(Codicon.warning);case Severity$2.Error:return ThemeIcon.asClassName(Codicon.error);default:return""}}o.className=e})(SeverityIcon||(SeverityIcon={}));var __decorate$12=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$12=function(o,e){return function(t,i){e(t,i,o)}},MarkerNavigationWidget_1;class MessageWidget{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 DisposableStore,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(addStandardDisposableListener(this._relatedBlock,"click",a=>{a.preventDefault();const l=this._relatedDiagnostics.get(a.target);l&&i(l)})),this._scrollable=new ScrollableElement(s,{horizontal:1,vertical:1,useShadows:!1,horizontalScrollbarSize:6,verticalScrollbarSize:6}),e.appendChild(this._scrollable.getDomNode()),this._disposables.add(this._scrollable.onScroll(a=>{s.style.left=`-${a.scrollLeft}px`,s.style.top=`-${a.scrollTop}px`})),this._disposables.add(this._scrollable)}dispose(){dispose(this._disposables)}update(e){const{source:t,message:i,relatedInformation:n,code:r}=e;let s=((t==null?void 0:t.length)||0)+2;r&&(typeof r=="string"?s+=r.length:s+=r.value.length);const a=splitLines(i);this._lines=a.length,this._longestLineLength=0;for(const g of a)this._longestLineLength=Math.max(g.length+s,this._longestLineLength);clearNode(this._messageBlock),this._messageBlock.setAttribute("aria-label",this.getAriaLabel(e)),this._editor.applyFontInfo(this._messageBlock);let l=this._messageBlock;for(const g of a)l=document.createElement("div"),l.innerText=g,g===""&&(l.style.height=this._messageBlock.style.lineHeight),this._messageBlock.appendChild(l);if(t||r){const g=document.createElement("span");if(g.classList.add("details"),l.appendChild(g),t){const f=document.createElement("span");f.innerText=t,f.classList.add("source"),g.appendChild(f)}if(r)if(typeof r=="string"){const f=document.createElement("span");f.innerText=`(${r})`,f.classList.add("code"),g.appendChild(f)}else{this._codeLink=$$d("a.code-link"),this._codeLink.setAttribute("href",`${r.target.toString()}`),this._codeLink.onclick=p=>{this._openerService.open(r.target,{allowCommands:!0}),p.preventDefault(),p.stopPropagation()};const f=append$1(this._codeLink,$$d("span"));f.innerText=r.value,g.appendChild(this._codeLink)}}if(clearNode(this._relatedBlock),this._editor.applyFontInfo(this._relatedBlock),isNonEmptyArray(n)){const g=this._relatedBlock.appendChild(document.createElement("div"));g.style.paddingTop=`${Math.floor(this._editor.getOption(66)*.66)}px`,this._lines+=1;for(const f of n){const p=document.createElement("div"),m=document.createElement("a");m.classList.add("filename"),m.innerText=`${this._labelService.getUriBasenameLabel(f.resource)}(${f.startLineNumber}, ${f.startColumn}): `,m.title=this._labelService.getUriLabel(f.resource),this._relatedDiagnostics.set(m,f);const b=document.createElement("span");b.innerText=f.message,p.appendChild(m),p.appendChild(b),this._lines+=1,g.appendChild(p)}}const d=this._editor.getOption(50),c=Math.ceil(d.typicalFullwidthCharacterWidth*this._longestLineLength*.75),u=d.lineHeight*this._lines;this._scrollable.setScrollDimensions({scrollWidth:c,scrollHeight:u})}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 MarkerSeverity$1.Error:t=localize("Error","Error");break;case MarkerSeverity$1.Warning:t=localize("Warning","Warning");break;case MarkerSeverity$1.Info:t=localize("Info","Info");break;case MarkerSeverity$1.Hint:t=localize("Hint","Hint");break}let i=localize("marker aria","{0} at {1}. ",t,e.startLineNumber+":"+e.startColumn);const n=this._editor.getModel();return n&&e.startLineNumber<=n.getLineCount()&&e.startLineNumber>=1&&(i=`${n.getLineContent(e.startLineNumber)}, ${i}`),i}}let MarkerNavigationWidget=MarkerNavigationWidget_1=class extends PeekViewWidget{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 DisposableStore,this._onDidSelectRelatedInformation=new Emitter$1,this.onDidSelectRelatedInformation=this._onDidSelectRelatedInformation.event,this._severity=MarkerSeverity$1.Warning,this._backgroundColor=Color.white,this._applyTheme(t.getColorTheme()),this._callOnDispose.add(t.onDidColorThemeChange(this._applyTheme.bind(this))),this.create()}_applyTheme(e){this._backgroundColor=e.getColor(editorMarkerNavigationBackground);let t=editorMarkerNavigationError,i=editorMarkerNavigationErrorHeader;this._severity===MarkerSeverity$1.Warning?(t=editorMarkerNavigationWarning,i=editorMarkerNavigationWarningHeader):this._severity===MarkerSeverity$1.Info&&(t=editorMarkerNavigationInfo,i=editorMarkerNavigationInfoHeader);const n=e.getColor(t),r=e.getColor(i);this.style({arrowColor:n,frameColor:n,headerBackgroundColor:r,primaryHeadingColor:e.getColor(peekViewTitleForeground),secondaryHeadingColor:e.getColor(peekViewTitleInfoForeground)})}_applyStyles(){this._parentContainer&&(this._parentContainer.style.backgroundColor=this._backgroundColor?this._backgroundColor.toString():""),super._applyStyles()}dispose(){this._callOnDispose.dispose(),super.dispose()}_fillHead(e){super._fillHead(e),this._disposables.add(this._actionbarWidget.actionRunner.onWillRun(n=>this.editor.focus()));const t=[],i=this._menuService.createMenu(MarkerNavigationWidget_1.TitleMenu,this._contextKeyService);createAndFillInActionBarActions(i,void 0,t),this._actionbarWidget.push(t,{label:!1,icon:!0,index:0}),i.dispose()}_fillTitleIcon(e){this._icon=append$1(e,$$d(""))}_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 MessageWidget(this._container,this.editor,t=>this._onDidSelectRelatedInformation.fire(t),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());const n=Range$2.lift(e),r=this.editor.getPosition(),s=r&&n.containsPosition(r)?r:n.getStartPosition();super.show(s,this.computeRequiredHeight());const a=this.editor.getModel();if(a){const l=i>1?localize("problems","{0} of {1} problems",t,i):localize("change","{0} of {1} problem",t,i);this.setTitle(basename(a.uri),l)}this._icon.className=`codicon ${SeverityIcon.className(MarkerSeverity$1.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()}};MarkerNavigationWidget.TitleMenu=new MenuId("gotoErrorTitleMenu");MarkerNavigationWidget=MarkerNavigationWidget_1=__decorate$12([__param$12(1,IThemeService),__param$12(2,IOpenerService),__param$12(3,IMenuService),__param$12(4,IInstantiationService),__param$12(5,IContextKeyService),__param$12(6,ILabelService)],MarkerNavigationWidget);const errorDefault=oneOf(editorErrorForeground,editorErrorBorder),warningDefault=oneOf(editorWarningForeground,editorWarningBorder),infoDefault=oneOf(editorInfoForeground,editorInfoBorder),editorMarkerNavigationError=registerColor("editorMarkerNavigationError.background",{dark:errorDefault,light:errorDefault,hcDark:contrastBorder,hcLight:contrastBorder},localize("editorMarkerNavigationError","Editor marker navigation widget error color.")),editorMarkerNavigationErrorHeader=registerColor("editorMarkerNavigationError.headerBackground",{dark:transparent(editorMarkerNavigationError,.1),light:transparent(editorMarkerNavigationError,.1),hcDark:null,hcLight:null},localize("editorMarkerNavigationErrorHeaderBackground","Editor marker navigation widget error heading background.")),editorMarkerNavigationWarning=registerColor("editorMarkerNavigationWarning.background",{dark:warningDefault,light:warningDefault,hcDark:contrastBorder,hcLight:contrastBorder},localize("editorMarkerNavigationWarning","Editor marker navigation widget warning color.")),editorMarkerNavigationWarningHeader=registerColor("editorMarkerNavigationWarning.headerBackground",{dark:transparent(editorMarkerNavigationWarning,.1),light:transparent(editorMarkerNavigationWarning,.1),hcDark:"#0C141F",hcLight:transparent(editorMarkerNavigationWarning,.2)},localize("editorMarkerNavigationWarningBackground","Editor marker navigation widget warning heading background.")),editorMarkerNavigationInfo=registerColor("editorMarkerNavigationInfo.background",{dark:infoDefault,light:infoDefault,hcDark:contrastBorder,hcLight:contrastBorder},localize("editorMarkerNavigationInfo","Editor marker navigation widget info color.")),editorMarkerNavigationInfoHeader=registerColor("editorMarkerNavigationInfo.headerBackground",{dark:transparent(editorMarkerNavigationInfo,.1),light:transparent(editorMarkerNavigationInfo,.1),hcDark:null,hcLight:null},localize("editorMarkerNavigationInfoHeaderBackground","Editor marker navigation widget info heading background.")),editorMarkerNavigationBackground=registerColor("editorMarkerNavigation.background",{dark:editorBackground,light:editorBackground,hcDark:editorBackground,hcLight:editorBackground},localize("editorMarkerNavigationBackground","Editor marker navigation widget background."));var __decorate$11=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$11=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$M=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},MarkerController_1;let MarkerController=MarkerController_1=class{static get(e){return e.getContribution(MarkerController_1.ID)}constructor(e,t,i,n,r){this._markerNavigationService=t,this._contextKeyService=i,this._editorService=n,this._instantiationService=r,this._sessionDispoables=new DisposableStore,this._editor=e,this._widgetVisible=CONTEXT_MARKERS_NAVIGATION_VISIBLE.bindTo(this._contextKeyService)}dispose(){this._cleanUp(),this._sessionDispoables.dispose()}_cleanUp(){this._widgetVisible.reset(),this._sessionDispoables.clear(),this._widget=void 0,this._model=void 0}_getOrCreateModel(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(MarkerNavigationWidget,this._editor),this._widget.onDidClose(()=>this.close(),this,this._sessionDispoables),this._widgetVisible.set(!0),this._sessionDispoables.add(this._model),this._sessionDispoables.add(this._widget),this._sessionDispoables.add(this._editor.onDidChangeCursorPosition(i=>{var n,r,s;(!(!((n=this._model)===null||n===void 0)&&n.selected)||!Range$2.containsPosition((r=this._model)===null||r===void 0?void 0:r.selected.marker,i.position))&&((s=this._model)===null||s===void 0||s.resetIndex())})),this._sessionDispoables.add(this._model.onDidChange(()=>{if(!this._widget||!this._widget.position||!this._model)return;const i=this._model.find(this._editor.getModel().uri,this._widget.position);i?this._widget.updateMarker(i.marker):this._widget.showStale()})),this._sessionDispoables.add(this._widget.onDidSelectRelatedInformation(i=>{this._editorService.openCodeEditor({resource:i.resource,options:{pinned:!0,revealIfOpened:!0,selection:Range$2.lift(i).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 Position$1(e.startLineNumber,e.startColumn)),t.selected&&this._widget.showAtMarker(t.selected.marker,t.selected.index,t.selected.total)}}nagivate(e,t){var i,n;return __awaiter$M(this,void 0,void 0,function*(){if(this._editor.hasModel()){const r=this._getOrCreateModel(t?void 0:this._editor.getModel().uri);if(r.move(e,this._editor.getModel(),this._editor.getPosition()),!r.selected)return;if(r.selected.marker.resource.toString()!==this._editor.getModel().uri.toString()){this._cleanUp();const s=yield this._editorService.openCodeEditor({resource:r.selected.marker.resource,options:{pinned:!1,revealIfOpened:!0,selectionRevealType:2,selection:r.selected.marker}},this._editor);s&&((i=MarkerController_1.get(s))===null||i===void 0||i.close(),(n=MarkerController_1.get(s))===null||n===void 0||n.nagivate(e,t))}else this._widget.showAtMarker(r.selected.marker,r.selected.index,r.selected.total)}})}};MarkerController.ID="editor.contrib.markerController";MarkerController=MarkerController_1=__decorate$11([__param$11(1,IMarkerNavigationService),__param$11(2,IContextKeyService),__param$11(3,ICodeEditorService),__param$11(4,IInstantiationService)],MarkerController);class MarkerNavigationAction extends EditorAction{constructor(e,t,i){super(i),this._next=e,this._multiFile=t}run(e,t){var i;return __awaiter$M(this,void 0,void 0,function*(){t.hasModel()&&((i=MarkerController.get(t))===null||i===void 0||i.nagivate(this._next,this._multiFile))})}}class NextMarkerAction extends MarkerNavigationAction{constructor(){super(!0,!1,{id:NextMarkerAction.ID,label:NextMarkerAction.LABEL,alias:"Go to Next Problem (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.focus,primary:578,weight:100},menuOpts:{menuId:MarkerNavigationWidget.TitleMenu,title:NextMarkerAction.LABEL,icon:registerIcon("marker-navigation-next",Codicon.arrowDown,localize("nextMarkerIcon","Icon for goto next marker.")),group:"navigation",order:1}})}}NextMarkerAction.ID="editor.action.marker.next";NextMarkerAction.LABEL=localize("markerAction.next.label","Go to Next Problem (Error, Warning, Info)");class PrevMarkerAction extends MarkerNavigationAction{constructor(){super(!1,!1,{id:PrevMarkerAction.ID,label:PrevMarkerAction.LABEL,alias:"Go to Previous Problem (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.focus,primary:1602,weight:100},menuOpts:{menuId:MarkerNavigationWidget.TitleMenu,title:PrevMarkerAction.LABEL,icon:registerIcon("marker-navigation-previous",Codicon.arrowUp,localize("previousMarkerIcon","Icon for goto previous marker.")),group:"navigation",order:2}})}}PrevMarkerAction.ID="editor.action.marker.prev";PrevMarkerAction.LABEL=localize("markerAction.previous.label","Go to Previous Problem (Error, Warning, Info)");class NextMarkerInFilesAction extends MarkerNavigationAction{constructor(){super(!0,!0,{id:"editor.action.marker.nextInFiles",label:localize("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:EditorContextKeys.focus,primary:66,weight:100},menuOpts:{menuId:MenuId.MenubarGoMenu,title:localize({},"Next &&Problem"),group:"6_problem_nav",order:1}})}}class PrevMarkerInFilesAction extends MarkerNavigationAction{constructor(){super(!1,!0,{id:"editor.action.marker.prevInFiles",label:localize("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:EditorContextKeys.focus,primary:1090,weight:100},menuOpts:{menuId:MenuId.MenubarGoMenu,title:localize({},"Previous &&Problem"),group:"6_problem_nav",order:2}})}}registerEditorContribution(MarkerController.ID,MarkerController,4);registerEditorAction(NextMarkerAction);registerEditorAction(PrevMarkerAction);registerEditorAction(NextMarkerInFilesAction);registerEditorAction(PrevMarkerInFilesAction);const CONTEXT_MARKERS_NAVIGATION_VISIBLE=new RawContextKey("markersNavigationVisible",!1),MarkerCommand=EditorCommand.bindToContribution(MarkerController.get);registerEditorCommand(new MarkerCommand({id:"closeMarkersNavigation",precondition:CONTEXT_MARKERS_NAVIGATION_VISIBLE,handler:o=>o.close(),kbOpts:{weight:150,kbExpr:EditorContextKeys.focus,primary:9,secondary:[1033]}}));var __decorate$10=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$10=function(o,e){return function(t,i){e(t,i,o)}};const $$1=$$d;class MarkerHover{constructor(e,t,i){this.owner=e,this.range=t,this.marker=i}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}const markerCodeActionTrigger={type:1,filter:{include:CodeActionKind.QuickFix},triggerAction:CodeActionTriggerSource.QuickFixHover};let MarkerHoverParticipant=class{constructor(e,t,i,n){this._editor=e,this._markerDecorationsService=t,this._openerService=i,this._languageFeaturesService=n,this.hoverOrdinal=1,this.recentMarkerCodeActionsInfo=void 0}computeSync(e,t){if(!this._editor.hasModel()||e.type!==1&&!e.supportsMarkerHover)return[];const i=this._editor.getModel(),n=e.range.startLineNumber,r=i.getLineMaxColumn(n),s=[];for(const a of t){const l=a.range.startLineNumber===n?a.range.startColumn:1,d=a.range.endLineNumber===n?a.range.endColumn:r,c=this._markerDecorationsService.getMarker(i.uri,a);if(!c)continue;const u=new Range$2(e.range.startLineNumber,l,e.range.startLineNumber,d);s.push(new MarkerHover(this,u,c))}return s}renderHoverParts(e,t){if(!t.length)return Disposable.None;const i=new DisposableStore;t.forEach(r=>e.fragment.appendChild(this.renderMarkerHover(r,i)));const n=t.length===1?t[0]:t.sort((r,s)=>MarkerSeverity$1.compare(r.marker.severity,s.marker.severity))[0];return this.renderMarkerStatusbar(e,n,i),i}renderMarkerHover(e,t){const i=$$1("div.hover-row"),n=append$1(i,$$1("div.marker.hover-contents")),{source:r,message:s,code:a,relatedInformation:l}=e.marker;this._editor.applyFontInfo(n);const d=append$1(n,$$1("span"));if(d.style.whiteSpace="pre-wrap",d.innerText=s,r||a)if(a&&typeof a!="string"){const c=$$1("span");if(r){const p=append$1(c,$$1("span"));p.innerText=r}const u=append$1(c,$$1("a.code-link"));u.setAttribute("href",a.target.toString()),t.add(addDisposableListener(u,"click",p=>{this._openerService.open(a.target,{allowCommands:!0}),p.preventDefault(),p.stopPropagation()}));const g=append$1(u,$$1("span"));g.innerText=a.value;const f=append$1(n,c);f.style.opacity="0.6",f.style.paddingLeft="6px"}else{const c=append$1(n,$$1("span"));c.style.opacity="0.6",c.style.paddingLeft="6px",c.innerText=r&&a?`${r}(${a})`:r||`(${a})`}if(isNonEmptyArray(l))for(const{message:c,resource:u,startLineNumber:g,startColumn:f}of l){const p=append$1(n,$$1("div"));p.style.marginTop="8px";const m=append$1(p,$$1("a"));m.innerText=`${basename(u)}(${g}, ${f}): `,m.style.cursor="pointer",t.add(addDisposableListener(m,"click",_=>{_.stopPropagation(),_.preventDefault(),this._openerService&&this._openerService.open(u,{fromUserGesture:!0,editorOptions:{selection:{startLineNumber:g,startColumn:f}}}).catch(onUnexpectedError)}));const b=append$1(p,$$1("span"));b.innerText=c,this._editor.applyFontInfo(b)}return i}renderMarkerStatusbar(e,t,i){if((t.marker.severity===MarkerSeverity$1.Error||t.marker.severity===MarkerSeverity$1.Warning||t.marker.severity===MarkerSeverity$1.Info)&&e.statusBar.addAction({label:localize("view problem","View Problem"),commandId:NextMarkerAction.ID,run:()=>{var n;e.hide(),(n=MarkerController.get(this._editor))===null||n===void 0||n.showAtMarker(t.marker),this._editor.focus()}}),!this._editor.getOption(90)){const n=e.statusBar.append($$1("div"));this.recentMarkerCodeActionsInfo&&(IMarkerData.makeKey(this.recentMarkerCodeActionsInfo.marker)===IMarkerData.makeKey(t.marker)?this.recentMarkerCodeActionsInfo.hasCodeActions||(n.textContent=localize("noQuickFixes","No quick fixes available")):this.recentMarkerCodeActionsInfo=void 0);const r=this.recentMarkerCodeActionsInfo&&!this.recentMarkerCodeActionsInfo.hasCodeActions?Disposable.None:i.add(disposableTimeout(()=>n.textContent=localize("checkingForQuickFixes","Checking for quick fixes..."),200));n.textContent||(n.textContent=" ");const s=this.getCodeActions(t.marker);i.add(toDisposable(()=>s.cancel())),s.then(a=>{if(r.dispose(),this.recentMarkerCodeActionsInfo={marker:t.marker,hasCodeActions:a.validActions.length>0},!this.recentMarkerCodeActionsInfo.hasCodeActions){a.dispose(),n.textContent=localize("noQuickFixes","No quick fixes available");return}n.style.display="none";let l=!1;i.add(toDisposable(()=>{l||a.dispose()})),e.statusBar.addAction({label:localize("quick fixes","Quick Fix..."),commandId:quickFixCommandId,run:d=>{l=!0;const c=CodeActionController.get(this._editor),u=getDomNodePagePosition(d);e.hide(),c==null||c.showCodeActions(markerCodeActionTrigger,a,{x:u.left,y:u.top,width:u.width,height:u.height})}})},onUnexpectedError)}}getCodeActions(e){return createCancelablePromise(t=>getCodeActions(this._languageFeaturesService.codeActionProvider,this._editor.getModel(),new Range$2(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),markerCodeActionTrigger,Progress.None,t))}};MarkerHoverParticipant=__decorate$10([__param$10(1,IMarkerDecorationsService),__param$10(2,IOpenerService),__param$10(3,ILanguageFeaturesService)],MarkerHoverParticipant);const inlineSuggestCommitId="editor.action.inlineSuggest.commit",showPreviousInlineSuggestionActionId="editor.action.inlineSuggest.showPrevious",showNextInlineSuggestionActionId="editor.action.inlineSuggest.showNext";var __awaiter$L=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};class ToolBar extends Disposable{constructor(e,t,i={orientation:0}){super(),this.submenuActionViewItems=[],this.hasSecondaryActions=!1,this._onDidChangeDropdownVisibility=this._register(new EventMultiplexer),this.onDidChangeDropdownVisibility=this._onDidChangeDropdownVisibility.event,this.disposables=this._register(new DisposableStore),this.options=i,this.lookupKeybindings=typeof this.options.getKeyBinding=="function",this.toggleMenuAction=this._register(new ToggleMenuAction(()=>{var n;return(n=this.toggleMenuActionViewItem)===null||n===void 0?void 0:n.show()},i.toggleMenuTitle)),this.element=document.createElement("div"),this.element.className="monaco-toolbar",e.appendChild(this.element),this.actionBar=this._register(new ActionBar(this.element,{orientation:i.orientation,ariaLabel:i.ariaLabel,actionRunner:i.actionRunner,allowContextMenu:i.allowContextMenu,highlightToggledItems:i.highlightToggledItems,actionViewItemProvider:(n,r)=>{var s;if(n.id===ToggleMenuAction.ID)return this.toggleMenuActionViewItem=new DropdownMenuActionViewItem(n,n.menuActions,t,{actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,keybindingProvider:this.options.getKeyBinding,classNames:ThemeIcon.asClassNameArray((s=i.moreIcon)!==null&&s!==void 0?s:Codicon.toolBarMore),anchorAlignmentProvider:this.options.anchorAlignmentProvider,menuAsChild:!!this.options.renderDropdownAsChildElement,skipTelemetry:this.options.skipTelemetry}),this.toggleMenuActionViewItem.setActionContext(this.actionBar.context),this.disposables.add(this._onDidChangeDropdownVisibility.add(this.toggleMenuActionViewItem.onDidChangeVisibility)),this.toggleMenuActionViewItem;if(i.actionViewItemProvider){const a=i.actionViewItemProvider(n,r);if(a)return a}if(n instanceof SubmenuAction){const a=new DropdownMenuActionViewItem(n,n.actions,t,{actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,keybindingProvider:this.options.getKeyBinding,classNames:n.class,anchorAlignmentProvider:this.options.anchorAlignmentProvider,menuAsChild:!!this.options.renderDropdownAsChildElement,skipTelemetry:this.options.skipTelemetry});return a.setActionContext(this.actionBar.context),this.submenuActionViewItems.push(a),this.disposables.add(this._onDidChangeDropdownVisibility.add(a.onDidChangeVisibility)),a}}}))}set actionRunner(e){this.actionBar.actionRunner=e}get actionRunner(){return this.actionBar.actionRunner}getElement(){return this.element}getItemAction(e){return this.actionBar.getAction(e)}setActions(e,t){this.clear();const i=e?e.slice(0):[];this.hasSecondaryActions=!!(t&&t.length>0),this.hasSecondaryActions&&t&&(this.toggleMenuAction.menuActions=t.slice(0),i.push(this.toggleMenuAction)),i.forEach(n=>{this.actionBar.push(n,{icon:!0,label:!1,keybinding:this.getKeybindingLabel(n)})})}getKeybindingLabel(e){var t,i,n;const r=this.lookupKeybindings?(i=(t=this.options).getKeyBinding)===null||i===void 0?void 0:i.call(t,e):void 0;return(n=r==null?void 0:r.getLabel())!==null&&n!==void 0?n:void 0}clear(){this.submenuActionViewItems=[],this.disposables.clear(),this.actionBar.clear()}dispose(){this.clear(),this.disposables.dispose(),super.dispose()}}class ToggleMenuAction extends Action{constructor(e,t){t=t||localize("moreActions","More Actions..."),super(ToggleMenuAction.ID,t,void 0,!0),this._menuActions=[],this.toggleDropdownMenu=e}run(){return __awaiter$L(this,void 0,void 0,function*(){this.toggleDropdownMenu()})}get menuActions(){return this._menuActions}set menuActions(e){this._menuActions=e}}ToggleMenuAction.ID="toolbar.toggle.more";var __decorate$$=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$$=function(o,e){return function(t,i){e(t,i,o)}};let WorkbenchToolBar=class extends ToolBar{constructor(e,t,i,n,r,s,a){super(e,r,Object.assign(Object.assign({getKeyBinding:d=>{var c;return(c=s.lookupKeybinding(d.id))!==null&&c!==void 0?c:void 0}},t),{allowContextMenu:!0,skipTelemetry:typeof(t==null?void 0:t.telemetrySource)=="string"})),this._options=t,this._menuService=i,this._contextKeyService=n,this._contextMenuService=r,this._sessionDisposables=this._store.add(new DisposableStore);const l=t==null?void 0:t.telemetrySource;l&&this._store.add(this.actionBar.onDidRun(d=>a.publicLog2("workbenchActionExecuted",{id:d.action.id,from:l})))}setActions(e,t=[],i){var n,r,s;this._sessionDisposables.clear();const a=e.slice(),l=t.slice(),d=[];let c=0;const u=[];let g=!1;if(((n=this._options)===null||n===void 0?void 0:n.hiddenItemStrategy)!==-1)for(let f=0;f<a.length;f++){const p=a[f];!(p instanceof MenuItemAction)&&!(p instanceof SubmenuItemAction)||p.hideActions&&(d.push(p.hideActions.toggle),p.hideActions.toggle.checked&&c++,p.hideActions.isHidden&&(g=!0,a[f]=void 0,((r=this._options)===null||r===void 0?void 0:r.hiddenItemStrategy)!==0&&(u[f]=p)))}if(((s=this._options)===null||s===void 0?void 0:s.overflowBehavior)!==void 0){const f=intersection(new Set(this._options.overflowBehavior.exempted),Iterable.map(a,b=>b==null?void 0:b.id)),p=this._options.overflowBehavior.maxItems-f.size;let m=0;for(let b=0;b<a.length;b++){const _=a[b];_&&(m++,!f.has(_.id)&&m>=p&&(a[b]=void 0,u[b]=_))}}coalesceInPlace(a),coalesceInPlace(u),super.setActions(a,Separator.join(u,l)),d.length>0&&this._sessionDisposables.add(addDisposableListener(this.getElement(),"contextmenu",f=>{var p,m,b,_,C;const S=new StandardMouseEvent(f),y=this.getItemAction(S.target);if(!y)return;S.preventDefault(),S.stopPropagation();let E=!1;if(c===1&&((p=this._options)===null||p===void 0?void 0:p.hiddenItemStrategy)===0){E=!0;for(let I=0;I<d.length;I++)if(d[I].checked){d[I]=toAction({id:y.id,label:y.label,checked:!0,enabled:!1,run(){}});break}}let x;if(!E&&(y instanceof MenuItemAction||y instanceof SubmenuItemAction)){if(!y.hideActions)return;x=y.hideActions.hide}else x=toAction({id:"label",label:localize("hide","Hide"),enabled:!1,run(){}});const L=Separator.join([x],d);!((m=this._options)===null||m===void 0)&&m.resetMenu&&!i&&(i=[this._options.resetMenu]),g&&i&&(L.push(new Separator),L.push(toAction({id:"resetThisMenu",label:localize("resetThisMenu","Reset Menu"),run:()=>this._menuService.resetHiddenStates(i)}))),this._contextMenuService.showContextMenu({getAnchor:()=>S,getActions:()=>L,menuId:(b=this._options)===null||b===void 0?void 0:b.contextMenu,menuActionOptions:Object.assign({renderShortTitle:!0},(_=this._options)===null||_===void 0?void 0:_.menuOptions),skipTelemetry:typeof((C=this._options)===null||C===void 0?void 0:C.telemetrySource)=="string",contextKeyService:this._contextKeyService})}))}};WorkbenchToolBar=__decorate$$([__param$$(2,IMenuService),__param$$(3,IContextKeyService),__param$$(4,IContextMenuService),__param$$(5,IKeybindingService),__param$$(6,ITelemetryService)],WorkbenchToolBar);var __decorate$_=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$_=function(o,e){return function(t,i){e(t,i,o)}},InlineSuggestionHintsContentWidget_1;let InlineCompletionsHintsWidget=class extends Disposable{constructor(e,t,i){super(),this.editor=e,this.model=t,this.instantiationService=i,this.alwaysShowToolbar=observableFromEvent(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(62).showToolbar==="always"),this.sessionPosition=void 0,this.position=derived(this,n=>{var r,s,a;const l=(r=this.model.read(n))===null||r===void 0?void 0:r.ghostText.read(n);if(!this.alwaysShowToolbar.read(n)||!l||l.parts.length===0)return this.sessionPosition=void 0,null;const d=l.parts[0].column;this.sessionPosition&&this.sessionPosition.lineNumber!==l.lineNumber&&(this.sessionPosition=void 0);const c=new Position$1(l.lineNumber,Math.min(d,(a=(s=this.sessionPosition)===null||s===void 0?void 0:s.column)!==null&&a!==void 0?a:Number.MAX_SAFE_INTEGER));return this.sessionPosition=c,c}),this._register(autorunWithStore((n,r)=>{const s=this.model.read(n);if(!s||!this.alwaysShowToolbar.read(n))return;const a=r.add(this.instantiationService.createInstance(InlineSuggestionHintsContentWidget,this.editor,!0,this.position,s.selectedInlineCompletionIndex,s.inlineCompletionsCount,s.selectedInlineCompletion.map(l=>{var d;return(d=l==null?void 0:l.inlineCompletion.source.inlineCompletions.commands)!==null&&d!==void 0?d:[]})));e.addContentWidget(a),r.add(toDisposable(()=>e.removeContentWidget(a))),r.add(autorun(l=>{this.position.read(l)&&s.lastTriggerKind.read(l)!==InlineCompletionTriggerKind$1.Explicit&&s.triggerExplicitly()}))}))}};InlineCompletionsHintsWidget=__decorate$_([__param$_(2,IInstantiationService)],InlineCompletionsHintsWidget);const inlineSuggestionHintsNextIcon=registerIcon("inline-suggestion-hints-next",Codicon.chevronRight,localize("parameterHintsNextIcon","Icon for show next parameter hint.")),inlineSuggestionHintsPreviousIcon=registerIcon("inline-suggestion-hints-previous",Codicon.chevronLeft,localize("parameterHintsPreviousIcon","Icon for show previous parameter hint."));let InlineSuggestionHintsContentWidget=InlineSuggestionHintsContentWidget_1=class extends Disposable{static get dropDownVisible(){return this._dropDownVisible}createCommandAction(e,t,i){const n=new Action(e,t,i,!0,()=>this._commandService.executeCommand(e)),r=this.keybindingService.lookupKeybinding(e,this._contextKeyService);let s=t;return r&&(s=localize({},"{0} ({1})",t,r.getLabel())),n.tooltip=s,n}constructor(e,t,i,n,r,s,a,l,d,c,u){super(),this.editor=e,this.withBorder=t,this._position=i,this._currentSuggestionIdx=n,this._suggestionCount=r,this._extraCommands=s,this._commandService=a,this.keybindingService=d,this._contextKeyService=c,this._menuService=u,this.id=`InlineSuggestionHintsContentWidget${InlineSuggestionHintsContentWidget_1.id++}`,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this.nodes=h("div.inlineSuggestionsHints",{className:this.withBorder?".withBorder":""},[h("div@toolBar")]),this.previousAction=this.createCommandAction(showPreviousInlineSuggestionActionId,localize("previous","Previous"),ThemeIcon.asClassName(inlineSuggestionHintsPreviousIcon)),this.availableSuggestionCountAction=new Action("inlineSuggestionHints.availableSuggestionCount","",void 0,!1),this.nextAction=this.createCommandAction(showNextInlineSuggestionActionId,localize("next","Next"),ThemeIcon.asClassName(inlineSuggestionHintsNextIcon)),this.inlineCompletionsActionsMenus=this._register(this._menuService.createMenu(MenuId.InlineCompletionsActions,this._contextKeyService)),this.clearAvailableSuggestionCountLabelDebounced=this._register(new RunOnceScheduler(()=>{this.availableSuggestionCountAction.label=""},100)),this.disableButtonsDebounced=this._register(new RunOnceScheduler(()=>{this.previousAction.enabled=this.nextAction.enabled=!1},100)),this.lastCommands=[],this.toolBar=this._register(l.createInstance(CustomizedMenuWorkbenchToolBar,this.nodes.toolBar,MenuId.InlineSuggestionToolbar,{menuOptions:{renderShortTitle:!0},toolbarOptions:{primaryGroup:g=>g.startsWith("primary")},actionViewItemProvider:(g,f)=>{if(g instanceof MenuItemAction)return l.createInstance(StatusBarViewItem$1,g,void 0);if(g===this.availableSuggestionCountAction){const p=new ActionViewItemWithClassName(void 0,g,{label:!0,icon:!1});return p.setClass("availableSuggestionCount"),p}},telemetrySource:"InlineSuggestionToolbar"})),this.toolBar.setPrependedPrimaryActions([this.previousAction,this.availableSuggestionCountAction,this.nextAction]),this._register(this.toolBar.onDidChangeDropdownVisibility(g=>{InlineSuggestionHintsContentWidget_1._dropDownVisible=g})),this._register(autorun(g=>{this._position.read(g),this.editor.layoutContentWidget(this)})),this._register(autorun(g=>{const f=this._suggestionCount.read(g),p=this._currentSuggestionIdx.read(g);f!==void 0?(this.clearAvailableSuggestionCountLabelDebounced.cancel(),this.availableSuggestionCountAction.label=`${p+1}/${f}`):this.clearAvailableSuggestionCountLabelDebounced.schedule(),f!==void 0&&f>1?(this.disableButtonsDebounced.cancel(),this.previousAction.enabled=this.nextAction.enabled=!0):this.disableButtonsDebounced.schedule()})),this._register(autorun(g=>{const f=this._extraCommands.read(g);if(equals$2(this.lastCommands,f))return;this.lastCommands=f;const p=f.map(m=>({class:void 0,id:m.id,enabled:!0,tooltip:m.tooltip||"",label:m.title,run:b=>this._commandService.executeCommand(m.id)}));for(const[m,b]of this.inlineCompletionsActionsMenus.getActions())for(const _ of b)_ instanceof MenuItemAction&&p.push(_);p.length>0&&p.unshift(new Separator),this.toolBar.setAdditionalSecondaryActions(p)}))}getId(){return this.id}getDomNode(){return this.nodes.root}getPosition(){return{position:this._position.get(),preference:[1,2],positionAffinity:3}}};InlineSuggestionHintsContentWidget._dropDownVisible=!1;InlineSuggestionHintsContentWidget.id=0;InlineSuggestionHintsContentWidget=InlineSuggestionHintsContentWidget_1=__decorate$_([__param$_(6,ICommandService),__param$_(7,IInstantiationService),__param$_(8,IKeybindingService),__param$_(9,IContextKeyService),__param$_(10,IMenuService)],InlineSuggestionHintsContentWidget);class ActionViewItemWithClassName extends ActionViewItem{constructor(){super(...arguments),this._className=void 0}setClass(e){this._className=e}render(e){super.render(e),this._className&&e.classList.add(this._className)}}let StatusBarViewItem$1=class extends MenuEntryActionViewItem{updateLabel(){const e=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!e)return super.updateLabel();if(this.label){const t=h("div.keybinding").root;new KeybindingLabel(t,OS,Object.assign({disableTitle:!0},unthemedKeybindingLabelOptions)).set(e),this.label.textContent=this._action.label,this.label.appendChild(t),this.label.classList.add("inlineSuggestionStatusBarItemLabel")}}},CustomizedMenuWorkbenchToolBar=class extends WorkbenchToolBar{constructor(e,t,i,n,r,s,a,l){super(e,Object.assign({resetMenu:t},i),n,r,s,a,l),this.menuId=t,this.options2=i,this.menuService=n,this.contextKeyService=r,this.menu=this._store.add(this.menuService.createMenu(this.menuId,this.contextKeyService,{emitEventsForSubmenuChanges:!0})),this.additionalActions=[],this.prependedPrimaryActions=[],this._store.add(this.menu.onDidChange(()=>this.updateToolbar())),this.updateToolbar()}updateToolbar(){var e,t,i,n,r,s,a;const l=[],d=[];createAndFillInActionBarActions(this.menu,(e=this.options2)===null||e===void 0?void 0:e.menuOptions,{primary:l,secondary:d},(i=(t=this.options2)===null||t===void 0?void 0:t.toolbarOptions)===null||i===void 0?void 0:i.primaryGroup,(r=(n=this.options2)===null||n===void 0?void 0:n.toolbarOptions)===null||r===void 0?void 0:r.shouldInlineSubmenu,(a=(s=this.options2)===null||s===void 0?void 0:s.toolbarOptions)===null||a===void 0?void 0:a.useSeparatorsInPrimaryActions),d.push(...this.additionalActions),l.unshift(...this.prependedPrimaryActions),this.setActions(l,d)}setPrependedPrimaryActions(e){equals$2(this.prependedPrimaryActions,e,(t,i)=>t===i)||(this.prependedPrimaryActions=e,this.updateToolbar())}setAdditionalSecondaryActions(e){equals$2(this.additionalActions,e,(t,i)=>t===i)||(this.additionalActions=e,this.updateToolbar())}};CustomizedMenuWorkbenchToolBar=__decorate$_([__param$_(3,IMenuService),__param$_(4,IContextKeyService),__param$_(5,IContextMenuService),__param$_(6,IKeybindingService),__param$_(7,ITelemetryService)],CustomizedMenuWorkbenchToolBar);var __decorate$Z=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$Z=function(o,e){return function(t,i){e(t,i,o)}},ModesHoverController_1;let ModesHoverController=ModesHoverController_1=class extends Disposable{static get(e){return e.getContribution(ModesHoverController_1.ID)}constructor(e,t,i,n,r){super(),this._editor=e,this._instantiationService=t,this._openerService=i,this._languageService=n,this._keybindingService=r,this._toUnhook=new DisposableStore,this._hoverActivatedByColorDecoratorClick=!1,this._isMouseDown=!1,this._hoverClicked=!1,this._contentWidget=null,this._glyphWidget=null,this._reactToEditorMouseMoveRunner=this._register(new RunOnceScheduler(()=>this._reactToEditorMouseMove(this._mouseMoveEvent),0)),this._hookEvents(),this._register(this._editor.onDidChangeConfiguration(s=>{s.hasChanged(60)&&(this._unhookEvents(),this._hookEvents())})),this._register(this._editor.onMouseLeave(()=>{this._mouseMoveEvent=void 0,this._reactToEditorMouseMoveRunner.cancel()}))}_hookEvents(){const e=()=>this._hideWidgets(),t=this._editor.getOption(60);this._isHoverEnabled=t.enabled,this._isHoverSticky=t.sticky,this._hidingDelay=t.hidingDelay,this._isHoverEnabled?(this._toUnhook.add(this._editor.onMouseDown(i=>this._onEditorMouseDown(i))),this._toUnhook.add(this._editor.onMouseUp(i=>this._onEditorMouseUp(i))),this._toUnhook.add(this._editor.onMouseMove(i=>this._onEditorMouseMove(i))),this._toUnhook.add(this._editor.onKeyDown(i=>this._onKeyDown(i)))):(this._toUnhook.add(this._editor.onMouseMove(i=>this._onEditorMouseMove(i))),this._toUnhook.add(this._editor.onKeyDown(i=>this._onKeyDown(i)))),this._toUnhook.add(this._editor.onMouseLeave(i=>this._onEditorMouseLeave(i))),this._toUnhook.add(this._editor.onDidChangeModel(e)),this._toUnhook.add(this._editor.onDidScrollChange(i=>this._onEditorScrollChanged(i)))}_unhookEvents(){this._toUnhook.clear()}_onEditorScrollChanged(e){(e.scrollTopChanged||e.scrollLeftChanged)&&this._hideWidgets()}_onEditorMouseDown(e){var t;this._isMouseDown=!0;const i=e.target;if(i.type===9&&i.detail===ContentHoverWidget.ID){this._hoverClicked=!0;return}i.type===12&&i.detail===MarginHoverWidget.ID||(i.type!==12&&(this._hoverClicked=!1),!((t=this._contentWidget)===null||t===void 0)&&t.widget.isResizing||this._hideWidgets())}_onEditorMouseUp(e){this._isMouseDown=!1}_onEditorMouseLeave(e){var t,i;const n=e.event.browserEvent.relatedTarget;!((t=this._contentWidget)===null||t===void 0)&&t.widget.isResizing||!((i=this._contentWidget)===null||i===void 0)&&i.containsNode(n)||this._hideWidgets()}_isMouseOverWidget(e){var t,i,n,r,s;const a=e.target;return!!(this._isHoverSticky&&a.type===9&&a.detail===ContentHoverWidget.ID||this._isHoverSticky&&(!((t=this._contentWidget)===null||t===void 0)&&t.containsNode((i=e.event.browserEvent.view)===null||i===void 0?void 0:i.document.activeElement))&&!(!((r=(n=e.event.browserEvent.view)===null||n===void 0?void 0:n.getSelection())===null||r===void 0)&&r.isCollapsed)||!this._isHoverSticky&&a.type===9&&a.detail===ContentHoverWidget.ID&&(!((s=this._contentWidget)===null||s===void 0)&&s.isColorPickerVisible)||this._isHoverSticky&&a.type===12&&a.detail===MarginHoverWidget.ID)}_onEditorMouseMove(e){var t,i,n,r;if(this._mouseMoveEvent=e,!((t=this._contentWidget)===null||t===void 0)&&t.isFocused||!((i=this._contentWidget)===null||i===void 0)&&i.isResizing||this._isMouseDown&&this._hoverClicked||this._isHoverSticky&&(!((n=this._contentWidget)===null||n===void 0)&&n.isVisibleFromKeyboard))return;if(this._isMouseOverWidget(e)){this._reactToEditorMouseMoveRunner.cancel();return}if(!((r=this._contentWidget)===null||r===void 0)&&r.isVisible&&this._isHoverSticky&&this._hidingDelay>0){this._reactToEditorMouseMoveRunner.isScheduled()||this._reactToEditorMouseMoveRunner.schedule(this._hidingDelay);return}this._reactToEditorMouseMove(e)}_reactToEditorMouseMove(e){var t,i,n;if(!e)return;const r=e.target,s=(t=r.element)===null||t===void 0?void 0:t.classList.contains("colorpicker-color-decoration"),a=this._editor.getOption(146);if(s&&(a==="click"&&!this._hoverActivatedByColorDecoratorClick||a==="hover"&&!this._isHoverEnabled||a==="clickAndHover"&&!this._isHoverEnabled&&!this._hoverActivatedByColorDecoratorClick)||!s&&!this._isHoverEnabled&&!this._hoverActivatedByColorDecoratorClick){this._hideWidgets();return}if(this._getOrCreateContentWidget().maybeShowAt(e)){(i=this._glyphWidget)===null||i===void 0||i.hide();return}if(r.type===2&&r.position){(n=this._contentWidget)===null||n===void 0||n.hide(),this._glyphWidget||(this._glyphWidget=new MarginHoverWidget(this._editor,this._languageService,this._openerService)),this._glyphWidget.startShowingAt(r.position.lineNumber);return}this._hideWidgets()}_onKeyDown(e){var t;if(!this._editor.hasModel())return;const i=this._keybindingService.softDispatch(e,this._editor.getDomNode()),n=i.kind===1||i.kind===2&&i.commandId==="editor.action.showHover"&&((t=this._contentWidget)===null||t===void 0?void 0:t.isVisible);e.keyCode!==5&&e.keyCode!==6&&e.keyCode!==57&&e.keyCode!==4&&!n&&this._hideWidgets()}_hideWidgets(){var e,t,i;this._isMouseDown&&this._hoverClicked&&(!((e=this._contentWidget)===null||e===void 0)&&e.isColorPickerVisible)||InlineSuggestionHintsContentWidget.dropDownVisible||(this._hoverActivatedByColorDecoratorClick=!1,this._hoverClicked=!1,(t=this._glyphWidget)===null||t===void 0||t.hide(),(i=this._contentWidget)===null||i===void 0||i.hide())}_getOrCreateContentWidget(){return this._contentWidget||(this._contentWidget=this._instantiationService.createInstance(ContentHoverController,this._editor)),this._contentWidget}showContentHover(e,t,i,n,r=!1){this._hoverActivatedByColorDecoratorClick=r,this._getOrCreateContentWidget().startShowingAtRange(e,t,i,n)}focus(){var e;(e=this._contentWidget)===null||e===void 0||e.focus()}scrollUp(){var e;(e=this._contentWidget)===null||e===void 0||e.scrollUp()}scrollDown(){var e;(e=this._contentWidget)===null||e===void 0||e.scrollDown()}scrollLeft(){var e;(e=this._contentWidget)===null||e===void 0||e.scrollLeft()}scrollRight(){var e;(e=this._contentWidget)===null||e===void 0||e.scrollRight()}pageUp(){var e;(e=this._contentWidget)===null||e===void 0||e.pageUp()}pageDown(){var e;(e=this._contentWidget)===null||e===void 0||e.pageDown()}goToTop(){var e;(e=this._contentWidget)===null||e===void 0||e.goToTop()}goToBottom(){var e;(e=this._contentWidget)===null||e===void 0||e.goToBottom()}get isColorPickerVisible(){var e;return(e=this._contentWidget)===null||e===void 0?void 0:e.isColorPickerVisible}get isHoverVisible(){var e;return(e=this._contentWidget)===null||e===void 0?void 0:e.isVisible}dispose(){var e,t;super.dispose(),this._unhookEvents(),this._toUnhook.dispose(),(e=this._glyphWidget)===null||e===void 0||e.dispose(),(t=this._contentWidget)===null||t===void 0||t.dispose()}};ModesHoverController.ID="editor.contrib.hover";ModesHoverController=ModesHoverController_1=__decorate$Z([__param$Z(1,IInstantiationService),__param$Z(2,IOpenerService),__param$Z(3,ILanguageService),__param$Z(4,IKeybindingService)],ModesHoverController);class ShowOrFocusHoverAction extends EditorAction{constructor(){super({id:"editor.action.showHover",label:localize({},"Show or Focus Hover"),description:{description:"Show or Focus Hover",args:[{name:"args",schema:{type:"object",properties:{focus:{description:"Controls if when triggered with the keyboard, the hover should take focus immediately.",type:"boolean",default:!1}}}}]},alias:"Show or Focus Hover",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2087),weight:100}})}run(e,t,i){if(!t.hasModel())return;const n=ModesHoverController.get(t);if(!n)return;const r=t.getPosition(),s=new Range$2(r.lineNumber,r.column,r.lineNumber,r.column),a=t.getOption(2)===2||!!(i!=null&&i.focus);n.isHoverVisible?n.focus():n.showContentHover(s,1,1,a)}}class ShowDefinitionPreviewHoverAction extends EditorAction{constructor(){super({id:"editor.action.showDefinitionPreviewHover",label:localize({},"Show Definition Preview Hover"),alias:"Show Definition Preview Hover",precondition:void 0})}run(e,t){const i=ModesHoverController.get(t);if(!i)return;const n=t.getPosition();if(!n)return;const r=new Range$2(n.lineNumber,n.column,n.lineNumber,n.column),s=GotoDefinitionAtPositionEditorContribution.get(t);if(!s)return;s.startFindDefinitionFromCursor(n).then(()=>{i.showContentHover(r,1,1,!0)})}}class ScrollUpHoverAction extends EditorAction{constructor(){super({id:"editor.action.scrollUpHover",label:localize({},"Scroll Up Hover"),alias:"Scroll Up Hover",precondition:EditorContextKeys.hoverFocused,kbOpts:{kbExpr:EditorContextKeys.hoverFocused,primary:16,weight:100}})}run(e,t){const i=ModesHoverController.get(t);i&&i.scrollUp()}}class ScrollDownHoverAction extends EditorAction{constructor(){super({id:"editor.action.scrollDownHover",label:localize({},"Scroll Down Hover"),alias:"Scroll Down Hover",precondition:EditorContextKeys.hoverFocused,kbOpts:{kbExpr:EditorContextKeys.hoverFocused,primary:18,weight:100}})}run(e,t){const i=ModesHoverController.get(t);i&&i.scrollDown()}}class ScrollLeftHoverAction extends EditorAction{constructor(){super({id:"editor.action.scrollLeftHover",label:localize({},"Scroll Left Hover"),alias:"Scroll Left Hover",precondition:EditorContextKeys.hoverFocused,kbOpts:{kbExpr:EditorContextKeys.hoverFocused,primary:15,weight:100}})}run(e,t){const i=ModesHoverController.get(t);i&&i.scrollLeft()}}class ScrollRightHoverAction extends EditorAction{constructor(){super({id:"editor.action.scrollRightHover",label:localize({},"Scroll Right Hover"),alias:"Scroll Right Hover",precondition:EditorContextKeys.hoverFocused,kbOpts:{kbExpr:EditorContextKeys.hoverFocused,primary:17,weight:100}})}run(e,t){const i=ModesHoverController.get(t);i&&i.scrollRight()}}class PageUpHoverAction extends EditorAction{constructor(){super({id:"editor.action.pageUpHover",label:localize({},"Page Up Hover"),alias:"Page Up Hover",precondition:EditorContextKeys.hoverFocused,kbOpts:{kbExpr:EditorContextKeys.hoverFocused,primary:11,secondary:[528],weight:100}})}run(e,t){const i=ModesHoverController.get(t);i&&i.pageUp()}}class PageDownHoverAction extends EditorAction{constructor(){super({id:"editor.action.pageDownHover",label:localize({},"Page Down Hover"),alias:"Page Down Hover",precondition:EditorContextKeys.hoverFocused,kbOpts:{kbExpr:EditorContextKeys.hoverFocused,primary:12,secondary:[530],weight:100}})}run(e,t){const i=ModesHoverController.get(t);i&&i.pageDown()}}class GoToTopHoverAction extends EditorAction{constructor(){super({id:"editor.action.goToTopHover",label:localize({},"Go To Top Hover"),alias:"Go To Bottom Hover",precondition:EditorContextKeys.hoverFocused,kbOpts:{kbExpr:EditorContextKeys.hoverFocused,primary:14,secondary:[2064],weight:100}})}run(e,t){const i=ModesHoverController.get(t);i&&i.goToTop()}}class GoToBottomHoverAction extends EditorAction{constructor(){super({id:"editor.action.goToBottomHover",label:localize({},"Go To Bottom Hover"),alias:"Go To Bottom Hover",precondition:EditorContextKeys.hoverFocused,kbOpts:{kbExpr:EditorContextKeys.hoverFocused,primary:13,secondary:[2066],weight:100}})}run(e,t){const i=ModesHoverController.get(t);i&&i.goToBottom()}}registerEditorContribution(ModesHoverController.ID,ModesHoverController,2);registerEditorAction(ShowOrFocusHoverAction);registerEditorAction(ShowDefinitionPreviewHoverAction);registerEditorAction(ScrollUpHoverAction);registerEditorAction(ScrollDownHoverAction);registerEditorAction(ScrollLeftHoverAction);registerEditorAction(ScrollRightHoverAction);registerEditorAction(PageUpHoverAction);registerEditorAction(PageDownHoverAction);registerEditorAction(GoToTopHoverAction);registerEditorAction(GoToBottomHoverAction);HoverParticipantRegistry.register(MarkdownHoverParticipant);HoverParticipantRegistry.register(MarkerHoverParticipant);registerThemingParticipant((o,e)=>{const t=o.getColor(editorHoverBorder);t&&(e.addRule(`.monaco-editor .monaco-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${t.transparent(.5)}; }`),e.addRule(`.monaco-editor .monaco-hover hr { border-top: 1px solid ${t.transparent(.5)}; }`),e.addRule(`.monaco-editor .monaco-hover hr { border-bottom: 0px solid ${t.transparent(.5)}; }`))});class ColorContribution extends Disposable{constructor(e){super(),this._editor=e,this._register(e.onMouseDown(t=>this.onMouseDown(t)))}dispose(){super.dispose()}onMouseDown(e){const t=this._editor.getOption(146);if(t!=="click"&&t!=="clickAndHover")return;const i=e.target;if(i.type!==6||!i.detail.injectedText||i.detail.injectedText.options.attachedData!==ColorDecorationInjectedTextMarker||!i.range)return;const n=this._editor.getContribution(ModesHoverController.ID);if(n&&!n.isColorPickerVisible){const r=new Range$2(i.range.startLineNumber,i.range.startColumn+1,i.range.endLineNumber,i.range.endColumn+1);n.showContentHover(r,1,0,!1,!0)}}}ColorContribution.ID="editor.contrib.colorContribution";registerEditorContribution(ColorContribution.ID,ColorContribution,2);HoverParticipantRegistry.register(ColorHoverParticipant);var __decorate$Y=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$Y=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$K=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},StandaloneColorPickerController_1,StandaloneColorPickerWidget_1;let StandaloneColorPickerController=StandaloneColorPickerController_1=class extends Disposable{constructor(e,t,i,n,r,s,a){super(),this._editor=e,this._modelService=i,this._keybindingService=n,this._instantiationService=r,this._languageFeatureService=s,this._languageConfigurationService=a,this._standaloneColorPickerWidget=null,this._standaloneColorPickerVisible=EditorContextKeys.standaloneColorPickerVisible.bindTo(t),this._standaloneColorPickerFocused=EditorContextKeys.standaloneColorPickerFocused.bindTo(t)}showOrFocus(){var e;this._editor.hasModel()&&(this._standaloneColorPickerVisible.get()?this._standaloneColorPickerFocused.get()||(e=this._standaloneColorPickerWidget)===null||e===void 0||e.focus():this._standaloneColorPickerWidget=new StandaloneColorPickerWidget(this._editor,this._standaloneColorPickerVisible,this._standaloneColorPickerFocused,this._instantiationService,this._modelService,this._keybindingService,this._languageFeatureService,this._languageConfigurationService))}hide(){var e;this._standaloneColorPickerFocused.set(!1),this._standaloneColorPickerVisible.set(!1),(e=this._standaloneColorPickerWidget)===null||e===void 0||e.hide(),this._editor.focus()}insertColor(){var e;(e=this._standaloneColorPickerWidget)===null||e===void 0||e.updateEditor(),this.hide()}static get(e){return e.getContribution(StandaloneColorPickerController_1.ID)}};StandaloneColorPickerController.ID="editor.contrib.standaloneColorPickerController";StandaloneColorPickerController=StandaloneColorPickerController_1=__decorate$Y([__param$Y(1,IContextKeyService),__param$Y(2,IModelService),__param$Y(3,IKeybindingService),__param$Y(4,IInstantiationService),__param$Y(5,ILanguageFeaturesService),__param$Y(6,ILanguageConfigurationService)],StandaloneColorPickerController);registerEditorContribution(StandaloneColorPickerController.ID,StandaloneColorPickerController,1);const PADDING=8,CLOSE_BUTTON_WIDTH=22;let StandaloneColorPickerWidget=StandaloneColorPickerWidget_1=class extends Disposable{constructor(e,t,i,n,r,s,a,l){var d;super(),this._editor=e,this._standaloneColorPickerVisible=t,this._standaloneColorPickerFocused=i,this._modelService=r,this._keybindingService=s,this._languageFeaturesService=a,this._languageConfigurationService=l,this.allowEditorOverflow=!0,this._position=void 0,this._body=document.createElement("div"),this._colorHover=null,this._selectionSetInEditor=!1,this._onResult=this._register(new Emitter$1),this.onResult=this._onResult.event,this._standaloneColorPickerVisible.set(!0),this._standaloneColorPickerParticipant=n.createInstance(StandaloneColorPickerParticipant,this._editor),this._position=(d=this._editor._getViewModel())===null||d===void 0?void 0:d.getPrimaryCursorState().modelState.position;const c=this._editor.getSelection(),u=c?{startLineNumber:c.startLineNumber,startColumn:c.startColumn,endLineNumber:c.endLineNumber,endColumn:c.endColumn}:{startLineNumber:0,endLineNumber:0,endColumn:0,startColumn:0},g=this._register(trackFocus(this._body));this._register(g.onDidBlur(f=>{this.hide()})),this._register(g.onDidFocus(f=>{this.focus()})),this._register(this._editor.onDidChangeCursorPosition(()=>{this._selectionSetInEditor?this._selectionSetInEditor=!1:this.hide()})),this._register(this._editor.onMouseMove(f=>{var p;const m=(p=f.target.element)===null||p===void 0?void 0:p.classList;m&&m.contains("colorpicker-color-decoration")&&this.hide()})),this._register(this.onResult(f=>{this._render(f.value,f.foundInEditor)})),this._start(u),this._body.style.zIndex="50",this._editor.addContentWidget(this)}updateEditor(){this._colorHover&&this._standaloneColorPickerParticipant.updateEditorModel(this._colorHover)}getId(){return StandaloneColorPickerWidget_1.ID}getDomNode(){return this._body}getPosition(){if(!this._position)return null;const e=this._editor.getOption(60).above;return{position:this._position,secondaryPosition:this._position,preference:e?[1,2]:[2,1],positionAffinity:2}}hide(){this.dispose(),this._standaloneColorPickerVisible.set(!1),this._standaloneColorPickerFocused.set(!1),this._editor.removeContentWidget(this),this._editor.focus()}focus(){this._standaloneColorPickerFocused.set(!0),this._body.focus()}_start(e){return __awaiter$K(this,void 0,void 0,function*(){const t=yield this._computeAsync(e);t&&this._onResult.fire(new StandaloneColorPickerResult(t.result,t.foundInEditor))})}_computeAsync(e){return __awaiter$K(this,void 0,void 0,function*(){if(!this._editor.hasModel())return null;const t={range:e,color:{red:0,green:0,blue:0,alpha:1}},i=yield this._standaloneColorPickerParticipant.createColorHover(t,new DefaultDocumentColorProvider(this._modelService,this._languageConfigurationService),this._languageFeaturesService.colorProvider);return i?{result:i.colorHover,foundInEditor:i.foundInEditor}:null})}_render(e,t){const i=document.createDocumentFragment(),n=this._register(new EditorHoverStatusBar(this._keybindingService));let r;const s={fragment:i,statusBar:n,setColorPicker:m=>r=m,onContentsChanged:()=>{},hide:()=>this.hide()};if(this._colorHover=e,this._register(this._standaloneColorPickerParticipant.renderHoverParts(s,[e])),r===void 0)return;this._body.classList.add("standalone-colorpicker-body"),this._body.style.maxHeight=Math.max(this._editor.getLayoutInfo().height/4,250)+"px",this._body.style.maxWidth=Math.max(this._editor.getLayoutInfo().width*.66,500)+"px",this._body.tabIndex=0,this._body.appendChild(i),r.layout();const a=r.body,l=a.saturationBox.domNode.clientWidth,d=a.domNode.clientWidth-l-CLOSE_BUTTON_WIDTH-PADDING,c=r.body.enterButton;c==null||c.onClicked(()=>{this.updateEditor(),this.hide()});const u=r.header,g=u.pickedColorNode;g.style.width=l+PADDING+"px";const f=u.originalColorNode;f.style.width=d+"px";const p=r.header.closeButton;p==null||p.onClicked(()=>{this.hide()}),t&&(c&&(c.button.textContent="Replace"),this._selectionSetInEditor=!0,this._editor.setSelection(e.range)),this._editor.layoutContentWidget(this)}};StandaloneColorPickerWidget.ID="editor.contrib.standaloneColorPickerWidget";StandaloneColorPickerWidget=StandaloneColorPickerWidget_1=__decorate$Y([__param$Y(3,IInstantiationService),__param$Y(4,IModelService),__param$Y(5,IKeybindingService),__param$Y(6,ILanguageFeaturesService),__param$Y(7,ILanguageConfigurationService)],StandaloneColorPickerWidget);class StandaloneColorPickerResult{constructor(e,t){this.value=e,this.foundInEditor=t}}class ShowOrFocusStandaloneColorPicker extends EditorAction2{constructor(){super({id:"editor.action.showOrFocusStandaloneColorPicker",title:{value:localize("showOrFocusStandaloneColorPicker","Show or Focus Standalone Color Picker"),mnemonicTitle:localize({},"&&Show or Focus Standalone Color Picker"),original:"Show or Focus Standalone Color Picker"},precondition:void 0,menu:[{id:MenuId.CommandPalette}]})}runEditorCommand(e,t){var i;(i=StandaloneColorPickerController.get(t))===null||i===void 0||i.showOrFocus()}}class HideStandaloneColorPicker extends EditorAction{constructor(){super({id:"editor.action.hideColorPicker",label:localize({},"Hide the Color Picker"),alias:"Hide the Color Picker",precondition:EditorContextKeys.standaloneColorPickerVisible.isEqualTo(!0),kbOpts:{primary:9,weight:100}})}run(e,t){var i;(i=StandaloneColorPickerController.get(t))===null||i===void 0||i.hide()}}class InsertColorWithStandaloneColorPicker extends EditorAction{constructor(){super({id:"editor.action.insertColorWithStandaloneColorPicker",label:localize({},"Insert Color with Standalone Color Picker"),alias:"Insert Color with Standalone Color Picker",precondition:EditorContextKeys.standaloneColorPickerFocused.isEqualTo(!0),kbOpts:{primary:3,weight:100}})}run(e,t){var i;(i=StandaloneColorPickerController.get(t))===null||i===void 0||i.insertColor()}}registerEditorAction(HideStandaloneColorPicker);registerEditorAction(InsertColorWithStandaloneColorPicker);registerAction2(ShowOrFocusStandaloneColorPicker);class BlockCommentCommand{constructor(e,t,i){this.languageConfigurationService=i,this._selection=e,this._insertSpace=t,this._usedEndToken=null}static _haystackHasNeedleAtOffset(e,t,i){if(i<0)return!1;const n=t.length,r=e.length;if(i+n>r)return!1;for(let s=0;s<n;s++){const a=e.charCodeAt(i+s),l=t.charCodeAt(s);if(a!==l&&!(a>=65&&a<=90&&a+32===l)&&!(l>=65&&l<=90&&l+32===a))return!1}return!0}_createOperationsForBlockComment(e,t,i,n,r,s){const a=e.startLineNumber,l=e.startColumn,d=e.endLineNumber,c=e.endColumn,u=r.getLineContent(a),g=r.getLineContent(d);let f=u.lastIndexOf(t,l-1+t.length),p=g.indexOf(i,c-1-i.length);if(f!==-1&&p!==-1)if(a===d)u.substring(f+t.length,p).indexOf(i)>=0&&(f=-1,p=-1);else{const b=u.substring(f+t.length),_=g.substring(0,p);(b.indexOf(i)>=0||_.indexOf(i)>=0)&&(f=-1,p=-1)}let m;f!==-1&&p!==-1?(n&&f+t.length<u.length&&u.charCodeAt(f+t.length)===32&&(t=t+" "),n&&p>0&&g.charCodeAt(p-1)===32&&(i=" "+i,p-=1),m=BlockCommentCommand._createRemoveBlockCommentOperations(new Range$2(a,f+t.length+1,d,p+1),t,i)):(m=BlockCommentCommand._createAddBlockCommentOperations(e,t,i,this._insertSpace),this._usedEndToken=m.length===1?i:null);for(const b of m)s.addTrackedEditOperation(b.range,b.text)}static _createRemoveBlockCommentOperations(e,t,i){const n=[];return Range$2.isEmpty(e)?n.push(EditOperation.delete(new Range$2(e.startLineNumber,e.startColumn-t.length,e.endLineNumber,e.endColumn+i.length))):(n.push(EditOperation.delete(new Range$2(e.startLineNumber,e.startColumn-t.length,e.startLineNumber,e.startColumn))),n.push(EditOperation.delete(new Range$2(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn+i.length)))),n}static _createAddBlockCommentOperations(e,t,i,n){const r=[];return Range$2.isEmpty(e)?r.push(EditOperation.replace(new Range$2(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),t+" "+i)):(r.push(EditOperation.insert(new Position$1(e.startLineNumber,e.startColumn),t+(n?" ":""))),r.push(EditOperation.insert(new Position$1(e.endLineNumber,e.endColumn),(n?" ":"")+i))),r}getEditOperations(e,t){const i=this._selection.startLineNumber,n=this._selection.startColumn;e.tokenization.tokenizeIfCheap(i);const r=e.getLanguageIdAtPosition(i,n),s=this.languageConfigurationService.getLanguageConfiguration(r).comments;!s||!s.blockCommentStartToken||!s.blockCommentEndToken||this._createOperationsForBlockComment(this._selection,s.blockCommentStartToken,s.blockCommentEndToken,this._insertSpace,e,t)}computeCursorState(e,t){const i=t.getInverseEditOperations();if(i.length===2){const n=i[0],r=i[1];return new Selection$1(n.range.endLineNumber,n.range.endColumn,r.range.startLineNumber,r.range.startColumn)}else{const n=i[0].range,r=this._usedEndToken?-this._usedEndToken.length-1:0;return new Selection$1(n.endLineNumber,n.endColumn+r,n.endLineNumber,n.endColumn+r)}}}class LineCommentCommand{constructor(e,t,i,n,r,s,a){this.languageConfigurationService=e,this._selection=t,this._tabSize=i,this._type=n,this._insertSpace=r,this._selectionId=null,this._deltaColumn=0,this._moveEndPositionDown=!1,this._ignoreEmptyLines=s,this._ignoreFirstLine=a||!1}static _gatherPreflightCommentStrings(e,t,i,n){e.tokenization.tokenizeIfCheap(t);const r=e.getLanguageIdAtPosition(t,1),s=n.getLanguageConfiguration(r).comments,a=s?s.lineCommentToken:null;if(!a)return null;const l=[];for(let d=0,c=i-t+1;d<c;d++)l[d]={ignore:!1,commentStr:a,commentStrOffset:0,commentStrLength:a.length};return l}static _analyzeLines(e,t,i,n,r,s,a,l){let d=!0,c;e===0?c=!0:e===1?c=!1:c=!0;for(let u=0,g=n.length;u<g;u++){const f=n[u],p=r+u;if(p===r&&a){f.ignore=!0;continue}const m=i.getLineContent(p),b=firstNonWhitespaceIndex(m);if(b===-1){f.ignore=s,f.commentStrOffset=m.length;continue}if(d=!1,f.ignore=!1,f.commentStrOffset=b,c&&!BlockCommentCommand._haystackHasNeedleAtOffset(m,f.commentStr,b)&&(e===0?c=!1:e===1||(f.ignore=!0)),c&&t){const _=b+f.commentStrLength;_<m.length&&m.charCodeAt(_)===32&&(f.commentStrLength+=1)}}if(e===0&&d){c=!1;for(let u=0,g=n.length;u<g;u++)n[u].ignore=!1}return{supported:!0,shouldRemoveComments:c,lines:n}}static _gatherPreflightData(e,t,i,n,r,s,a,l){const d=LineCommentCommand._gatherPreflightCommentStrings(i,n,r,l);return d===null?{supported:!1}:LineCommentCommand._analyzeLines(e,t,i,d,n,s,a,l)}_executeLineComments(e,t,i,n){let r;i.shouldRemoveComments?r=LineCommentCommand._createRemoveLineCommentsOperations(i.lines,n.startLineNumber):(LineCommentCommand._normalizeInsertionPoint(e,i.lines,n.startLineNumber,this._tabSize),r=this._createAddLineCommentsOperations(i.lines,n.startLineNumber));const s=new Position$1(n.positionLineNumber,n.positionColumn);for(let a=0,l=r.length;a<l;a++)t.addEditOperation(r[a].range,r[a].text),Range$2.isEmpty(r[a].range)&&Range$2.getStartPosition(r[a].range).equals(s)&&e.getLineContent(s.lineNumber).length+1===s.column&&(this._deltaColumn=(r[a].text||"").length);this._selectionId=t.trackSelection(n)}_attemptRemoveBlockComment(e,t,i,n){let r=t.startLineNumber,s=t.endLineNumber;const a=n.length+Math.max(e.getLineFirstNonWhitespaceColumn(t.startLineNumber),t.startColumn);let l=e.getLineContent(r).lastIndexOf(i,a-1),d=e.getLineContent(s).indexOf(n,t.endColumn-1-i.length);return l!==-1&&d===-1&&(d=e.getLineContent(r).indexOf(n,l+i.length),s=r),l===-1&&d!==-1&&(l=e.getLineContent(s).lastIndexOf(i,d),r=s),t.isEmpty()&&(l===-1||d===-1)&&(l=e.getLineContent(r).indexOf(i),l!==-1&&(d=e.getLineContent(r).indexOf(n,l+i.length))),l!==-1&&e.getLineContent(r).charCodeAt(l+i.length)===32&&(i+=" "),d!==-1&&e.getLineContent(s).charCodeAt(d-1)===32&&(n=" "+n,d-=1),l!==-1&&d!==-1?BlockCommentCommand._createRemoveBlockCommentOperations(new Range$2(r,l+i.length+1,s,d+1),i,n):null}_executeBlockComment(e,t,i){e.tokenization.tokenizeIfCheap(i.startLineNumber);const n=e.getLanguageIdAtPosition(i.startLineNumber,1),r=this.languageConfigurationService.getLanguageConfiguration(n).comments;if(!r||!r.blockCommentStartToken||!r.blockCommentEndToken)return;const s=r.blockCommentStartToken,a=r.blockCommentEndToken;let l=this._attemptRemoveBlockComment(e,i,s,a);if(!l){if(i.isEmpty()){const d=e.getLineContent(i.startLineNumber);let c=firstNonWhitespaceIndex(d);c===-1&&(c=d.length),l=BlockCommentCommand._createAddBlockCommentOperations(new Range$2(i.startLineNumber,c+1,i.startLineNumber,d.length+1),s,a,this._insertSpace)}else l=BlockCommentCommand._createAddBlockCommentOperations(new Range$2(i.startLineNumber,e.getLineFirstNonWhitespaceColumn(i.startLineNumber),i.endLineNumber,e.getLineMaxColumn(i.endLineNumber)),s,a,this._insertSpace);l.length===1&&(this._deltaColumn=s.length+1)}this._selectionId=t.trackSelection(i);for(const d of l)t.addEditOperation(d.range,d.text)}getEditOperations(e,t){let i=this._selection;if(this._moveEndPositionDown=!1,i.startLineNumber===i.endLineNumber&&this._ignoreFirstLine){t.addEditOperation(new Range$2(i.startLineNumber,e.getLineMaxColumn(i.startLineNumber),i.startLineNumber+1,1),i.startLineNumber===e.getLineCount()?"":`
- `),this._selectionId=t.trackSelection(i);return}i.startLineNumber<i.endLineNumber&&i.endColumn===1&&(this._moveEndPositionDown=!0,i=i.setEndPosition(i.endLineNumber-1,e.getLineMaxColumn(i.endLineNumber-1)));const n=LineCommentCommand._gatherPreflightData(this._type,this._insertSpace,e,i.startLineNumber,i.endLineNumber,this._ignoreEmptyLines,this._ignoreFirstLine,this.languageConfigurationService);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 Selection$1(i.selectionStartLineNumber,i.selectionStartColumn+this._deltaColumn,i.positionLineNumber,i.positionColumn+this._deltaColumn)}static _createRemoveLineCommentsOperations(e,t){const i=[];for(let n=0,r=e.length;n<r;n++){const s=e[n];s.ignore||i.push(EditOperation.delete(new Range$2(t+n,s.commentStrOffset+1,t+n,s.commentStrOffset+s.commentStrLength+1)))}return i}_createAddLineCommentsOperations(e,t){const i=[],n=this._insertSpace?" ":"";for(let r=0,s=e.length;r<s;r++){const a=e[r];a.ignore||i.push(EditOperation.insert(new Position$1(t+r,a.commentStrOffset+1),a.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 r=1073741824,s,a;for(let l=0,d=t.length;l<d;l++){if(t[l].ignore)continue;const c=e.getLineContent(i+l);let u=0;for(let g=0,f=t[l].commentStrOffset;u<r&&g<f;g++)u=LineCommentCommand.nextVisibleColumn(u,n,c.charCodeAt(g)===9,1);u<r&&(r=u)}r=Math.floor(r/n)*n;for(let l=0,d=t.length;l<d;l++){if(t[l].ignore)continue;const c=e.getLineContent(i+l);let u=0;for(s=0,a=t[l].commentStrOffset;u<r&&s<a;s++)u=LineCommentCommand.nextVisibleColumn(u,n,c.charCodeAt(s)===9,1);u>r?t[l].commentStrOffset=s-1:t[l].commentStrOffset=s}}}class CommentLineAction extends EditorAction{constructor(e,t){super(t),this._type=e}run(e,t){const i=e.get(ILanguageConfigurationService);if(!t.hasModel())return;const n=t.getModel(),r=[],s=n.getOptions(),a=t.getOption(23),l=t.getSelections().map((c,u)=>({selection:c,index:u,ignoreFirstLine:!1}));l.sort((c,u)=>Range$2.compareRangesUsingStarts(c.selection,u.selection));let d=l[0];for(let c=1;c<l.length;c++){const u=l[c];d.selection.endLineNumber===u.selection.startLineNumber&&(d.index<u.index?u.ignoreFirstLine=!0:(d.ignoreFirstLine=!0,d=u))}for(const c of l)r.push(new LineCommentCommand(i,c.selection,s.tabSize,this._type,a.insertSpace,a.ignoreEmptyLines,c.ignoreFirstLine));t.pushUndoStop(),t.executeCommands(this.id,r),t.pushUndoStop()}}class ToggleCommentLineAction extends CommentLineAction{constructor(){super(0,{id:"editor.action.commentLine",label:localize("comment.line","Toggle Line Comment"),alias:"Toggle Line Comment",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:2138,weight:100},menuOpts:{menuId:MenuId.MenubarEditMenu,group:"5_insert",title:localize({},"&&Toggle Line Comment"),order:1}})}}class AddLineCommentAction extends CommentLineAction{constructor(){super(1,{id:"editor.action.addCommentLine",label:localize("comment.line.add","Add Line Comment"),alias:"Add Line Comment",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2081),weight:100}})}}class RemoveLineCommentAction extends CommentLineAction{constructor(){super(2,{id:"editor.action.removeCommentLine",label:localize("comment.line.remove","Remove Line Comment"),alias:"Remove Line Comment",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2099),weight:100}})}}class BlockCommentAction extends EditorAction{constructor(){super({id:"editor.action.blockComment",label:localize("comment.block","Toggle Block Comment"),alias:"Toggle Block Comment",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:1567,linux:{primary:3103},weight:100},menuOpts:{menuId:MenuId.MenubarEditMenu,group:"5_insert",title:localize({},"Toggle &&Block Comment"),order:2}})}run(e,t){const i=e.get(ILanguageConfigurationService);if(!t.hasModel())return;const n=t.getOption(23),r=[],s=t.getSelections();for(const a of s)r.push(new BlockCommentCommand(a,n.insertSpace,i));t.pushUndoStop(),t.executeCommands(this.id,r),t.pushUndoStop()}}registerEditorAction(ToggleCommentLineAction);registerEditorAction(AddLineCommentAction);registerEditorAction(RemoveLineCommentAction);registerEditorAction(BlockCommentAction);var __decorate$X=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$X=function(o,e){return function(t,i){e(t,i,o)}},ContextMenuController_1;let ContextMenuController=ContextMenuController_1=class{static get(e){return e.getContribution(ContextMenuController_1.ID)}constructor(e,t,i,n,r,s,a,l){this._contextMenuService=t,this._contextViewService=i,this._contextKeyService=n,this._keybindingService=r,this._menuService=s,this._configurationService=a,this._workspaceContextService=l,this._toDispose=new DisposableStore,this._contextMenuIsBeingShownCount=0,this._editor=e,this._toDispose.add(this._editor.onContextMenu(d=>this._onContextMenu(d))),this._toDispose.add(this._editor.onMouseWheel(d=>{if(this._contextMenuIsBeingShownCount>0){const c=this._contextViewService.getContextViewElement(),u=d.srcElement;u.shadowRoot&&getShadowRoot(c)===u.shadowRoot||this._contextViewService.hideContextView()}})),this._toDispose.add(this._editor.onKeyDown(d=>{this._editor.getOption(24)&&d.keyCode===58&&(d.preventDefault(),d.stopPropagation(),this.showContextMenu())}))}_onContextMenu(e){if(!this._editor.hasModel())return;if(!this._editor.getOption(24)){this._editor.focus(),e.target.position&&!this._editor.getSelection().containsPosition(e.target.position)&&this._editor.setPosition(e.target.position);return}if(e.target.type===12||e.target.type===6&&e.target.detail.injectedText)return;if(e.event.preventDefault(),e.event.stopPropagation(),e.target.type===11)return this._showScrollbarContextMenu(e.event);if(e.target.type!==6&&e.target.type!==7&&e.target.type!==1)return;if(this._editor.focus(),e.target.position){let i=!1;for(const n of this._editor.getSelections())if(n.containsPosition(e.target.position)){i=!0;break}i||this._editor.setPosition(e.target.position)}let t=null;e.target.type!==1&&(t=e.event),this.showContextMenu(t)}showContextMenu(e){if(!this._editor.getOption(24)||!this._editor.hasModel())return;const t=this._getMenuActions(this._editor.getModel(),this._editor.isSimpleWidget?MenuId.SimpleEditorContext:MenuId.EditorContext);t.length>0&&this._doShowContextMenu(t,e)}_getMenuActions(e,t){const i=[],n=this._menuService.createMenu(t,this._contextKeyService),r=n.getActions({arg:e.uri});n.dispose();for(const s of r){const[,a]=s;let l=0;for(const d of a)if(d instanceof SubmenuItemAction){const c=this._getMenuActions(e,d.item.submenu);c.length>0&&(i.push(new SubmenuAction(d.id,d.label,c)),l++)}else i.push(d),l++;l&&i.push(new Separator)}return i.length&&i.pop(),i}_doShowContextMenu(e,t=null){if(!this._editor.hasModel())return;const i=this._editor.getOption(60);this._editor.updateOptions({hover:{enabled:!1}});let n=t;if(!n){this._editor.revealPosition(this._editor.getPosition(),1),this._editor.render();const s=this._editor.getScrolledVisiblePosition(this._editor.getPosition()),a=getDomNodePagePosition(this._editor.getDomNode()),l=a.left+s.left,d=a.top+s.top+s.height;n={x:l,y:d}}const r=this._editor.getOption(126)&&!isIOS;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:r?this._editor.getDomNode():void 0,getAnchor:()=>n,getActions:()=>e,getActionViewItem:s=>{const a=this._keybindingFor(s);if(a)return new ActionViewItem(s,s,{label:!0,keybinding:a.getLabel(),isMenu:!0});const l=s;return typeof l.getActionViewItem=="function"?l.getActionViewItem():new ActionViewItem(s,s,{icon:!0,label:!0,isMenu:!0})},getKeyBinding:s=>this._keybindingFor(s),onHide:s=>{this._contextMenuIsBeingShownCount--,this._editor.updateOptions({hover:i})}})}_showScrollbarContextMenu(e){if(!this._editor.hasModel()||isStandaloneEditorWorkspace(this._workspaceContextService.getWorkspace()))return;const t=this._editor.getOption(72);let i=0;const n=d=>({id:`menu-action-${++i}`,label:d.label,tooltip:"",class:void 0,enabled:typeof d.enabled>"u"?!0:d.enabled,checked:d.checked,run:d.run}),r=(d,c)=>new SubmenuAction(`menu-action-${++i}`,d,c,void 0),s=(d,c,u,g,f)=>{if(!c)return n({label:d,enabled:c,run:()=>{}});const p=b=>()=>{this._configurationService.updateValue(u,b)},m=[];for(const b of f)m.push(n({label:b.label,checked:g===b.value,run:p(b.value)}));return r(d,m)},a=[];a.push(n({label:localize("context.minimap.minimap","Minimap"),checked:t.enabled,run:()=>{this._configurationService.updateValue("editor.minimap.enabled",!t.enabled)}})),a.push(new Separator),a.push(n({label:localize("context.minimap.renderCharacters","Render Characters"),enabled:t.enabled,checked:t.renderCharacters,run:()=>{this._configurationService.updateValue("editor.minimap.renderCharacters",!t.renderCharacters)}})),a.push(s(localize("context.minimap.size","Vertical size"),t.enabled,"editor.minimap.size",t.size,[{label:localize("context.minimap.size.proportional","Proportional"),value:"proportional"},{label:localize("context.minimap.size.fill","Fill"),value:"fill"},{label:localize("context.minimap.size.fit","Fit"),value:"fit"}])),a.push(s(localize("context.minimap.slider","Slider"),t.enabled,"editor.minimap.showSlider",t.showSlider,[{label:localize("context.minimap.slider.mouseover","Mouse Over"),value:"mouseover"},{label:localize("context.minimap.slider.always","Always"),value:"always"}]));const l=this._editor.getOption(126)&&!isIOS;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:l?this._editor.getDomNode():void 0,getAnchor:()=>e,getActions:()=>a,onHide:d=>{this._contextMenuIsBeingShownCount--,this._editor.focus()}})}_keybindingFor(e){return this._keybindingService.lookupKeybinding(e.id)}dispose(){this._contextMenuIsBeingShownCount>0&&this._contextViewService.hideContextView(),this._toDispose.dispose()}};ContextMenuController.ID="editor.contrib.contextmenu";ContextMenuController=ContextMenuController_1=__decorate$X([__param$X(1,IContextMenuService),__param$X(2,IContextViewService),__param$X(3,IContextKeyService),__param$X(4,IKeybindingService),__param$X(5,IMenuService),__param$X(6,IConfigurationService),__param$X(7,IWorkspaceContextService)],ContextMenuController);class ShowContextMenu extends EditorAction{constructor(){super({id:"editor.action.showContextMenu",label:localize("action.showContextMenu.label","Show Editor Context Menu"),alias:"Show Editor Context Menu",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:1092,weight:100}})}run(e,t){var i;(i=ContextMenuController.get(t))===null||i===void 0||i.showContextMenu()}}registerEditorContribution(ContextMenuController.ID,ContextMenuController,2);registerEditorAction(ShowContextMenu);class CursorState{constructor(e){this.selections=e}equals(e){const t=this.selections.length,i=e.selections.length;if(t!==i)return!1;for(let n=0;n<t;n++)if(!this.selections[n].equalsSelection(e.selections[n]))return!1;return!0}}class StackElement{constructor(e,t,i){this.cursorState=e,this.scrollTop=t,this.scrollLeft=i}}class CursorUndoRedoController extends Disposable{static get(e){return e.getContribution(CursorUndoRedoController.ID)}constructor(e){super(),this._editor=e,this._isCursorUndoRedo=!1,this._undoStack=[],this._redoStack=[],this._register(e.onDidChangeModel(t=>{this._undoStack=[],this._redoStack=[]})),this._register(e.onDidChangeModelContent(t=>{this._undoStack=[],this._redoStack=[]})),this._register(e.onDidChangeCursorSelection(t=>{if(this._isCursorUndoRedo||!t.oldSelections||t.oldModelVersionId!==t.modelVersionId)return;const i=new CursorState(t.oldSelections);this._undoStack.length>0&&this._undoStack[this._undoStack.length-1].cursorState.equals(i)||(this._undoStack.push(new StackElement(i,e.getScrollTop(),e.getScrollLeft())),this._redoStack=[],this._undoStack.length>50&&this._undoStack.shift())}))}cursorUndo(){!this._editor.hasModel()||this._undoStack.length===0||(this._redoStack.push(new StackElement(new CursorState(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._undoStack.pop()))}cursorRedo(){!this._editor.hasModel()||this._redoStack.length===0||(this._undoStack.push(new StackElement(new CursorState(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}}CursorUndoRedoController.ID="editor.contrib.cursorUndoRedoController";class CursorUndo extends EditorAction{constructor(){super({id:"cursorUndo",label:localize("cursor.undo","Cursor Undo"),alias:"Cursor Undo",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:2099,weight:100}})}run(e,t,i){var n;(n=CursorUndoRedoController.get(t))===null||n===void 0||n.cursorUndo()}}class CursorRedo extends EditorAction{constructor(){super({id:"cursorRedo",label:localize("cursor.redo","Cursor Redo"),alias:"Cursor Redo",precondition:void 0})}run(e,t,i){var n;(n=CursorUndoRedoController.get(t))===null||n===void 0||n.cursorRedo()}}registerEditorContribution(CursorUndoRedoController.ID,CursorUndoRedoController,0);registerEditorAction(CursorUndo);registerEditorAction(CursorRedo);class DragAndDropCommand{constructor(e,t,i){this.selection=e,this.targetPosition=t,this.copy=i,this.targetSelection=null}getEditOperations(e,t){const i=e.getValueInRange(this.selection);if(this.copy||t.addEditOperation(this.selection,null),t.addEditOperation(new Range$2(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.targetSelection=this.selection;return}if(this.copy){this.targetSelection=new Selection$1(this.targetPosition.lineNumber,this.targetPosition.column,this.selection.endLineNumber-this.selection.startLineNumber+this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.targetPosition.lineNumber>this.selection.endLineNumber){this.targetSelection=new Selection$1(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.targetPosition.lineNumber<this.selection.endLineNumber){this.targetSelection=new Selection$1(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);return}this.selection.endColumn<=this.targetPosition.column?this.targetSelection=new Selection$1(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.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 Selection$1(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column+this.selection.endColumn-this.selection.startColumn)}computeCursorState(e,t){return this.targetSelection}}function hasTriggerModifier(o){return isMacintosh?o.altKey:o.ctrlKey}class DragAndDropController extends Disposable{constructor(e){super(),this._editor=e,this._dndDecorationIds=this._editor.createDecorationsCollection(),this._register(this._editor.onMouseDown(t=>this._onEditorMouseDown(t))),this._register(this._editor.onMouseUp(t=>this._onEditorMouseUp(t))),this._register(this._editor.onMouseDrag(t=>this._onEditorMouseDrag(t))),this._register(this._editor.onMouseDrop(t=>this._onEditorMouseDrop(t))),this._register(this._editor.onMouseDropCanceled(()=>this._onEditorMouseDropCanceled())),this._register(this._editor.onKeyDown(t=>this.onEditorKeyDown(t))),this._register(this._editor.onKeyUp(t=>this.onEditorKeyUp(t))),this._register(this._editor.onDidBlurEditorWidget(()=>this.onEditorBlur())),this._register(this._editor.onDidBlurEditorText(()=>this.onEditorBlur())),this._mouseDown=!1,this._modifierPressed=!1,this._dragSelection=null}onEditorBlur(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1}onEditorKeyDown(e){!this._editor.getOption(35)||this._editor.getOption(22)||(hasTriggerModifier(e)&&(this._modifierPressed=!0),this._mouseDown&&hasTriggerModifier(e)&&this._editor.updateOptions({mouseStyle:"copy"}))}onEditorKeyUp(e){!this._editor.getOption(35)||this._editor.getOption(22)||(hasTriggerModifier(e)&&(this._modifierPressed=!1),this._mouseDown&&e.keyCode===DragAndDropController.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){const t=e.target;if(this._dragSelection===null){const n=(this._editor.getSelections()||[]).filter(r=>t.position&&r.containsPosition(t.position));if(n.length===1)this._dragSelection=n[0];else return}hasTriggerModifier(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){const t=new Position$1(e.target.position.lineNumber,e.target.position.column);if(this._dragSelection===null){let i=null;if(e.event.shiftKey){const n=this._editor.getSelection();if(n){const{selectionStartLineNumber:r,selectionStartColumn:s}=n;i=[new Selection$1(r,s,t.lineNumber,t.column)]}}else i=(this._editor.getSelections()||[]).map(n=>n.containsPosition(t)?new Selection$1(t.lineNumber,t.column,t.lineNumber,t.column):n);this._editor.setSelections(i||[],"mouse",3)}else(!this._dragSelection.containsPosition(t)||(hasTriggerModifier(e.event)||this._modifierPressed)&&(this._dragSelection.getEndPosition().equals(t)||this._dragSelection.getStartPosition().equals(t)))&&(this._editor.pushUndoStop(),this._editor.executeCommand(DragAndDropController.ID,new DragAndDropCommand(this._dragSelection,t,hasTriggerModifier(e.event)||this._modifierPressed)),this._editor.pushUndoStop())}this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}showAt(e){this._dndDecorationIds.set([{range:new Range$2(e.lineNumber,e.column,e.lineNumber,e.column),options:DragAndDropController._DECORATION_OPTIONS}]),this._editor.revealPosition(e,1)}_removeDecoration(){this._dndDecorationIds.clear()}_hitContent(e){return e.type===6||e.type===7}_hitMargin(e){return e.type===2||e.type===3||e.type===4}dispose(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1,super.dispose()}}DragAndDropController.ID="editor.contrib.dragAndDrop";DragAndDropController.TRIGGER_KEY_VALUE=isMacintosh?6:5;DragAndDropController._DECORATION_OPTIONS=ModelDecorationOptions.register({description:"dnd-target",className:"dnd-target"});registerEditorContribution(DragAndDropController.ID,DragAndDropController,2);const generateUuid=function(){if(typeof crypto=="object"&&typeof crypto.randomUUID=="function")return crypto.randomUUID.bind(crypto);let o;typeof crypto=="object"&&typeof crypto.getRandomValues=="function"?o=crypto.getRandomValues.bind(crypto):o=function(i){for(let n=0;n<i.length;n++)i[n]=Math.floor(Math.random()*256);return i};const e=new Uint8Array(16),t=[];for(let i=0;i<256;i++)t.push(i.toString(16).padStart(2,"0"));return function(){o(e),e[6]=e[6]&15|64,e[8]=e[8]&63|128;let n=0,r="";return r+=t[e[n++]],r+=t[e[n++]],r+=t[e[n++]],r+=t[e[n++]],r+="-",r+=t[e[n++]],r+=t[e[n++]],r+="-",r+=t[e[n++]],r+=t[e[n++]],r+="-",r+=t[e[n++]],r+=t[e[n++]],r+="-",r+=t[e[n++]],r+=t[e[n++]],r+=t[e[n++]],r+=t[e[n++]],r+=t[e[n++]],r+=t[e[n++]],r}}();var __awaiter$J=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};function createStringDataTransferItem(o){return{asString:()=>__awaiter$J(this,void 0,void 0,function*(){return o}),asFile:()=>{},value:typeof o=="string"?o:void 0}}function createFileDataTransferItem(o,e,t){const i={id:generateUuid(),name:o,uri:e,data:t};return{asString:()=>__awaiter$J(this,void 0,void 0,function*(){return""}),asFile:()=>i,value:void 0}}class VSDataTransfer{constructor(){this._entries=new Map}get size(){let e=0;for(const t of this._entries)e++;return e}has(e){return this._entries.has(this.toKey(e))}matches(e){const t=[...this._entries.keys()];return Iterable.some(this,([i,n])=>n.asFile())&&t.push("files"),matchesMimeType_normalized(normalizeMimeType(e),t)}get(e){var t;return(t=this._entries.get(this.toKey(e)))===null||t===void 0?void 0:t[0]}append(e,t){const i=this._entries.get(e);i?i.push(t):this._entries.set(this.toKey(e),[t])}replace(e,t){this._entries.set(this.toKey(e),[t])}delete(e){this._entries.delete(this.toKey(e))}*[Symbol.iterator](){for(const[e,t]of this._entries)for(const i of t)yield[e,i]}toKey(e){return normalizeMimeType(e)}}function normalizeMimeType(o){return o.toLowerCase()}function matchesMimeType(o,e){return matchesMimeType_normalized(normalizeMimeType(o),e.map(normalizeMimeType))}function matchesMimeType_normalized(o,e){if(o==="*/*")return e.length>0;if(e.includes(o))return!0;const t=o.match(/^([a-z]+)\/([a-z]+|\*)$/i);if(!t)return!1;const[i,n,r]=t;return r==="*"?e.some(s=>s.startsWith(n+"/")):!1}const UriList=Object.freeze({create:o=>distinct(o.map(e=>e.toString())).join(`\r
- `),split:o=>o.split(`\r
- `),parse:o=>UriList.split(o).filter(e=>!e.startsWith("#"))}),CodeDataTransfers={EDITORS:"CodeEditors",FILES:"CodeFiles"};class DragAndDropContributionRegistry{}const Extensions={DragAndDropContribution:"workbench.contributions.dragAndDrop"};Registry.add(Extensions.DragAndDropContribution,new DragAndDropContributionRegistry);class LocalSelectionTransfer{constructor(){}static getInstance(){return LocalSelectionTransfer.INSTANCE}hasData(e){return e&&e===this.proto}getData(e){if(this.hasData(e))return this.data}}LocalSelectionTransfer.INSTANCE=new LocalSelectionTransfer;var __awaiter$I=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};function toVSDataTransfer(o){const e=new VSDataTransfer;for(const t of o.items){const i=t.type;if(t.kind==="string"){const n=new Promise(r=>t.getAsString(r));e.append(i,createStringDataTransferItem(n))}else if(t.kind==="file"){const n=t.getAsFile();n&&e.append(i,createFileDataTransferItemFromFile(n))}}return e}function createFileDataTransferItemFromFile(o){const e=o.path?URI.parse(o.path):void 0;return createFileDataTransferItem(o.name,e,()=>__awaiter$I(this,void 0,void 0,function*(){return new Uint8Array(yield o.arrayBuffer())}))}const INTERNAL_DND_MIME_TYPES=Object.freeze([CodeDataTransfers.EDITORS,CodeDataTransfers.FILES,DataTransfers.RESOURCES,DataTransfers.INTERNAL_URI_LIST]);function toExternalVSDataTransfer(o,e=!1){const t=toVSDataTransfer(o),i=t.get(DataTransfers.INTERNAL_URI_LIST);if(i)t.replace(Mimes.uriList,i);else if(e||!t.has(Mimes.uriList)){const n=[];for(const r of o.items){const s=r.getAsFile();if(s){const a=s.path;try{a?n.push(URI.file(a).toString()):n.push(URI.parse(s.name,!0).toString())}catch{}}}n.length&&t.replace(Mimes.uriList,createStringDataTransferItem(UriList.create(n)))}for(const n of INTERNAL_DND_MIME_TYPES)t.delete(n);return t}function createCombinedWorkspaceEdit(o,e,t){var i,n;return{edits:[...e.map(r=>new ResourceTextEdit(o,typeof t.insertText=="string"?{range:r,text:t.insertText,insertAsSnippet:!1}:{range:r,text:t.insertText.snippet,insertAsSnippet:!0})),...(n=(i=t.additionalEdit)===null||i===void 0?void 0:i.edits)!==null&&n!==void 0?n:[]]}}function sortEditsByYieldTo(o){var e;function t(a,l){return"providerId"in a&&a.providerId===l.providerId||"mimeType"in a&&a.mimeType===l.handledMimeType}const i=new Map;for(const a of o)for(const l of(e=a.yieldTo)!==null&&e!==void 0?e:[])for(const d of o)if(d!==a&&t(l,d)){let c=i.get(a);c||(c=[],i.set(a,c)),c.push(d)}if(!i.size)return Array.from(o);const n=new Set,r=[];function s(a){if(!a.length)return[];const l=a[0];if(r.includes(l))return console.warn(`Yield to cycle detected for ${l.providerId}`),a;if(n.has(l))return s(a.slice(1));let d=[];const c=i.get(l);return c&&(r.push(l),d=s(c),r.pop()),n.add(l),[...d,l,...s(a.slice(1))]}return s(Array.from(o))}var __decorate$W=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$W=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$H=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};const inlineProgressDecoration=ModelDecorationOptions.register({description:"inline-progress-widget",stickiness:1,showIfCollapsed:!0,after:{content:noBreakWhitespace,inlineClassName:"inline-editor-progress-decoration",inlineClassNameAffectsLetterSpacing:!0}});class InlineProgressWidget extends Disposable{constructor(e,t,i,n,r){super(),this.typeId=e,this.editor=t,this.range=i,this.delegate=r,this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this.create(n),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this)}create(e){this.domNode=$$d(".inline-progress-widget"),this.domNode.role="button",this.domNode.title=e;const t=$$d("span.icon");this.domNode.append(t),t.classList.add(...ThemeIcon.asClassNameArray(Codicon.loading),"codicon-modifier-spin");const i=()=>{const n=this.editor.getOption(66);this.domNode.style.height=`${n}px`,this.domNode.style.width=`${Math.ceil(.8*n)}px`};i(),this._register(this.editor.onDidChangeConfiguration(n=>{(n.hasChanged(52)||n.hasChanged(66))&&i()})),this._register(addDisposableListener(this.domNode,EventType$1.CLICK,n=>{this.delegate.cancel()}))}getId(){return InlineProgressWidget.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:{lineNumber:this.range.startLineNumber,column:this.range.startColumn},preference:[0]}}dispose(){super.dispose(),this.editor.removeContentWidget(this)}}InlineProgressWidget.baseId="editor.widget.inlineProgressWidget";let InlineProgressManager=class extends Disposable{constructor(e,t,i){super(),this.id=e,this._editor=t,this._instantiationService=i,this._showDelay=500,this._showPromise=this._register(new MutableDisposable),this._currentWidget=new MutableDisposable,this._operationIdPool=0,this._currentDecorations=t.createDecorationsCollection()}showWhile(e,t,i){return __awaiter$H(this,void 0,void 0,function*(){const n=this._operationIdPool++;this._currentOperation=n,this.clear(),this._showPromise.value=disposableTimeout(()=>{const r=Range$2.fromPositions(e);this._currentDecorations.set([{range:r,options:inlineProgressDecoration}]).length>0&&(this._currentWidget.value=this._instantiationService.createInstance(InlineProgressWidget,this.id,this._editor,r,t,i))},this._showDelay);try{return yield i}finally{this._currentOperation===n&&(this.clear(),this._currentOperation=void 0)}})}clear(){this._showPromise.clear(),this._currentDecorations.clear(),this._currentWidget.clear()}};InlineProgressManager=__decorate$W([__param$W(2,IInstantiationService)],InlineProgressManager);var __decorate$V=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$V=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$G=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},PostEditWidget_1;let PostEditWidget=PostEditWidget_1=class extends Disposable{constructor(e,t,i,n,r,s,a,l,d,c){super(),this.typeId=e,this.editor=t,this.showCommand=n,this.range=r,this.edits=s,this.onSelectNewEdit=a,this._contextMenuService=l,this._keybindingService=c,this.allowEditorOverflow=!0,this.suppressMouseDown=!0,this.create(),this.visibleContext=i.bindTo(d),this.visibleContext.set(!0),this._register(toDisposable(()=>this.visibleContext.reset())),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this),this._register(toDisposable(()=>this.editor.removeContentWidget(this))),this._register(this.editor.onDidChangeCursorPosition(u=>{r.containsPosition(u.position)||this.dispose()})),this._register(Event.runAndSubscribe(c.onDidUpdateKeybindings,()=>{this._updateButtonTitle()}))}_updateButtonTitle(){var e;const t=(e=this._keybindingService.lookupKeybinding(this.showCommand.id))===null||e===void 0?void 0:e.getLabel();this.button.element.title=this.showCommand.label+(t?` (${t})`:"")}create(){this.domNode=$$d(".post-edit-widget"),this.button=this._register(new Button(this.domNode,{supportIcons:!0})),this.button.label="$(insert)",this._register(addDisposableListener(this.domNode,EventType$1.CLICK,()=>this.showSelector()))}getId(){return PostEditWidget_1.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:this.range.getEndPosition(),preference:[2]}}showSelector(){this._contextMenuService.showContextMenu({getAnchor:()=>{const e=getDomNodePagePosition(this.button.element);return{x:e.left+e.width,y:e.top+e.height}},getActions:()=>this.edits.allEdits.map((e,t)=>toAction({id:"",label:e.label,checked:t===this.edits.activeEditIndex,run:()=>{if(t!==this.edits.activeEditIndex)return this.onSelectNewEdit(t)}}))})}};PostEditWidget.baseId="editor.widget.postEditWidget";PostEditWidget=PostEditWidget_1=__decorate$V([__param$V(7,IContextMenuService),__param$V(8,IContextKeyService),__param$V(9,IKeybindingService)],PostEditWidget);let PostEditWidgetManager=class extends Disposable{constructor(e,t,i,n,r,s){super(),this._id=e,this._editor=t,this._visibleContext=i,this._showCommand=n,this._instantiationService=r,this._bulkEditService=s,this._currentWidget=this._register(new MutableDisposable),this._register(Event.any(t.onDidChangeModel,t.onDidChangeModelContent)(()=>this.clear()))}applyEditAndShowIfNeeded(e,t,i,n){var r,s;return __awaiter$G(this,void 0,void 0,function*(){const a=this._editor.getModel();if(!a||!e.length)return;const l=t.allEdits[t.activeEditIndex];if(!l)return;let d=[];(typeof l.insertText=="string"?l.insertText==="":l.insertText.snippet==="")?d=[]:d=e.map(b=>new ResourceTextEdit(a.uri,typeof l.insertText=="string"?{range:b,text:l.insertText,insertAsSnippet:!1}:{range:b,text:l.insertText.snippet,insertAsSnippet:!0}));const u={edits:[...d,...(s=(r=l.additionalEdit)===null||r===void 0?void 0:r.edits)!==null&&s!==void 0?s:[]]},g=e[0],f=a.deltaDecorations([],[{range:g,options:{description:"paste-line-suffix",stickiness:0}}]);let p,m;try{p=yield this._bulkEditService.apply(u,{editor:this._editor,token:n}),m=a.getDecorationRange(f[0])}finally{a.deltaDecorations(f,[])}i&&p.isApplied&&t.allEdits.length>1&&this.show(m??g,t,b=>__awaiter$G(this,void 0,void 0,function*(){const _=this._editor.getModel();_&&(yield _.undo(),this.applyEditAndShowIfNeeded(e,{activeEditIndex:b,allEdits:t.allEdits},i,n))}))})}show(e,t,i){this.clear(),this._editor.hasModel()&&(this._currentWidget.value=this._instantiationService.createInstance(PostEditWidget,this._id,this._editor,this._visibleContext,this._showCommand,e,t,i))}clear(){this._currentWidget.clear()}tryShowSelector(){var e;(e=this._currentWidget.value)===null||e===void 0||e.showSelector()}};PostEditWidgetManager=__decorate$V([__param$V(4,IInstantiationService),__param$V(5,IBulkEditService)],PostEditWidgetManager);var __decorate$U=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$U=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$F=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},CopyPasteController_1;const changePasteTypeCommandId="editor.changePasteType",pasteWidgetVisibleCtx=new RawContextKey("pasteWidgetVisible",!1,localize("pasteWidgetVisible","Whether the paste widget is showing")),vscodeClipboardMime="application/vnd.code.copyMetadata";let CopyPasteController=CopyPasteController_1=class extends Disposable{static get(e){return e.getContribution(CopyPasteController_1.ID)}constructor(e,t,i,n,r,s,a){super(),this._bulkEditService=i,this._clipboardService=n,this._languageFeaturesService=r,this._quickInputService=s,this._progressService=a,this._editor=e;const l=e.getContainerDomNode();this._register(addDisposableListener(l,"copy",d=>this.handleCopy(d))),this._register(addDisposableListener(l,"cut",d=>this.handleCopy(d))),this._register(addDisposableListener(l,"paste",d=>this.handlePaste(d),!0)),this._pasteProgressManager=this._register(new InlineProgressManager("pasteIntoEditor",e,t)),this._postPasteWidgetManager=this._register(t.createInstance(PostEditWidgetManager,"pasteIntoEditor",e,pasteWidgetVisibleCtx,{id:changePasteTypeCommandId,label:localize("postPasteWidgetTitle","Show paste options...")}))}changePasteType(){this._postPasteWidgetManager.tryShowSelector()}pasteAs(e){this._editor.focus();try{this._pasteAsActionContext={preferredId:e},getActiveDocument().execCommand("paste")}finally{this._pasteAsActionContext=void 0}}isPasteAsEnabled(){return this._editor.getOption(84).enabled&&!this._editor.getOption(90)}handleCopy(e){var t,i;if(!this._editor.hasTextFocus()||(isWeb&&this._clipboardService.writeResources([]),!e.clipboardData||!this.isPasteAsEnabled()))return;const n=this._editor.getModel(),r=this._editor.getSelections();if(!n||!(r!=null&&r.length))return;const s=this._editor.getOption(37);let a=r;const l=r.length===1&&r[0].isEmpty();if(l){if(!s)return;a=[new Range$2(a[0].startLineNumber,1,a[0].startLineNumber,1+n.getLineLength(a[0].startLineNumber))]}const d=(t=this._editor._getViewModel())===null||t===void 0?void 0:t.getPlainTextToCopy(r,s,isWindows),u={multicursorText:Array.isArray(d)?d:null,pasteOnNewLine:l,mode:null},g=this._languageFeaturesService.documentPasteEditProvider.ordered(n).filter(_=>!!_.prepareDocumentPaste);if(!g.length){this.setCopyMetadata(e.clipboardData,{defaultPastePayload:u});return}const f=toVSDataTransfer(e.clipboardData),p=g.flatMap(_=>{var C;return(C=_.copyMimeTypes)!==null&&C!==void 0?C:[]}),m=generateUuid();this.setCopyMetadata(e.clipboardData,{id:m,providerCopyMimeTypes:p,defaultPastePayload:u});const b=createCancelablePromise(_=>__awaiter$F(this,void 0,void 0,function*(){const C=coalesce(yield Promise.all(g.map(S=>__awaiter$F(this,void 0,void 0,function*(){try{return yield S.prepareDocumentPaste(n,a,f,_)}catch(y){console.error(y);return}}))));C.reverse();for(const S of C)for(const[y,E]of S)f.replace(y,E);return f}));(i=this._currentCopyOperation)===null||i===void 0||i.dataTransferPromise.cancel(),this._currentCopyOperation={handle:m,dataTransferPromise:b}}handlePaste(e){var t,i;return __awaiter$F(this,void 0,void 0,function*(){if(!e.clipboardData||!this._editor.hasTextFocus())return;(t=this._currentPasteOperation)===null||t===void 0||t.cancel(),this._currentPasteOperation=void 0;const n=this._editor.getModel(),r=this._editor.getSelections();if(!(r!=null&&r.length)||!n||!this.isPasteAsEnabled())return;const s=this.fetchCopyMetadata(e),a=toExternalVSDataTransfer(e.clipboardData);a.delete(vscodeClipboardMime);const l=[...e.clipboardData.types,...(i=s==null?void 0:s.providerCopyMimeTypes)!==null&&i!==void 0?i:[],Mimes.uriList],d=this._languageFeaturesService.documentPasteEditProvider.ordered(n).filter(c=>{var u;return(u=c.pasteMimeTypes)===null||u===void 0?void 0:u.some(g=>matchesMimeType(g,l))});d.length&&(e.preventDefault(),e.stopImmediatePropagation(),this._pasteAsActionContext?this.showPasteAsPick(this._pasteAsActionContext.preferredId,d,r,a,s):this.doPasteInline(d,r,a,s))})}doPasteInline(e,t,i,n){const r=createCancelablePromise(s=>__awaiter$F(this,void 0,void 0,function*(){const a=this._editor;if(!a.hasModel())return;const l=a.getModel(),d=new EditorStateCancellationTokenSource(a,3,void 0,s);try{if(yield this.mergeInDataFromCopy(i,n,d.token),d.token.isCancellationRequested)return;const c=e.filter(g=>isSupportedPasteProvider(g,i));if(!c.length||c.length===1&&c[0].id==="text"){yield this.applyDefaultPasteHandler(i,n,d.token);return}const u=yield this.getPasteEdits(c,i,l,t,d.token);if(d.token.isCancellationRequested)return;if(u.length===1&&u[0].providerId==="text"){yield this.applyDefaultPasteHandler(i,n,d.token);return}if(u.length){const g=a.getOption(84).showPasteSelector==="afterPaste";return this._postPasteWidgetManager.applyEditAndShowIfNeeded(t,{activeEditIndex:0,allEdits:u},g,d.token)}yield this.applyDefaultPasteHandler(i,n,d.token)}finally{d.dispose(),this._currentPasteOperation===r&&(this._currentPasteOperation=void 0)}}));this._pasteProgressManager.showWhile(t[0].getEndPosition(),localize("pasteIntoEditorProgress","Running paste handlers. Click to cancel"),r),this._currentPasteOperation=r}showPasteAsPick(e,t,i,n,r){const s=createCancelablePromise(a=>__awaiter$F(this,void 0,void 0,function*(){const l=this._editor;if(!l.hasModel())return;const d=l.getModel(),c=new EditorStateCancellationTokenSource(l,3,void 0,a);try{if(yield this.mergeInDataFromCopy(n,r,c.token),c.token.isCancellationRequested)return;let u=t.filter(m=>isSupportedPasteProvider(m,n));e&&(u=u.filter(m=>m.id===e));const g=yield this.getPasteEdits(u,n,d,i,c.token);if(c.token.isCancellationRequested||!g.length)return;let f;if(e)f=g.at(0);else{const m=yield this._quickInputService.pick(g.map(b=>({label:b.label,description:b.providerId,detail:b.detail,edit:b})),{placeHolder:localize("pasteAsPickerPlaceholder","Select Paste Action")});f=m==null?void 0:m.edit}if(!f)return;const p=createCombinedWorkspaceEdit(d.uri,i,f);yield this._bulkEditService.apply(p,{editor:this._editor})}finally{c.dispose(),this._currentPasteOperation===s&&(this._currentPasteOperation=void 0)}}));this._progressService.withProgress({location:10,title:localize("pasteAsProgress","Running paste handlers")},()=>s)}setCopyMetadata(e,t){e.setData(vscodeClipboardMime,JSON.stringify(t))}fetchCopyMetadata(e){var t;if(!e.clipboardData)return;const i=e.clipboardData.getData(vscodeClipboardMime);if(i)try{return JSON.parse(i)}catch{return}const[n,r]=ClipboardEventUtils.getTextData(e.clipboardData);if(r)return{defaultPastePayload:{mode:r.mode,multicursorText:(t=r.multicursorText)!==null&&t!==void 0?t:null,pasteOnNewLine:!!r.isFromEmptySelection}}}mergeInDataFromCopy(e,t,i){var n;return __awaiter$F(this,void 0,void 0,function*(){if(t!=null&&t.id&&((n=this._currentCopyOperation)===null||n===void 0?void 0:n.handle)===t.id){const r=yield this._currentCopyOperation.dataTransferPromise;if(i.isCancellationRequested)return;for(const[s,a]of r)e.replace(s,a)}if(!e.has(Mimes.uriList)){const r=yield this._clipboardService.readResources();if(i.isCancellationRequested)return;r.length&&e.append(Mimes.uriList,createStringDataTransferItem(UriList.create(r)))}})}getPasteEdits(e,t,i,n,r){return __awaiter$F(this,void 0,void 0,function*(){const s=yield raceCancellation(Promise.all(e.map(l=>__awaiter$F(this,void 0,void 0,function*(){var d;try{const c=yield(d=l.provideDocumentPasteEdits)===null||d===void 0?void 0:d.call(l,i,n,t,r);if(c)return Object.assign(Object.assign({},c),{providerId:l.id})}catch(c){console.error(c)}}))),r),a=coalesce(s??[]);return sortEditsByYieldTo(a)})}applyDefaultPasteHandler(e,t,i){var n,r,s;return __awaiter$F(this,void 0,void 0,function*(){const a=(n=e.get(Mimes.text))!==null&&n!==void 0?n:e.get("text");if(!a)return;const l=yield a.asString();if(i.isCancellationRequested)return;const d={text:l,pasteOnNewLine:(r=t==null?void 0:t.defaultPastePayload.pasteOnNewLine)!==null&&r!==void 0?r:!1,multicursorText:(s=t==null?void 0:t.defaultPastePayload.multicursorText)!==null&&s!==void 0?s:null,mode:null};this._editor.trigger("keyboard","paste",d)})}};CopyPasteController.ID="editor.contrib.copyPasteActionController";CopyPasteController=CopyPasteController_1=__decorate$U([__param$U(1,IInstantiationService),__param$U(2,IBulkEditService),__param$U(3,IClipboardService),__param$U(4,ILanguageFeaturesService),__param$U(5,IQuickInputService),__param$U(6,IProgressService)],CopyPasteController);function isSupportedPasteProvider(o,e){var t;return!!(!((t=o.pasteMimeTypes)===null||t===void 0)&&t.some(i=>e.matches(i)))}var __decorate$T=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$T=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$E=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};const builtInLabel=localize("builtIn","Built-in");class SimplePasteAndDropProvider{provideDocumentPasteEdits(e,t,i,n){return __awaiter$E(this,void 0,void 0,function*(){const r=yield this.getEdit(i,n);return r?{insertText:r.insertText,label:r.label,detail:r.detail,handledMimeType:r.handledMimeType,yieldTo:r.yieldTo}:void 0})}provideDocumentOnDropEdits(e,t,i,n){return __awaiter$E(this,void 0,void 0,function*(){const r=yield this.getEdit(i,n);return r?{insertText:r.insertText,label:r.label,handledMimeType:r.handledMimeType,yieldTo:r.yieldTo}:void 0})}}class DefaultTextProvider extends SimplePasteAndDropProvider{constructor(){super(...arguments),this.id="text",this.dropMimeTypes=[Mimes.text],this.pasteMimeTypes=[Mimes.text]}getEdit(e,t){return __awaiter$E(this,void 0,void 0,function*(){const i=e.get(Mimes.text);if(!i||e.has(Mimes.uriList))return;const n=yield i.asString();return{handledMimeType:Mimes.text,label:localize("text.label","Insert Plain Text"),detail:builtInLabel,insertText:n}})}}class PathProvider extends SimplePasteAndDropProvider{constructor(){super(...arguments),this.id="uri",this.dropMimeTypes=[Mimes.uriList],this.pasteMimeTypes=[Mimes.uriList]}getEdit(e,t){return __awaiter$E(this,void 0,void 0,function*(){const i=yield extractUriList(e);if(!i.length||t.isCancellationRequested)return;let n=0;const r=i.map(({uri:a,originalText:l})=>a.scheme===Schemas.file?a.fsPath:(n++,l)).join(" ");let s;return n>0?s=i.length>1?localize("defaultDropProvider.uriList.uris","Insert Uris"):localize("defaultDropProvider.uriList.uri","Insert Uri"):s=i.length>1?localize("defaultDropProvider.uriList.paths","Insert Paths"):localize("defaultDropProvider.uriList.path","Insert Path"),{handledMimeType:Mimes.uriList,insertText:r,label:s,detail:builtInLabel}})}}let RelativePathProvider=class extends SimplePasteAndDropProvider{constructor(e){super(),this._workspaceContextService=e,this.id="relativePath",this.dropMimeTypes=[Mimes.uriList],this.pasteMimeTypes=[Mimes.uriList]}getEdit(e,t){return __awaiter$E(this,void 0,void 0,function*(){const i=yield extractUriList(e);if(!i.length||t.isCancellationRequested)return;const n=coalesce(i.map(({uri:r})=>{const s=this._workspaceContextService.getWorkspaceFolder(r);return s?relativePath(s.uri,r):void 0}));if(n.length)return{handledMimeType:Mimes.uriList,insertText:n.join(" "),label:i.length>1?localize("defaultDropProvider.uriList.relativePaths","Insert Relative Paths"):localize("defaultDropProvider.uriList.relativePath","Insert Relative Path"),detail:builtInLabel}})}};RelativePathProvider=__decorate$T([__param$T(0,IWorkspaceContextService)],RelativePathProvider);function extractUriList(o){return __awaiter$E(this,void 0,void 0,function*(){const e=o.get(Mimes.uriList);if(!e)return[];const t=yield e.asString(),i=[];for(const n of UriList.parse(t))try{i.push({uri:URI.parse(n),originalText:n})}catch{}return i})}let DefaultDropProvidersFeature=class extends Disposable{constructor(e,t){super(),this._register(e.documentOnDropEditProvider.register("*",new DefaultTextProvider)),this._register(e.documentOnDropEditProvider.register("*",new PathProvider)),this._register(e.documentOnDropEditProvider.register("*",new RelativePathProvider(t)))}};DefaultDropProvidersFeature=__decorate$T([__param$T(0,ILanguageFeaturesService),__param$T(1,IWorkspaceContextService)],DefaultDropProvidersFeature);let DefaultPasteProvidersFeature=class extends Disposable{constructor(e,t){super(),this._register(e.documentPasteEditProvider.register("*",new DefaultTextProvider)),this._register(e.documentPasteEditProvider.register("*",new PathProvider)),this._register(e.documentPasteEditProvider.register("*",new RelativePathProvider(t)))}};DefaultPasteProvidersFeature=__decorate$T([__param$T(0,ILanguageFeaturesService),__param$T(1,IWorkspaceContextService)],DefaultPasteProvidersFeature);registerEditorContribution(CopyPasteController.ID,CopyPasteController,0);registerEditorFeature(DefaultPasteProvidersFeature);registerEditorCommand(new class extends EditorCommand{constructor(){super({id:changePasteTypeCommandId,precondition:pasteWidgetVisibleCtx,kbOpts:{weight:100,primary:2137}})}runEditorCommand(o,e,t){var i;return(i=CopyPasteController.get(e))===null||i===void 0?void 0:i.changePasteType()}});registerEditorAction(class extends EditorAction{constructor(){super({id:"editor.action.pasteAs",label:localize("pasteAs","Paste As..."),alias:"Paste As...",precondition:void 0,description:{description:"Paste as",args:[{name:"args",schema:{type:"object",properties:{id:{type:"string",description:localize("pasteAs.id","The id of the paste edit to try applying. If not provided, the editor will show a picker.")}}}}]}})}run(o,e,t){var i;const n=typeof(t==null?void 0:t.id)=="string"?t.id:void 0;return(i=CopyPasteController.get(e))===null||i===void 0?void 0:i.pasteAs(n)}});class TreeViewsDnDService{constructor(){this._dragOperations=new Map}removeDragOperationTransfer(e){if(e&&this._dragOperations.has(e)){const t=this._dragOperations.get(e);return this._dragOperations.delete(e),t}}}class DraggedTreeItemsIdentifier{constructor(e){this.identifier=e}}const ITreeViewsDnDService=createDecorator("treeViewsDndService");registerSingleton(ITreeViewsDnDService,TreeViewsDnDService,1);var __decorate$S=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$S=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$D=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},DropIntoEditorController_1;const defaultProviderConfig="editor.experimental.dropIntoEditor.defaultProvider",changeDropTypeCommandId="editor.changeDropType",dropWidgetVisibleCtx=new RawContextKey("dropWidgetVisible",!1,localize("dropWidgetVisible","Whether the drop widget is showing"));let DropIntoEditorController=DropIntoEditorController_1=class extends Disposable{static get(e){return e.getContribution(DropIntoEditorController_1.ID)}constructor(e,t,i,n,r){super(),this._configService=i,this._languageFeaturesService=n,this._treeViewsDragAndDropService=r,this.treeItemsTransfer=LocalSelectionTransfer.getInstance(),this._dropProgressManager=this._register(t.createInstance(InlineProgressManager,"dropIntoEditor",e)),this._postDropWidgetManager=this._register(t.createInstance(PostEditWidgetManager,"dropIntoEditor",e,dropWidgetVisibleCtx,{id:changeDropTypeCommandId,label:localize("postDropWidgetTitle","Show drop options...")})),this._register(e.onDropIntoEditor(s=>this.onDropIntoEditor(e,s.position,s.event)))}changeDropType(){this._postDropWidgetManager.tryShowSelector()}onDropIntoEditor(e,t,i){var n;return __awaiter$D(this,void 0,void 0,function*(){if(!i.dataTransfer||!e.hasModel())return;(n=this._currentOperation)===null||n===void 0||n.cancel(),e.focus(),e.setPosition(t);const r=createCancelablePromise(s=>__awaiter$D(this,void 0,void 0,function*(){const a=new EditorStateCancellationTokenSource(e,1,void 0,s);try{const l=yield this.extractDataTransferData(i);if(l.size===0||a.token.isCancellationRequested)return;const d=e.getModel();if(!d)return;const c=this._languageFeaturesService.documentOnDropEditProvider.ordered(d).filter(g=>g.dropMimeTypes?g.dropMimeTypes.some(f=>l.matches(f)):!0),u=yield this.getDropEdits(c,d,t,l,a);if(a.token.isCancellationRequested)return;if(u.length){const g=this.getInitialActiveEditIndex(d,u),f=e.getOption(36).showDropSelector==="afterDrop";yield this._postDropWidgetManager.applyEditAndShowIfNeeded([Range$2.fromPositions(t)],{activeEditIndex:g,allEdits:u},f,s)}}finally{a.dispose(),this._currentOperation===r&&(this._currentOperation=void 0)}}));this._dropProgressManager.showWhile(t,localize("dropIntoEditorProgress","Running drop handlers. Click to cancel"),r),this._currentOperation=r})}getDropEdits(e,t,i,n,r){return __awaiter$D(this,void 0,void 0,function*(){const s=yield raceCancellation(Promise.all(e.map(l=>__awaiter$D(this,void 0,void 0,function*(){try{const d=yield l.provideDocumentOnDropEdits(t,i,n,r.token);if(d)return Object.assign(Object.assign({},d),{providerId:l.id})}catch(d){console.error(d)}}))),r.token),a=coalesce(s??[]);return sortEditsByYieldTo(a)})}getInitialActiveEditIndex(e,t){const i=this._configService.getValue(defaultProviderConfig,{resource:e.uri});for(const[n,r]of Object.entries(i)){const s=t.findIndex(a=>r===a.providerId&&a.handledMimeType&&matchesMimeType(n,[a.handledMimeType]));if(s>=0)return s}return 0}extractDataTransferData(e){return __awaiter$D(this,void 0,void 0,function*(){if(!e.dataTransfer)return new VSDataTransfer;const t=toExternalVSDataTransfer(e.dataTransfer);if(this.treeItemsTransfer.hasData(DraggedTreeItemsIdentifier.prototype)){const i=this.treeItemsTransfer.getData(DraggedTreeItemsIdentifier.prototype);if(Array.isArray(i))for(const n of i){const r=yield this._treeViewsDragAndDropService.removeDragOperationTransfer(n.identifier);if(r)for(const[s,a]of r)t.replace(s,a)}}return t})}};DropIntoEditorController.ID="editor.contrib.dropIntoEditorController";DropIntoEditorController=DropIntoEditorController_1=__decorate$S([__param$S(1,IInstantiationService),__param$S(2,IConfigurationService),__param$S(3,ILanguageFeaturesService),__param$S(4,ITreeViewsDnDService)],DropIntoEditorController);registerEditorContribution(DropIntoEditorController.ID,DropIntoEditorController,2);registerEditorCommand(new class extends EditorCommand{constructor(){super({id:changeDropTypeCommandId,precondition:dropWidgetVisibleCtx,kbOpts:{weight:100,primary:2137}})}runEditorCommand(o,e,t){var i;(i=DropIntoEditorController.get(e))===null||i===void 0||i.changeDropType()}});registerEditorFeature(DefaultDropProvidersFeature);Registry.as(Extensions$6.Configuration).registerConfiguration(Object.assign(Object.assign({},editorConfigurationBaseNode),{properties:{[defaultProviderConfig]:{type:"object",scope:5,description:localize("defaultProviderDescription","Configures the default drop provider to use for content of a given mime type."),default:{},additionalProperties:{type:"string"}}}}));class FindDecorations{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.removeDecorations(this._allDecorations()),this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}reset(){this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}getCount(){return this._decorations.length}getFindScope(){return this._findScopeDecorationIds[0]?this._editor.getModel().getDecorationRange(this._findScopeDecorationIds[0]):null}getFindScopes(){if(this._findScopeDecorationIds.length){const e=this._findScopeDecorationIds.map(t=>this._editor.getModel().getDecorationRange(t)).filter(t=>!!t);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}getDecorationRangeAt(e){const t=e<this._decorations.length?this._decorations[e]:null;return t?this._editor.getModel().getDecorationRange(t):null}getCurrentMatchesPosition(e){const t=this._editor.getModel().getDecorationsInRange(e);for(const i of t){const n=i.options;if(n===FindDecorations._FIND_MATCH_DECORATION||n===FindDecorations._CURRENT_FIND_MATCH_DECORATION)return this._getDecorationIndex(i.id)}return 0}setCurrentFindMatch(e){let t=null,i=0;if(e)for(let n=0,r=this._decorations.length;n<r;n++){const s=this._editor.getModel().getDecorationRange(this._decorations[n]);if(e.equalsRange(s)){t=this._decorations[n],i=n+1;break}}return(this._highlightedDecorationId!==null||t!==null)&&this._editor.changeDecorations(n=>{if(this._highlightedDecorationId!==null&&(n.changeDecorationOptions(this._highlightedDecorationId,FindDecorations._FIND_MATCH_DECORATION),this._highlightedDecorationId=null),t!==null&&(this._highlightedDecorationId=t,n.changeDecorationOptions(this._highlightedDecorationId,FindDecorations._CURRENT_FIND_MATCH_DECORATION)),this._rangeHighlightDecorationId!==null&&(n.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null),t!==null){let r=this._editor.getModel().getDecorationRange(t);if(r.startLineNumber!==r.endLineNumber&&r.endColumn===1){const s=r.endLineNumber-1,a=this._editor.getModel().getLineMaxColumn(s);r=new Range$2(r.startLineNumber,r.startColumn,s,a)}this._rangeHighlightDecorationId=n.addDecoration(r,FindDecorations._RANGE_HIGHLIGHT_DECORATION)}}),i}set(e,t){this._editor.changeDecorations(i=>{let n=FindDecorations._FIND_MATCH_DECORATION;const r=[];if(e.length>1e3){n=FindDecorations._FIND_MATCH_NO_OVERVIEW_DECORATION;const a=this._editor.getModel().getLineCount(),d=this._editor.getLayoutInfo().height/a,c=Math.max(2,Math.ceil(3/d));let u=e[0].range.startLineNumber,g=e[0].range.endLineNumber;for(let f=1,p=e.length;f<p;f++){const m=e[f].range;g+c>=m.startLineNumber?m.endLineNumber>g&&(g=m.endLineNumber):(r.push({range:new Range$2(u,1,g,1),options:FindDecorations._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),u=m.startLineNumber,g=m.endLineNumber)}r.push({range:new Range$2(u,1,g,1),options:FindDecorations._FIND_MATCH_ONLY_OVERVIEW_DECORATION})}const s=new Array(e.length);for(let a=0,l=e.length;a<l;a++)s[a]={range:e[a].range,options:n};this._decorations=i.deltaDecorations(this._decorations,s),this._overviewRulerApproximateDecorations=i.deltaDecorations(this._overviewRulerApproximateDecorations,r),this._rangeHighlightDecorationId&&(i.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null),this._findScopeDecorationIds.length&&(this._findScopeDecorationIds.forEach(a=>i.removeDecoration(a)),this._findScopeDecorationIds=[]),t!=null&&t.length&&(this._findScopeDecorationIds=t.map(a=>i.addDecoration(a,FindDecorations._FIND_SCOPE_DECORATION)))})}matchBeforePosition(e){if(this._decorations.length===0)return null;for(let t=this._decorations.length-1;t>=0;t--){const 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(this._decorations.length===0)return null;for(let t=0,i=this._decorations.length;t<i;t++){const n=this._decorations[t],r=this._editor.getModel().getDecorationRange(n);if(!(!r||r.startLineNumber<e.lineNumber)){if(r.startLineNumber>e.lineNumber)return r;if(!(r.startColumn<e.column))return r}}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}}FindDecorations._CURRENT_FIND_MATCH_DECORATION=ModelDecorationOptions.register({description:"current-find-match",stickiness:1,zIndex:13,className:"currentFindMatch",showIfCollapsed:!0,overviewRuler:{color:themeColorFromId(overviewRulerFindMatchForeground),position:OverviewRulerLane.Center},minimap:{color:themeColorFromId(minimapFindMatch),position:MinimapPosition.Inline}});FindDecorations._FIND_MATCH_DECORATION=ModelDecorationOptions.register({description:"find-match",stickiness:1,zIndex:10,className:"findMatch",showIfCollapsed:!0,overviewRuler:{color:themeColorFromId(overviewRulerFindMatchForeground),position:OverviewRulerLane.Center},minimap:{color:themeColorFromId(minimapFindMatch),position:MinimapPosition.Inline}});FindDecorations._FIND_MATCH_NO_OVERVIEW_DECORATION=ModelDecorationOptions.register({description:"find-match-no-overview",stickiness:1,className:"findMatch",showIfCollapsed:!0});FindDecorations._FIND_MATCH_ONLY_OVERVIEW_DECORATION=ModelDecorationOptions.register({description:"find-match-only-overview",stickiness:1,overviewRuler:{color:themeColorFromId(overviewRulerFindMatchForeground),position:OverviewRulerLane.Center}});FindDecorations._RANGE_HIGHLIGHT_DECORATION=ModelDecorationOptions.register({description:"find-range-highlight",stickiness:1,className:"rangeHighlight",isWholeLine:!0});FindDecorations._FIND_SCOPE_DECORATION=ModelDecorationOptions.register({description:"find-scope",className:"findScope",isWholeLine:!0});class ReplaceAllCommand{constructor(e,t,i){this._editorSelection=e,this._ranges=t,this._replaceStrings=i,this._trackedEditorSelectionId=null}getEditOperations(e,t){if(this._ranges.length>0){const i=[];for(let s=0;s<this._ranges.length;s++)i.push({range:this._ranges[s],text:this._replaceStrings[s]});i.sort((s,a)=>Range$2.compareRangesUsingStarts(s.range,a.range));const n=[];let r=i[0];for(let s=1;s<i.length;s++)r.range.endLineNumber===i[s].range.startLineNumber&&r.range.endColumn===i[s].range.startColumn?(r.range=r.range.plusRange(i[s].range),r.text=r.text+i[s].text):(n.push(r),r=i[s]);n.push(r);for(const s of n)t.addEditOperation(s.range,s.text)}this._trackedEditorSelectionId=t.trackSelection(this._editorSelection)}computeCursorState(e,t){return t.getTrackedSelection(this._trackedEditorSelectionId)}}function buildReplaceStringWithCasePreserved(o,e){if(o&&o[0]!==""){const t=validateSpecificSpecialCharacter(o,e,"-"),i=validateSpecificSpecialCharacter(o,e,"_");return t&&!i?buildReplaceStringForSpecificSpecialCharacter(o,e,"-"):!t&&i?buildReplaceStringForSpecificSpecialCharacter(o,e,"_"):o[0].toUpperCase()===o[0]?e.toUpperCase():o[0].toLowerCase()===o[0]?e.toLowerCase():containsUppercaseCharacter(o[0][0])&&e.length>0?e[0].toUpperCase()+e.substr(1):o[0][0].toUpperCase()!==o[0][0]&&e.length>0?e[0].toLowerCase()+e.substr(1):e}else return e}function validateSpecificSpecialCharacter(o,e,t){return o[0].indexOf(t)!==-1&&e.indexOf(t)!==-1&&o[0].split(t).length===e.split(t).length}function buildReplaceStringForSpecificSpecialCharacter(o,e,t){const i=e.split(t),n=o[0].split(t);let r="";return i.forEach((s,a)=>{r+=buildReplaceStringWithCasePreserved([n[a]],s)+t}),r.slice(0,-1)}class StaticValueReplacePattern{constructor(e){this.staticValue=e,this.kind=0}}class DynamicPiecesReplacePattern{constructor(e){this.pieces=e,this.kind=1}}class ReplacePattern{static fromStaticValue(e){return new ReplacePattern([ReplacePiece.staticValue(e)])}get hasReplacementPatterns(){return this._state.kind===1}constructor(e){!e||e.length===0?this._state=new StaticValueReplacePattern(""):e.length===1&&e[0].staticValue!==null?this._state=new StaticValueReplacePattern(e[0].staticValue):this._state=new DynamicPiecesReplacePattern(e)}buildReplaceString(e,t){if(this._state.kind===0)return t?buildReplaceStringWithCasePreserved(e,this._state.staticValue):this._state.staticValue;let i="";for(let n=0,r=this._state.pieces.length;n<r;n++){const s=this._state.pieces[n];if(s.staticValue!==null){i+=s.staticValue;continue}let a=ReplacePattern._substitute(s.matchIndex,e);if(s.caseOps!==null&&s.caseOps.length>0){const l=[],d=s.caseOps.length;let c=0;for(let u=0,g=a.length;u<g;u++){if(c>=d){l.push(a.slice(u));break}switch(s.caseOps[c]){case"U":l.push(a[u].toUpperCase());break;case"u":l.push(a[u].toUpperCase()),c++;break;case"L":l.push(a[u].toLowerCase());break;case"l":l.push(a[u].toLowerCase()),c++;break;default:l.push(a[u])}}a=l.join("")}i+=a}return i}static _substitute(e,t){if(t===null)return"";if(e===0)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 ReplacePiece{static staticValue(e){return new ReplacePiece(e,-1,null)}static caseOps(e,t){return new ReplacePiece(null,e,t)}constructor(e,t,i){this.staticValue=e,this.matchIndex=t,!i||i.length===0?this.caseOps=null:this.caseOps=i.slice(0)}}class ReplacePieceBuilder{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){e.length!==0&&(this._currentStaticPiece+=e)}emitMatchIndex(e,t,i){this._currentStaticPiece.length!==0&&(this._result[this._resultLen++]=ReplacePiece.staticValue(this._currentStaticPiece),this._currentStaticPiece=""),this._result[this._resultLen++]=ReplacePiece.caseOps(e,i),this._lastCharIndex=t}finalize(){return this.emitUnchanged(this._source.length),this._currentStaticPiece.length!==0&&(this._result[this._resultLen++]=ReplacePiece.staticValue(this._currentStaticPiece),this._currentStaticPiece=""),new ReplacePattern(this._result)}}function parseReplaceString(o){if(!o||o.length===0)return new ReplacePattern(null);const e=[],t=new ReplacePieceBuilder(o);for(let i=0,n=o.length;i<n;i++){const r=o.charCodeAt(i);if(r===92){if(i++,i>=n)break;const s=o.charCodeAt(i);switch(s){case 92:t.emitUnchanged(i-1),t.emitStatic("\\",i+1);break;case 110:t.emitUnchanged(i-1),t.emitStatic(`
- `,i+1);break;case 116:t.emitUnchanged(i-1),t.emitStatic(" ",i+1);break;case 117:case 85:case 108:case 76:t.emitUnchanged(i-1),t.emitStatic("",i+1),e.push(String.fromCharCode(s));break}continue}if(r===36){if(i++,i>=n)break;const s=o.charCodeAt(i);if(s===36){t.emitUnchanged(i-1),t.emitStatic("$",i+1);continue}if(s===48||s===38){t.emitUnchanged(i-1),t.emitMatchIndex(0,i+1,e),e.length=0;continue}if(49<=s&&s<=57){let a=s-48;if(i+1<n){const l=o.charCodeAt(i+1);if(48<=l&&l<=57){i++,a=a*10+(l-48),t.emitUnchanged(i-2),t.emitMatchIndex(a,i+1,e),e.length=0;continue}}t.emitUnchanged(i-1),t.emitMatchIndex(a,i+1,e),e.length=0;continue}}}return t.finalize()}const CONTEXT_FIND_WIDGET_VISIBLE=new RawContextKey("findWidgetVisible",!1);CONTEXT_FIND_WIDGET_VISIBLE.toNegated();const CONTEXT_FIND_INPUT_FOCUSED=new RawContextKey("findInputFocussed",!1),CONTEXT_REPLACE_INPUT_FOCUSED=new RawContextKey("replaceInputFocussed",!1),ToggleCaseSensitiveKeybinding={primary:545,mac:{primary:2593}},ToggleWholeWordKeybinding={primary:565,mac:{primary:2613}},ToggleRegexKeybinding={primary:560,mac:{primary:2608}},ToggleSearchScopeKeybinding={primary:554,mac:{primary:2602}},TogglePreserveCaseKeybinding={primary:558,mac:{primary:2606}},FIND_IDS={StartFindAction:"actions.find",StartFindWithSelection:"actions.findWithSelection",StartFindWithArgs:"editor.actions.findWithArgs",NextMatchFindAction:"editor.action.nextMatchFindAction",PreviousMatchFindAction:"editor.action.previousMatchFindAction",GoToMatchFindAction:"editor.action.goToMatchFindAction",NextSelectionMatchFindAction:"editor.action.nextSelectionMatchFindAction",PreviousSelectionMatchFindAction:"editor.action.previousSelectionMatchFindAction",StartFindReplaceAction:"editor.action.startFindReplaceAction",CloseFindWidgetCommand:"closeFindWidget",ToggleCaseSensitiveCommand:"toggleFindCaseSensitive",ToggleWholeWordCommand:"toggleFindWholeWord",ToggleRegexCommand:"toggleFindRegex",ToggleSearchScopeCommand:"toggleFindInSelection",TogglePreserveCaseCommand:"togglePreserveCase",ReplaceOneAction:"editor.action.replaceOne",ReplaceAllAction:"editor.action.replaceAll",SelectAllMatchesAction:"editor.action.selectAllMatches"},MATCHES_LIMIT=19999,RESEARCH_DELAY=240;class FindModelBoundToEditorModel{constructor(e,t){this._toDispose=new DisposableStore,this._editor=e,this._state=t,this._isDisposed=!1,this._startSearchingTimer=new TimeoutTimer,this._decorations=new FindDecorations(e),this._toDispose.add(this._decorations),this._updateDecorationsScheduler=new RunOnceScheduler(()=>this.research(!1),100),this._toDispose.add(this._updateDecorationsScheduler),this._toDispose.add(this._editor.onDidChangeCursorPosition(i=>{(i.reason===3||i.reason===5||i.reason===6)&&this._decorations.setStartPosition(this._editor.getPosition())})),this._ignoreModelContentChanged=!1,this._toDispose.add(this._editor.onDidChangeModelContent(i=>{this._ignoreModelContentChanged||(i.isFlush&&this._decorations.reset(),this._decorations.setStartPosition(this._editor.getPosition()),this._updateDecorationsScheduler.schedule())})),this._toDispose.add(this._state.onFindReplaceStateChange(i=>this._onStateChanged(i))),this.research(!1,this._state.searchScope)}dispose(){this._isDisposed=!0,dispose(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)},RESEARCH_DELAY)):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;typeof t<"u"?t!==null&&(Array.isArray(t)?i=t:i=[t]):i=this._decorations.getFindScopes(),i!==null&&(i=i.map(a=>{if(a.startLineNumber!==a.endLineNumber){let l=a.endLineNumber;return a.endColumn===1&&(l=l-1),new Range$2(a.startLineNumber,1,l,this._editor.getModel().getLineMaxColumn(l))}return a}));const n=this._findMatches(i,!1,MATCHES_LIMIT);this._decorations.set(n,i);const r=this._editor.getSelection();let s=this._decorations.getCurrentMatchesPosition(r);if(s===0&&n.length>0){const a=findFirstIdxMonotonousOrArrLen(n.map(l=>l.range),l=>Range$2.compareRangesUsingStarts(l,r)>=0);s=a>0?a-1+1:s}this._state.changeMatchInfo(s,this._decorations.getCount(),void 0),e&&this._editor.getOption(41).cursorMoveOnType&&this._moveToNextMatch(this._decorations.getStartPosition())}_hasMatches(){return this._state.matchesCount>0}_cannotFind(){if(!this._hasMatches()){const e=this._decorations.getFindScope();return e&&this._editor.revealRangeInCenterIfOutsideViewport(e,0),!0}return!1}_setCurrentFindMatch(e){const t=this._decorations.setCurrentFindMatch(e);this._state.changeMatchInfo(t,this._decorations.getCount(),e),this._editor.setSelection(e),this._editor.revealRangeInCenterIfOutsideViewport(e,0)}_prevSearchPosition(e){const t=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0);let{lineNumber:i,column:n}=e;const r=this._editor.getModel();return t||n===1?(i===1?i=r.getLineCount():i--,n=r.getLineMaxColumn(i)):n--,new Position$1(i,n)}_moveToPrevMatch(e,t=!1){if(!this._state.canNavigateBack()){const c=this._decorations.matchAfterPosition(e);c&&this._setCurrentFindMatch(c);return}if(this._decorations.getCount()<MATCHES_LIMIT){let c=this._decorations.matchBeforePosition(e);c&&c.isEmpty()&&c.getStartPosition().equals(e)&&(e=this._prevSearchPosition(e),c=this._decorations.matchBeforePosition(e)),c&&this._setCurrentFindMatch(c);return}if(this._cannotFind())return;const i=this._decorations.getFindScope(),n=FindModelBoundToEditorModel._getSearchRange(this._editor.getModel(),i);n.getEndPosition().isBefore(e)&&(e=n.getEndPosition()),e.isBefore(n.getStartPosition())&&(e=n.getEndPosition());const{lineNumber:r,column:s}=e,a=this._editor.getModel();let l=new Position$1(r,s),d=a.findPreviousMatch(this._state.searchString,l,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(129):null,!1);if(d&&d.range.isEmpty()&&d.range.getStartPosition().equals(l)&&(l=this._prevSearchPosition(l),d=a.findPreviousMatch(this._state.searchString,l,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(129):null,!1)),!!d){if(!t&&!n.containsRange(d.range))return this._moveToPrevMatch(d.range.getStartPosition(),!0);this._setCurrentFindMatch(d.range)}}moveToPrevMatch(){this._moveToPrevMatch(this._editor.getSelection().getStartPosition())}_nextSearchPosition(e){const t=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0);let{lineNumber:i,column:n}=e;const r=this._editor.getModel();return t||n===r.getLineMaxColumn(i)?(i===r.getLineCount()?i=1:i++,n=1):n++,new Position$1(i,n)}_moveToNextMatch(e){if(!this._state.canNavigateForward()){const i=this._decorations.matchBeforePosition(e);i&&this._setCurrentFindMatch(i);return}if(this._decorations.getCount()<MATCHES_LIMIT){let i=this._decorations.matchAfterPosition(e);i&&i.isEmpty()&&i.getStartPosition().equals(e)&&(e=this._nextSearchPosition(e),i=this._decorations.matchAfterPosition(e)),i&&this._setCurrentFindMatch(i);return}const t=this._getNextMatch(e,!1,!0);t&&this._setCurrentFindMatch(t.range)}_getNextMatch(e,t,i,n=!1){if(this._cannotFind())return null;const r=this._decorations.getFindScope(),s=FindModelBoundToEditorModel._getSearchRange(this._editor.getModel(),r);s.getEndPosition().isBefore(e)&&(e=s.getStartPosition()),e.isBefore(s.getStartPosition())&&(e=s.getStartPosition());const{lineNumber:a,column:l}=e,d=this._editor.getModel();let c=new Position$1(a,l),u=d.findNextMatch(this._state.searchString,c,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(129):null,t);return i&&u&&u.range.isEmpty()&&u.range.getStartPosition().equals(c)&&(c=this._nextSearchPosition(c),u=d.findNextMatch(this._state.searchString,c,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(129):null,t)),u?!n&&!s.containsRange(u.range)?this._getNextMatch(u.range.getEndPosition(),t,i,!0):u:null}moveToNextMatch(){this._moveToNextMatch(this._editor.getSelection().getEndPosition())}_moveToMatch(e){const t=this._decorations.getDecorationRangeAt(e);t&&this._setCurrentFindMatch(t)}moveToMatch(e){this._moveToMatch(e)}_getReplacePattern(){return this._state.isRegex?parseReplaceString(this._state.replaceString):ReplacePattern.fromStaticValue(this._state.replaceString)}replace(){if(!this._hasMatches())return;const e=this._getReplacePattern(),t=this._editor.getSelection(),i=this._getNextMatch(t.getStartPosition(),!0,!1);if(i)if(t.equalsRange(i.range)){const n=e.buildReplaceString(i.matches,this._state.preserveCase),r=new ReplaceCommand(t,n);this._executeEditorCommand("replace",r),this._decorations.setStartPosition(new Position$1(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(r=>FindModelBoundToEditorModel._getSearchRange(this._editor.getModel(),r));return this._editor.getModel().findMatches(this._state.searchString,n,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(129):null,t,i)}replaceAll(){if(!this._hasMatches())return;const e=this._decorations.getFindScopes();e===null&&this._state.matchesCount>=MATCHES_LIMIT?this._largeReplaceAll():this._regularReplaceAll(e),this.research(!1)}_largeReplaceAll(){const t=new SearchParams(this._state.searchString,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(129):null).parseSearchRequest();if(!t)return;let i=t.regex;if(!i.multiline){let u="mu";i.ignoreCase&&(u+="i"),i.global&&(u+="g"),i=new RegExp(i.source,u)}const n=this._editor.getModel(),r=n.getValue(1),s=n.getFullModelRange(),a=this._getReplacePattern();let l;const d=this._state.preserveCase;a.hasReplacementPatterns||d?l=r.replace(i,function(){return a.buildReplaceString(arguments,d)}):l=r.replace(i,a.buildReplaceString(null,d));const c=new ReplaceCommandThatPreservesSelection(s,l,this._editor.getSelection());this._executeEditorCommand("replaceAll",c)}_regularReplaceAll(e){const t=this._getReplacePattern(),i=this._findMatches(e,t.hasReplacementPatterns||this._state.preserveCase,1073741824),n=[];for(let s=0,a=i.length;s<a;s++)n[s]=t.buildReplaceString(i[s].matches,this._state.preserveCase);const r=new ReplaceAllCommand(this._editor.getSelection(),i.map(s=>s.range),n);this._executeEditorCommand("replaceAll",r)}selectAllMatches(){if(!this._hasMatches())return;const e=this._decorations.getFindScopes();let i=this._findMatches(e,!1,1073741824).map(r=>new Selection$1(r.range.startLineNumber,r.range.startColumn,r.range.endLineNumber,r.range.endColumn));const n=this._editor.getSelection();for(let r=0,s=i.length;r<s;r++)if(i[r].equalsRange(n)){i=[n].concat(i.slice(0,r)).concat(i.slice(r+1));break}this._editor.setSelections(i)}_executeEditorCommand(e,t){try{this._ignoreModelContentChanged=!0,this._editor.pushUndoStop(),this._editor.executeCommand(e,t),this._editor.pushUndoStop()}finally{this._ignoreModelContentChanged=!1}}}class FindOptionsWidget extends Widget$1{constructor(e,t,i){super(),this._hideSoon=this._register(new RunOnceScheduler(()=>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.style.zIndex="12",this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true");const n={inputActiveOptionBorder:asCssVariable(inputActiveOptionBorder),inputActiveOptionForeground:asCssVariable(inputActiveOptionForeground),inputActiveOptionBackground:asCssVariable(inputActiveOptionBackground)};this.caseSensitive=this._register(new CaseSensitiveToggle(Object.assign({appendTitle:this._keybindingLabelFor(FIND_IDS.ToggleCaseSensitiveCommand),isChecked:this._state.matchCase},n))),this._domNode.appendChild(this.caseSensitive.domNode),this._register(this.caseSensitive.onChange(()=>{this._state.change({matchCase:this.caseSensitive.checked},!1)})),this.wholeWords=this._register(new WholeWordsToggle(Object.assign({appendTitle:this._keybindingLabelFor(FIND_IDS.ToggleWholeWordCommand),isChecked:this._state.wholeWord},n))),this._domNode.appendChild(this.wholeWords.domNode),this._register(this.wholeWords.onChange(()=>{this._state.change({wholeWord:this.wholeWords.checked},!1)})),this.regex=this._register(new RegexToggle(Object.assign({appendTitle:this._keybindingLabelFor(FIND_IDS.ToggleRegexCommand),isChecked:this._state.isRegex},n))),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(r=>{let s=!1;r.isRegex&&(this.regex.checked=this._state.isRegex,s=!0),r.wholeWord&&(this.wholeWords.checked=this._state.wholeWord,s=!0),r.matchCase&&(this.caseSensitive.checked=this._state.matchCase,s=!0),!this._state.isRevealed&&s&&this._revealTemporarily()})),this._register(addDisposableListener(this._domNode,EventType$1.MOUSE_LEAVE,r=>this._onMouseLeave())),this._register(addDisposableListener(this._domNode,"mouseover",r=>this._onMouseOver()))}_keybindingLabelFor(e){const t=this._keybindingService.lookupKeybinding(e);return t?` (${t.getLabel()})`:""}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return FindOptionsWidget.ID}getDomNode(){return this._domNode}getPosition(){return{preference:0}}highlightFindOptions(){this._revealTemporarily()}_revealTemporarily(){this._show(),this._hideSoon.schedule()}_onMouseLeave(){this._hideSoon.schedule()}_onMouseOver(){this._hideSoon.cancel()}_show(){this._isVisible||(this._isVisible=!0,this._domNode.style.display="block")}_hide(){this._isVisible&&(this._isVisible=!1,this._domNode.style.display="none")}}FindOptionsWidget.ID="editor.contrib.findOptionsWidget";function effectiveOptionValue(o,e){return o===1?!0:o===2?!1:e}class FindReplaceState extends Disposable{get searchString(){return this._searchString}get replaceString(){return this._replaceString}get isRevealed(){return this._isRevealed}get isReplaceRevealed(){return this._isReplaceRevealed}get isRegex(){return effectiveOptionValue(this._isRegexOverride,this._isRegex)}get wholeWord(){return effectiveOptionValue(this._wholeWordOverride,this._wholeWord)}get matchCase(){return effectiveOptionValue(this._matchCaseOverride,this._matchCase)}get preserveCase(){return effectiveOptionValue(this._preserveCaseOverride,this._preserveCase)}get actualIsRegex(){return this._isRegex}get actualWholeWord(){return this._wholeWord}get actualMatchCase(){return this._matchCase}get actualPreserveCase(){return this._preserveCase}get searchScope(){return this._searchScope}get matchesPosition(){return this._matchesPosition}get matchesCount(){return this._matchesCount}get currentMatch(){return this._currentMatch}constructor(){super(),this._onFindReplaceStateChange=this._register(new Emitter$1),this.onFindReplaceStateChange=this._onFindReplaceStateChange.event,this._searchString="",this._replaceString="",this._isRevealed=!1,this._isReplaceRevealed=!1,this._isRegex=!1,this._isRegexOverride=0,this._wholeWord=!1,this._wholeWordOverride=0,this._matchCase=!1,this._matchCaseOverride=0,this._preserveCase=!1,this._preserveCaseOverride=0,this._searchScope=null,this._matchesPosition=0,this._matchesCount=0,this._currentMatch=null,this._loop=!0,this._isSearching=!1,this._filters=null}changeMatchInfo(e,t,i){const 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,isSearching:!1,filters:!1};let r=!1;t===0&&(e=0),e>t&&(e=t),this._matchesPosition!==e&&(this._matchesPosition=e,n.matchesPosition=!0,r=!0),this._matchesCount!==t&&(this._matchesCount=t,n.matchesCount=!0,r=!0),typeof i<"u"&&(Range$2.equalsRange(this._currentMatch,i)||(this._currentMatch=i,n.currentMatch=!0,r=!0)),r&&this._onFindReplaceStateChange.fire(n)}change(e,t,i=!0){var n;const r={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,isSearching:!1,filters:!1};let s=!1;const a=this.isRegex,l=this.wholeWord,d=this.matchCase,c=this.preserveCase;typeof e.searchString<"u"&&this._searchString!==e.searchString&&(this._searchString=e.searchString,r.searchString=!0,s=!0),typeof e.replaceString<"u"&&this._replaceString!==e.replaceString&&(this._replaceString=e.replaceString,r.replaceString=!0,s=!0),typeof e.isRevealed<"u"&&this._isRevealed!==e.isRevealed&&(this._isRevealed=e.isRevealed,r.isRevealed=!0,s=!0),typeof e.isReplaceRevealed<"u"&&this._isReplaceRevealed!==e.isReplaceRevealed&&(this._isReplaceRevealed=e.isReplaceRevealed,r.isReplaceRevealed=!0,s=!0),typeof e.isRegex<"u"&&(this._isRegex=e.isRegex),typeof e.wholeWord<"u"&&(this._wholeWord=e.wholeWord),typeof e.matchCase<"u"&&(this._matchCase=e.matchCase),typeof e.preserveCase<"u"&&(this._preserveCase=e.preserveCase),typeof e.searchScope<"u"&&(!((n=e.searchScope)===null||n===void 0)&&n.every(u=>{var g;return(g=this._searchScope)===null||g===void 0?void 0:g.some(f=>!Range$2.equalsRange(f,u))})||(this._searchScope=e.searchScope,r.searchScope=!0,s=!0)),typeof e.loop<"u"&&this._loop!==e.loop&&(this._loop=e.loop,r.loop=!0,s=!0),typeof e.isSearching<"u"&&this._isSearching!==e.isSearching&&(this._isSearching=e.isSearching,r.isSearching=!0,s=!0),typeof e.filters<"u"&&(this._filters?this._filters.update(e.filters):this._filters=e.filters,r.filters=!0,s=!0),this._isRegexOverride=typeof e.isRegexOverride<"u"?e.isRegexOverride:0,this._wholeWordOverride=typeof e.wholeWordOverride<"u"?e.wholeWordOverride:0,this._matchCaseOverride=typeof e.matchCaseOverride<"u"?e.matchCaseOverride:0,this._preserveCaseOverride=typeof e.preserveCaseOverride<"u"?e.preserveCaseOverride:0,a!==this.isRegex&&(s=!0,r.isRegex=!0),l!==this.wholeWord&&(s=!0,r.wholeWord=!0),d!==this.matchCase&&(s=!0,r.matchCase=!0),c!==this.preserveCase&&(s=!0,r.preserveCase=!0),s&&this._onFindReplaceStateChange.fire(r)}canNavigateBack(){return this.canNavigateInLoop()||this.matchesPosition!==1}canNavigateForward(){return this.canNavigateInLoop()||this.matchesPosition<this.matchesCount}canNavigateInLoop(){return this._loop||this.matchesCount>=MATCHES_LIMIT}}const NLS_DEFAULT_LABEL=localize("defaultLabel","input"),NLS_PRESERVE_CASE_LABEL=localize("label.preserveCaseToggle","Preserve Case");class PreserveCaseToggle extends Toggle{constructor(e){super({icon:Codicon.preserveCase,title:NLS_PRESERVE_CASE_LABEL+e.appendTitle,isChecked:e.isChecked,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}class ReplaceInput extends Widget$1{constructor(e,t,i,n){super(),this._showOptionButtons=i,this.fixFocusOnOptionClickEnabled=!0,this.cachedOptionsWidth=0,this._onDidOptionChange=this._register(new Emitter$1),this.onDidOptionChange=this._onDidOptionChange.event,this._onKeyDown=this._register(new Emitter$1),this.onKeyDown=this._onKeyDown.event,this._onMouseDown=this._register(new Emitter$1),this._onInput=this._register(new Emitter$1),this._onKeyUp=this._register(new Emitter$1),this._onPreserveCaseKeyDown=this._register(new Emitter$1),this.onPreserveCaseKeyDown=this._onPreserveCaseKeyDown.event,this.contextViewProvider=t,this.placeholder=n.placeholder||"",this.validation=n.validation,this.label=n.label||NLS_DEFAULT_LABEL;const r=n.appendPreserveCaseLabel||"",s=n.history||[],a=!!n.flexibleHeight,l=!!n.flexibleWidth,d=n.flexibleMaxHeight;this.domNode=document.createElement("div"),this.domNode.classList.add("monaco-findInput"),this.inputBox=this._register(new HistoryInputBox(this.domNode,this.contextViewProvider,{ariaLabel:this.label||"",placeholder:this.placeholder||"",validationOptions:{validation:this.validation},history:s,showHistoryHint:n.showHistoryHint,flexibleHeight:a,flexibleWidth:l,flexibleMaxHeight:d,inputBoxStyles:n.inputBoxStyles})),this.preserveCase=this._register(new PreserveCaseToggle(Object.assign({appendTitle:r,isChecked:!1},n.toggleStyles))),this._register(this.preserveCase.onChange(g=>{this._onDidOptionChange.fire(g),!g&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.preserveCase.onKeyDown(g=>{this._onPreserveCaseKeyDown.fire(g)})),this._showOptionButtons?this.cachedOptionsWidth=this.preserveCase.width():this.cachedOptionsWidth=0;const c=[this.preserveCase.domNode];this.onkeydown(this.domNode,g=>{if(g.equals(15)||g.equals(17)||g.equals(9)){const f=c.indexOf(document.activeElement);if(f>=0){let p=-1;g.equals(17)?p=(f+1)%c.length:g.equals(15)&&(f===0?p=c.length-1:p=f-1),g.equals(9)?(c[f].blur(),this.inputBox.focus()):p>=0&&c[p].focus(),EventHelper.stop(g,!0)}}});const u=document.createElement("div");u.className="controls",u.style.display=this._showOptionButtons?"block":"none",u.appendChild(this.preserveCase.domNode),this.domNode.appendChild(u),e==null||e.appendChild(this.domNode),this.onkeydown(this.inputBox.inputElement,g=>this._onKeyDown.fire(g)),this.onkeyup(this.inputBox.inputElement,g=>this._onKeyUp.fire(g)),this.oninput(this.inputBox.inputElement,g=>this._onInput.fire()),this.onmousedown(this.inputBox.inputElement,g=>this._onMouseDown.fire(g))}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()}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getPreserveCase(){return this.preserveCase.checked}setPreserveCase(e){this.preserveCase.checked=e}focusOnPreserve(){this.preserveCase.focus()}validate(){var e;(e=this.inputBox)===null||e===void 0||e.validate()}set width(e){this.inputBox.paddingRight=this.cachedOptionsWidth,this.domNode.style.width=e+"px"}dispose(){super.dispose()}}var __decorate$R=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$R=function(o,e){return function(t,i){e(t,i,o)}};const historyNavigationVisible=new RawContextKey("suggestWidgetVisible",!1,localize("suggestWidgetVisible","Whether suggestion are visible")),HistoryNavigationWidgetFocusContext="historyNavigationWidgetFocus",HistoryNavigationForwardsEnablementContext="historyNavigationForwardsEnabled",HistoryNavigationBackwardsEnablementContext="historyNavigationBackwardsEnabled";let lastFocusedWidget;const widgets=[];function registerAndCreateHistoryNavigationContext(o,e){if(widgets.includes(e))throw new Error("Cannot register the same widget multiple times");widgets.push(e);const t=new DisposableStore,i=new RawContextKey(HistoryNavigationWidgetFocusContext,!1).bindTo(o),n=new RawContextKey(HistoryNavigationForwardsEnablementContext,!0).bindTo(o),r=new RawContextKey(HistoryNavigationBackwardsEnablementContext,!0).bindTo(o),s=()=>{i.set(!0),lastFocusedWidget=e},a=()=>{i.set(!1),lastFocusedWidget===e&&(lastFocusedWidget=void 0)};return e.element===document.activeElement&&s(),t.add(e.onDidFocus(()=>s())),t.add(e.onDidBlur(()=>a())),t.add(toDisposable(()=>{widgets.splice(widgets.indexOf(e),1),a()})),{historyNavigationForwardsEnablement:n,historyNavigationBackwardsEnablement:r,dispose(){t.dispose()}}}let ContextScopedFindInput=class extends FindInput{constructor(e,t,i,n){super(e,t,i);const r=this._register(n.createScoped(this.inputBox.element));this._register(registerAndCreateHistoryNavigationContext(r,this.inputBox))}};ContextScopedFindInput=__decorate$R([__param$R(3,IContextKeyService)],ContextScopedFindInput);let ContextScopedReplaceInput=class extends ReplaceInput{constructor(e,t,i,n,r=!1){super(e,t,r,i);const s=this._register(n.createScoped(this.inputBox.element));this._register(registerAndCreateHistoryNavigationContext(s,this.inputBox))}};ContextScopedReplaceInput=__decorate$R([__param$R(3,IContextKeyService)],ContextScopedReplaceInput);KeybindingsRegistry.registerCommandAndKeybindingRule({id:"history.showPrevious",weight:200,when:ContextKeyExpr.and(ContextKeyExpr.has(HistoryNavigationWidgetFocusContext),ContextKeyExpr.equals(HistoryNavigationBackwardsEnablementContext,!0),ContextKeyExpr.not("isComposing"),historyNavigationVisible.isEqualTo(!1)),primary:16,secondary:[528],handler:o=>{lastFocusedWidget==null||lastFocusedWidget.showPreviousValue()}});KeybindingsRegistry.registerCommandAndKeybindingRule({id:"history.showNext",weight:200,when:ContextKeyExpr.and(ContextKeyExpr.has(HistoryNavigationWidgetFocusContext),ContextKeyExpr.equals(HistoryNavigationForwardsEnablementContext,!0),ContextKeyExpr.not("isComposing"),historyNavigationVisible.isEqualTo(!1)),primary:18,secondary:[530],handler:o=>{lastFocusedWidget==null||lastFocusedWidget.showNextValue()}});function showHistoryKeybindingHint(o){var e,t;return((e=o.lookupKeybinding("history.showPrevious"))===null||e===void 0?void 0:e.getElectronAccelerator())==="Up"&&((t=o.lookupKeybinding("history.showNext"))===null||t===void 0?void 0:t.getElectronAccelerator())==="Down"}var __awaiter$C=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};const findSelectionIcon=registerIcon("find-selection",Codicon.selection,localize("findSelectionIcon","Icon for 'Find in Selection' in the editor find widget.")),findCollapsedIcon=registerIcon("find-collapsed",Codicon.chevronRight,localize("findCollapsedIcon","Icon to indicate that the editor find widget is collapsed.")),findExpandedIcon=registerIcon("find-expanded",Codicon.chevronDown,localize("findExpandedIcon","Icon to indicate that the editor find widget is expanded.")),findReplaceIcon=registerIcon("find-replace",Codicon.replace,localize("findReplaceIcon","Icon for 'Replace' in the editor find widget.")),findReplaceAllIcon=registerIcon("find-replace-all",Codicon.replaceAll,localize("findReplaceAllIcon","Icon for 'Replace All' in the editor find widget.")),findPreviousMatchIcon=registerIcon("find-previous-match",Codicon.arrowUp,localize("findPreviousMatchIcon","Icon for 'Find Previous' in the editor find widget.")),findNextMatchIcon=registerIcon("find-next-match",Codicon.arrowDown,localize("findNextMatchIcon","Icon for 'Find Next' in the editor find widget.")),NLS_FIND_DIALOG_LABEL=localize("label.findDialog","Find / Replace"),NLS_FIND_INPUT_LABEL=localize("label.find","Find"),NLS_FIND_INPUT_PLACEHOLDER=localize("placeholder.find","Find"),NLS_PREVIOUS_MATCH_BTN_LABEL=localize("label.previousMatchButton","Previous Match"),NLS_NEXT_MATCH_BTN_LABEL=localize("label.nextMatchButton","Next Match"),NLS_TOGGLE_SELECTION_FIND_TITLE=localize("label.toggleSelectionFind","Find in Selection"),NLS_CLOSE_BTN_LABEL=localize("label.closeButton","Close"),NLS_REPLACE_INPUT_LABEL=localize("label.replace","Replace"),NLS_REPLACE_INPUT_PLACEHOLDER=localize("placeholder.replace","Replace"),NLS_REPLACE_BTN_LABEL=localize("label.replaceButton","Replace"),NLS_REPLACE_ALL_BTN_LABEL=localize("label.replaceAllButton","Replace All"),NLS_TOGGLE_REPLACE_MODE_BTN_LABEL=localize("label.toggleReplaceButton","Toggle Replace"),NLS_MATCHES_COUNT_LIMIT_TITLE=localize("title.matchesCountLimit","Only the first {0} results are highlighted, but all find operations work on the entire text.",MATCHES_LIMIT),NLS_MATCHES_LOCATION=localize("label.matchesLocation","{0} of {1}"),NLS_NO_RESULTS=localize("label.noResults","No results"),FIND_WIDGET_INITIAL_WIDTH=419,PART_WIDTH=275,FIND_INPUT_AREA_WIDTH=PART_WIDTH-54;let MAX_MATCHES_COUNT_WIDTH=69;const FIND_INPUT_AREA_HEIGHT=33,ctrlEnterReplaceAllWarningPromptedKey="ctrlEnterReplaceAll.windows.donotask",ctrlKeyMod=isMacintosh?256:2048;class FindWidgetViewZone{constructor(e){this.afterLineNumber=e,this.heightInPx=FIND_INPUT_AREA_HEIGHT,this.suppressMouseDown=!1,this.domNode=document.createElement("div"),this.domNode.className="dock-find-viewzone"}}function stopPropagationForMultiLineUpwards(o,e,t){const i=!!e.match(/\n/);if(t&&i&&t.selectionStart>0){o.stopPropagation();return}}function stopPropagationForMultiLineDownwards(o,e,t){const i=!!e.match(/\n/);if(t&&i&&t.selectionEnd<t.value.length){o.stopPropagation();return}}class FindWidget extends Widget$1{constructor(e,t,i,n,r,s,a,l,d){super(),this._cachedHeight=null,this._revealTimeouts=[],this._codeEditor=e,this._controller=t,this._state=i,this._contextViewProvider=n,this._keybindingService=r,this._contextKeyService=s,this._storageService=l,this._notificationService=d,this._ctrlEnterReplaceAllWarningPrompted=!!l.getBoolean(ctrlEnterReplaceAllWarningPromptedKey,0),this._isVisible=!1,this._isReplaceVisible=!1,this._ignoreChangeEvent=!1,this._updateHistoryDelayer=new Delayer(500),this._register(toDisposable(()=>this._updateHistoryDelayer.cancel())),this._register(this._state.onFindReplaceStateChange(c=>this._onStateChanged(c))),this._buildDomNode(),this._updateButtons(),this._tryUpdateWidgetWidth(),this._findInput.inputBox.layout(),this._register(this._codeEditor.onDidChangeConfiguration(c=>{if(c.hasChanged(90)&&(this._codeEditor.getOption(90)&&this._state.change({isReplaceRevealed:!1},!1),this._updateButtons()),c.hasChanged(143)&&this._tryUpdateWidgetWidth(),c.hasChanged(2)&&this.updateAccessibilitySupport(),c.hasChanged(41)){const u=this._codeEditor.getOption(41).loop;this._state.change({loop:u},!1);const g=this._codeEditor.getOption(41).addExtraSpaceOnTop;g&&!this._viewZone&&(this._viewZone=new FindWidgetViewZone(0),this._showViewZone()),!g&&this._viewZone&&this._removeViewZone()}})),this.updateAccessibilitySupport(),this._register(this._codeEditor.onDidChangeCursorSelection(()=>{this._isVisible&&this._updateToggleSelectionFindButton()})),this._register(this._codeEditor.onDidFocusEditorWidget(()=>__awaiter$C(this,void 0,void 0,function*(){if(this._isVisible){const c=yield this._controller.getGlobalBufferTerm();c&&c!==this._state.searchString&&(this._state.change({searchString:c},!1),this._findInput.select())}}))),this._findInputFocused=CONTEXT_FIND_INPUT_FOCUSED.bindTo(s),this._findFocusTracker=this._register(trackFocus(this._findInput.inputBox.inputElement)),this._register(this._findFocusTracker.onDidFocus(()=>{this._findInputFocused.set(!0),this._updateSearchScope()})),this._register(this._findFocusTracker.onDidBlur(()=>{this._findInputFocused.set(!1)})),this._replaceInputFocused=CONTEXT_REPLACE_INPUT_FOCUSED.bindTo(s),this._replaceFocusTracker=this._register(trackFocus(this._replaceInput.inputBox.inputElement)),this._register(this._replaceFocusTracker.onDidFocus(()=>{this._replaceInputFocused.set(!0),this._updateSearchScope()})),this._register(this._replaceFocusTracker.onDidBlur(()=>{this._replaceInputFocused.set(!1)})),this._codeEditor.addOverlayWidget(this),this._codeEditor.getOption(41).addExtraSpaceOnTop&&(this._viewZone=new FindWidgetViewZone(0)),this._register(this._codeEditor.onDidChangeModel(()=>{this._isVisible&&(this._viewZoneId=void 0)})),this._register(this._codeEditor.onDidScrollChange(c=>{if(c.scrollTopChanged){this._layoutViewZone();return}setTimeout(()=>{this._layoutViewZone()},0)}))}getId(){return FindWidget.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(90)&&!this._isReplaceVisible&&(this._isReplaceVisible=!0,this._replaceInput.width=getTotalWidth(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){const t=this._state.searchString.length>0&&this._state.matchesCount===0;this._domNode.classList.toggle("no-results",t),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,onUnexpectedError)}_updateHistory(){this._state.searchString&&this._findInput.inputBox.addToHistory(),this._state.replaceString&&this._replaceInput.inputBox.addToHistory()}_updateMatchesCount(){this._matchesCount.style.minWidth=MAX_MATCHES_COUNT_WIDTH+"px",this._state.matchesCount>=MATCHES_LIMIT?this._matchesCount.title=NLS_MATCHES_COUNT_LIMIT_TITLE:this._matchesCount.title="",this._matchesCount.firstChild&&this._matchesCount.removeChild(this._matchesCount.firstChild);let e;if(this._state.matchesCount>0){let t=String(this._state.matchesCount);this._state.matchesCount>=MATCHES_LIMIT&&(t+="+");let i=String(this._state.matchesPosition);i==="0"&&(i="?"),e=format(NLS_MATCHES_LOCATION,i,t)}else e=NLS_NO_RESULTS;this._matchesCount.appendChild(document.createTextNode(e)),alert(this._getAriaLabel(e,this._state.currentMatch,this._state.searchString)),MAX_MATCHES_COUNT_WIDTH=Math.max(MAX_MATCHES_COUNT_WIDTH,this._matchesCount.clientWidth)}_getAriaLabel(e,t,i){if(e===NLS_NO_RESULTS)return i===""?localize("ariaSearchNoResultEmpty","{0} found",e):localize("ariaSearchNoResult","{0} found for '{1}'",e,i);if(t){const n=localize("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)}, ${n}`:n}return localize("ariaSearchNoResultWithLineNumNoCurrentMatch","{0} found for '{1}'",e,i)}_updateToggleSelectionFindButton(){const e=this._codeEditor.getSelection(),t=e?e.startLineNumber!==e.endLineNumber||e.startColumn!==e.endColumn:!1,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);const 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);const i=!this._codeEditor.getOption(90);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(41).autoFindInSelection){case"always":this._toggleSelectionFind.checked=!0;break;case"never":this._toggleSelectionFind.checked=!1;break;case"multiline":{const i=!!e&&e.startLineNumber!==e.endLineNumber;this._toggleSelectionFind.checked=i;break}}this._tryUpdateWidgetWidth(),this._updateButtons(),this._revealTimeouts.push(setTimeout(()=>{this._domNode.classList.add("visible"),this._domNode.setAttribute("aria-hidden","false")},0)),this._revealTimeouts.push(setTimeout(()=>{this._findInput.validate()},200)),this._codeEditor.layoutOverlayWidget(this);let t=!0;if(this._codeEditor.getOption(41).seedSearchStringFromSelection&&e){const i=this._codeEditor.getDomNode();if(i){const n=getDomNodePagePosition(i),r=this._codeEditor.getScrolledVisiblePosition(e.getStartPosition()),s=n.left+(r?r.left:0),a=r?r.top:0;if(this._viewZone&&a<this._viewZone.heightInPx){e.endLineNumber>e.startLineNumber&&(t=!1);const l=getTopLeftOffset(this._domNode).left;s>l&&(t=!1);const d=this._codeEditor.getScrolledVisiblePosition(e.getEndPosition());n.left+(d?d.left:0)>l&&(t=!1)}}}this._showViewZone(t)}}_hide(e){this._revealTimeouts.forEach(t=>{clearTimeout(t)}),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(41).addExtraSpaceOnTop){this._removeViewZone();return}if(!this._isVisible)return;const i=this._viewZone;this._viewZoneId!==void 0||!i||this._codeEditor.changeViewZones(n=>{i.heightInPx=this._getHeight(),this._viewZoneId=n.addZone(i),this._codeEditor.setScrollTop(e||this._codeEditor.getScrollTop()+i.heightInPx)})}_showViewZone(e=!0){if(!this._isVisible||!this._codeEditor.getOption(41).addExtraSpaceOnTop)return;this._viewZone===void 0&&(this._viewZone=new FindWidgetViewZone(0));const i=this._viewZone;this._codeEditor.changeViewZones(n=>{if(this._viewZoneId!==void 0){const r=this._getHeight();if(r===i.heightInPx)return;const s=r-i.heightInPx;i.heightInPx=r,n.layoutZone(this._viewZoneId),e&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+s);return}else{let r=this._getHeight();if(r-=this._codeEditor.getOption(83).top,r<=0)return;i.heightInPx=r,this._viewZoneId=n.addZone(i),e&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+r)}})}_removeViewZone(){this._codeEditor.changeViewZones(e=>{this._viewZoneId!==void 0&&(e.removeZone(this._viewZoneId),this._viewZoneId=void 0,this._viewZone&&(this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()-this._viewZone.heightInPx),this._viewZone=void 0))})}_tryUpdateWidgetWidth(){if(!this._isVisible||!isInDOM(this._domNode))return;const e=this._codeEditor.getLayoutInfo();if(e.contentWidth<=0){this._domNode.classList.add("hiddenEditor");return}else this._domNode.classList.contains("hiddenEditor")&&this._domNode.classList.remove("hiddenEditor");const i=e.width,n=e.minimap.minimapWidth;let r=!1,s=!1,a=!1;if(this._resized&&getTotalWidth(this._domNode)>FIND_WIDGET_INITIAL_WIDTH){this._domNode.style.maxWidth=`${i-28-n-15}px`,this._replaceInput.width=getTotalWidth(this._findInput.domNode);return}if(FIND_WIDGET_INITIAL_WIDTH+28+n>=i&&(s=!0),FIND_WIDGET_INITIAL_WIDTH+28+n-MAX_MATCHES_COUNT_WIDTH>=i&&(a=!0),FIND_WIDGET_INITIAL_WIDTH+28+n-MAX_MATCHES_COUNT_WIDTH>=i+50&&(r=!0),this._domNode.classList.toggle("collapsed-find-widget",r),this._domNode.classList.toggle("narrow-find-widget",a),this._domNode.classList.toggle("reduced-find-widget",s),!a&&!r&&(this._domNode.style.maxWidth=`${i-28-n-15}px`),this._findInput.layout({collapsedFindWidget:r,narrowFindWidget:a,reducedFindWidget:s}),this._resized){const l=this._findInput.inputBox.element.clientWidth;l>0&&(this._replaceInput.width=l)}else this._isReplaceVisible&&(this._replaceInput.width=getTotalWidth(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 this._cachedHeight!==null&&this._cachedHeight===e?!1:(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){const e=this._codeEditor.getSelections();e.map(t=>{t.endColumn===1&&t.endLineNumber>t.startLineNumber&&(t=t.setEndPosition(t.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(t.endLineNumber-1)));const i=this._state.currentMatch;return t.startLineNumber!==t.endLineNumber&&!Range$2.equalsRange(t,i)?t:null}).filter(t=>!!t),e.length&&this._state.change({searchScope:e},!0)}}_onFindInputMouseDown(e){e.middleButton&&e.stopPropagation()}_onFindInputKeyDown(e){if(e.equals(ctrlKeyMod|3))if(this._keybindingService.dispatchEvent(e,e.target)){e.preventDefault();return}else{this._findInput.inputBox.insertAtCursor(`
- `),e.preventDefault();return}if(e.equals(2)){this._isReplaceVisible?this._replaceInput.focus():this._findInput.focusOnCaseSensitive(),e.preventDefault();return}if(e.equals(2066)){this._codeEditor.focus(),e.preventDefault();return}if(e.equals(16))return stopPropagationForMultiLineUpwards(e,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"));if(e.equals(18))return stopPropagationForMultiLineDownwards(e,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"))}_onReplaceInputKeyDown(e){if(e.equals(ctrlKeyMod|3))if(this._keybindingService.dispatchEvent(e,e.target)){e.preventDefault();return}else{isWindows&&isNative&&!this._ctrlEnterReplaceAllWarningPrompted&&(this._notificationService.info(localize("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(ctrlEnterReplaceAllWarningPromptedKey,!0,0,0)),this._replaceInput.inputBox.insertAtCursor(`
- `),e.preventDefault();return}if(e.equals(2)){this._findInput.focusOnCaseSensitive(),e.preventDefault();return}if(e.equals(1026)){this._findInput.focus(),e.preventDefault();return}if(e.equals(2066)){this._codeEditor.focus(),e.preventDefault();return}if(e.equals(16))return stopPropagationForMultiLineUpwards(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea"));if(e.equals(18))return stopPropagationForMultiLineDownwards(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea"))}getVerticalSashLeft(e){return 0}_keybindingLabelFor(e){const t=this._keybindingService.lookupKeybinding(e);return t?` (${t.getLabel()})`:""}_buildDomNode(){this._findInput=this._register(new ContextScopedFindInput(null,this._contextViewProvider,{width:FIND_INPUT_AREA_WIDTH,label:NLS_FIND_INPUT_LABEL,placeholder:NLS_FIND_INPUT_PLACEHOLDER,appendCaseSensitiveLabel:this._keybindingLabelFor(FIND_IDS.ToggleCaseSensitiveCommand),appendWholeWordsLabel:this._keybindingLabelFor(FIND_IDS.ToggleWholeWordCommand),appendRegexLabel:this._keybindingLabelFor(FIND_IDS.ToggleRegexCommand),validation:l=>{if(l.length===0||!this._findInput.getRegex())return null;try{return new RegExp(l,"gu"),null}catch(d){return{content:d.message}}},flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showCommonFindToggles:!0,showHistoryHint:()=>showHistoryKeybindingHint(this._keybindingService),inputBoxStyles:defaultInputBoxStyles,toggleStyles:defaultToggleStyles},this._contextKeyService)),this._findInput.setRegex(!!this._state.isRegex),this._findInput.setCaseSensitive(!!this._state.matchCase),this._findInput.setWholeWords(!!this._state.wholeWord),this._register(this._findInput.onKeyDown(l=>this._onFindInputKeyDown(l))),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(l=>{l.equals(1026)&&this._isReplaceVisible&&(this._replaceInput.focus(),l.preventDefault())})),this._register(this._findInput.onRegexKeyDown(l=>{l.equals(2)&&this._isReplaceVisible&&(this._replaceInput.focusOnPreserve(),l.preventDefault())})),this._register(this._findInput.inputBox.onDidHeightChange(l=>{this._tryUpdateHeight()&&this._showViewZone()})),isLinux&&this._register(this._findInput.onMouseDown(l=>this._onFindInputMouseDown(l))),this._matchesCount=document.createElement("div"),this._matchesCount.className="matchesCount",this._updateMatchesCount(),this._prevBtn=this._register(new SimpleButton({label:NLS_PREVIOUS_MATCH_BTN_LABEL+this._keybindingLabelFor(FIND_IDS.PreviousMatchFindAction),icon:findPreviousMatchIcon,onTrigger:()=>{assertIsDefined(this._codeEditor.getAction(FIND_IDS.PreviousMatchFindAction)).run().then(void 0,onUnexpectedError)}})),this._nextBtn=this._register(new SimpleButton({label:NLS_NEXT_MATCH_BTN_LABEL+this._keybindingLabelFor(FIND_IDS.NextMatchFindAction),icon:findNextMatchIcon,onTrigger:()=>{assertIsDefined(this._codeEditor.getAction(FIND_IDS.NextMatchFindAction)).run().then(void 0,onUnexpectedError)}}));const i=document.createElement("div");i.className="find-part",i.appendChild(this._findInput.domNode);const n=document.createElement("div");n.className="find-actions",i.appendChild(n),n.appendChild(this._matchesCount),n.appendChild(this._prevBtn.domNode),n.appendChild(this._nextBtn.domNode),this._toggleSelectionFind=this._register(new Toggle({icon:findSelectionIcon,title:NLS_TOGGLE_SELECTION_FIND_TITLE+this._keybindingLabelFor(FIND_IDS.ToggleSearchScopeCommand),isChecked:!1,inputActiveOptionBackground:asCssVariable(inputActiveOptionBackground),inputActiveOptionBorder:asCssVariable(inputActiveOptionBorder),inputActiveOptionForeground:asCssVariable(inputActiveOptionForeground)})),this._register(this._toggleSelectionFind.onChange(()=>{if(this._toggleSelectionFind.checked){if(this._codeEditor.hasModel()){const l=this._codeEditor.getSelections();l.map(d=>(d.endColumn===1&&d.endLineNumber>d.startLineNumber&&(d=d.setEndPosition(d.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(d.endLineNumber-1))),d.isEmpty()?null:d)).filter(d=>!!d),l.length&&this._state.change({searchScope:l},!0)}}else this._state.change({searchScope:null},!0)})),n.appendChild(this._toggleSelectionFind.domNode),this._closeBtn=this._register(new SimpleButton({label:NLS_CLOSE_BTN_LABEL+this._keybindingLabelFor(FIND_IDS.CloseFindWidgetCommand),icon:widgetClose,onTrigger:()=>{this._state.change({isRevealed:!1,searchScope:null},!1)},onKeyDown:l=>{l.equals(2)&&this._isReplaceVisible&&(this._replaceBtn.isEnabled()?this._replaceBtn.focus():this._codeEditor.focus(),l.preventDefault())}})),this._replaceInput=this._register(new ContextScopedReplaceInput(null,void 0,{label:NLS_REPLACE_INPUT_LABEL,placeholder:NLS_REPLACE_INPUT_PLACEHOLDER,appendPreserveCaseLabel:this._keybindingLabelFor(FIND_IDS.TogglePreserveCaseCommand),history:[],flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showHistoryHint:()=>showHistoryKeybindingHint(this._keybindingService),inputBoxStyles:defaultInputBoxStyles,toggleStyles:defaultToggleStyles},this._contextKeyService,!0)),this._replaceInput.setPreserveCase(!!this._state.preserveCase),this._register(this._replaceInput.onKeyDown(l=>this._onReplaceInputKeyDown(l))),this._register(this._replaceInput.inputBox.onDidChange(()=>{this._state.change({replaceString:this._replaceInput.inputBox.value},!1)})),this._register(this._replaceInput.inputBox.onDidHeightChange(l=>{this._isReplaceVisible&&this._tryUpdateHeight()&&this._showViewZone()})),this._register(this._replaceInput.onDidOptionChange(()=>{this._state.change({preserveCase:this._replaceInput.getPreserveCase()},!0)})),this._register(this._replaceInput.onPreserveCaseKeyDown(l=>{l.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(),l.preventDefault())})),this._replaceBtn=this._register(new SimpleButton({label:NLS_REPLACE_BTN_LABEL+this._keybindingLabelFor(FIND_IDS.ReplaceOneAction),icon:findReplaceIcon,onTrigger:()=>{this._controller.replace()},onKeyDown:l=>{l.equals(1026)&&(this._closeBtn.focus(),l.preventDefault())}})),this._replaceAllBtn=this._register(new SimpleButton({label:NLS_REPLACE_ALL_BTN_LABEL+this._keybindingLabelFor(FIND_IDS.ReplaceAllAction),icon:findReplaceAllIcon,onTrigger:()=>{this._controller.replaceAll()}}));const r=document.createElement("div");r.className="replace-part",r.appendChild(this._replaceInput.domNode);const s=document.createElement("div");s.className="replace-actions",r.appendChild(s),s.appendChild(this._replaceBtn.domNode),s.appendChild(this._replaceAllBtn.domNode),this._toggleReplaceBtn=this._register(new SimpleButton({label:NLS_TOGGLE_REPLACE_MODE_BTN_LABEL,className:"codicon toggle left",onTrigger:()=>{this._state.change({isReplaceRevealed:!this._isReplaceVisible},!1),this._isReplaceVisible&&(this._replaceInput.width=getTotalWidth(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.ariaLabel=NLS_FIND_DIALOG_LABEL,this._domNode.role="dialog",this._domNode.style.width=`${FIND_WIDGET_INITIAL_WIDTH}px`,this._domNode.appendChild(this._toggleReplaceBtn.domNode),this._domNode.appendChild(i),this._domNode.appendChild(this._closeBtn.domNode),this._domNode.appendChild(r),this._resizeSash=new Sash(this._domNode,this,{orientation:0,size:2}),this._resized=!1;let a=FIND_WIDGET_INITIAL_WIDTH;this._register(this._resizeSash.onDidStart(()=>{a=getTotalWidth(this._domNode)})),this._register(this._resizeSash.onDidChange(l=>{this._resized=!0;const d=a+l.startX-l.currentX;if(d<FIND_WIDGET_INITIAL_WIDTH)return;const c=parseFloat(getComputedStyle$1(this._domNode).maxWidth)||0;d>c||(this._domNode.style.width=`${d}px`,this._isReplaceVisible&&(this._replaceInput.width=getTotalWidth(this._findInput.domNode)),this._findInput.inputBox.layout(),this._tryUpdateHeight())})),this._register(this._resizeSash.onDidReset(()=>{const l=getTotalWidth(this._domNode);if(l<FIND_WIDGET_INITIAL_WIDTH)return;let d=FIND_WIDGET_INITIAL_WIDTH;if(!this._resized||l===FIND_WIDGET_INITIAL_WIDTH){const c=this._codeEditor.getLayoutInfo();d=c.width-28-c.minimap.minimapWidth-15,this._resized=!0}this._domNode.style.width=`${d}px`,this._isReplaceVisible&&(this._replaceInput.width=getTotalWidth(this._findInput.domNode)),this._findInput.inputBox.layout()}))}updateAccessibilitySupport(){const e=this._codeEditor.getOption(2);this._findInput.setFocusInputOnOptionClick(e!==2)}}FindWidget.ID="editor.contrib.findWidget";class SimpleButton extends Widget$1{constructor(e){super(),this._opts=e;let t="button";this._opts.className&&(t=t+" "+this._opts.className),this._opts.icon&&(t=t+" "+ThemeIcon.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,i=>{this._opts.onTrigger(),i.preventDefault()}),this.onkeydown(this._domNode,i=>{var n,r;if(i.equals(10)||i.equals(3)){this._opts.onTrigger(),i.preventDefault();return}(r=(n=this._opts).onKeyDown)===null||r===void 0||r.call(n,i)})}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(...ThemeIcon.asClassNameArray(findCollapsedIcon)),this._domNode.classList.add(...ThemeIcon.asClassNameArray(findExpandedIcon))):(this._domNode.classList.remove(...ThemeIcon.asClassNameArray(findExpandedIcon)),this._domNode.classList.add(...ThemeIcon.asClassNameArray(findCollapsedIcon)))}}registerThemingParticipant((o,e)=>{const t=(m,b)=>{b&&e.addRule(`.monaco-editor ${m} { background-color: ${b}; }`)};t(".findMatch",o.getColor(editorFindMatchHighlight)),t(".currentFindMatch",o.getColor(editorFindMatch)),t(".findScope",o.getColor(editorFindRangeHighlight));const i=o.getColor(editorWidgetBackground);t(".find-widget",i);const n=o.getColor(widgetShadow);n&&e.addRule(`.monaco-editor .find-widget { box-shadow: 0 0 8px 2px ${n}; }`);const r=o.getColor(widgetBorder);r&&e.addRule(`.monaco-editor .find-widget { border-left: 1px solid ${r}; border-right: 1px solid ${r}; border-bottom: 1px solid ${r}; }`);const s=o.getColor(editorFindMatchHighlightBorder);s&&e.addRule(`.monaco-editor .findMatch { border: 1px ${isHighContrast(o.type)?"dotted":"solid"} ${s}; box-sizing: border-box; }`);const a=o.getColor(editorFindMatchBorder);a&&e.addRule(`.monaco-editor .currentFindMatch { border: 2px solid ${a}; padding: 1px; box-sizing: border-box; }`);const l=o.getColor(editorFindRangeHighlightBorder);l&&e.addRule(`.monaco-editor .findScope { border: 1px ${isHighContrast(o.type)?"dashed":"solid"} ${l}; }`);const d=o.getColor(contrastBorder);d&&e.addRule(`.monaco-editor .find-widget { border: 1px solid ${d}; }`);const c=o.getColor(editorWidgetForeground);c&&e.addRule(`.monaco-editor .find-widget { color: ${c}; }`);const u=o.getColor(errorForeground);u&&e.addRule(`.monaco-editor .find-widget.no-results .matchesCount { color: ${u}; }`);const g=o.getColor(editorWidgetResizeBorder);if(g)e.addRule(`.monaco-editor .find-widget .monaco-sash { background-color: ${g}; }`);else{const m=o.getColor(editorWidgetBorder);m&&e.addRule(`.monaco-editor .find-widget .monaco-sash { background-color: ${m}; }`)}const f=o.getColor(toolbarHoverBackground);f&&e.addRule(`
- .monaco-editor .find-widget .button:not(.disabled):hover,
- .monaco-editor .find-widget .codicon-find-selection:hover {
- background-color: ${f} !important;
- }
- `);const p=o.getColor(focusBorder);p&&e.addRule(`.monaco-editor .find-widget .monaco-inputbox.synthetic-focus { outline-color: ${p}; }`)});var __decorate$Q=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$Q=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$B=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},CommonFindController_1;const SEARCH_STRING_MAX_LENGTH=524288;function getSelectionSearchString(o,e="single",t=!1){if(!o.hasModel())return null;const i=o.getSelection();if(e==="single"&&i.startLineNumber===i.endLineNumber||e==="multiple"){if(i.isEmpty()){const n=o.getConfiguredWordAtPosition(i.getStartPosition());if(n&&t===!1)return n.word}else if(o.getModel().getValueLengthInRange(i)<SEARCH_STRING_MAX_LENGTH)return o.getModel().getValueInRange(i)}return null}let CommonFindController=CommonFindController_1=class extends Disposable{get editor(){return this._editor}static get(e){return e.getContribution(CommonFindController_1.ID)}constructor(e,t,i,n,r){super(),this._editor=e,this._findWidgetVisible=CONTEXT_FIND_WIDGET_VISIBLE.bindTo(t),this._contextKeyService=t,this._storageService=i,this._clipboardService=n,this._notificationService=r,this._updateHistoryDelayer=new Delayer(500),this._state=this._register(new FindReplaceState),this.loadQueryState(),this._register(this._state.onFindReplaceStateChange(s=>this._onStateChanged(s))),this._model=null,this._register(this._editor.onDidChangeModel(()=>{const s=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),s&&this._start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!1,updateSearchScope:!1,loop:this._editor.getOption(41).loop})}))}dispose(){this.disposeModel(),super.dispose()}disposeModel(){this._model&&(this._model.dispose(),this._model=null)}_onStateChanged(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,1),e.wholeWord&&this._storageService.store("editor.wholeWord",this._state.actualWholeWord,1,1),e.matchCase&&this._storageService.store("editor.matchCase",this._state.actualMatchCase,1,1),e.preserveCase&&this._storageService.store("editor.preserveCase",this._state.actualPreserveCase,1,1)}loadQueryState(){this._state.change({matchCase:this._storageService.getBoolean("editor.matchCase",1,this._state.matchCase),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,this._state.wholeWord),isRegex:this._storageService.getBoolean("editor.isRegex",1,this._state.isRegex),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,this._state.preserveCase)},!1)}isFindInputFocused(){return!!CONTEXT_FIND_INPUT_FOCUSED.getValue(this._contextKeyService)}getState(){return this._state}closeFindWidget(){this._state.change({isRevealed:!1,searchScope:null},!1),this._editor.focus()}toggleCaseSensitive(){this._state.change({matchCase:!this._state.matchCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleWholeWords(){this._state.change({wholeWord:!this._state.wholeWord},!1),this._state.isRevealed||this.highlightFindOptions()}toggleRegex(){this._state.change({isRegex:!this._state.isRegex},!1),this._state.isRevealed||this.highlightFindOptions()}togglePreserveCase(){this._state.change({preserveCase:!this._state.preserveCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleSearchScope(){if(this._state.searchScope)this._state.change({searchScope:null},!0);else if(this._editor.hasModel()){const e=this._editor.getSelections();e.map(t=>(t.endColumn===1&&t.endLineNumber>t.startLineNumber&&(t=t.setEndPosition(t.endLineNumber-1,this._editor.getModel().getLineMaxColumn(t.endLineNumber-1))),t.isEmpty()?null:t)).filter(t=>!!t),e.length&&this._state.change({searchScope:e},!0)}}setSearchString(e){this._state.isRegex&&(e=escapeRegExpCharacters(e)),this._state.change({searchString:e},!1)}highlightFindOptions(e=!1){}_start(e,t){return __awaiter$B(this,void 0,void 0,function*(){if(this.disposeModel(),!this._editor.hasModel())return;const i=Object.assign(Object.assign({},t),{isRevealed:!0});if(e.seedSearchStringFromSelection==="single"){const n=getSelectionSearchString(this._editor,e.seedSearchStringFromSelection,e.seedSearchStringFromNonEmptySelection);n&&(this._state.isRegex?i.searchString=escapeRegExpCharacters(n):i.searchString=n)}else if(e.seedSearchStringFromSelection==="multiple"&&!e.updateSearchScope){const n=getSelectionSearchString(this._editor,e.seedSearchStringFromSelection);n&&(i.searchString=n)}if(!i.searchString&&e.seedSearchStringFromGlobalClipboard){const n=yield this.getGlobalBufferTerm();if(!this._editor.hasModel())return;n&&(i.searchString=n)}if(e.forceRevealReplace||i.isReplaceRevealed?i.isReplaceRevealed=!0:this._findWidgetVisible.get()||(i.isReplaceRevealed=!1),e.updateSearchScope){const n=this._editor.getSelections();n.some(r=>!r.isEmpty())&&(i.searchScope=n)}i.loop=e.loop,this._state.change(i,!1),this._model||(this._model=new FindModelBoundToEditorModel(this._editor,this._state))})}start(e,t){return this._start(e,t)}moveToNextMatch(){return this._model?(this._model.moveToNextMatch(),!0):!1}moveToPrevMatch(){return this._model?(this._model.moveToPrevMatch(),!0):!1}goToMatch(e){return this._model?(this._model.moveToMatch(e),!0):!1}replace(){return this._model?(this._model.replace(),!0):!1}replaceAll(){var e;return this._model?!((e=this._editor.getModel())===null||e===void 0)&&e.isTooLargeForHeapOperation()?(this._notificationService.warn(localize("too.large.for.replaceall","The file is too large to perform a replace all operation.")),!1):(this._model.replaceAll(),!0):!1}selectAllMatches(){return this._model?(this._model.selectAllMatches(),this._editor.focus(),!0):!1}getGlobalBufferTerm(){return __awaiter$B(this,void 0,void 0,function*(){return this._editor.getOption(41).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()?this._clipboardService.readFindText():""})}setGlobalBufferTerm(e){this._editor.getOption(41).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()&&this._clipboardService.writeFindText(e)}};CommonFindController.ID="editor.contrib.findController";CommonFindController=CommonFindController_1=__decorate$Q([__param$Q(1,IContextKeyService),__param$Q(2,IStorageService),__param$Q(3,IClipboardService),__param$Q(4,INotificationService)],CommonFindController);let FindController=class extends CommonFindController{constructor(e,t,i,n,r,s,a,l){super(e,i,a,l,s),this._contextViewService=t,this._keybindingService=n,this._themeService=r,this._widget=null,this._findOptionsWidget=null}_start(e,t){const i=Object.create(null,{_start:{get:()=>super._start}});return __awaiter$B(this,void 0,void 0,function*(){this._widget||this._createFindWidget();const n=this._editor.getSelection();let r=!1;switch(this._editor.getOption(41).autoFindInSelection){case"always":r=!0;break;case"never":r=!1;break;case"multiline":{r=!!n&&n.startLineNumber!==n.endLineNumber;break}}e.updateSearchScope=e.updateSearchScope||r,yield i._start.call(this,e,t),this._widget&&(e.shouldFocus===2?this._widget.focusReplaceInput():e.shouldFocus===1&&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 FindWidget(this._editor,this,this._state,this._contextViewService,this._keybindingService,this._contextKeyService,this._themeService,this._storageService,this._notificationService)),this._findOptionsWidget=this._register(new FindOptionsWidget(this._editor,this._state,this._keybindingService))}};FindController=__decorate$Q([__param$Q(1,IContextViewService),__param$Q(2,IContextKeyService),__param$Q(3,IKeybindingService),__param$Q(4,IThemeService),__param$Q(5,INotificationService),__param$Q(6,IStorageService),__param$Q(7,IClipboardService)],FindController);const StartFindAction=registerMultiEditorAction(new MultiEditorAction({id:FIND_IDS.StartFindAction,label:localize("startFindAction","Find"),alias:"Find",precondition:ContextKeyExpr.or(EditorContextKeys.focus,ContextKeyExpr.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2084,weight:100},menuOpts:{menuId:MenuId.MenubarEditMenu,group:"3_find",title:localize({},"&&Find"),order:1}}));StartFindAction.addImplementation(0,(o,e,t)=>{const i=CommonFindController.get(e);return i?i.start({forceRevealReplace:!1,seedSearchStringFromSelection:e.getOption(41).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:e.getOption(41).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:e.getOption(41).globalFindClipboard,shouldFocus:1,shouldAnimate:!0,updateSearchScope:!1,loop:e.getOption(41).loop}):!1});const findArgDescription={description:"Open a new In-Editor Find Widget.",args:[{name:"Open a new In-Editor Find Widget args",schema:{properties:{searchString:{type:"string"},replaceString:{type:"string"},regex:{type:"boolean"},regexOverride:{type:"number",description:localize("actions.find.isRegexOverride",`Overrides "Use Regular Expression" flag.
- The flag will not be saved for the future.
- 0: Do Nothing
- 1: True
- 2: False`)},wholeWord:{type:"boolean"},wholeWordOverride:{type:"number",description:localize("actions.find.wholeWordOverride",`Overrides "Match Whole Word" flag.
- The flag will not be saved for the future.
- 0: Do Nothing
- 1: True
- 2: False`)},matchCase:{type:"boolean"},matchCaseOverride:{type:"number",description:localize("actions.find.matchCaseOverride",`Overrides "Math Case" flag.
- The flag will not be saved for the future.
- 0: Do Nothing
- 1: True
- 2: False`)},preserveCase:{type:"boolean"},preserveCaseOverride:{type:"number",description:localize("actions.find.preserveCaseOverride",`Overrides "Preserve Case" flag.
- The flag will not be saved for the future.
- 0: Do Nothing
- 1: True
- 2: False`)},findInSelection:{type:"boolean"}}}}]};class StartFindWithArgsAction extends EditorAction{constructor(){super({id:FIND_IDS.StartFindWithArgs,label:localize("startFindWithArgsAction","Find With Arguments"),alias:"Find With Arguments",precondition:void 0,kbOpts:{kbExpr:null,primary:0,weight:100},description:findArgDescription})}run(e,t,i){return __awaiter$B(this,void 0,void 0,function*(){const n=CommonFindController.get(t);if(n){const r=i?{searchString:i.searchString,replaceString:i.replaceString,isReplaceRevealed:i.replaceString!==void 0,isRegex:i.isRegex,wholeWord:i.matchWholeWord,matchCase:i.isCaseSensitive,preserveCase:i.preserveCase}:{};yield n.start({forceRevealReplace:!1,seedSearchStringFromSelection:n.getState().searchString.length===0&&t.getOption(41).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:t.getOption(41).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:1,shouldAnimate:!0,updateSearchScope:(i==null?void 0:i.findInSelection)||!1,loop:t.getOption(41).loop},r),n.setGlobalBufferTerm(n.getState().searchString)}})}}class StartFindWithSelectionAction extends EditorAction{constructor(){super({id:FIND_IDS.StartFindWithSelection,label:localize("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 __awaiter$B(this,void 0,void 0,function*(){const i=CommonFindController.get(t);i&&(yield i.start({forceRevealReplace:!1,seedSearchStringFromSelection:"multiple",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(41).loop}),i.setGlobalBufferTerm(i.getState().searchString))})}}class MatchFindAction extends EditorAction{run(e,t){return __awaiter$B(this,void 0,void 0,function*(){const i=CommonFindController.get(t);i&&!this._run(i)&&(yield i.start({forceRevealReplace:!1,seedSearchStringFromSelection:i.getState().searchString.length===0&&t.getOption(41).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:t.getOption(41).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(41).loop}),this._run(i))})}}class NextMatchFindAction extends MatchFindAction{constructor(){super({id:FIND_IDS.NextMatchFindAction,label:localize("findNextMatchAction","Find Next"),alias:"Find Next",precondition:void 0,kbOpts:[{kbExpr:EditorContextKeys.focus,primary:61,mac:{primary:2085,secondary:[61]},weight:100},{kbExpr:ContextKeyExpr.and(EditorContextKeys.focus,CONTEXT_FIND_INPUT_FOCUSED),primary:3,weight:100}]})}_run(e){return e.moveToNextMatch()?(e.editor.pushUndoStop(),!0):!1}}class PreviousMatchFindAction extends MatchFindAction{constructor(){super({id:FIND_IDS.PreviousMatchFindAction,label:localize("findPreviousMatchAction","Find Previous"),alias:"Find Previous",precondition:void 0,kbOpts:[{kbExpr:EditorContextKeys.focus,primary:1085,mac:{primary:3109,secondary:[1085]},weight:100},{kbExpr:ContextKeyExpr.and(EditorContextKeys.focus,CONTEXT_FIND_INPUT_FOCUSED),primary:1027,weight:100}]})}_run(e){return e.moveToPrevMatch()}}class MoveToMatchFindAction extends EditorAction{constructor(){super({id:FIND_IDS.GoToMatchFindAction,label:localize("findMatchAction.goToMatch","Go to Match..."),alias:"Go to Match...",precondition:CONTEXT_FIND_WIDGET_VISIBLE}),this._highlightDecorations=[]}run(e,t,i){const n=CommonFindController.get(t);if(!n)return;const r=n.getState().matchesCount;if(r<1){e.get(INotificationService).notify({severity:Severity.Warning,message:localize("findMatchAction.noResults","No matches. Try searching for something else.")});return}const a=e.get(IQuickInputService).createInputBox();a.placeholder=localize("findMatchAction.inputPlaceHolder","Type a number to go to a specific match (between 1 and {0})",r);const l=c=>{const u=parseInt(c);if(isNaN(u))return;const g=n.getState().matchesCount;if(u>0&&u<=g)return u-1;if(u<0&&u>=-g)return g+u},d=c=>{const u=l(c);if(typeof u=="number"){a.validationMessage=void 0,n.goToMatch(u);const g=n.getState().currentMatch;g&&this.addDecorations(t,g)}else a.validationMessage=localize("findMatchAction.inputValidationMessage","Please type a number between 1 and {0}",n.getState().matchesCount),this.clearDecorations(t)};a.onDidChangeValue(c=>{d(c)}),a.onDidAccept(()=>{const c=l(a.value);typeof c=="number"?(n.goToMatch(c),a.hide()):a.validationMessage=localize("findMatchAction.inputValidationMessage","Please type a number between 1 and {0}",n.getState().matchesCount)}),a.onDidHide(()=>{this.clearDecorations(t),a.dispose()}),a.show()}clearDecorations(e){e.changeDecorations(t=>{this._highlightDecorations=t.deltaDecorations(this._highlightDecorations,[])})}addDecorations(e,t){e.changeDecorations(i=>{this._highlightDecorations=i.deltaDecorations(this._highlightDecorations,[{range:t,options:{description:"find-match-quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:t,options:{description:"find-match-quick-access-range-highlight-overview",overviewRuler:{color:themeColorFromId(overviewRulerRangeHighlight),position:OverviewRulerLane.Full}}}])})}}class SelectionMatchFindAction extends EditorAction{run(e,t){return __awaiter$B(this,void 0,void 0,function*(){const i=CommonFindController.get(t);if(!i)return;const n=getSelectionSearchString(t,"single",!1);n&&i.setSearchString(n),this._run(i)||(yield i.start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(41).loop}),this._run(i))})}}class NextSelectionMatchFindAction extends SelectionMatchFindAction{constructor(){super({id:FIND_IDS.NextSelectionMatchFindAction,label:localize("nextSelectionMatchFindAction","Find Next Selection"),alias:"Find Next Selection",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.focus,primary:2109,weight:100}})}_run(e){return e.moveToNextMatch()}}class PreviousSelectionMatchFindAction extends SelectionMatchFindAction{constructor(){super({id:FIND_IDS.PreviousSelectionMatchFindAction,label:localize("previousSelectionMatchFindAction","Find Previous Selection"),alias:"Find Previous Selection",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.focus,primary:3133,weight:100}})}_run(e){return e.moveToPrevMatch()}}const StartFindReplaceAction=registerMultiEditorAction(new MultiEditorAction({id:FIND_IDS.StartFindReplaceAction,label:localize("startReplace","Replace"),alias:"Replace",precondition:ContextKeyExpr.or(EditorContextKeys.focus,ContextKeyExpr.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2086,mac:{primary:2596},weight:100},menuOpts:{menuId:MenuId.MenubarEditMenu,group:"3_find",title:localize({},"&&Replace"),order:2}}));StartFindReplaceAction.addImplementation(0,(o,e,t)=>{if(!e.hasModel()||e.getOption(90))return!1;const i=CommonFindController.get(e);if(!i)return!1;const n=e.getSelection(),r=i.isFindInputFocused(),s=!n.isEmpty()&&n.startLineNumber===n.endLineNumber&&e.getOption(41).seedSearchStringFromSelection!=="never"&&!r,a=r||s?2:1;return i.start({forceRevealReplace:!0,seedSearchStringFromSelection:s?"single":"none",seedSearchStringFromNonEmptySelection:e.getOption(41).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:e.getOption(41).seedSearchStringFromSelection!=="never",shouldFocus:a,shouldAnimate:!0,updateSearchScope:!1,loop:e.getOption(41).loop})});registerEditorContribution(CommonFindController.ID,FindController,0);registerEditorAction(StartFindWithArgsAction);registerEditorAction(StartFindWithSelectionAction);registerEditorAction(NextMatchFindAction);registerEditorAction(PreviousMatchFindAction);registerEditorAction(MoveToMatchFindAction);registerEditorAction(NextSelectionMatchFindAction);registerEditorAction(PreviousSelectionMatchFindAction);const FindCommand=EditorCommand.bindToContribution(CommonFindController.get);registerEditorCommand(new FindCommand({id:FIND_IDS.CloseFindWidgetCommand,precondition:CONTEXT_FIND_WIDGET_VISIBLE,handler:o=>o.closeFindWidget(),kbOpts:{weight:105,kbExpr:ContextKeyExpr.and(EditorContextKeys.focus,ContextKeyExpr.not("isComposing")),primary:9,secondary:[1033]}}));registerEditorCommand(new FindCommand({id:FIND_IDS.ToggleCaseSensitiveCommand,precondition:void 0,handler:o=>o.toggleCaseSensitive(),kbOpts:{weight:105,kbExpr:EditorContextKeys.focus,primary:ToggleCaseSensitiveKeybinding.primary,mac:ToggleCaseSensitiveKeybinding.mac,win:ToggleCaseSensitiveKeybinding.win,linux:ToggleCaseSensitiveKeybinding.linux}}));registerEditorCommand(new FindCommand({id:FIND_IDS.ToggleWholeWordCommand,precondition:void 0,handler:o=>o.toggleWholeWords(),kbOpts:{weight:105,kbExpr:EditorContextKeys.focus,primary:ToggleWholeWordKeybinding.primary,mac:ToggleWholeWordKeybinding.mac,win:ToggleWholeWordKeybinding.win,linux:ToggleWholeWordKeybinding.linux}}));registerEditorCommand(new FindCommand({id:FIND_IDS.ToggleRegexCommand,precondition:void 0,handler:o=>o.toggleRegex(),kbOpts:{weight:105,kbExpr:EditorContextKeys.focus,primary:ToggleRegexKeybinding.primary,mac:ToggleRegexKeybinding.mac,win:ToggleRegexKeybinding.win,linux:ToggleRegexKeybinding.linux}}));registerEditorCommand(new FindCommand({id:FIND_IDS.ToggleSearchScopeCommand,precondition:void 0,handler:o=>o.toggleSearchScope(),kbOpts:{weight:105,kbExpr:EditorContextKeys.focus,primary:ToggleSearchScopeKeybinding.primary,mac:ToggleSearchScopeKeybinding.mac,win:ToggleSearchScopeKeybinding.win,linux:ToggleSearchScopeKeybinding.linux}}));registerEditorCommand(new FindCommand({id:FIND_IDS.TogglePreserveCaseCommand,precondition:void 0,handler:o=>o.togglePreserveCase(),kbOpts:{weight:105,kbExpr:EditorContextKeys.focus,primary:TogglePreserveCaseKeybinding.primary,mac:TogglePreserveCaseKeybinding.mac,win:TogglePreserveCaseKeybinding.win,linux:TogglePreserveCaseKeybinding.linux}}));registerEditorCommand(new FindCommand({id:FIND_IDS.ReplaceOneAction,precondition:CONTEXT_FIND_WIDGET_VISIBLE,handler:o=>o.replace(),kbOpts:{weight:105,kbExpr:EditorContextKeys.focus,primary:3094}}));registerEditorCommand(new FindCommand({id:FIND_IDS.ReplaceOneAction,precondition:CONTEXT_FIND_WIDGET_VISIBLE,handler:o=>o.replace(),kbOpts:{weight:105,kbExpr:ContextKeyExpr.and(EditorContextKeys.focus,CONTEXT_REPLACE_INPUT_FOCUSED),primary:3}}));registerEditorCommand(new FindCommand({id:FIND_IDS.ReplaceAllAction,precondition:CONTEXT_FIND_WIDGET_VISIBLE,handler:o=>o.replaceAll(),kbOpts:{weight:105,kbExpr:EditorContextKeys.focus,primary:2563}}));registerEditorCommand(new FindCommand({id:FIND_IDS.ReplaceAllAction,precondition:CONTEXT_FIND_WIDGET_VISIBLE,handler:o=>o.replaceAll(),kbOpts:{weight:105,kbExpr:ContextKeyExpr.and(EditorContextKeys.focus,CONTEXT_REPLACE_INPUT_FOCUSED),primary:void 0,mac:{primary:2051}}}));registerEditorCommand(new FindCommand({id:FIND_IDS.SelectAllMatchesAction,precondition:CONTEXT_FIND_WIDGET_VISIBLE,handler:o=>o.selectAllMatches(),kbOpts:{weight:105,kbExpr:EditorContextKeys.focus,primary:515}}));const foldSourceAbbr={0:" ",1:"u",2:"r"},MAX_FOLDING_REGIONS=65535,MAX_LINE_NUMBER=16777215,MASK_INDENT=4278190080;class BitField{constructor(e){const t=Math.ceil(e/32);this._states=new Uint32Array(t)}get(e){const t=e/32|0,i=e%32;return(this._states[t]&1<<i)!==0}set(e,t){const i=e/32|0,n=e%32,r=this._states[i];t?this._states[i]=r|1<<n:this._states[i]=r&~(1<<n)}}class FoldingRegions{constructor(e,t,i){if(e.length!==t.length||e.length>MAX_FOLDING_REGIONS)throw new Error("invalid startIndexes or endIndexes size");this._startIndexes=e,this._endIndexes=t,this._collapseStates=new BitField(e.length),this._userDefinedStates=new BitField(e.length),this._recoveredStates=new BitField(e.length),this._types=i,this._parentsComputed=!1}ensureParentIndices(){if(!this._parentsComputed){this._parentsComputed=!0;const e=[],t=(i,n)=>{const r=e[e.length-1];return this.getStartLineNumber(r)<=i&&this.getEndLineNumber(r)>=n};for(let i=0,n=this._startIndexes.length;i<n;i++){const r=this._startIndexes[i],s=this._endIndexes[i];if(r>MAX_LINE_NUMBER||s>MAX_LINE_NUMBER)throw new Error("startLineNumber or endLineNumber must not exceed "+MAX_LINE_NUMBER);for(;e.length>0&&!t(r,s);)e.pop();const a=e.length>0?e[e.length-1]:-1;e.push(i),this._startIndexes[i]=r+((a&255)<<24),this._endIndexes[i]=s+((a&65280)<<16)}}}get length(){return this._startIndexes.length}getStartLineNumber(e){return this._startIndexes[e]&MAX_LINE_NUMBER}getEndLineNumber(e){return this._endIndexes[e]&MAX_LINE_NUMBER}getType(e){return this._types?this._types[e]:void 0}hasTypes(){return!!this._types}isCollapsed(e){return this._collapseStates.get(e)}setCollapsed(e,t){this._collapseStates.set(e,t)}isUserDefined(e){return this._userDefinedStates.get(e)}setUserDefined(e,t){return this._userDefinedStates.set(e,t)}isRecovered(e){return this._recoveredStates.get(e)}setRecovered(e,t){return this._recoveredStates.set(e,t)}getSource(e){return this.isUserDefined(e)?1:this.isRecovered(e)?2:0}setSource(e,t){t===1?(this.setUserDefined(e,!0),this.setRecovered(e,!1)):t===2?(this.setUserDefined(e,!1),this.setRecovered(e,!0)):(this.setUserDefined(e,!1),this.setRecovered(e,!1))}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 FoldingRegion(this,e)}getParentIndex(e){this.ensureParentIndices();const t=((this._startIndexes[e]&MASK_INDENT)>>>24)+((this._endIndexes[e]&MASK_INDENT)>>>16);return t===MAX_FOLDING_REGIONS?-1:t}contains(e,t){return this.getStartLineNumber(e)<=t&&this.getEndLineNumber(e)>=t}findIndex(e){let t=0,i=this._startIndexes.length;if(i===0)return-1;for(;t<i;){const 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);t!==-1;){if(this.contains(t,e))return t;t=this.getParentIndex(t)}}return-1}toString(){const e=[];for(let t=0;t<this.length;t++)e[t]=`[${foldSourceAbbr[this.getSource(t)]}${this.isCollapsed(t)?"+":"-"}] ${this.getStartLineNumber(t)}/${this.getEndLineNumber(t)}`;return e.join(", ")}toFoldRange(e){return{startLineNumber:this._startIndexes[e]&MAX_LINE_NUMBER,endLineNumber:this._endIndexes[e]&MAX_LINE_NUMBER,type:this._types?this._types[e]:void 0,isCollapsed:this.isCollapsed(e),source:this.getSource(e)}}static fromFoldRanges(e){const t=e.length,i=new Uint32Array(t),n=new Uint32Array(t);let r=[],s=!1;for(let l=0;l<t;l++){const d=e[l];i[l]=d.startLineNumber,n[l]=d.endLineNumber,r.push(d.type),d.type&&(s=!0)}s||(r=void 0);const a=new FoldingRegions(i,n,r);for(let l=0;l<t;l++)e[l].isCollapsed&&a.setCollapsed(l,!0),a.setSource(l,e[l].source);return a}static sanitizeAndMerge(e,t,i){i=i??Number.MAX_VALUE;const n=(m,b)=>Array.isArray(m)?_=>_<b?m[_]:void 0:_=>_<b?m.toFoldRange(_):void 0,r=n(e,e.length),s=n(t,t.length);let a=0,l=0,d=r(0),c=s(0);const u=[];let g,f=0;const p=[];for(;d||c;){let m;if(c&&(!d||d.startLineNumber>=c.startLineNumber))d&&d.startLineNumber===c.startLineNumber?(c.source===1?m=c:(m=d,m.isCollapsed=c.isCollapsed&&d.endLineNumber===c.endLineNumber,m.source=0),d=r(++a)):(m=c,c.isCollapsed&&c.source===0&&(m.source=2)),c=s(++l);else{let b=l,_=c;for(;;){if(!_||_.startLineNumber>d.endLineNumber){m=d;break}if(_.source===1&&_.endLineNumber>d.endLineNumber)break;_=s(++b)}d=r(++a)}if(m){for(;g&&g.endLineNumber<m.startLineNumber;)g=u.pop();m.endLineNumber>m.startLineNumber&&m.startLineNumber>f&&m.endLineNumber<=i&&(!g||g.endLineNumber>=m.endLineNumber)&&(p.push(m),f=m.startLineNumber,g&&u.push(g),g=m)}}return p}}class FoldingRegion{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 FoldingModel{get regions(){return this._regions}get textModel(){return this._textModel}constructor(e,t){this._updateEventEmitter=new Emitter$1,this.onDidChange=this._updateEventEmitter.event,this._textModel=e,this._decorationProvider=t,this._regions=new FoldingRegions(new Uint32Array(0),new Uint32Array(0)),this._editorDecorationIds=[]}toggleCollapseState(e){if(!e.length)return;e=e.sort((i,n)=>i.regionIndex-n.regionIndex);const t={};this._decorationProvider.changeDecorations(i=>{let n=0,r=-1,s=-1;const a=l=>{for(;n<l;){const d=this._regions.getEndLineNumber(n),c=this._regions.isCollapsed(n);if(d<=r){const u=this.regions.getSource(n)!==0;i.changeDecorationOptions(this._editorDecorationIds[n],this._decorationProvider.getDecorationOption(c,d<=s,u))}c&&d>s&&(s=d),n++}};for(const l of e){const d=l.regionIndex,c=this._editorDecorationIds[d];if(c&&!t[c]){t[c]=!0,a(d);const u=!this._regions.isCollapsed(d);this._regions.setCollapsed(d,u),r=Math.max(r,this._regions.getEndLineNumber(d))}}a(this._regions.length)}),this._updateEventEmitter.fire({model:this,collapseStateChanged:e})}removeManualRanges(e){const t=new Array,i=n=>{for(const r of e)if(!(r.startLineNumber>n.endLineNumber||n.startLineNumber>r.endLineNumber))return!0;return!1};for(let n=0;n<this._regions.length;n++){const r=this._regions.toFoldRange(n);(r.source===0||!i(r))&&t.push(r)}this.updatePost(FoldingRegions.fromFoldRanges(t))}update(e,t=[]){const i=this._currentFoldedOrManualRanges(t),n=FoldingRegions.sanitizeAndMerge(e,i,this._textModel.getLineCount());this.updatePost(FoldingRegions.fromFoldRanges(n))}updatePost(e){const t=[];let i=-1;for(let n=0,r=e.length;n<r;n++){const s=e.getStartLineNumber(n),a=e.getEndLineNumber(n),l=e.isCollapsed(n),d=e.getSource(n)!==0,c={startLineNumber:s,startColumn:this._textModel.getLineMaxColumn(s),endLineNumber:a,endColumn:this._textModel.getLineMaxColumn(a)+1};t.push({range:c,options:this._decorationProvider.getDecorationOption(l,a<=i,d)}),l&&a>i&&(i=a)}this._decorationProvider.changeDecorations(n=>this._editorDecorationIds=n.deltaDecorations(this._editorDecorationIds,t)),this._regions=e,this._updateEventEmitter.fire({model:this})}_currentFoldedOrManualRanges(e=[]){const t=(n,r)=>{for(const s of e)if(n<s&&s<=r)return!0;return!1},i=[];for(let n=0,r=this._regions.length;n<r;n++){let s=this.regions.isCollapsed(n);const a=this.regions.getSource(n);if(s||a!==0){const l=this._regions.toFoldRange(n),d=this._textModel.getDecorationRange(this._editorDecorationIds[n]);d&&(s&&t(d.startLineNumber,d.endLineNumber)&&(s=!1),i.push({startLineNumber:d.startLineNumber,endLineNumber:d.endLineNumber,type:l.type,isCollapsed:s,source:a}))}}return i}getMemento(){const e=this._currentFoldedOrManualRanges(),t=[],i=this._textModel.getLineCount();for(let n=0,r=e.length;n<r;n++){const s=e[n];if(s.startLineNumber>=s.endLineNumber||s.startLineNumber<1||s.endLineNumber>i)continue;const a=this._getLinesChecksum(s.startLineNumber+1,s.endLineNumber);t.push({startLineNumber:s.startLineNumber,endLineNumber:s.endLineNumber,isCollapsed:s.isCollapsed,source:s.source,checksum:a})}return t.length>0?t:void 0}applyMemento(e){var t,i;if(!Array.isArray(e))return;const n=[],r=this._textModel.getLineCount();for(const a of e){if(a.startLineNumber>=a.endLineNumber||a.startLineNumber<1||a.endLineNumber>r)continue;const l=this._getLinesChecksum(a.startLineNumber+1,a.endLineNumber);(!a.checksum||l===a.checksum)&&n.push({startLineNumber:a.startLineNumber,endLineNumber:a.endLineNumber,type:void 0,isCollapsed:(t=a.isCollapsed)!==null&&t!==void 0?t:!0,source:(i=a.source)!==null&&i!==void 0?i:0})}const s=FoldingRegions.sanitizeAndMerge(this._regions,n,r);this.updatePost(FoldingRegions.fromFoldRanges(s))}_getLinesChecksum(e,t){return hash(this._textModel.getLineContent(e)+this._textModel.getLineContent(t))%1e6}dispose(){this._decorationProvider.removeDecorations(this._editorDecorationIds)}getAllRegionsAtLine(e,t){const i=[];if(this._regions){let n=this._regions.findRange(e),r=1;for(;n>=0;){const s=this._regions.toRegion(n);(!t||t(s,r))&&i.push(s),r++,n=s.parentIndex}}return i}getRegionAtLine(e){if(this._regions){const t=this._regions.findRange(e);if(t>=0)return this._regions.toRegion(t)}return null}getRegionsInside(e,t){const i=[],n=e?e.regionIndex+1:0,r=e?e.endLineNumber:Number.MAX_VALUE;if(t&&t.length===2){const s=[];for(let a=n,l=this._regions.length;a<l;a++){const d=this._regions.toRegion(a);if(this._regions.getStartLineNumber(a)<r){for(;s.length>0&&!d.containedBy(s[s.length-1]);)s.pop();s.push(d),t(d,s.length)&&i.push(d)}else break}}else for(let s=n,a=this._regions.length;s<a;s++){const l=this._regions.toRegion(s);if(this._regions.getStartLineNumber(s)<r)(!t||t(l))&&i.push(l);else break}return i}}function toggleCollapseState(o,e,t){const i=[];for(const n of t){const r=o.getRegionAtLine(n);if(r){const s=!r.isCollapsed;if(i.push(r),e>1){const a=o.getRegionsInside(r,(l,d)=>l.isCollapsed!==s&&d<e);i.push(...a)}}}o.toggleCollapseState(i)}function setCollapseStateLevelsDown(o,e,t=Number.MAX_VALUE,i){const n=[];if(i&&i.length>0)for(const r of i){const s=o.getRegionAtLine(r);if(s&&(s.isCollapsed!==e&&n.push(s),t>1)){const a=o.getRegionsInside(s,(l,d)=>l.isCollapsed!==e&&d<t);n.push(...a)}}else{const r=o.getRegionsInside(null,(s,a)=>s.isCollapsed!==e&&a<t);n.push(...r)}o.toggleCollapseState(n)}function setCollapseStateLevelsUp(o,e,t,i){const n=[];for(const r of i){const s=o.getAllRegionsAtLine(r,(a,l)=>a.isCollapsed!==e&&l<=t);n.push(...s)}o.toggleCollapseState(n)}function setCollapseStateUp(o,e,t){const i=[];for(const n of t){const r=o.getAllRegionsAtLine(n,s=>s.isCollapsed!==e);r.length>0&&i.push(r[0])}o.toggleCollapseState(i)}function setCollapseStateAtLevel(o,e,t,i){const n=(s,a)=>a===e&&s.isCollapsed!==t&&!i.some(l=>s.containsLine(l)),r=o.getRegionsInside(null,n);o.toggleCollapseState(r)}function setCollapseStateForRest(o,e,t){const i=[];for(const s of t){const a=o.getAllRegionsAtLine(s,void 0);a.length>0&&i.push(a[0])}const n=s=>i.every(a=>!a.containedBy(s)&&!s.containedBy(a))&&s.isCollapsed!==e,r=o.getRegionsInside(null,n);o.toggleCollapseState(r)}function setCollapseStateForMatchingLines(o,e,t){const i=o.textModel,n=o.regions,r=[];for(let s=n.length-1;s>=0;s--)if(t!==n.isCollapsed(s)){const a=n.getStartLineNumber(s);e.test(i.getLineContent(a))&&r.push(n.toRegion(s))}o.toggleCollapseState(r)}function setCollapseStateForType(o,e,t){const i=o.regions,n=[];for(let r=i.length-1;r>=0;r--)t!==i.isCollapsed(r)&&e===i.getType(r)&&n.push(i.toRegion(r));o.toggleCollapseState(n)}function getParentFoldLine(o,e){let t=null;const i=e.getRegionAtLine(o);if(i!==null&&(t=i.startLineNumber,o===t)){const n=i.parentIndex;n!==-1?t=e.regions.getStartLineNumber(n):t=null}return t}function getPreviousFoldLine(o,e){let t=e.getRegionAtLine(o);if(t!==null&&t.startLineNumber===o){if(o!==t.startLineNumber)return t.startLineNumber;{const i=t.parentIndex;let n=0;for(i!==-1&&(n=e.regions.getStartLineNumber(t.parentIndex));t!==null;)if(t.regionIndex>0){if(t=e.regions.toRegion(t.regionIndex-1),t.startLineNumber<=n)return null;if(t.parentIndex===i)return t.startLineNumber}else return null}}else if(e.regions.length>0)for(t=e.regions.toRegion(e.regions.length-1);t!==null;){if(t.startLineNumber<o)return t.startLineNumber;t.regionIndex>0?t=e.regions.toRegion(t.regionIndex-1):t=null}return null}function getNextFoldLine(o,e){let t=e.getRegionAtLine(o);if(t!==null&&t.startLineNumber===o){const i=t.parentIndex;let n=0;if(i!==-1)n=e.regions.getEndLineNumber(t.parentIndex);else{if(e.regions.length===0)return null;n=e.regions.getEndLineNumber(e.regions.length-1)}for(;t!==null;)if(t.regionIndex<e.regions.length){if(t=e.regions.toRegion(t.regionIndex+1),t.startLineNumber>=n)return null;if(t.parentIndex===i)return t.startLineNumber}else return null}else if(e.regions.length>0)for(t=e.regions.toRegion(0);t!==null;){if(t.startLineNumber>o)return t.startLineNumber;t.regionIndex<e.regions.length?t=e.regions.toRegion(t.regionIndex+1):t=null}return null}class HiddenRangeModel{get onDidChange(){return this._updateEventEmitter.event}get hiddenRanges(){return this._hiddenRanges}constructor(e){this._updateEventEmitter=new Emitter$1,this._hasLineChanges=!1,this._foldingModel=e,this._foldingModelListener=e.onDidChange(t=>this.updateHiddenRanges()),this._hiddenRanges=[],e.regions.length&&this.updateHiddenRanges()}notifyChangeModelContent(e){this._hiddenRanges.length&&!this._hasLineChanges&&(this._hasLineChanges=e.changes.some(t=>t.range.endLineNumber!==t.range.startLineNumber||countEOL(t.text)[0]!==0))}updateHiddenRanges(){let e=!1;const t=[];let i=0,n=0,r=Number.MAX_VALUE,s=-1;const a=this._foldingModel.regions;for(;i<a.length;i++){if(!a.isCollapsed(i))continue;const l=a.getStartLineNumber(i)+1,d=a.getEndLineNumber(i);r<=l&&d<=s||(!e&&n<this._hiddenRanges.length&&this._hiddenRanges[n].startLineNumber===l&&this._hiddenRanges[n].endLineNumber===d?(t.push(this._hiddenRanges[n]),n++):(e=!0,t.push(new Range$2(l,1,d,1))),r=l,s=d)}(this._hasLineChanges||e||n<this._hiddenRanges.length)&&this.applyHiddenRanges(t)}applyHiddenRanges(e){this._hiddenRanges=e,this._hasLineChanges=!1,this._updateEventEmitter.fire(e)}hasRanges(){return this._hiddenRanges.length>0}isHidden(e){return findRange(this._hiddenRanges,e)!==null}adjustSelections(e){let t=!1;const i=this._foldingModel.textModel;let n=null;const r=s=>((!n||!isInside(s,n))&&(n=findRange(this._hiddenRanges,s)),n?n.startLineNumber-1:null);for(let s=0,a=e.length;s<a;s++){let l=e[s];const d=r(l.startLineNumber);d&&(l=l.setStartPosition(d,i.getLineMaxColumn(d)),t=!0);const c=r(l.endLineNumber);c&&(l=l.setEndPosition(c,i.getLineMaxColumn(c)),t=!0),e[s]=l}return t}dispose(){this.hiddenRanges.length>0&&(this._hiddenRanges=[],this._updateEventEmitter.fire(this._hiddenRanges)),this._foldingModelListener&&(this._foldingModelListener.dispose(),this._foldingModelListener=null)}}function isInside(o,e){return o>=e.startLineNumber&&o<=e.endLineNumber}function findRange(o,e){const t=findFirstIdxMonotonousOrArrLen(o,i=>e<i.startLineNumber)-1;return t>=0&&o[t].endLineNumber>=e?o[t]:null}const MAX_FOLDING_REGIONS_FOR_INDENT_DEFAULT=5e3,ID_INDENT_PROVIDER="indent";class IndentRangeProvider{constructor(e,t,i){this.editorModel=e,this.languageConfigurationService=t,this.foldingRangesLimit=i,this.id=ID_INDENT_PROVIDER}dispose(){}compute(e){const t=this.languageConfigurationService.getLanguageConfiguration(this.editorModel.getLanguageId()).foldingRules,i=t&&!!t.offSide,n=t&&t.markers;return Promise.resolve(computeRanges(this.editorModel,i,n,this.foldingRangesLimit))}}let RangesCollector$1=class{constructor(e){this._startIndexes=[],this._endIndexes=[],this._indentOccurrences=[],this._length=0,this._foldingRangesLimit=e}insertFirst(e,t,i){if(e>MAX_LINE_NUMBER||t>MAX_LINE_NUMBER)return;const 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){const t=this._foldingRangesLimit.limit;if(this._length<=t){this._foldingRangesLimit.update(this._length,!1);const i=new Uint32Array(this._length),n=new Uint32Array(this._length);for(let r=this._length-1,s=0;r>=0;r--,s++)i[s]=this._startIndexes[r],n[s]=this._endIndexes[r];return new FoldingRegions(i,n)}else{this._foldingRangesLimit.update(this._length,t);let i=0,n=this._indentOccurrences.length;for(let l=0;l<this._indentOccurrences.length;l++){const d=this._indentOccurrences[l];if(d){if(d+i>t){n=l;break}i+=d}}const r=e.getOptions().tabSize,s=new Uint32Array(t),a=new Uint32Array(t);for(let l=this._length-1,d=0;l>=0;l--){const c=this._startIndexes[l],u=e.getLineContent(c),g=computeIndentLevel(u,r);(g<n||g===n&&i++<t)&&(s[d]=c,a[d]=this._endIndexes[l],d++)}return new FoldingRegions(s,a)}}};const foldingRangesLimitDefault={limit:MAX_FOLDING_REGIONS_FOR_INDENT_DEFAULT,update:()=>{}};function computeRanges(o,e,t,i=foldingRangesLimitDefault){const n=o.getOptions().tabSize,r=new RangesCollector$1(i);let s;t&&(s=new RegExp(`(${t.start.source})|(?:${t.end.source})`));const a=[],l=o.getLineCount()+1;a.push({indent:-1,endAbove:l,line:l});for(let d=o.getLineCount();d>0;d--){const c=o.getLineContent(d),u=computeIndentLevel(c,n);let g=a[a.length-1];if(u===-1){e&&(g.endAbove=d);continue}let f;if(s&&(f=c.match(s)))if(f[1]){let p=a.length-1;for(;p>0&&a[p].indent!==-2;)p--;if(p>0){a.length=p+1,g=a[p],r.insertFirst(d,g.line,u),g.line=d,g.indent=u,g.endAbove=d;continue}}else{a.push({indent:-2,endAbove:d,line:d});continue}if(g.indent>u){do a.pop(),g=a[a.length-1];while(g.indent>u);const p=g.endAbove-1;p-d>=1&&r.insertFirst(d,p,u)}g.indent===u?g.endAbove=d:a.push({indent:u,endAbove:d,line:d})}return r.toIndentRanges(o)}const foldBackground=registerColor("editor.foldBackground",{light:transparent(editorSelectionBackground,.3),dark:transparent(editorSelectionBackground,.3),hcDark:null,hcLight:null},localize("foldBackgroundBackground","Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations."),!0);registerColor("editorGutter.foldingControlForeground",{dark:iconForeground,light:iconForeground,hcDark:iconForeground,hcLight:iconForeground},localize("editorGutter.foldingControlForeground","Color of the folding control in the editor gutter."));const foldingExpandedIcon=registerIcon("folding-expanded",Codicon.chevronDown,localize("foldingExpandedIcon","Icon for expanded ranges in the editor glyph margin.")),foldingCollapsedIcon=registerIcon("folding-collapsed",Codicon.chevronRight,localize("foldingCollapsedIcon","Icon for collapsed ranges in the editor glyph margin.")),foldingManualCollapsedIcon=registerIcon("folding-manual-collapsed",foldingCollapsedIcon,localize("foldingManualCollapedIcon","Icon for manually collapsed ranges in the editor glyph margin.")),foldingManualExpandedIcon=registerIcon("folding-manual-expanded",foldingExpandedIcon,localize("foldingManualExpandedIcon","Icon for manually expanded ranges in the editor glyph margin.")),foldedBackgroundMinimap={color:themeColorFromId(foldBackground),position:MinimapPosition.Inline};class FoldingDecorationProvider{constructor(e){this.editor=e,this.showFoldingControls="mouseover",this.showFoldingHighlights=!0}getDecorationOption(e,t,i){return t?FoldingDecorationProvider.HIDDEN_RANGE_DECORATION:this.showFoldingControls==="never"?e?this.showFoldingHighlights?FoldingDecorationProvider.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION:FoldingDecorationProvider.NO_CONTROLS_COLLAPSED_RANGE_DECORATION:FoldingDecorationProvider.NO_CONTROLS_EXPANDED_RANGE_DECORATION:e?i?this.showFoldingHighlights?FoldingDecorationProvider.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:FoldingDecorationProvider.MANUALLY_COLLAPSED_VISUAL_DECORATION:this.showFoldingHighlights?FoldingDecorationProvider.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:FoldingDecorationProvider.COLLAPSED_VISUAL_DECORATION:this.showFoldingControls==="mouseover"?i?FoldingDecorationProvider.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION:FoldingDecorationProvider.EXPANDED_AUTO_HIDE_VISUAL_DECORATION:i?FoldingDecorationProvider.MANUALLY_EXPANDED_VISUAL_DECORATION:FoldingDecorationProvider.EXPANDED_VISUAL_DECORATION}changeDecorations(e){return this.editor.changeDecorations(e)}removeDecorations(e){this.editor.removeDecorations(e)}}FoldingDecorationProvider.COLLAPSED_VISUAL_DECORATION=ModelDecorationOptions.register({description:"folding-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,firstLineDecorationClassName:ThemeIcon.asClassName(foldingCollapsedIcon)});FoldingDecorationProvider.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=ModelDecorationOptions.register({description:"folding-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:foldedBackgroundMinimap,isWholeLine:!0,firstLineDecorationClassName:ThemeIcon.asClassName(foldingCollapsedIcon)});FoldingDecorationProvider.MANUALLY_COLLAPSED_VISUAL_DECORATION=ModelDecorationOptions.register({description:"folding-manually-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,firstLineDecorationClassName:ThemeIcon.asClassName(foldingManualCollapsedIcon)});FoldingDecorationProvider.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=ModelDecorationOptions.register({description:"folding-manually-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:foldedBackgroundMinimap,isWholeLine:!0,firstLineDecorationClassName:ThemeIcon.asClassName(foldingManualCollapsedIcon)});FoldingDecorationProvider.NO_CONTROLS_COLLAPSED_RANGE_DECORATION=ModelDecorationOptions.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0});FoldingDecorationProvider.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION=ModelDecorationOptions.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:foldedBackgroundMinimap,isWholeLine:!0});FoldingDecorationProvider.EXPANDED_VISUAL_DECORATION=ModelDecorationOptions.register({description:"folding-expanded-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+ThemeIcon.asClassName(foldingExpandedIcon)});FoldingDecorationProvider.EXPANDED_AUTO_HIDE_VISUAL_DECORATION=ModelDecorationOptions.register({description:"folding-expanded-auto-hide-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:ThemeIcon.asClassName(foldingExpandedIcon)});FoldingDecorationProvider.MANUALLY_EXPANDED_VISUAL_DECORATION=ModelDecorationOptions.register({description:"folding-manually-expanded-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+ThemeIcon.asClassName(foldingManualExpandedIcon)});FoldingDecorationProvider.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION=ModelDecorationOptions.register({description:"folding-manually-expanded-auto-hide-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:ThemeIcon.asClassName(foldingManualExpandedIcon)});FoldingDecorationProvider.NO_CONTROLS_EXPANDED_RANGE_DECORATION=ModelDecorationOptions.register({description:"folding-no-controls-range-decoration",stickiness:0,isWholeLine:!0});FoldingDecorationProvider.HIDDEN_RANGE_DECORATION=ModelDecorationOptions.register({description:"folding-hidden-range-decoration",stickiness:1});const foldingContext={},ID_SYNTAX_PROVIDER="syntax";class SyntaxRangeProvider{constructor(e,t,i,n,r){this.editorModel=e,this.providers=t,this.handleFoldingRangesChange=i,this.foldingRangesLimit=n,this.fallbackRangeProvider=r,this.id=ID_SYNTAX_PROVIDER,this.disposables=new DisposableStore,r&&this.disposables.add(r);for(const s of t)typeof s.onDidChange=="function"&&this.disposables.add(s.onDidChange(i))}compute(e){return collectSyntaxRanges(this.providers,this.editorModel,e).then(t=>{var i,n;return t?sanitizeRanges(t,this.foldingRangesLimit):(n=(i=this.fallbackRangeProvider)===null||i===void 0?void 0:i.compute(e))!==null&&n!==void 0?n:null})}dispose(){this.disposables.dispose()}}function collectSyntaxRanges(o,e,t){let i=null;const n=o.map((r,s)=>Promise.resolve(r.provideFoldingRanges(e,foldingContext,t)).then(a=>{if(!t.isCancellationRequested&&Array.isArray(a)){Array.isArray(i)||(i=[]);const l=e.getLineCount();for(const d of a)d.start>0&&d.end>d.start&&d.end<=l&&i.push({start:d.start,end:d.end,rank:s,kind:d.kind})}},onUnexpectedExternalError));return Promise.all(n).then(r=>i)}class RangesCollector{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>MAX_LINE_NUMBER||t>MAX_LINE_NUMBER)return;const r=this._length;this._startIndexes[r]=e,this._endIndexes[r]=t,this._nestingLevels[r]=n,this._types[r]=i,this._length++,n<30&&(this._nestingLevelCounts[n]=(this._nestingLevelCounts[n]||0)+1)}toIndentRanges(){const e=this._foldingRangesLimit.limit;if(this._length<=e){this._foldingRangesLimit.update(this._length,!1);const t=new Uint32Array(this._length),i=new Uint32Array(this._length);for(let n=0;n<this._length;n++)t[n]=this._startIndexes[n],i[n]=this._endIndexes[n];return new FoldingRegions(t,i,this._types)}else{this._foldingRangesLimit.update(this._length,e);let t=0,i=this._nestingLevelCounts.length;for(let a=0;a<this._nestingLevelCounts.length;a++){const l=this._nestingLevelCounts[a];if(l){if(l+t>e){i=a;break}t+=l}}const n=new Uint32Array(e),r=new Uint32Array(e),s=[];for(let a=0,l=0;a<this._length;a++){const d=this._nestingLevels[a];(d<i||d===i&&t++<e)&&(n[l]=this._startIndexes[a],r[l]=this._endIndexes[a],s[l]=this._types[a],l++)}return new FoldingRegions(n,r,s)}}}function sanitizeRanges(o,e){const t=o.sort((s,a)=>{let l=s.start-a.start;return l===0&&(l=s.rank-a.rank),l}),i=new RangesCollector(e);let n;const r=[];for(const s of t)if(!n)n=s,i.add(s.start,s.end,s.kind&&s.kind.value,r.length);else if(s.start>n.start)if(s.end<=n.end)r.push(n),n=s,i.add(s.start,s.end,s.kind&&s.kind.value,r.length);else{if(s.start>n.end){do n=r.pop();while(n&&s.start>n.end);n&&r.push(n),n=s}i.add(s.start,s.end,s.kind&&s.kind.value,r.length)}return i.toIndentRanges()}var __decorate$P=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$P=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$A=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},FoldingController_1;const CONTEXT_FOLDING_ENABLED=new RawContextKey("foldingEnabled",!1);let FoldingController=FoldingController_1=class extends Disposable{static get(e){return e.getContribution(FoldingController_1.ID)}static getFoldingRangeProviders(e,t){var i,n;const r=e.foldingRangeProvider.ordered(t);return(n=(i=FoldingController_1._foldingRangeSelector)===null||i===void 0?void 0:i.call(FoldingController_1,r,t))!==null&&n!==void 0?n:r}constructor(e,t,i,n,r,s){super(),this.contextKeyService=t,this.languageConfigurationService=i,this.languageFeaturesService=s,this.localToDispose=this._register(new DisposableStore),this.editor=e,this._foldingLimitReporter=new RangesLimitReporter(e);const a=this.editor.getOptions();this._isEnabled=a.get(43),this._useFoldingProviders=a.get(44)!=="indentation",this._unfoldOnClickAfterEndOfLine=a.get(48),this._restoringViewState=!1,this._currentModelHasFoldedImports=!1,this._foldingImportsByDefault=a.get(46),this.updateDebounceInfo=r.for(s.foldingRangeProvider,"Folding",{min:200}),this.foldingModel=null,this.hiddenRangeModel=null,this.rangeProvider=null,this.foldingRegionPromise=null,this.foldingModelPromise=null,this.updateScheduler=null,this.cursorChangedScheduler=null,this.mouseDownInfo=null,this.foldingDecorationProvider=new FoldingDecorationProvider(e),this.foldingDecorationProvider.showFoldingControls=a.get(109),this.foldingDecorationProvider.showFoldingHighlights=a.get(45),this.foldingEnabled=CONTEXT_FOLDING_ENABLED.bindTo(this.contextKeyService),this.foldingEnabled.set(this._isEnabled),this._register(this.editor.onDidChangeModel(()=>this.onModelChanged())),this._register(this.editor.onDidChangeConfiguration(l=>{if(l.hasChanged(43)&&(this._isEnabled=this.editor.getOptions().get(43),this.foldingEnabled.set(this._isEnabled),this.onModelChanged()),l.hasChanged(47)&&this.onModelChanged(),l.hasChanged(109)||l.hasChanged(45)){const d=this.editor.getOptions();this.foldingDecorationProvider.showFoldingControls=d.get(109),this.foldingDecorationProvider.showFoldingHighlights=d.get(45),this.triggerFoldingModelChanged()}l.hasChanged(44)&&(this._useFoldingProviders=this.editor.getOptions().get(44)!=="indentation",this.onFoldingStrategyChanged()),l.hasChanged(48)&&(this._unfoldOnClickAfterEndOfLine=this.editor.getOptions().get(48)),l.hasChanged(46)&&(this._foldingImportsByDefault=this.editor.getOptions().get(46))})),this.onModelChanged()}saveViewState(){const e=this.editor.getModel();if(!e||!this._isEnabled||e.isTooLargeForTokenization())return{};if(this.foldingModel){const t=this.foldingModel.getMemento(),i=this.rangeProvider?this.rangeProvider.id:void 0;return{collapsedRegions:t,lineCount:e.getLineCount(),provider:i,foldedImports:this._currentModelHasFoldedImports}}}restoreViewState(e){const t=this.editor.getModel();if(!(!t||!this._isEnabled||t.isTooLargeForTokenization()||!this.hiddenRangeModel)&&e&&(this._currentModelHasFoldedImports=!!e.foldedImports,e.collapsedRegions&&e.collapsedRegions.length>0&&this.foldingModel)){this._restoringViewState=!0;try{this.foldingModel.applyMemento(e.collapsedRegions)}finally{this._restoringViewState=!1}}}onModelChanged(){this.localToDispose.clear();const e=this.editor.getModel();!this._isEnabled||!e||e.isTooLargeForTokenization()||(this._currentModelHasFoldedImports=!1,this.foldingModel=new FoldingModel(e,this.foldingDecorationProvider),this.localToDispose.add(this.foldingModel),this.hiddenRangeModel=new HiddenRangeModel(this.foldingModel),this.localToDispose.add(this.hiddenRangeModel),this.localToDispose.add(this.hiddenRangeModel.onDidChange(t=>this.onHiddenRangesChanges(t))),this.updateScheduler=new Delayer(this.updateDebounceInfo.get(e)),this.cursorChangedScheduler=new RunOnceScheduler(()=>this.revealCursor(),200),this.localToDispose.add(this.cursorChangedScheduler),this.localToDispose.add(this.languageFeaturesService.foldingRangeProvider.onDidChange(()=>this.onFoldingStrategyChanged())),this.localToDispose.add(this.editor.onDidChangeModelLanguageConfiguration(()=>this.onFoldingStrategyChanged())),this.localToDispose.add(this.editor.onDidChangeModelContent(t=>this.onDidChangeModelContent(t))),this.localToDispose.add(this.editor.onDidChangeCursorPosition(()=>this.onCursorPositionChanged())),this.localToDispose.add(this.editor.onMouseDown(t=>this.onEditorMouseDown(t))),this.localToDispose.add(this.editor.onMouseUp(t=>this.onEditorMouseUp(t))),this.localToDispose.add({dispose:()=>{var t,i;this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),(t=this.updateScheduler)===null||t===void 0||t.cancel(),this.updateScheduler=null,this.foldingModel=null,this.foldingModelPromise=null,this.hiddenRangeModel=null,this.cursorChangedScheduler=null,(i=this.rangeProvider)===null||i===void 0||i.dispose(),this.rangeProvider=null}}),this.triggerFoldingModelChanged())}onFoldingStrategyChanged(){var e;(e=this.rangeProvider)===null||e===void 0||e.dispose(),this.rangeProvider=null,this.triggerFoldingModelChanged()}getRangeProvider(e){if(this.rangeProvider)return this.rangeProvider;const t=new IndentRangeProvider(e,this.languageConfigurationService,this._foldingLimitReporter);if(this.rangeProvider=t,this._useFoldingProviders&&this.foldingModel){const i=FoldingController_1.getFoldingRangeProviders(this.languageFeaturesService,e);i.length>0&&(this.rangeProvider=new SyntaxRangeProvider(e,i,()=>this.triggerFoldingModelChanged(),this._foldingLimitReporter,t))}return this.rangeProvider}getFoldingModel(){return this.foldingModelPromise}onDidChangeModelContent(e){var t;(t=this.hiddenRangeModel)===null||t===void 0||t.notifyChangeModelContent(e),this.triggerFoldingModelChanged()}triggerFoldingModelChanged(){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=new StopWatch,i=this.getRangeProvider(e.textModel),n=this.foldingRegionPromise=createCancelablePromise(r=>i.compute(r));return n.then(r=>{if(r&&n===this.foldingRegionPromise){let s;if(this._foldingImportsByDefault&&!this._currentModelHasFoldedImports){const c=r.setCollapsedAllOfType(FoldingRangeKind.Imports.value,!0);c&&(s=StableEditorScrollState.capture(this.editor),this._currentModelHasFoldedImports=c)}const a=this.editor.getSelections(),l=a?a.map(c=>c.startLineNumber):[];e.update(r,l),s==null||s.restore(this.editor);const d=this.updateDebounceInfo.update(e.textModel,t.elapsed());this.updateScheduler&&(this.updateScheduler.defaultDelay=d)}return e})}).then(void 0,e=>(onUnexpectedError(e),null)))}onHiddenRangesChanges(e){if(this.hiddenRangeModel&&e.length&&!this._restoringViewState){const t=this.editor.getSelections();t&&this.hiddenRangeModel.adjustSelections(t)&&this.editor.setSelections(t)}this.editor.setHiddenAreas(e,this)}onCursorPositionChanged(){this.hiddenRangeModel&&this.hiddenRangeModel.hasRanges()&&this.cursorChangedScheduler.schedule()}revealCursor(){const e=this.getFoldingModel();e&&e.then(t=>{if(t){const i=this.editor.getSelections();if(i&&i.length>0){const n=[];for(const r of i){const s=r.selectionStartLineNumber;this.hiddenRangeModel&&this.hiddenRangeModel.isHidden(s)&&n.push(...t.getAllRegionsAtLine(s,a=>a.isCollapsed&&s>a.startLineNumber))}n.length&&(t.toggleCollapseState(n),this.reveal(i[0].getPosition()))}}}).then(void 0,onUnexpectedError)}onEditorMouseDown(e){if(this.mouseDownInfo=null,!this.hiddenRangeModel||!e.target||!e.target.range||!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,r=e.target.element.offsetLeft;if(n.offsetX-r<4)return;i=!0;break}case 7:{if(this._unfoldOnClickAfterEndOfLine&&this.hiddenRangeModel.hasRanges()&&!e.target.detail.isAfterLines)break;return}case 6:{if(this.hiddenRangeModel.hasRanges()){const n=this.editor.getModel();if(n&&t.startColumn===n.getLineMaxColumn(t.startLineNumber))break}return}default:return}this.mouseDownInfo={lineNumber:t.startLineNumber,iconClicked:i}}onEditorMouseUp(e){const t=this.foldingModel;if(!t||!this.mouseDownInfo||!e.target)return;const i=this.mouseDownInfo.lineNumber,n=this.mouseDownInfo.iconClicked,r=e.target.range;if(!r||r.startLineNumber!==i)return;if(n){if(e.target.type!==4)return}else{const a=this.editor.getModel();if(!a||r.startColumn!==a.getLineMaxColumn(i))return}const s=t.getRegionAtLine(i);if(s&&s.startLineNumber===i){const a=s.isCollapsed;if(n||a){const l=e.event.altKey;let d=[];if(l){const c=g=>!g.containedBy(s)&&!s.containedBy(g),u=t.getRegionsInside(null,c);for(const g of u)g.isCollapsed&&d.push(g);d.length===0&&(d=u)}else{const c=e.event.middleButton||e.event.shiftKey;if(c)for(const u of t.getRegionsInside(s))u.isCollapsed===a&&d.push(u);(a||!c||d.length===0)&&d.push(s)}t.toggleCollapseState(d),this.reveal({lineNumber:i,column:1})}}}reveal(e){this.editor.revealPositionInCenterIfOutsideViewport(e,0)}};FoldingController.ID="editor.contrib.folding";FoldingController=FoldingController_1=__decorate$P([__param$P(1,IContextKeyService),__param$P(2,ILanguageConfigurationService),__param$P(3,INotificationService),__param$P(4,ILanguageFeatureDebounceService),__param$P(5,ILanguageFeaturesService)],FoldingController);class RangesLimitReporter{constructor(e){this.editor=e,this._onDidChange=new Emitter$1,this._computed=0,this._limited=!1}get limit(){return this.editor.getOptions().get(47)}update(e,t){(e!==this._computed||t!==this._limited)&&(this._computed=e,this._limited=t,this._onDidChange.fire())}}class FoldingAction extends EditorAction{runEditorCommand(e,t,i){const n=e.get(ILanguageConfigurationService),r=FoldingController.get(t);if(!r)return;const s=r.getFoldingModel();if(s)return this.reportTelemetry(e,t),s.then(a=>{if(a){this.invoke(r,a,t,i,n);const l=t.getSelection();l&&r.reveal(l.getStartPosition())}})}getSelectedLines(e){const t=e.getSelections();return t?t.map(i=>i.startLineNumber):[]}getLineNumbers(e,t){return e&&e.selectionLines?e.selectionLines.map(i=>i+1):this.getSelectedLines(t)}run(e,t){}}function foldingArgumentsConstraint(o){if(!isUndefined(o)){if(!isObject(o))return!1;const e=o;if(!isUndefined(e.levels)&&!isNumber$1(e.levels)||!isUndefined(e.direction)&&!isString$1(e.direction)||!isUndefined(e.selectionLines)&&(!Array.isArray(e.selectionLines)||!e.selectionLines.every(isNumber$1)))return!1}return!0}class UnfoldAction extends FoldingAction{constructor(){super({id:"editor.unfold",label:localize("unfoldAction.label","Unfold"),alias:"Unfold",precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:3166,mac:{primary:2654},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:
- * 'levels': Number of levels to unfold. If not set, defaults to 1.
- * 'direction': If 'up', unfold given number of levels up otherwise unfolds down.
- * 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the unfold action to. If not set, the active selection(s) will be used.
- `,constraint:foldingArgumentsConstraint,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){const r=n&&n.levels||1,s=this.getLineNumbers(n,i);n&&n.direction==="up"?setCollapseStateLevelsUp(t,!1,r,s):setCollapseStateLevelsDown(t,!1,r,s)}}class UnFoldRecursivelyAction extends FoldingAction{constructor(){super({id:"editor.unfoldRecursively",label:localize("unFoldRecursivelyAction.label","Unfold Recursively"),alias:"Unfold Recursively",precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2142),weight:100}})}invoke(e,t,i,n){setCollapseStateLevelsDown(t,!1,Number.MAX_VALUE,this.getSelectedLines(i))}}class FoldAction extends FoldingAction{constructor(){super({id:"editor.fold",label:localize("foldAction.label","Fold"),alias:"Fold",precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:3164,mac:{primary:2652},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:
- * 'levels': Number of levels to fold.
- * 'direction': If 'up', folds given number of levels up otherwise folds down.
- * 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the fold action to. If not set, the active selection(s) will be used.
- If no levels or direction is set, folds the region at the locations or if already collapsed, the first uncollapsed parent instead.
- `,constraint:foldingArgumentsConstraint,schema:{type:"object",properties:{levels:{type:"number"},direction:{type:"string",enum:["up","down"]},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(e,t,i,n){const r=this.getLineNumbers(n,i),s=n&&n.levels,a=n&&n.direction;typeof s!="number"&&typeof a!="string"?setCollapseStateUp(t,!0,r):a==="up"?setCollapseStateLevelsUp(t,!0,s||1,r):setCollapseStateLevelsDown(t,!0,s||1,r)}}class ToggleFoldAction extends FoldingAction{constructor(){super({id:"editor.toggleFold",label:localize("toggleFoldAction.label","Toggle Fold"),alias:"Toggle Fold",precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2090),weight:100}})}invoke(e,t,i){const n=this.getSelectedLines(i);toggleCollapseState(t,1,n)}}class FoldRecursivelyAction extends FoldingAction{constructor(){super({id:"editor.foldRecursively",label:localize("foldRecursivelyAction.label","Fold Recursively"),alias:"Fold Recursively",precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2140),weight:100}})}invoke(e,t,i){const n=this.getSelectedLines(i);setCollapseStateLevelsDown(t,!0,Number.MAX_VALUE,n)}}class FoldAllBlockCommentsAction extends FoldingAction{constructor(){super({id:"editor.foldAllBlockComments",label:localize("foldAllBlockComments.label","Fold All Block Comments"),alias:"Fold All Block Comments",precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2138),weight:100}})}invoke(e,t,i,n,r){if(t.regions.hasTypes())setCollapseStateForType(t,FoldingRangeKind.Comment.value,!0);else{const s=i.getModel();if(!s)return;const a=r.getLanguageConfiguration(s.getLanguageId()).comments;if(a&&a.blockCommentStartToken){const l=new RegExp("^\\s*"+escapeRegExpCharacters(a.blockCommentStartToken));setCollapseStateForMatchingLines(t,l,!0)}}}}class FoldAllRegionsAction extends FoldingAction{constructor(){super({id:"editor.foldAllMarkerRegions",label:localize("foldAllMarkerRegions.label","Fold All Regions"),alias:"Fold All Regions",precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2077),weight:100}})}invoke(e,t,i,n,r){if(t.regions.hasTypes())setCollapseStateForType(t,FoldingRangeKind.Region.value,!0);else{const s=i.getModel();if(!s)return;const a=r.getLanguageConfiguration(s.getLanguageId()).foldingRules;if(a&&a.markers&&a.markers.start){const l=new RegExp(a.markers.start);setCollapseStateForMatchingLines(t,l,!0)}}}}class UnfoldAllRegionsAction extends FoldingAction{constructor(){super({id:"editor.unfoldAllMarkerRegions",label:localize("unfoldAllMarkerRegions.label","Unfold All Regions"),alias:"Unfold All Regions",precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2078),weight:100}})}invoke(e,t,i,n,r){if(t.regions.hasTypes())setCollapseStateForType(t,FoldingRangeKind.Region.value,!1);else{const s=i.getModel();if(!s)return;const a=r.getLanguageConfiguration(s.getLanguageId()).foldingRules;if(a&&a.markers&&a.markers.start){const l=new RegExp(a.markers.start);setCollapseStateForMatchingLines(t,l,!1)}}}}class FoldAllExceptAction extends FoldingAction{constructor(){super({id:"editor.foldAllExcept",label:localize("foldAllExcept.label","Fold All Except Selected"),alias:"Fold All Except Selected",precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2136),weight:100}})}invoke(e,t,i){const n=this.getSelectedLines(i);setCollapseStateForRest(t,!0,n)}}class UnfoldAllExceptAction extends FoldingAction{constructor(){super({id:"editor.unfoldAllExcept",label:localize("unfoldAllExcept.label","Unfold All Except Selected"),alias:"Unfold All Except Selected",precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2134),weight:100}})}invoke(e,t,i){const n=this.getSelectedLines(i);setCollapseStateForRest(t,!1,n)}}class FoldAllAction extends FoldingAction{constructor(){super({id:"editor.foldAll",label:localize("foldAllAction.label","Fold All"),alias:"Fold All",precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2069),weight:100}})}invoke(e,t,i){setCollapseStateLevelsDown(t,!0)}}class UnfoldAllAction extends FoldingAction{constructor(){super({id:"editor.unfoldAll",label:localize("unfoldAllAction.label","Unfold All"),alias:"Unfold All",precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2088),weight:100}})}invoke(e,t,i){setCollapseStateLevelsDown(t,!1)}}class FoldLevelAction extends FoldingAction{getFoldingLevel(){return parseInt(this.id.substr(FoldLevelAction.ID_PREFIX.length))}invoke(e,t,i){setCollapseStateAtLevel(t,this.getFoldingLevel(),!0,this.getSelectedLines(i))}}FoldLevelAction.ID_PREFIX="editor.foldLevel";FoldLevelAction.ID=o=>FoldLevelAction.ID_PREFIX+o;class GotoParentFoldAction extends FoldingAction{constructor(){super({id:"editor.gotoParentFold",label:localize("gotoParentFold.label","Go to Parent Fold"),alias:"Go to Parent Fold",precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,weight:100}})}invoke(e,t,i){const n=this.getSelectedLines(i);if(n.length>0){const r=getParentFoldLine(n[0],t);r!==null&&i.setSelection({startLineNumber:r,startColumn:1,endLineNumber:r,endColumn:1})}}}class GotoPreviousFoldAction extends FoldingAction{constructor(){super({id:"editor.gotoPreviousFold",label:localize("gotoPreviousFold.label","Go to Previous Folding Range"),alias:"Go to Previous Folding Range",precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,weight:100}})}invoke(e,t,i){const n=this.getSelectedLines(i);if(n.length>0){const r=getPreviousFoldLine(n[0],t);r!==null&&i.setSelection({startLineNumber:r,startColumn:1,endLineNumber:r,endColumn:1})}}}class GotoNextFoldAction extends FoldingAction{constructor(){super({id:"editor.gotoNextFold",label:localize("gotoNextFold.label","Go to Next Folding Range"),alias:"Go to Next Folding Range",precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,weight:100}})}invoke(e,t,i){const n=this.getSelectedLines(i);if(n.length>0){const r=getNextFoldLine(n[0],t);r!==null&&i.setSelection({startLineNumber:r,startColumn:1,endLineNumber:r,endColumn:1})}}}class FoldRangeFromSelectionAction extends FoldingAction{constructor(){super({id:"editor.createFoldingRangeFromSelection",label:localize("createManualFoldRange.label","Create Folding Range from Selection"),alias:"Create Folding Range from Selection",precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2135),weight:100}})}invoke(e,t,i){var n;const r=[],s=i.getSelections();if(s){for(const a of s){let l=a.endLineNumber;a.endColumn===1&&--l,l>a.startLineNumber&&(r.push({startLineNumber:a.startLineNumber,endLineNumber:l,type:void 0,isCollapsed:!0,source:1}),i.setSelection({startLineNumber:a.startLineNumber,startColumn:1,endLineNumber:a.startLineNumber,endColumn:1}))}if(r.length>0){r.sort((l,d)=>l.startLineNumber-d.startLineNumber);const a=FoldingRegions.sanitizeAndMerge(t.regions,r,(n=i.getModel())===null||n===void 0?void 0:n.getLineCount());t.updatePost(FoldingRegions.fromFoldRanges(a))}}}}class RemoveFoldRangeFromSelectionAction extends FoldingAction{constructor(){super({id:"editor.removeManualFoldingRanges",label:localize("removeManualFoldingRanges.label","Remove Manual Folding Ranges"),alias:"Remove Manual Folding Ranges",precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2137),weight:100}})}invoke(e,t,i){const n=i.getSelections();if(n){const r=[];for(const s of n){const{startLineNumber:a,endLineNumber:l}=s;r.push(l>=a?{startLineNumber:a,endLineNumber:l}:{endLineNumber:l,startLineNumber:a})}t.removeManualRanges(r),e.triggerFoldingModelChanged()}}}registerEditorContribution(FoldingController.ID,FoldingController,0);registerEditorAction(UnfoldAction);registerEditorAction(UnFoldRecursivelyAction);registerEditorAction(FoldAction);registerEditorAction(FoldRecursivelyAction);registerEditorAction(FoldAllAction);registerEditorAction(UnfoldAllAction);registerEditorAction(FoldAllBlockCommentsAction);registerEditorAction(FoldAllRegionsAction);registerEditorAction(UnfoldAllRegionsAction);registerEditorAction(FoldAllExceptAction);registerEditorAction(UnfoldAllExceptAction);registerEditorAction(ToggleFoldAction);registerEditorAction(GotoParentFoldAction);registerEditorAction(GotoPreviousFoldAction);registerEditorAction(GotoNextFoldAction);registerEditorAction(FoldRangeFromSelectionAction);registerEditorAction(RemoveFoldRangeFromSelectionAction);for(let o=1;o<=7;o++)registerInstantiatedEditorAction(new FoldLevelAction({id:FoldLevelAction.ID(o),label:localize("foldLevelAction.label","Fold Level {0}",o),alias:`Fold Level ${o}`,precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2048|21+o),weight:100}}));CommandsRegistry.registerCommand("_executeFoldingRangeProvider",function(o,...e){return __awaiter$A(this,void 0,void 0,function*(){const[t]=e;if(!(t instanceof URI))throw illegalArgument();const i=o.get(ILanguageFeaturesService),n=o.get(IModelService).getModel(t);if(!n)throw illegalArgument();const r=o.get(IConfigurationService);if(!r.getValue("editor.folding",{resource:t}))return[];const s=o.get(ILanguageConfigurationService),a=r.getValue("editor.foldingStrategy",{resource:t}),l={get limit(){return r.getValue("editor.foldingMaximumRegions",{resource:t})},update:(f,p)=>{}},d=new IndentRangeProvider(n,s,l);let c=d;if(a!=="indentation"){const f=FoldingController.getFoldingRangeProviders(i,n);f.length&&(c=new SyntaxRangeProvider(n,f,()=>{},l,d))}const u=yield c.compute(CancellationToken.None),g=[];try{if(u)for(let f=0;f<u.length;f++){const p=u.getType(f);g.push({start:u.getStartLineNumber(f),end:u.getEndLineNumber(f),kind:p?FoldingRangeKind.fromValue(p):void 0})}return g}finally{c.dispose()}})});class EditorFontZoomIn extends EditorAction{constructor(){super({id:"editor.action.fontZoomIn",label:localize("EditorFontZoomIn.label","Editor Font Zoom In"),alias:"Editor Font Zoom In",precondition:void 0})}run(e,t){EditorZoom.setZoomLevel(EditorZoom.getZoomLevel()+1)}}class EditorFontZoomOut extends EditorAction{constructor(){super({id:"editor.action.fontZoomOut",label:localize("EditorFontZoomOut.label","Editor Font Zoom Out"),alias:"Editor Font Zoom Out",precondition:void 0})}run(e,t){EditorZoom.setZoomLevel(EditorZoom.getZoomLevel()-1)}}class EditorFontZoomReset extends EditorAction{constructor(){super({id:"editor.action.fontZoomReset",label:localize("EditorFontZoomReset.label","Editor Font Zoom Reset"),alias:"Editor Font Zoom Reset",precondition:void 0})}run(e,t){EditorZoom.setZoomLevel(0)}}registerEditorAction(EditorFontZoomIn);registerEditorAction(EditorFontZoomOut);registerEditorAction(EditorFontZoomReset);var __decorate$O=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$O=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$z=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};let FormatOnType=class{constructor(e,t,i){this._editor=e,this._languageFeaturesService=t,this._workerService=i,this._disposables=new DisposableStore,this._sessionDisposables=new DisposableStore,this._disposables.add(t.onTypeFormattingEditProvider.onDidChange(this._update,this)),this._disposables.add(e.onDidChangeModel(()=>this._update())),this._disposables.add(e.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(e.onDidChangeConfiguration(n=>{n.hasChanged(56)&&this._update()})),this._update()}dispose(){this._disposables.dispose(),this._sessionDisposables.dispose()}_update(){if(this._sessionDisposables.clear(),!this._editor.getOption(56)||!this._editor.hasModel())return;const e=this._editor.getModel(),[t]=this._languageFeaturesService.onTypeFormattingEditProvider.ordered(e);if(!t||!t.autoFormatTriggerCharacters)return;const i=new CharacterSet;for(const n of t.autoFormatTriggerCharacters)i.add(n.charCodeAt(0));this._sessionDisposables.add(this._editor.onDidType(n=>{const r=n.charCodeAt(n.length-1);i.has(r)&&this._trigger(String.fromCharCode(r))}))}_trigger(e){if(!this._editor.hasModel()||this._editor.getSelections().length>1||!this._editor.getSelection().isEmpty())return;const t=this._editor.getModel(),i=this._editor.getPosition(),n=new CancellationTokenSource$1,r=this._editor.onDidChangeModelContent(s=>{if(s.isFlush){n.cancel(),r.dispose();return}for(let a=0,l=s.changes.length;a<l;a++)if(s.changes[a].range.endLineNumber<=i.lineNumber){n.cancel(),r.dispose();return}});getOnTypeFormattingEdits(this._workerService,this._languageFeaturesService,t,i,e,t.getFormattingOptions(),n.token).then(s=>{n.token.isCancellationRequested||isNonEmptyArray(s)&&(FormattingEdit.execute(this._editor,s,!0),alertFormattingEdits(s))}).finally(()=>{r.dispose()})}};FormatOnType.ID="editor.contrib.autoFormat";FormatOnType=__decorate$O([__param$O(1,ILanguageFeaturesService),__param$O(2,IEditorWorkerService)],FormatOnType);let FormatOnPaste=class{constructor(e,t,i){this.editor=e,this._languageFeaturesService=t,this._instantiationService=i,this._callOnDispose=new DisposableStore,this._callOnModel=new DisposableStore,this._callOnDispose.add(e.onDidChangeConfiguration(()=>this._update())),this._callOnDispose.add(e.onDidChangeModel(()=>this._update())),this._callOnDispose.add(e.onDidChangeModelLanguage(()=>this._update())),this._callOnDispose.add(t.documentRangeFormattingEditProvider.onDidChange(this._update,this))}dispose(){this._callOnDispose.dispose(),this._callOnModel.dispose()}_update(){this._callOnModel.clear(),this.editor.getOption(55)&&this.editor.hasModel()&&this._languageFeaturesService.documentRangeFormattingEditProvider.has(this.editor.getModel())&&this._callOnModel.add(this.editor.onDidPaste(({range:e})=>this._trigger(e)))}_trigger(e){this.editor.hasModel()&&(this.editor.getSelections().length>1||this._instantiationService.invokeFunction(formatDocumentRangesWithSelectedProvider,this.editor,e,2,Progress.None,CancellationToken.None).catch(onUnexpectedError))}};FormatOnPaste.ID="editor.contrib.formatOnPaste";FormatOnPaste=__decorate$O([__param$O(1,ILanguageFeaturesService),__param$O(2,IInstantiationService)],FormatOnPaste);class FormatDocumentAction extends EditorAction{constructor(){super({id:"editor.action.formatDocument",label:localize("formatDocument.label","Format Document"),alias:"Format Document",precondition:ContextKeyExpr.and(EditorContextKeys.notInCompositeEditor,EditorContextKeys.writable,EditorContextKeys.hasDocumentFormattingProvider),kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:1572,linux:{primary:3111},weight:100},contextMenuOpts:{group:"1_modification",order:1.3}})}run(e,t){return __awaiter$z(this,void 0,void 0,function*(){if(t.hasModel()){const i=e.get(IInstantiationService);yield e.get(IEditorProgressService).showWhile(i.invokeFunction(formatDocumentWithSelectedProvider,t,1,Progress.None,CancellationToken.None),250)}})}}class FormatSelectionAction extends EditorAction{constructor(){super({id:"editor.action.formatSelection",label:localize("formatSelection.label","Format Selection"),alias:"Format Selection",precondition:ContextKeyExpr.and(EditorContextKeys.writable,EditorContextKeys.hasDocumentSelectionFormattingProvider),kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2084),weight:100},contextMenuOpts:{when:EditorContextKeys.hasNonEmptySelection,group:"1_modification",order:1.31}})}run(e,t){return __awaiter$z(this,void 0,void 0,function*(){if(!t.hasModel())return;const i=e.get(IInstantiationService),n=t.getModel(),r=t.getSelections().map(a=>a.isEmpty()?new Range$2(a.startLineNumber,1,a.startLineNumber,n.getLineMaxColumn(a.startLineNumber)):a);yield e.get(IEditorProgressService).showWhile(i.invokeFunction(formatDocumentRangesWithSelectedProvider,t,r,1,Progress.None,CancellationToken.None),250)})}}registerEditorContribution(FormatOnType.ID,FormatOnType,2);registerEditorContribution(FormatOnPaste.ID,FormatOnPaste,2);registerEditorAction(FormatDocumentAction);registerEditorAction(FormatSelectionAction);CommandsRegistry.registerCommand("editor.action.format",o=>__awaiter$z(void 0,void 0,void 0,function*(){const e=o.get(ICodeEditorService).getFocusedCodeEditor();if(!e||!e.hasModel())return;const t=o.get(ICommandService);e.getSelection().isEmpty()?yield t.executeCommand("editor.action.formatDocument"):yield t.executeCommand("editor.action.formatSelection")}));var __decorate$N=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$N=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$y=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};class TreeElement{remove(){var e;(e=this.parent)===null||e===void 0||e.children.delete(this.id)}static findId(e,t){let i;typeof e=="string"?i=`${t.id}/${e}`:(i=`${t.id}/${e.name}`,t.children.get(i)!==void 0&&(i=`${t.id}/${e.name}_${e.range.startLineNumber}_${e.range.startColumn}`));let n=i;for(let r=0;t.children.get(n)!==void 0;r++)n=`${i}_${r}`;return n}static empty(e){return e.children.size===0}}class OutlineElement extends TreeElement{constructor(e,t,i){super(),this.id=e,this.parent=t,this.symbol=i,this.children=new Map}}class OutlineGroup extends TreeElement{constructor(e,t,i,n){super(),this.id=e,this.parent=t,this.label=i,this.order=n,this.children=new Map}}class OutlineModel extends TreeElement{static create(e,t,i){const n=new CancellationTokenSource$1(i),r=new OutlineModel(t.uri),s=e.ordered(t),a=s.map((d,c)=>{var u;const g=TreeElement.findId(`provider_${c}`,r),f=new OutlineGroup(g,r,(u=d.displayName)!==null&&u!==void 0?u:"Unknown Outline Provider",c);return Promise.resolve(d.provideDocumentSymbols(t,n.token)).then(p=>{for(const m of p||[])OutlineModel._makeOutlineElement(m,f);return f},p=>(onUnexpectedExternalError(p),f)).then(p=>{TreeElement.empty(p)?p.remove():r._groups.set(g,p)})}),l=e.onDidChange(()=>{const d=e.ordered(t);equals$2(d,s)||n.cancel()});return Promise.all(a).then(()=>n.token.isCancellationRequested&&!i.isCancellationRequested?OutlineModel.create(e,t,i):r._compact()).finally(()=>{n.dispose(),l.dispose(),n.dispose()})}static _makeOutlineElement(e,t){const i=TreeElement.findId(e,t),n=new OutlineElement(i,t,e);if(e.children)for(const r of e.children)OutlineModel._makeOutlineElement(r,n);t.children.set(n.id,n)}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}_compact(){let e=0;for(const[t,i]of this._groups)i.children.size===0?this._groups.delete(t):e+=1;if(e!==1)this.children=this._groups;else{const t=Iterable.first(this._groups.values());for(const[,i]of t.children)i.parent=this,this.children.set(i.id,i)}return this}getTopLevelSymbols(){const e=[];for(const t of this.children.values())t instanceof OutlineElement?e.push(t.symbol):e.push(...Iterable.map(t.children.values(),i=>i.symbol));return e.sort((t,i)=>Range$2.compareRangesUsingStarts(t.range,i.range))}asListOfDocumentSymbols(){const e=this.getTopLevelSymbols(),t=[];return OutlineModel._flattenDocumentSymbols(t,e,""),t.sort((i,n)=>Position$1.compare(Range$2.getStartPosition(i.range),Range$2.getStartPosition(n.range))||Position$1.compare(Range$2.getEndPosition(n.range),Range$2.getEndPosition(i.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&&OutlineModel._flattenDocumentSymbols(e,n.children,n.name)}}const IOutlineModelService=createDecorator("IOutlineModelService");let OutlineModelService=class{constructor(e,t,i){this._languageFeaturesService=e,this._disposables=new DisposableStore,this._cache=new LRUCache(10,.7),this._debounceInformation=t.for(e.documentSymbolProvider,"DocumentSymbols",{min:350}),this._disposables.add(i.onModelRemoved(n=>{this._cache.delete(n.id)}))}dispose(){this._disposables.dispose()}getOrCreate(e,t){return __awaiter$y(this,void 0,void 0,function*(){const i=this._languageFeaturesService.documentSymbolProvider,n=i.ordered(e);let r=this._cache.get(e.id);if(!r||r.versionId!==e.getVersionId()||!equals$2(r.provider,n)){const a=new CancellationTokenSource$1;r={versionId:e.getVersionId(),provider:n,promiseCnt:0,source:a,promise:OutlineModel.create(i,e,a.token),model:void 0},this._cache.set(e.id,r);const l=Date.now();r.promise.then(d=>{r.model=d,this._debounceInformation.update(e,Date.now()-l)}).catch(d=>{this._cache.delete(e.id)})}if(r.model)return r.model;r.promiseCnt+=1;const s=t.onCancellationRequested(()=>{--r.promiseCnt===0&&(r.source.cancel(),this._cache.delete(e.id))});try{return yield r.promise}finally{s.dispose()}})}};OutlineModelService=__decorate$N([__param$N(0,ILanguageFeaturesService),__param$N(1,ILanguageFeatureDebounceService),__param$N(2,IModelService)],OutlineModelService);registerSingleton(IOutlineModelService,OutlineModelService,1);var __awaiter$x=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};CommandsRegistry.registerCommand("_executeDocumentSymbolProvider",function(o,...e){return __awaiter$x(this,void 0,void 0,function*(){const[t]=e;assertType(URI.isUri(t));const i=o.get(IOutlineModelService),r=yield o.get(ITextModelService).createModelReference(t);try{return(yield i.getOrCreate(r.object.textEditorModel,CancellationToken.None)).getTopLevelSymbols()}finally{r.dispose()}})});class InlineCompletionContextKeys extends Disposable{constructor(e,t){super(),this.contextKeyService=e,this.model=t,this.inlineCompletionVisible=InlineCompletionContextKeys.inlineSuggestionVisible.bindTo(this.contextKeyService),this.inlineCompletionSuggestsIndentation=InlineCompletionContextKeys.inlineSuggestionHasIndentation.bindTo(this.contextKeyService),this.inlineCompletionSuggestsIndentationLessThanTabSize=InlineCompletionContextKeys.inlineSuggestionHasIndentationLessThanTabSize.bindTo(this.contextKeyService),this.suppressSuggestions=InlineCompletionContextKeys.suppressSuggestions.bindTo(this.contextKeyService),this._register(autorun(i=>{const n=this.model.read(i),r=n==null?void 0:n.state.read(i),s=!!(r!=null&&r.inlineCompletion)&&(r==null?void 0:r.ghostText)!==void 0&&!(r!=null&&r.ghostText.isEmpty());this.inlineCompletionVisible.set(s),r!=null&&r.ghostText&&(r!=null&&r.inlineCompletion)&&this.suppressSuggestions.set(r.inlineCompletion.inlineCompletion.source.inlineCompletions.suppressSuggestions)})),this._register(autorun(i=>{const n=this.model.read(i);let r=!1,s=!0;const a=n==null?void 0:n.ghostText.read(i);if(n!=null&&n.selectedSuggestItem&&a&&a.parts.length>0){const{column:l,lines:d}=a.parts[0],c=d[0],u=n.textModel.getLineIndentColumn(a.lineNumber);if(l<=u){let f=firstNonWhitespaceIndex(c);f===-1&&(f=c.length-1),r=f>0;const p=n.textModel.getOptions().tabSize;s=CursorColumns.visibleColumnFromColumn(c,f+1,p)<p}}this.inlineCompletionSuggestsIndentation.set(r),this.inlineCompletionSuggestsIndentationLessThanTabSize.set(s)}))}}InlineCompletionContextKeys.inlineSuggestionVisible=new RawContextKey("inlineSuggestionVisible",!1,localize("inlineSuggestionVisible","Whether an inline suggestion is visible"));InlineCompletionContextKeys.inlineSuggestionHasIndentation=new RawContextKey("inlineSuggestionHasIndentation",!1,localize("inlineSuggestionHasIndentation","Whether the inline suggestion starts with whitespace"));InlineCompletionContextKeys.inlineSuggestionHasIndentationLessThanTabSize=new RawContextKey("inlineSuggestionHasIndentationLessThanTabSize",!0,localize("inlineSuggestionHasIndentationLessThanTabSize","Whether the inline suggestion starts with whitespace that is less than what would be inserted by tab"));InlineCompletionContextKeys.suppressSuggestions=new RawContextKey("inlineSuggestionSuppressSuggestions",void 0,localize("suppressSuggestions","Whether suggestions should be suppressed for the current suggestion"));function applyEdits(o,e){const t=new PositionOffsetTransformer(o),i=e.map(n=>{const r=Range$2.lift(n.range);return{startOffset:t.getOffset(r.getStartPosition()),endOffset:t.getOffset(r.getEndPosition()),text:n.text}});i.sort((n,r)=>r.startOffset-n.startOffset);for(const n of i)o=o.substring(0,n.startOffset)+n.text+o.substring(n.endOffset);return o}class PositionOffsetTransformer{constructor(e){this.lineStartOffsetByLineIdx=[],this.lineStartOffsetByLineIdx.push(0);for(let t=0;t<e.length;t++)e.charAt(t)===`
- `&&this.lineStartOffsetByLineIdx.push(t+1)}getOffset(e){return this.lineStartOffsetByLineIdx[e.lineNumber-1]+e.column-1}}const array=[];function getReadonlyEmptyArray(){return array}class ColumnRange{constructor(e,t){if(this.startColumn=e,this.endColumnExclusive=t,e>t)throw new BugIndicatingError(`startColumn ${e} cannot be after endColumnExclusive ${t}`)}toRange(e){return new Range$2(e,this.startColumn,e,this.endColumnExclusive)}equals(e){return this.startColumn===e.startColumn&&this.endColumnExclusive===e.endColumnExclusive}}function applyObservableDecorations(o,e){const t=new DisposableStore,i=o.createDecorationsCollection();return t.add(autorunOpts({debugName:()=>`Apply decorations from ${e.debugName}`},n=>{const r=e.read(n);i.set(r)})),t.add({dispose:()=>{i.clear()}}),t}function addPositions(o,e){return new Position$1(o.lineNumber+e.lineNumber-1,e.lineNumber===1?o.column+e.column-1:e.column)}function lengthOfText(o){let e=1,t=1;for(const i of o)i===`
- `?(e++,t=1):t++;return new Position$1(e,t)}class GhostText{constructor(e,t){this.lineNumber=e,this.parts=t}equals(e){return this.lineNumber===e.lineNumber&&this.parts.length===e.parts.length&&this.parts.every((t,i)=>t.equals(e.parts[i]))}renderForScreenReader(e){if(this.parts.length===0)return"";const t=this.parts[this.parts.length-1],i=e.substr(0,t.column-1);return applyEdits(i,this.parts.map(r=>({range:{startLineNumber:1,endLineNumber:1,startColumn:r.column,endColumn:r.column},text:r.lines.join(`
- `)}))).substring(this.parts[0].column-1)}isEmpty(){return this.parts.every(e=>e.lines.length===0)}get lineCount(){return 1+this.parts.reduce((e,t)=>e+t.lines.length-1,0)}}class GhostTextPart{constructor(e,t,i){this.column=e,this.lines=t,this.preview=i}equals(e){return this.column===e.column&&this.lines.length===e.lines.length&&this.lines.every((t,i)=>t===e.lines[i])}}class GhostTextReplacement{constructor(e,t,i,n=0){this.lineNumber=e,this.columnRange=t,this.newLines=i,this.additionalReservedLineCount=n,this.parts=[new GhostTextPart(this.columnRange.endColumnExclusive,this.newLines,!1)]}renderForScreenReader(e){return this.newLines.join(`
- `)}get lineCount(){return this.newLines.length}isEmpty(){return this.parts.every(e=>e.lines.length===0)}equals(e){return this.lineNumber===e.lineNumber&&this.columnRange.equals(e.columnRange)&&this.newLines.length===e.newLines.length&&this.newLines.every((t,i)=>t===e.newLines[i])&&this.additionalReservedLineCount===e.additionalReservedLineCount}}function ghostTextOrReplacementEquals(o,e){return o===e?!0:!o||!e?!1:o instanceof GhostText&&e instanceof GhostText||o instanceof GhostTextReplacement&&e instanceof GhostTextReplacement?o.equals(e):!1}var __decorate$M=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$M=function(o,e){return function(t,i){e(t,i,o)}};const GHOST_TEXT_DESCRIPTION="ghost-text";let GhostTextWidget=class extends Disposable{constructor(e,t,i){super(),this.editor=e,this.model=t,this.languageService=i,this.isDisposed=observableValue(this,!1),this.currentTextModel=observableFromEvent(this.editor.onDidChangeModel,()=>this.editor.getModel()),this.uiState=derived(this,n=>{if(this.isDisposed.read(n))return;const r=this.currentTextModel.read(n);if(r!==this.model.targetTextModel.read(n))return;const s=this.model.ghostText.read(n);if(!s)return;const a=s instanceof GhostTextReplacement?s.columnRange:void 0,l=[],d=[];function c(m,b){if(d.length>0){const _=d[d.length-1];b&&_.decorations.push(new LineDecoration(_.content.length+1,_.content.length+1+m[0].length,b,0)),_.content+=m[0],m=m.slice(1)}for(const _ of m)d.push({content:_,decorations:b?[new LineDecoration(1,_.length+1,b,0)]:[]})}const u=r.getLineContent(s.lineNumber);let g,f=0;for(const m of s.parts){let b=m.lines;g===void 0?(l.push({column:m.column,text:b[0],preview:m.preview}),b=b.slice(1)):c([u.substring(f,m.column-1)],void 0),b.length>0&&(c(b,GHOST_TEXT_DESCRIPTION),g===void 0&&m.column<=u.length&&(g=m.column)),f=m.column-1}g!==void 0&&c([u.substring(f)],void 0);const p=g!==void 0?new ColumnRange(g,u.length+1):void 0;return{replacedRange:a,inlineTexts:l,additionalLines:d,hiddenRange:p,lineNumber:s.lineNumber,additionalReservedLineCount:this.model.minReservedLineCount.read(n),targetTextModel:r}}),this.decorations=derived(this,n=>{const r=this.uiState.read(n);if(!r)return[];const s=[];r.replacedRange&&s.push({range:r.replacedRange.toRange(r.lineNumber),options:{inlineClassName:"inline-completion-text-to-replace",description:"GhostTextReplacement"}}),r.hiddenRange&&s.push({range:r.hiddenRange.toRange(r.lineNumber),options:{inlineClassName:"ghost-text-hidden",description:"ghost-text-hidden"}});for(const a of r.inlineTexts)s.push({range:Range$2.fromPositions(new Position$1(r.lineNumber,a.column)),options:{description:GHOST_TEXT_DESCRIPTION,after:{content:a.text,inlineClassName:a.preview?"ghost-text-decoration-preview":"ghost-text-decoration",cursorStops:InjectedTextCursorStops.Left},showIfCollapsed:!0}});return s}),this.additionalLinesWidget=this._register(new AdditionalLinesWidget(this.editor,this.languageService.languageIdCodec,derived(n=>{const r=this.uiState.read(n);return r?{lineNumber:r.lineNumber,additionalLines:r.additionalLines,minReservedLineCount:r.additionalReservedLineCount,targetTextModel:r.targetTextModel}:void 0}))),this._register(toDisposable(()=>{this.isDisposed.set(!0,void 0)})),this._register(applyObservableDecorations(this.editor,this.decorations))}ownsViewZone(e){return this.additionalLinesWidget.viewZoneId===e}};GhostTextWidget=__decorate$M([__param$M(2,ILanguageService)],GhostTextWidget);class AdditionalLinesWidget extends Disposable{get viewZoneId(){return this._viewZoneId}constructor(e,t,i){super(),this.editor=e,this.languageIdCodec=t,this.lines=i,this._viewZoneId=void 0,this.editorOptionsChanged=observableSignalFromEvent("editorOptionChanged",Event.filter(this.editor.onDidChangeConfiguration,n=>n.hasChanged(33)||n.hasChanged(116)||n.hasChanged(98)||n.hasChanged(93)||n.hasChanged(51)||n.hasChanged(50)||n.hasChanged(66))),this._register(autorun(n=>{const r=this.lines.read(n);this.editorOptionsChanged.read(n),r?this.updateLines(r.lineNumber,r.additionalLines,r.minReservedLineCount):this.clear()}))}dispose(){super.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:r}=n.getOptions();this.editor.changeViewZones(s=>{this._viewZoneId&&(s.removeZone(this._viewZoneId),this._viewZoneId=void 0);const a=Math.max(t.length,i);if(a>0){const l=document.createElement("div");renderLines(l,r,t,this.editor.getOptions(),this.languageIdCodec),this._viewZoneId=s.addZone({afterLineNumber:e,heightInLines:a,domNode:l,afterColumnAffinity:1})}})}}function renderLines(o,e,t,i,n){const r=i.get(33),s=i.get(116),a="none",l=i.get(93),d=i.get(51),c=i.get(50),u=i.get(66),g=new StringBuilder(1e4);g.appendString('<div class="suggest-preview-text">');for(let m=0,b=t.length;m<b;m++){const _=t[m],C=_.content;g.appendString('<div class="view-line'),g.appendString('" style="top:'),g.appendString(String(m*u)),g.appendString('px;width:1000000px;">');const S=isBasicASCII(C),y=containsRTL(C),E=LineTokens.createEmpty(C,n);renderViewLine(new RenderLineInput(c.isMonospace&&!r,c.canUseHalfwidthRightwardsArrow,C,!1,S,y,0,E,_.decorations,e,0,c.spaceWidth,c.middotWidth,c.wsmiddotWidth,s,a,l,d!==EditorFontLigatures.OFF,null),g),g.appendString("</div>")}g.appendString("</div>"),applyFontInfo(o,c);const f=g.build(),p=ttPolicy?ttPolicy.createHTML(f):f;o.innerHTML=p}const ttPolicy=createTrustedTypesPolicy("editorGhostText",{createHTML:o=>o});function fixBracketsInLine(o,e){const t=new DenseKeyProvider,i=new LanguageAgnosticBracketTokens(t,d=>e.getLanguageConfiguration(d)),n=new TextBufferTokenizer(new StaticTokenizerSource([o]),i),r=parseDocument(n,[],void 0,!0);let s="";const a=o.getLineContent();function l(d,c){if(d.kind===2)if(l(d.openingBracket,c),c=lengthAdd(c,d.openingBracket.length),d.child&&(l(d.child,c),c=lengthAdd(c,d.child.length)),d.closingBracket)l(d.closingBracket,c),c=lengthAdd(c,d.closingBracket.length);else{const g=i.getSingleLanguageBracketTokens(d.openingBracket.languageId).findClosingTokenText(d.openingBracket.bracketIds);s+=g}else if(d.kind!==3){if(d.kind===0||d.kind===1)s+=a.substring(c,lengthAdd(c,d.length));else if(d.kind===4)for(const u of d.children)l(u,c),c=lengthAdd(c,u.length)}}return l(r,lengthZero),s}class StaticTokenizerSource{constructor(e){this.lines=e,this.tokenization={getLineTokens:t=>this.lines[t-1]}}getLineCount(){return this.lines.length}getLineLength(e){return this.lines[e-1].getLineContent().length}}class Scanner{constructor(){this.value="",this.pos=0}static isDigitCharacter(e){return e>=48&&e<=57}static isVariableCharacter(e){return e===95||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};const e=this.pos;let t=0,i=this.value.charCodeAt(e),n;if(n=Scanner._table[i],typeof n=="number")return this.pos+=1,{type:n,pos:e,len:1};if(Scanner.isDigitCharacter(i)){n=8;do t+=1,i=this.value.charCodeAt(e+t);while(Scanner.isDigitCharacter(i));return this.pos+=t,{type:n,pos:e,len:t}}if(Scanner.isVariableCharacter(i)){n=9;do i=this.value.charCodeAt(e+ ++t);while(Scanner.isVariableCharacter(i)||Scanner.isDigitCharacter(i));return this.pos+=t,{type:n,pos:e,len:t}}n=10;do t+=1,i=this.value.charCodeAt(e+t);while(!isNaN(i)&&typeof Scanner._table[i]>"u"&&!Scanner.isDigitCharacter(i)&&!Scanner.isVariableCharacter(i));return this.pos+=t,{type:n,pos:e,len:t}}}Scanner._table={36:0,58:1,44:2,123:3,125:4,92:5,47:6,124:7,43:11,45:12,63:13};class Marker{constructor(){this._children=[]}appendChild(e){return e instanceof Text&&this._children[this._children.length-1]instanceof Text?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),r=i.children.slice(0);r.splice(n,1,...t),i._children=r,function s(a,l){for(const d of a)d.parent=l,s(d.children,d)}(t,i)}get children(){return this._children}get rightMostDescendant(){return this._children.length>0?this._children[this._children.length-1].rightMostDescendant:this}get snippet(){let e=this;for(;;){if(!e)return;if(e instanceof TextmateSnippet)return e;e=e.parent}}toString(){return this.children.reduce((e,t)=>e+t.toString(),"")}len(){return 0}}class Text extends Marker{constructor(e){super(),this.value=e}toString(){return this.value}len(){return this.value.length}clone(){return new Text(this.value)}}class TransformableMarker extends Marker{}class Placeholder extends TransformableMarker{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}constructor(e){super(),this.index=e}get isFinalTabstop(){return this.index===0}get choice(){return this._children.length===1&&this._children[0]instanceof Choice?this._children[0]:void 0}clone(){const e=new Placeholder(this.index);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map(t=>t.clone()),e}}class Choice extends Marker{constructor(){super(...arguments),this.options=[]}appendChild(e){return e instanceof Text&&(e.parent=this,this.options.push(e)),this}toString(){return this.options[0].value}len(){return this.options[0].len()}clone(){const e=new Choice;return this.options.forEach(e.appendChild,e),e}}class Transform extends Marker{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(r=>r instanceof FormatString&&!!r.elseValue)&&(n=this._replace([])),n}_replace(e){let t="";for(const i of this._children)if(i instanceof FormatString){let n=e[i.index]||"";n=i.resolve(n),t+=n}else t+=i.toString();return t}toString(){return""}clone(){const e=new Transform;return e.regexp=new RegExp(this.regexp.source,(this.regexp.ignoreCase?"i":"")+(this.regexp.global?"g":"")),e._children=this.children.map(t=>t.clone()),e}}class FormatString extends Marker{constructor(e,t,i,n){super(),this.index=e,this.shorthandName=t,this.ifValue=i,this.elseValue=n}resolve(e){return this.shorthandName==="upcase"?e?e.toLocaleUpperCase():"":this.shorthandName==="downcase"?e?e.toLocaleLowerCase():"":this.shorthandName==="capitalize"?e?e[0].toLocaleUpperCase()+e.substr(1):"":this.shorthandName==="pascalcase"?e?this._toPascalCase(e):"":this.shorthandName==="camelcase"?e?this._toCamelCase(e):"":e&&typeof this.ifValue=="string"?this.ifValue:!e&&typeof this.elseValue=="string"?this.elseValue:e||""}_toPascalCase(e){const t=e.match(/[a-z0-9]+/gi);return t?t.map(i=>i.charAt(0).toUpperCase()+i.substr(1)).join(""):e}_toCamelCase(e){const t=e.match(/[a-z0-9]+/gi);return t?t.map((i,n)=>n===0?i.charAt(0).toLowerCase()+i.substr(1):i.charAt(0).toUpperCase()+i.substr(1)).join(""):e}clone(){return new FormatString(this.index,this.shorthandName,this.ifValue,this.elseValue)}}class Variable extends TransformableMarker{constructor(e){super(),this.name=e}resolve(e){let t=e.resolve(this);return this.transform&&(t=this.transform.resolve(t||"")),t!==void 0?(this._children=[new Text(t)],!0):!1}clone(){const e=new Variable(this.name);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map(t=>t.clone()),e}}function walk(o,e){const t=[...o];for(;t.length>0;){const i=t.shift();if(!e(i))break;t.unshift(...i.children)}}class TextmateSnippet extends Marker{get placeholderInfo(){if(!this._placeholders){const e=[];let t;this.walk(function(i){return i instanceof Placeholder&&(e.push(i),t=!t||t.index<i.index?i:t),!0}),this._placeholders={all:e,last:t}}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 walk([e],i=>(t+=i.len(),!0)),t}enclosingPlaceholders(e){const t=[];let{parent:i}=e;for(;i;)i instanceof Placeholder&&t.push(i),i=i.parent;return t}resolveVariables(e){return this.walk(t=>(t instanceof Variable&&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(){const e=new TextmateSnippet;return this._children=this.children.map(t=>t.clone()),e}walk(e){walk(this.children,e)}}class SnippetParser{constructor(){this._scanner=new Scanner,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){const n=new TextmateSnippet;return this.parseFragment(e,n),this.ensureFinalTabstop(n,i??!1,t??!1),n}parseFragment(e,t){const i=t.children.length;for(this._scanner.text(e),this._token=this._scanner.next();this._parse(t););const n=new Map,r=[];t.walk(l=>(l instanceof Placeholder&&(l.isFinalTabstop?n.set(0,void 0):!n.has(l.index)&&l.children.length>0?n.set(l.index,l.children):r.push(l)),!0));const s=(l,d)=>{const c=n.get(l.index);if(!c)return;const u=new Placeholder(l.index);u.transform=l.transform;for(const g of c){const f=g.clone();u.appendChild(f),f instanceof Placeholder&&n.has(f.index)&&!d.has(f.index)&&(d.add(f.index),s(f,d),d.delete(f.index))}t.replace(l,[u])},a=new Set;for(const l of r)s(l,a);return t.children.slice(i)}ensureFinalTabstop(e,t,i){(t||i&&e.placeholders.length>0)&&(e.placeholders.find(r=>r.index===0)||e.appendChild(new Placeholder(0)))}_accept(e,t){if(e===void 0||this._token.type===e){const i=t?this._scanner.tokenText(this._token):!0;return this._token=this._scanner.next(),i}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(this._token.type===14)return!1;if(this._token.type===5){const n=this._scanner.next();if(n.type!==0&&n.type!==4&&n.type!==5)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 Text(t)),!0):!1}_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 Placeholder(Number(t)):new Variable(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 r=new Placeholder(Number(t));if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(r),!0;if(!this._parse(r))return e.appendChild(new Text("${"+t+":")),r.children.forEach(e.appendChild,e),!0}else if(r.index>0&&this._accept(7)){const s=new Choice;for(;;){if(this._parseChoiceElement(s)){if(this._accept(2))continue;if(this._accept(7)&&(r.appendChild(s),this._accept(4)))return e.appendChild(r),!0}return this._backTo(i),!1}}else return this._accept(6)?this._parseTransform(r)?(e.appendChild(r),!0):(this._backTo(i),!1):this._accept(4)?(e.appendChild(r),!0):this._backTo(i)}_parseChoiceElement(e){const t=this._token,i=[];for(;!(this._token.type===2||this._token.type===7);){let n;if((n=this._accept(5,!0))?n=this._accept(2,!0)||this._accept(7,!0)||this._accept(5,!0)||n:n=this._accept(void 0,!0),!n)return this._backTo(t),!1;i.push(n)}return i.length===0?(this._backTo(t),!1):(e.appendChild(new Text(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 r=new Variable(t);if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(r),!0;if(!this._parse(r))return e.appendChild(new Text("${"+t+":")),r.children.forEach(e.appendChild,e),!0}else return this._accept(6)?this._parseTransform(r)?(e.appendChild(r),!0):(this._backTo(i),!1):this._accept(4)?(e.appendChild(r),!0):this._backTo(i)}_parseTransform(e){const t=new Transform;let i="",n="";for(;!this._accept(6);){let r;if(r=this._accept(5,!0)){r=this._accept(6,!0)||r,i+=r;continue}if(this._token.type!==14){i+=this._accept(void 0,!0);continue}return!1}for(;!this._accept(6);){let r;if(r=this._accept(5,!0)){r=this._accept(5,!0)||this._accept(6,!0)||r,t.appendChild(new Text(r));continue}if(!(this._parseFormatString(t)||this._parseAnything(t)))return!1}for(;!this._accept(4);){if(this._token.type!==14){n+=this._accept(void 0,!0);continue}return!1}try{t.regexp=new RegExp(i,n)}catch{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);const n=this._accept(8,!0);if(n)if(i){if(this._accept(4))return e.appendChild(new FormatString(Number(n))),!0;if(!this._accept(1))return this._backTo(t),!1}else return e.appendChild(new FormatString(Number(n))),!0;else return this._backTo(t),!1;if(this._accept(6)){const r=this._accept(9,!0);return!r||!this._accept(4)?(this._backTo(t),!1):(e.appendChild(new FormatString(Number(n),r)),!0)}else if(this._accept(11)){const r=this._until(4);if(r)return e.appendChild(new FormatString(Number(n),void 0,r,void 0)),!0}else if(this._accept(12)){const r=this._until(4);if(r)return e.appendChild(new FormatString(Number(n),void 0,void 0,r)),!0}else if(this._accept(13)){const r=this._until(1);if(r){const s=this._until(4);if(s)return e.appendChild(new FormatString(Number(n),void 0,r,s)),!0}}else{const r=this._until(4);if(r)return e.appendChild(new FormatString(Number(n),void 0,void 0,r)),!0}return this._backTo(t),!1}_parseAnything(e){return this._token.type!==14?(e.appendChild(new Text(this._scanner.tokenText(this._token))),this._accept(void 0),!0):!1}}var __awaiter$w=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};function provideInlineCompletions(o,e,t,i,n=CancellationToken.None,r){return __awaiter$w(this,void 0,void 0,function*(){const s=getDefaultRange(e,t),a=o.all(t),l=new SetMap;for(const _ of a)_.groupId&&l.add(_.groupId,_);function d(_){if(!_.yieldsToGroupIds)return[];const C=[];for(const S of _.yieldsToGroupIds||[]){const y=l.get(S);for(const E of y)C.push(E)}return C}const c=new Map,u=new Set;function g(_,C){if(C=[...C,_],u.has(_))return C;u.add(_);try{const S=d(_);for(const y of S){const E=g(y,C);if(E)return E}}finally{u.delete(_)}}function f(_){const C=c.get(_);if(C)return C;const S=g(_,[]);S&&onUnexpectedExternalError(new Error(`Inline completions: cyclic yield-to dependency detected. Path: ${S.map(E=>E.toString?E.toString():""+E).join(" -> ")}`));const y=new DeferredPromise;return c.set(_,y.p),__awaiter$w(this,void 0,void 0,function*(){if(!S){const E=d(_);for(const x of E){const L=yield f(x);if(L&&L.items.length>0)return}}try{return yield _.provideInlineCompletions(t,e,i,n)}catch(E){onUnexpectedExternalError(E);return}}).then(E=>y.complete(E),E=>y.error(E)),y.p}const p=yield Promise.all(a.map(_=>__awaiter$w(this,void 0,void 0,function*(){return{provider:_,completions:yield f(_)}}))),m=new Map,b=[];for(const _ of p){const C=_.completions;if(!C)continue;const S=new InlineCompletionList(C,_.provider);b.push(S);for(const y of C.items){const E=InlineCompletionItem.from(y,S,s,t,r);m.set(E.hash(),E)}}return new InlineCompletionProviderResult(Array.from(m.values()),new Set(m.keys()),b)})}class InlineCompletionProviderResult{constructor(e,t,i){this.completions=e,this.hashs=t,this.providerResults=i}has(e){return this.hashs.has(e.hash())}dispose(){for(const e of this.providerResults)e.removeRef()}}class InlineCompletionList{constructor(e,t){this.inlineCompletions=e,this.provider=t,this.refCount=1}addRef(){this.refCount++}removeRef(){this.refCount--,this.refCount===0&&this.provider.freeInlineCompletions(this.inlineCompletions)}}class InlineCompletionItem{static from(e,t,i,n,r){let s,a,l=e.range?Range$2.lift(e.range):i;if(typeof e.insertText=="string"){if(s=e.insertText,r&&e.completeBracketPairs){s=closeBrackets(s,l.getStartPosition(),n,r);const d=s.length-e.insertText.length;d!==0&&(l=new Range$2(l.startLineNumber,l.startColumn,l.endLineNumber,l.endColumn+d))}a=void 0}else if("snippet"in e.insertText){const d=e.insertText.snippet.length;if(r&&e.completeBracketPairs){e.insertText.snippet=closeBrackets(e.insertText.snippet,l.getStartPosition(),n,r);const u=e.insertText.snippet.length-d;u!==0&&(l=new Range$2(l.startLineNumber,l.startColumn,l.endLineNumber,l.endColumn+u))}const c=new SnippetParser().parse(e.insertText.snippet);c.children.length===1&&c.children[0]instanceof Text?(s=c.children[0].value,a=void 0):(s=c.toString(),a={snippet:e.insertText.snippet,range:l})}else assertNever(e.insertText);return new InlineCompletionItem(s,e.command,l,s,a,e.additionalTextEdits||getReadonlyEmptyArray(),e,t)}constructor(e,t,i,n,r,s,a,l){this.filterText=e,this.command=t,this.range=i,this.insertText=n,this.snippetInfo=r,this.additionalTextEdits=s,this.sourceInlineCompletion=a,this.source=l,e=e.replace(/\r\n|\r/g,`
- `),n=e.replace(/\r\n|\r/g,`
- `)}withRange(e){return new InlineCompletionItem(this.filterText,this.command,e,this.insertText,this.snippetInfo,this.additionalTextEdits,this.sourceInlineCompletion,this.source)}hash(){return JSON.stringify({insertText:this.insertText,range:this.range.toString()})}}function getDefaultRange(o,e){const t=e.getWordAtPosition(o),i=e.getLineMaxColumn(o.lineNumber);return t?new Range$2(o.lineNumber,t.startColumn,o.lineNumber,i):Range$2.fromPositions(o,o.with(void 0,i))}function closeBrackets(o,e,t,i){const r=t.getLineContent(e.lineNumber).substring(0,e.column-1)+o,s=t.tokenization.tokenizeLineWithEdit(e,r.length-(e.column-1),o),a=s==null?void 0:s.sliceAndInflate(e.column-1,r.length,0);return a?fixBracketsInLine(a,i):o}class SingleTextEdit{constructor(e,t){this.range=e,this.text=t}removeCommonPrefix(e,t){const i=t?this.range.intersectRanges(t):this.range;if(!i)return this;const n=e.getValueInRange(i,1),r=commonPrefixLength(n,this.text),s=addPositions(this.range.getStartPosition(),lengthOfText(n.substring(0,r))),a=this.text.substring(r),l=Range$2.fromPositions(s,this.range.getEndPosition());return new SingleTextEdit(l,a)}augments(e){return this.text.startsWith(e.text)&&rangeExtends(this.range,e.range)}computeGhostText(e,t,i,n=0){let r=this.removeCommonPrefix(e);if(r.range.endLineNumber!==r.range.startLineNumber)return;const s=e.getLineContent(r.range.startLineNumber),a=getLeadingWhitespace(s).length;if(r.range.startColumn-1<=a){const p=getLeadingWhitespace(r.text).length,m=s.substring(r.range.startColumn-1,a),[b,_]=[r.range.getStartPosition(),r.range.getEndPosition()],C=b.column+m.length<=_.column?b.delta(0,m.length):_,S=Range$2.fromPositions(C,_),y=r.text.startsWith(m)?r.text.substring(m.length):r.text.substring(p);r=new SingleTextEdit(S,y)}const d=e.getValueInRange(r.range),c=cachingDiff(d,r.text);if(!c)return;const u=r.range.startLineNumber,g=new Array;if(t==="prefix"){const p=c.filter(m=>m.originalLength===0);if(p.length>1||p.length===1&&p[0].originalStart!==d.length)return}const f=r.text.length-n;for(const p of c){const m=r.range.startColumn+p.originalStart+p.originalLength;if(t==="subwordSmart"&&i&&i.lineNumber===r.range.startLineNumber&&m<i.column||p.originalLength>0)return;if(p.modifiedLength===0)continue;const b=p.modifiedStart+p.modifiedLength,_=Math.max(p.modifiedStart,Math.min(b,f)),C=r.text.substring(p.modifiedStart,_),S=r.text.substring(_,Math.max(p.modifiedStart,b));if(C.length>0){const y=splitLines(C);g.push(new GhostTextPart(m,y,!1))}if(S.length>0){const y=splitLines(S);g.push(new GhostTextPart(m,y,!0))}}return new GhostText(u,g)}}function rangeExtends(o,e){return e.getStartPosition().equals(o.getStartPosition())&&e.getEndPosition().isBeforeOrEqual(o.getEndPosition())}let lastRequest;function cachingDiff(o,e){if((lastRequest==null?void 0:lastRequest.originalValue)===o&&(lastRequest==null?void 0:lastRequest.newValue)===e)return lastRequest==null?void 0:lastRequest.changes;{let t=smartDiff(o,e,!0);if(t){const i=deletedCharacters(t);if(i>0){const n=smartDiff(o,e,!1);n&&deletedCharacters(n)<i&&(t=n)}}return lastRequest={originalValue:o,newValue:e,changes:t},t}}function deletedCharacters(o){let e=0;for(const t of o)e+=t.originalLength;return e}function smartDiff(o,e,t){if(o.length>5e3||e.length>5e3)return;function i(d){let c=0;for(let u=0,g=d.length;u<g;u++){const f=d.charCodeAt(u);f>c&&(c=f)}return c}const n=Math.max(i(o),i(e));function r(d){if(d<0)throw new Error("unexpected");return n+d+1}function s(d){let c=0,u=0;const g=new Int32Array(d.length);for(let f=0,p=d.length;f<p;f++)if(t&&d[f]==="("){const m=u*100+c;g[f]=r(2*m),c++}else if(t&&d[f]===")"){c=Math.max(c-1,0);const m=u*100+c;g[f]=r(2*m+1),c===0&&u++}else g[f]=d.charCodeAt(f);return g}const a=s(o),l=s(e);return new LcsDiff({getElements:()=>a},{getElements:()=>l}).ComputeDiff(!1).changes}var __decorate$L=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$L=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$v=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};let InlineCompletionsSource=class extends Disposable{constructor(e,t,i,n,r){super(),this.textModel=e,this.versionId=t,this._debounceValue=i,this.languageFeaturesService=n,this.languageConfigurationService=r,this._updateOperation=this._register(new MutableDisposable),this.inlineCompletions=disposableObservableValue("inlineCompletions",void 0),this.suggestWidgetInlineCompletions=disposableObservableValue("suggestWidgetInlineCompletions",void 0),this._register(this.textModel.onDidChangeContent(()=>{this._updateOperation.clear()}))}fetch(e,t,i){var n,r;const s=new UpdateRequest(e,t,this.textModel.getVersionId()),a=t.selectedSuggestionInfo?this.suggestWidgetInlineCompletions:this.inlineCompletions;if(!((n=this._updateOperation.value)===null||n===void 0)&&n.request.satisfies(s))return this._updateOperation.value.promise;if(!((r=a.get())===null||r===void 0)&&r.request.satisfies(s))return Promise.resolve(!0);const l=!!this._updateOperation.value;this._updateOperation.clear();const d=new CancellationTokenSource$1,c=__awaiter$v(this,void 0,void 0,function*(){if((l||t.triggerKind===InlineCompletionTriggerKind$1.Automatic)&&(yield wait(this._debounceValue.get(this.textModel))),d.token.isCancellationRequested||this.textModel.getVersionId()!==s.versionId)return!1;const f=new Date,p=yield provideInlineCompletions(this.languageFeaturesService.inlineCompletionsProvider,e,this.textModel,t,d.token,this.languageConfigurationService);if(d.token.isCancellationRequested||this.textModel.getVersionId()!==s.versionId)return!1;const m=new Date;this._debounceValue.update(this.textModel,m.getTime()-f.getTime());const b=new UpToDateInlineCompletions(p,s,this.textModel,this.versionId);if(i){const _=i.toInlineCompletion(void 0);i.canBeReused(this.textModel,e)&&!p.has(_)&&b.prepend(i.inlineCompletion,_.range,!0)}return this._updateOperation.clear(),transaction(_=>{a.set(b,_)}),!0}),u=new UpdateOperation(s,d,c);return this._updateOperation.value=u,c}clear(e){this._updateOperation.clear(),this.inlineCompletions.set(void 0,e),this.suggestWidgetInlineCompletions.set(void 0,e)}clearSuggestWidgetInlineCompletions(e){var t;!((t=this._updateOperation.value)===null||t===void 0)&&t.request.context.selectedSuggestionInfo&&this._updateOperation.clear(),this.suggestWidgetInlineCompletions.set(void 0,e)}cancelUpdate(){this._updateOperation.clear()}};InlineCompletionsSource=__decorate$L([__param$L(3,ILanguageFeaturesService),__param$L(4,ILanguageConfigurationService)],InlineCompletionsSource);function wait(o,e){return new Promise(t=>{setTimeout(()=>{t()},o)})}class UpdateRequest{constructor(e,t,i){this.position=e,this.context=t,this.versionId=i}satisfies(e){return this.position.equals(e.position)&&equals(this.context.selectedSuggestionInfo,e.context.selectedSuggestionInfo,(t,i)=>t.equals(i))&&(e.context.triggerKind===InlineCompletionTriggerKind$1.Automatic||this.context.triggerKind===InlineCompletionTriggerKind$1.Explicit)&&this.versionId===e.versionId}}function equals(o,e,t){return!o||!e?o===e:t(o,e)}class UpdateOperation{constructor(e,t,i){this.request=e,this.cancellationTokenSource=t,this.promise=i}dispose(){this.cancellationTokenSource.cancel()}}class UpToDateInlineCompletions{get inlineCompletions(){return this._inlineCompletions}constructor(e,t,i,n){this.inlineCompletionProviderResult=e,this.request=t,this.textModel=i,this.versionId=n,this._refCount=1,this._prependedInlineCompletionItems=[],this._rangeVersionIdValue=0,this._rangeVersionId=derived(this,s=>{this.versionId.read(s);let a=!1;for(const l of this._inlineCompletions)a=a||l._updateRange(this.textModel);return a&&this._rangeVersionIdValue++,this._rangeVersionIdValue});const r=i.deltaDecorations([],e.completions.map(s=>({range:s.range,options:{description:"inline-completion-tracking-range"}})));this._inlineCompletions=e.completions.map((s,a)=>new InlineCompletionWithUpdatedRange(s,r[a],this._rangeVersionId))}clone(){return this._refCount++,this}dispose(){if(this._refCount--,this._refCount===0){setTimeout(()=>{this.textModel.isDisposed()||this.textModel.deltaDecorations(this._inlineCompletions.map(e=>e.decorationId),[])},0),this.inlineCompletionProviderResult.dispose();for(const e of this._prependedInlineCompletionItems)e.source.removeRef()}}prepend(e,t,i){i&&e.source.addRef();const n=this.textModel.deltaDecorations([],[{range:t,options:{description:"inline-completion-tracking-range"}}])[0];this._inlineCompletions.unshift(new InlineCompletionWithUpdatedRange(e,n,this._rangeVersionId,t)),this._prependedInlineCompletionItems.push(e)}}class InlineCompletionWithUpdatedRange{get forwardStable(){var e;return(e=this.inlineCompletion.source.inlineCompletions.enableForwardStability)!==null&&e!==void 0?e:!1}constructor(e,t,i,n){this.inlineCompletion=e,this.decorationId=t,this.rangeVersion=i,this.semanticId=JSON.stringify([this.inlineCompletion.filterText,this.inlineCompletion.insertText,this.inlineCompletion.range.getStartPosition().toString()]),this._isValid=!0,this._updatedRange=n??e.range}toInlineCompletion(e){return this.inlineCompletion.withRange(this._getUpdatedRange(e))}toSingleTextEdit(e){return new SingleTextEdit(this._getUpdatedRange(e),this.inlineCompletion.insertText)}isVisible(e,t,i){const n=this._toFilterTextReplacement(i).removeCommonPrefix(e);if(!this._isValid||!this.inlineCompletion.range.getStartPosition().equals(this._getUpdatedRange(i).getStartPosition())||t.lineNumber!==n.range.startLineNumber)return!1;const r=e.getValueInRange(n.range,1).toLowerCase(),s=n.text.toLowerCase(),a=Math.max(0,t.column-n.range.startColumn);let l=s.substring(0,a),d=s.substring(a),c=r.substring(0,a),u=r.substring(a);const g=e.getLineIndentColumn(n.range.startLineNumber);return n.range.startColumn<=g&&(c=c.trimStart(),c.length===0&&(u=u.trimStart()),l=l.trimStart(),l.length===0&&(d=d.trimStart())),l.startsWith(c)&&!!matchesSubString(u,d)}canBeReused(e,t){return this._isValid&&this._getUpdatedRange(void 0).containsPosition(t)&&this.isVisible(e,t,void 0)&&!this._isSmallerThanOriginal(void 0)}_toFilterTextReplacement(e){return new SingleTextEdit(this._getUpdatedRange(e),this.inlineCompletion.filterText)}_isSmallerThanOriginal(e){return length(this._getUpdatedRange(e)).isBefore(length(this.inlineCompletion.range))}_getUpdatedRange(e){return this.rangeVersion.read(e),this._updatedRange}_updateRange(e){const t=e.getDecorationRange(this.decorationId);return t?this._updatedRange.equalsRange(t)?!1:(this._updatedRange=t,!0):(this._isValid=!1,!0)}}function length(o){return o.startLineNumber===o.endLineNumber?new Position$1(1,1+o.endColumn-o.startColumn):new Position$1(1+o.endLineNumber-o.startLineNumber,o.endColumn)}var __awaiter$u=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};const Context$1={Visible:historyNavigationVisible,HasFocusedSuggestion:new RawContextKey("suggestWidgetHasFocusedSuggestion",!1,localize("suggestWidgetHasSelection","Whether any suggestion is focused")),DetailsVisible:new RawContextKey("suggestWidgetDetailsVisible",!1,localize("suggestWidgetDetailsVisible","Whether suggestion details are visible")),MultipleSuggestions:new RawContextKey("suggestWidgetMultipleSuggestions",!1,localize("suggestWidgetMultipleSuggestions","Whether there are multiple suggestions to pick from")),MakesTextEdit:new RawContextKey("suggestionMakesTextEdit",!0,localize("suggestionMakesTextEdit","Whether inserting the current suggestion yields in a change or has everything already been typed")),AcceptSuggestionsOnEnter:new RawContextKey("acceptSuggestionOnEnter",!0,localize("acceptSuggestionOnEnter","Whether suggestions are inserted when pressing Enter")),HasInsertAndReplaceRange:new RawContextKey("suggestionHasInsertAndReplaceRange",!1,localize("suggestionHasInsertAndReplaceRange","Whether the current suggestion has insert and replace behaviour")),InsertMode:new RawContextKey("suggestionInsertMode",void 0,{type:"string",description:localize("suggestionInsertMode","Whether the default behaviour is to insert or replace")}),CanResolve:new RawContextKey("suggestionCanResolve",!1,localize("suggestionCanResolve","Whether the current suggestion supports to resolve further details"))},suggestWidgetStatusbarMenu=new MenuId("suggestWidgetStatusBar");class CompletionItem{constructor(e,t,i,n){var r;this.position=e,this.completion=t,this.container=i,this.provider=n,this.isInvalid=!1,this.score=FuzzyScore.Default,this.distance=0,this.textLabel=typeof t.label=="string"?t.label:(r=t.label)===null||r===void 0?void 0:r.label,this.labelLow=this.textLabel.toLowerCase(),this.isInvalid=!this.textLabel,this.sortTextLow=t.sortText&&t.sortText.toLowerCase(),this.filterTextLow=t.filterText&&t.filterText.toLowerCase(),this.extensionId=t.extensionId,Range$2.isIRange(t.range)?(this.editStart=new Position$1(t.range.startLineNumber,t.range.startColumn),this.editInsertEnd=new Position$1(t.range.endLineNumber,t.range.endColumn),this.editReplaceEnd=new Position$1(t.range.endLineNumber,t.range.endColumn),this.isInvalid=this.isInvalid||Range$2.spansMultipleLines(t.range)||t.range.startLineNumber!==e.lineNumber):(this.editStart=new Position$1(t.range.insert.startLineNumber,t.range.insert.startColumn),this.editInsertEnd=new Position$1(t.range.insert.endLineNumber,t.range.insert.endColumn),this.editReplaceEnd=new Position$1(t.range.replace.endLineNumber,t.range.replace.endColumn),this.isInvalid=this.isInvalid||Range$2.spansMultipleLines(t.range.insert)||Range$2.spansMultipleLines(t.range.replace)||t.range.insert.startLineNumber!==e.lineNumber||t.range.replace.startLineNumber!==e.lineNumber||t.range.insert.startColumn!==t.range.replace.startColumn),typeof n.resolveCompletionItem!="function"&&(this._resolveCache=Promise.resolve(),this._resolveDuration=0)}get isResolved(){return this._resolveDuration!==void 0}get resolveDuration(){return this._resolveDuration!==void 0?this._resolveDuration:-1}resolve(e){return __awaiter$u(this,void 0,void 0,function*(){if(!this._resolveCache){const t=e.onCancellationRequested(()=>{this._resolveCache=void 0,this._resolveDuration=void 0}),i=new StopWatch(!0);this._resolveCache=Promise.resolve(this.provider.resolveCompletionItem(this.completion,e)).then(n=>{Object.assign(this.completion,n),this._resolveDuration=i.elapsed()},n=>{isCancellationError(n)&&(this._resolveCache=void 0,this._resolveDuration=void 0)}).finally(()=>{t.dispose()})}return this._resolveCache})}}class CompletionOptions{constructor(e=2,t=new Set,i=new Set,n=new Map,r=!0){this.snippetSortOrder=e,this.kindFilter=t,this.providerFilter=i,this.providerItemsToReuse=n,this.showDeprecated=r}}CompletionOptions.default=new CompletionOptions;let _snippetSuggestSupport;function getSnippetSuggestSupport(){return _snippetSuggestSupport}class CompletionItemModel{constructor(e,t,i,n){this.items=e,this.needsClipboard=t,this.durations=i,this.disposable=n}}function provideSuggestionItems(o,e,t,i=CompletionOptions.default,n={triggerKind:0},r=CancellationToken.None){return __awaiter$u(this,void 0,void 0,function*(){const s=new StopWatch;t=t.clone();const a=e.getWordAtPosition(t),l=a?new Range$2(t.lineNumber,a.startColumn,t.lineNumber,a.endColumn):Range$2.fromPositions(t),d={replace:l,insert:l.setEndPosition(t.lineNumber,t.column)},c=[],u=new DisposableStore,g=[];let f=!1;const p=(b,_,C)=>{var S,y,E;let x=!1;if(!_)return x;for(const L of _.suggestions)if(!i.kindFilter.has(L.kind)){if(!i.showDeprecated&&(!((S=L==null?void 0:L.tags)===null||S===void 0)&&S.includes(1)))continue;L.range||(L.range=d),L.sortText||(L.sortText=typeof L.label=="string"?L.label:L.label.label),!f&&L.insertTextRules&&L.insertTextRules&4&&(f=SnippetParser.guessNeedsClipboard(L.insertText)),c.push(new CompletionItem(t,L,_,b)),x=!0}return isDisposable(_)&&u.add(_),g.push({providerName:(y=b._debugDisplayName)!==null&&y!==void 0?y:"unknown_provider",elapsedProvider:(E=_.duration)!==null&&E!==void 0?E:-1,elapsedOverall:C.elapsed()}),x},m=__awaiter$u(this,void 0,void 0,function*(){});for(const b of o.orderedGroups(e)){let _=!1;if(yield Promise.all(b.map(C=>__awaiter$u(this,void 0,void 0,function*(){if(i.providerItemsToReuse.has(C)){const S=i.providerItemsToReuse.get(C);S.forEach(y=>c.push(y)),_=_||S.length>0;return}if(!(i.providerFilter.size>0&&!i.providerFilter.has(C)))try{const S=new StopWatch,y=yield C.provideCompletionItems(e,t,n,r);_=p(C,y,S)||_}catch(S){onUnexpectedExternalError(S)}}))),_||r.isCancellationRequested)break}return yield m,r.isCancellationRequested?(u.dispose(),Promise.reject(new CancellationError)):new CompletionItemModel(c.sort(getSuggestionComparator(i.snippetSortOrder)),f,{entries:g,elapsed:s.elapsed()},u)})}function defaultComparator(o,e){if(o.sortTextLow&&e.sortTextLow){if(o.sortTextLow<e.sortTextLow)return-1;if(o.sortTextLow>e.sortTextLow)return 1}return o.textLabel<e.textLabel?-1:o.textLabel>e.textLabel?1:o.completion.kind-e.completion.kind}function snippetUpComparator(o,e){if(o.completion.kind!==e.completion.kind){if(o.completion.kind===27)return-1;if(e.completion.kind===27)return 1}return defaultComparator(o,e)}function snippetDownComparator(o,e){if(o.completion.kind!==e.completion.kind){if(o.completion.kind===27)return 1;if(e.completion.kind===27)return-1}return defaultComparator(o,e)}const _snippetComparators=new Map;_snippetComparators.set(0,snippetUpComparator);_snippetComparators.set(2,snippetDownComparator);_snippetComparators.set(1,defaultComparator);function getSuggestionComparator(o){return _snippetComparators.get(o)}CommandsRegistry.registerCommand("_executeCompletionItemProvider",(o,...e)=>__awaiter$u(void 0,void 0,void 0,function*(){const[t,i,n,r]=e;assertType(URI.isUri(t)),assertType(Position$1.isIPosition(i)),assertType(typeof n=="string"||!n),assertType(typeof r=="number"||!r);const{completionProvider:s}=o.get(ILanguageFeaturesService),a=yield o.get(ITextModelService).createModelReference(t);try{const l={incomplete:!1,suggestions:[]},d=[],c=a.object.textEditorModel.validatePosition(i),u=yield provideSuggestionItems(s,a.object.textEditorModel,c,void 0,{triggerCharacter:n??void 0,triggerKind:n?1:0});for(const g of u.items)d.length<(r??0)&&d.push(g.resolve(CancellationToken.None)),l.incomplete=l.incomplete||g.container.incomplete,l.suggestions.push(g.completion);try{return yield Promise.all(d),l}finally{setTimeout(()=>u.disposable.dispose(),100)}}finally{a.dispose()}}));function showSimpleSuggestions(o,e){var t;(t=o.getContribution("editor.contrib.suggestController"))===null||t===void 0||t.triggerSuggest(new Set().add(e),void 0,!0)}class QuickSuggestionsOptions{static isAllOff(e){return e.other==="off"&&e.comments==="off"&&e.strings==="off"}static isAllOn(e){return e.other==="on"&&e.comments==="on"&&e.strings==="on"}static valueFor(e,t){switch(t){case 1:return e.comments;case 2:return e.strings;default:return e.other}}}function normalizeDriveLetter(o,e=isWindows){return hasDriveLetter(o,e)?o.charAt(0).toUpperCase()+o.slice(1):o}var __decorate$K=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$K=function(o,e){return function(t,i){e(t,i,o)}};class CompositeSnippetVariableResolver{constructor(e){this._delegates=e}resolve(e){for(const t of this._delegates){const i=t.resolve(e);if(i!==void 0)return i}}}class SelectionBasedVariableResolver{constructor(e,t,i,n){this._model=e,this._selection=t,this._selectionIdx=i,this._overtypingCapturer=n}resolve(e){const{name:t}=e;if(t==="SELECTION"||t==="TM_SELECTED_TEXT"){let i=this._model.getValueInRange(this._selection)||void 0,n=this._selection.startLineNumber!==this._selection.endLineNumber;if(!i&&this._overtypingCapturer){const r=this._overtypingCapturer.getLastOvertypedInfo(this._selectionIdx);r&&(i=r.value,n=r.multiline)}if(i&&n&&e.snippet){const r=this._model.getLineContent(this._selection.startLineNumber),s=getLeadingWhitespace(r,0,this._selection.startColumn-1);let a=s;e.snippet.walk(d=>d===e?!1:(d instanceof Text&&(a=getLeadingWhitespace(splitLines(d.value).pop())),!0));const l=commonPrefixLength(a,s);i=i.replace(/(\r\n|\r|\n)(.*)/g,(d,c,u)=>`${c}${a.substr(l)}${u}`)}return i}else{if(t==="TM_CURRENT_LINE")return this._model.getLineContent(this._selection.positionLineNumber);if(t==="TM_CURRENT_WORD"){const i=this._model.getWordAtPosition({lineNumber:this._selection.positionLineNumber,column:this._selection.positionColumn});return i&&i.word||void 0}else{if(t==="TM_LINE_INDEX")return String(this._selection.positionLineNumber-1);if(t==="TM_LINE_NUMBER")return String(this._selection.positionLineNumber);if(t==="CURSOR_INDEX")return String(this._selectionIdx);if(t==="CURSOR_NUMBER")return String(this._selectionIdx+1)}}}}class ModelBasedVariableResolver{constructor(e,t){this._labelService=e,this._model=t}resolve(e){const{name:t}=e;if(t==="TM_FILENAME")return basename$1(this._model.uri.fsPath);if(t==="TM_FILENAME_BASE"){const i=basename$1(this._model.uri.fsPath),n=i.lastIndexOf(".");return n<=0?i:i.slice(0,n)}else{if(t==="TM_DIRECTORY")return dirname$1(this._model.uri.fsPath)==="."?"":this._labelService.getUriLabel(dirname(this._model.uri));if(t==="TM_FILEPATH")return this._labelService.getUriLabel(this._model.uri);if(t==="RELATIVE_FILEPATH")return this._labelService.getUriLabel(this._model.uri,{relative:!0,noPrefix:!0})}}}class ClipboardBasedVariableResolver{constructor(e,t,i,n){this._readClipboardText=e,this._selectionIdx=t,this._selectionCount=i,this._spread=n}resolve(e){if(e.name!=="CLIPBOARD")return;const t=this._readClipboardText();if(t){if(this._spread){const i=t.split(/\r\n|\n|\r/).filter(n=>!isFalsyOrWhitespace(n));if(i.length===this._selectionCount)return i[this._selectionIdx]}return t}}}let CommentBasedVariableResolver=class{constructor(e,t,i){this._model=e,this._selection=t,this._languageConfigurationService=i}resolve(e){const{name:t}=e,i=this._model.getLanguageIdAtPosition(this._selection.selectionStartLineNumber,this._selection.selectionStartColumn),n=this._languageConfigurationService.getLanguageConfiguration(i).comments;if(n){if(t==="LINE_COMMENT")return n.lineCommentToken||void 0;if(t==="BLOCK_COMMENT_START")return n.blockCommentStartToken||void 0;if(t==="BLOCK_COMMENT_END")return n.blockCommentEndToken||void 0}}};CommentBasedVariableResolver=__decorate$K([__param$K(2,ILanguageConfigurationService)],CommentBasedVariableResolver);class TimeBasedVariableResolver{constructor(){this._date=new Date}resolve(e){const{name:t}=e;if(t==="CURRENT_YEAR")return String(this._date.getFullYear());if(t==="CURRENT_YEAR_SHORT")return String(this._date.getFullYear()).slice(-2);if(t==="CURRENT_MONTH")return String(this._date.getMonth().valueOf()+1).padStart(2,"0");if(t==="CURRENT_DATE")return String(this._date.getDate().valueOf()).padStart(2,"0");if(t==="CURRENT_HOUR")return String(this._date.getHours().valueOf()).padStart(2,"0");if(t==="CURRENT_MINUTE")return String(this._date.getMinutes().valueOf()).padStart(2,"0");if(t==="CURRENT_SECOND")return String(this._date.getSeconds().valueOf()).padStart(2,"0");if(t==="CURRENT_DAY_NAME")return TimeBasedVariableResolver.dayNames[this._date.getDay()];if(t==="CURRENT_DAY_NAME_SHORT")return TimeBasedVariableResolver.dayNamesShort[this._date.getDay()];if(t==="CURRENT_MONTH_NAME")return TimeBasedVariableResolver.monthNames[this._date.getMonth()];if(t==="CURRENT_MONTH_NAME_SHORT")return TimeBasedVariableResolver.monthNamesShort[this._date.getMonth()];if(t==="CURRENT_SECONDS_UNIX")return String(Math.floor(this._date.getTime()/1e3));if(t==="CURRENT_TIMEZONE_OFFSET"){const i=this._date.getTimezoneOffset(),n=i>0?"-":"+",r=Math.trunc(Math.abs(i/60)),s=r<10?"0"+r:r,a=Math.abs(i)-r*60,l=a<10?"0"+a:a;return n+s+":"+l}}}TimeBasedVariableResolver.dayNames=[localize("Sunday","Sunday"),localize("Monday","Monday"),localize("Tuesday","Tuesday"),localize("Wednesday","Wednesday"),localize("Thursday","Thursday"),localize("Friday","Friday"),localize("Saturday","Saturday")];TimeBasedVariableResolver.dayNamesShort=[localize("SundayShort","Sun"),localize("MondayShort","Mon"),localize("TuesdayShort","Tue"),localize("WednesdayShort","Wed"),localize("ThursdayShort","Thu"),localize("FridayShort","Fri"),localize("SaturdayShort","Sat")];TimeBasedVariableResolver.monthNames=[localize("January","January"),localize("February","February"),localize("March","March"),localize("April","April"),localize("May","May"),localize("June","June"),localize("July","July"),localize("August","August"),localize("September","September"),localize("October","October"),localize("November","November"),localize("December","December")];TimeBasedVariableResolver.monthNamesShort=[localize("JanuaryShort","Jan"),localize("FebruaryShort","Feb"),localize("MarchShort","Mar"),localize("AprilShort","Apr"),localize("MayShort","May"),localize("JuneShort","Jun"),localize("JulyShort","Jul"),localize("AugustShort","Aug"),localize("SeptemberShort","Sep"),localize("OctoberShort","Oct"),localize("NovemberShort","Nov"),localize("DecemberShort","Dec")];class WorkspaceBasedVariableResolver{constructor(e){this._workspaceService=e}resolve(e){if(!this._workspaceService)return;const t=toWorkspaceIdentifier(this._workspaceService.getWorkspace());if(!isEmptyWorkspaceIdentifier(t)){if(e.name==="WORKSPACE_NAME")return this._resolveWorkspaceName(t);if(e.name==="WORKSPACE_FOLDER")return this._resoveWorkspacePath(t)}}_resolveWorkspaceName(e){if(isSingleFolderWorkspaceIdentifier(e))return basename$1(e.uri.path);let t=basename$1(e.configPath.path);return t.endsWith(WORKSPACE_EXTENSION)&&(t=t.substr(0,t.length-WORKSPACE_EXTENSION.length-1)),t}_resoveWorkspacePath(e){if(isSingleFolderWorkspaceIdentifier(e))return normalizeDriveLetter(e.uri.fsPath);const t=basename$1(e.configPath.path);let i=e.configPath.fsPath;return i.endsWith(t)&&(i=i.substr(0,i.length-t.length-1)),i?normalizeDriveLetter(i):"/"}}class RandomBasedVariableResolver{resolve(e){const{name:t}=e;if(t==="RANDOM")return Math.random().toString().slice(-6);if(t==="RANDOM_HEX")return Math.random().toString(16).slice(-6);if(t==="UUID")return generateUuid()}}var __decorate$J=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$J=function(o,e){return function(t,i){e(t,i,o)}},SnippetSession_1;class OneSnippet{constructor(e,t,i){this._editor=e,this._snippet=t,this._snippetLineLeadingWhitespace=i,this._offset=-1,this._nestingLevel=1,this._placeholderGroups=groupBy(t.placeholders,Placeholder.compareByIndex),this._placeholderGroupsIdx=-1}initialize(e){this._offset=e.newPosition}dispose(){this._placeholderDecorations&&this._editor.removeDecorations([...this._placeholderDecorations.values()]),this._placeholderGroups.length=0}_initDecorations(){if(this._offset===-1)throw new Error("Snippet not initialized!");if(this._placeholderDecorations)return;this._placeholderDecorations=new Map;const e=this._editor.getModel();this._editor.changeDecorations(t=>{for(const i of this._snippet.placeholders){const n=this._snippet.offset(i),r=this._snippet.fullLen(i),s=Range$2.fromPositions(e.getPositionAt(this._offset+n),e.getPositionAt(this._offset+n+r)),a=i.isFinalTabstop?OneSnippet._decor.inactiveFinal:OneSnippet._decor.inactive,l=t.addDecoration(s,a);this._placeholderDecorations.set(i,l)}})}move(e){if(!this._editor.hasModel())return[];if(this._initDecorations(),this._placeholderGroupsIdx>=0){const n=[];for(const r of this._placeholderGroups[this._placeholderGroupsIdx])if(r.transform){const s=this._placeholderDecorations.get(r),a=this._editor.getModel().getDecorationRange(s),l=this._editor.getModel().getValueInRange(a),d=r.transform.resolve(l).split(/\r\n|\r|\n/);for(let c=1;c<d.length;c++)d[c]=this._editor.getModel().normalizeIndentation(this._snippetLineLeadingWhitespace+d[c]);n.push(EditOperation.replace(a,d.join(this._editor.getModel().getEOL())))}n.length>0&&this._editor.executeEdits("snippet.placeholderTransform",n)}let t=!1;e===!0&&this._placeholderGroupsIdx<this._placeholderGroups.length-1?(this._placeholderGroupsIdx+=1,t=!0):e===!1&&this._placeholderGroupsIdx>0&&(this._placeholderGroupsIdx-=1,t=!0);const i=this._editor.getModel().changeDecorations(n=>{const r=new Set,s=[];for(const a of this._placeholderGroups[this._placeholderGroupsIdx]){const l=this._placeholderDecorations.get(a),d=this._editor.getModel().getDecorationRange(l);s.push(new Selection$1(d.startLineNumber,d.startColumn,d.endLineNumber,d.endColumn)),t=t&&this._hasPlaceholderBeenCollapsed(a),n.changeDecorationOptions(l,a.isFinalTabstop?OneSnippet._decor.activeFinal:OneSnippet._decor.active),r.add(a);for(const c of this._snippet.enclosingPlaceholders(a)){const u=this._placeholderDecorations.get(c);n.changeDecorationOptions(u,c.isFinalTabstop?OneSnippet._decor.activeFinal:OneSnippet._decor.active),r.add(c)}}for(const[a,l]of this._placeholderDecorations)r.has(a)||n.changeDecorationOptions(l,a.isFinalTabstop?OneSnippet._decor.inactiveFinal:OneSnippet._decor.inactive);return s});return t?this.move(e):i??[]}_hasPlaceholderBeenCollapsed(e){let t=e;for(;t;){if(t instanceof Placeholder){const i=this._placeholderDecorations.get(t);if(this._editor.getModel().getDecorationRange(i).isEmpty()&&t.toString().length>0)return!0}t=t.parent}return!1}get isAtFirstPlaceholder(){return this._placeholderGroupsIdx<=0||this._placeholderGroups.length===0}get isAtLastPlaceholder(){return this._placeholderGroupsIdx===this._placeholderGroups.length-1}get hasPlaceholder(){return this._snippet.placeholders.length>0}get isTrivialSnippet(){if(this._snippet.placeholders.length===0)return!0;if(this._snippet.placeholders.length===1){const[e]=this._snippet.placeholders;if(e.isFinalTabstop&&this._snippet.rightMostDescendant===e)return!0}return!1}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 r=this._placeholderDecorations.get(n),s=this._editor.getModel().getDecorationRange(r);if(!s){e.delete(n.index);break}i.push(s)}}return e}get activeChoice(){if(!this._placeholderDecorations)return;const e=this._placeholderGroups[this._placeholderGroupsIdx][0];if(!(e!=null&&e.choice))return;const t=this._placeholderDecorations.get(e);if(!t)return;const i=this._editor.getModel().getDecorationRange(t);if(i)return{range:i,choice:e.choice}}get hasChoice(){let e=!1;return this._snippet.walk(t=>(e=t instanceof Choice,!e)),e}merge(e){const t=this._editor.getModel();this._nestingLevel*=10,this._editor.changeDecorations(i=>{for(const n of this._placeholderGroups[this._placeholderGroupsIdx]){const r=e.shift();console.assert(r._offset!==-1),console.assert(!r._placeholderDecorations);const s=r._snippet.placeholderInfo.last.index;for(const l of r._snippet.placeholderInfo.all)l.isFinalTabstop?l.index=n.index+(s+1)/this._nestingLevel:l.index=n.index+l.index/this._nestingLevel;this._snippet.replace(n,r._snippet.children);const a=this._placeholderDecorations.get(n);i.removeDecoration(a),this._placeholderDecorations.delete(n);for(const l of r._snippet.placeholders){const d=r._snippet.offset(l),c=r._snippet.fullLen(l),u=Range$2.fromPositions(t.getPositionAt(r._offset+d),t.getPositionAt(r._offset+d+c)),g=i.addDecoration(u,OneSnippet._decor.inactive);this._placeholderDecorations.set(l,g)}}this._placeholderGroups=groupBy(this._snippet.placeholders,Placeholder.compareByIndex)})}}OneSnippet._decor={active:ModelDecorationOptions.register({description:"snippet-placeholder-1",stickiness:0,className:"snippet-placeholder"}),inactive:ModelDecorationOptions.register({description:"snippet-placeholder-2",stickiness:1,className:"snippet-placeholder"}),activeFinal:ModelDecorationOptions.register({description:"snippet-placeholder-3",stickiness:1,className:"finish-snippet-placeholder"}),inactiveFinal:ModelDecorationOptions.register({description:"snippet-placeholder-4",stickiness:1,className:"finish-snippet-placeholder"})};const _defaultOptions$1={overwriteBefore:0,overwriteAfter:0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0};let SnippetSession=SnippetSession_1=class{static adjustWhitespace(e,t,i,n,r){const s=e.getLineContent(t.lineNumber),a=getLeadingWhitespace(s,0,t.column-1);let l;return n.walk(d=>{if(!(d instanceof Text)||d.parent instanceof Choice||r&&!r.has(d))return!0;const c=d.value.split(/\r\n|\r|\n/);if(i){const g=n.offset(d);if(g===0)c[0]=e.normalizeIndentation(c[0]);else{l=l??n.toString();const f=l.charCodeAt(g-1);(f===10||f===13)&&(c[0]=e.normalizeIndentation(a+c[0]))}for(let f=1;f<c.length;f++)c[f]=e.normalizeIndentation(a+c[f])}const u=c.join(e.getEOL());return u!==d.value&&(d.parent.replace(d,[new Text(u)]),l=void 0),!0}),a}static adjustSelection(e,t,i,n){if(i!==0||n!==0){const{positionLineNumber:r,positionColumn:s}=t,a=s-i,l=s+n,d=e.validateRange({startLineNumber:r,startColumn:a,endLineNumber:r,endColumn:l});t=Selection$1.createWithDirection(d.startLineNumber,d.startColumn,d.endLineNumber,d.endColumn,t.getDirection())}return t}static createEditsAndSnippetsFromSelections(e,t,i,n,r,s,a,l,d){const c=[],u=[];if(!e.hasModel())return{edits:c,snippets:u};const g=e.getModel(),f=e.invokeWithinContext(y=>y.get(IWorkspaceContextService)),p=e.invokeWithinContext(y=>new ModelBasedVariableResolver(y.get(ILabelService),g)),m=()=>a,b=g.getValueInRange(SnippetSession_1.adjustSelection(g,e.getSelection(),i,0)),_=g.getValueInRange(SnippetSession_1.adjustSelection(g,e.getSelection(),0,n)),C=g.getLineFirstNonWhitespaceColumn(e.getSelection().positionLineNumber),S=e.getSelections().map((y,E)=>({selection:y,idx:E})).sort((y,E)=>Range$2.compareRangesUsingStarts(y.selection,E.selection));for(const{selection:y,idx:E}of S){let x=SnippetSession_1.adjustSelection(g,y,i,0),L=SnippetSession_1.adjustSelection(g,y,0,n);b!==g.getValueInRange(x)&&(x=y),_!==g.getValueInRange(L)&&(L=y);const I=y.setStartPosition(x.startLineNumber,x.startColumn).setEndPosition(L.endLineNumber,L.endColumn),D=new SnippetParser().parse(t,!0,r),N=I.getStartPosition(),F=SnippetSession_1.adjustWhitespace(g,N,s||E>0&&C!==g.getLineFirstNonWhitespaceColumn(y.positionLineNumber),D);D.resolveVariables(new CompositeSnippetVariableResolver([p,new ClipboardBasedVariableResolver(m,E,S.length,e.getOption(78)==="spread"),new SelectionBasedVariableResolver(g,y,E,l),new CommentBasedVariableResolver(g,y,d),new TimeBasedVariableResolver,new WorkspaceBasedVariableResolver(f),new RandomBasedVariableResolver])),c[E]=EditOperation.replace(I,D.toString()),c[E].identifier={major:E,minor:0},c[E]._isTracked=!0,u[E]=new OneSnippet(e,D,F)}return{edits:c,snippets:u}}static createEditsAndSnippetsFromEdits(e,t,i,n,r,s,a){if(!e.hasModel()||t.length===0)return{edits:[],snippets:[]};const l=[],d=e.getModel(),c=new SnippetParser,u=new TextmateSnippet,g=new CompositeSnippetVariableResolver([e.invokeWithinContext(p=>new ModelBasedVariableResolver(p.get(ILabelService),d)),new ClipboardBasedVariableResolver(()=>r,0,e.getSelections().length,e.getOption(78)==="spread"),new SelectionBasedVariableResolver(d,e.getSelection(),0,s),new CommentBasedVariableResolver(d,e.getSelection(),a),new TimeBasedVariableResolver,new WorkspaceBasedVariableResolver(e.invokeWithinContext(p=>p.get(IWorkspaceContextService))),new RandomBasedVariableResolver]);t=t.sort((p,m)=>Range$2.compareRangesUsingStarts(p.range,m.range));let f=0;for(let p=0;p<t.length;p++){const{range:m,template:b}=t[p];if(p>0){const E=t[p-1].range,x=Range$2.fromPositions(E.getEndPosition(),m.getStartPosition()),L=new Text(d.getValueInRange(x));u.appendChild(L),f+=L.value.length}const _=c.parseFragment(b,u);SnippetSession_1.adjustWhitespace(d,m.getStartPosition(),!0,u,new Set(_)),u.resolveVariables(g);const C=u.toString(),S=C.slice(f);f=C.length;const y=EditOperation.replace(m,S);y.identifier={major:p,minor:0},y._isTracked=!0,l.push(y)}return c.ensureFinalTabstop(u,i,!0),{edits:l,snippets:[new OneSnippet(e,u,"")]}}constructor(e,t,i=_defaultOptions$1,n){this._editor=e,this._template=t,this._options=i,this._languageConfigurationService=n,this._templateMerges=[],this._snippets=[]}dispose(){dispose(this._snippets)}_logInfo(){return`template="${this._template}", merged_templates="${this._templateMerges.join(" -> ")}"`}insert(){if(!this._editor.hasModel())return;const{edits:e,snippets:t}=typeof this._template=="string"?SnippetSession_1.createEditsAndSnippetsFromSelections(this._editor,this._template,this._options.overwriteBefore,this._options.overwriteAfter,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService):SnippetSession_1.createEditsAndSnippetsFromEdits(this._editor,this._template,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService);this._snippets=t,this._editor.executeEdits("snippet",e,i=>{const n=i.filter(r=>!!r.identifier);for(let r=0;r<t.length;r++)t[r].initialize(n[r].textChange);return this._snippets[0].hasPlaceholder?this._move(!0):n.map(r=>Selection$1.fromPositions(r.range.getEndPosition()))}),this._editor.revealRange(this._editor.getSelections()[0])}merge(e,t=_defaultOptions$1){if(!this._editor.hasModel())return;this._templateMerges.push([this._snippets[0]._nestingLevel,this._snippets[0]._placeholderGroupsIdx,e]);const{edits:i,snippets:n}=SnippetSession_1.createEditsAndSnippetsFromSelections(this._editor,e,t.overwriteBefore,t.overwriteAfter,!0,t.adjustWhitespace,t.clipboardText,t.overtypingCapturer,this._languageConfigurationService);this._editor.executeEdits("snippet",i,r=>{const s=r.filter(l=>!!l.identifier);for(let l=0;l<n.length;l++)n[l].initialize(s[l].textChange);const a=n[0].isTrivialSnippet;if(!a){for(const l of this._snippets)l.merge(n);console.assert(n.length===0)}return this._snippets[0].hasPlaceholder&&!a?this._move(void 0):s.map(l=>Selection$1.fromPositions(l.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 hasChoice(){return this._snippets[0].hasChoice}get activeChoice(){return this._snippets[0].activeChoice}isSelectionWithinPlaceholders(){if(!this.hasPlaceholder)return!1;const e=this._editor.getSelections();if(e.length<this._snippets.length)return!1;const t=new Map;for(const i of this._snippets){const n=i.computePossibleSelections();if(t.size===0)for(const[r,s]of n){s.sort(Range$2.compareRangesUsingStarts);for(const a of e)if(s[0].containsRange(a)){t.set(r,[]);break}}if(t.size===0)return!1;t.forEach((r,s)=>{r.push(...n.get(s))})}e.sort(Range$2.compareRangesUsingStarts);for(const[i,n]of t){if(n.length!==e.length){t.delete(i);continue}n.sort(Range$2.compareRangesUsingStarts);for(let r=0;r<n.length;r++)if(!n[r].containsRange(e[r])){t.delete(i);continue}}return t.size>0}};SnippetSession=SnippetSession_1=__decorate$J([__param$J(3,ILanguageConfigurationService)],SnippetSession);var __decorate$I=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$I=function(o,e){return function(t,i){e(t,i,o)}},SnippetController2_1;const _defaultOptions={overwriteBefore:0,overwriteAfter:0,undoStopBefore:!0,undoStopAfter:!0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0};let SnippetController2=SnippetController2_1=class{static get(e){return e.getContribution(SnippetController2_1.ID)}constructor(e,t,i,n,r){this._editor=e,this._logService=t,this._languageFeaturesService=i,this._languageConfigurationService=r,this._snippetListener=new DisposableStore,this._modelVersionId=-1,this._inSnippet=SnippetController2_1.InSnippetMode.bindTo(n),this._hasNextTabstop=SnippetController2_1.HasNextTabstop.bindTo(n),this._hasPrevTabstop=SnippetController2_1.HasPrevTabstop.bindTo(n)}dispose(){var e;this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),(e=this._session)===null||e===void 0||e.dispose(),this._snippetListener.dispose()}insert(e,t){try{this._doInsert(e,typeof t>"u"?_defaultOptions:Object.assign(Object.assign({},_defaultOptions),t))}catch(i){this.cancel(),this._logService.error(i),this._logService.error("snippet_error"),this._logService.error("insert_template=",e),this._logService.error("existing_template=",this._session?this._session._logInfo():"<no_session>")}}_doInsert(e,t){var i;if(this._editor.hasModel()){if(this._snippetListener.clear(),t.undoStopBefore&&this._editor.getModel().pushStackElement(),this._session&&typeof e!="string"&&this.cancel(),this._session?(assertType(typeof e=="string"),this._session.merge(e,t)):(this._modelVersionId=this._editor.getModel().getAlternativeVersionId(),this._session=new SnippetSession(this._editor,e,t,this._languageConfigurationService),this._session.insert()),t.undoStopAfter&&this._editor.getModel().pushStackElement(),!((i=this._session)===null||i===void 0)&&i.hasChoice){const n={_debugDisplayName:"snippetChoiceCompletions",provideCompletionItems:(c,u)=>{if(!this._session||c!==this._editor.getModel()||!Position$1.equals(this._editor.getPosition(),u))return;const{activeChoice:g}=this._session;if(!g||g.choice.options.length===0)return;const f=c.getValueInRange(g.range),p=!!g.choice.options.find(b=>b.value===f),m=[];for(let b=0;b<g.choice.options.length;b++){const _=g.choice.options[b];m.push({kind:13,label:_.value,insertText:_.value,sortText:"a".repeat(b+1),range:g.range,filterText:p?`${f}_${_.value}`:void 0,command:{id:"jumpToNextSnippetPlaceholder",title:localize("next","Go to next placeholder...")}})}return{suggestions:m}}},r=this._editor.getModel();let s,a=!1;const l=()=>{s==null||s.dispose(),a=!1},d=()=>{a||(s=this._languageFeaturesService.completionProvider.register({language:r.getLanguageId(),pattern:r.uri.fsPath,scheme:r.uri.scheme,exclusive:!0},n),this._snippetListener.add(s),a=!0)};this._choiceCompletions={provider:n,enable:d,disable:l}}this._updateState(),this._snippetListener.add(this._editor.onDidChangeModelContent(n=>n.isFlush&&this.cancel())),this._snippetListener.add(this._editor.onDidChangeModel(()=>this.cancel())),this._snippetListener.add(this._editor.onDidChangeCursorSelection(()=>this._updateState()))}}_updateState(){if(!(!this._session||!this._editor.hasModel())){if(this._modelVersionId===this._editor.getModel().getAlternativeVersionId())return this.cancel();if(!this._session.hasPlaceholder)return this.cancel();if(this._session.isAtLastPlaceholder||!this._session.isSelectionWithinPlaceholders())return this._editor.getModel().pushStackElement(),this.cancel();this._inSnippet.set(!0),this._hasPrevTabstop.set(!this._session.isAtFirstPlaceholder),this._hasNextTabstop.set(!this._session.isAtLastPlaceholder),this._handleChoice()}}_handleChoice(){var e;if(!this._session||!this._editor.hasModel()){this._currentChoice=void 0;return}const{activeChoice:t}=this._session;if(!t||!this._choiceCompletions){(e=this._choiceCompletions)===null||e===void 0||e.disable(),this._currentChoice=void 0;return}this._currentChoice!==t.choice&&(this._currentChoice=t.choice,this._choiceCompletions.enable(),queueMicrotask(()=>{showSimpleSuggestions(this._editor,this._choiceCompletions.provider)}))}finish(){for(;this._inSnippet.get();)this.next()}cancel(e=!1){var t;this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),this._snippetListener.clear(),this._currentChoice=void 0,(t=this._session)===null||t===void 0||t.dispose(),this._session=void 0,this._modelVersionId=-1,e&&this._editor.setSelections([this._editor.getSelection()])}prev(){var e;(e=this._session)===null||e===void 0||e.prev(),this._updateState()}next(){var e;(e=this._session)===null||e===void 0||e.next(),this._updateState()}isInSnippet(){return!!this._inSnippet.get()}};SnippetController2.ID="snippetController2";SnippetController2.InSnippetMode=new RawContextKey("inSnippetMode",!1,localize("inSnippetMode","Whether the editor in current in snippet mode"));SnippetController2.HasNextTabstop=new RawContextKey("hasNextTabstop",!1,localize("hasNextTabstop","Whether there is a next tab stop when in snippet mode"));SnippetController2.HasPrevTabstop=new RawContextKey("hasPrevTabstop",!1,localize("hasPrevTabstop","Whether there is a previous tab stop when in snippet mode"));SnippetController2=SnippetController2_1=__decorate$I([__param$I(1,ILogService),__param$I(2,ILanguageFeaturesService),__param$I(3,IContextKeyService),__param$I(4,ILanguageConfigurationService)],SnippetController2);registerEditorContribution(SnippetController2.ID,SnippetController2,4);const CommandCtor=EditorCommand.bindToContribution(SnippetController2.get);registerEditorCommand(new CommandCtor({id:"jumpToNextSnippetPlaceholder",precondition:ContextKeyExpr.and(SnippetController2.InSnippetMode,SnippetController2.HasNextTabstop),handler:o=>o.next(),kbOpts:{weight:130,kbExpr:EditorContextKeys.editorTextFocus,primary:2}}));registerEditorCommand(new CommandCtor({id:"jumpToPrevSnippetPlaceholder",precondition:ContextKeyExpr.and(SnippetController2.InSnippetMode,SnippetController2.HasPrevTabstop),handler:o=>o.prev(),kbOpts:{weight:130,kbExpr:EditorContextKeys.editorTextFocus,primary:1026}}));registerEditorCommand(new CommandCtor({id:"leaveSnippet",precondition:SnippetController2.InSnippetMode,handler:o=>o.cancel(!0),kbOpts:{weight:130,kbExpr:EditorContextKeys.editorTextFocus,primary:9,secondary:[1033]}}));registerEditorCommand(new CommandCtor({id:"acceptSnippet",precondition:SnippetController2.InSnippetMode,handler:o=>o.finish()}));var __decorate$H=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$H=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$t=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},VersionIdChangeReason;(function(o){o[o.Undo=0]="Undo",o[o.Redo=1]="Redo",o[o.AcceptWord=2]="AcceptWord",o[o.Other=3]="Other"})(VersionIdChangeReason||(VersionIdChangeReason={}));let InlineCompletionsModel=class extends Disposable{get isAcceptingPartially(){return this._isAcceptingPartially}constructor(e,t,i,n,r,s,a,l,d,c,u,g){super(),this.textModel=e,this.selectedSuggestItem=t,this.cursorPosition=i,this.textModelVersionId=n,this._debounceValue=r,this._suggestPreviewEnabled=s,this._suggestPreviewMode=a,this._inlineSuggestMode=l,this._enabled=d,this._instantiationService=c,this._commandService=u,this._languageConfigurationService=g,this._source=this._register(this._instantiationService.createInstance(InlineCompletionsSource,this.textModel,this.textModelVersionId,this._debounceValue)),this._isActive=observableValue(this,!1),this._forceUpdate=observableSignal("forceUpdate"),this._selectedInlineCompletionId=observableValue(this,void 0),this._isAcceptingPartially=!1,this._preserveCurrentCompletionReasons=new Set([VersionIdChangeReason.Redo,VersionIdChangeReason.Undo,VersionIdChangeReason.AcceptWord]),this._fetchInlineCompletions=derivedHandleChanges({owner:this,createEmptyChangeSummary:()=>({preserveCurrentCompletion:!1,inlineCompletionTriggerKind:InlineCompletionTriggerKind$1.Automatic}),handleChange:(p,m)=>(p.didChange(this.textModelVersionId)&&this._preserveCurrentCompletionReasons.has(p.change)?m.preserveCurrentCompletion=!0:p.didChange(this._forceUpdate)&&(m.inlineCompletionTriggerKind=p.change),!0)},(p,m)=>{if(this._forceUpdate.read(p),!(this._enabled.read(p)&&this.selectedSuggestItem.read(p)||this._isActive.read(p))){this._source.cancelUpdate();return}this.textModelVersionId.read(p);const _=this.selectedInlineCompletion.get(),C=m.preserveCurrentCompletion||_!=null&&_.forwardStable?_:void 0,S=this._source.suggestWidgetInlineCompletions.get(),y=this.selectedSuggestItem.read(p);if(S&&!y){const L=this._source.inlineCompletions.get();transaction(I=>{L&&S.request.versionId>L.request.versionId&&this._source.inlineCompletions.set(S.clone(),I),this._source.clearSuggestWidgetInlineCompletions(I)})}const E=this.cursorPosition.read(p),x={triggerKind:m.inlineCompletionTriggerKind,selectedSuggestionInfo:y==null?void 0:y.toSelectedSuggestionInfo()};return this._source.fetch(E,x,C)}),this._filteredInlineCompletionItems=derived(this,p=>{const m=this._source.inlineCompletions.read(p);if(!m)return[];const b=this.cursorPosition.read(p);return m.inlineCompletions.filter(C=>C.isVisible(this.textModel,b,p))}),this.selectedInlineCompletionIndex=derived(this,p=>{const m=this._selectedInlineCompletionId.read(p),b=this._filteredInlineCompletionItems.read(p),_=this._selectedInlineCompletionId===void 0?-1:b.findIndex(C=>C.semanticId===m);return _===-1?(this._selectedInlineCompletionId.set(void 0,void 0),0):_}),this.selectedInlineCompletion=derived(this,p=>{const m=this._filteredInlineCompletionItems.read(p),b=this.selectedInlineCompletionIndex.read(p);return m[b]}),this.lastTriggerKind=this._source.inlineCompletions.map(p=>p==null?void 0:p.request.context.triggerKind),this.inlineCompletionsCount=derived(this,p=>{if(this.lastTriggerKind.read(p)===InlineCompletionTriggerKind$1.Explicit)return this._filteredInlineCompletionItems.read(p).length}),this.state=derivedOpts({owner:this,equalityComparer:(p,m)=>!p||!m?p===m:ghostTextOrReplacementEquals(p.ghostText,m.ghostText)&&p.inlineCompletion===m.inlineCompletion&&p.suggestItem===m.suggestItem},p=>{var m;const b=this.textModel,_=this.selectedSuggestItem.read(p);if(_){const C=_.toSingleTextEdit().removeCommonPrefix(b),S=this._computeAugmentedCompletion(C,p);if(!this._suggestPreviewEnabled.read(p)&&!S)return;const E=(m=S==null?void 0:S.edit)!==null&&m!==void 0?m:C,x=S?S.edit.text.length-C.text.length:0,L=this._suggestPreviewMode.read(p),I=this.cursorPosition.read(p),D=E.computeGhostText(b,L,I,x);return{ghostText:D??new GhostText(E.range.endLineNumber,[]),inlineCompletion:S==null?void 0:S.completion,suggestItem:_}}else{if(!this._isActive.read(p))return;const C=this.selectedInlineCompletion.read(p);if(!C)return;const S=C.toSingleTextEdit(p),y=this._inlineSuggestMode.read(p),E=this.cursorPosition.read(p),x=S.computeGhostText(b,y,E);return x?{ghostText:x,inlineCompletion:C,suggestItem:void 0}:void 0}}),this.ghostText=derivedOpts({owner:this,equalityComparer:ghostTextOrReplacementEquals},p=>{const m=this.state.read(p);if(m)return m.ghostText}),this._register(recomputeInitiallyAndOnChange(this._fetchInlineCompletions));let f;this._register(autorun(p=>{var m,b;const _=this.state.read(p),C=_==null?void 0:_.inlineCompletion;if((C==null?void 0:C.semanticId)!==(f==null?void 0:f.semanticId)&&(f=C,C)){const S=C.inlineCompletion,y=S.source;(b=(m=y.provider).handleItemDidShow)===null||b===void 0||b.call(m,y.inlineCompletions,S.sourceInlineCompletion,S.insertText)}}))}trigger(e){return __awaiter$t(this,void 0,void 0,function*(){this._isActive.set(!0,e),yield this._fetchInlineCompletions.get()})}triggerExplicitly(e){return __awaiter$t(this,void 0,void 0,function*(){subtransaction(e,t=>{this._isActive.set(!0,t),this._forceUpdate.trigger(t,InlineCompletionTriggerKind$1.Explicit)}),yield this._fetchInlineCompletions.get()})}stop(e){subtransaction(e,t=>{this._isActive.set(!1,t),this._source.clear(t)})}_computeAugmentedCompletion(e,t){const i=this.textModel,n=this._source.suggestWidgetInlineCompletions.read(t),r=n?n.inlineCompletions:[this.selectedInlineCompletion.read(t)].filter(isDefined);return mapFindFirst(r,a=>{let l=a.toSingleTextEdit(t);return l=l.removeCommonPrefix(i,Range$2.fromPositions(l.range.getStartPosition(),e.range.getEndPosition())),l.augments(e)?{edit:l,completion:a}:void 0})}_deltaSelectedInlineCompletionIndex(e){return __awaiter$t(this,void 0,void 0,function*(){yield this.triggerExplicitly();const t=this._filteredInlineCompletionItems.get()||[];if(t.length>0){const i=(this.selectedInlineCompletionIndex.get()+e+t.length)%t.length;this._selectedInlineCompletionId.set(t[i].semanticId,void 0)}else this._selectedInlineCompletionId.set(void 0,void 0)})}next(){return __awaiter$t(this,void 0,void 0,function*(){yield this._deltaSelectedInlineCompletionIndex(1)})}previous(){return __awaiter$t(this,void 0,void 0,function*(){yield this._deltaSelectedInlineCompletionIndex(-1)})}accept(e){var t;return __awaiter$t(this,void 0,void 0,function*(){if(e.getModel()!==this.textModel)throw new BugIndicatingError;const i=this.state.get();if(!i||i.ghostText.isEmpty()||!i.inlineCompletion)return;const n=i.inlineCompletion.toInlineCompletion(void 0);e.pushUndoStop(),n.snippetInfo?(e.executeEdits("inlineSuggestion.accept",[EditOperation.replaceMove(n.range,""),...n.additionalTextEdits]),e.setPosition(n.snippetInfo.range.getStartPosition()),(t=SnippetController2.get(e))===null||t===void 0||t.insert(n.snippetInfo.snippet,{undoStopBefore:!1})):e.executeEdits("inlineSuggestion.accept",[EditOperation.replaceMove(n.range,n.insertText),...n.additionalTextEdits]),n.command&&n.source.addRef(),transaction(r=>{this._source.clear(r),this._isActive.set(!1,r)}),n.command&&(yield this._commandService.executeCommand(n.command.id,...n.command.arguments||[]).then(void 0,onUnexpectedExternalError),n.source.removeRef())})}acceptNextWord(e){return __awaiter$t(this,void 0,void 0,function*(){yield this._acceptNext(e,(t,i)=>{const n=this.textModel.getLanguageIdAtPosition(t.lineNumber,t.column),r=this._languageConfigurationService.getLanguageConfiguration(n),s=new RegExp(r.wordDefinition.source,r.wordDefinition.flags.replace("g","")),a=i.match(s);let l=0;a&&a.index!==void 0?a.index===0?l=a[0].length:l=a.index:l=i.length;const c=/\s+/g.exec(i);return c&&c.index!==void 0&&c.index+c[0].length<l&&(l=c.index+c[0].length),l})})}acceptNextLine(e){return __awaiter$t(this,void 0,void 0,function*(){yield this._acceptNext(e,(t,i)=>{const n=i.match(/\n/);return n&&n.index!==void 0?n.index+1:i.length})})}_acceptNext(e,t){return __awaiter$t(this,void 0,void 0,function*(){if(e.getModel()!==this.textModel)throw new BugIndicatingError;const i=this.state.get();if(!i||i.ghostText.isEmpty()||!i.inlineCompletion)return;const n=i.ghostText,r=i.inlineCompletion.toInlineCompletion(void 0);if(r.snippetInfo||r.filterText!==r.insertText){yield this.accept(e);return}const s=n.parts[0],a=new Position$1(n.lineNumber,s.column),l=s.lines.join(`
- `),d=t(a,l);if(d===l.length&&n.parts.length===1){this.accept(e);return}const c=l.substring(0,d);this._isAcceptingPartially=!0;try{e.pushUndoStop(),e.executeEdits("inlineSuggestion.accept",[EditOperation.replace(Range$2.fromPositions(a),c)]);const u=lengthOfText(c);e.setPosition(addPositions(a,u))}finally{this._isAcceptingPartially=!1}if(r.source.provider.handlePartialAccept){const u=Range$2.fromPositions(r.range.getStartPosition(),addPositions(a,lengthOfText(c))),g=e.getModel().getValueInRange(u,1);r.source.provider.handlePartialAccept(r.source.inlineCompletions,r.sourceInlineCompletion,g.length)}})}handleSuggestAccepted(e){var t,i;const n=e.toSingleTextEdit().removeCommonPrefix(this.textModel),r=this._computeAugmentedCompletion(n,void 0);if(!r)return;const s=r.completion.inlineCompletion;(i=(t=s.source.provider).handlePartialAccept)===null||i===void 0||i.call(t,s.source.inlineCompletions,s.sourceInlineCompletion,n.text.length)}};InlineCompletionsModel=__decorate$H([__param$H(9,IInstantiationService),__param$H(10,ICommandService),__param$H(11,ILanguageConfigurationService)],InlineCompletionsModel);var __decorate$G=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$G=function(o,e){return function(t,i){e(t,i,o)}},SuggestMemoryService_1;class Memory{constructor(e){this.name=e}select(e,t,i){if(i.length===0)return 0;const n=i[0].score[0];for(let r=0;r<i.length;r++){const{score:s,completion:a}=i[r];if(s[0]!==n)break;if(a.preselect)return r}return 0}}class NoMemory extends Memory{constructor(){super("first")}memorize(e,t,i){}toJSON(){}fromJSON(){}}class LRUMemory extends Memory{constructor(){super("recentlyUsed"),this._cache=new LRUCache(300,.66),this._seq=0}memorize(e,t,i){const n=`${e.getLanguageId()}/${i.textLabel}`;this._cache.set(n,{touch:this._seq++,type:i.completion.kind,insertText:i.completion.insertText})}select(e,t,i){if(i.length===0)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);const r=i[0].score[0];let s=-1,a=-1,l=-1;for(let d=0;d<i.length&&i[d].score[0]===r;d++){const c=`${e.getLanguageId()}/${i[d].textLabel}`,u=this._cache.peek(c);if(u&&u.touch>l&&u.type===i[d].completion.kind&&u.insertText===i[d].completion.insertText&&(l=u.touch,a=d),i[d].completion.preselect&&s===-1)return s=d}return a!==-1?a:s!==-1?s:0}toJSON(){return this._cache.toJSON()}fromJSON(e){this._cache.clear();const t=0;for(const[i,n]of e)n.touch=t,n.type=typeof n.type=="number"?n.type:CompletionItemKinds.fromString(n.type),this._cache.set(i,n);this._seq=this._cache.size}}class PrefixMemory extends Memory{constructor(){super("recentlyUsedByPrefix"),this._trie=TernarySearchTree.forStrings(),this._seq=0}memorize(e,t,i){const{word:n}=e.getWordUntilPosition(t),r=`${e.getLanguageId()}/${n}`;this._trie.set(r,{type:i.completion.kind,insertText:i.completion.insertText,touch:this._seq++})}select(e,t,i){const{word:n}=e.getWordUntilPosition(t);if(!n)return super.select(e,t,i);const r=`${e.getLanguageId()}/${n}`;let s=this._trie.get(r);if(s||(s=this._trie.findSubstr(r)),s)for(let a=0;a<i.length;a++){const{kind:l,insertText:d}=i[a].completion;if(l===s.type&&d===s.insertText)return a}return super.select(e,t,i)}toJSON(){const e=[];return this._trie.forEach((t,i)=>e.push([i,t])),e.sort((t,i)=>-(t[1].touch-i[1].touch)).forEach((t,i)=>t[1].touch=i),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=typeof i.type=="number"?i.type:CompletionItemKinds.fromString(i.type),this._trie.set(t,i)}}}let SuggestMemoryService=SuggestMemoryService_1=class{constructor(e,t){this._storageService=e,this._configService=t,this._disposables=new DisposableStore,this._persistSoon=new RunOnceScheduler(()=>this._saveState(),500),this._disposables.add(e.onWillSaveState(i=>{i.reason===WillSaveStateReason.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(e,t){var i;const n=this._configService.getValue("editor.suggestSelection",{overrideIdentifier:e.getLanguageIdAtPosition(t.lineNumber,t.column),resource:e.uri});if(((i=this._strategy)===null||i===void 0?void 0:i.name)!==n){this._saveState();const r=SuggestMemoryService_1._strategyCtors.get(n)||NoMemory;this._strategy=new r;try{const a=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,l=this._storageService.get(`${SuggestMemoryService_1._storagePrefix}/${n}`,a);l&&this._strategy.fromJSON(JSON.parse(l))}catch{}}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(`${SuggestMemoryService_1._storagePrefix}/${this._strategy.name}`,i,t,1)}}};SuggestMemoryService._strategyCtors=new Map([["recentlyUsedByPrefix",PrefixMemory],["recentlyUsed",LRUMemory],["first",NoMemory]]);SuggestMemoryService._storagePrefix="suggest/memories";SuggestMemoryService=SuggestMemoryService_1=__decorate$G([__param$G(0,IStorageService),__param$G(1,IConfigurationService)],SuggestMemoryService);const ISuggestMemoryService=createDecorator("ISuggestMemories");registerSingleton(ISuggestMemoryService,SuggestMemoryService,1);var __decorate$F=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$F=function(o,e){return function(t,i){e(t,i,o)}},WordContextKey_1;let WordContextKey=WordContextKey_1=class{constructor(e,t){this._editor=e,this._enabled=!1,this._ckAtEnd=WordContextKey_1.AtEnd.bindTo(t),this._configListener=this._editor.onDidChangeConfiguration(i=>i.hasChanged(122)&&this._update()),this._update()}dispose(){var e;this._configListener.dispose(),(e=this._selectionListener)===null||e===void 0||e.dispose(),this._ckAtEnd.reset()}_update(){const e=this._editor.getOption(122)==="on";if(this._enabled!==e)if(this._enabled=e,this._enabled){const t=()=>{if(!this._editor.hasModel()){this._ckAtEnd.set(!1);return}const i=this._editor.getModel(),n=this._editor.getSelection(),r=i.getWordAtPosition(n.getStartPosition());if(!r){this._ckAtEnd.set(!1);return}this._ckAtEnd.set(r.endColumn===n.getStartPosition().column)};this._selectionListener=this._editor.onDidChangeCursorSelection(t),t()}else this._selectionListener&&(this._ckAtEnd.reset(),this._selectionListener.dispose(),this._selectionListener=void 0)}};WordContextKey.AtEnd=new RawContextKey("atEndOfWord",!1);WordContextKey=WordContextKey_1=__decorate$F([__param$F(1,IContextKeyService)],WordContextKey);var __decorate$E=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$E=function(o,e){return function(t,i){e(t,i,o)}},SuggestAlternatives_1;let SuggestAlternatives=SuggestAlternatives_1=class{constructor(e,t){this._editor=e,this._index=0,this._ckOtherSuggestions=SuggestAlternatives_1.OtherSuggestions.bindTo(t)}dispose(){this.reset()}reset(){var e;this._ckOtherSuggestions.reset(),(e=this._listener)===null||e===void 0||e.dispose(),this._model=void 0,this._acceptNext=void 0,this._ignore=!1}set({model:e,index:t},i){if(e.items.length===0){this.reset();return}if(SuggestAlternatives_1._moveIndex(!0,e,t)===t){this.reset();return}this._acceptNext=i,this._model=e,this._index=t,this._listener=this._editor.onDidChangeCursorPosition(()=>{this._ignore||this.reset()}),this._ckOtherSuggestions.set(!0)}static _moveIndex(e,t,i){let n=i;for(let r=t.items.length;r>0&&(n=(n+t.items.length+(e?1:-1))%t.items.length,!(n===i||!t.items[n].completion.additionalTextEdits));r--);return n}next(){this._move(!0)}prev(){this._move(!1)}_move(e){if(this._model)try{this._ignore=!0,this._index=SuggestAlternatives_1._moveIndex(e,this._model,this._index),this._acceptNext({index:this._index,item:this._model.items[this._index],model:this._model})}finally{this._ignore=!1}}};SuggestAlternatives.OtherSuggestions=new RawContextKey("hasOtherSuggestions",!1);SuggestAlternatives=SuggestAlternatives_1=__decorate$E([__param$E(1,IContextKeyService)],SuggestAlternatives);class CommitCharacterController{constructor(e,t,i,n){this._disposables=new DisposableStore,this._disposables.add(i.onDidSuggest(r=>{r.completionModel.items.length===0&&this.reset()})),this._disposables.add(i.onDidCancel(r=>{this.reset()})),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(r=>{if(this._active&&!t.isFrozen()&&i.state!==0){const s=r.charCodeAt(r.length-1);this._active.acceptCharacters.has(s)&&e.getOption(0)&&n(this._active.item)}}))}_onItem(e){if(!e||!isNonEmptyArray(e.item.completion.commitCharacters)){this.reset();return}if(this._active&&this._active.item.item===e.item)return;const t=new CharacterSet;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()}}var __awaiter$s=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};class BracketSelectionRangeProvider{provideSelectionRanges(e,t){return __awaiter$s(this,void 0,void 0,function*(){const i=[];for(const n of t){const r=[];i.push(r);const s=new Map;yield new Promise(a=>BracketSelectionRangeProvider._bracketsRightYield(a,0,e,n,s)),yield new Promise(a=>BracketSelectionRangeProvider._bracketsLeftYield(a,0,e,n,s,r))}return i})}static _bracketsRightYield(e,t,i,n,r){const s=new Map,a=Date.now();for(;;){if(t>=BracketSelectionRangeProvider._maxRounds){e();break}if(!n){e();break}const l=i.bracketPairs.findNextBracket(n);if(!l){e();break}if(Date.now()-a>BracketSelectionRangeProvider._maxDuration){setTimeout(()=>BracketSelectionRangeProvider._bracketsRightYield(e,t+1,i,n,r));break}if(l.bracketInfo.isOpeningBracket){const c=l.bracketInfo.bracketText,u=s.has(c)?s.get(c):0;s.set(c,u+1)}else{const c=l.bracketInfo.getOpeningBrackets()[0].bracketText;let u=s.has(c)?s.get(c):0;if(u-=1,s.set(c,Math.max(0,u)),u<0){let g=r.get(c);g||(g=new LinkedList,r.set(c,g)),g.push(l.range)}}n=l.range.getEndPosition()}}static _bracketsLeftYield(e,t,i,n,r,s){const a=new Map,l=Date.now();for(;;){if(t>=BracketSelectionRangeProvider._maxRounds&&r.size===0){e();break}if(!n){e();break}const d=i.bracketPairs.findPrevBracket(n);if(!d){e();break}if(Date.now()-l>BracketSelectionRangeProvider._maxDuration){setTimeout(()=>BracketSelectionRangeProvider._bracketsLeftYield(e,t+1,i,n,r,s));break}if(d.bracketInfo.isOpeningBracket){const u=d.bracketInfo.bracketText;let g=a.has(u)?a.get(u):0;if(g-=1,a.set(u,Math.max(0,g)),g<0){const f=r.get(u);if(f){const p=f.shift();f.size===0&&r.delete(u);const m=Range$2.fromPositions(d.range.getEndPosition(),p.getStartPosition()),b=Range$2.fromPositions(d.range.getStartPosition(),p.getEndPosition());s.push({range:m}),s.push({range:b}),BracketSelectionRangeProvider._addBracketLeading(i,b,s)}}}else{const u=d.bracketInfo.getOpeningBrackets()[0].bracketText,g=a.has(u)?a.get(u):0;a.set(u,g+1)}n=d.range.getStartPosition()}}static _addBracketLeading(e,t,i){if(t.startLineNumber===t.endLineNumber)return;const n=t.startLineNumber,r=e.getLineFirstNonWhitespaceColumn(n);r!==0&&r!==t.startColumn&&(i.push({range:Range$2.fromPositions(new Position$1(n,r),t.getEndPosition())}),i.push({range:Range$2.fromPositions(new Position$1(n,1),t.getEndPosition())}));const s=n-1;if(s>0){const a=e.getLineFirstNonWhitespaceColumn(s);a===t.startColumn&&a!==e.getLineLastNonWhitespaceColumn(s)&&(i.push({range:Range$2.fromPositions(new Position$1(s,a),t.getEndPosition())}),i.push({range:Range$2.fromPositions(new Position$1(s,1),t.getEndPosition())}))}}}BracketSelectionRangeProvider._maxDuration=30;BracketSelectionRangeProvider._maxRounds=2;var __awaiter$r=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};class WordDistance{static create(e,t){return __awaiter$r(this,void 0,void 0,function*(){if(!t.getOption(117).localityBonus||!t.hasModel())return WordDistance.None;const i=t.getModel(),n=t.getPosition();if(!e.canComputeWordRanges(i.uri))return WordDistance.None;const[r]=yield new BracketSelectionRangeProvider().provideSelectionRanges(i,[n]);if(r.length===0)return WordDistance.None;const s=yield e.computeWordRanges(i.uri,r[0].range);if(!s)return WordDistance.None;const a=i.getWordUntilPosition(n);return delete s[a.word],new class extends WordDistance{distance(l,d){if(!n.equals(t.getPosition()))return 0;if(d.kind===17)return 2<<20;const c=typeof d.label=="string"?d.label:d.label.label,u=s[c];if(isFalsyOrEmpty(u))return 2<<20;const g=binarySearch(u,Range$2.fromPositions(l),Range$2.compareRangesUsingStarts),f=g>=0?u[g]:u[Math.max(0,~g-1)];let p=r.length;for(const m of r){if(!Range$2.containsRange(m.range,f))break;p-=1}return p}}})}}WordDistance.None=new class extends WordDistance{distance(){return 0}};let LineContext$1=class{constructor(e,t){this.leadingLineContent=e,this.characterCountDelta=t}};class CompletionModel{constructor(e,t,i,n,r,s,a=FuzzyScoreOptions.default,l=void 0){this.clipboardText=l,this._snippetCompareFn=CompletionModel._compareCompletionItems,this._items=e,this._column=t,this._wordDistance=n,this._options=r,this._refilterKind=1,this._lineContext=i,this._fuzzyScoreOptions=a,s==="top"?this._snippetCompareFn=CompletionModel._compareCompletionItemsSnippetsUp:s==="bottom"&&(this._snippetCompareFn=CompletionModel._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}getItemsByProvider(){return this._ensureCachedState(),this._itemsByProvider}getIncompleteProvider(){this._ensureCachedState();const e=new Set;for(const[t,i]of this.getItemsByProvider())i.length>0&&i[0].container.incomplete&&e.add(t);return e}get stats(){return this._ensureCachedState(),this._stats}_ensureCachedState(){this._refilterKind!==0&&this._createCachedState()}_createCachedState(){this._itemsByProvider=new Map;const e=[],{leadingLineContent:t,characterCountDelta:i}=this._lineContext;let n="",r="";const s=this._refilterKind===1?this._items:this._filteredItems,a=[],l=!this._options.filterGraceful||s.length>2e3?fuzzyScore:fuzzyScoreGracefulAggressive;for(let d=0;d<s.length;d++){const c=s[d];if(c.isInvalid)continue;const u=this._itemsByProvider.get(c.provider);u?u.push(c):this._itemsByProvider.set(c.provider,[c]);const g=c.position.column-c.editStart.column,f=g+i-(c.position.column-this._column);if(n.length!==f&&(n=f===0?"":t.slice(-f),r=n.toLowerCase()),c.word=n,f===0)c.score=FuzzyScore.Default;else{let p=0;for(;p<g;){const m=n.charCodeAt(p);if(m===32||m===9)p+=1;else break}if(p>=f)c.score=FuzzyScore.Default;else if(typeof c.completion.filterText=="string"){const m=l(n,r,p,c.completion.filterText,c.filterTextLow,0,this._fuzzyScoreOptions);if(!m)continue;compareIgnoreCase(c.completion.filterText,c.textLabel)===0?c.score=m:(c.score=anyScore(n,r,p,c.textLabel,c.labelLow,0),c.score[0]=m[0])}else{const m=l(n,r,p,c.textLabel,c.labelLow,0,this._fuzzyScoreOptions);if(!m)continue;c.score=m}}c.idx=d,c.distance=this._wordDistance.distance(c.position,c.completion),a.push(c),e.push(c.textLabel.length)}this._filteredItems=a.sort(this._snippetCompareFn),this._refilterKind=0,this._stats={pLabelLen:e.length?quickSelect(e.length-.85,e,(d,c)=>d-c):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(e.completion.kind===27)return 1;if(t.completion.kind===27)return-1}return CompletionModel._compareCompletionItems(e,t)}static _compareCompletionItemsSnippetsUp(e,t){if(e.completion.kind!==t.completion.kind){if(e.completion.kind===27)return-1;if(t.completion.kind===27)return 1}return CompletionModel._compareCompletionItems(e,t)}}var __decorate$D=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$D=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$q=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},SuggestModel_1;class LineContext{static shouldAutoTrigger(e){if(!e.hasModel())return!1;const t=e.getModel(),i=e.getPosition();t.tokenization.tokenizeIfCheap(i.lineNumber);const n=t.getWordAtPosition(i);return!(!n||n.endColumn!==i.column&&n.startColumn+1!==i.column||!isNaN(Number(n.word)))}constructor(e,t,i){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.triggerOptions=i}}function canShowQuickSuggest(o,e,t){if(!e.getContextKeyValue(InlineCompletionContextKeys.inlineSuggestionVisible.key))return!0;const i=e.getContextKeyValue(InlineCompletionContextKeys.suppressSuggestions.key);return i!==void 0?!i:!o.getOption(62).suppressSuggestions}function canShowSuggestOnTriggerCharacters(o,e,t){if(!e.getContextKeyValue("inlineSuggestionVisible"))return!0;const i=e.getContextKeyValue(InlineCompletionContextKeys.suppressSuggestions.key);return i!==void 0?!i:!o.getOption(62).suppressSuggestions}let SuggestModel=SuggestModel_1=class{constructor(e,t,i,n,r,s,a,l,d){this._editor=e,this._editorWorkerService=t,this._clipboardService=i,this._telemetryService=n,this._logService=r,this._contextKeyService=s,this._configurationService=a,this._languageFeaturesService=l,this._envService=d,this._toDispose=new DisposableStore,this._triggerCharacterListener=new DisposableStore,this._triggerQuickSuggest=new TimeoutTimer,this._triggerState=void 0,this._completionDisposables=new DisposableStore,this._onDidCancel=new Emitter$1,this._onDidTrigger=new Emitter$1,this._onDidSuggest=new Emitter$1,this.onDidCancel=this._onDidCancel.event,this.onDidTrigger=this._onDidTrigger.event,this.onDidSuggest=this._onDidSuggest.event,this._telemetryGate=0,this._currentSelection=this._editor.getSelection()||new Selection$1(1,1,1,1),this._toDispose.add(this._editor.onDidChangeModel(()=>{this._updateTriggerCharacters(),this.cancel()})),this._toDispose.add(this._editor.onDidChangeModelLanguage(()=>{this._updateTriggerCharacters(),this.cancel()})),this._toDispose.add(this._editor.onDidChangeConfiguration(()=>{this._updateTriggerCharacters()})),this._toDispose.add(this._languageFeaturesService.completionProvider.onDidChange(()=>{this._updateTriggerCharacters(),this._updateActiveSuggestSession()}));let c=!1;this._toDispose.add(this._editor.onDidCompositionStart(()=>{c=!0})),this._toDispose.add(this._editor.onDidCompositionEnd(()=>{c=!1,this._onCompositionEnd()})),this._toDispose.add(this._editor.onDidChangeCursorSelection(u=>{c||this._onCursorChange(u)})),this._toDispose.add(this._editor.onDidChangeModelContent(()=>{!c&&this._triggerState!==void 0&&this._refilterCompletionItems()})),this._updateTriggerCharacters()}dispose(){dispose(this._triggerCharacterListener),dispose([this._onDidCancel,this._onDidSuggest,this._onDidTrigger,this._triggerQuickSuggest]),this._toDispose.dispose(),this._completionDisposables.dispose(),this.cancel()}_updateTriggerCharacters(){if(this._triggerCharacterListener.clear(),this._editor.getOption(90)||!this._editor.hasModel()||!this._editor.getOption(120))return;const e=new Map;for(const i of this._languageFeaturesService.completionProvider.all(this._editor.getModel()))for(const n of i.triggerCharacters||[]){let r=e.get(n);r||(r=new Set,r.add(getSnippetSuggestSupport()),e.set(n,r)),r.add(i)}const t=i=>{var n;if(!canShowSuggestOnTriggerCharacters(this._editor,this._contextKeyService,this._configurationService)||LineContext.shouldAutoTrigger(this._editor))return;if(!i){const a=this._editor.getPosition();i=this._editor.getModel().getLineContent(a.lineNumber).substr(0,a.column-1)}let r="";isLowSurrogate(i.charCodeAt(i.length-1))?isHighSurrogate(i.charCodeAt(i.length-2))&&(r=i.substr(i.length-2)):r=i.charAt(i.length-1);const s=e.get(r);if(s){const a=new Map;if(this._completionModel)for(const[l,d]of this._completionModel.getItemsByProvider())s.has(l)||a.set(l,d);this.trigger({auto:!0,triggerKind:1,triggerCharacter:r,retrigger:!!this._completionModel,clipboardText:(n=this._completionModel)===null||n===void 0?void 0:n.clipboardText,completionOptions:{providerFilter:s,providerItemsToReuse:a}})}};this._triggerCharacterListener.add(this._editor.onDidType(t)),this._triggerCharacterListener.add(this._editor.onDidCompositionEnd(()=>t()))}get state(){return this._triggerState?this._triggerState.auto?2:1:0}cancel(e=!1){var t;this._triggerState!==void 0&&(this._triggerQuickSuggest.cancel(),(t=this._requestToken)===null||t===void 0||t.cancel(),this._requestToken=void 0,this._triggerState=void 0,this._completionModel=void 0,this._context=void 0,this._onDidCancel.fire({retrigger:e}))}clear(){this._completionDisposables.clear()}_updateActiveSuggestSession(){this._triggerState!==void 0&&(!this._editor.hasModel()||!this._languageFeaturesService.completionProvider.has(this._editor.getModel())?this.cancel():this.trigger({auto:this._triggerState.auto,retrigger:!0}))}_onCursorChange(e){if(!this._editor.hasModel())return;const t=this._currentSelection;if(this._currentSelection=this._editor.getSelection(),!e.selection.isEmpty()||e.reason!==0&&e.reason!==3||e.source!=="keyboard"&&e.source!=="deleteLeft"){this.cancel();return}this._triggerState===void 0&&e.reason===0?(t.containsRange(this._currentSelection)||t.getEndPosition().isBeforeOrEqual(this._currentSelection.getPosition()))&&this._doTriggerQuickSuggest():this._triggerState!==void 0&&e.reason===3&&this._refilterCompletionItems()}_onCompositionEnd(){this._triggerState===void 0?this._doTriggerQuickSuggest():this._refilterCompletionItems()}_doTriggerQuickSuggest(){var e;QuickSuggestionsOptions.isAllOff(this._editor.getOption(88))||this._editor.getOption(117).snippetsPreventQuickSuggestions&&(!((e=SnippetController2.get(this._editor))===null||e===void 0)&&e.isInSnippet())||(this.cancel(),this._triggerQuickSuggest.cancelAndSet(()=>{if(this._triggerState!==void 0||!LineContext.shouldAutoTrigger(this._editor)||!this._editor.hasModel()||!this._editor.hasWidgetFocus())return;const t=this._editor.getModel(),i=this._editor.getPosition(),n=this._editor.getOption(88);if(!QuickSuggestionsOptions.isAllOff(n)){if(!QuickSuggestionsOptions.isAllOn(n)){t.tokenization.tokenizeIfCheap(i.lineNumber);const r=t.tokenization.getLineTokens(i.lineNumber),s=r.getStandardTokenType(r.findTokenIndexAtOffset(Math.max(i.column-1-1,0)));if(QuickSuggestionsOptions.valueFor(n,s)!=="on")return}canShowQuickSuggest(this._editor,this._contextKeyService,this._configurationService)&&this._languageFeaturesService.completionProvider.has(t)&&this.trigger({auto:!0})}},this._editor.getOption(89)))}_refilterCompletionItems(){assertType(this._editor.hasModel()),assertType(this._triggerState!==void 0);const e=this._editor.getModel(),t=this._editor.getPosition(),i=new LineContext(e,t,Object.assign(Object.assign({},this._triggerState),{refilter:!0}));this._onNewContext(i)}trigger(e){var t,i,n,r,s,a;if(!this._editor.hasModel())return;const l=this._editor.getModel(),d=new LineContext(l,this._editor.getPosition(),e);this.cancel(e.retrigger),this._triggerState=e,this._onDidTrigger.fire({auto:e.auto,shy:(t=e.shy)!==null&&t!==void 0?t:!1,position:this._editor.getPosition()}),this._context=d;let c={triggerKind:(i=e.triggerKind)!==null&&i!==void 0?i:0};e.triggerCharacter&&(c={triggerKind:1,triggerCharacter:e.triggerCharacter}),this._requestToken=new CancellationTokenSource$1;const u=this._editor.getOption(111);let g=1;switch(u){case"top":g=0;break;case"bottom":g=2;break}const{itemKind:f,showDeprecated:p}=SuggestModel_1._createSuggestFilter(this._editor),m=new CompletionOptions(g,(r=(n=e.completionOptions)===null||n===void 0?void 0:n.kindFilter)!==null&&r!==void 0?r:f,(s=e.completionOptions)===null||s===void 0?void 0:s.providerFilter,(a=e.completionOptions)===null||a===void 0?void 0:a.providerItemsToReuse,p),b=WordDistance.create(this._editorWorkerService,this._editor),_=provideSuggestionItems(this._languageFeaturesService.completionProvider,l,this._editor.getPosition(),m,c,this._requestToken.token);Promise.all([_,b]).then(([C,S])=>__awaiter$q(this,void 0,void 0,function*(){var y;if((y=this._requestToken)===null||y===void 0||y.dispose(),!this._editor.hasModel())return;let E=e==null?void 0:e.clipboardText;if(!E&&C.needsClipboard&&(E=yield this._clipboardService.readText()),this._triggerState===void 0)return;const x=this._editor.getModel(),L=new LineContext(x,this._editor.getPosition(),e),I=Object.assign(Object.assign({},FuzzyScoreOptions.default),{firstMatchCanBeWeak:!this._editor.getOption(117).matchOnWordStartOnly});if(this._completionModel=new CompletionModel(C.items,this._context.column,{leadingLineContent:L.leadingLineContent,characterCountDelta:L.column-this._context.column},S,this._editor.getOption(117),this._editor.getOption(111),I,E),this._completionDisposables.add(C.disposable),this._onNewContext(L),this._reportDurationsTelemetry(C.durations),!this._envService.isBuilt||this._envService.isExtensionDevelopment)for(const D of C.items)D.isInvalid&&this._logService.warn(`[suggest] did IGNORE invalid completion item from ${D.provider._debugDisplayName}`,D.completion)})).catch(onUnexpectedError)}_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;e.getOption(111)==="none"&&t.add(27);const n=e.getOption(117);return n.showMethods||t.add(0),n.showFunctions||t.add(1),n.showConstructors||t.add(2),n.showFields||t.add(3),n.showVariables||t.add(4),n.showClasses||t.add(5),n.showStructs||t.add(6),n.showInterfaces||t.add(7),n.showModules||t.add(8),n.showProperties||t.add(9),n.showEvents||t.add(10),n.showOperators||t.add(11),n.showUnits||t.add(12),n.showValues||t.add(13),n.showConstants||t.add(14),n.showEnums||t.add(15),n.showEnumMembers||t.add(16),n.showKeywords||t.add(17),n.showWords||t.add(18),n.showColors||t.add(19),n.showFiles||t.add(20),n.showReferences||t.add(21),n.showColors||t.add(22),n.showFolders||t.add(23),n.showTypeParameters||t.add(24),n.showSnippets||t.add(27),n.showUsers||t.add(25),n.showIssues||t.add(26),{itemKind:t,showDeprecated:n.showDeprecated}}_onNewContext(e){if(this._context){if(e.lineNumber!==this._context.lineNumber){this.cancel();return}if(getLeadingWhitespace(e.leadingLineContent)!==getLeadingWhitespace(this._context.leadingLineContent)){this.cancel();return}if(e.column<this._context.column){e.leadingWord.word?this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0}):this.cancel();return}if(this._completionModel){if(e.leadingWord.word.length!==0&&e.leadingWord.startColumn>this._context.leadingWord.startColumn){if(LineContext.shouldAutoTrigger(this._editor)&&this._context){const i=this._completionModel.getItemsByProvider();this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerItemsToReuse:i}})}return}if(e.column>this._context.column&&this._completionModel.getIncompleteProvider().size>0&&e.leadingWord.word.length!==0){const t=new Map,i=new Set;for(const[n,r]of this._completionModel.getItemsByProvider())r.length>0&&r[0].container.incomplete?i.add(n):t.set(n,r);this.trigger({auto:this._context.triggerOptions.auto,triggerKind:2,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerFilter:i,providerItemsToReuse:t}})}else{const t=this._completionModel.lineContext;let i=!1;if(this._completionModel.lineContext={leadingLineContent:e.leadingLineContent,characterCountDelta:e.column-this._context.column},this._completionModel.items.length===0){const n=LineContext.shouldAutoTrigger(this._editor);if(!this._context){this.cancel();return}if(n&&this._context.leadingWord.endColumn<e.leadingWord.startColumn){this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0});return}if(this._context.triggerOptions.auto){this.cancel();return}else if(this._completionModel.lineContext=t,i=this._completionModel.items.length>0,i&&e.leadingWord.word.length===0){this.cancel();return}}this._onDidSuggest.fire({completionModel:this._completionModel,triggerOptions:e.triggerOptions,isFrozen:i})}}}}};SuggestModel=SuggestModel_1=__decorate$D([__param$D(1,IEditorWorkerService),__param$D(2,IClipboardService),__param$D(3,ITelemetryService),__param$D(4,ILogService),__param$D(5,IContextKeyService),__param$D(6,IConfigurationService),__param$D(7,ILanguageFeaturesService),__param$D(8,IEnvironmentService)],SuggestModel);class OvertypingCapturer{constructor(e,t){this._disposables=new DisposableStore,this._lastOvertyped=[],this._locked=!1,this._disposables.add(e.onWillType(()=>{if(this._locked||!e.hasModel())return;const i=e.getSelections(),n=i.length;let r=!1;for(let a=0;a<n;a++)if(!i[a].isEmpty()){r=!0;break}if(!r){this._lastOvertyped.length!==0&&(this._lastOvertyped.length=0);return}this._lastOvertyped=[];const s=e.getModel();for(let a=0;a<n;a++){const l=i[a];if(s.getValueLengthInRange(l)>OvertypingCapturer._maxSelectionLength)return;this._lastOvertyped[a]={value:s.getValueInRange(l),multiline:l.startLineNumber!==l.endLineNumber}}})),this._disposables.add(t.onDidTrigger(i=>{this._locked=!0})),this._disposables.add(t.onDidCancel(i=>{this._locked=!1}))}getLastOvertypedInfo(e){if(e>=0&&e<this._lastOvertyped.length)return this._lastOvertyped[e]}dispose(){this._disposables.dispose()}}OvertypingCapturer._maxSelectionLength=51200;var __decorate$C=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$C=function(o,e){return function(t,i){e(t,i,o)}};class StatusBarViewItem extends MenuEntryActionViewItem{updateLabel(){const e=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!e)return super.updateLabel();this.label&&(this.label.textContent=localize({},"{0} ({1})",this._action.label,StatusBarViewItem.symbolPrintEnter(e)))}static symbolPrintEnter(e){var t;return(t=e.getLabel())===null||t===void 0?void 0:t.replace(/\benter\b/gi,"⏎")}}let SuggestWidgetStatus=class{constructor(e,t,i,n,r){this._menuId=t,this._menuService=n,this._contextKeyService=r,this._menuDisposables=new DisposableStore,this.element=append$1(e,$$d(".suggest-status-bar"));const s=a=>a instanceof MenuItemAction?i.createInstance(StatusBarViewItem,a,void 0):void 0;this._leftActions=new ActionBar(this.element,{actionViewItemProvider:s}),this._rightActions=new ActionBar(this.element,{actionViewItemProvider:s}),this._leftActions.domNode.classList.add("left"),this._rightActions.domNode.classList.add("right")}dispose(){this._menuDisposables.dispose(),this._leftActions.dispose(),this._rightActions.dispose(),this.element.remove()}show(){const e=this._menuService.createMenu(this._menuId,this._contextKeyService),t=()=>{const i=[],n=[];for(const[r,s]of e.getActions())r==="left"?i.push(...s):n.push(...s);this._leftActions.clear(),this._leftActions.push(i),this._rightActions.clear(),this._rightActions.push(n)};this._menuDisposables.add(e.onDidChange(()=>t())),this._menuDisposables.add(e)}hide(){this._menuDisposables.clear()}};SuggestWidgetStatus=__decorate$C([__param$C(2,IInstantiationService),__param$C(3,IMenuService),__param$C(4,IContextKeyService)],SuggestWidgetStatus);var __decorate$B=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$B=function(o,e){return function(t,i){e(t,i,o)}};function canExpandCompletionItem(o){return!!o&&!!(o.completion.documentation||o.completion.detail&&o.completion.detail!==o.completion.label)}let SuggestDetailsWidget=class{constructor(e,t){this._editor=e,this._onDidClose=new Emitter$1,this.onDidClose=this._onDidClose.event,this._onDidChangeContents=new Emitter$1,this.onDidChangeContents=this._onDidChangeContents.event,this._disposables=new DisposableStore,this._renderDisposeable=new DisposableStore,this._borderWidth=1,this._size=new Dimension(330,0),this.domNode=$$d(".suggest-details"),this.domNode.classList.add("no-docs"),this._markdownRenderer=t.createInstance(MarkdownRenderer,{editor:e}),this._body=$$d(".body"),this._scrollbar=new DomScrollableElement(this._body,{alwaysConsumeMouseWheel:!0}),append$1(this.domNode,this._scrollbar.getDomNode()),this._disposables.add(this._scrollbar),this._header=append$1(this._body,$$d(".header")),this._close=append$1(this._header,$$d("span"+ThemeIcon.asCSSSelector(Codicon.close))),this._close.title=localize("details.close","Close"),this._type=append$1(this._header,$$d("p.type")),this._docs=append$1(this._body,$$d("p.docs")),this._configureFont(),this._disposables.add(this._editor.onDidChangeConfiguration(i=>{i.hasChanged(50)&&this._configureFont()}))}dispose(){this._disposables.dispose(),this._renderDisposeable.dispose()}_configureFont(){const e=this._editor.getOptions(),t=e.get(50),i=t.getMassagedFontFamily(),n=e.get(118)||t.fontSize,r=e.get(119)||t.lineHeight,s=t.fontWeight,a=`${n}px`,l=`${r}px`;this.domNode.style.fontSize=a,this.domNode.style.lineHeight=`${r/n}`,this.domNode.style.fontWeight=s,this.domNode.style.fontFeatureSettings=t.fontFeatureSettings,this._type.style.fontFamily=i,this._close.style.height=l,this._close.style.width=l}getLayoutInfo(){const e=this._editor.getOption(119)||this._editor.getOption(50).lineHeight,t=this._borderWidth,i=t*2;return{lineHeight:e,borderWidth:t,borderHeight:i,verticalPadding:22,horizontalPadding:14}}renderLoading(){this._type.textContent=localize("loading","Loading..."),this._docs.textContent="",this.domNode.classList.remove("no-docs","no-type"),this.layout(this.size.width,this.getLayoutInfo().lineHeight*2),this._onDidChangeContents.fire(this)}renderItem(e,t){var i,n;this._renderDisposeable.clear();let{detail:r,documentation:s}=e.completion;if(t){let a="";a+=`score: ${e.score[0]}
- `,a+=`prefix: ${(i=e.word)!==null&&i!==void 0?i:"(no prefix)"}
- `,a+=`word: ${e.completion.filterText?e.completion.filterText+" (filterText)":e.textLabel}
- `,a+=`distance: ${e.distance} (localityBonus-setting)
- `,a+=`index: ${e.idx}, based on ${e.completion.sortText&&`sortText: "${e.completion.sortText}"`||"label"}
- `,a+=`commit_chars: ${(n=e.completion.commitCharacters)===null||n===void 0?void 0:n.join("")}
- `,s=new MarkdownString().appendCodeblock("empty",a),r=`Provider: ${e.provider._debugDisplayName}`}if(!t&&!canExpandCompletionItem(e)){this.clearContents();return}if(this.domNode.classList.remove("no-docs","no-type"),r){const a=r.length>1e5?`${r.substr(0,1e5)}…`:r;this._type.textContent=a,this._type.title=a,show(this._type),this._type.classList.toggle("auto-wrap",!/\r?\n^\s+/gmi.test(a))}else clearNode(this._type),this._type.title="",hide(this._type),this.domNode.classList.add("no-type");if(clearNode(this._docs),typeof s=="string")this._docs.classList.remove("markdown-docs"),this._docs.textContent=s;else if(s){this._docs.classList.add("markdown-docs"),clearNode(this._docs);const a=this._markdownRenderer.render(s);this._docs.appendChild(a.element),this._renderDisposeable.add(a),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=a=>{a.preventDefault(),a.stopPropagation()},this._close.onclick=a=>{a.preventDefault(),a.stopPropagation(),this._onDidClose.fire()},this._body.scrollTop=0,this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}clearContents(){this.domNode.classList.add("no-docs"),this._type.textContent="",this._docs.textContent=""}get size(){return this._size}layout(e,t){const i=new Dimension(e,t);Dimension.equals(i,this._size)||(this._size=i,size(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}};SuggestDetailsWidget=__decorate$B([__param$B(1,IInstantiationService)],SuggestDetailsWidget);class SuggestDetailsOverlay{constructor(e,t){this.widget=e,this._editor=t,this._disposables=new DisposableStore,this._added=!1,this._preferAlignAtTop=!0,this._resizable=new ResizableHTMLElement,this._resizable.domNode.classList.add("suggest-details-container"),this._resizable.domNode.appendChild(e.domNode),this._resizable.enableSashes(!1,!0,!0,!1);let i,n,r=0,s=0;this._disposables.add(this._resizable.onDidWillResize(()=>{i=this._topLeft,n=this._resizable.size})),this._disposables.add(this._resizable.onDidResize(a=>{if(i&&n){this.widget.layout(a.dimension.width,a.dimension.height);let l=!1;a.west&&(s=n.width-a.dimension.width,l=!0),a.north&&(r=n.height-a.dimension.height,l=!0),l&&this._applyTopLeft({top:i.top+r,left:i.left+s})}a.done&&(i=void 0,n=void 0,r=0,s=0,this._userSize=a.dimension)})),this._disposables.add(this.widget.onDidChangeContents(()=>{var a;this._anchorBox&&this._placeAtAnchor(this._anchorBox,(a=this._userSize)!==null&&a!==void 0?a:this.widget.size,this._preferAlignAtTop)}))}dispose(){this._resizable.dispose(),this._disposables.dispose(),this.hide()}getId(){return"suggest.details"}getDomNode(){return this._resizable.domNode}getPosition(){return 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,t){var i;const n=e.getBoundingClientRect();this._anchorBox=n,this._preferAlignAtTop=t,this._placeAtAnchor(this._anchorBox,(i=this._userSize)!==null&&i!==void 0?i:this.widget.size,t)}_placeAtAnchor(e,t,i){var n;const r=getClientArea(this.getDomNode().ownerDocument.body),s=this.widget.getLayoutInfo(),a=new Dimension(220,2*s.lineHeight),l=e.top,d=function(){const S=r.width-(e.left+e.width+s.borderWidth+s.horizontalPadding),y=-s.borderWidth+e.left+e.width,E=new Dimension(S,r.height-e.top-s.borderHeight-s.verticalPadding),x=E.with(void 0,e.top+e.height-s.borderHeight-s.verticalPadding);return{top:l,left:y,fit:S-t.width,maxSizeTop:E,maxSizeBottom:x,minSize:a.with(Math.min(S,a.width))}}(),c=function(){const S=e.left-s.borderWidth-s.horizontalPadding,y=Math.max(s.horizontalPadding,e.left-t.width-s.borderWidth),E=new Dimension(S,r.height-e.top-s.borderHeight-s.verticalPadding),x=E.with(void 0,e.top+e.height-s.borderHeight-s.verticalPadding);return{top:l,left:y,fit:S-t.width,maxSizeTop:E,maxSizeBottom:x,minSize:a.with(Math.min(S,a.width))}}(),u=function(){const S=e.left,y=-s.borderWidth+e.top+e.height,E=new Dimension(e.width-s.borderHeight,r.height-e.top-e.height-s.verticalPadding);return{top:y,left:S,fit:E.height-t.height,maxSizeBottom:E,maxSizeTop:E,minSize:a.with(E.width)}}(),g=[d,c,u],f=(n=g.find(S=>S.fit>=0))!==null&&n!==void 0?n:g.sort((S,y)=>y.fit-S.fit)[0],p=e.top+e.height-s.borderHeight;let m,b=t.height;const _=Math.max(f.maxSizeTop.height,f.maxSizeBottom.height);b>_&&(b=_);let C;i?b<=f.maxSizeTop.height?(m=!0,C=f.maxSizeTop):(m=!1,C=f.maxSizeBottom):b<=f.maxSizeBottom.height?(m=!1,C=f.maxSizeBottom):(m=!0,C=f.maxSizeTop),this._applyTopLeft({left:f.left,top:m?f.top:p-b}),this.getDomNode().style.position="fixed",this._resizable.enableSashes(!m,f===d,m,f!==d),this._resizable.minSize=f.minSize,this._resizable.maxSize=C,this._resizable.layout(b,Math.min(C.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 FileKind;(function(o){o[o.FILE=0]="FILE",o[o.FOLDER=1]="FOLDER",o[o.ROOT_FOLDER=2]="ROOT_FOLDER"})(FileKind||(FileKind={}));const fileIconDirectoryRegex=/(?:\/|^)(?:([^\/]+)\/)?([^\/]+)$/;function getIconClasses(o,e,t,i){const n=i===FileKind.ROOT_FOLDER?["rootfolder-icon"]:i===FileKind.FOLDER?["folder-icon"]:["file-icon"];if(t){let r;if(t.scheme===Schemas.data)r=DataUri.parseMetaData(t).get(DataUri.META_DATA_LABEL);else{const s=t.path.match(fileIconDirectoryRegex);s?(r=cssEscape(s[2].toLowerCase()),s[1]&&n.push(`${cssEscape(s[1].toLowerCase())}-name-dir-icon`)):r=cssEscape(t.authority.toLowerCase())}if(i===FileKind.FOLDER)n.push(`${r}-name-folder-icon`);else{if(r){if(n.push(`${r}-name-file-icon`),n.push("name-file-icon"),r.length<=255){const a=r.split(".");for(let l=1;l<a.length;l++)n.push(`${a.slice(l).join(".")}-ext-file-icon`)}n.push("ext-file-icon")}const s=detectLanguageId(o,e,t);s&&n.push(`${cssEscape(s)}-lang-file-icon`)}}return n}function detectLanguageId(o,e,t){if(!t)return null;let i=null;if(t.scheme===Schemas.data){const r=DataUri.parseMetaData(t).get(DataUri.META_DATA_MIME);r&&(i=e.getLanguageIdByMimeType(r))}else{const n=o.getModel(t);n&&(i=n.getLanguageId())}return i&&i!==PLAINTEXT_LANGUAGE_ID?i:e.guessLanguageIdByFilepathOrFirstLine(t)}function cssEscape(o){return o.replace(/[\11\12\14\15\40]/g,"/")}var __decorate$A=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$A=function(o,e){return function(t,i){e(t,i,o)}},_a;function getAriaId(o){return`suggest-aria-id:${o}`}const suggestMoreInfoIcon=registerIcon("suggest-more-info",Codicon.chevronRight,localize("suggestMoreInfoIcon","Icon for more information in the suggest widget.")),_completionItemColor=new(_a=class{extract(e,t){if(e.textLabel.match(_a._regexStrict))return t[0]=e.textLabel,!0;if(e.completion.detail&&e.completion.detail.match(_a._regexStrict))return t[0]=e.completion.detail,!0;if(typeof e.completion.documentation=="string"){const i=_a._regexRelaxed.exec(e.completion.documentation);if(i&&(i.index===0||i.index+i[0].length===e.completion.documentation.length))return t[0]=i[0],!0}return!1}},_a._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*\))/,_a._regexStrict=new RegExp(`^${_a._regexRelaxed.source}$`,"i"),_a);let ItemRenderer=class{constructor(e,t,i,n){this._editor=e,this._modelService=t,this._languageService=i,this._themeService=n,this._onDidToggleDetails=new Emitter$1,this.onDidToggleDetails=this._onDidToggleDetails.event,this.templateId="suggestion"}dispose(){this._onDidToggleDetails.dispose()}renderTemplate(e){const t=new DisposableStore,i=e;i.classList.add("show-file-icons");const n=append$1(e,$$d(".icon")),r=append$1(n,$$d("span.colorspan")),s=append$1(e,$$d(".contents")),a=append$1(s,$$d(".main")),l=append$1(a,$$d(".icon-label.codicon")),d=append$1(a,$$d("span.left")),c=append$1(a,$$d("span.right")),u=new IconLabel(d,{supportHighlights:!0,supportIcons:!0});t.add(u);const g=append$1(d,$$d("span.signature-label")),f=append$1(d,$$d("span.qualifier-label")),p=append$1(c,$$d("span.details-label")),m=append$1(c,$$d("span.readMore"+ThemeIcon.asCSSSelector(suggestMoreInfoIcon)));m.title=localize("readMore","Read More");const b=()=>{const _=this._editor.getOptions(),C=_.get(50),S=C.getMassagedFontFamily(),y=C.fontFeatureSettings,E=_.get(118)||C.fontSize,x=_.get(119)||C.lineHeight,L=C.fontWeight,I=C.letterSpacing,D=`${E}px`,N=`${x}px`,F=`${I}px`;i.style.fontSize=D,i.style.fontWeight=L,i.style.letterSpacing=F,a.style.fontFamily=S,a.style.fontFeatureSettings=y,a.style.lineHeight=N,n.style.height=N,n.style.width=N,m.style.height=N,m.style.width=N};return b(),t.add(this._editor.onDidChangeConfiguration(_=>{(_.hasChanged(50)||_.hasChanged(118)||_.hasChanged(119))&&b()})),{root:i,left:d,right:c,icon:n,colorspan:r,iconLabel:u,iconContainer:l,parametersLabel:g,qualifierLabel:f,detailsLabel:p,readMore:m,disposables:t}}renderElement(e,t,i){const{completion:n}=e;i.root.id=getAriaId(t),i.colorspan.style.backgroundColor="";const r={labelEscapeNewLines:!0,matches:createMatches(e.score)},s=[];if(n.kind===19&&_completionItemColor.extract(e,s))i.icon.className="icon customcolor",i.iconContainer.className="icon hide",i.colorspan.style.backgroundColor=s[0];else if(n.kind===20&&this._themeService.getFileIconTheme().hasFileIcons){i.icon.className="icon hide",i.iconContainer.className="icon hide";const a=getIconClasses(this._modelService,this._languageService,URI.from({scheme:"fake",path:e.textLabel}),FileKind.FILE),l=getIconClasses(this._modelService,this._languageService,URI.from({scheme:"fake",path:n.detail}),FileKind.FILE);r.extraClasses=a.length>l.length?a:l}else n.kind===23&&this._themeService.getFileIconTheme().hasFolderIcons?(i.icon.className="icon hide",i.iconContainer.className="icon hide",r.extraClasses=[getIconClasses(this._modelService,this._languageService,URI.from({scheme:"fake",path:e.textLabel}),FileKind.FOLDER),getIconClasses(this._modelService,this._languageService,URI.from({scheme:"fake",path:n.detail}),FileKind.FOLDER)].flat()):(i.icon.className="icon hide",i.iconContainer.className="",i.iconContainer.classList.add("suggest-icon",...ThemeIcon.asClassNameArray(CompletionItemKinds.toIcon(n.kind))));n.tags&&n.tags.indexOf(1)>=0&&(r.extraClasses=(r.extraClasses||[]).concat(["deprecated"]),r.matches=[]),i.iconLabel.setLabel(e.textLabel,void 0,r),typeof n.label=="string"?(i.parametersLabel.textContent="",i.detailsLabel.textContent=stripNewLines(n.detail||""),i.root.classList.add("string-label")):(i.parametersLabel.textContent=stripNewLines(n.label.detail||""),i.detailsLabel.textContent=stripNewLines(n.label.description||""),i.root.classList.remove("string-label")),this._editor.getOption(117).showInlineDetails?show(i.detailsLabel):hide(i.detailsLabel),canExpandCompletionItem(e)?(i.right.classList.add("can-expand-details"),show(i.readMore),i.readMore.onmousedown=a=>{a.stopPropagation(),a.preventDefault()},i.readMore.onclick=a=>{a.stopPropagation(),a.preventDefault(),this._onDidToggleDetails.fire()}):(i.right.classList.remove("can-expand-details"),hide(i.readMore),i.readMore.onmousedown=null,i.readMore.onclick=null)}disposeTemplate(e){e.disposables.dispose()}};ItemRenderer=__decorate$A([__param$A(1,IModelService),__param$A(2,ILanguageService),__param$A(3,IThemeService)],ItemRenderer);function stripNewLines(o){return o.replace(/\r\n|\r|\n/g,"")}var __decorate$z=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$z=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$p=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},SuggestWidget_1;registerColor("editorSuggestWidget.background",{dark:editorWidgetBackground,light:editorWidgetBackground,hcDark:editorWidgetBackground,hcLight:editorWidgetBackground},localize("editorSuggestWidgetBackground","Background color of the suggest widget."));registerColor("editorSuggestWidget.border",{dark:editorWidgetBorder,light:editorWidgetBorder,hcDark:editorWidgetBorder,hcLight:editorWidgetBorder},localize("editorSuggestWidgetBorder","Border color of the suggest widget."));const editorSuggestWidgetForeground=registerColor("editorSuggestWidget.foreground",{dark:editorForeground,light:editorForeground,hcDark:editorForeground,hcLight:editorForeground},localize("editorSuggestWidgetForeground","Foreground color of the suggest widget."));registerColor("editorSuggestWidget.selectedForeground",{dark:quickInputListFocusForeground,light:quickInputListFocusForeground,hcDark:quickInputListFocusForeground,hcLight:quickInputListFocusForeground},localize("editorSuggestWidgetSelectedForeground","Foreground color of the selected entry in the suggest widget."));registerColor("editorSuggestWidget.selectedIconForeground",{dark:quickInputListFocusIconForeground,light:quickInputListFocusIconForeground,hcDark:quickInputListFocusIconForeground,hcLight:quickInputListFocusIconForeground},localize("editorSuggestWidgetSelectedIconForeground","Icon foreground color of the selected entry in the suggest widget."));const editorSuggestWidgetSelectedBackground=registerColor("editorSuggestWidget.selectedBackground",{dark:quickInputListFocusBackground,light:quickInputListFocusBackground,hcDark:quickInputListFocusBackground,hcLight:quickInputListFocusBackground},localize("editorSuggestWidgetSelectedBackground","Background color of the selected entry in the suggest widget."));registerColor("editorSuggestWidget.highlightForeground",{dark:listHighlightForeground,light:listHighlightForeground,hcDark:listHighlightForeground,hcLight:listHighlightForeground},localize("editorSuggestWidgetHighlightForeground","Color of the match highlights in the suggest widget."));registerColor("editorSuggestWidget.focusHighlightForeground",{dark:listFocusHighlightForeground,light:listFocusHighlightForeground,hcDark:listFocusHighlightForeground,hcLight:listFocusHighlightForeground},localize("editorSuggestWidgetFocusHighlightForeground","Color of the match highlights in the suggest widget when an item is focused."));registerColor("editorSuggestWidgetStatus.foreground",{dark:transparent(editorSuggestWidgetForeground,.5),light:transparent(editorSuggestWidgetForeground,.5),hcDark:transparent(editorSuggestWidgetForeground,.5),hcLight:transparent(editorSuggestWidgetForeground,.5)},localize("editorSuggestWidgetStatusForeground","Foreground color of the suggest widget status."));class PersistedWidgetSize{constructor(e,t){this._service=e,this._key=`suggestWidget.size/${t.getEditorType()}/${t instanceof EmbeddedCodeEditorWidget}`}restore(){var e;const t=(e=this._service.get(this._key,0))!==null&&e!==void 0?e:"";try{const i=JSON.parse(t);if(Dimension.is(i))return Dimension.lift(i)}catch{}}store(e){this._service.store(this._key,JSON.stringify(e),0,1)}reset(){this._service.remove(this._key,0)}}let SuggestWidget=SuggestWidget_1=class{constructor(e,t,i,n,r){this.editor=e,this._storageService=t,this._state=0,this._isAuto=!1,this._pendingLayout=new MutableDisposable,this._pendingShowDetails=new MutableDisposable,this._ignoreFocusEvents=!1,this._forceRenderingAbove=!1,this._explainMode=!1,this._showTimeout=new TimeoutTimer,this._disposables=new DisposableStore,this._onDidSelect=new PauseableEmitter,this._onDidFocus=new PauseableEmitter,this._onDidHide=new Emitter$1,this._onDidShow=new Emitter$1,this.onDidSelect=this._onDidSelect.event,this.onDidFocus=this._onDidFocus.event,this.onDidHide=this._onDidHide.event,this.onDidShow=this._onDidShow.event,this._onDetailsKeydown=new Emitter$1,this.onDetailsKeyDown=this._onDetailsKeydown.event,this.element=new ResizableHTMLElement,this.element.domNode.classList.add("editor-widget","suggest-widget"),this._contentWidget=new SuggestContentWidget(this,e),this._persistedSize=new PersistedWidgetSize(t,e);class s{constructor(f,p,m=!1,b=!1){this.persistedSize=f,this.currentSize=p,this.persistHeight=m,this.persistWidth=b}}let a;this._disposables.add(this.element.onDidWillResize(()=>{this._contentWidget.lockPreference(),a=new s(this._persistedSize.restore(),this.element.size)})),this._disposables.add(this.element.onDidResize(g=>{var f,p,m,b;if(this._resize(g.dimension.width,g.dimension.height),a&&(a.persistHeight=a.persistHeight||!!g.north||!!g.south,a.persistWidth=a.persistWidth||!!g.east||!!g.west),!!g.done){if(a){const{itemHeight:_,defaultSize:C}=this.getLayoutInfo(),S=Math.round(_/2);let{width:y,height:E}=this.element.size;(!a.persistHeight||Math.abs(a.currentSize.height-E)<=S)&&(E=(p=(f=a.persistedSize)===null||f===void 0?void 0:f.height)!==null&&p!==void 0?p:C.height),(!a.persistWidth||Math.abs(a.currentSize.width-y)<=S)&&(y=(b=(m=a.persistedSize)===null||m===void 0?void 0:m.width)!==null&&b!==void 0?b:C.width),this._persistedSize.store(new Dimension(y,E))}this._contentWidget.unlockPreference(),a=void 0}})),this._messageElement=append$1(this.element.domNode,$$d(".message")),this._listElement=append$1(this.element.domNode,$$d(".tree"));const l=this._disposables.add(r.createInstance(SuggestDetailsWidget,this.editor));l.onDidClose(this.toggleDetails,this,this._disposables),this._details=new SuggestDetailsOverlay(l,this.editor);const d=()=>this.element.domNode.classList.toggle("no-icons",!this.editor.getOption(117).showIcons);d();const c=r.createInstance(ItemRenderer,this.editor);this._disposables.add(c),this._disposables.add(c.onDidToggleDetails(()=>this.toggleDetails())),this._list=new List("SuggestWidget",this._listElement,{getHeight:g=>this.getLayoutInfo().itemHeight,getTemplateId:g=>"suggestion"},[c],{alwaysConsumeMouseWheel:!0,useShadows:!1,mouseSupport:!1,multipleSelectionSupport:!1,accessibilityProvider:{getRole:()=>"option",getWidgetAriaLabel:()=>localize("suggest","Suggest"),getWidgetRole:()=>"listbox",getAriaLabel:g=>{let f=g.textLabel;if(typeof g.completion.label!="string"){const{detail:_,description:C}=g.completion.label;_&&C?f=localize("label.full","{0} {1}, {2}",f,_,C):_?f=localize("label.detail","{0} {1}",f,_):C&&(f=localize("label.desc","{0}, {1}",f,C))}if(!g.isResolved||!this._isDetailsVisible())return f;const{documentation:p,detail:m}=g.completion,b=format("{0}{1}",m||"",p?typeof p=="string"?p:p.value:"");return localize("ariaCurrenttSuggestionReadDetails","{0}, docs: {1}",f,b)}}}),this._list.style(getListStyles({listInactiveFocusBackground:editorSuggestWidgetSelectedBackground,listInactiveFocusOutline:activeContrastBorder})),this._status=r.createInstance(SuggestWidgetStatus,this.element.domNode,suggestWidgetStatusbarMenu);const u=()=>this.element.domNode.classList.toggle("with-status-bar",this.editor.getOption(117).showStatusBar);u(),this._disposables.add(n.onDidColorThemeChange(g=>this._onThemeChange(g))),this._onThemeChange(n.getColorTheme()),this._disposables.add(this._list.onMouseDown(g=>this._onListMouseDownOrTap(g))),this._disposables.add(this._list.onTap(g=>this._onListMouseDownOrTap(g))),this._disposables.add(this._list.onDidChangeSelection(g=>this._onListSelection(g))),this._disposables.add(this._list.onDidChangeFocus(g=>this._onListFocus(g))),this._disposables.add(this.editor.onDidChangeCursorSelection(()=>this._onCursorSelectionChanged())),this._disposables.add(this.editor.onDidChangeConfiguration(g=>{g.hasChanged(117)&&(u(),d())})),this._ctxSuggestWidgetVisible=Context$1.Visible.bindTo(i),this._ctxSuggestWidgetDetailsVisible=Context$1.DetailsVisible.bindTo(i),this._ctxSuggestWidgetMultipleSuggestions=Context$1.MultipleSuggestions.bindTo(i),this._ctxSuggestWidgetHasFocusedSuggestion=Context$1.HasFocusedSuggestion.bindTo(i),this._disposables.add(addStandardDisposableListener(this._details.widget.domNode,"keydown",g=>{this._onDetailsKeydown.fire(g)})),this._disposables.add(this.editor.onMouseDown(g=>this._onEditorMouseDown(g)))}dispose(){var e;this._details.widget.dispose(),this._details.dispose(),this._list.dispose(),this._status.dispose(),this._disposables.dispose(),(e=this._loadingTimeout)===null||e===void 0||e.dispose(),this._pendingLayout.dispose(),this._pendingShowDetails.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(){this._state!==0&&this._contentWidget.layout()}_onListMouseDownOrTap(e){typeof e.element>"u"||typeof e.index>"u"||(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){this._details.widget.borderWidth=isHighContrast(e.type)?2:1}_onListFocus(e){var t;if(this._ignoreFocusEvents)return;if(!e.elements.length){this._currentSuggestionDetails&&(this._currentSuggestionDetails.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=void 0),this.editor.setAriaOptions({activeDescendant:void 0}),this._ctxSuggestWidgetHasFocusedSuggestion.set(!1);return}if(!this._completionModel)return;this._ctxSuggestWidgetHasFocusedSuggestion.set(!0);const i=e.elements[0],n=e.indexes[0];i!==this._focusedItem&&((t=this._currentSuggestionDetails)===null||t===void 0||t.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=i,this._list.reveal(n),this._currentSuggestionDetails=createCancelablePromise(r=>__awaiter$p(this,void 0,void 0,function*(){const s=disposableTimeout(()=>{this._isDetailsVisible()&&this.showDetails(!0)},250),a=r.onCancellationRequested(()=>s.dispose());try{return yield i.resolve(r)}finally{s.dispose(),a.dispose()}})),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:getAriaId(n)}))}).catch(onUnexpectedError)),this._onDidFocus.fire({item:i,index:n,model:this._completionModel})}_setState(e){if(this._state!==e)switch(this._state=e,this.element.domNode.classList.toggle("frozen",e===4),this.element.domNode.classList.remove("message"),e){case 0:hide(this._messageElement,this._listElement,this._status.element),this._details.hide(!0),this._status.hide(),this._contentWidget.hide(),this._ctxSuggestWidgetVisible.reset(),this._ctxSuggestWidgetMultipleSuggestions.reset(),this._ctxSuggestWidgetHasFocusedSuggestion.reset(),this._showTimeout.cancel(),this.element.domNode.classList.remove("visible"),this._list.splice(0,this._list.length),this._focusedItem=void 0,this._cappedHeight=void 0,this._explainMode=!1;break;case 1:this.element.domNode.classList.add("message"),this._messageElement.textContent=SuggestWidget_1.LOADING_MESSAGE,hide(this._listElement,this._status.element),show(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,status(SuggestWidget_1.LOADING_MESSAGE);break;case 2:this.element.domNode.classList.add("message"),this._messageElement.textContent=SuggestWidget_1.NO_SUGGESTIONS_MESSAGE,hide(this._listElement,this._status.element),show(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,status(SuggestWidget_1.NO_SUGGESTIONS_MESSAGE);break;case 3:hide(this._messageElement),show(this._listElement,this._status.element),this._show();break;case 4:hide(this._messageElement),show(this._listElement,this._status.element),this._show();break;case 5:hide(this._messageElement),show(this._listElement,this._status.element),this._details.show(),this._show();break}}_show(){this._status.show(),this._contentWidget.show(),this._layout(this._persistedSize.restore()),this._ctxSuggestWidgetVisible.set(!0),this._showTimeout.cancelAndSet(()=>{this.element.domNode.classList.add("visible"),this._onDidShow.fire(this)},100)}showTriggered(e,t){this._state===0&&(this._contentWidget.setPosition(this.editor.getPosition()),this._isAuto=!!e,this._isAuto||(this._loadingTimeout=disposableTimeout(()=>this._setState(1),t)))}showSuggestions(e,t,i,n,r){var s,a;if(this._contentWidget.setPosition(this.editor.getPosition()),(s=this._loadingTimeout)===null||s===void 0||s.dispose(),(a=this._currentSuggestionDetails)===null||a===void 0||a.cancel(),this._currentSuggestionDetails=void 0,this._completionModel!==e&&(this._completionModel=e),i&&this._state!==2&&this._state!==0){this._setState(4);return}const l=this._completionModel.items.length,d=l===0;if(this._ctxSuggestWidgetMultipleSuggestions.set(l>1),d){this._setState(n?0:2),this._completionModel=void 0;return}this._focusedItem=void 0,this._onDidFocus.pause(),this._onDidSelect.pause();try{this._list.splice(0,this._list.length,this._completionModel.items),this._setState(i?4:3),this._list.reveal(t,0),this._list.setFocus(r?[]:[t])}finally{this._onDidFocus.resume(),this._onDidSelect.resume()}this._pendingLayout.value=runAtThisOrScheduleAtNextAnimationFrame(()=>{this._pendingLayout.clear(),this._layout(this.element.size),this._details.widget.domNode.classList.remove("focused")})}focusSelected(){this._list.length>0&&this._list.setFocus([0])}selectNextPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageDown(),!0;case 1:return!this._isAuto;default:return this._list.focusNextPage(),!0}}selectNext(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusNext(1,!0),!0}}selectLast(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollBottom(),!0;case 1:return!this._isAuto;default:return this._list.focusLast(),!0}}selectPreviousPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageUp(),!0;case 1:return!this._isAuto;default:return this._list.focusPreviousPage(),!0}}selectPrevious(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusPrevious(1,!0),!1}}selectFirst(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollTop(),!0;case 1:return!this._isAuto;default:return this._list.focusFirst(),!0}}getFocusedItem(){if(this._state!==0&&this._state!==2&&this._state!==1&&this._completionModel&&this._list.getFocus().length>0)return{item:this._list.getFocusedElements()[0],index:this._list.getFocus()[0],model:this._completionModel}}toggleDetailsFocus(){this._state===5?(this._setState(3),this._details.widget.domNode.classList.remove("focused")):this._state===3&&this._isDetailsVisible()&&(this._setState(5),this._details.widget.domNode.classList.add("focused"))}toggleDetails(){this._isDetailsVisible()?(this._pendingShowDetails.clear(),this._ctxSuggestWidgetDetailsVisible.set(!1),this._setDetailsVisible(!1),this._details.hide(),this.element.domNode.classList.remove("shows-details")):(canExpandCompletionItem(this._list.getFocusedElements()[0])||this._explainMode)&&(this._state===3||this._state===5||this._state===4)&&(this._ctxSuggestWidgetDetailsVisible.set(!0),this._setDetailsVisible(!0),this.showDetails(!1))}showDetails(e){this._pendingShowDetails.value=runAtThisOrScheduleAtNextAnimationFrame(()=>{this._pendingShowDetails.clear(),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;this._pendingLayout.clear(),this._pendingShowDetails.clear(),(e=this._loadingTimeout)===null||e===void 0||e.dispose(),this._setState(0),this._onDidHide.fire(this),this.element.clearSashHoverState();const t=this._persistedSize.restore(),i=Math.ceil(this.getLayoutInfo().itemHeight*4.3);t&&t.height<i&&this._persistedSize.store(t.with(void 0,i))}isFrozen(){return this._state===4}_afterRender(e){if(e===null){this._isDetailsVisible()&&this._details.hide();return}this._state===2||this._state===1||(this._isDetailsVisible()&&this._details.show(),this._positionDetails())}_layout(e){var t,i,n;if(!this.editor.hasModel()||!this.editor.getDomNode())return;const r=getClientArea(this.element.domNode.ownerDocument.body),s=this.getLayoutInfo();e||(e=s.defaultSize);let a=e.height,l=e.width;if(this._status.element.style.height=`${s.itemHeight}px`,this._state===2||this._state===1)a=s.itemHeight+s.borderHeight,l=s.defaultSize.width/2,this.element.enableSashes(!1,!1,!1,!1),this.element.minSize=this.element.maxSize=new Dimension(l,a),this._contentWidget.setPreference(2);else{const d=r.width-s.borderHeight-2*s.horizontalPadding;l>d&&(l=d);const c=this._completionModel?this._completionModel.stats.pLabelLen*s.typicalHalfwidthCharacterWidth:l,u=s.statusBarHeight+this._list.contentHeight+s.borderHeight,g=s.itemHeight+s.statusBarHeight,f=getDomNodePagePosition(this.editor.getDomNode()),p=this.editor.getScrolledVisiblePosition(this.editor.getPosition()),m=f.top+p.top+p.height,b=Math.min(r.height-m-s.verticalPadding,u),_=f.top+p.top-s.verticalPadding,C=Math.min(_,u);let S=Math.min(Math.max(C,b)+s.borderHeight,u);a===((t=this._cappedHeight)===null||t===void 0?void 0:t.capped)&&(a=this._cappedHeight.wanted),a<g&&(a=g),a>S&&(a=S),a>b||this._forceRenderingAbove&&_>150?(this._contentWidget.setPreference(1),this.element.enableSashes(!0,!0,!1,!1),S=C):(this._contentWidget.setPreference(2),this.element.enableSashes(!1,!0,!0,!1),S=b),this.element.preferredSize=new Dimension(c,s.defaultSize.height),this.element.maxSize=new Dimension(d,S),this.element.minSize=new Dimension(220,g),this._cappedHeight=a===u?{wanted:(n=(i=this._cappedHeight)===null||i===void 0?void 0:i.wanted)!==null&&n!==void 0?n:e.height,capped:a}:void 0}this._resize(l,a)}_resize(e,t){const{width:i,height:n}=this.element.maxSize;e=Math.min(i,e),t=Math.min(n,t);const{statusBarHeight:r}=this.getLayoutInfo();this._list.layout(t-r,e),this._listElement.style.height=`${t-r}px`,this.element.layout(t,e),this._contentWidget.layout(),this._positionDetails()}_positionDetails(){var e;this._isDetailsVisible()&&this._details.placeAtAnchor(this.element.domNode,((e=this._contentWidget.getPosition())===null||e===void 0?void 0:e.preference[0])===2)}getLayoutInfo(){const e=this.editor.getOption(50),t=clamp(this.editor.getOption(119)||e.lineHeight,8,1e3),i=!this.editor.getOption(117).showStatusBar||this._state===2||this._state===1?0:t,n=this._details.widget.borderWidth,r=2*n;return{itemHeight:t,statusBarHeight:i,borderWidth:n,borderHeight:r,typicalHalfwidthCharacterWidth:e.typicalHalfwidthCharacterWidth,verticalPadding:22,horizontalPadding:14,defaultSize:new Dimension(430,i+12*t+r)}}_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}};SuggestWidget.LOADING_MESSAGE=localize("suggestWidget.loading","Loading...");SuggestWidget.NO_SUGGESTIONS_MESSAGE=localize("suggestWidget.noSuggestions","No suggestions.");SuggestWidget=SuggestWidget_1=__decorate$z([__param$z(1,IStorageService),__param$z(2,IContextKeyService),__param$z(3,IThemeService),__param$z(4,IInstantiationService)],SuggestWidget);class SuggestContentWidget{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?null:{position:this._position,preference:[this._preference]}}beforeRender(){const{height:e,width:t}=this._widget.element.size,{borderWidth:i,horizontalPadding:n}=this._widget.getLayoutInfo();return new Dimension(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}}var __decorate$y=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$y=function(o,e){return function(t,i){e(t,i,o)}},SuggestController_1;class LineSuffix{constructor(e,t){if(this._model=e,this._position=t,e.getLineMaxColumn(t.lineNumber)!==t.column){const n=e.getOffsetAt(t),r=e.getPositionAt(n+1);this._marker=e.deltaDecorations([],[{range:Range$2.fromPositions(t,r),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)}else return this._model.getLineMaxColumn(e.lineNumber)-e.column}}let SuggestController=SuggestController_1=class{static get(e){return e.getContribution(SuggestController_1.ID)}constructor(e,t,i,n,r,s,a){this._memoryService=t,this._commandService=i,this._contextKeyService=n,this._instantiationService=r,this._logService=s,this._telemetryService=a,this._lineSuffix=new MutableDisposable,this._toDispose=new DisposableStore,this._selectors=new PriorityRegistry(u=>u.priority),this._onWillInsertSuggestItem=new Emitter$1,this.onWillInsertSuggestItem=this._onWillInsertSuggestItem.event,this.editor=e,this.model=r.createInstance(SuggestModel,this.editor),this._selectors.register({priority:0,select:(u,g,f)=>this._memoryService.select(u,g,f)});const l=Context$1.InsertMode.bindTo(n);l.set(e.getOption(117).insertMode),this._toDispose.add(this.model.onDidTrigger(()=>l.set(e.getOption(117).insertMode))),this.widget=this._toDispose.add(new IdleValue(()=>{const u=this._instantiationService.createInstance(SuggestWidget,this.editor);this._toDispose.add(u),this._toDispose.add(u.onDidSelect(b=>this._insertSuggestion(b,0),this));const g=new CommitCharacterController(this.editor,u,this.model,b=>this._insertSuggestion(b,2));this._toDispose.add(g);const f=Context$1.MakesTextEdit.bindTo(this._contextKeyService),p=Context$1.HasInsertAndReplaceRange.bindTo(this._contextKeyService),m=Context$1.CanResolve.bindTo(this._contextKeyService);return this._toDispose.add(toDisposable(()=>{f.reset(),p.reset(),m.reset()})),this._toDispose.add(u.onDidFocus(({item:b})=>{const _=this.editor.getPosition(),C=b.editStart.column,S=_.column;let y=!0;this.editor.getOption(1)==="smart"&&this.model.state===2&&!b.completion.additionalTextEdits&&!(b.completion.insertTextRules&4)&&S-C===b.completion.insertText.length&&(y=this.editor.getModel().getValueInRange({startLineNumber:_.lineNumber,startColumn:C,endLineNumber:_.lineNumber,endColumn:S})!==b.completion.insertText),f.set(y),p.set(!Position$1.equals(b.editInsertEnd,b.editReplaceEnd)),m.set(!!b.provider.resolveCompletionItem||!!b.completion.documentation||b.completion.detail!==b.completion.label)})),this._toDispose.add(u.onDetailsKeyDown(b=>{if(b.toKeyCodeChord().equals(new KeyCodeChord(!0,!1,!1,!1,33))||isMacintosh&&b.toKeyCodeChord().equals(new KeyCodeChord(!1,!1,!1,!0,33))){b.stopPropagation();return}b.toKeyCodeChord().isModifierKey()||this.editor.focus()})),u})),this._overtypingCapturer=this._toDispose.add(new IdleValue(()=>this._toDispose.add(new OvertypingCapturer(this.editor,this.model)))),this._alternatives=this._toDispose.add(new IdleValue(()=>this._toDispose.add(new SuggestAlternatives(this.editor,this._contextKeyService)))),this._toDispose.add(r.createInstance(WordContextKey,e)),this._toDispose.add(this.model.onDidTrigger(u=>{this.widget.value.showTriggered(u.auto,u.shy?250:50),this._lineSuffix.value=new LineSuffix(this.editor.getModel(),u.position)})),this._toDispose.add(this.model.onDidSuggest(u=>{if(u.triggerOptions.shy)return;let g=-1;for(const p of this._selectors.itemsOrderedByPriorityDesc)if(g=p.select(this.editor.getModel(),this.editor.getPosition(),u.completionModel.items),g!==-1)break;g===-1&&(g=0);let f=!1;if(u.triggerOptions.auto){const p=this.editor.getOption(117);p.selectionMode==="never"||p.selectionMode==="always"?f=p.selectionMode==="never":p.selectionMode==="whenTriggerCharacter"?f=u.triggerOptions.triggerKind!==1:p.selectionMode==="whenQuickSuggestion"&&(f=u.triggerOptions.triggerKind===1&&!u.triggerOptions.refilter)}this.widget.value.showSuggestions(u.completionModel,g,u.isFrozen,u.triggerOptions.auto,f)})),this._toDispose.add(this.model.onDidCancel(u=>{u.retrigger||this.widget.value.hideWidget()})),this._toDispose.add(this.editor.onDidBlurEditorWidget(()=>{this.model.cancel(),this.model.clear()}));const d=Context$1.AcceptSuggestionsOnEnter.bindTo(n),c=()=>{const u=this.editor.getOption(1);d.set(u==="on"||u==="smart")};this._toDispose.add(this.editor.onDidChangeConfiguration(()=>c())),c()}dispose(){this._alternatives.dispose(),this._toDispose.dispose(),this.widget.dispose(),this.model.dispose(),this._lineSuffix.dispose(),this._onWillInsertSuggestItem.dispose()}_insertSuggestion(e,t){if(!e||!e.item){this._alternatives.value.reset(),this.model.cancel(),this.model.clear();return}if(!this.editor.hasModel())return;const i=SnippetController2.get(this.editor);if(!i)return;this._onWillInsertSuggestItem.fire({item:e.item});const n=this.editor.getModel(),r=n.getAlternativeVersionId(),{item:s}=e,a=[],l=new CancellationTokenSource$1;t&1||this.editor.pushUndoStop();const d=this.getOverwriteInfo(s,!!(t&8));this._memoryService.memorize(n,this.editor.getPosition(),s);const c=s.isResolved;let u=-1,g=-1;if(Array.isArray(s.completion.additionalTextEdits)){this.model.cancel();const p=StableEditorScrollState.capture(this.editor);this.editor.executeEdits("suggestController.additionalTextEdits.sync",s.completion.additionalTextEdits.map(m=>EditOperation.replaceMove(Range$2.lift(m.range),m.text))),p.restoreRelativeVerticalPositionOfCursor(this.editor)}else if(!c){const p=new StopWatch;let m;const b=n.onDidChangeContent(y=>{if(y.isFlush){l.cancel(),b.dispose();return}for(const E of y.changes){const x=Range$2.getEndPosition(E.range);(!m||Position$1.isBefore(x,m))&&(m=x)}}),_=t;t|=2;let C=!1;const S=this.editor.onWillType(()=>{S.dispose(),C=!0,_&2||this.editor.pushUndoStop()});a.push(s.resolve(l.token).then(()=>{if(!s.completion.additionalTextEdits||l.token.isCancellationRequested)return;if(m&&s.completion.additionalTextEdits.some(E=>Position$1.isBefore(m,Range$2.getStartPosition(E.range))))return!1;C&&this.editor.pushUndoStop();const y=StableEditorScrollState.capture(this.editor);return this.editor.executeEdits("suggestController.additionalTextEdits.async",s.completion.additionalTextEdits.map(E=>EditOperation.replaceMove(Range$2.lift(E.range),E.text))),y.restoreRelativeVerticalPositionOfCursor(this.editor),(C||!(_&2))&&this.editor.pushUndoStop(),!0}).then(y=>{this._logService.trace("[suggest] async resolving of edits DONE (ms, applied?)",p.elapsed(),y),g=y===!0?1:y===!1?0:-2}).finally(()=>{b.dispose(),S.dispose()}))}let{insertText:f}=s.completion;if(s.completion.insertTextRules&4||(f=SnippetParser.escape(f)),this.model.cancel(),i.insert(f,{overwriteBefore:d.overwriteBefore,overwriteAfter:d.overwriteAfter,undoStopBefore:!1,undoStopAfter:!1,adjustWhitespace:!(s.completion.insertTextRules&1),clipboardText:e.model.clipboardText,overtypingCapturer:this._overtypingCapturer.value}),t&2||this.editor.pushUndoStop(),s.completion.command)if(s.completion.command.id===TriggerSuggestAction.id)this.model.trigger({auto:!0,retrigger:!0});else{const p=new StopWatch;a.push(this._commandService.executeCommand(s.completion.command.id,...s.completion.command.arguments?[...s.completion.command.arguments]:[]).catch(m=>{s.completion.extensionId?onUnexpectedExternalError(m):onUnexpectedError(m)}).finally(()=>{u=p.elapsed()}))}t&4&&this._alternatives.value.set(e,p=>{for(l.cancel();n.canUndo();){r!==n.getAlternativeVersionId()&&n.undo(),this._insertSuggestion(p,3|(t&8?8:0));break}}),this._alertCompletionItem(s),Promise.all(a).finally(()=>{this._reportSuggestionAcceptedTelemetry(s,n,c,u,g),this.model.clear(),l.dispose()})}_reportSuggestionAcceptedTelemetry(e,t,i,n,r){var s,a,l;Math.floor(Math.random()*100)!==0&&this._telemetryService.publicLog2("suggest.acceptedSuggestion",{extensionId:(a=(s=e.extensionId)===null||s===void 0?void 0:s.value)!==null&&a!==void 0?a:"unknown",providerId:(l=e.provider._debugDisplayName)!==null&&l!==void 0?l:"unknown",kind:e.completion.kind,basenameHash:hash(basename(t.uri)).toString(16),languageId:t.getLanguageId(),fileExtension:extname(t.uri),resolveInfo:e.provider.resolveCompletionItem?i?1:0:-1,resolveDuration:e.resolveDuration,commandDuration:n,additionalEditsAsync:r})}getOverwriteInfo(e,t){assertType(this.editor.hasModel());let i=this.editor.getOption(117).insertMode==="replace";t&&(i=!i);const n=e.position.column-e.editStart.column,r=(i?e.editReplaceEnd.column:e.editInsertEnd.column)-e.position.column,s=this.editor.getPosition().column-e.position.column,a=this._lineSuffix.value?this._lineSuffix.value.delta(this.editor.getPosition()):0;return{overwriteBefore:n+s,overwriteAfter:r+a}}_alertCompletionItem(e){if(isNonEmptyArray(e.completion.additionalTextEdits)){const t=localize("aria.alert.snippet","Accepting '{0}' made {1} additional edits",e.textLabel,e.completion.additionalTextEdits.length);alert(t)}}triggerSuggest(e,t,i){this.editor.hasModel()&&(this.model.trigger({auto:t??!1,completionOptions:{providerFilter:e,kindFilter:i?new Set:void 0}}),this.editor.revealPosition(this.editor.getPosition(),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=r=>{if(r.completion.insertTextRules&4||r.completion.additionalTextEdits)return!0;const s=this.editor.getPosition(),a=r.editStart.column,l=s.column;return l-a!==r.completion.insertText.length?!0:this.editor.getModel().getValueInRange({startLineNumber:s.lineNumber,startColumn:a,endLineNumber:s.lineNumber,endColumn:l})!==r.completion.insertText};Event.once(this.model.onDidTrigger)(r=>{const s=[];Event.any(this.model.onDidTrigger,this.model.onDidCancel)(()=>{dispose(s),i()},void 0,s),this.model.onDidSuggest(({completionModel:a})=>{if(dispose(s),a.items.length===0){i();return}const l=this._memoryService.select(this.editor.getModel(),this.editor.getPosition(),a.items),d=a.items[l];if(!n(d)){i();return}this.editor.pushUndoStop(),this._insertSuggestion({index:l,item:d,model:a},7)},void 0,s)}),this.model.trigger({auto:!1,shy:!0}),this.editor.revealPosition(t,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()}focusSuggestion(){this.widget.value.focusSelected()}selectNextSuggestion(){this.widget.value.selectNext()}selectNextPageSuggestion(){this.widget.value.selectNextPage()}selectLastSuggestion(){this.widget.value.selectLast()}selectPrevSuggestion(){this.widget.value.selectPrevious()}selectPrevPageSuggestion(){this.widget.value.selectPreviousPage()}selectFirstSuggestion(){this.widget.value.selectFirst()}toggleSuggestionDetails(){this.widget.value.toggleDetails()}toggleExplainMode(){this.widget.value.toggleExplainMode()}toggleSuggestionFocus(){this.widget.value.toggleDetailsFocus()}resetWidgetSize(){this.widget.value.resetPersistedSize()}forceRenderingAbove(){this.widget.value.forceRenderingAbove()}stopForceRenderingAbove(){this.widget.isInitialized&&this.widget.value.stopForceRenderingAbove()}registerSelector(e){return this._selectors.register(e)}};SuggestController.ID="editor.contrib.suggestController";SuggestController=SuggestController_1=__decorate$y([__param$y(1,ISuggestMemoryService),__param$y(2,ICommandService),__param$y(3,IContextKeyService),__param$y(4,IInstantiationService),__param$y(5,ILogService),__param$y(6,ITelemetryService)],SuggestController);class PriorityRegistry{constructor(e){this.prioritySelector=e,this._items=new Array}register(e){if(this._items.indexOf(e)!==-1)throw new Error("Value is already registered");return this._items.push(e),this._items.sort((t,i)=>this.prioritySelector(i)-this.prioritySelector(t)),{dispose:()=>{const t=this._items.indexOf(e);t>=0&&this._items.splice(t,1)}}}get itemsOrderedByPriorityDesc(){return this._items}}class TriggerSuggestAction extends EditorAction{constructor(){super({id:TriggerSuggestAction.id,label:localize("suggest.trigger.label","Trigger Suggest"),alias:"Trigger Suggest",precondition:ContextKeyExpr.and(EditorContextKeys.writable,EditorContextKeys.hasCompletionItemProvider,Context$1.Visible.toNegated()),kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[521,2087]},weight:100}})}run(e,t,i){const n=SuggestController.get(t);if(!n)return;let r;i&&typeof i=="object"&&i.auto===!0&&(r=!0),n.triggerSuggest(void 0,r,void 0)}}TriggerSuggestAction.id="editor.action.triggerSuggest";registerEditorContribution(SuggestController.ID,SuggestController,2);registerEditorAction(TriggerSuggestAction);const weight$2=190,SuggestCommand=EditorCommand.bindToContribution(SuggestController.get);registerEditorCommand(new SuggestCommand({id:"acceptSelectedSuggestion",precondition:ContextKeyExpr.and(Context$1.Visible,Context$1.HasFocusedSuggestion),handler(o){o.acceptSelectedSuggestion(!0,!1)},kbOpts:[{primary:2,kbExpr:ContextKeyExpr.and(Context$1.Visible,EditorContextKeys.textInputFocus),weight:weight$2},{primary:3,kbExpr:ContextKeyExpr.and(Context$1.Visible,EditorContextKeys.textInputFocus,Context$1.AcceptSuggestionsOnEnter,Context$1.MakesTextEdit),weight:weight$2}],menuOpts:[{menuId:suggestWidgetStatusbarMenu,title:localize("accept.insert","Insert"),group:"left",order:1,when:Context$1.HasInsertAndReplaceRange.toNegated()},{menuId:suggestWidgetStatusbarMenu,title:localize("accept.insert","Insert"),group:"left",order:1,when:ContextKeyExpr.and(Context$1.HasInsertAndReplaceRange,Context$1.InsertMode.isEqualTo("insert"))},{menuId:suggestWidgetStatusbarMenu,title:localize("accept.replace","Replace"),group:"left",order:1,when:ContextKeyExpr.and(Context$1.HasInsertAndReplaceRange,Context$1.InsertMode.isEqualTo("replace"))}]}));registerEditorCommand(new SuggestCommand({id:"acceptAlternativeSelectedSuggestion",precondition:ContextKeyExpr.and(Context$1.Visible,EditorContextKeys.textInputFocus,Context$1.HasFocusedSuggestion),kbOpts:{weight:weight$2,kbExpr:EditorContextKeys.textInputFocus,primary:1027,secondary:[1026]},handler(o){o.acceptSelectedSuggestion(!1,!0)},menuOpts:[{menuId:suggestWidgetStatusbarMenu,group:"left",order:2,when:ContextKeyExpr.and(Context$1.HasInsertAndReplaceRange,Context$1.InsertMode.isEqualTo("insert")),title:localize("accept.replace","Replace")},{menuId:suggestWidgetStatusbarMenu,group:"left",order:2,when:ContextKeyExpr.and(Context$1.HasInsertAndReplaceRange,Context$1.InsertMode.isEqualTo("replace")),title:localize("accept.insert","Insert")}]}));CommandsRegistry.registerCommandAlias("acceptSelectedSuggestionOnEnter","acceptSelectedSuggestion");registerEditorCommand(new SuggestCommand({id:"hideSuggestWidget",precondition:Context$1.Visible,handler:o=>o.cancelSuggestWidget(),kbOpts:{weight:weight$2,kbExpr:EditorContextKeys.textInputFocus,primary:9,secondary:[1033]}}));registerEditorCommand(new SuggestCommand({id:"selectNextSuggestion",precondition:ContextKeyExpr.and(Context$1.Visible,ContextKeyExpr.or(Context$1.MultipleSuggestions,Context$1.HasFocusedSuggestion.negate())),handler:o=>o.selectNextSuggestion(),kbOpts:{weight:weight$2,kbExpr:EditorContextKeys.textInputFocus,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}}));registerEditorCommand(new SuggestCommand({id:"selectNextPageSuggestion",precondition:ContextKeyExpr.and(Context$1.Visible,ContextKeyExpr.or(Context$1.MultipleSuggestions,Context$1.HasFocusedSuggestion.negate())),handler:o=>o.selectNextPageSuggestion(),kbOpts:{weight:weight$2,kbExpr:EditorContextKeys.textInputFocus,primary:12,secondary:[2060]}}));registerEditorCommand(new SuggestCommand({id:"selectLastSuggestion",precondition:ContextKeyExpr.and(Context$1.Visible,ContextKeyExpr.or(Context$1.MultipleSuggestions,Context$1.HasFocusedSuggestion.negate())),handler:o=>o.selectLastSuggestion()}));registerEditorCommand(new SuggestCommand({id:"selectPrevSuggestion",precondition:ContextKeyExpr.and(Context$1.Visible,ContextKeyExpr.or(Context$1.MultipleSuggestions,Context$1.HasFocusedSuggestion.negate())),handler:o=>o.selectPrevSuggestion(),kbOpts:{weight:weight$2,kbExpr:EditorContextKeys.textInputFocus,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}}));registerEditorCommand(new SuggestCommand({id:"selectPrevPageSuggestion",precondition:ContextKeyExpr.and(Context$1.Visible,ContextKeyExpr.or(Context$1.MultipleSuggestions,Context$1.HasFocusedSuggestion.negate())),handler:o=>o.selectPrevPageSuggestion(),kbOpts:{weight:weight$2,kbExpr:EditorContextKeys.textInputFocus,primary:11,secondary:[2059]}}));registerEditorCommand(new SuggestCommand({id:"selectFirstSuggestion",precondition:ContextKeyExpr.and(Context$1.Visible,ContextKeyExpr.or(Context$1.MultipleSuggestions,Context$1.HasFocusedSuggestion.negate())),handler:o=>o.selectFirstSuggestion()}));registerEditorCommand(new SuggestCommand({id:"focusSuggestion",precondition:ContextKeyExpr.and(Context$1.Visible,Context$1.HasFocusedSuggestion.negate()),handler:o=>o.focusSuggestion(),kbOpts:{weight:weight$2,kbExpr:EditorContextKeys.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}}}));registerEditorCommand(new SuggestCommand({id:"focusAndAcceptSuggestion",precondition:ContextKeyExpr.and(Context$1.Visible,Context$1.HasFocusedSuggestion.negate()),handler:o=>{o.focusSuggestion(),o.acceptSelectedSuggestion(!0,!1)}}));registerEditorCommand(new SuggestCommand({id:"toggleSuggestionDetails",precondition:ContextKeyExpr.and(Context$1.Visible,Context$1.HasFocusedSuggestion),handler:o=>o.toggleSuggestionDetails(),kbOpts:{weight:weight$2,kbExpr:EditorContextKeys.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}},menuOpts:[{menuId:suggestWidgetStatusbarMenu,group:"right",order:1,when:ContextKeyExpr.and(Context$1.DetailsVisible,Context$1.CanResolve),title:localize("detail.more","show less")},{menuId:suggestWidgetStatusbarMenu,group:"right",order:1,when:ContextKeyExpr.and(Context$1.DetailsVisible.toNegated(),Context$1.CanResolve),title:localize("detail.less","show more")}]}));registerEditorCommand(new SuggestCommand({id:"toggleExplainMode",precondition:Context$1.Visible,handler:o=>o.toggleExplainMode(),kbOpts:{weight:100,primary:2138}}));registerEditorCommand(new SuggestCommand({id:"toggleSuggestionFocus",precondition:Context$1.Visible,handler:o=>o.toggleSuggestionFocus(),kbOpts:{weight:weight$2,kbExpr:EditorContextKeys.textInputFocus,primary:2570,mac:{primary:778}}}));registerEditorCommand(new SuggestCommand({id:"insertBestCompletion",precondition:ContextKeyExpr.and(EditorContextKeys.textInputFocus,ContextKeyExpr.equals("config.editor.tabCompletion","on"),WordContextKey.AtEnd,Context$1.Visible.toNegated(),SuggestAlternatives.OtherSuggestions.toNegated(),SnippetController2.InSnippetMode.toNegated()),handler:(o,e)=>{o.triggerSuggestAndAcceptBest(isObject(e)?Object.assign({fallback:"tab"},e):{fallback:"tab"})},kbOpts:{weight:weight$2,primary:2}}));registerEditorCommand(new SuggestCommand({id:"insertNextSuggestion",precondition:ContextKeyExpr.and(EditorContextKeys.textInputFocus,ContextKeyExpr.equals("config.editor.tabCompletion","on"),SuggestAlternatives.OtherSuggestions,Context$1.Visible.toNegated(),SnippetController2.InSnippetMode.toNegated()),handler:o=>o.acceptNextSuggestion(),kbOpts:{weight:weight$2,kbExpr:EditorContextKeys.textInputFocus,primary:2}}));registerEditorCommand(new SuggestCommand({id:"insertPrevSuggestion",precondition:ContextKeyExpr.and(EditorContextKeys.textInputFocus,ContextKeyExpr.equals("config.editor.tabCompletion","on"),SuggestAlternatives.OtherSuggestions,Context$1.Visible.toNegated(),SnippetController2.InSnippetMode.toNegated()),handler:o=>o.acceptPrevSuggestion(),kbOpts:{weight:weight$2,kbExpr:EditorContextKeys.textInputFocus,primary:1026}}));registerEditorAction(class extends EditorAction{constructor(){super({id:"editor.action.resetSuggestSize",label:localize("suggest.reset.label","Reset Suggest Widget Size"),alias:"Reset Suggest Widget Size",precondition:void 0})}run(o,e){var t;(t=SuggestController.get(e))===null||t===void 0||t.resetWidgetSize()}});class SuggestWidgetAdaptor extends Disposable{get selectedItem(){return this._selectedItem}constructor(e,t,i,n){super(),this.editor=e,this.suggestControllerPreselector=t,this.checkModelVersion=i,this.onWillAccept=n,this.isSuggestWidgetVisible=!1,this.isShiftKeyPressed=!1,this._isActive=!1,this._currentSuggestItemInfo=void 0,this._selectedItem=observableValue(this,void 0),this._register(e.onKeyDown(s=>{s.shiftKey&&!this.isShiftKeyPressed&&(this.isShiftKeyPressed=!0,this.update(this._isActive))})),this._register(e.onKeyUp(s=>{s.shiftKey&&this.isShiftKeyPressed&&(this.isShiftKeyPressed=!1,this.update(this._isActive))}));const r=SuggestController.get(this.editor);if(r){this._register(r.registerSelector({priority:100,select:(l,d,c)=>{var u;transaction(_=>this.checkModelVersion(_));const g=this.editor.getModel();if(!g)return-1;const f=(u=this.suggestControllerPreselector())===null||u===void 0?void 0:u.removeCommonPrefix(g);if(!f)return-1;const p=Position$1.lift(d),m=c.map((_,C)=>{const y=SuggestItemInfo.fromSuggestion(r,g,p,_,this.isShiftKeyPressed).toSingleTextEdit().removeCommonPrefix(g),E=f.augments(y);return{index:C,valid:E,prefixLength:y.text.length,suggestItem:_}}).filter(_=>_&&_.valid&&_.prefixLength>0),b=findFirstMaxBy(m,compareBy(_=>_.prefixLength,numberComparator));return b?b.index:-1}}));let s=!1;const a=()=>{s||(s=!0,this._register(r.widget.value.onDidShow(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)})),this._register(r.widget.value.onDidHide(()=>{this.isSuggestWidgetVisible=!1,this.update(!1)})),this._register(r.widget.value.onDidFocus(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)})))};this._register(Event.once(r.model.onDidTrigger)(l=>{a()})),this._register(r.onWillInsertSuggestItem(l=>{const d=this.editor.getPosition(),c=this.editor.getModel();if(!d||!c)return;const u=SuggestItemInfo.fromSuggestion(r,c,d,l.item,this.isShiftKeyPressed);this.onWillAccept(u)}))}this.update(this._isActive)}update(e){const t=this.getSuggestItemInfo();(this._isActive!==e||!suggestItemInfoEquals(this._currentSuggestItemInfo,t))&&(this._isActive=e,this._currentSuggestItemInfo=t,transaction(i=>{this.checkModelVersion(i),this._selectedItem.set(this._isActive?this._currentSuggestItemInfo:void 0,i)}))}getSuggestItemInfo(){const e=SuggestController.get(this.editor);if(!e||!this.isSuggestWidgetVisible)return;const t=e.widget.value.getFocusedItem(),i=this.editor.getPosition(),n=this.editor.getModel();if(!(!t||!i||!n))return SuggestItemInfo.fromSuggestion(e,n,i,t.item,this.isShiftKeyPressed)}stopForceRenderingAbove(){const e=SuggestController.get(this.editor);e==null||e.stopForceRenderingAbove()}forceRenderingAbove(){const e=SuggestController.get(this.editor);e==null||e.forceRenderingAbove()}}class SuggestItemInfo{static fromSuggestion(e,t,i,n,r){let{insertText:s}=n.completion,a=!1;if(n.completion.insertTextRules&4){const d=new SnippetParser().parse(s);d.children.length<100&&SnippetSession.adjustWhitespace(t,i,!0,d),s=d.toString(),a=!0}const l=e.getOverwriteInfo(n,r);return new SuggestItemInfo(Range$2.fromPositions(i.delta(0,-l.overwriteBefore),i.delta(0,Math.max(l.overwriteAfter,0))),s,n.completion.kind,a)}constructor(e,t,i,n){this.range=e,this.insertText=t,this.completionItemKind=i,this.isSnippetText=n}equals(e){return this.range.equalsRange(e.range)&&this.insertText===e.insertText&&this.completionItemKind===e.completionItemKind&&this.isSnippetText===e.isSnippetText}toSelectedSuggestionInfo(){return new SelectedSuggestionInfo(this.range,this.insertText,this.completionItemKind,this.isSnippetText)}toSingleTextEdit(){return new SingleTextEdit(this.range,this.insertText)}}function suggestItemInfoEquals(o,e){return o===e?!0:!o||!e?!1:o.equals(e)}var __decorate$x=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$x=function(o,e){return function(t,i){e(t,i,o)}},InlineCompletionsController_1;let InlineCompletionsController=InlineCompletionsController_1=class extends Disposable{static get(e){return e.getContribution(InlineCompletionsController_1.ID)}constructor(e,t,i,n,r,s,a,l,d){super(),this.editor=e,this.instantiationService=t,this.contextKeyService=i,this.configurationService=n,this.commandService=r,this.debounceService=s,this.languageFeaturesService=a,this.audioCueService=l,this._keybindingService=d,this.model=disposableObservableValue("inlineCompletionModel",void 0),this.textModelVersionId=observableValue(this,-1),this.cursorPosition=observableValue(this,new Position$1(1,1)),this.suggestWidgetAdaptor=this._register(new SuggestWidgetAdaptor(this.editor,()=>{var g,f;return(f=(g=this.model.get())===null||g===void 0?void 0:g.selectedInlineCompletion.get())===null||f===void 0?void 0:f.toSingleTextEdit(void 0)},g=>this.updateObservables(g,VersionIdChangeReason.Other),g=>{transaction(f=>{var p;this.updateObservables(f,VersionIdChangeReason.Other),(p=this.model.get())===null||p===void 0||p.handleSuggestAccepted(g)})})),this._enabled=observableFromEvent(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(62).enabled),this.ghostTextWidget=this._register(this.instantiationService.createInstance(GhostTextWidget,this.editor,{ghostText:this.model.map((g,f)=>g==null?void 0:g.ghostText.read(f)),minReservedLineCount:constObservable(0),targetTextModel:this.model.map(g=>g==null?void 0:g.textModel)})),this._debounceValue=this.debounceService.for(this.languageFeaturesService.inlineCompletionsProvider,"InlineCompletionsDebounce",{min:50,max:50}),this._register(new InlineCompletionContextKeys(this.contextKeyService,this.model)),this._register(Event.runAndSubscribe(e.onDidChangeModel,()=>transaction(g=>{this.model.set(void 0,g),this.updateObservables(g,VersionIdChangeReason.Other);const f=e.getModel();if(f){const p=t.createInstance(InlineCompletionsModel,f,this.suggestWidgetAdaptor.selectedItem,this.cursorPosition,this.textModelVersionId,this._debounceValue,observableFromEvent(e.onDidChangeConfiguration,()=>e.getOption(117).preview),observableFromEvent(e.onDidChangeConfiguration,()=>e.getOption(117).previewMode),observableFromEvent(e.onDidChangeConfiguration,()=>e.getOption(62).mode),this._enabled);this.model.set(p,g)}})));const c=g=>{var f;return g.isUndoing?VersionIdChangeReason.Undo:g.isRedoing?VersionIdChangeReason.Redo:!((f=this.model.get())===null||f===void 0)&&f.isAcceptingPartially?VersionIdChangeReason.AcceptWord:VersionIdChangeReason.Other};this._register(e.onDidChangeModelContent(g=>transaction(f=>this.updateObservables(f,c(g))))),this._register(e.onDidChangeCursorPosition(g=>transaction(f=>{var p;this.updateObservables(f,VersionIdChangeReason.Other),(g.reason===3||g.source==="api")&&((p=this.model.get())===null||p===void 0||p.stop(f))}))),this._register(e.onDidType(()=>transaction(g=>{var f;this.updateObservables(g,VersionIdChangeReason.Other),this._enabled.get()&&((f=this.model.get())===null||f===void 0||f.trigger(g))}))),this._register(this.commandService.onDidExecuteCommand(g=>{new Set([CoreEditingCommands.Tab.id,CoreEditingCommands.DeleteLeft.id,CoreEditingCommands.DeleteRight.id,inlineSuggestCommitId,"acceptSelectedSuggestion"]).has(g.commandId)&&e.hasTextFocus()&&this._enabled.get()&&transaction(p=>{var m;(m=this.model.get())===null||m===void 0||m.trigger(p)})})),this._register(this.editor.onDidBlurEditorWidget(()=>{this.contextKeyService.getContextKeyValue("accessibleViewIsShown")||this.configurationService.getValue("editor.inlineSuggest.keepOnBlur")||e.getOption(62).keepOnBlur||InlineSuggestionHintsContentWidget.dropDownVisible||transaction(g=>{var f;(f=this.model.get())===null||f===void 0||f.stop(g)})})),this._register(autorun(g=>{var f;const p=(f=this.model.read(g))===null||f===void 0?void 0:f.state.read(g);p!=null&&p.suggestItem?p.ghostText.lineCount>=2&&this.suggestWidgetAdaptor.forceRenderingAbove():this.suggestWidgetAdaptor.stopForceRenderingAbove()})),this._register(toDisposable(()=>{this.suggestWidgetAdaptor.stopForceRenderingAbove()}));let u;this._register(autorun(g=>{const f=this.model.read(g),p=f==null?void 0:f.state.read(g);if(!f||!p||!p.inlineCompletion){u=void 0;return}if(p.inlineCompletion.semanticId!==u){u=p.inlineCompletion.semanticId;const m=f.textModel.getLineContent(p.ghostText.lineNumber);this.audioCueService.playAudioCue(AudioCue.inlineSuggestion).then(()=>{this.editor.getOption(8)&&this.provideScreenReaderUpdate(p.ghostText.renderForScreenReader(m))})}})),this._register(new InlineCompletionsHintsWidget(this.editor,this.model,this.instantiationService)),this._register(this.configurationService.onDidChangeConfiguration(g=>{g.affectsConfiguration("accessibility.verbosity.inlineCompletions")&&this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this.configurationService.getValue("accessibility.verbosity.inlineCompletions")})})),this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this.configurationService.getValue("accessibility.verbosity.inlineCompletions")})}provideScreenReaderUpdate(e){const t=this.contextKeyService.getContextKeyValue("accessibleViewIsShown"),i=this._keybindingService.lookupKeybinding("editor.action.accessibleView");let n;!t&&i&&this.editor.getOption(147)&&(n=localize("showAccessibleViewHint","Inspect this in the accessible view ({0})",i.getAriaLabel())),alert(n?e+", "+n:e)}updateObservables(e,t){var i,n;const r=this.editor.getModel();this.textModelVersionId.set((i=r==null?void 0:r.getVersionId())!==null&&i!==void 0?i:-1,e,t),this.cursorPosition.set((n=this.editor.getPosition())!==null&&n!==void 0?n:new Position$1(1,1),e)}shouldShowHoverAt(e){var t;const i=(t=this.model.get())===null||t===void 0?void 0:t.ghostText.get();return i?i.parts.some(n=>e.containsPosition(new Position$1(i.lineNumber,n.column))):!1}shouldShowHoverAtViewZone(e){return this.ghostTextWidget.ownsViewZone(e)}};InlineCompletionsController.ID="editor.contrib.inlineCompletionsController";InlineCompletionsController=InlineCompletionsController_1=__decorate$x([__param$x(1,IInstantiationService),__param$x(2,IContextKeyService),__param$x(3,IConfigurationService),__param$x(4,ICommandService),__param$x(5,ILanguageFeatureDebounceService),__param$x(6,ILanguageFeaturesService),__param$x(7,IAudioCueService),__param$x(8,IKeybindingService)],InlineCompletionsController);var __awaiter$o=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};class ShowNextInlineSuggestionAction extends EditorAction{constructor(){super({id:ShowNextInlineSuggestionAction.ID,label:localize("action.inlineSuggest.showNext","Show Next Inline Suggestion"),alias:"Show Next Inline Suggestion",precondition:ContextKeyExpr.and(EditorContextKeys.writable,InlineCompletionContextKeys.inlineSuggestionVisible),kbOpts:{weight:100,primary:606}})}run(e,t){var i;return __awaiter$o(this,void 0,void 0,function*(){const n=InlineCompletionsController.get(t);(i=n==null?void 0:n.model.get())===null||i===void 0||i.next()})}}ShowNextInlineSuggestionAction.ID=showNextInlineSuggestionActionId;class ShowPreviousInlineSuggestionAction extends EditorAction{constructor(){super({id:ShowPreviousInlineSuggestionAction.ID,label:localize("action.inlineSuggest.showPrevious","Show Previous Inline Suggestion"),alias:"Show Previous Inline Suggestion",precondition:ContextKeyExpr.and(EditorContextKeys.writable,InlineCompletionContextKeys.inlineSuggestionVisible),kbOpts:{weight:100,primary:604}})}run(e,t){var i;return __awaiter$o(this,void 0,void 0,function*(){const n=InlineCompletionsController.get(t);(i=n==null?void 0:n.model.get())===null||i===void 0||i.previous()})}}ShowPreviousInlineSuggestionAction.ID=showPreviousInlineSuggestionActionId;class TriggerInlineSuggestionAction extends EditorAction{constructor(){super({id:"editor.action.inlineSuggest.trigger",label:localize("action.inlineSuggest.trigger","Trigger Inline Suggestion"),alias:"Trigger Inline Suggestion",precondition:EditorContextKeys.writable})}run(e,t){var i;return __awaiter$o(this,void 0,void 0,function*(){const n=InlineCompletionsController.get(t);(i=n==null?void 0:n.model.get())===null||i===void 0||i.triggerExplicitly()})}}class AcceptNextWordOfInlineCompletion extends EditorAction{constructor(){super({id:"editor.action.inlineSuggest.acceptNextWord",label:localize("action.inlineSuggest.acceptNextWord","Accept Next Word Of Inline Suggestion"),alias:"Accept Next Word Of Inline Suggestion",precondition:ContextKeyExpr.and(EditorContextKeys.writable,InlineCompletionContextKeys.inlineSuggestionVisible),kbOpts:{weight:101,primary:2065,kbExpr:ContextKeyExpr.and(EditorContextKeys.writable,InlineCompletionContextKeys.inlineSuggestionVisible)},menuOpts:[{menuId:MenuId.InlineSuggestionToolbar,title:localize("acceptWord","Accept Word"),group:"primary",order:2}]})}run(e,t){var i;return __awaiter$o(this,void 0,void 0,function*(){const n=InlineCompletionsController.get(t);yield(i=n==null?void 0:n.model.get())===null||i===void 0?void 0:i.acceptNextWord(n.editor)})}}class AcceptNextLineOfInlineCompletion extends EditorAction{constructor(){super({id:"editor.action.inlineSuggest.acceptNextLine",label:localize("action.inlineSuggest.acceptNextLine","Accept Next Line Of Inline Suggestion"),alias:"Accept Next Line Of Inline Suggestion",precondition:ContextKeyExpr.and(EditorContextKeys.writable,InlineCompletionContextKeys.inlineSuggestionVisible),kbOpts:{weight:101},menuOpts:[{menuId:MenuId.InlineSuggestionToolbar,title:localize("acceptLine","Accept Line"),group:"secondary",order:2}]})}run(e,t){var i;return __awaiter$o(this,void 0,void 0,function*(){const n=InlineCompletionsController.get(t);yield(i=n==null?void 0:n.model.get())===null||i===void 0?void 0:i.acceptNextLine(n.editor)})}}class AcceptInlineCompletion extends EditorAction{constructor(){super({id:inlineSuggestCommitId,label:localize("action.inlineSuggest.accept","Accept Inline Suggestion"),alias:"Accept Inline Suggestion",precondition:InlineCompletionContextKeys.inlineSuggestionVisible,menuOpts:[{menuId:MenuId.InlineSuggestionToolbar,title:localize("accept","Accept"),group:"primary",order:1}],kbOpts:{primary:2,weight:200,kbExpr:ContextKeyExpr.and(InlineCompletionContextKeys.inlineSuggestionVisible,EditorContextKeys.tabMovesFocus.toNegated(),InlineCompletionContextKeys.inlineSuggestionHasIndentationLessThanTabSize,Context$1.Visible.toNegated(),EditorContextKeys.hoverFocused.toNegated())}})}run(e,t){var i;return __awaiter$o(this,void 0,void 0,function*(){const n=InlineCompletionsController.get(t);n&&((i=n.model.get())===null||i===void 0||i.accept(n.editor),n.editor.focus())})}}class HideInlineCompletion extends EditorAction{constructor(){super({id:HideInlineCompletion.ID,label:localize("action.inlineSuggest.hide","Hide Inline Suggestion"),alias:"Hide Inline Suggestion",precondition:InlineCompletionContextKeys.inlineSuggestionVisible,kbOpts:{weight:100,primary:9}})}run(e,t){return __awaiter$o(this,void 0,void 0,function*(){const i=InlineCompletionsController.get(t);transaction(n=>{var r;(r=i==null?void 0:i.model.get())===null||r===void 0||r.stop(n)})})}}HideInlineCompletion.ID="editor.action.inlineSuggest.hide";class ToggleAlwaysShowInlineSuggestionToolbar extends Action2{constructor(){super({id:ToggleAlwaysShowInlineSuggestionToolbar.ID,title:localize("action.inlineSuggest.alwaysShowToolbar","Always Show Toolbar"),f1:!1,precondition:void 0,menu:[{id:MenuId.InlineSuggestionToolbar,group:"secondary",order:10}],toggled:ContextKeyExpr.equals("config.editor.inlineSuggest.showToolbar","always")})}run(e,t){return __awaiter$o(this,void 0,void 0,function*(){const i=e.get(IConfigurationService),r=i.getValue("editor.inlineSuggest.showToolbar")==="always"?"onHover":"always";i.updateValue("editor.inlineSuggest.showToolbar",r)})}}ToggleAlwaysShowInlineSuggestionToolbar.ID="editor.action.inlineSuggest.toggleAlwaysShowToolbar";var __decorate$w=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$w=function(o,e){return function(t,i){e(t,i,o)}};class InlineCompletionsHover{constructor(e,t,i){this.owner=e,this.range=t,this.controller=i}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}let InlineCompletionsHoverParticipant=class{constructor(e,t,i,n,r,s){this._editor=e,this._languageService=t,this._openerService=i,this.accessibilityService=n,this._instantiationService=r,this._telemetryService=s,this.hoverOrdinal=4}suggestHoverAnchor(e){const t=InlineCompletionsController.get(this._editor);if(!t)return null;const i=e.target;if(i.type===8){const n=i.detail;if(t.shouldShowHoverAtViewZone(n.viewZoneId))return new HoverForeignElementAnchor(1e3,this,Range$2.fromPositions(this._editor.getModel().validatePosition(n.positionBefore||n.position)),e.event.posx,e.event.posy,!1)}return i.type===7&&t.shouldShowHoverAt(i.range)?new HoverForeignElementAnchor(1e3,this,i.range,e.event.posx,e.event.posy,!1):i.type===6&&i.detail.mightBeForeignElement&&t.shouldShowHoverAt(i.range)?new HoverForeignElementAnchor(1e3,this,i.range,e.event.posx,e.event.posy,!1):null}computeSync(e,t){if(this._editor.getOption(62).showToolbar==="always")return[];const i=InlineCompletionsController.get(this._editor);return i&&i.shouldShowHoverAt(e.range)?[new InlineCompletionsHover(this,e.range,i)]:[]}renderHoverParts(e,t){const i=new DisposableStore,n=t[0];this._telemetryService.publicLog2("inlineCompletionHover.shown"),this.accessibilityService.isScreenReaderOptimized()&&!this._editor.getOption(8)&&this.renderScreenReaderText(e,n,i);const r=n.controller.model.get(),s=this._instantiationService.createInstance(InlineSuggestionHintsContentWidget,this._editor,!1,constObservable(null),r.selectedInlineCompletionIndex,r.inlineCompletionsCount,r.selectedInlineCompletion.map(a=>{var l;return(l=a==null?void 0:a.inlineCompletion.source.inlineCompletions.commands)!==null&&l!==void 0?l:[]}));return e.fragment.appendChild(s.getDomNode()),r.triggerExplicitly(),i.add(s),i}renderScreenReaderText(e,t,i){const n=$$d,r=n("div.hover-row.markdown-hover"),s=append$1(r,n("div.hover-contents",{"aria-live":"assertive"})),a=i.add(new MarkdownRenderer({editor:this._editor},this._languageService,this._openerService)),l=d=>{i.add(a.onDidRenderAsync(()=>{s.className="hover-contents code-hover-contents",e.onContentsChanged()}));const c=localize("inlineSuggestionFollows","Suggestion:"),u=i.add(a.render(new MarkdownString().appendText(c).appendCodeblock("text",d)));s.replaceChildren(u.element)};i.add(autorun(d=>{var c;const u=(c=t.controller.model.read(d))===null||c===void 0?void 0:c.ghostText.read(d);if(u){const g=this._editor.getModel().getLineContent(u.lineNumber);l(u.renderForScreenReader(g))}else reset(s)})),e.fragment.appendChild(r)}};InlineCompletionsHoverParticipant=__decorate$w([__param$w(1,ILanguageService),__param$w(2,IOpenerService),__param$w(3,IAccessibilityService),__param$w(4,IInstantiationService),__param$w(5,ITelemetryService)],InlineCompletionsHoverParticipant);registerEditorContribution(InlineCompletionsController.ID,InlineCompletionsController,3);registerEditorAction(TriggerInlineSuggestionAction);registerEditorAction(ShowNextInlineSuggestionAction);registerEditorAction(ShowPreviousInlineSuggestionAction);registerEditorAction(AcceptNextWordOfInlineCompletion);registerEditorAction(AcceptNextLineOfInlineCompletion);registerEditorAction(AcceptInlineCompletion);registerEditorAction(HideInlineCompletion);registerAction2(ToggleAlwaysShowInlineSuggestionToolbar);HoverParticipantRegistry.register(InlineCompletionsHoverParticipant);function getSpaceCnt(o,e){let t=0;for(let i=0;i<o.length;i++)o.charAt(i)===" "?t+=e:t++;return t}function generateIndent(o,e,t){o=o<0?0:o;let i="";if(!t){const n=Math.floor(o/e);o=o%e;for(let r=0;r<n;r++)i+=" "}for(let n=0;n<o;n++)i+=" ";return i}var __decorate$v=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$v=function(o,e){return function(t,i){e(t,i,o)}};function getReindentEditOperations(o,e,t,i,n){if(o.getLineCount()===1&&o.getLineMaxColumn(1)===1)return[];const r=e.getLanguageConfiguration(o.getLanguageId()).indentationRules;if(!r)return[];for(i=Math.min(i,o.getLineCount());t<=i&&r.unIndentedLinePattern;){const b=o.getLineContent(t);if(!r.unIndentedLinePattern.test(b))break;t++}if(t>i-1)return[];const{tabSize:s,indentSize:a,insertSpaces:l}=o.getOptions(),d=(b,_)=>(_=_||1,ShiftCommand.shiftIndent(b,b.length+_,s,a,l)),c=(b,_)=>(_=_||1,ShiftCommand.unshiftIndent(b,b.length+_,s,a,l)),u=[];let g;const f=o.getLineContent(t);let p=f;g=getLeadingWhitespace(f);let m=g;r.increaseIndentPattern&&r.increaseIndentPattern.test(p)?(m=d(m),g=d(g)):r.indentNextLinePattern&&r.indentNextLinePattern.test(p)&&(m=d(m)),t++;for(let b=t;b<=i;b++){const _=o.getLineContent(b),C=getLeadingWhitespace(_),S=m+_.substring(C.length);r.decreaseIndentPattern&&r.decreaseIndentPattern.test(S)&&(m=c(m),g=c(g)),C!==m&&u.push(EditOperation.replaceMove(new Selection$1(b,1,b,C.length+1),normalizeIndentation(m,a,l))),!(r.unIndentedLinePattern&&r.unIndentedLinePattern.test(_))&&(r.increaseIndentPattern&&r.increaseIndentPattern.test(S)?(g=d(g),m=g):r.indentNextLinePattern&&r.indentNextLinePattern.test(S)?m=d(m):m=g)}return u}class IndentationToSpacesAction extends EditorAction{constructor(){super({id:IndentationToSpacesAction.ID,label:localize("indentationToSpaces","Convert Indentation to Spaces"),alias:"Convert Indentation to Spaces",precondition:EditorContextKeys.writable})}run(e,t){const i=t.getModel();if(!i)return;const n=i.getOptions(),r=t.getSelection();if(!r)return;const s=new IndentationToSpacesCommand(r,n.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[s]),t.pushUndoStop(),i.updateOptions({insertSpaces:!0})}}IndentationToSpacesAction.ID="editor.action.indentationToSpaces";class IndentationToTabsAction extends EditorAction{constructor(){super({id:IndentationToTabsAction.ID,label:localize("indentationToTabs","Convert Indentation to Tabs"),alias:"Convert Indentation to Tabs",precondition:EditorContextKeys.writable})}run(e,t){const i=t.getModel();if(!i)return;const n=i.getOptions(),r=t.getSelection();if(!r)return;const s=new IndentationToTabsCommand(r,n.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[s]),t.pushUndoStop(),i.updateOptions({insertSpaces:!1})}}IndentationToTabsAction.ID="editor.action.indentationToTabs";class ChangeIndentationSizeAction extends EditorAction{constructor(e,t,i){super(i),this.insertSpaces=e,this.displaySizeOnly=t}run(e,t){const i=e.get(IQuickInputService),n=e.get(IModelService),r=t.getModel();if(!r)return;const s=n.getCreationOptions(r.getLanguageId(),r.uri,r.isForSimpleWidget),a=r.getOptions(),l=[1,2,3,4,5,6,7,8].map(c=>({id:c.toString(),label:c.toString(),description:c===s.tabSize&&c===a.tabSize?localize("configuredTabSize","Configured Tab Size"):c===s.tabSize?localize("defaultTabSize","Default Tab Size"):c===a.tabSize?localize("currentTabSize","Current Tab Size"):void 0})),d=Math.min(r.getOptions().tabSize-1,7);setTimeout(()=>{i.pick(l,{placeHolder:localize({},"Select Tab Size for Current File"),activeItem:l[d]}).then(c=>{if(c&&r&&!r.isDisposed()){const u=parseInt(c.label,10);this.displaySizeOnly?r.updateOptions({tabSize:u}):r.updateOptions({tabSize:u,indentSize:u,insertSpaces:this.insertSpaces})}})},50)}}class IndentUsingTabs extends ChangeIndentationSizeAction{constructor(){super(!1,!1,{id:IndentUsingTabs.ID,label:localize("indentUsingTabs","Indent Using Tabs"),alias:"Indent Using Tabs",precondition:void 0})}}IndentUsingTabs.ID="editor.action.indentUsingTabs";class IndentUsingSpaces extends ChangeIndentationSizeAction{constructor(){super(!0,!1,{id:IndentUsingSpaces.ID,label:localize("indentUsingSpaces","Indent Using Spaces"),alias:"Indent Using Spaces",precondition:void 0})}}IndentUsingSpaces.ID="editor.action.indentUsingSpaces";class ChangeTabDisplaySize extends ChangeIndentationSizeAction{constructor(){super(!0,!0,{id:ChangeTabDisplaySize.ID,label:localize("changeTabDisplaySize","Change Tab Display Size"),alias:"Change Tab Display Size",precondition:void 0})}}ChangeTabDisplaySize.ID="editor.action.changeTabDisplaySize";class DetectIndentation extends EditorAction{constructor(){super({id:DetectIndentation.ID,label:localize("detectIndentation","Detect Indentation from Content"),alias:"Detect Indentation from Content",precondition:void 0})}run(e,t){const i=e.get(IModelService),n=t.getModel();if(!n)return;const r=i.getCreationOptions(n.getLanguageId(),n.uri,n.isForSimpleWidget);n.detectIndentation(r.insertSpaces,r.tabSize)}}DetectIndentation.ID="editor.action.detectIndentation";class ReindentLinesAction extends EditorAction{constructor(){super({id:"editor.action.reindentlines",label:localize("editor.reindentlines","Reindent Lines"),alias:"Reindent Lines",precondition:EditorContextKeys.writable})}run(e,t){const i=e.get(ILanguageConfigurationService),n=t.getModel();if(!n)return;const r=getReindentEditOperations(n,i,1,n.getLineCount());r.length>0&&(t.pushUndoStop(),t.executeEdits(this.id,r),t.pushUndoStop())}}class ReindentSelectedLinesAction extends EditorAction{constructor(){super({id:"editor.action.reindentselectedlines",label:localize("editor.reindentselectedlines","Reindent Selected Lines"),alias:"Reindent Selected Lines",precondition:EditorContextKeys.writable})}run(e,t){const i=e.get(ILanguageConfigurationService),n=t.getModel();if(!n)return;const r=t.getSelections();if(r===null)return;const s=[];for(const a of r){let l=a.startLineNumber,d=a.endLineNumber;if(l!==d&&a.endColumn===1&&d--,l===1){if(l===d)continue}else l--;const c=getReindentEditOperations(n,i,l,d);s.push(...c)}s.length>0&&(t.pushUndoStop(),t.executeEdits(this.id,s),t.pushUndoStop())}}class AutoIndentOnPasteCommand{constructor(e,t){this._initialSelection=t,this._edits=[],this._selectionId=null;for(const i of e)i.range&&typeof i.text=="string"&&this._edits.push(i)}getEditOperations(e,t){for(const n of this._edits)t.addEditOperation(Range$2.lift(n.range),n.text);let i=!1;Array.isArray(this._edits)&&this._edits.length===1&&this._initialSelection.isEmpty()&&(this._edits[0].range.startColumn===this._initialSelection.endColumn&&this._edits[0].range.startLineNumber===this._initialSelection.endLineNumber?(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)}}let AutoIndentOnPaste=class{constructor(e,t){this.editor=e,this._languageConfigurationService=t,this.callOnDispose=new DisposableStore,this.callOnModel=new DisposableStore,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(12)<4||this.editor.getOption(55))&&this.editor.hasModel()&&this.callOnModel.add(this.editor.onDidPaste(({range:e})=>{this.trigger(e)}))}trigger(e){const t=this.editor.getSelections();if(t===null||t.length>1)return;const i=this.editor.getModel();if(!i||!i.tokenization.isCheapToTokenize(e.getStartPosition().lineNumber))return;const n=this.editor.getOption(12),{tabSize:r,indentSize:s,insertSpaces:a}=i.getOptions(),l=[],d={shiftIndent:f=>ShiftCommand.shiftIndent(f,f.length+1,r,s,a),unshiftIndent:f=>ShiftCommand.unshiftIndent(f,f.length+1,r,s,a)};let c=e.startLineNumber;for(;c<=e.endLineNumber;){if(this.shouldIgnoreLine(i,c)){c++;continue}break}if(c>e.endLineNumber)return;let u=i.getLineContent(c);if(!/\S/.test(u.substring(0,e.startColumn-1))){const f=getGoodIndentForLine(n,i,i.getLanguageId(),c,d,this._languageConfigurationService);if(f!==null){const p=getLeadingWhitespace(u),m=getSpaceCnt(f,r),b=getSpaceCnt(p,r);if(m!==b){const _=generateIndent(m,r,a);l.push({range:new Range$2(c,1,c,p.length+1),text:_}),u=_+u.substr(p.length)}else{const _=getIndentMetadata(i,c,this._languageConfigurationService);if(_===0||_===8)return}}}const g=c;for(;c<e.endLineNumber;){if(!/\S/.test(i.getLineContent(c+1))){c++;continue}break}if(c!==e.endLineNumber){const p=getGoodIndentForLine(n,{tokenization:{getLineTokens:m=>i.tokenization.getLineTokens(m),getLanguageId:()=>i.getLanguageId(),getLanguageIdAtPosition:(m,b)=>i.getLanguageIdAtPosition(m,b)},getLineContent:m=>m===g?u:i.getLineContent(m)},i.getLanguageId(),c+1,d,this._languageConfigurationService);if(p!==null){const m=getSpaceCnt(p,r),b=getSpaceCnt(getLeadingWhitespace(i.getLineContent(c+1)),r);if(m!==b){const _=m-b;for(let C=c+1;C<=e.endLineNumber;C++){const S=i.getLineContent(C),y=getLeadingWhitespace(S),x=getSpaceCnt(y,r)+_,L=generateIndent(x,r,a);L!==y&&l.push({range:new Range$2(C,1,C,y.length+1),text:L})}}}}if(l.length>0){this.editor.pushUndoStop();const f=new AutoIndentOnPasteCommand(l,this.editor.getSelection());this.editor.executeCommand("autoIndentOnPaste",f),this.editor.pushUndoStop()}}shouldIgnoreLine(e,t){e.tokenization.forceTokenization(t);const i=e.getLineFirstNonWhitespaceColumn(t);if(i===0)return!0;const n=e.tokenization.getLineTokens(t);if(n.getCount()>0){const r=n.findTokenIndexAtOffset(i);if(r>=0&&n.getStandardTokenType(r)===1)return!0}return!1}dispose(){this.callOnDispose.dispose(),this.callOnModel.dispose()}};AutoIndentOnPaste.ID="editor.contrib.autoIndentOnPaste";AutoIndentOnPaste=__decorate$v([__param$v(1,ILanguageConfigurationService)],AutoIndentOnPaste);function getIndentationEditOperations(o,e,t,i){if(o.getLineCount()===1&&o.getLineMaxColumn(1)===1)return;let n="";for(let s=0;s<t;s++)n+=" ";const r=new RegExp(n,"gi");for(let s=1,a=o.getLineCount();s<=a;s++){let l=o.getLineFirstNonWhitespaceColumn(s);if(l===0&&(l=o.getLineMaxColumn(s)),l===1)continue;const d=new Range$2(s,1,s,l),c=o.getValueInRange(d),u=i?c.replace(/\t/ig,n):c.replace(r," ");e.addEditOperation(d,u)}}class IndentationToSpacesCommand{constructor(e,t){this.selection=e,this.tabSize=t,this.selectionId=null}getEditOperations(e,t){this.selectionId=t.trackSelection(this.selection),getIndentationEditOperations(e,t,this.tabSize,!0)}computeCursorState(e,t){return t.getTrackedSelection(this.selectionId)}}class IndentationToTabsCommand{constructor(e,t){this.selection=e,this.tabSize=t,this.selectionId=null}getEditOperations(e,t){this.selectionId=t.trackSelection(this.selection),getIndentationEditOperations(e,t,this.tabSize,!1)}computeCursorState(e,t){return t.getTrackedSelection(this.selectionId)}}registerEditorContribution(AutoIndentOnPaste.ID,AutoIndentOnPaste,2);registerEditorAction(IndentationToSpacesAction);registerEditorAction(IndentationToTabsAction);registerEditorAction(IndentUsingTabs);registerEditorAction(IndentUsingSpaces);registerEditorAction(ChangeTabDisplaySize);registerEditorAction(DetectIndentation);registerEditorAction(ReindentLinesAction);registerEditorAction(ReindentSelectedLinesAction);var __awaiter$n=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};class InlayHintAnchor{constructor(e,t){this.range=e,this.direction=t}}class InlayHintItem{constructor(e,t,i){this.hint=e,this.anchor=t,this.provider=i,this._isResolved=!1}with(e){const t=new InlayHintItem(this.hint,e.anchor,this.provider);return t._isResolved=this._isResolved,t._currentResolve=this._currentResolve,t}resolve(e){return __awaiter$n(this,void 0,void 0,function*(){if(typeof this.provider.resolveInlayHint=="function"){if(this._currentResolve)return yield this._currentResolve,e.isCancellationRequested?void 0:this.resolve(e);this._isResolved||(this._currentResolve=this._doResolve(e).finally(()=>this._currentResolve=void 0)),yield this._currentResolve}})}_doResolve(e){var t,i;return __awaiter$n(this,void 0,void 0,function*(){try{const n=yield Promise.resolve(this.provider.resolveInlayHint(this.hint,e));this.hint.tooltip=(t=n==null?void 0:n.tooltip)!==null&&t!==void 0?t:this.hint.tooltip,this.hint.label=(i=n==null?void 0:n.label)!==null&&i!==void 0?i:this.hint.label,this._isResolved=!0}catch(n){onUnexpectedExternalError(n),this._isResolved=!1}})}}class InlayHintsFragments{static create(e,t,i,n){return __awaiter$n(this,void 0,void 0,function*(){const r=[],s=e.ordered(t).reverse().map(a=>i.map(l=>__awaiter$n(this,void 0,void 0,function*(){try{const d=yield a.provideInlayHints(t,l,n);d!=null&&d.hints.length&&r.push([d,a])}catch(d){onUnexpectedExternalError(d)}})));if(yield Promise.all(s.flat()),n.isCancellationRequested||t.isDisposed())throw new CancellationError;return new InlayHintsFragments(i,r,t)})}constructor(e,t,i){this._disposables=new DisposableStore,this.ranges=e,this.provider=new Set;const n=[];for(const[r,s]of t){this._disposables.add(r),this.provider.add(s);for(const a of r.hints){const l=i.validatePosition(a.position);let d="before";const c=InlayHintsFragments._getRangeAtPosition(i,l);let u;c.getStartPosition().isBefore(l)?(u=Range$2.fromPositions(c.getStartPosition(),l),d="after"):(u=Range$2.fromPositions(l,c.getEndPosition()),d="before"),n.push(new InlayHintItem(a,new InlayHintAnchor(u,d),s))}}this.items=n.sort((r,s)=>Position$1.compare(r.hint.position,s.hint.position))}dispose(){this._disposables.dispose()}static _getRangeAtPosition(e,t){const i=t.lineNumber,n=e.getWordAtPosition(t);if(n)return new Range$2(i,n.startColumn,i,n.endColumn);e.tokenization.tokenizeIfCheap(i);const r=e.tokenization.getLineTokens(i),s=t.column-1,a=r.findTokenIndexAtOffset(s);let l=r.getStartOffset(a),d=r.getEndOffset(a);return d-l===1&&(l===s&&a>1?(l=r.getStartOffset(a-1),d=r.getEndOffset(a-1)):d===s&&a<r.getCount()-1&&(l=r.getStartOffset(a+1),d=r.getEndOffset(a+1))),new Range$2(i,l+1,i,d+1)}}function asCommandLink(o){return URI.from({scheme:Schemas.command,path:o.id,query:o.arguments&&encodeURIComponent(JSON.stringify(o.arguments))}).toString()}var __awaiter$m=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};function showGoToContextMenu(o,e,t,i){var n;return __awaiter$m(this,void 0,void 0,function*(){const r=o.get(ITextModelService),s=o.get(IContextMenuService),a=o.get(ICommandService),l=o.get(IInstantiationService),d=o.get(INotificationService);if(yield i.item.resolve(CancellationToken.None),!i.part.location)return;const c=i.part.location,u=[],g=new Set(MenuRegistry.getMenuItems(MenuId.EditorContext).map(p=>isIMenuItem(p)?p.command.id:generateUuid()));for(const p of SymbolNavigationAction.all())g.has(p.desc.id)&&u.push(new Action(p.desc.id,MenuItemAction.label(p.desc,{renderShortTitle:!0}),void 0,!0,()=>__awaiter$m(this,void 0,void 0,function*(){const m=yield r.createModelReference(c.uri);try{const b=new SymbolNavigationAnchor(m.object.textEditorModel,Range$2.getStartPosition(c.range)),_=i.item.anchor.range;yield l.invokeFunction(p.runEditorCommand.bind(p),e,b,_)}finally{m.dispose()}})));if(i.part.command){const{command:p}=i.part;u.push(new Separator),u.push(new Action(p.id,p.title,void 0,!0,()=>__awaiter$m(this,void 0,void 0,function*(){var m;try{yield a.executeCommand(p.id,...(m=p.arguments)!==null&&m!==void 0?m:[])}catch(b){d.notify({severity:Severity.Error,source:i.item.provider.displayName,message:b})}})))}const f=e.getOption(126);s.showContextMenu({domForShadowRoot:f&&(n=e.getDomNode())!==null&&n!==void 0?n:void 0,getAnchor:()=>{const p=getDomNodePagePosition(t);return{x:p.left,y:p.top+p.height+8}},getActions:()=>u,onHide:()=>{e.focus()},autoSelectFirstItem:!0})})}function goToDefinitionWithLocation(o,e,t,i){return __awaiter$m(this,void 0,void 0,function*(){const r=yield o.get(ITextModelService).createModelReference(i.uri);yield t.invokeWithinContext(s=>__awaiter$m(this,void 0,void 0,function*(){const a=e.hasSideBySideModifier,l=s.get(IContextKeyService),d=PeekContext.inPeekEditor.getValue(l),c=!a&&t.getOption(87)&&!d;return new DefinitionAction({openToSide:a,openInPeek:c,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(s,new SymbolNavigationAnchor(r.object.textEditorModel,Range$2.getStartPosition(i.range)),Range$2.lift(i.range))})),r.dispose()})}var __decorate$u=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$u=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$l=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},InlayHintsController_1;class InlayHintsCache{constructor(){this._entries=new LRUCache(50)}get(e){const t=InlayHintsCache._key(e);return this._entries.get(t)}set(e,t){const i=InlayHintsCache._key(e);this._entries.set(i,t)}static _key(e){return`${e.uri.toString()}/${e.getVersionId()}`}}const IInlayHintsCache=createDecorator("IInlayHintsCache");registerSingleton(IInlayHintsCache,InlayHintsCache,1);class RenderedInlayHintLabelPart{constructor(e,t){this.item=e,this.index=t}get part(){const e=this.item.hint.label;return typeof e=="string"?{label:e}:e[this.index]}}class ActiveInlayHintInfo{constructor(e,t){this.part=e,this.hasTriggerModifier=t}}let InlayHintsController=InlayHintsController_1=class{static get(e){var t;return(t=e.getContribution(InlayHintsController_1.ID))!==null&&t!==void 0?t:void 0}constructor(e,t,i,n,r,s,a){this._editor=e,this._languageFeaturesService=t,this._inlayHintsCache=n,this._commandService=r,this._notificationService=s,this._instaService=a,this._disposables=new DisposableStore,this._sessionDisposables=new DisposableStore,this._decorationsMetadata=new Map,this._ruleFactory=new DynamicCssRules(this._editor),this._activeRenderMode=0,this._debounceInfo=i.for(t.inlayHintsProvider,"InlayHint",{min:25}),this._disposables.add(t.inlayHintsProvider.onDidChange(()=>this._update())),this._disposables.add(e.onDidChangeModel(()=>this._update())),this._disposables.add(e.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(e.onDidChangeConfiguration(l=>{l.hasChanged(139)&&this._update()})),this._update()}dispose(){this._sessionDisposables.dispose(),this._removeAllDecorations(),this._disposables.dispose()}_update(){this._sessionDisposables.clear(),this._removeAllDecorations();const e=this._editor.getOption(139);if(e.enabled==="off")return;const t=this._editor.getModel();if(!t||!this._languageFeaturesService.inlayHintsProvider.has(t))return;const i=this._inlayHintsCache.get(t);i&&this._updateHintsDecorators([t.getFullModelRange()],i),this._sessionDisposables.add(toDisposable(()=>{t.isDisposed()||this._cacheHintsForFastRestore(t)}));let n;const r=new Set,s=new RunOnceScheduler(()=>__awaiter$l(this,void 0,void 0,function*(){const a=Date.now();n==null||n.dispose(!0),n=new CancellationTokenSource$1;const l=t.onWillDispose(()=>n==null?void 0:n.cancel());try{const d=n.token,c=yield InlayHintsFragments.create(this._languageFeaturesService.inlayHintsProvider,t,this._getHintsRanges(),d);if(s.delay=this._debounceInfo.update(t,Date.now()-a),d.isCancellationRequested){c.dispose();return}for(const u of c.provider)typeof u.onDidChangeInlayHints=="function"&&!r.has(u)&&(r.add(u),this._sessionDisposables.add(u.onDidChangeInlayHints(()=>{s.isScheduled()||s.schedule()})));this._sessionDisposables.add(c),this._updateHintsDecorators(c.ranges,c.items),this._cacheHintsForFastRestore(t)}catch(d){onUnexpectedError(d)}finally{n.dispose(),l.dispose()}}),this._debounceInfo.get(t));if(this._sessionDisposables.add(s),this._sessionDisposables.add(toDisposable(()=>n==null?void 0:n.dispose(!0))),s.schedule(0),this._sessionDisposables.add(this._editor.onDidScrollChange(a=>{(a.scrollTopChanged||!s.isScheduled())&&s.schedule()})),this._sessionDisposables.add(this._editor.onDidChangeModelContent(a=>{const l=Math.max(s.delay,1250);s.schedule(l)})),e.enabled==="on")this._activeRenderMode=0;else{let a,l;e.enabled==="onUnlessPressed"?(a=0,l=1):(a=1,l=0),this._activeRenderMode=a,this._sessionDisposables.add(ModifierKeyEmitter.getInstance().event(d=>{if(!this._editor.hasModel())return;const c=d.altKey&&d.ctrlKey&&!(d.shiftKey||d.metaKey)?l:a;if(c!==this._activeRenderMode){this._activeRenderMode=c;const u=this._editor.getModel(),g=this._copyInlayHintsWithCurrentAnchor(u);this._updateHintsDecorators([u.getFullModelRange()],g),s.schedule(0)}}))}this._sessionDisposables.add(this._installDblClickGesture(()=>s.schedule(0))),this._sessionDisposables.add(this._installLinkGesture()),this._sessionDisposables.add(this._installContextMenu())}_installLinkGesture(){const e=new DisposableStore,t=e.add(new ClickLinkGesture(this._editor)),i=new DisposableStore;return e.add(i),e.add(t.onMouseMoveOrRelevantKeyDown(n=>{const[r]=n,s=this._getInlayHintLabelPart(r),a=this._editor.getModel();if(!s||!a){i.clear();return}const l=new CancellationTokenSource$1;i.add(toDisposable(()=>l.dispose(!0))),s.item.resolve(l.token),this._activeInlayHintPart=s.part.command||s.part.location?new ActiveInlayHintInfo(s,r.hasTriggerModifier):void 0;const d=a.validatePosition(s.item.hint.position).lineNumber,c=new Range$2(d,1,d,a.getLineMaxColumn(d)),u=this._getInlineHintsForRange(c);this._updateHintsDecorators([c],u),i.add(toDisposable(()=>{this._activeInlayHintPart=void 0,this._updateHintsDecorators([c],u)}))})),e.add(t.onCancel(()=>i.clear())),e.add(t.onExecute(n=>__awaiter$l(this,void 0,void 0,function*(){const r=this._getInlayHintLabelPart(n);if(r){const s=r.part;s.location?this._instaService.invokeFunction(goToDefinitionWithLocation,n,this._editor,s.location):Command$1.is(s.command)&&(yield this._invokeCommand(s.command,r.item))}}))),e}_getInlineHintsForRange(e){const t=new Set;for(const i of this._decorationsMetadata.values())e.containsRange(i.item.anchor.range)&&t.add(i.item);return Array.from(t)}_installDblClickGesture(e){return this._editor.onMouseUp(t=>__awaiter$l(this,void 0,void 0,function*(){if(t.event.detail!==2)return;const i=this._getInlayHintLabelPart(t);if(i&&(t.event.preventDefault(),yield i.item.resolve(CancellationToken.None),isNonEmptyArray(i.item.hint.textEdits))){const n=i.item.hint.textEdits.map(r=>EditOperation.replace(Range$2.lift(r.range),r.text));this._editor.executeEdits("inlayHint.default",n),e()}}))}_installContextMenu(){return this._editor.onContextMenu(e=>__awaiter$l(this,void 0,void 0,function*(){if(!(e.event.target instanceof HTMLElement))return;const t=this._getInlayHintLabelPart(e);t&&(yield this._instaService.invokeFunction(showGoToContextMenu,this._editor,e.event.target,t))}))}_getInlayHintLabelPart(e){var t;if(e.target.type!==6)return;const i=(t=e.target.detail.injectedText)===null||t===void 0?void 0:t.options;if(i instanceof ModelDecorationInjectedTextOptions&&(i==null?void 0:i.attachedData)instanceof RenderedInlayHintLabelPart)return i.attachedData}_invokeCommand(e,t){var i;return __awaiter$l(this,void 0,void 0,function*(){try{yield this._commandService.executeCommand(e.id,...(i=e.arguments)!==null&&i!==void 0?i:[])}catch(n){this._notificationService.notify({severity:Severity.Error,source:t.provider.displayName,message:n})}})}_cacheHintsForFastRestore(e){const t=this._copyInlayHintsWithCurrentAnchor(e);this._inlayHintsCache.set(e,t)}_copyInlayHintsWithCurrentAnchor(e){const t=new Map;for(const[i,n]of this._decorationsMetadata){if(t.has(n.item))continue;const r=e.getDecorationRange(i);if(r){const s=new InlayHintAnchor(r,n.item.anchor.direction),a=n.item.with({anchor:s});t.set(n.item,a)}}return Array.from(t.values())}_getHintsRanges(){const t=this._editor.getModel(),i=this._editor.getVisibleRangesPlusViewportAboveBelow(),n=[];for(const r of i.sort(Range$2.compareRangesUsingStarts)){const s=t.validateRange(new Range$2(r.startLineNumber-30,r.startColumn,r.endLineNumber+30,r.endColumn));n.length===0||!Range$2.areIntersectingOrTouching(n[n.length-1],s)?n.push(s):n[n.length-1]=Range$2.plusRange(n[n.length-1],s)}return n}_updateHintsDecorators(e,t){var i,n;const r=[],s=(m,b,_,C,S)=>{const y={content:_,inlineClassNameAffectsLetterSpacing:!0,inlineClassName:b.className,cursorStops:C,attachedData:S};r.push({item:m,classNameRef:b,decoration:{range:m.anchor.range,options:{description:"InlayHint",showIfCollapsed:m.anchor.range.isEmpty(),collapseOnReplaceEdit:!m.anchor.range.isEmpty(),stickiness:0,[m.anchor.direction]:this._activeRenderMode===0?y:void 0}}})},a=(m,b)=>{const _=this._ruleFactory.createClassNameRef({width:`${l/3|0}px`,display:"inline-block"});s(m,_," ",b?InjectedTextCursorStops.Right:InjectedTextCursorStops.None)},{fontSize:l,fontFamily:d,padding:c,isUniform:u}=this._getLayoutInfo(),g="--code-editorInlayHintsFontFamily";this._editor.getContainerDomNode().style.setProperty(g,d);for(const m of t){m.hint.paddingLeft&&a(m,!1);const b=typeof m.hint.label=="string"?[{label:m.hint.label}]:m.hint.label;for(let _=0;_<b.length;_++){const C=b[_],S=_===0,y=_===b.length-1,E={fontSize:`${l}px`,fontFamily:`var(${g}), ${EDITOR_FONT_DEFAULTS.fontFamily}`,verticalAlign:u?"baseline":"middle",unicodeBidi:"isolate"};isNonEmptyArray(m.hint.textEdits)&&(E.cursor="default"),this._fillInColors(E,m.hint),(C.command||C.location)&&((i=this._activeInlayHintPart)===null||i===void 0?void 0:i.part.item)===m&&this._activeInlayHintPart.part.index===_&&(E.textDecoration="underline",this._activeInlayHintPart.hasTriggerModifier&&(E.color=themeColorFromId(editorActiveLinkForeground),E.cursor="pointer")),c&&(S&&y?(E.padding=`1px ${Math.max(1,l/4)|0}px`,E.borderRadius=`${l/4|0}px`):S?(E.padding=`1px 0 1px ${Math.max(1,l/4)|0}px`,E.borderRadius=`${l/4|0}px 0 0 ${l/4|0}px`):y?(E.padding=`1px ${Math.max(1,l/4)|0}px 1px 0`,E.borderRadius=`0 ${l/4|0}px ${l/4|0}px 0`):E.padding="1px 0 1px 0"),s(m,this._ruleFactory.createClassNameRef(E),fixSpace(C.label),y&&!m.hint.paddingRight?InjectedTextCursorStops.Right:InjectedTextCursorStops.None,new RenderedInlayHintLabelPart(m,_))}if(m.hint.paddingRight&&a(m,!0),r.length>InlayHintsController_1._MAX_DECORATORS)break}const f=[];for(const m of e)for(const{id:b}of(n=this._editor.getDecorationsInRange(m))!==null&&n!==void 0?n:[]){const _=this._decorationsMetadata.get(b);_&&(f.push(b),_.classNameRef.dispose(),this._decorationsMetadata.delete(b))}const p=StableEditorScrollState.capture(this._editor);this._editor.changeDecorations(m=>{const b=m.deltaDecorations(f,r.map(_=>_.decoration));for(let _=0;_<b.length;_++){const C=r[_];this._decorationsMetadata.set(b[_],C)}}),p.restore(this._editor)}_fillInColors(e,t){t.kind===InlayHintKind$1.Parameter?(e.backgroundColor=themeColorFromId(editorInlayHintParameterBackground),e.color=themeColorFromId(editorInlayHintParameterForeground)):t.kind===InlayHintKind$1.Type?(e.backgroundColor=themeColorFromId(editorInlayHintTypeBackground),e.color=themeColorFromId(editorInlayHintTypeForeground)):(e.backgroundColor=themeColorFromId(editorInlayHintBackground),e.color=themeColorFromId(editorInlayHintForeground))}_getLayoutInfo(){const e=this._editor.getOption(139),t=e.padding,i=this._editor.getOption(52),n=this._editor.getOption(49);let r=e.fontSize;(!r||r<5||r>i)&&(r=i);const s=e.fontFamily||n;return{fontSize:r,fontFamily:s,padding:t,isUniform:!t&&s===n&&r===i}}_removeAllDecorations(){this._editor.removeDecorations(Array.from(this._decorationsMetadata.keys()));for(const e of this._decorationsMetadata.values())e.classNameRef.dispose();this._decorationsMetadata.clear()}};InlayHintsController.ID="editor.contrib.InlayHints";InlayHintsController._MAX_DECORATORS=1500;InlayHintsController=InlayHintsController_1=__decorate$u([__param$u(1,ILanguageFeaturesService),__param$u(2,ILanguageFeatureDebounceService),__param$u(3,IInlayHintsCache),__param$u(4,ICommandService),__param$u(5,INotificationService),__param$u(6,IInstantiationService)],InlayHintsController);function fixSpace(o){return o.replace(/[ \t]/g," ")}CommandsRegistry.registerCommand("_executeInlayHintProvider",(o,...e)=>__awaiter$l(void 0,void 0,void 0,function*(){const[t,i]=e;assertType(URI.isUri(t)),assertType(Range$2.isIRange(i));const{inlayHintsProvider:n}=o.get(ILanguageFeaturesService),r=yield o.get(ITextModelService).createModelReference(t);try{const s=yield InlayHintsFragments.create(n,r.object.textEditorModel,[Range$2.lift(i)],CancellationToken.None),a=s.items.map(l=>l.hint);return setTimeout(()=>s.dispose(),0),a}finally{r.dispose()}}));var __decorate$t=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$t=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$k=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},__asyncValues=function(o){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=o[Symbol.asyncIterator],t;return e?e.call(o):(o=typeof __values=="function"?__values(o):o[Symbol.iterator](),t={},i("next"),i("throw"),i("return"),t[Symbol.asyncIterator]=function(){return this},t);function i(r){t[r]=o[r]&&function(s){return new Promise(function(a,l){s=o[r](s),n(a,l,s.done,s.value)})}}function n(r,s,a,l){Promise.resolve(l).then(function(d){r({value:d,done:a})},s)}};class InlayHintsHoverAnchor extends HoverForeignElementAnchor{constructor(e,t,i,n){super(10,t,e.item.anchor.range,i,n,!0),this.part=e}}let InlayHintsHover=class extends MarkdownHoverParticipant{constructor(e,t,i,n,r,s){super(e,t,i,n,s),this._resolverService=r,this.hoverOrdinal=6}suggestHoverAnchor(e){var t;if(!InlayHintsController.get(this._editor)||e.target.type!==6)return null;const n=(t=e.target.detail.injectedText)===null||t===void 0?void 0:t.options;return n instanceof ModelDecorationInjectedTextOptions&&n.attachedData instanceof RenderedInlayHintLabelPart?new InlayHintsHoverAnchor(n.attachedData,this,e.event.posx,e.event.posy):null}computeSync(){return[]}computeAsync(e,t,i){return e instanceof InlayHintsHoverAnchor?new AsyncIterableObject(n=>__awaiter$k(this,void 0,void 0,function*(){var r,s,a,l;const{part:d}=e;if(yield d.item.resolve(i),i.isCancellationRequested)return;let c;typeof d.item.hint.tooltip=="string"?c=new MarkdownString().appendText(d.item.hint.tooltip):d.item.hint.tooltip&&(c=d.item.hint.tooltip),c&&n.emitOne(new MarkdownHover(this,e.range,[c],!1,0)),isNonEmptyArray(d.item.hint.textEdits)&&n.emitOne(new MarkdownHover(this,e.range,[new MarkdownString().appendText(localize("hint.dbl","Double-click to insert"))],!1,10001));let u;if(typeof d.part.tooltip=="string"?u=new MarkdownString().appendText(d.part.tooltip):d.part.tooltip&&(u=d.part.tooltip),u&&n.emitOne(new MarkdownHover(this,e.range,[u],!1,1)),d.part.location||d.part.command){let b;const C=this._editor.getOption(77)==="altKey"?isMacintosh?localize("links.navigate.kb.meta.mac","cmd + click"):localize("links.navigate.kb.meta","ctrl + click"):isMacintosh?localize("links.navigate.kb.alt.mac","option + click"):localize("links.navigate.kb.alt","alt + click");d.part.location&&d.part.command?b=new MarkdownString().appendText(localize("hint.defAndCommand","Go to Definition ({0}), right click for more",C)):d.part.location?b=new MarkdownString().appendText(localize("hint.def","Go to Definition ({0})",C)):d.part.command&&(b=new MarkdownString(`[${localize("hint.cmd","Execute Command")}](${asCommandLink(d.part.command)} "${d.part.command.title}") (${C})`,{isTrusted:!0})),b&&n.emitOne(new MarkdownHover(this,e.range,[b],!1,1e4))}const g=yield this._resolveInlayHintLabelPartHover(d,i);try{for(var f=!0,p=__asyncValues(g),m;m=yield p.next(),r=m.done,!r;f=!0){l=m.value,f=!1;const b=l;n.emitOne(b)}}catch(b){s={error:b}}finally{try{!f&&!r&&(a=p.return)&&(yield a.call(p))}finally{if(s)throw s.error}}})):AsyncIterableObject.EMPTY}_resolveInlayHintLabelPartHover(e,t){return __awaiter$k(this,void 0,void 0,function*(){if(!e.part.location)return AsyncIterableObject.EMPTY;const{uri:i,range:n}=e.part.location,r=yield this._resolverService.createModelReference(i);try{const s=r.object.textEditorModel;return this._languageFeaturesService.hoverProvider.has(s)?getHover(this._languageFeaturesService.hoverProvider,s,new Position$1(n.startLineNumber,n.startColumn),t).filter(a=>!isEmptyMarkdownString(a.hover.contents)).map(a=>new MarkdownHover(this,e.item.anchor.range,a.hover.contents,!1,2+a.ordinal)):AsyncIterableObject.EMPTY}finally{r.dispose()}})}};InlayHintsHover=__decorate$t([__param$t(1,ILanguageService),__param$t(2,IOpenerService),__param$t(3,IConfigurationService),__param$t(4,ITextModelService),__param$t(5,ILanguageFeaturesService)],InlayHintsHover);registerEditorContribution(InlayHintsController.ID,InlayHintsController,1);HoverParticipantRegistry.register(InlayHintsHover);class InPlaceReplaceCommand{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 n=t.getInverseEditOperations()[0].range;return this._originalSelection.isEmpty()?new Selection$1(n.endLineNumber,Math.min(this._originalSelection.positionColumn,n.endColumn),n.endLineNumber,Math.min(this._originalSelection.positionColumn,n.endColumn)):new Selection$1(n.endLineNumber,n.endColumn-this._text.length,n.endLineNumber,n.endColumn)}}var __decorate$s=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$s=function(o,e){return function(t,i){e(t,i,o)}},InPlaceReplaceController_1;let InPlaceReplaceController=InPlaceReplaceController_1=class{static get(e){return e.getContribution(InPlaceReplaceController_1.ID)}constructor(e,t){this.editor=e,this.editorWorkerService=t,this.decorations=this.editor.createDecorationsCollection()}dispose(){}run(e,t){var i;(i=this.currentRequest)===null||i===void 0||i.cancel();const n=this.editor.getSelection(),r=this.editor.getModel();if(!r||!n)return;let s=n;if(s.startLineNumber!==s.endLineNumber)return;const a=new EditorState$1(this.editor,5),l=r.uri;return this.editorWorkerService.canNavigateValueSet(l)?(this.currentRequest=createCancelablePromise(d=>this.editorWorkerService.navigateValueSet(l,s,t)),this.currentRequest.then(d=>{var c;if(!d||!d.range||!d.value||!a.validate(this.editor))return;const u=Range$2.lift(d.range);let g=d.range;const f=d.value.length-(s.endColumn-s.startColumn);g={startLineNumber:g.startLineNumber,startColumn:g.startColumn,endLineNumber:g.endLineNumber,endColumn:g.startColumn+d.value.length},f>1&&(s=new Selection$1(s.startLineNumber,s.startColumn,s.endLineNumber,s.endColumn+f-1));const p=new InPlaceReplaceCommand(u,s,d.value);this.editor.pushUndoStop(),this.editor.executeCommand(e,p),this.editor.pushUndoStop(),this.decorations.set([{range:g,options:InPlaceReplaceController_1.DECORATION}]),(c=this.decorationRemover)===null||c===void 0||c.cancel(),this.decorationRemover=timeout(350),this.decorationRemover.then(()=>this.decorations.clear()).catch(onUnexpectedError)}).catch(onUnexpectedError)):Promise.resolve(void 0)}};InPlaceReplaceController.ID="editor.contrib.inPlaceReplaceController";InPlaceReplaceController.DECORATION=ModelDecorationOptions.register({description:"in-place-replace",className:"valueSetReplacement"});InPlaceReplaceController=InPlaceReplaceController_1=__decorate$s([__param$s(1,IEditorWorkerService)],InPlaceReplaceController);class InPlaceReplaceUp extends EditorAction{constructor(){super({id:"editor.action.inPlaceReplace.up",label:localize("InPlaceReplaceAction.previous.label","Replace with Previous Value"),alias:"Replace with Previous Value",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:3159,weight:100}})}run(e,t){const i=InPlaceReplaceController.get(t);return i?i.run(this.id,!1):Promise.resolve(void 0)}}class InPlaceReplaceDown extends EditorAction{constructor(){super({id:"editor.action.inPlaceReplace.down",label:localize("InPlaceReplaceAction.next.label","Replace with Next Value"),alias:"Replace with Next Value",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:3161,weight:100}})}run(e,t){const i=InPlaceReplaceController.get(t);return i?i.run(this.id,!0):Promise.resolve(void 0)}}registerEditorContribution(InPlaceReplaceController.ID,InPlaceReplaceController,4);registerEditorAction(InPlaceReplaceUp);registerEditorAction(InPlaceReplaceDown);class ExpandLineSelectionAction extends EditorAction{constructor(){super({id:"expandLineSelection",label:localize("expandLineSelection","Expand Line Selection"),alias:"Expand Line Selection",precondition:void 0,kbOpts:{weight:0,kbExpr:EditorContextKeys.textInputFocus,primary:2090}})}run(e,t,i){if(i=i||{},!t.hasModel())return;const n=t._getViewModel();n.model.pushStackElement(),n.setCursorStates(i.source,3,CursorMoveCommands.expandLineSelection(n,n.getCursorStates())),n.revealPrimaryCursor(i.source,!0)}}registerEditorAction(ExpandLineSelectionAction);class TrimTrailingWhitespaceCommand{constructor(e,t){this._selection=e,this._cursors=t,this._selectionId=null}getEditOperations(e,t){const i=trimTrailingWhitespace(e,this._cursors);for(let n=0,r=i.length;n<r;n++){const s=i[n];t.addEditOperation(s.range,s.text)}this._selectionId=t.trackSelection(this._selection)}computeCursorState(e,t){return t.getTrackedSelection(this._selectionId)}}function trimTrailingWhitespace(o,e){e.sort((s,a)=>s.lineNumber===a.lineNumber?s.column-a.column:s.lineNumber-a.lineNumber);for(let s=e.length-2;s>=0;s--)e[s].lineNumber===e[s+1].lineNumber&&e.splice(s,1);const t=[];let i=0,n=0;const r=e.length;for(let s=1,a=o.getLineCount();s<=a;s++){const l=o.getLineContent(s),d=l.length+1;let c=0;if(n<r&&e[n].lineNumber===s&&(c=e[n].column,n++,c===d)||l.length===0)continue;const u=lastNonWhitespaceIndex(l);let g=0;if(u===-1)g=1;else if(u!==l.length-1)g=u+2;else continue;g=Math.max(c,g),t[i++]=EditOperation.delete(new Range$2(s,g,s,d))}return t}class CopyLinesCommand{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&&i.endColumn===1&&(this._endLineNumberDelta=1,i=i.setEndPosition(i.endLineNumber-1,e.getLineMaxColumn(i.endLineNumber-1)));const n=[];for(let s=i.startLineNumber;s<=i.endLineNumber;s++)n.push(e.getLineContent(s));const r=n.join(`
- `);r===""&&this._isCopyingDown&&(this._startLineNumberDelta++,this._endLineNumberDelta++),this._noop?t.addEditOperation(new Range$2(i.endLineNumber,e.getLineMaxColumn(i.endLineNumber),i.endLineNumber+1,1),i.endLineNumber===e.getLineCount()?"":`
- `):this._isCopyingDown?t.addEditOperation(new Range$2(i.startLineNumber,1,i.startLineNumber,1),r+`
- `):t.addEditOperation(new Range$2(i.endLineNumber,e.getLineMaxColumn(i.endLineNumber),i.endLineNumber,e.getLineMaxColumn(i.endLineNumber)),`
- `+r),this._selectionId=t.trackSelection(i),this._selectionDirection=this._selection.getDirection()}computeCursorState(e,t){let i=t.getTrackedSelection(this._selectionId);if(this._startLineNumberDelta!==0||this._endLineNumberDelta!==0){let n=i.startLineNumber,r=i.startColumn,s=i.endLineNumber,a=i.endColumn;this._startLineNumberDelta!==0&&(n=n+this._startLineNumberDelta,r=1),this._endLineNumberDelta!==0&&(s=s+this._endLineNumberDelta,a=1),i=Selection$1.createWithDirection(n,r,s,a,this._selectionDirection)}return i}}var __decorate$r=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$r=function(o,e){return function(t,i){e(t,i,o)}};let MoveLinesCommand=class{constructor(e,t,i,n){this._languageConfigurationService=n,this._selection=e,this._isMovingDown=t,this._autoIndent=i,this._selectionId=null,this._moveEndLineSelectionShrink=!1}getEditOperations(e,t){const i=e.getLineCount();if(this._isMovingDown&&this._selection.endLineNumber===i){this._selectionId=t.trackSelection(this._selection);return}if(!this._isMovingDown&&this._selection.startLineNumber===1){this._selectionId=t.trackSelection(this._selection);return}this._moveEndPositionDown=!1;let n=this._selection;n.startLineNumber<n.endLineNumber&&n.endColumn===1&&(this._moveEndPositionDown=!0,n=n.setEndPosition(n.endLineNumber-1,e.getLineMaxColumn(n.endLineNumber-1)));const{tabSize:r,indentSize:s,insertSpaces:a}=e.getOptions(),l=this.buildIndentConverter(r,s,a),d={tokenization:{getLineTokens:c=>e.tokenization.getLineTokens(c),getLanguageId:()=>e.getLanguageId(),getLanguageIdAtPosition:(c,u)=>e.getLanguageIdAtPosition(c,u)},getLineContent:null};if(n.startLineNumber===n.endLineNumber&&e.getLineMaxColumn(n.startLineNumber)===1){const c=n.startLineNumber,u=this._isMovingDown?c+1:c-1;e.getLineMaxColumn(u)===1?t.addEditOperation(new Range$2(1,1,1,1),null):(t.addEditOperation(new Range$2(c,1,c,1),e.getLineContent(u)),t.addEditOperation(new Range$2(u,1,u,e.getLineMaxColumn(u)),null)),n=new Selection$1(u,1,u,1)}else{let c,u;if(this._isMovingDown){c=n.endLineNumber+1,u=e.getLineContent(c),t.addEditOperation(new Range$2(c-1,e.getLineMaxColumn(c-1),c,e.getLineMaxColumn(c)),null);let g=u;if(this.shouldAutoIndent(e,n)){const f=this.matchEnterRule(e,l,r,c,n.startLineNumber-1);if(f!==null){const m=getLeadingWhitespace(e.getLineContent(c)),b=f+getSpaceCnt(m,r);g=generateIndent(b,r,a)+this.trimStart(u)}else{d.getLineContent=b=>b===n.startLineNumber?e.getLineContent(c):e.getLineContent(b);const m=getGoodIndentForLine(this._autoIndent,d,e.getLanguageIdAtPosition(c,1),n.startLineNumber,l,this._languageConfigurationService);if(m!==null){const b=getLeadingWhitespace(e.getLineContent(c)),_=getSpaceCnt(m,r),C=getSpaceCnt(b,r);_!==C&&(g=generateIndent(_,r,a)+this.trimStart(u))}}t.addEditOperation(new Range$2(n.startLineNumber,1,n.startLineNumber,1),g+`
- `);const p=this.matchEnterRuleMovingDown(e,l,r,n.startLineNumber,c,g);if(p!==null)p!==0&&this.getIndentEditsOfMovingBlock(e,t,n,r,a,p);else{d.getLineContent=b=>b===n.startLineNumber?g:b>=n.startLineNumber+1&&b<=n.endLineNumber+1?e.getLineContent(b-1):e.getLineContent(b);const m=getGoodIndentForLine(this._autoIndent,d,e.getLanguageIdAtPosition(c,1),n.startLineNumber+1,l,this._languageConfigurationService);if(m!==null){const b=getLeadingWhitespace(e.getLineContent(n.startLineNumber)),_=getSpaceCnt(m,r),C=getSpaceCnt(b,r);if(_!==C){const S=_-C;this.getIndentEditsOfMovingBlock(e,t,n,r,a,S)}}}}else t.addEditOperation(new Range$2(n.startLineNumber,1,n.startLineNumber,1),g+`
- `)}else if(c=n.startLineNumber-1,u=e.getLineContent(c),t.addEditOperation(new Range$2(c,1,c+1,1),null),t.addEditOperation(new Range$2(n.endLineNumber,e.getLineMaxColumn(n.endLineNumber),n.endLineNumber,e.getLineMaxColumn(n.endLineNumber)),`
- `+u),this.shouldAutoIndent(e,n)){d.getLineContent=f=>f===c?e.getLineContent(n.startLineNumber):e.getLineContent(f);const g=this.matchEnterRule(e,l,r,n.startLineNumber,n.startLineNumber-2);if(g!==null)g!==0&&this.getIndentEditsOfMovingBlock(e,t,n,r,a,g);else{const f=getGoodIndentForLine(this._autoIndent,d,e.getLanguageIdAtPosition(n.startLineNumber,1),c,l,this._languageConfigurationService);if(f!==null){const p=getLeadingWhitespace(e.getLineContent(n.startLineNumber)),m=getSpaceCnt(f,r),b=getSpaceCnt(p,r);if(m!==b){const _=m-b;this.getIndentEditsOfMovingBlock(e,t,n,r,a,_)}}}}}this._selectionId=t.trackSelection(n)}buildIndentConverter(e,t,i){return{shiftIndent:n=>ShiftCommand.shiftIndent(n,n.length+1,e,t,i),unshiftIndent:n=>ShiftCommand.unshiftIndent(n,n.length+1,e,t,i)}}parseEnterResult(e,t,i,n,r){if(r){let s=r.indentation;r.indentAction===IndentAction.None||r.indentAction===IndentAction.Indent?s=r.indentation+r.appendText:r.indentAction===IndentAction.IndentOutdent?s=r.indentation:r.indentAction===IndentAction.Outdent&&(s=t.unshiftIndent(r.indentation)+r.appendText);const a=e.getLineContent(n);if(this.trimStart(a).indexOf(this.trimStart(s))>=0){const l=getLeadingWhitespace(e.getLineContent(n));let d=getLeadingWhitespace(s);const c=getIndentMetadata(e,n,this._languageConfigurationService);c!==null&&c&2&&(d=t.unshiftIndent(d));const u=getSpaceCnt(d,i),g=getSpaceCnt(l,i);return u-g}}return null}matchEnterRuleMovingDown(e,t,i,n,r,s){if(lastNonWhitespaceIndex(s)>=0){const a=e.getLineMaxColumn(r),l=getEnterAction(this._autoIndent,e,new Range$2(r,a,r,a),this._languageConfigurationService);return this.parseEnterResult(e,t,i,n,l)}else{let a=n-1;for(;a>=1;){const c=e.getLineContent(a);if(lastNonWhitespaceIndex(c)>=0)break;a--}if(a<1||n>e.getLineCount())return null;const l=e.getLineMaxColumn(a),d=getEnterAction(this._autoIndent,e,new Range$2(a,l,a,l),this._languageConfigurationService);return this.parseEnterResult(e,t,i,n,d)}}matchEnterRule(e,t,i,n,r,s){let a=r;for(;a>=1;){let c;if(a===r&&s!==void 0?c=s:c=e.getLineContent(a),lastNonWhitespaceIndex(c)>=0)break;a--}if(a<1||n>e.getLineCount())return null;const l=e.getLineMaxColumn(a),d=getEnterAction(this._autoIndent,e,new Range$2(a,l,a,l),this._languageConfigurationService);return this.parseEnterResult(e,t,i,n,d)}trimStart(e){return e.replace(/^\s+/,"")}shouldAutoIndent(e,t){if(this._autoIndent<4||!e.tokenization.isCheapToTokenize(t.startLineNumber))return!1;const i=e.getLanguageIdAtPosition(t.startLineNumber,1),n=e.getLanguageIdAtPosition(t.endLineNumber,1);return!(i!==n||this._languageConfigurationService.getLanguageConfiguration(i).indentRulesSupport===null)}getIndentEditsOfMovingBlock(e,t,i,n,r,s){for(let a=i.startLineNumber;a<=i.endLineNumber;a++){const l=e.getLineContent(a),d=getLeadingWhitespace(l),u=getSpaceCnt(d,n)+s,g=generateIndent(u,n,r);g!==d&&(t.addEditOperation(new Range$2(a,1,a,d.length+1),g),a===i.endLineNumber&&i.endColumn<=d.length+1&&g===""&&(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}};MoveLinesCommand=__decorate$r([__param$r(3,ILanguageConfigurationService)],MoveLinesCommand);class SortLinesCommand{static getCollator(){return SortLinesCommand._COLLATOR||(SortLinesCommand._COLLATOR=new Intl.Collator),SortLinesCommand._COLLATOR}constructor(e,t){this.selection=e,this.descending=t,this.selectionId=null}getEditOperations(e,t){const i=sortLines(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(e===null)return!1;const n=getSortData(e,t,i);if(!n)return!1;for(let r=0,s=n.before.length;r<s;r++)if(n.before[r]!==n.after[r])return!0;return!1}}SortLinesCommand._COLLATOR=null;function getSortData(o,e,t){const i=e.startLineNumber;let n=e.endLineNumber;if(e.endColumn===1&&n--,i>=n)return null;const r=[];for(let a=i;a<=n;a++)r.push(o.getLineContent(a));let s=r.slice(0);return s.sort(SortLinesCommand.getCollator().compare),t===!0&&(s=s.reverse()),{startLineNumber:i,endLineNumber:n,before:r,after:s}}function sortLines(o,e,t){const i=getSortData(o,e,t);return i?EditOperation.replace(new Range$2(i.startLineNumber,1,i.endLineNumber,o.getLineMaxColumn(i.endLineNumber)),i.after.join(`
- `)):null}class AbstractCopyLinesAction extends EditorAction{constructor(e,t){super(t),this.down=e}run(e,t){if(!t.hasModel())return;const i=t.getSelections().map((s,a)=>({selection:s,index:a,ignore:!1}));i.sort((s,a)=>Range$2.compareRangesUsingStarts(s.selection,a.selection));let n=i[0];for(let s=1;s<i.length;s++){const a=i[s];n.selection.endLineNumber===a.selection.startLineNumber&&(n.index<a.index?a.ignore=!0:(n.ignore=!0,n=a))}const r=[];for(const s of i)r.push(new CopyLinesCommand(s.selection,this.down,s.ignore));t.pushUndoStop(),t.executeCommands(this.id,r),t.pushUndoStop()}}class CopyLinesUpAction extends AbstractCopyLinesAction{constructor(){super(!1,{id:"editor.action.copyLinesUpAction",label:localize("lines.copyUp","Copy Line Up"),alias:"Copy Line Up",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:1552,linux:{primary:3600},weight:100},menuOpts:{menuId:MenuId.MenubarSelectionMenu,group:"2_line",title:localize({},"&&Copy Line Up"),order:1}})}}class CopyLinesDownAction extends AbstractCopyLinesAction{constructor(){super(!0,{id:"editor.action.copyLinesDownAction",label:localize("lines.copyDown","Copy Line Down"),alias:"Copy Line Down",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:1554,linux:{primary:3602},weight:100},menuOpts:{menuId:MenuId.MenubarSelectionMenu,group:"2_line",title:localize({},"Co&&py Line Down"),order:2}})}}class DuplicateSelectionAction extends EditorAction{constructor(){super({id:"editor.action.duplicateSelection",label:localize("duplicateSelection","Duplicate Selection"),alias:"Duplicate Selection",precondition:EditorContextKeys.writable,menuOpts:{menuId:MenuId.MenubarSelectionMenu,group:"2_line",title:localize({},"&&Duplicate Selection"),order:5}})}run(e,t,i){if(!t.hasModel())return;const n=[],r=t.getSelections(),s=t.getModel();for(const a of r)if(a.isEmpty())n.push(new CopyLinesCommand(a,!0));else{const l=new Selection$1(a.endLineNumber,a.endColumn,a.endLineNumber,a.endColumn);n.push(new ReplaceCommandThatSelectsText(l,s.getValueInRange(a)))}t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop()}}class AbstractMoveLinesAction extends EditorAction{constructor(e,t){super(t),this.down=e}run(e,t){const i=e.get(ILanguageConfigurationService),n=[],r=t.getSelections()||[],s=t.getOption(12);for(const a of r)n.push(new MoveLinesCommand(a,this.down,s,i));t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop()}}class MoveLinesUpAction extends AbstractMoveLinesAction{constructor(){super(!1,{id:"editor.action.moveLinesUpAction",label:localize("lines.moveUp","Move Line Up"),alias:"Move Line Up",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:528,linux:{primary:528},weight:100},menuOpts:{menuId:MenuId.MenubarSelectionMenu,group:"2_line",title:localize({},"Mo&&ve Line Up"),order:3}})}}class MoveLinesDownAction extends AbstractMoveLinesAction{constructor(){super(!0,{id:"editor.action.moveLinesDownAction",label:localize("lines.moveDown","Move Line Down"),alias:"Move Line Down",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:530,linux:{primary:530},weight:100},menuOpts:{menuId:MenuId.MenubarSelectionMenu,group:"2_line",title:localize({},"Move &&Line Down"),order:4}})}}class AbstractSortLinesAction extends EditorAction{constructor(e,t){super(t),this.descending=e}run(e,t){const i=t.getSelections()||[];for(const r of i)if(!SortLinesCommand.canRun(t.getModel(),r,this.descending))return;const n=[];for(let r=0,s=i.length;r<s;r++)n[r]=new SortLinesCommand(i[r],this.descending);t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop()}}class SortLinesAscendingAction extends AbstractSortLinesAction{constructor(){super(!1,{id:"editor.action.sortLinesAscending",label:localize("lines.sortAscending","Sort Lines Ascending"),alias:"Sort Lines Ascending",precondition:EditorContextKeys.writable})}}class SortLinesDescendingAction extends AbstractSortLinesAction{constructor(){super(!0,{id:"editor.action.sortLinesDescending",label:localize("lines.sortDescending","Sort Lines Descending"),alias:"Sort Lines Descending",precondition:EditorContextKeys.writable})}}class DeleteDuplicateLinesAction extends EditorAction{constructor(){super({id:"editor.action.removeDuplicateLines",label:localize("lines.deleteDuplicates","Delete Duplicate Lines"),alias:"Delete Duplicate Lines",precondition:EditorContextKeys.writable})}run(e,t){if(!t.hasModel())return;const i=t.getModel();if(i.getLineCount()===1&&i.getLineMaxColumn(1)===1)return;const n=[],r=[];let s=0;for(const a of t.getSelections()){const l=new Set,d=[];for(let f=a.startLineNumber;f<=a.endLineNumber;f++){const p=i.getLineContent(f);l.has(p)||(d.push(p),l.add(p))}const c=new Selection$1(a.startLineNumber,1,a.endLineNumber,i.getLineMaxColumn(a.endLineNumber)),u=a.startLineNumber-s,g=new Selection$1(u,1,u+d.length-1,d[d.length-1].length);n.push(EditOperation.replace(c,d.join(`
- `))),r.push(g),s+=a.endLineNumber-a.startLineNumber+1-d.length}t.pushUndoStop(),t.executeEdits(this.id,n,r),t.pushUndoStop()}}class TrimTrailingWhitespaceAction extends EditorAction{constructor(){super({id:TrimTrailingWhitespaceAction.ID,label:localize("lines.trimTrailingWhitespace","Trim Trailing Whitespace"),alias:"Trim Trailing Whitespace",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2102),weight:100}})}run(e,t,i){let n=[];i.reason==="auto-save"&&(n=(t.getSelections()||[]).map(a=>new Position$1(a.positionLineNumber,a.positionColumn)));const r=t.getSelection();if(r===null)return;const s=new TrimTrailingWhitespaceCommand(r,n);t.pushUndoStop(),t.executeCommands(this.id,[s]),t.pushUndoStop()}}TrimTrailingWhitespaceAction.ID="editor.action.trimTrailingWhitespace";class DeleteLinesAction extends EditorAction{constructor(){super({id:"editor.action.deleteLines",label:localize("lines.delete","Delete Line"),alias:"Delete Line",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:3113,weight:100}})}run(e,t){if(!t.hasModel())return;const i=this._getLinesToRemove(t),n=t.getModel();if(n.getLineCount()===1&&n.getLineMaxColumn(1)===1)return;let r=0;const s=[],a=[];for(let l=0,d=i.length;l<d;l++){const c=i[l];let u=c.startLineNumber,g=c.endLineNumber,f=1,p=n.getLineMaxColumn(g);g<n.getLineCount()?(g+=1,p=1):u>1&&(u-=1,f=n.getLineMaxColumn(u)),s.push(EditOperation.replace(new Selection$1(u,f,g,p),"")),a.push(new Selection$1(u-r,c.positionColumn,u-r,c.positionColumn)),r+=c.endLineNumber-c.startLineNumber+1}t.pushUndoStop(),t.executeEdits(this.id,s,a),t.pushUndoStop()}_getLinesToRemove(e){const t=e.getSelections().map(r=>{let s=r.endLineNumber;return r.startLineNumber<r.endLineNumber&&r.endColumn===1&&(s-=1),{startLineNumber:r.startLineNumber,selectionStartColumn:r.selectionStartColumn,endLineNumber:s,positionColumn:r.positionColumn}});t.sort((r,s)=>r.startLineNumber===s.startLineNumber?r.endLineNumber-s.endLineNumber:r.startLineNumber-s.startLineNumber);const i=[];let n=t[0];for(let r=1;r<t.length;r++)n.endLineNumber+1>=t[r].startLineNumber?n.endLineNumber=t[r].endLineNumber:(i.push(n),n=t[r]);return i.push(n),i}}class IndentLinesAction extends EditorAction{constructor(){super({id:"editor.action.indentLines",label:localize("lines.indent","Indent Line"),alias:"Indent Line",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:2142,weight:100}})}run(e,t){const i=t._getViewModel();i&&(t.pushUndoStop(),t.executeCommands(this.id,TypeOperations.indent(i.cursorConfig,t.getModel(),t.getSelections())),t.pushUndoStop())}}class OutdentLinesAction extends EditorAction{constructor(){super({id:"editor.action.outdentLines",label:localize("lines.outdent","Outdent Line"),alias:"Outdent Line",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:2140,weight:100}})}run(e,t){CoreEditingCommands.Outdent.runEditorCommand(e,t,null)}}class InsertLineBeforeAction extends EditorAction{constructor(){super({id:"editor.action.insertLineBefore",label:localize("lines.insertBefore","Insert Line Above"),alias:"Insert Line Above",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:3075,weight:100}})}run(e,t){const i=t._getViewModel();i&&(t.pushUndoStop(),t.executeCommands(this.id,TypeOperations.lineInsertBefore(i.cursorConfig,t.getModel(),t.getSelections())))}}class InsertLineAfterAction extends EditorAction{constructor(){super({id:"editor.action.insertLineAfter",label:localize("lines.insertAfter","Insert Line Below"),alias:"Insert Line Below",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:2051,weight:100}})}run(e,t){const i=t._getViewModel();i&&(t.pushUndoStop(),t.executeCommands(this.id,TypeOperations.lineInsertAfter(i.cursorConfig,t.getModel(),t.getSelections())))}}class AbstractDeleteAllToBoundaryAction extends EditorAction{run(e,t){if(!t.hasModel())return;const i=t.getSelection(),n=this._getRangesToDelete(t),r=[];for(let l=0,d=n.length-1;l<d;l++){const c=n[l],u=n[l+1];Range$2.intersectRanges(c,u)===null?r.push(c):n[l+1]=Range$2.plusRange(c,u)}r.push(n[n.length-1]);const s=this._getEndCursorState(i,r),a=r.map(l=>EditOperation.replace(l,""));t.pushUndoStop(),t.executeEdits(this.id,a,s),t.pushUndoStop()}}class DeleteAllLeftAction extends AbstractDeleteAllToBoundaryAction{constructor(){super({id:"deleteAllLeft",label:localize("lines.deleteAllLeft","Delete All Left"),alias:"Delete All Left",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:2049},weight:100}})}_getEndCursorState(e,t){let i=null;const n=[];let r=0;return t.forEach(s=>{let a;if(s.endColumn===1&&r>0){const l=s.startLineNumber-r;a=new Selection$1(l,s.startColumn,l,s.startColumn)}else a=new Selection$1(s.startLineNumber,s.startColumn,s.startLineNumber,s.startColumn);r+=s.endLineNumber-s.startLineNumber,s.intersectRanges(e)?i=a:n.push(a)}),i&&n.unshift(i),n}_getRangesToDelete(e){const t=e.getSelections();if(t===null)return[];let i=t;const n=e.getModel();return n===null?[]:(i.sort(Range$2.compareRangesUsingStarts),i=i.map(r=>{if(r.isEmpty())if(r.startColumn===1){const s=Math.max(1,r.startLineNumber-1),a=r.startLineNumber===1?1:n.getLineLength(s)+1;return new Range$2(s,a,r.startLineNumber,1)}else return new Range$2(r.startLineNumber,1,r.startLineNumber,r.startColumn);else return new Range$2(r.startLineNumber,1,r.endLineNumber,r.endColumn)}),i)}}class DeleteAllRightAction extends AbstractDeleteAllToBoundaryAction{constructor(){super({id:"deleteAllRight",label:localize("lines.deleteAllRight","Delete All Right"),alias:"Delete All Right",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:297,secondary:[2068]},weight:100}})}_getEndCursorState(e,t){let i=null;const n=[];for(let r=0,s=t.length,a=0;r<s;r++){const l=t[r],d=new Selection$1(l.startLineNumber-a,l.startColumn,l.startLineNumber-a,l.startColumn);l.intersectRanges(e)?i=d:n.push(d)}return i&&n.unshift(i),n}_getRangesToDelete(e){const t=e.getModel();if(t===null)return[];const i=e.getSelections();if(i===null)return[];const n=i.map(r=>{if(r.isEmpty()){const s=t.getLineMaxColumn(r.startLineNumber);return r.startColumn===s?new Range$2(r.startLineNumber,r.startColumn,r.startLineNumber+1,1):new Range$2(r.startLineNumber,r.startColumn,r.startLineNumber,s)}return r});return n.sort(Range$2.compareRangesUsingStarts),n}}class JoinLinesAction extends EditorAction{constructor(){super({id:"editor.action.joinLines",label:localize("lines.joinLines","Join Lines"),alias:"Join Lines",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:0,mac:{primary:296},weight:100}})}run(e,t){const i=t.getSelections();if(i===null)return;let n=t.getSelection();if(n===null)return;i.sort(Range$2.compareRangesUsingStarts);const r=[],s=i.reduce((g,f)=>g.isEmpty()?g.endLineNumber===f.startLineNumber?(n.equalsSelection(g)&&(n=f),f):f.startLineNumber>g.endLineNumber+1?(r.push(g),f):new Selection$1(g.startLineNumber,g.startColumn,f.endLineNumber,f.endColumn):f.startLineNumber>g.endLineNumber?(r.push(g),f):new Selection$1(g.startLineNumber,g.startColumn,f.endLineNumber,f.endColumn));r.push(s);const a=t.getModel();if(a===null)return;const l=[],d=[];let c=n,u=0;for(let g=0,f=r.length;g<f;g++){const p=r[g],m=p.startLineNumber,b=1;let _=0,C,S;const y=a.getLineLength(p.endLineNumber)-p.endColumn;if(p.isEmpty()||p.startLineNumber===p.endLineNumber){const L=p.getStartPosition();L.lineNumber<a.getLineCount()?(C=m+1,S=a.getLineMaxColumn(C)):(C=L.lineNumber,S=a.getLineMaxColumn(L.lineNumber))}else C=p.endLineNumber,S=a.getLineMaxColumn(C);let E=a.getLineContent(m);for(let L=m+1;L<=C;L++){const I=a.getLineContent(L),D=a.getLineFirstNonWhitespaceColumn(L);if(D>=1){let N=!0;E===""&&(N=!1),N&&(E.charAt(E.length-1)===" "||E.charAt(E.length-1)===" ")&&(N=!1,E=E.replace(/[\s\uFEFF\xA0]+$/g," "));const F=I.substr(D-1);E+=(N?" ":"")+F,N?_=F.length+1:_=F.length}else _=0}const x=new Range$2(m,b,C,S);if(!x.isEmpty()){let L;p.isEmpty()?(l.push(EditOperation.replace(x,E)),L=new Selection$1(x.startLineNumber-u,E.length-_+1,m-u,E.length-_+1)):p.startLineNumber===p.endLineNumber?(l.push(EditOperation.replace(x,E)),L=new Selection$1(p.startLineNumber-u,p.startColumn,p.endLineNumber-u,p.endColumn)):(l.push(EditOperation.replace(x,E)),L=new Selection$1(p.startLineNumber-u,p.startColumn,p.startLineNumber-u,E.length-y)),Range$2.intersectRanges(x,n)!==null?c=L:d.push(L)}u+=x.endLineNumber-x.startLineNumber}d.unshift(c),t.pushUndoStop(),t.executeEdits(this.id,l,d),t.pushUndoStop()}}class TransposeAction extends EditorAction{constructor(){super({id:"editor.action.transpose",label:localize("editor.transpose","Transpose Characters around the Cursor"),alias:"Transpose Characters around the Cursor",precondition:EditorContextKeys.writable})}run(e,t){const i=t.getSelections();if(i===null)return;const n=t.getModel();if(n===null)return;const r=[];for(let s=0,a=i.length;s<a;s++){const l=i[s];if(!l.isEmpty())continue;const d=l.getStartPosition(),c=n.getLineMaxColumn(d.lineNumber);if(d.column>=c){if(d.lineNumber===n.getLineCount())continue;const u=new Range$2(d.lineNumber,Math.max(1,d.column-1),d.lineNumber+1,1),g=n.getValueInRange(u).split("").reverse().join("");r.push(new ReplaceCommand(new Selection$1(d.lineNumber,Math.max(1,d.column-1),d.lineNumber+1,1),g))}else{const u=new Range$2(d.lineNumber,Math.max(1,d.column-1),d.lineNumber,d.column+1),g=n.getValueInRange(u).split("").reverse().join("");r.push(new ReplaceCommandThatPreservesSelection(u,g,new Selection$1(d.lineNumber,d.column+1,d.lineNumber,d.column+1)))}}t.pushUndoStop(),t.executeCommands(this.id,r),t.pushUndoStop()}}class AbstractCaseAction extends EditorAction{run(e,t){const i=t.getSelections();if(i===null)return;const n=t.getModel();if(n===null)return;const r=t.getOption(129),s=[];for(const a of i)if(a.isEmpty()){const l=a.getStartPosition(),d=t.getConfiguredWordAtPosition(l);if(!d)continue;const c=new Range$2(l.lineNumber,d.startColumn,l.lineNumber,d.endColumn),u=n.getValueInRange(c);s.push(EditOperation.replace(c,this._modifyText(u,r)))}else{const l=n.getValueInRange(a);s.push(EditOperation.replace(a,this._modifyText(l,r)))}t.pushUndoStop(),t.executeEdits(this.id,s),t.pushUndoStop()}}class UpperCaseAction extends AbstractCaseAction{constructor(){super({id:"editor.action.transformToUppercase",label:localize("editor.transformToUppercase","Transform to Uppercase"),alias:"Transform to Uppercase",precondition:EditorContextKeys.writable})}_modifyText(e,t){return e.toLocaleUpperCase()}}class LowerCaseAction extends AbstractCaseAction{constructor(){super({id:"editor.action.transformToLowercase",label:localize("editor.transformToLowercase","Transform to Lowercase"),alias:"Transform to Lowercase",precondition:EditorContextKeys.writable})}_modifyText(e,t){return e.toLocaleLowerCase()}}class BackwardsCompatibleRegExp{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{}}return this._actual}isSupported(){return this.get()!==null}}class TitleCaseAction extends AbstractCaseAction{constructor(){super({id:"editor.action.transformToTitlecase",label:localize("editor.transformToTitlecase","Transform to Title Case"),alias:"Transform to Title Case",precondition:EditorContextKeys.writable})}_modifyText(e,t){const i=TitleCaseAction.titleBoundary.get();return i?e.toLocaleLowerCase().replace(i,n=>n.toLocaleUpperCase()):e}}TitleCaseAction.titleBoundary=new BackwardsCompatibleRegExp("(^|[^\\p{L}\\p{N}']|((^|\\P{L})'))\\p{L}","gmu");class SnakeCaseAction extends AbstractCaseAction{constructor(){super({id:"editor.action.transformToSnakecase",label:localize("editor.transformToSnakecase","Transform to Snake Case"),alias:"Transform to Snake Case",precondition:EditorContextKeys.writable})}_modifyText(e,t){const i=SnakeCaseAction.caseBoundary.get(),n=SnakeCaseAction.singleLetters.get();return!i||!n?e:e.replace(i,"$1_$2").replace(n,"$1_$2$3").toLocaleLowerCase()}}SnakeCaseAction.caseBoundary=new BackwardsCompatibleRegExp("(\\p{Ll})(\\p{Lu})","gmu");SnakeCaseAction.singleLetters=new BackwardsCompatibleRegExp("(\\p{Lu}|\\p{N})(\\p{Lu})(\\p{Ll})","gmu");class CamelCaseAction extends AbstractCaseAction{constructor(){super({id:"editor.action.transformToCamelcase",label:localize("editor.transformToCamelcase","Transform to Camel Case"),alias:"Transform to Camel Case",precondition:EditorContextKeys.writable})}_modifyText(e,t){const i=CamelCaseAction.wordBoundary.get();if(!i)return e;const n=e.split(i);return n.shift()+n.map(s=>s.substring(0,1).toLocaleUpperCase()+s.substring(1)).join("")}}CamelCaseAction.wordBoundary=new BackwardsCompatibleRegExp("[_\\s-]","gm");class KebabCaseAction extends AbstractCaseAction{static isSupported(){return[this.caseBoundary,this.singleLetters,this.underscoreBoundary].every(t=>t.isSupported())}constructor(){super({id:"editor.action.transformToKebabcase",label:localize("editor.transformToKebabcase","Transform to Kebab Case"),alias:"Transform to Kebab Case",precondition:EditorContextKeys.writable})}_modifyText(e,t){const i=KebabCaseAction.caseBoundary.get(),n=KebabCaseAction.singleLetters.get(),r=KebabCaseAction.underscoreBoundary.get();return!i||!n||!r?e:e.replace(r,"$1-$3").replace(i,"$1-$2").replace(n,"$1-$2").toLocaleLowerCase()}}KebabCaseAction.caseBoundary=new BackwardsCompatibleRegExp("(\\p{Ll})(\\p{Lu})","gmu");KebabCaseAction.singleLetters=new BackwardsCompatibleRegExp("(\\p{Lu}|\\p{N})(\\p{Lu}\\p{Ll})","gmu");KebabCaseAction.underscoreBoundary=new BackwardsCompatibleRegExp("(\\S)(_)(\\S)","gm");registerEditorAction(CopyLinesUpAction);registerEditorAction(CopyLinesDownAction);registerEditorAction(DuplicateSelectionAction);registerEditorAction(MoveLinesUpAction);registerEditorAction(MoveLinesDownAction);registerEditorAction(SortLinesAscendingAction);registerEditorAction(SortLinesDescendingAction);registerEditorAction(DeleteDuplicateLinesAction);registerEditorAction(TrimTrailingWhitespaceAction);registerEditorAction(DeleteLinesAction);registerEditorAction(IndentLinesAction);registerEditorAction(OutdentLinesAction);registerEditorAction(InsertLineBeforeAction);registerEditorAction(InsertLineAfterAction);registerEditorAction(DeleteAllLeftAction);registerEditorAction(DeleteAllRightAction);registerEditorAction(JoinLinesAction);registerEditorAction(TransposeAction);registerEditorAction(UpperCaseAction);registerEditorAction(LowerCaseAction);SnakeCaseAction.caseBoundary.isSupported()&&SnakeCaseAction.singleLetters.isSupported()&®isterEditorAction(SnakeCaseAction);CamelCaseAction.wordBoundary.isSupported()&®isterEditorAction(CamelCaseAction);TitleCaseAction.titleBoundary.isSupported()&®isterEditorAction(TitleCaseAction);KebabCaseAction.isSupported()&®isterEditorAction(KebabCaseAction);var __decorate$q=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$q=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$j=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},LinkedEditingContribution_1;const CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE=new RawContextKey("LinkedEditingInputVisible",!1),DECORATION_CLASS_NAME="linked-editing-decoration";let LinkedEditingContribution=LinkedEditingContribution_1=class extends Disposable{static get(e){return e.getContribution(LinkedEditingContribution_1.ID)}constructor(e,t,i,n,r){super(),this.languageConfigurationService=n,this._syncRangesToken=0,this._localToDispose=this._register(new DisposableStore),this._editor=e,this._providers=i.linkedEditingRangeProvider,this._enabled=!1,this._visibleContextKey=CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE.bindTo(t),this._debounceInformation=r.for(this._providers,"Linked Editing",{max:200}),this._currentDecorations=this._editor.createDecorationsCollection(),this._languageWordPattern=null,this._currentWordPattern=null,this._ignoreChangeEvent=!1,this._localToDispose=this._register(new DisposableStore),this._rangeUpdateTriggerPromise=null,this._rangeSyncTriggerPromise=null,this._currentRequest=null,this._currentRequestPosition=null,this._currentRequestModelVersion=null,this._register(this._editor.onDidChangeModel(()=>this.reinitialize(!0))),this._register(this._editor.onDidChangeConfiguration(s=>{(s.hasChanged(69)||s.hasChanged(92))&&this.reinitialize(!1)})),this._register(this._providers.onDidChange(()=>this.reinitialize(!1))),this._register(this._editor.onDidChangeModelLanguage(()=>this.reinitialize(!0))),this.reinitialize(!0)}reinitialize(e){const t=this._editor.getModel(),i=t!==null&&(this._editor.getOption(69)||this._editor.getOption(92))&&this._providers.has(t);if(i===this._enabled&&!e||(this._enabled=i,this.clearRanges(),this._localToDispose.clear(),!i||t===null))return;this._localToDispose.add(Event.runAndSubscribe(t.onDidChangeLanguageConfiguration,()=>{this._languageWordPattern=this.languageConfigurationService.getLanguageConfiguration(t.getLanguageId()).getWordDefinition()}));const n=new Delayer(this._debounceInformation.get(t)),r=()=>{var l;this._rangeUpdateTriggerPromise=n.trigger(()=>this.updateRanges(),(l=this._debounceDuration)!==null&&l!==void 0?l:this._debounceInformation.get(t))},s=new Delayer(0),a=l=>{this._rangeSyncTriggerPromise=s.trigger(()=>this._syncRanges(l))};this._localToDispose.add(this._editor.onDidChangeCursorPosition(()=>{r()})),this._localToDispose.add(this._editor.onDidChangeModelContent(l=>{if(!this._ignoreChangeEvent&&this._currentDecorations.length>0){const d=this._currentDecorations.getRange(0);if(d&&l.changes.every(c=>d.intersectRanges(c.range))){a(this._syncRangesToken);return}}r()})),this._localToDispose.add({dispose:()=>{n.dispose(),s.dispose()}}),this.updateRanges()}_syncRanges(e){if(!this._editor.hasModel()||e!==this._syncRangesToken||this._currentDecorations.length===0)return;const t=this._editor.getModel(),i=this._currentDecorations.getRange(0);if(!i||i.startLineNumber!==i.endLineNumber)return this.clearRanges();const n=t.getValueInRange(i);if(this._currentWordPattern){const s=n.match(this._currentWordPattern);if((s?s[0].length:0)!==n.length)return this.clearRanges()}const r=[];for(let s=1,a=this._currentDecorations.length;s<a;s++){const l=this._currentDecorations.getRange(s);if(l)if(l.startLineNumber!==l.endLineNumber)r.push({range:l,text:n});else{let d=t.getValueInRange(l),c=n,u=l.startColumn,g=l.endColumn;const f=commonPrefixLength(d,c);u+=f,d=d.substr(f),c=c.substr(f);const p=commonSuffixLength(d,c);g-=p,d=d.substr(0,d.length-p),c=c.substr(0,c.length-p),(u!==g||c.length!==0)&&r.push({range:new Range$2(l.startLineNumber,u,l.endLineNumber,g),text:c})}}if(r.length!==0)try{this._editor.popUndoStop(),this._ignoreChangeEvent=!0;const s=this._editor._getViewModel().getPrevEditOperationType();this._editor.executeEdits("linkedEditing",r),this._editor._getViewModel().setPrevEditOperationType(s)}finally{this._ignoreChangeEvent=!1}}dispose(){this.clearRanges(),super.dispose()}clearRanges(){this._visibleContextKey.set(!1),this._currentDecorations.clear(),this._currentRequest&&(this._currentRequest.cancel(),this._currentRequest=null,this._currentRequestPosition=null)}updateRanges(e=!1){return __awaiter$j(this,void 0,void 0,function*(){if(!this._editor.hasModel()){this.clearRanges();return}const t=this._editor.getPosition();if(!this._enabled&&!e||this._editor.getSelections().length>1){this.clearRanges();return}const i=this._editor.getModel(),n=i.getVersionId();if(this._currentRequestPosition&&this._currentRequestModelVersion===n){if(t.equals(this._currentRequestPosition))return;if(this._currentDecorations.length>0){const s=this._currentDecorations.getRange(0);if(s&&s.containsPosition(t))return}}this.clearRanges(),this._currentRequestPosition=t,this._currentRequestModelVersion=n;const r=createCancelablePromise(s=>__awaiter$j(this,void 0,void 0,function*(){try{const a=new StopWatch(!1),l=yield getLinkedEditingRanges(this._providers,i,t,s);if(this._debounceInformation.update(i,a.elapsed()),r!==this._currentRequest||(this._currentRequest=null,n!==i.getVersionId()))return;let d=[];l!=null&&l.ranges&&(d=l.ranges),this._currentWordPattern=(l==null?void 0:l.wordPattern)||this._languageWordPattern;let c=!1;for(let g=0,f=d.length;g<f;g++)if(Range$2.containsPosition(d[g],t)){if(c=!0,g!==0){const p=d[g];d.splice(g,1),d.unshift(p)}break}if(!c){this.clearRanges();return}const u=d.map(g=>({range:g,options:LinkedEditingContribution_1.DECORATION}));this._visibleContextKey.set(!0),this._currentDecorations.set(u),this._syncRangesToken++}catch(a){isCancellationError(a)||onUnexpectedError(a),(this._currentRequest===r||!this._currentRequest)&&this.clearRanges()}}));return this._currentRequest=r,r})}};LinkedEditingContribution.ID="editor.contrib.linkedEditing";LinkedEditingContribution.DECORATION=ModelDecorationOptions.register({description:"linked-editing",stickiness:0,className:DECORATION_CLASS_NAME});LinkedEditingContribution=LinkedEditingContribution_1=__decorate$q([__param$q(1,IContextKeyService),__param$q(2,ILanguageFeaturesService),__param$q(3,ILanguageConfigurationService),__param$q(4,ILanguageFeatureDebounceService)],LinkedEditingContribution);class LinkedEditingAction extends EditorAction{constructor(){super({id:"editor.action.linkedEditing",label:localize("linkedEditing.label","Start Linked Editing"),alias:"Start Linked Editing",precondition:ContextKeyExpr.and(EditorContextKeys.writable,EditorContextKeys.hasRenameProvider),kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:3132,weight:100}})}runCommand(e,t){const i=e.get(ICodeEditorService),[n,r]=Array.isArray(t)&&t||[void 0,void 0];return URI.isUri(n)&&Position$1.isIPosition(r)?i.openCodeEditor({resource:n},i.getActiveCodeEditor()).then(s=>{s&&(s.setPosition(r),s.invokeWithinContext(a=>(this.reportTelemetry(a,s),this.run(a,s))))},onUnexpectedError):super.runCommand(e,t)}run(e,t){const i=LinkedEditingContribution.get(t);return i?Promise.resolve(i.updateRanges(!0)):Promise.resolve()}}const LinkedEditingCommand=EditorCommand.bindToContribution(LinkedEditingContribution.get);registerEditorCommand(new LinkedEditingCommand({id:"cancelLinkedEditingInput",precondition:CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE,handler:o=>o.clearRanges(),kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,weight:199,primary:9,secondary:[1033]}}));function getLinkedEditingRanges(o,e,t,i){const n=o.ordered(e);return first(n.map(r=>()=>__awaiter$j(this,void 0,void 0,function*(){try{return yield r.provideLinkedEditingRanges(e,t,i)}catch(s){onUnexpectedExternalError(s);return}})),r=>!!r&&isNonEmptyArray(r==null?void 0:r.ranges))}registerColor("editor.linkedEditingBackground",{dark:Color.fromHex("#f00").transparent(.3),light:Color.fromHex("#f00").transparent(.3),hcDark:Color.fromHex("#f00").transparent(.3),hcLight:Color.white},localize("editorLinkedEditingBackground","Background color when the editor auto renames on type."));registerModelAndPositionCommand("_executeLinkedEditingProvider",(o,e,t)=>{const{linkedEditingRangeProvider:i}=o.get(ILanguageFeaturesService);return getLinkedEditingRanges(i,e,t,CancellationToken.None)});registerEditorContribution(LinkedEditingContribution.ID,LinkedEditingContribution,1);registerEditorAction(LinkedEditingAction);var __awaiter$i=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};let Link$1=class{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 __awaiter$i(this,void 0,void 0,function*(){return this._link.url?this._link.url:typeof this._provider.resolveLink=="function"?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 LinksList{constructor(e){this._disposables=new DisposableStore;let t=[];for(const[i,n]of e){const r=i.links.map(s=>new Link$1(s,n));t=LinksList._union(t,r),isDisposable(i)&&this._disposables.add(i)}this.links=t}dispose(){this._disposables.dispose(),this.links.length=0}static _union(e,t){const i=[];let n,r,s,a;for(n=0,s=0,r=e.length,a=t.length;n<r&&s<a;){const l=e[n],d=t[s];if(Range$2.areIntersectingOrTouching(l.range,d.range)){n++;continue}Range$2.compareRangesUsingStarts(l.range,d.range)<0?(i.push(l),n++):(i.push(d),s++)}for(;n<r;n++)i.push(e[n]);for(;s<a;s++)i.push(t[s]);return i}}function getLinks(o,e,t){const i=[],n=o.ordered(e).reverse().map((r,s)=>Promise.resolve(r.provideLinks(e,t)).then(a=>{a&&(i[s]=[a,r])},onUnexpectedExternalError));return Promise.all(n).then(()=>{const r=new LinksList(coalesce(i));return t.isCancellationRequested?(r.dispose(),new LinksList([])):r})}CommandsRegistry.registerCommand("_executeLinkProvider",(o,...e)=>__awaiter$i(void 0,void 0,void 0,function*(){let[t,i]=e;assertType(t instanceof URI),typeof i!="number"&&(i=0);const{linkProvider:n}=o.get(ILanguageFeaturesService),r=o.get(IModelService).getModel(t);if(!r)return[];const s=yield getLinks(n,r,CancellationToken.None);if(!s)return[];for(let l=0;l<Math.min(i,s.links.length);l++)yield s.links[l].resolve(CancellationToken.None);const a=s.links.slice(0);return s.dispose(),a}));var __decorate$p=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$p=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$h=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},LinkDetector_1;let LinkDetector=LinkDetector_1=class extends Disposable{static get(e){return e.getContribution(LinkDetector_1.ID)}constructor(e,t,i,n,r){super(),this.editor=e,this.openerService=t,this.notificationService=i,this.languageFeaturesService=n,this.providers=this.languageFeaturesService.linkProvider,this.debounceInformation=r.for(this.providers,"Links",{min:1e3,max:4e3}),this.computeLinks=this._register(new RunOnceScheduler(()=>this.computeLinksNow(),1e3)),this.computePromise=null,this.activeLinksList=null,this.currentOccurrences={},this.activeLinkDecorationId=null;const s=this._register(new ClickLinkGesture(e));this._register(s.onMouseMoveOrRelevantKeyDown(([a,l])=>{this._onEditorMouseMove(a,l)})),this._register(s.onExecute(a=>{this.onEditorMouseUp(a)})),this._register(s.onCancel(a=>{this.cleanUpActiveLinkDecoration()})),this._register(e.onDidChangeConfiguration(a=>{a.hasChanged(70)&&(this.updateDecorations([]),this.stop(),this.computeLinks.schedule(0))})),this._register(e.onDidChangeModelContent(a=>{this.editor.hasModel()&&this.computeLinks.schedule(this.debounceInformation.get(this.editor.getModel()))})),this._register(e.onDidChangeModel(a=>{this.currentOccurrences={},this.activeLinkDecorationId=null,this.stop(),this.computeLinks.schedule(0)})),this._register(e.onDidChangeModelLanguage(a=>{this.stop(),this.computeLinks.schedule(0)})),this._register(this.providers.onDidChange(a=>{this.stop(),this.computeLinks.schedule(0)})),this.computeLinks.schedule(0)}computeLinksNow(){return __awaiter$h(this,void 0,void 0,function*(){if(!this.editor.hasModel()||!this.editor.getOption(70))return;const e=this.editor.getModel();if(!e.isTooLargeForSyncing()&&this.providers.has(e)){this.activeLinksList&&(this.activeLinksList.dispose(),this.activeLinksList=null),this.computePromise=createCancelablePromise(t=>getLinks(this.providers,e,t));try{const t=new StopWatch(!1);if(this.activeLinksList=yield this.computePromise,this.debounceInformation.update(e,t.elapsed()),e.isDisposed())return;this.updateDecorations(this.activeLinksList.links)}catch(t){onUnexpectedError(t)}finally{this.computePromise=null}}})}updateDecorations(e){const t=this.editor.getOption(77)==="altKey",i=[],n=Object.keys(this.currentOccurrences);for(const s of n){const a=this.currentOccurrences[s];i.push(a.decorationId)}const r=[];if(e)for(const s of e)r.push(LinkOccurrence.decoration(s,t));this.editor.changeDecorations(s=>{const a=s.deltaDecorations(i,r);this.currentOccurrences={},this.activeLinkDecorationId=null;for(let l=0,d=a.length;l<d;l++){const c=new LinkOccurrence(e[l],a[l]);this.currentOccurrences[c.decorationId]=c}})}_onEditorMouseMove(e,t){const i=this.editor.getOption(77)==="altKey";if(this.isEnabled(e,t)){this.cleanUpActiveLinkDecoration();const n=this.getLinkOccurrence(e.target.position);n&&this.editor.changeDecorations(r=>{n.activate(r,i),this.activeLinkDecorationId=n.decorationId})}else this.cleanUpActiveLinkDecoration()}cleanUpActiveLinkDecoration(){const e=this.editor.getOption(77)==="altKey";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(CancellationToken.None).then(r=>{if(typeof r=="string"&&this.editor.hasModel()){const s=this.editor.getModel().uri;if(s.scheme===Schemas.file&&r.startsWith(`${Schemas.file}:`)){const a=URI.parse(r);if(a.scheme===Schemas.file){const l=originalFSPath(a);let d=null;l.startsWith("/./")?d=`.${l.substr(1)}`:l.startsWith("//./")&&(d=`.${l.substr(2)}`),d&&(r=joinPath(s,d))}}}return this.openerService.open(r,{openToSide:t,fromUserGesture:i,allowContributedOpeners:!0,allowCommands:!0,fromWorkspace:!0})},r=>{const s=r instanceof Error?r.message:r;s==="invalid"?this.notificationService.warn(localize("invalid.url","Failed to open this link because it is not well-formed: {0}",n.url.toString())):s==="missing"?this.notificationService.warn(localize("missing.url","Failed to open this link because its target is missing.")):onUnexpectedError(r)})}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 i of t){const n=this.currentOccurrences[i.id];if(n)return n}return null}isEnabled(e,t){return!!(e.target.type===6&&(e.hasTriggerModifier||t&&t.keyCodeIsTriggerKey))}stop(){var e;this.computeLinks.cancel(),this.activeLinksList&&((e=this.activeLinksList)===null||e===void 0||e.dispose(),this.activeLinksList=null),this.computePromise&&(this.computePromise.cancel(),this.computePromise=null)}dispose(){super.dispose(),this.stop()}};LinkDetector.ID="editor.linkDetector";LinkDetector=LinkDetector_1=__decorate$p([__param$p(1,IOpenerService),__param$p(2,INotificationService),__param$p(3,ILanguageFeaturesService),__param$p(4,ILanguageFeatureDebounceService)],LinkDetector);const decoration={general:ModelDecorationOptions.register({description:"detected-link",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link"}),active:ModelDecorationOptions.register({description:"detected-link-active",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link-active"})};class LinkOccurrence{static decoration(e,t){return{range:e.range,options:LinkOccurrence._getOptions(e,t,!1)}}static _getOptions(e,t,i){const n=Object.assign({},i?decoration.active:decoration.general);return n.hoverMessage=getHoverMessage(e,t),n}constructor(e,t){this.link=e,this.decorationId=t}activate(e,t){e.changeDecorationOptions(this.decorationId,LinkOccurrence._getOptions(this.link,t,!0))}deactivate(e,t){e.changeDecorationOptions(this.decorationId,LinkOccurrence._getOptions(this.link,t,!1))}}function getHoverMessage(o,e){const t=o.url&&/^command:/i.test(o.url.toString()),i=o.tooltip?o.tooltip:t?localize("links.navigate.executeCmd","Execute command"):localize("links.navigate.follow","Follow link"),n=e?isMacintosh?localize("links.navigate.kb.meta.mac","cmd + click"):localize("links.navigate.kb.meta","ctrl + click"):isMacintosh?localize("links.navigate.kb.alt.mac","option + click"):localize("links.navigate.kb.alt","alt + click");if(o.url){let r="";if(/^command:/i.test(o.url.toString())){const a=o.url.toString().match(/^command:([^?#]+)/);if(a){const l=a[1];r=localize("tooltip.explanation","Execute command {0}",l)}}return new MarkdownString("",!0).appendLink(o.url.toString(!0).replace(/ /g,"%20"),i,r).appendMarkdown(` (${n})`)}else return new MarkdownString().appendText(`${i} (${n})`)}class OpenLinkAction extends EditorAction{constructor(){super({id:"editor.action.openLink",label:localize("label","Open Link"),alias:"Open Link",precondition:void 0})}run(e,t){const i=LinkDetector.get(t);if(!i||!t.hasModel())return;const n=t.getSelections();for(const r of n){const s=i.getLinkOccurrence(r.getEndPosition());s&&i.openLinkOccurrence(s,!1)}}}registerEditorContribution(LinkDetector.ID,LinkDetector,1);registerEditorAction(OpenLinkAction);class LongLinesHelper extends Disposable{constructor(e){super(),this._editor=e,this._register(this._editor.onMouseDown(t=>{const i=this._editor.getOption(116);i>=0&&t.target.type===6&&t.target.position.column>=i&&this._editor.updateOptions({stopRenderingLineAfter:-1})}))}}LongLinesHelper.ID="editor.contrib.longLinesHelper";registerEditorContribution(LongLinesHelper.ID,LongLinesHelper,2);const wordHighlightBackground=registerColor("editor.wordHighlightBackground",{dark:"#575757B8",light:"#57575740",hcDark:null,hcLight:null},localize("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);registerColor("editor.wordHighlightStrongBackground",{dark:"#004972B8",light:"#0e639c40",hcDark:null,hcLight:null},localize("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);registerColor("editor.wordHighlightTextBackground",{light:wordHighlightBackground,dark:wordHighlightBackground,hcDark:wordHighlightBackground,hcLight:wordHighlightBackground},localize("wordHighlightText","Background color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations."),!0);const wordHighlightBorder=registerColor("editor.wordHighlightBorder",{light:null,dark:null,hcDark:activeContrastBorder,hcLight:activeContrastBorder},localize("wordHighlightBorder","Border color of a symbol during read-access, like reading a variable."));registerColor("editor.wordHighlightStrongBorder",{light:null,dark:null,hcDark:activeContrastBorder,hcLight:activeContrastBorder},localize("wordHighlightStrongBorder","Border color of a symbol during write-access, like writing to a variable."));registerColor("editor.wordHighlightTextBorder",{light:wordHighlightBorder,dark:wordHighlightBorder,hcDark:wordHighlightBorder,hcLight:wordHighlightBorder},localize("wordHighlightTextBorder","Border color of a textual occurrence for a symbol."));const overviewRulerWordHighlightForeground=registerColor("editorOverviewRuler.wordHighlightForeground",{dark:"#A0A0A0CC",light:"#A0A0A0CC",hcDark:"#A0A0A0CC",hcLight:"#A0A0A0CC"},localize("overviewRulerWordHighlightForeground","Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),overviewRulerWordHighlightStrongForeground=registerColor("editorOverviewRuler.wordHighlightStrongForeground",{dark:"#C0A0C0CC",light:"#C0A0C0CC",hcDark:"#C0A0C0CC",hcLight:"#C0A0C0CC"},localize("overviewRulerWordHighlightStrongForeground","Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),overviewRulerWordHighlightTextForeground=registerColor("editorOverviewRuler.wordHighlightTextForeground",{dark:overviewRulerSelectionHighlightForeground,light:overviewRulerSelectionHighlightForeground,hcDark:overviewRulerSelectionHighlightForeground,hcLight:overviewRulerSelectionHighlightForeground},localize("overviewRulerWordHighlightTextForeground","Overview ruler marker color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations."),!0),_WRITE_OPTIONS=ModelDecorationOptions.register({description:"word-highlight-strong",stickiness:1,className:"wordHighlightStrong",overviewRuler:{color:themeColorFromId(overviewRulerWordHighlightStrongForeground),position:OverviewRulerLane.Center},minimap:{color:themeColorFromId(minimapSelectionOccurrenceHighlight),position:MinimapPosition.Inline}}),_TEXT_OPTIONS=ModelDecorationOptions.register({description:"word-highlight-text",stickiness:1,className:"wordHighlightText",overviewRuler:{color:themeColorFromId(overviewRulerWordHighlightTextForeground),position:OverviewRulerLane.Center},minimap:{color:themeColorFromId(minimapSelectionOccurrenceHighlight),position:MinimapPosition.Inline}}),_SELECTION_HIGHLIGHT_OPTIONS=ModelDecorationOptions.register({description:"selection-highlight-overview",stickiness:1,className:"selectionHighlight",overviewRuler:{color:themeColorFromId(overviewRulerSelectionHighlightForeground),position:OverviewRulerLane.Center},minimap:{color:themeColorFromId(minimapSelectionOccurrenceHighlight),position:MinimapPosition.Inline}}),_SELECTION_HIGHLIGHT_OPTIONS_NO_OVERVIEW=ModelDecorationOptions.register({description:"selection-highlight",stickiness:1,className:"selectionHighlight"}),_REGULAR_OPTIONS=ModelDecorationOptions.register({description:"word-highlight",stickiness:1,className:"wordHighlight",overviewRuler:{color:themeColorFromId(overviewRulerWordHighlightForeground),position:OverviewRulerLane.Center},minimap:{color:themeColorFromId(minimapSelectionOccurrenceHighlight),position:MinimapPosition.Inline}});function getHighlightDecorationOptions(o){return o===DocumentHighlightKind$1.Write?_WRITE_OPTIONS:o===DocumentHighlightKind$1.Text?_TEXT_OPTIONS:_REGULAR_OPTIONS}function getSelectionHighlightDecorationOptions(o){return o?_SELECTION_HIGHLIGHT_OPTIONS_NO_OVERVIEW:_SELECTION_HIGHLIGHT_OPTIONS}registerThemingParticipant((o,e)=>{const t=o.getColor(editorSelectionHighlight);t&&e.addRule(`.monaco-editor .selectionHighlight { background-color: ${t.transparent(.5)}; }`)});var __decorate$o=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$o=function(o,e){return function(t,i){e(t,i,o)}},SelectionHighlighter_1;function announceCursorChange(o,e){const t=e.filter(i=>!o.find(n=>n.equals(i)));if(t.length>=1){const i=t.map(r=>`line ${r.viewState.position.lineNumber} column ${r.viewState.position.column}`).join(", "),n=t.length===1?localize("cursorAdded","Cursor added: {0}",i):localize("cursorsAdded","Cursors added: {0}",i);status(n)}}class InsertCursorAbove extends EditorAction{constructor(){super({id:"editor.action.insertCursorAbove",label:localize("mutlicursor.insertAbove","Add Cursor Above"),alias:"Add Cursor Above",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:2576,linux:{primary:1552,secondary:[3088]},weight:100},menuOpts:{menuId:MenuId.MenubarSelectionMenu,group:"3_multi",title:localize({},"&&Add Cursor Above"),order:2}})}run(e,t,i){if(!t.hasModel())return;let n=!0;i&&i.logicalLine===!1&&(n=!1);const r=t._getViewModel();if(r.cursorConfig.readOnly)return;r.model.pushStackElement();const s=r.getCursorStates();r.setCursorStates(i.source,3,CursorMoveCommands.addCursorUp(r,s,n)),r.revealTopMostCursor(i.source),announceCursorChange(s,r.getCursorStates())}}class InsertCursorBelow extends EditorAction{constructor(){super({id:"editor.action.insertCursorBelow",label:localize("mutlicursor.insertBelow","Add Cursor Below"),alias:"Add Cursor Below",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:2578,linux:{primary:1554,secondary:[3090]},weight:100},menuOpts:{menuId:MenuId.MenubarSelectionMenu,group:"3_multi",title:localize({},"A&&dd Cursor Below"),order:3}})}run(e,t,i){if(!t.hasModel())return;let n=!0;i&&i.logicalLine===!1&&(n=!1);const r=t._getViewModel();if(r.cursorConfig.readOnly)return;r.model.pushStackElement();const s=r.getCursorStates();r.setCursorStates(i.source,3,CursorMoveCommands.addCursorDown(r,s,n)),r.revealBottomMostCursor(i.source),announceCursorChange(s,r.getCursorStates())}}class InsertCursorAtEndOfEachLineSelected extends EditorAction{constructor(){super({id:"editor.action.insertCursorAtEndOfEachLineSelected",label:localize("mutlicursor.insertAtEndOfEachLineSelected","Add Cursors to Line Ends"),alias:"Add Cursors to Line Ends",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:1575,weight:100},menuOpts:{menuId:MenuId.MenubarSelectionMenu,group:"3_multi",title:localize({},"Add C&&ursors to Line Ends"),order:4}})}getCursorsForSelection(e,t,i){if(!e.isEmpty()){for(let n=e.startLineNumber;n<e.endLineNumber;n++){const r=t.getLineMaxColumn(n);i.push(new Selection$1(n,r,n,r))}e.endColumn>1&&i.push(new Selection$1(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn))}}run(e,t){if(!t.hasModel())return;const i=t.getModel(),n=t.getSelections(),r=t._getViewModel(),s=r.getCursorStates(),a=[];n.forEach(l=>this.getCursorsForSelection(l,i,a)),a.length>0&&t.setSelections(a),announceCursorChange(s,r.getCursorStates())}}class InsertCursorAtEndOfLineSelected extends EditorAction{constructor(){super({id:"editor.action.addCursorsToBottom",label:localize("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(),r=[];for(let l=i[0].startLineNumber;l<=n;l++)r.push(new Selection$1(l,i[0].startColumn,l,i[0].endColumn));const s=t._getViewModel(),a=s.getCursorStates();r.length>0&&t.setSelections(r),announceCursorChange(a,s.getCursorStates())}}class InsertCursorAtTopOfLineSelected extends EditorAction{constructor(){super({id:"editor.action.addCursorsToTop",label:localize("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(),n=[];for(let a=i[0].startLineNumber;a>=1;a--)n.push(new Selection$1(a,i[0].startColumn,a,i[0].endColumn));const r=t._getViewModel(),s=r.getCursorStates();n.length>0&&t.setSelections(n),announceCursorChange(s,r.getCursorStates())}}class MultiCursorSessionResult{constructor(e,t,i){this.selections=e,this.revealRange=t,this.revealScrollType=i}}class MultiCursorSession{static create(e,t){if(!e.hasModel())return null;const i=t.getState();if(!e.hasTextFocus()&&i.isRevealed&&i.searchString.length>0)return new MultiCursorSession(e,t,!1,i.searchString,i.wholeWord,i.matchCase,null);let n=!1,r,s;const a=e.getSelections();a.length===1&&a[0].isEmpty()?(n=!0,r=!0,s=!0):(r=i.wholeWord,s=i.matchCase);const l=e.getSelection();let d,c=null;if(l.isEmpty()){const u=e.getConfiguredWordAtPosition(l.getStartPosition());if(!u)return null;d=u.word,c=new Selection$1(l.startLineNumber,u.startColumn,l.startLineNumber,u.endColumn)}else d=e.getModel().getValueInRange(l).replace(/\r\n/g,`
- `);return new MultiCursorSession(e,t,n,d,r,s,c)}constructor(e,t,i,n,r,s,a){this._editor=e,this.findController=t,this.isDisconnectedFromFindController=i,this.searchText=n,this.wholeWord=r,this.matchCase=s,this.currentMatch=a}addSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;const e=this._getNextMatch();if(!e)return null;const t=this._editor.getSelections();return new MultiCursorSessionResult(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 MultiCursorSessionResult(t.slice(0,t.length-1).concat(e),e,0)}_getNextMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const n=this.currentMatch;return this.currentMatch=null,n}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(129):null,!1);return i?new Selection$1(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 MultiCursorSessionResult(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 MultiCursorSessionResult(t.slice(0,t.length-1).concat(e),e,0)}_getPreviousMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const n=this.currentMatch;return this.currentMatch=null,n}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(129):null,!1);return i?new Selection$1(i.range.startLineNumber,i.range.startColumn,i.range.endLineNumber,i.range.endColumn):null}selectAll(e){if(!this._editor.hasModel())return[];this.findController.highlightFindOptions();const t=this._editor.getModel();return e?t.findMatches(this.searchText,e,!1,this.matchCase,this.wholeWord?this._editor.getOption(129):null,!1,1073741824):t.findMatches(this.searchText,!0,!1,this.matchCase,this.wholeWord?this._editor.getOption(129):null,!1,1073741824)}}class MultiCursorSelectionController extends Disposable{static get(e){return e.getContribution(MultiCursorSelectionController.ID)}constructor(e){super(),this._sessionDispose=this._register(new DisposableStore),this._editor=e,this._ignoreSelectionChange=!1,this._session=null}dispose(){this._endSession(),super.dispose()}_beginSessionIfNeeded(e){if(!this._session){const t=MultiCursorSession.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(n=>{this._ignoreSelectionChange||this._endSession()})),this._sessionDispose.add(this._editor.onDidBlurEditorText(()=>{this._endSession()})),this._sessionDispose.add(e.getState().onFindReplaceStateChange(n=>{(n.matchCase||n.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 Selection$1(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 n=e.getState().matchCase;if(!modelRangesContainSameText(this._editor.getModel(),t,n)){const s=this._editor.getModel(),a=[];for(let l=0,d=t.length;l<d;l++)a[l]=this._expandEmptyToWord(s,t[l]);this._editor.setSelections(a);return}}}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){const n=this._editor.getModel();i.searchScope?t=n.findMatches(i.searchString,i.searchScope,i.isRegex,i.matchCase,i.wholeWord?this._editor.getOption(129):null,!1,1073741824):t=n.findMatches(i.searchString,!0,i.isRegex,i.matchCase,i.wholeWord?this._editor.getOption(129):null,!1,1073741824)}else{if(this._beginSessionIfNeeded(e),!this._session)return;t=this._session.selectAll(i.searchScope)}if(t.length>0){const n=this._editor.getSelection();for(let r=0,s=t.length;r<s;r++){const a=t[r];if(a.range.intersectRanges(n)){t[r]=t[0],t[0]=a;break}}this._setSelections(t.map(r=>new Selection$1(r.range.startLineNumber,r.range.startColumn,r.range.endLineNumber,r.range.endColumn)))}}}MultiCursorSelectionController.ID="editor.contrib.multiCursorController";class MultiCursorSelectionControllerAction extends EditorAction{run(e,t){const i=MultiCursorSelectionController.get(t);if(!i)return;const n=t._getViewModel();if(n){const r=n.getCursorStates(),s=CommonFindController.get(t);if(s)this._run(i,s);else{const a=e.get(IInstantiationService).createInstance(CommonFindController,t);this._run(i,a),a.dispose()}announceCursorChange(r,n.getCursorStates())}}}class AddSelectionToNextFindMatchAction extends MultiCursorSelectionControllerAction{constructor(){super({id:"editor.action.addSelectionToNextFindMatch",label:localize("addSelectionToNextFindMatch","Add Selection To Next Find Match"),alias:"Add Selection To Next Find Match",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.focus,primary:2082,weight:100},menuOpts:{menuId:MenuId.MenubarSelectionMenu,group:"3_multi",title:localize({},"Add &&Next Occurrence"),order:5}})}_run(e,t){e.addSelectionToNextFindMatch(t)}}class AddSelectionToPreviousFindMatchAction extends MultiCursorSelectionControllerAction{constructor(){super({id:"editor.action.addSelectionToPreviousFindMatch",label:localize("addSelectionToPreviousFindMatch","Add Selection To Previous Find Match"),alias:"Add Selection To Previous Find Match",precondition:void 0,menuOpts:{menuId:MenuId.MenubarSelectionMenu,group:"3_multi",title:localize({},"Add P&&revious Occurrence"),order:6}})}_run(e,t){e.addSelectionToPreviousFindMatch(t)}}class MoveSelectionToNextFindMatchAction extends MultiCursorSelectionControllerAction{constructor(){super({id:"editor.action.moveSelectionToNextFindMatch",label:localize("moveSelectionToNextFindMatch","Move Last Selection To Next Find Match"),alias:"Move Last Selection To Next Find Match",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.focus,primary:KeyChord(2089,2082),weight:100}})}_run(e,t){e.moveSelectionToNextFindMatch(t)}}class MoveSelectionToPreviousFindMatchAction extends MultiCursorSelectionControllerAction{constructor(){super({id:"editor.action.moveSelectionToPreviousFindMatch",label:localize("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 SelectHighlightsAction extends MultiCursorSelectionControllerAction{constructor(){super({id:"editor.action.selectHighlights",label:localize("selectAllOccurrencesOfFindMatch","Select All Occurrences of Find Match"),alias:"Select All Occurrences of Find Match",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.focus,primary:3114,weight:100},menuOpts:{menuId:MenuId.MenubarSelectionMenu,group:"3_multi",title:localize({},"Select All &&Occurrences"),order:7}})}_run(e,t){e.selectAll(t)}}class CompatChangeAll extends MultiCursorSelectionControllerAction{constructor(){super({id:"editor.action.changeAll",label:localize("changeAll.label","Change All Occurrences"),alias:"Change All Occurrences",precondition:ContextKeyExpr.and(EditorContextKeys.writable,EditorContextKeys.editorTextFocus),kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:2108,weight:100},contextMenuOpts:{group:"1_modification",order:1.2}})}_run(e,t){e.selectAll(t)}}class SelectionHighlighterState{constructor(e,t,i,n,r){this._model=e,this._searchText=t,this._matchCase=i,this._wordSeparators=n,this._modelVersionId=this._model.getVersionId(),this._cachedFindMatches=null,r&&this._model===r._model&&this._searchText===r._searchText&&this._matchCase===r._matchCase&&this._wordSeparators===r._wordSeparators&&this._modelVersionId===r._modelVersionId&&(this._cachedFindMatches=r._cachedFindMatches)}findMatches(){return this._cachedFindMatches===null&&(this._cachedFindMatches=this._model.findMatches(this._searchText,!0,!1,this._matchCase,this._wordSeparators,!1).map(e=>e.range),this._cachedFindMatches.sort(Range$2.compareRangesUsingStarts)),this._cachedFindMatches}}let SelectionHighlighter=SelectionHighlighter_1=class extends Disposable{constructor(e,t){super(),this._languageFeaturesService=t,this.editor=e,this._isEnabled=e.getOption(107),this._decorations=e.createDecorationsCollection(),this.updateSoon=this._register(new RunOnceScheduler(()=>this._update(),300)),this.state=null,this._register(e.onDidChangeConfiguration(n=>{this._isEnabled=e.getOption(107)})),this._register(e.onDidChangeCursorSelection(n=>{this._isEnabled&&(n.selection.isEmpty()?n.reason===3?(this.state&&this._setState(null),this.updateSoon.schedule()):this._setState(null):this._update())})),this._register(e.onDidChangeModel(n=>{this._setState(null)})),this._register(e.onDidChangeModelContent(n=>{this._isEnabled&&this.updateSoon.schedule()}));const i=CommonFindController.get(e);i&&this._register(i.getState().onFindReplaceStateChange(n=>{this._update()})),this.updateSoon.schedule()}_update(){this._setState(SelectionHighlighter_1._createState(this.state,this._isEnabled,this.editor))}static _createState(e,t,i){if(!t||!i.hasModel())return null;const n=i.getSelection();if(n.startLineNumber!==n.endLineNumber)return null;const r=MultiCursorSelectionController.get(i);if(!r)return null;const s=CommonFindController.get(i);if(!s)return null;let a=r.getSession(s);if(!a){const c=i.getSelections();if(c.length>1){const g=s.getState().matchCase;if(!modelRangesContainSameText(i.getModel(),c,g))return null}a=MultiCursorSession.create(i,s)}if(!a||a.currentMatch||/^[ \t]+$/.test(a.searchText)||a.searchText.length>200)return null;const l=s.getState(),d=l.matchCase;if(l.isRevealed){let c=l.searchString;d||(c=c.toLowerCase());let u=a.searchText;if(d||(u=u.toLowerCase()),c===u&&a.matchCase===l.matchCase&&a.wholeWord===l.wholeWord&&!l.isRegex)return null}return new SelectionHighlighterState(i.getModel(),a.searchText,a.matchCase,a.wholeWord?i.getOption(129):null,e)}_setState(e){if(this.state=e,!this.state){this._decorations.clear();return}if(!this.editor.hasModel())return;const t=this.editor.getModel();if(t.isTooLargeForTokenization())return;const i=this.state.findMatches(),n=this.editor.getSelections();n.sort(Range$2.compareRangesUsingStarts);const r=[];for(let l=0,d=0,c=i.length,u=n.length;l<c;){const g=i[l];if(d>=u)r.push(g),l++;else{const f=Range$2.compareRangesUsingStarts(g,n[d]);f<0?((n[d].isEmpty()||!Range$2.areIntersecting(g,n[d]))&&r.push(g),l++):(f>0||l++,d++)}}const s=this._languageFeaturesService.documentHighlightProvider.has(t)&&this.editor.getOption(80),a=r.map(l=>({range:l,options:getSelectionHighlightDecorationOptions(s)}));this._decorations.set(a)}dispose(){this._setState(null),super.dispose()}};SelectionHighlighter.ID="editor.contrib.selectionHighlighter";SelectionHighlighter=SelectionHighlighter_1=__decorate$o([__param$o(1,ILanguageFeaturesService)],SelectionHighlighter);function modelRangesContainSameText(o,e,t){const i=getValueInRange(o,e[0],!t);for(let n=1,r=e.length;n<r;n++){const s=e[n];if(s.isEmpty())return!1;const a=getValueInRange(o,s,!t);if(i!==a)return!1}return!0}function getValueInRange(o,e,t){const i=o.getValueInRange(e);return t?i.toLowerCase():i}class FocusNextCursor extends EditorAction{constructor(){super({id:"editor.action.focusNextCursor",label:localize("mutlicursor.focusNextCursor","Focus Next Cursor"),description:{description:localize("mutlicursor.focusNextCursor.description","Focuses the next cursor"),args:[]},alias:"Focus Next Cursor",precondition:void 0})}run(e,t,i){if(!t.hasModel())return;const n=t._getViewModel();if(n.cursorConfig.readOnly)return;n.model.pushStackElement();const r=Array.from(n.getCursorStates()),s=r.shift();s&&(r.push(s),n.setCursorStates(i.source,3,r),n.revealPrimaryCursor(i.source,!0),announceCursorChange(r,n.getCursorStates()))}}class FocusPreviousCursor extends EditorAction{constructor(){super({id:"editor.action.focusPreviousCursor",label:localize("mutlicursor.focusPreviousCursor","Focus Previous Cursor"),description:{description:localize("mutlicursor.focusPreviousCursor.description","Focuses the previous cursor"),args:[]},alias:"Focus Previous Cursor",precondition:void 0})}run(e,t,i){if(!t.hasModel())return;const n=t._getViewModel();if(n.cursorConfig.readOnly)return;n.model.pushStackElement();const r=Array.from(n.getCursorStates()),s=r.pop();s&&(r.unshift(s),n.setCursorStates(i.source,3,r),n.revealPrimaryCursor(i.source,!0),announceCursorChange(r,n.getCursorStates()))}}registerEditorContribution(MultiCursorSelectionController.ID,MultiCursorSelectionController,4);registerEditorContribution(SelectionHighlighter.ID,SelectionHighlighter,1);registerEditorAction(InsertCursorAbove);registerEditorAction(InsertCursorBelow);registerEditorAction(InsertCursorAtEndOfEachLineSelected);registerEditorAction(AddSelectionToNextFindMatchAction);registerEditorAction(AddSelectionToPreviousFindMatchAction);registerEditorAction(MoveSelectionToNextFindMatchAction);registerEditorAction(MoveSelectionToPreviousFindMatchAction);registerEditorAction(SelectHighlightsAction);registerEditorAction(CompatChangeAll);registerEditorAction(InsertCursorAtEndOfLineSelected);registerEditorAction(InsertCursorAtTopOfLineSelected);registerEditorAction(FocusNextCursor);registerEditorAction(FocusPreviousCursor);var __awaiter$g=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};const Context={Visible:new RawContextKey("parameterHintsVisible",!1),MultipleSignatures:new RawContextKey("parameterHintsMultipleSignatures",!1)};function provideSignatureHelp(o,e,t,i,n){return __awaiter$g(this,void 0,void 0,function*(){const r=o.ordered(e);for(const s of r)try{const a=yield s.provideSignatureHelp(e,t,n,i);if(a)return a}catch(a){onUnexpectedExternalError(a)}})}CommandsRegistry.registerCommand("_executeSignatureHelpProvider",(o,...e)=>__awaiter$g(void 0,void 0,void 0,function*(){const[t,i,n]=e;assertType(URI.isUri(t)),assertType(Position$1.isIPosition(i)),assertType(typeof n=="string"||!n);const r=o.get(ILanguageFeaturesService),s=yield o.get(ITextModelService).createModelReference(t);try{const a=yield provideSignatureHelp(r.signatureHelpProvider,s.object.textEditorModel,Position$1.lift(i),{triggerKind:SignatureHelpTriggerKind$1.Invoke,isRetrigger:!1,triggerCharacter:n},CancellationToken.None);return a?(setTimeout(()=>a.dispose(),0),a.value):void 0}finally{s.dispose()}}));var __awaiter$f=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},ParameterHintState;(function(o){o.Default={type:0};class e{constructor(n,r){this.request=n,this.previouslyActiveHints=r,this.type=2}}o.Pending=e;class t{constructor(n){this.hints=n,this.type=1}}o.Active=t})(ParameterHintState||(ParameterHintState={}));class ParameterHintsModel extends Disposable{constructor(e,t,i=ParameterHintsModel.DEFAULT_DELAY){super(),this._onChangedHints=this._register(new Emitter$1),this.onChangedHints=this._onChangedHints.event,this.triggerOnType=!1,this._state=ParameterHintState.Default,this._pendingTriggers=[],this._lastSignatureHelpResult=this._register(new MutableDisposable),this.triggerChars=new CharacterSet,this.retriggerChars=new CharacterSet,this.triggerId=0,this.editor=e,this.providers=t,this.throttledDelayer=new Delayer(i),this._register(this.editor.onDidBlurEditorWidget(()=>this.cancel())),this._register(this.editor.onDidChangeConfiguration(()=>this.onEditorConfigurationChange())),this._register(this.editor.onDidChangeModel(n=>this.onModelChanged())),this._register(this.editor.onDidChangeModelLanguage(n=>this.onModelChanged())),this._register(this.editor.onDidChangeCursorSelection(n=>this.onCursorChange(n))),this._register(this.editor.onDidChangeModelContent(n=>this.onModelContentChange())),this._register(this.providers.onDidChange(this.onModelChanged,this)),this._register(this.editor.onDidType(n=>this.onDidType(n))),this.onEditorConfigurationChange(),this.onModelChanged()}get state(){return this._state}set state(e){this._state.type===2&&this._state.request.cancel(),this._state=e}cancel(e=!1){this.state=ParameterHintState.Default,this.throttledDelayer.cancel(),e||this._onChangedHints.fire(void 0)}trigger(e,t){const i=this.editor.getModel();if(!i||!this.providers.has(i))return;const n=++this.triggerId;this._pendingTriggers.push(e),this.throttledDelayer.trigger(()=>this.doTrigger(n),t).catch(onUnexpectedError)}next(){if(this.state.type!==1)return;const e=this.state.hints.signatures.length,t=this.state.hints.activeSignature,i=t%e===e-1,n=this.editor.getOption(85).cycle;if((e<2||i)&&!n){this.cancel();return}this.updateActiveSignature(i&&n?0:t+1)}previous(){if(this.state.type!==1)return;const e=this.state.hints.signatures.length,t=this.state.hints.activeSignature,i=t===0,n=this.editor.getOption(85).cycle;if((e<2||i)&&!n){this.cancel();return}this.updateActiveSignature(i&&n?e-1:t-1)}updateActiveSignature(e){this.state.type===1&&(this.state=new ParameterHintState.Active(Object.assign(Object.assign({},this.state.hints),{activeSignature:e})),this._onChangedHints.fire(this.state.hints))}doTrigger(e){return __awaiter$f(this,void 0,void 0,function*(){const t=this.state.type===1||this.state.type===2,i=this.getLastActiveHints();if(this.cancel(!0),this._pendingTriggers.length===0)return!1;const n=this._pendingTriggers.reduce(mergeTriggerContexts);this._pendingTriggers=[];const r={triggerKind:n.triggerKind,triggerCharacter:n.triggerCharacter,isRetrigger:t,activeSignatureHelp:i};if(!this.editor.hasModel())return!1;const s=this.editor.getModel(),a=this.editor.getPosition();this.state=new ParameterHintState.Pending(createCancelablePromise(l=>provideSignatureHelp(this.providers,s,a,r,l)),i);try{const l=yield this.state.request;return e!==this.triggerId?(l==null||l.dispose(),!1):!l||!l.value.signatures||l.value.signatures.length===0?(l==null||l.dispose(),this._lastSignatureHelpResult.clear(),this.cancel(),!1):(this.state=new ParameterHintState.Active(l.value),this._lastSignatureHelpResult.value=l,this._onChangedHints.fire(this.state.hints),!0)}catch(l){return e===this.triggerId&&(this.state=ParameterHintState.Default),onUnexpectedError(l),!1}})}getLastActiveHints(){switch(this.state.type){case 1:return this.state.hints;case 2:return this.state.previouslyActiveHints;default:return}}get isTriggered(){return this.state.type===1||this.state.type===2||this.throttledDelayer.isTriggered()}onModelChanged(){this.cancel(),this.triggerChars.clear(),this.retriggerChars.clear();const e=this.editor.getModel();if(e)for(const t of this.providers.ordered(e)){for(const i of t.signatureHelpTriggerCharacters||[])if(i.length){const n=i.charCodeAt(0);this.triggerChars.add(n),this.retriggerChars.add(n)}for(const i of t.signatureHelpRetriggerCharacters||[])i.length&&this.retriggerChars.add(i.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:SignatureHelpTriggerKind$1.TriggerCharacter,triggerCharacter:e.charAt(t)})}onCursorChange(e){e.source==="mouse"?this.cancel():this.isTriggered&&this.trigger({triggerKind:SignatureHelpTriggerKind$1.ContentChange})}onModelContentChange(){this.isTriggered&&this.trigger({triggerKind:SignatureHelpTriggerKind$1.ContentChange})}onEditorConfigurationChange(){this.triggerOnType=this.editor.getOption(85).enabled,this.triggerOnType||this.cancel()}dispose(){this.cancel(!0),super.dispose()}}ParameterHintsModel.DEFAULT_DELAY=120;function mergeTriggerContexts(o,e){switch(e.triggerKind){case SignatureHelpTriggerKind$1.Invoke:return e;case SignatureHelpTriggerKind$1.ContentChange:return o;case SignatureHelpTriggerKind$1.TriggerCharacter:default:return e}}var __decorate$n=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$n=function(o,e){return function(t,i){e(t,i,o)}},ParameterHintsWidget_1;const $=$$d,parameterHintsNextIcon=registerIcon("parameter-hints-next",Codicon.chevronDown,localize("parameterHintsNextIcon","Icon for show next parameter hint.")),parameterHintsPreviousIcon=registerIcon("parameter-hints-previous",Codicon.chevronUp,localize("parameterHintsPreviousIcon","Icon for show previous parameter hint."));let ParameterHintsWidget=ParameterHintsWidget_1=class extends Disposable{constructor(e,t,i,n,r){super(),this.editor=e,this.model=t,this.renderDisposeables=this._register(new DisposableStore),this.visible=!1,this.announcedLabel=null,this.allowEditorOverflow=!0,this.markdownRenderer=this._register(new MarkdownRenderer({editor:e},r,n)),this.keyVisible=Context.Visible.bindTo(i),this.keyMultipleSignatures=Context.MultipleSignatures.bindTo(i)}createParameterHintDOMNodes(){const e=$(".editor-widget.parameter-hints-widget"),t=append$1(e,$(".phwrapper"));t.tabIndex=-1;const i=append$1(t,$(".controls")),n=append$1(i,$(".button"+ThemeIcon.asCSSSelector(parameterHintsPreviousIcon))),r=append$1(i,$(".overloads")),s=append$1(i,$(".button"+ThemeIcon.asCSSSelector(parameterHintsNextIcon)));this._register(addDisposableListener(n,"click",g=>{EventHelper.stop(g),this.previous()})),this._register(addDisposableListener(s,"click",g=>{EventHelper.stop(g),this.next()}));const a=$(".body"),l=new DomScrollableElement(a,{alwaysConsumeMouseWheel:!0});this._register(l),t.appendChild(l.getDomNode());const d=append$1(a,$(".signature")),c=append$1(a,$(".docs"));e.style.userSelect="text",this.domNodes={element:e,signature:d,overloads:r,docs:c,scrollbar:l},this.editor.addContentWidget(this),this.hide(),this._register(this.editor.onDidChangeCursorSelection(g=>{this.visible&&this.editor.layoutContentWidget(this)}));const u=()=>{if(!this.domNodes)return;const g=this.editor.getOption(50);this.domNodes.element.style.fontSize=`${g.fontSize}px`,this.domNodes.element.style.lineHeight=`${g.lineHeight/g.fontSize}`};u(),this._register(Event.chain(this.editor.onDidChangeConfiguration.bind(this.editor),g=>g.filter(f=>f.hasChanged(50)))(u)),this._register(this.editor.onDidLayoutChange(g=>this.updateMaxHeight())),this.updateMaxHeight()}show(){this.visible||(this.domNodes||this.createParameterHintDOMNodes(),this.keyVisible.set(!0),this.visible=!0,setTimeout(()=>{var e;(e=this.domNodes)===null||e===void 0||e.element.classList.add("visible")},100),this.editor.layoutContentWidget(this))}hide(){var e;this.renderDisposeables.clear(),this.visible&&(this.keyVisible.reset(),this.visible=!1,this.announcedLabel=null,(e=this.domNodes)===null||e===void 0||e.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 n=e.signatures[e.activeSignature];if(!n)return;const r=append$1(this.domNodes.signature,$(".code")),s=this.editor.getOption(50);r.style.fontSize=`${s.fontSize}px`,r.style.fontFamily=s.fontFamily;const a=n.parameters.length>0,l=(t=n.activeParameter)!==null&&t!==void 0?t:e.activeParameter;if(a)this.renderParameters(r,n,l);else{const u=append$1(r,$("span"));u.textContent=n.label}const d=n.parameters[l];if(d!=null&&d.documentation){const u=$("span.documentation");if(typeof d.documentation=="string")u.textContent=d.documentation;else{const g=this.renderMarkdownDocs(d.documentation);u.appendChild(g.element)}append$1(this.domNodes.docs,$("p",{},u))}if(n.documentation!==void 0)if(typeof n.documentation=="string")append$1(this.domNodes.docs,$("p",{},n.documentation));else{const u=this.renderMarkdownDocs(n.documentation);append$1(this.domNodes.docs,u.element)}const c=this.hasDocs(n,d);if(this.domNodes.signature.classList.toggle("has-docs",c),this.domNodes.docs.classList.toggle("empty",!c),this.domNodes.overloads.textContent=String(e.activeSignature+1).padStart(e.signatures.length.toString().length,"0")+"/"+e.signatures.length,d){let u="";const g=n.parameters[l];Array.isArray(g.label)?u=n.label.substring(g.label[0],g.label[1]):u=g.label,g.documentation&&(u+=typeof g.documentation=="string"?`, ${g.documentation}`:`, ${g.documentation.value}`),n.documentation&&(u+=typeof n.documentation=="string"?`, ${n.documentation}`:`, ${n.documentation.value}`),this.announcedLabel!==u&&(alert(localize("hint","{0}, hint",u)),this.announcedLabel=u)}this.editor.layoutContentWidget(this),this.domNodes.scrollbar.scanDomNode()}renderMarkdownDocs(e){const t=this.renderDisposeables.add(this.markdownRenderer.render(e,{asyncRenderCallback:()=>{var i;(i=this.domNodes)===null||i===void 0||i.scrollbar.scanDomNode()}}));return t.element.classList.add("markdown-docs"),t}hasDocs(e,t){return!!(t&&typeof t.documentation=="string"&&assertIsDefined(t.documentation).length>0||t&&typeof t.documentation=="object"&&assertIsDefined(t.documentation).value.length>0||e.documentation&&typeof e.documentation=="string"&&assertIsDefined(e.documentation).length>0||e.documentation&&typeof e.documentation=="object"&&assertIsDefined(e.documentation.value).length>0)}renderParameters(e,t,i){const[n,r]=this.getParameterLabelOffsets(t,i),s=document.createElement("span");s.textContent=t.label.substring(0,n);const a=document.createElement("span");a.textContent=t.label.substring(n,r),a.className="parameter active";const l=document.createElement("span");l.textContent=t.label.substring(r),append$1(e,s,a,l)}getParameterLabelOffsets(e,t){const i=e.parameters[t];if(i){if(Array.isArray(i.label))return i.label;if(i.label.length){const n=new RegExp(`(\\W|^)${escapeRegExpCharacters(i.label)}(?=\\W|$)`,"g");n.test(e.label);const r=n.lastIndex-i.label.length;return r>=0?[r,n.lastIndex]:[0,0]}else return[0,0]}else return[0,0]}next(){this.editor.focus(),this.model.next()}previous(){this.editor.focus(),this.model.previous()}getDomNode(){return this.domNodes||this.createParameterHintDOMNodes(),this.domNodes.element}getId(){return ParameterHintsWidget_1.ID}updateMaxHeight(){if(!this.domNodes)return;const t=`${Math.max(this.editor.getLayoutInfo().height/4,250)}px`;this.domNodes.element.style.maxHeight=t;const i=this.domNodes.element.getElementsByClassName("phwrapper");i.length&&(i[0].style.maxHeight=t)}};ParameterHintsWidget.ID="editor.widget.parameterHintsWidget";ParameterHintsWidget=ParameterHintsWidget_1=__decorate$n([__param$n(2,IContextKeyService),__param$n(3,IOpenerService),__param$n(4,ILanguageService)],ParameterHintsWidget);registerColor("editorHoverWidget.highlightForeground",{dark:listHighlightForeground,light:listHighlightForeground,hcDark:listHighlightForeground,hcLight:listHighlightForeground},localize("editorHoverWidgetHighlightForeground","Foreground color of the active item in the parameter hint."));var __decorate$m=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$m=function(o,e){return function(t,i){e(t,i,o)}},ParameterHintsController_1;let ParameterHintsController=ParameterHintsController_1=class extends Disposable{static get(e){return e.getContribution(ParameterHintsController_1.ID)}constructor(e,t,i){super(),this.editor=e,this.model=this._register(new ParameterHintsModel(e,i.signatureHelpProvider)),this._register(this.model.onChangedHints(n=>{var r;n?(this.widget.value.show(),this.widget.value.render(n)):(r=this.widget.rawValue)===null||r===void 0||r.hide()})),this.widget=new Lazy(()=>this._register(t.createInstance(ParameterHintsWidget,this.editor,this.model)))}cancel(){this.model.cancel()}previous(){var e;(e=this.widget.rawValue)===null||e===void 0||e.previous()}next(){var e;(e=this.widget.rawValue)===null||e===void 0||e.next()}trigger(e){this.model.trigger(e,0)}};ParameterHintsController.ID="editor.controller.parameterHints";ParameterHintsController=ParameterHintsController_1=__decorate$m([__param$m(1,IInstantiationService),__param$m(2,ILanguageFeaturesService)],ParameterHintsController);class TriggerParameterHintsAction extends EditorAction{constructor(){super({id:"editor.action.triggerParameterHints",label:localize("parameterHints.trigger.label","Trigger Parameter Hints"),alias:"Trigger Parameter Hints",precondition:EditorContextKeys.hasSignatureHelpProvider,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:3082,weight:100}})}run(e,t){const i=ParameterHintsController.get(t);i==null||i.trigger({triggerKind:SignatureHelpTriggerKind$1.Invoke})}}registerEditorContribution(ParameterHintsController.ID,ParameterHintsController,2);registerEditorAction(TriggerParameterHintsAction);const weight$1=175,ParameterHintsCommand=EditorCommand.bindToContribution(ParameterHintsController.get);registerEditorCommand(new ParameterHintsCommand({id:"closeParameterHints",precondition:Context.Visible,handler:o=>o.cancel(),kbOpts:{weight:weight$1,kbExpr:EditorContextKeys.focus,primary:9,secondary:[1033]}}));registerEditorCommand(new ParameterHintsCommand({id:"showPrevParameterHint",precondition:ContextKeyExpr.and(Context.Visible,Context.MultipleSignatures),handler:o=>o.previous(),kbOpts:{weight:weight$1,kbExpr:EditorContextKeys.focus,primary:16,secondary:[528],mac:{primary:16,secondary:[528,302]}}}));registerEditorCommand(new ParameterHintsCommand({id:"showNextParameterHint",precondition:ContextKeyExpr.and(Context.Visible,Context.MultipleSignatures),handler:o=>o.next(),kbOpts:{weight:weight$1,kbExpr:EditorContextKeys.focus,primary:18,secondary:[530],mac:{primary:18,secondary:[530,300]}}}));var __decorate$l=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$l=function(o,e){return function(t,i){e(t,i,o)}};const CONTEXT_RENAME_INPUT_VISIBLE=new RawContextKey("renameInputVisible",!1,localize("renameInputVisible","Whether the rename input widget is visible"));let RenameInputField=class{constructor(e,t,i,n,r){this._editor=e,this._acceptKeybindings=t,this._themeService=i,this._keybindingService=n,this._disposables=new DisposableStore,this.allowEditorOverflow=!0,this._visibleContextKey=CONTEXT_RENAME_INPUT_VISIBLE.bindTo(r),this._editor.addContentWidget(this),this._disposables.add(this._editor.onDidChangeConfiguration(s=>{s.hasChanged(50)&&this._updateFont()})),this._disposables.add(i.onDidColorThemeChange(this._updateStyles,this))}dispose(){this._disposables.dispose(),this._editor.removeContentWidget(this)}getId(){return"__renameInputWidget"}getDomNode(){return this._domNode||(this._domNode=document.createElement("div"),this._domNode.className="monaco-editor rename-box",this._input=document.createElement("input"),this._input.className="rename-input",this._input.type="text",this._input.setAttribute("aria-label",localize("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),this._updateFont(),this._updateStyles(this._themeService.getColorTheme())),this._domNode}_updateStyles(e){var t,i,n,r;if(!this._input||!this._domNode)return;const s=e.getColor(widgetShadow),a=e.getColor(widgetBorder);this._domNode.style.backgroundColor=String((t=e.getColor(editorWidgetBackground))!==null&&t!==void 0?t:""),this._domNode.style.boxShadow=s?` 0 0 8px 2px ${s}`:"",this._domNode.style.border=a?`1px solid ${a}`:"",this._domNode.style.color=String((i=e.getColor(inputForeground))!==null&&i!==void 0?i:""),this._input.style.backgroundColor=String((n=e.getColor(inputBackground))!==null&&n!==void 0?n:"");const l=e.getColor(inputBorder);this._input.style.borderWidth=l?"1px":"0px",this._input.style.borderStyle=l?"solid":"none",this._input.style.borderColor=(r=l==null?void 0:l.toString())!==null&&r!==void 0?r:"none"}_updateFont(){if(!this._input||!this._label)return;const e=this._editor.getOption(50);this._input.style.fontFamily=e.fontFamily,this._input.style.fontWeight=e.fontWeight,this._input.style.fontSize=`${e.fontSize}px`,this._label.style.fontSize=`${e.fontSize*.8}px`}getPosition(){return this._visible?{position:this._position,preference:[2,1]}:null}beforeRender(){var e,t;const[i,n]=this._acceptKeybindings;return this._label.innerText=localize({},"{0} to Rename, {1} to Preview",(e=this._keybindingService.lookupKeybinding(i))===null||e===void 0?void 0:e.getLabel(),(t=this._keybindingService.lookupKeybinding(n))===null||t===void 0?void 0:t.getLabel()),null}afterRender(e){e||this.cancelInput(!0)}acceptInput(e){var t;(t=this._currentAcceptInput)===null||t===void 0||t.call(this,e)}cancelInput(e){var t;(t=this._currentCancelInput)===null||t===void 0||t.call(this,e)}getInput(e,t,i,n,r,s){this._domNode.classList.toggle("preview",r),this._position=new Position$1(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((e.endColumn-e.startColumn)*1.1,20);const a=new DisposableStore;return new Promise(l=>{this._currentCancelInput=d=>(this._currentAcceptInput=void 0,this._currentCancelInput=void 0,l(d),!0),this._currentAcceptInput=d=>{if(this._input.value.trim().length===0||this._input.value===t){this.cancelInput(!0);return}this._currentAcceptInput=void 0,this._currentCancelInput=void 0,l({newName:this._input.value,wantsPreview:r&&d})},a.add(s.onCancellationRequested(()=>this.cancelInput(!0))),a.add(this._editor.onDidBlurEditorWidget(()=>{var d;return this.cancelInput(!(!((d=this._domNode)===null||d===void 0)&&d.ownerDocument.hasFocus()))})),this._show()}).finally(()=>{a.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)}};RenameInputField=__decorate$l([__param$l(2,IThemeService),__param$l(3,IKeybindingService),__param$l(4,IContextKeyService)],RenameInputField);var __decorate$k=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$k=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$e=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},RenameController_1;class RenameSkeleton{constructor(e,t,i){this.model=e,this.position=t,this._providerRenameIdx=0,this._providers=i.ordered(e)}hasProvider(){return this._providers.length>0}resolveRenameLocation(e){return __awaiter$e(this,void 0,void 0,function*(){const t=[];for(this._providerRenameIdx=0;this._providerRenameIdx<this._providers.length;this._providerRenameIdx++){const n=this._providers[this._providerRenameIdx];if(!n.resolveRenameLocation)break;const r=yield n.resolveRenameLocation(this.model,this.position,e);if(r){if(r.rejectReason){t.push(r.rejectReason);continue}return r}}const i=this.model.getWordAtPosition(this.position);return i?{range:new Range$2(this.position.lineNumber,i.startColumn,this.position.lineNumber,i.endColumn),text:i.word,rejectReason:t.length>0?t.join(`
- `):void 0}:{range:Range$2.fromPositions(this.position),text:"",rejectReason:t.length>0?t.join(`
- `):void 0}})}provideRenameEdits(e,t){return __awaiter$e(this,void 0,void 0,function*(){return this._provideRenameEdits(e,this._providerRenameIdx,[],t)})}_provideRenameEdits(e,t,i,n){return __awaiter$e(this,void 0,void 0,function*(){const r=this._providers[t];if(!r)return{edits:[],rejectReason:i.join(`
- `)};const s=yield r.provideRenameEdits(this.model,this.position,e,n);if(s){if(s.rejectReason)return this._provideRenameEdits(e,t+1,i.concat(s.rejectReason),n)}else return this._provideRenameEdits(e,t+1,i.concat(localize("no result","No result.")),n);return s})}}function rename(o,e,t,i){return __awaiter$e(this,void 0,void 0,function*(){const n=new RenameSkeleton(e,t,o),r=yield n.resolveRenameLocation(CancellationToken.None);return r!=null&&r.rejectReason?{edits:[],rejectReason:r.rejectReason}:n.provideRenameEdits(i,CancellationToken.None)})}let RenameController=RenameController_1=class{static get(e){return e.getContribution(RenameController_1.ID)}constructor(e,t,i,n,r,s,a,l){this.editor=e,this._instaService=t,this._notificationService=i,this._bulkEditService=n,this._progressService=r,this._logService=s,this._configService=a,this._languageFeaturesService=l,this._disposableStore=new DisposableStore,this._cts=new CancellationTokenSource$1,this._renameInputField=this._disposableStore.add(this._instaService.createInstance(RenameInputField,this.editor,["acceptRenameInput","acceptRenameInputWithPreview"]))}dispose(){this._disposableStore.dispose(),this._cts.dispose(!0)}run(){var e,t;return __awaiter$e(this,void 0,void 0,function*(){if(this._cts.dispose(!0),this._cts=new CancellationTokenSource$1,!this.editor.hasModel())return;const i=this.editor.getPosition(),n=new RenameSkeleton(this.editor.getModel(),i,this._languageFeaturesService.renameProvider);if(!n.hasProvider())return;const r=new EditorStateCancellationTokenSource(this.editor,5,void 0,this._cts.token);let s;try{const p=n.resolveRenameLocation(r.token);this._progressService.showWhile(p,250),s=yield p}catch(p){(e=MessageController.get(this.editor))===null||e===void 0||e.showMessage(p||localize("resolveRenameLocationFailed","An unknown error occurred while resolving rename location"),i);return}finally{r.dispose()}if(!s)return;if(s.rejectReason){(t=MessageController.get(this.editor))===null||t===void 0||t.showMessage(s.rejectReason,i);return}if(r.token.isCancellationRequested)return;const a=new EditorStateCancellationTokenSource(this.editor,5,s.range,this._cts.token),l=this.editor.getSelection();let d=0,c=s.text.length;!Range$2.isEmpty(l)&&!Range$2.spansMultipleLines(l)&&Range$2.containsRange(s.range,l)&&(d=Math.max(0,l.startColumn-s.range.startColumn),c=Math.min(s.range.endColumn,l.endColumn)-s.range.startColumn);const u=this._bulkEditService.hasPreviewHandler()&&this._configService.getValue(this.editor.getModel().uri,"editor.rename.enablePreview"),g=yield this._renameInputField.getInput(s.range,s.text,d,c,u,a.token);if(typeof g=="boolean"){g&&this.editor.focus(),a.dispose();return}this.editor.focus();const f=raceCancellation(n.provideRenameEdits(g.newName,a.token),a.token).then(p=>__awaiter$e(this,void 0,void 0,function*(){if(!(!p||!this.editor.hasModel())){if(p.rejectReason){this._notificationService.info(p.rejectReason);return}this.editor.setSelection(Range$2.fromPositions(this.editor.getSelection().getPosition())),this._bulkEditService.apply(p,{editor:this.editor,showPreview:g.wantsPreview,label:localize("label","Renaming '{0}' to '{1}'",s==null?void 0:s.text,g.newName),code:"undoredo.rename",quotableLabel:localize("quotableLabel","Renaming {0} to {1}",s==null?void 0:s.text,g.newName),respectAutoSaveConfig:!0}).then(m=>{m.ariaSummary&&alert(localize("aria","Successfully renamed '{0}' to '{1}'. Summary: {2}",s.text,g.newName,m.ariaSummary))}).catch(m=>{this._notificationService.error(localize("rename.failedApply","Rename failed to apply edits")),this._logService.error(m)})}}),p=>{this._notificationService.error(localize("rename.failed","Rename failed to compute edits")),this._logService.error(p)}).finally(()=>{a.dispose()});return this._progressService.showWhile(f,250),f})}acceptRenameInput(e){this._renameInputField.acceptInput(e)}cancelRenameInput(){this._renameInputField.cancelInput(!0)}};RenameController.ID="editor.contrib.renameController";RenameController=RenameController_1=__decorate$k([__param$k(1,IInstantiationService),__param$k(2,INotificationService),__param$k(3,IBulkEditService),__param$k(4,IEditorProgressService),__param$k(5,ILogService),__param$k(6,ITextResourceConfigurationService),__param$k(7,ILanguageFeaturesService)],RenameController);class RenameAction extends EditorAction{constructor(){super({id:"editor.action.rename",label:localize("rename.label","Rename Symbol"),alias:"Rename Symbol",precondition:ContextKeyExpr.and(EditorContextKeys.writable,EditorContextKeys.hasRenameProvider),kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:60,weight:100},contextMenuOpts:{group:"1_modification",order:1.1}})}runCommand(e,t){const i=e.get(ICodeEditorService),[n,r]=Array.isArray(t)&&t||[void 0,void 0];return URI.isUri(n)&&Position$1.isIPosition(r)?i.openCodeEditor({resource:n},i.getActiveCodeEditor()).then(s=>{s&&(s.setPosition(r),s.invokeWithinContext(a=>(this.reportTelemetry(a,s),this.run(a,s))))},onUnexpectedError):super.runCommand(e,t)}run(e,t){const i=RenameController.get(t);return i?i.run():Promise.resolve()}}registerEditorContribution(RenameController.ID,RenameController,4);registerEditorAction(RenameAction);const RenameCommand=EditorCommand.bindToContribution(RenameController.get);registerEditorCommand(new RenameCommand({id:"acceptRenameInput",precondition:CONTEXT_RENAME_INPUT_VISIBLE,handler:o=>o.acceptRenameInput(!1),kbOpts:{weight:199,kbExpr:ContextKeyExpr.and(EditorContextKeys.focus,ContextKeyExpr.not("isComposing")),primary:3}}));registerEditorCommand(new RenameCommand({id:"acceptRenameInputWithPreview",precondition:ContextKeyExpr.and(CONTEXT_RENAME_INPUT_VISIBLE,ContextKeyExpr.has("config.editor.rename.enablePreview")),handler:o=>o.acceptRenameInput(!0),kbOpts:{weight:199,kbExpr:ContextKeyExpr.and(EditorContextKeys.focus,ContextKeyExpr.not("isComposing")),primary:1027}}));registerEditorCommand(new RenameCommand({id:"cancelRenameInput",precondition:CONTEXT_RENAME_INPUT_VISIBLE,handler:o=>o.cancelRenameInput(),kbOpts:{weight:199,kbExpr:EditorContextKeys.focus,primary:9,secondary:[1033]}}));registerModelAndPositionCommand("_executeDocumentRenameProvider",function(o,e,t,...i){const[n]=i;assertType(typeof n=="string");const{renameProvider:r}=o.get(ILanguageFeaturesService);return rename(r,e,t,n)});registerModelAndPositionCommand("_executePrepareRename",function(o,e,t){return __awaiter$e(this,void 0,void 0,function*(){const{renameProvider:i}=o.get(ILanguageFeaturesService),r=yield new RenameSkeleton(e,t,i).resolveRenameLocation(CancellationToken.None);if(r!=null&&r.rejectReason)throw new Error(r.rejectReason);return r})});Registry.as(Extensions$6.Configuration).registerConfiguration({id:"editor",properties:{"editor.rename.enablePreview":{scope:5,description:localize("enablePreview","Enable/disable the ability to preview changes before renaming"),default:!0,type:"boolean"}}});function reverseEndianness(o){for(let e=0,t=o.length;e<t;e+=4){const i=o[e+0],n=o[e+1],r=o[e+2],s=o[e+3];o[e+0]=s,o[e+1]=r,o[e+2]=n,o[e+3]=i}}function toLittleEndianBuffer(o){const e=new Uint8Array(o.buffer,o.byteOffset,o.length*4);return isLittleEndian()||reverseEndianness(e),VSBuffer.wrap(e)}function encodeSemanticTokensDto(o){const e=new Uint32Array(encodeSemanticTokensDtoSize(o));let t=0;if(e[t++]=o.id,o.type==="full")e[t++]=1,e[t++]=o.data.length,e.set(o.data,t),t+=o.data.length;else{e[t++]=2,e[t++]=o.deltas.length;for(const i of o.deltas)e[t++]=i.start,e[t++]=i.deleteCount,i.data?(e[t++]=i.data.length,e.set(i.data,t),t+=i.data.length):e[t++]=0}return toLittleEndianBuffer(e)}function encodeSemanticTokensDtoSize(o){let e=0;if(e+=2,o.type==="full")e+=1+o.data.length;else{e+=1,e+=3*o.deltas.length;for(const t of o.deltas)t.data&&(e+=t.data.length)}return e}var __awaiter$d=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};function isSemanticTokens(o){return o&&!!o.data}function isSemanticTokensEdits(o){return o&&Array.isArray(o.edits)}class DocumentSemanticTokensResult{constructor(e,t,i){this.provider=e,this.tokens=t,this.error=i}}function hasDocumentSemanticTokensProvider(o,e){return o.has(e)}function getDocumentSemanticTokensProviders(o,e){const t=o.orderedGroups(e);return t.length>0?t[0]:[]}function getDocumentSemanticTokens(o,e,t,i,n){return __awaiter$d(this,void 0,void 0,function*(){const r=getDocumentSemanticTokensProviders(o,e),s=yield Promise.all(r.map(a=>__awaiter$d(this,void 0,void 0,function*(){let l,d=null;try{l=yield a.provideDocumentSemanticTokens(e,a===t?i:null,n)}catch(c){d=c,l=null}return(!l||!isSemanticTokens(l)&&!isSemanticTokensEdits(l))&&(l=null),new DocumentSemanticTokensResult(a,l,d)})));for(const a of s){if(a.error)throw a.error;if(a.tokens)return a}return s.length>0?s[0]:null})}function _getDocumentSemanticTokensProviderHighestGroup(o,e){const t=o.orderedGroups(e);return t.length>0?t[0]:null}class DocumentRangeSemanticTokensResult{constructor(e,t){this.provider=e,this.tokens=t}}function hasDocumentRangeSemanticTokensProvider(o,e){return o.has(e)}function getDocumentRangeSemanticTokensProviders(o,e){const t=o.orderedGroups(e);return t.length>0?t[0]:[]}function getDocumentRangeSemanticTokens(o,e,t,i){return __awaiter$d(this,void 0,void 0,function*(){const n=getDocumentRangeSemanticTokensProviders(o,e),r=yield Promise.all(n.map(s=>__awaiter$d(this,void 0,void 0,function*(){let a;try{a=yield s.provideDocumentRangeSemanticTokens(e,t,i)}catch(l){onUnexpectedExternalError(l),a=null}return(!a||!isSemanticTokens(a))&&(a=null),new DocumentRangeSemanticTokensResult(s,a)})));for(const s of r)if(s.tokens)return s;return r.length>0?r[0]:null})}CommandsRegistry.registerCommand("_provideDocumentSemanticTokensLegend",(o,...e)=>__awaiter$d(void 0,void 0,void 0,function*(){const[t]=e;assertType(t instanceof URI);const i=o.get(IModelService).getModel(t);if(!i)return;const{documentSemanticTokensProvider:n}=o.get(ILanguageFeaturesService),r=_getDocumentSemanticTokensProviderHighestGroup(n,i);return r?r[0].getLegend():o.get(ICommandService).executeCommand("_provideDocumentRangeSemanticTokensLegend",t)}));CommandsRegistry.registerCommand("_provideDocumentSemanticTokens",(o,...e)=>__awaiter$d(void 0,void 0,void 0,function*(){const[t]=e;assertType(t instanceof URI);const i=o.get(IModelService).getModel(t);if(!i)return;const{documentSemanticTokensProvider:n}=o.get(ILanguageFeaturesService);if(!hasDocumentSemanticTokensProvider(n,i))return o.get(ICommandService).executeCommand("_provideDocumentRangeSemanticTokens",t,i.getFullModelRange());const r=yield getDocumentSemanticTokens(n,i,null,null,CancellationToken.None);if(!r)return;const{provider:s,tokens:a}=r;if(!a||!isSemanticTokens(a))return;const l=encodeSemanticTokensDto({id:0,type:"full",data:a.data});return a.resultId&&s.releaseDocumentSemanticTokens(a.resultId),l}));CommandsRegistry.registerCommand("_provideDocumentRangeSemanticTokensLegend",(o,...e)=>__awaiter$d(void 0,void 0,void 0,function*(){const[t,i]=e;assertType(t instanceof URI);const n=o.get(IModelService).getModel(t);if(!n)return;const{documentRangeSemanticTokensProvider:r}=o.get(ILanguageFeaturesService),s=getDocumentRangeSemanticTokensProviders(r,n);if(s.length===0)return;if(s.length===1)return s[0].getLegend();if(!i||!Range$2.isIRange(i))return console.warn("provideDocumentRangeSemanticTokensLegend might be out-of-sync with provideDocumentRangeSemanticTokens unless a range argument is passed in"),s[0].getLegend();const a=yield getDocumentRangeSemanticTokens(r,n,Range$2.lift(i),CancellationToken.None);if(a)return a.provider.getLegend()}));CommandsRegistry.registerCommand("_provideDocumentRangeSemanticTokens",(o,...e)=>__awaiter$d(void 0,void 0,void 0,function*(){const[t,i]=e;assertType(t instanceof URI),assertType(Range$2.isIRange(i));const n=o.get(IModelService).getModel(t);if(!n)return;const{documentRangeSemanticTokensProvider:r}=o.get(ILanguageFeaturesService),s=yield getDocumentRangeSemanticTokens(r,n,Range$2.lift(i),CancellationToken.None);if(!(!s||!s.tokens))return encodeSemanticTokensDto({id:0,type:"full",data:s.tokens.data})}));const SEMANTIC_HIGHLIGHTING_SETTING_ID="editor.semanticHighlighting";function isSemanticColoringEnabled(o,e,t){var i;const n=(i=t.getValue(SEMANTIC_HIGHLIGHTING_SETTING_ID,{overrideIdentifier:o.getLanguageId(),resource:o.uri}))===null||i===void 0?void 0:i.enabled;return typeof n=="boolean"?n:e.getColorTheme().semanticHighlighting}var __decorate$j=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$j=function(o,e){return function(t,i){e(t,i,o)}},ModelSemanticColoring_1;let DocumentSemanticTokensFeature=class extends Disposable{constructor(e,t,i,n,r,s){super(),this._watchers=Object.create(null);const a=c=>{this._watchers[c.uri.toString()]=new ModelSemanticColoring(c,e,i,r,s)},l=(c,u)=>{u.dispose(),delete this._watchers[c.uri.toString()]},d=()=>{for(const c of t.getModels()){const u=this._watchers[c.uri.toString()];isSemanticColoringEnabled(c,i,n)?u||a(c):u&&l(c,u)}};this._register(t.onModelAdded(c=>{isSemanticColoringEnabled(c,i,n)&&a(c)})),this._register(t.onModelRemoved(c=>{const u=this._watchers[c.uri.toString()];u&&l(c,u)})),this._register(n.onDidChangeConfiguration(c=>{c.affectsConfiguration(SEMANTIC_HIGHLIGHTING_SETTING_ID)&&d()})),this._register(i.onDidColorThemeChange(d))}dispose(){for(const e of Object.values(this._watchers))e.dispose();super.dispose()}};DocumentSemanticTokensFeature=__decorate$j([__param$j(0,ISemanticTokensStylingService),__param$j(1,IModelService),__param$j(2,IThemeService),__param$j(3,IConfigurationService),__param$j(4,ILanguageFeatureDebounceService),__param$j(5,ILanguageFeaturesService)],DocumentSemanticTokensFeature);let ModelSemanticColoring=ModelSemanticColoring_1=class extends Disposable{constructor(e,t,i,n,r){super(),this._semanticTokensStylingService=t,this._isDisposed=!1,this._model=e,this._provider=r.documentSemanticTokensProvider,this._debounceInformation=n.for(this._provider,"DocumentSemanticTokens",{min:ModelSemanticColoring_1.REQUEST_MIN_DELAY,max:ModelSemanticColoring_1.REQUEST_MAX_DELAY}),this._fetchDocumentSemanticTokens=this._register(new RunOnceScheduler(()=>this._fetchDocumentSemanticTokensNow(),ModelSemanticColoring_1.REQUEST_MIN_DELAY)),this._currentDocumentResponse=null,this._currentDocumentRequestCancellationTokenSource=null,this._documentProvidersChangeListeners=[],this._providersChangedDuringRequest=!1,this._register(this._model.onDidChangeContent(()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(this._model.onDidChangeAttached(()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(this._model.onDidChangeLanguage(()=>{this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(0)}));const s=()=>{dispose(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[];for(const a of this._provider.all(e))typeof a.onDidChange=="function"&&this._documentProvidersChangeListeners.push(a.onDidChange(()=>{if(this._currentDocumentRequestCancellationTokenSource){this._providersChangedDuringRequest=!0;return}this._fetchDocumentSemanticTokens.schedule(0)}))};s(),this._register(this._provider.onDidChange(()=>{s(),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(i.onDidColorThemeChange(a=>{this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._fetchDocumentSemanticTokens.schedule(0)}dispose(){this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),dispose(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[],this._setDocumentSemanticTokens(null,null,null,[]),this._isDisposed=!0,super.dispose()}_fetchDocumentSemanticTokensNow(){if(this._currentDocumentRequestCancellationTokenSource)return;if(!hasDocumentSemanticTokensProvider(this._provider,this._model)){this._currentDocumentResponse&&this._model.tokenization.setSemanticTokens(null,!1);return}if(!this._model.isAttachedToEditor())return;const e=new CancellationTokenSource$1,t=this._currentDocumentResponse?this._currentDocumentResponse.provider:null,i=this._currentDocumentResponse&&this._currentDocumentResponse.resultId||null,n=getDocumentSemanticTokens(this._provider,this._model,t,i,e.token);this._currentDocumentRequestCancellationTokenSource=e,this._providersChangedDuringRequest=!1;const r=[],s=this._model.onDidChangeContent(l=>{r.push(l)}),a=new StopWatch(!1);n.then(l=>{if(this._debounceInformation.update(this._model,a.elapsed()),this._currentDocumentRequestCancellationTokenSource=null,s.dispose(),!l)this._setDocumentSemanticTokens(null,null,null,r);else{const{provider:d,tokens:c}=l,u=this._semanticTokensStylingService.getStyling(d);this._setDocumentSemanticTokens(d,c||null,u,r)}},l=>{l&&(isCancellationError(l)||typeof l.message=="string"&&l.message.indexOf("busy")!==-1)||onUnexpectedError(l),this._currentDocumentRequestCancellationTokenSource=null,s.dispose(),(r.length>0||this._providersChangedDuringRequest)&&(this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model)))})}static _copy(e,t,i,n,r){r=Math.min(r,i.length-n,e.length-t);for(let s=0;s<r;s++)i[n+s]=e[t+s]}_setDocumentSemanticTokens(e,t,i,n){const r=this._currentDocumentResponse,s=()=>{(n.length>0||this._providersChangedDuringRequest)&&!this._fetchDocumentSemanticTokens.isScheduled()&&this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))};if(this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._isDisposed){e&&t&&e.releaseDocumentSemanticTokens(t.resultId);return}if(!e||!i){this._model.tokenization.setSemanticTokens(null,!1);return}if(!t){this._model.tokenization.setSemanticTokens(null,!0),s();return}if(isSemanticTokensEdits(t)){if(!r){this._model.tokenization.setSemanticTokens(null,!0);return}if(t.edits.length===0)t={resultId:t.resultId,data:r.data};else{let a=0;for(const g of t.edits)a+=(g.data?g.data.length:0)-g.deleteCount;const l=r.data,d=new Uint32Array(l.length+a);let c=l.length,u=d.length;for(let g=t.edits.length-1;g>=0;g--){const f=t.edits[g];if(f.start>l.length){i.warnInvalidEditStart(r.resultId,t.resultId,g,f.start,l.length),this._model.tokenization.setSemanticTokens(null,!0);return}const p=c-(f.start+f.deleteCount);p>0&&(ModelSemanticColoring_1._copy(l,c-p,d,u-p,p),u-=p),f.data&&(ModelSemanticColoring_1._copy(f.data,0,d,u-f.data.length,f.data.length),u-=f.data.length),c=f.start}c>0&&ModelSemanticColoring_1._copy(l,0,d,0,c),t={resultId:t.resultId,data:d}}}if(isSemanticTokens(t)){this._currentDocumentResponse=new SemanticTokensResponse(e,t.resultId,t.data);const a=toMultilineTokens2(t,i,this._model.getLanguageId());if(n.length>0)for(const l of n)for(const d of a)for(const c of l.changes)d.applyEdit(c.range,c.text);this._model.tokenization.setSemanticTokens(a,!0)}else this._model.tokenization.setSemanticTokens(null,!0);s()}};ModelSemanticColoring.REQUEST_MIN_DELAY=300;ModelSemanticColoring.REQUEST_MAX_DELAY=2e3;ModelSemanticColoring=ModelSemanticColoring_1=__decorate$j([__param$j(1,ISemanticTokensStylingService),__param$j(2,IThemeService),__param$j(3,ILanguageFeatureDebounceService),__param$j(4,ILanguageFeaturesService)],ModelSemanticColoring);class SemanticTokensResponse{constructor(e,t,i){this.provider=e,this.resultId=t,this.data=i}dispose(){this.provider.releaseDocumentSemanticTokens(this.resultId)}}registerEditorFeature(DocumentSemanticTokensFeature);var __decorate$i=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$i=function(o,e){return function(t,i){e(t,i,o)}};let ViewportSemanticTokensContribution=class extends Disposable{constructor(e,t,i,n,r,s){super(),this._semanticTokensStylingService=t,this._themeService=i,this._configurationService=n,this._editor=e,this._provider=s.documentRangeSemanticTokensProvider,this._debounceInformation=r.for(this._provider,"DocumentRangeSemanticTokens",{min:100,max:500}),this._tokenizeViewport=this._register(new RunOnceScheduler(()=>this._tokenizeViewportNow(),100)),this._outstandingRequests=[];const a=()=>{this._editor.hasModel()&&this._tokenizeViewport.schedule(this._debounceInformation.get(this._editor.getModel()))};this._register(this._editor.onDidScrollChange(()=>{a()})),this._register(this._editor.onDidChangeModel(()=>{this._cancelAll(),a()})),this._register(this._editor.onDidChangeModelContent(l=>{this._cancelAll(),a()})),this._register(this._provider.onDidChange(()=>{this._cancelAll(),a()})),this._register(this._configurationService.onDidChangeConfiguration(l=>{l.affectsConfiguration(SEMANTIC_HIGHLIGHTING_SETTING_ID)&&(this._cancelAll(),a())})),this._register(this._themeService.onDidColorThemeChange(()=>{this._cancelAll(),a()})),a()}_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){this._outstandingRequests.splice(t,1);return}}_tokenizeViewportNow(){if(!this._editor.hasModel())return;const e=this._editor.getModel();if(e.tokenization.hasCompleteSemanticTokens())return;if(!isSemanticColoringEnabled(e,this._themeService,this._configurationService)){e.tokenization.hasSomeSemanticTokens()&&e.tokenization.setSemanticTokens(null,!1);return}if(!hasDocumentRangeSemanticTokensProvider(this._provider,e)){e.tokenization.hasSomeSemanticTokens()&&e.tokenization.setSemanticTokens(null,!1);return}const t=this._editor.getVisibleRangesPlusViewportAboveBelow();this._outstandingRequests=this._outstandingRequests.concat(t.map(i=>this._requestRange(e,i)))}_requestRange(e,t){const i=e.getVersionId(),n=createCancelablePromise(s=>Promise.resolve(getDocumentRangeSemanticTokens(this._provider,e,t,s))),r=new StopWatch(!1);return n.then(s=>{if(this._debounceInformation.update(e,r.elapsed()),!s||!s.tokens||e.isDisposed()||e.getVersionId()!==i)return;const{provider:a,tokens:l}=s,d=this._semanticTokensStylingService.getStyling(a);e.tokenization.setPartialSemanticTokens(t,toMultilineTokens2(l,d,e.getLanguageId()))}).then(()=>this._removeOutstandingRequest(n),()=>this._removeOutstandingRequest(n)),n}};ViewportSemanticTokensContribution.ID="editor.contrib.viewportSemanticTokens";ViewportSemanticTokensContribution=__decorate$i([__param$i(1,ISemanticTokensStylingService),__param$i(2,IThemeService),__param$i(3,IConfigurationService),__param$i(4,ILanguageFeatureDebounceService),__param$i(5,ILanguageFeaturesService)],ViewportSemanticTokensContribution);registerEditorContribution(ViewportSemanticTokensContribution.ID,ViewportSemanticTokensContribution,1);class WordSelectionRangeProvider{constructor(e=!0){this.selectSubwords=e}provideSelectionRanges(e,t){const i=[];for(const n of t){const r=[];i.push(r),this.selectSubwords&&this._addInWordRanges(r,e,n),this._addWordRanges(r,e,n),this._addWhitespaceLine(r,e,n),r.push({range:e.getFullModelRange()})}return i}_addInWordRanges(e,t,i){const n=t.getWordAtPosition(i);if(!n)return;const{word:r,startColumn:s}=n,a=i.column-s;let l=a,d=a,c=0;for(;l>=0;l--){const u=r.charCodeAt(l);if(l!==a&&(u===95||u===45))break;if(isLowerAsciiLetter(u)&&isUpperAsciiLetter(c))break;c=u}for(l+=1;d<r.length;d++){const u=r.charCodeAt(d);if(isUpperAsciiLetter(u)&&isLowerAsciiLetter(c))break;if(u===95||u===45)break;c=u}l<d&&e.push({range:new Range$2(i.lineNumber,s+l,i.lineNumber,s+d)})}_addWordRanges(e,t,i){const n=t.getWordAtPosition(i);n&&e.push({range:new Range$2(i.lineNumber,n.startColumn,i.lineNumber,n.endColumn)})}_addWhitespaceLine(e,t,i){t.getLineLength(i.lineNumber)>0&&t.getLineFirstNonWhitespaceColumn(i.lineNumber)===0&&t.getLineLastNonWhitespaceColumn(i.lineNumber)===0&&e.push({range:new Range$2(i.lineNumber,1,i.lineNumber,t.getLineMaxColumn(i.lineNumber))})}}var __decorate$h=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$h=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$c=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},SmartSelectController_1;class SelectionRanges{constructor(e,t){this.index=e,this.ranges=t}mov(e){const t=this.index+(e?1:-1);if(t<0||t>=this.ranges.length)return this;const i=new SelectionRanges(t,this.ranges);return i.ranges[t].equalsRange(this.ranges[this.index])?i.mov(e):i}}let SmartSelectController=SmartSelectController_1=class{static get(e){return e.getContribution(SmartSelectController_1.ID)}constructor(e,t){this._editor=e,this._languageFeaturesService=t,this._ignoreSelection=!1}dispose(){var e;(e=this._selectionListener)===null||e===void 0||e.dispose()}run(e){return __awaiter$c(this,void 0,void 0,function*(){if(!this._editor.hasModel())return;const t=this._editor.getSelections(),i=this._editor.getModel();if(this._state||(yield provideSelectionRanges(this._languageFeaturesService.selectionRangeProvider,i,t.map(r=>r.getPosition()),this._editor.getOption(112),CancellationToken.None).then(r=>{var s;if(!(!isNonEmptyArray(r)||r.length!==t.length)&&!(!this._editor.hasModel()||!equals$2(this._editor.getSelections(),t,(a,l)=>a.equalsSelection(l)))){for(let a=0;a<r.length;a++)r[a]=r[a].filter(l=>l.containsPosition(t[a].getStartPosition())&&l.containsPosition(t[a].getEndPosition())),r[a].unshift(t[a]);this._state=r.map(a=>new SelectionRanges(0,a)),(s=this._selectionListener)===null||s===void 0||s.dispose(),this._selectionListener=this._editor.onDidChangeCursorPosition(()=>{var a;this._ignoreSelection||((a=this._selectionListener)===null||a===void 0||a.dispose(),this._state=void 0)})}})),!this._state)return;this._state=this._state.map(r=>r.mov(e));const n=this._state.map(r=>Selection$1.fromPositions(r.ranges[r.index].getStartPosition(),r.ranges[r.index].getEndPosition()));this._ignoreSelection=!0;try{this._editor.setSelections(n)}finally{this._ignoreSelection=!1}})}};SmartSelectController.ID="editor.contrib.smartSelectController";SmartSelectController=SmartSelectController_1=__decorate$h([__param$h(1,ILanguageFeaturesService)],SmartSelectController);class AbstractSmartSelect extends EditorAction{constructor(e,t){super(t),this._forward=e}run(e,t){return __awaiter$c(this,void 0,void 0,function*(){const i=SmartSelectController.get(t);i&&(yield i.run(this._forward))})}}class GrowSelectionAction extends AbstractSmartSelect{constructor(){super(!0,{id:"editor.action.smartSelect.expand",label:localize("smartSelect.expand","Expand Selection"),alias:"Expand Selection",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:1553,mac:{primary:3345,secondary:[1297]},weight:100},menuOpts:{menuId:MenuId.MenubarSelectionMenu,group:"1_basic",title:localize({},"&&Expand Selection"),order:2}})}}CommandsRegistry.registerCommandAlias("editor.action.smartSelect.grow","editor.action.smartSelect.expand");class ShrinkSelectionAction extends AbstractSmartSelect{constructor(){super(!1,{id:"editor.action.smartSelect.shrink",label:localize("smartSelect.shrink","Shrink Selection"),alias:"Shrink Selection",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:1551,mac:{primary:3343,secondary:[1295]},weight:100},menuOpts:{menuId:MenuId.MenubarSelectionMenu,group:"1_basic",title:localize({},"&&Shrink Selection"),order:3}})}}registerEditorContribution(SmartSelectController.ID,SmartSelectController,4);registerEditorAction(GrowSelectionAction);registerEditorAction(ShrinkSelectionAction);function provideSelectionRanges(o,e,t,i,n){return __awaiter$c(this,void 0,void 0,function*(){const r=o.all(e).concat(new WordSelectionRangeProvider(i.selectSubwords));r.length===1&&r.unshift(new BracketSelectionRangeProvider);const s=[],a=[];for(const l of r)s.push(Promise.resolve(l.provideSelectionRanges(e,t,n)).then(d=>{if(isNonEmptyArray(d)&&d.length===t.length)for(let c=0;c<t.length;c++){a[c]||(a[c]=[]);for(const u of d[c])Range$2.isIRange(u.range)&&Range$2.containsPosition(u.range,t[c])&&a[c].push(Range$2.lift(u.range))}},onUnexpectedExternalError));return yield Promise.all(s),a.map(l=>{if(l.length===0)return[];l.sort((g,f)=>Position$1.isBefore(g.getStartPosition(),f.getStartPosition())?1:Position$1.isBefore(f.getStartPosition(),g.getStartPosition())||Position$1.isBefore(g.getEndPosition(),f.getEndPosition())?-1:Position$1.isBefore(f.getEndPosition(),g.getEndPosition())?1:0);const d=[];let c;for(const g of l)(!c||Range$2.containsRange(g,c)&&!Range$2.equalsRange(g,c))&&(d.push(g),c=g);if(!i.selectLeadingAndTrailingWhitespace)return d;const u=[d[0]];for(let g=1;g<d.length;g++){const f=d[g-1],p=d[g];if(p.startLineNumber!==f.startLineNumber||p.endLineNumber!==f.endLineNumber){const m=new Range$2(f.startLineNumber,e.getLineFirstNonWhitespaceColumn(f.startLineNumber),f.endLineNumber,e.getLineLastNonWhitespaceColumn(f.endLineNumber));m.containsRange(f)&&!m.equalsRange(f)&&p.containsRange(m)&&!p.equalsRange(m)&&u.push(m);const b=new Range$2(f.startLineNumber,1,f.endLineNumber,e.getLineMaxColumn(f.endLineNumber));b.containsRange(f)&&!b.equalsRange(m)&&p.containsRange(b)&&!p.equalsRange(b)&&u.push(b)}u.push(p)}return u})})}CommandsRegistry.registerCommand("_executeSelectionRangeProvider",function(o,...e){return __awaiter$c(this,void 0,void 0,function*(){const[t,i]=e;assertType(URI.isUri(t));const n=o.get(ILanguageFeaturesService).selectionRangeProvider,r=yield o.get(ITextModelService).createModelReference(t);try{return provideSelectionRanges(n,r.object.textEditorModel,i,{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},CancellationToken.None)}finally{r.dispose()}})});const Categories=Object.freeze({View:{value:localize("view","View"),original:"View"},Help:{value:localize("help","Help"),original:"Help"},Test:{value:localize("test","Test"),original:"Test"},File:{value:localize("file","File"),original:"File"},Preferences:{value:localize("preferences","Preferences"),original:"Preferences"},Developer:{value:localize({},"Developer"),original:"Developer"}});var __awaiter$b=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};class StickyScrollWidgetState{constructor(e,t,i,n=null){this.startLineNumbers=e,this.endLineNumbers=t,this.lastLineRelativePosition=i,this.showEndForLine=n}equals(e){return!!e&&this.lastLineRelativePosition===e.lastLineRelativePosition&&this.showEndForLine===e.showEndForLine&&equals$2(this.startLineNumbers,e.startLineNumbers)&&equals$2(this.endLineNumbers,e.endLineNumbers)}}const _ttPolicy=createTrustedTypesPolicy("stickyScrollViewLayer",{createHTML:o=>o}),STICKY_INDEX_ATTR="data-sticky-line-index",STICKY_IS_LINE_ATTR="data-sticky-is-line",STICKY_IS_LINE_NUMBER_ATTR="data-sticky-is-line-number",STICKY_IS_FOLDING_ICON_ATTR="data-sticky-is-folding-icon";class StickyScrollWidget extends Disposable{constructor(e){super(),this._editor=e,this._foldingIconStore=new DisposableStore,this._rootDomNode=document.createElement("div"),this._lineNumbersDomNode=document.createElement("div"),this._linesDomNodeScrollable=document.createElement("div"),this._linesDomNode=document.createElement("div"),this._lineHeight=this._editor.getOption(66),this._stickyLines=[],this._lineNumbers=[],this._lastLineRelativePosition=0,this._minContentWidthInPx=0,this._isOnGlyphMargin=!1,this._lineNumbersDomNode.className="sticky-widget-line-numbers",this._lineNumbersDomNode.setAttribute("role","none"),this._linesDomNode.className="sticky-widget-lines",this._linesDomNode.setAttribute("role","list"),this._linesDomNodeScrollable.className="sticky-widget-lines-scrollable",this._linesDomNodeScrollable.appendChild(this._linesDomNode),this._rootDomNode.className="sticky-widget",this._rootDomNode.classList.toggle("peek",e instanceof EmbeddedCodeEditorWidget),this._rootDomNode.appendChild(this._lineNumbersDomNode),this._rootDomNode.appendChild(this._linesDomNodeScrollable);const t=()=>{this._linesDomNode.style.left=this._editor.getOption(114).scrollWithEditor?`-${this._editor.getScrollLeft()}px`:"0px"};this._register(this._editor.onDidChangeConfiguration(i=>{i.hasChanged(114)&&t(),i.hasChanged(66)&&(this._lineHeight=this._editor.getOption(66))})),this._register(this._editor.onDidScrollChange(i=>{i.scrollLeftChanged&&t(),i.scrollWidthChanged&&this._updateWidgetWidth()})),this._register(this._editor.onDidChangeModel(()=>{t(),this._updateWidgetWidth()})),this._register(this._foldingIconStore),t(),this._register(this._editor.onDidLayoutChange(i=>{this._updateWidgetWidth()})),this._updateWidgetWidth()}get lineNumbers(){return this._lineNumbers}get lineNumberCount(){return this._lineNumbers.length}getStickyLineForLine(e){return this._stickyLines.find(t=>t.lineNumber===e)}getCurrentLines(){return this._lineNumbers}setState(e,t,i=1/0){if((!this._previousState&&!e||this._previousState&&this._previousState.equals(e))&&i===1/0)return;this._previousState=e;const n=this._stickyLines;if(this._clearStickyWidget(),!e||!this._editor._getViewModel())return;if(e.startLineNumbers.length*this._lineHeight+e.lastLineRelativePosition>0){this._lastLineRelativePosition=e.lastLineRelativePosition;const s=[...e.startLineNumbers];e.showEndForLine!==null&&(s[e.showEndForLine]=e.endLineNumbers[e.showEndForLine]),this._lineNumbers=s}else this._lastLineRelativePosition=0,this._lineNumbers=[];this._renderRootNode(n,t,i)}_updateWidgetWidth(){const e=this._editor.getLayoutInfo(),t=e.contentLeft;this._lineNumbersDomNode.style.width=`${t}px`,this._linesDomNodeScrollable.style.setProperty("--vscode-editorStickyScroll-scrollableWidth",`${this._editor.getScrollWidth()-e.verticalScrollbarWidth}px`),this._rootDomNode.style.width=`${e.width-e.verticalScrollbarWidth}px`}_clearStickyWidget(){this._stickyLines=[],this._foldingIconStore.clear(),clearNode(this._lineNumbersDomNode),clearNode(this._linesDomNode),this._rootDomNode.style.display="none"}_useFoldingOpacityTransition(e){this._lineNumbersDomNode.style.setProperty("--vscode-editorStickyScroll-foldingOpacityTransition",`opacity ${e?.5:0}s`)}_setFoldingIconsVisibility(e){for(const t of this._stickyLines){const i=t.foldingIcon;i&&i.setVisible(e?!0:i.isCollapsed)}}_renderRootNode(e,t,i=1/0){return __awaiter$b(this,void 0,void 0,function*(){const n=this._editor.getLayoutInfo();for(const[s,a]of this._lineNumbers.entries()){const l=e[s],d=a>=i||(l==null?void 0:l.lineNumber)!==a?this._renderChildNode(s,a,t,n):this._updateTopAndZIndexOfStickyLine(l);d&&(this._linesDomNode.appendChild(d.lineDomNode),this._lineNumbersDomNode.appendChild(d.lineNumberDomNode),this._stickyLines.push(d))}t&&(this._setFoldingHoverListeners(),this._useFoldingOpacityTransition(!this._isOnGlyphMargin));const r=this._lineNumbers.length*this._lineHeight+this._lastLineRelativePosition;if(r===0){this._clearStickyWidget();return}this._rootDomNode.style.display="block",this._lineNumbersDomNode.style.height=`${r}px`,this._linesDomNodeScrollable.style.height=`${r}px`,this._rootDomNode.style.height=`${r}px`,this._rootDomNode.style.marginLeft="0px",this._updateMinContentWidth(),this._editor.layoutOverlayWidget(this)})}_setFoldingHoverListeners(){this._editor.getOption(109)==="mouseover"&&(this._foldingIconStore.add(addDisposableListener(this._lineNumbersDomNode,EventType$1.MOUSE_ENTER,t=>{this._isOnGlyphMargin=!0,this._setFoldingIconsVisibility(!0)})),this._foldingIconStore.add(addDisposableListener(this._lineNumbersDomNode,EventType$1.MOUSE_LEAVE,()=>{this._isOnGlyphMargin=!1,this._useFoldingOpacityTransition(!0),this._setFoldingIconsVisibility(!1)})))}_renderChildNode(e,t,i,n){const r=this._editor._getViewModel();if(!r)return;const s=r.coordinatesConverter.convertModelPositionToViewPosition(new Position$1(t,1)).lineNumber,a=r.getViewLineRenderingData(s),l=this._editor.getOption(67);let d;try{d=LineDecoration.filter(a.inlineDecorations,s,a.minColumn,a.maxColumn)}catch{d=[]}const c=new RenderLineInput(!0,!0,a.content,a.continuesWithWrappedLine,a.isBasicASCII,a.containsRTL,0,a.tokens,d,a.tabSize,a.startVisibleColumn,1,1,1,500,"none",!0,!0,null),u=new StringBuilder(2e3),g=renderViewLine(c,u);let f;_ttPolicy?f=_ttPolicy.createHTML(u.build()):f=u.build();const p=document.createElement("span");p.setAttribute(STICKY_INDEX_ATTR,String(e)),p.setAttribute(STICKY_IS_LINE_ATTR,""),p.setAttribute("role","listitem"),p.tabIndex=0,p.className="sticky-line-content",p.classList.add(`stickyLine${t}`),p.style.lineHeight=`${this._lineHeight}px`,p.innerHTML=f;const m=document.createElement("span");m.setAttribute(STICKY_INDEX_ATTR,String(e)),m.setAttribute(STICKY_IS_LINE_NUMBER_ATTR,""),m.className="sticky-line-number",m.style.lineHeight=`${this._lineHeight}px`;const b=n.contentLeft;m.style.width=`${b}px`;const _=document.createElement("span");l.renderType===1||l.renderType===3&&t%10===0?_.innerText=t.toString():l.renderType===2&&(_.innerText=Math.abs(t-this._editor.getPosition().lineNumber).toString()),_.className="sticky-line-number-inner",_.style.lineHeight=`${this._lineHeight}px`,_.style.width=`${n.lineNumbersWidth}px`,_.style.paddingLeft=`${n.lineNumbersLeft}px`,m.appendChild(_);const C=this._renderFoldingIconForLine(i,t);C&&m.appendChild(C.domNode),this._editor.applyFontInfo(p),this._editor.applyFontInfo(_),m.style.lineHeight=`${this._lineHeight}px`,p.style.lineHeight=`${this._lineHeight}px`,m.style.height=`${this._lineHeight}px`,p.style.height=`${this._lineHeight}px`;const S=new RenderedStickyLine(e,t,p,m,C,g.characterMapping);return this._updateTopAndZIndexOfStickyLine(S)}_updateTopAndZIndexOfStickyLine(e){var t;const i=e.index,n=e.lineDomNode,r=e.lineNumberDomNode,s=i===this._lineNumbers.length-1,a="0",l="1";n.style.zIndex=s?a:l,r.style.zIndex=s?a:l;const d=`${i*this._lineHeight+this._lastLineRelativePosition+(!((t=e.foldingIcon)===null||t===void 0)&&t.isCollapsed?1:0)}px`,c=`${i*this._lineHeight}px`;return n.style.top=s?d:c,r.style.top=s?d:c,e}_renderFoldingIconForLine(e,t){const i=this._editor.getOption(109);if(!e||i==="never")return;const n=e.regions,r=n.findRange(t),s=n.getStartLineNumber(r);if(!(t===s))return;const l=n.isCollapsed(r),d=new StickyFoldingIcon(l,s,n.getEndLineNumber(r),this._lineHeight);return d.setVisible(this._isOnGlyphMargin?!0:l||i==="always"),d.domNode.setAttribute(STICKY_IS_FOLDING_ICON_ATTR,""),d}_updateMinContentWidth(){this._minContentWidthInPx=0;for(const e of this._stickyLines)e.lineDomNode.scrollWidth>this._minContentWidthInPx&&(this._minContentWidthInPx=e.lineDomNode.scrollWidth);this._minContentWidthInPx+=this._editor.getLayoutInfo().verticalScrollbarWidth}getId(){return"editor.contrib.stickyScrollWidget"}getDomNode(){return this._rootDomNode}getPosition(){return{preference:null}}getMinContentWidthInPx(){return this._minContentWidthInPx}focusLineWithIndex(e){0<=e&&e<this._stickyLines.length&&this._stickyLines[e].lineDomNode.focus()}getEditorPositionFromNode(e){if(!e||e.children.length>0)return null;const t=this._getRenderedStickyLineFromChildDomNode(e);if(!t)return null;const i=getColumnOfNodeOffset(t.characterMapping,e,0);return new Position$1(t.lineNumber,i)}getLineNumberFromChildDomNode(e){var t,i;return(i=(t=this._getRenderedStickyLineFromChildDomNode(e))===null||t===void 0?void 0:t.lineNumber)!==null&&i!==void 0?i:null}_getRenderedStickyLineFromChildDomNode(e){const t=this.getLineIndexFromChildDomNode(e);return t===null||t<0||t>=this._stickyLines.length?null:this._stickyLines[t]}getLineIndexFromChildDomNode(e){const t=this._getAttributeValue(e,STICKY_INDEX_ATTR);return t?parseInt(t,10):null}isInStickyLine(e){return this._getAttributeValue(e,STICKY_IS_LINE_ATTR)!==void 0}isInFoldingIconDomNode(e){return this._getAttributeValue(e,STICKY_IS_FOLDING_ICON_ATTR)!==void 0}_getAttributeValue(e,t){for(;e&&e!==this._rootDomNode;){const i=e.getAttribute(t);if(i!==null)return i;e=e.parentElement}}}class RenderedStickyLine{constructor(e,t,i,n,r,s){this.index=e,this.lineNumber=t,this.lineDomNode=i,this.lineNumberDomNode=n,this.foldingIcon=r,this.characterMapping=s}}class StickyFoldingIcon{constructor(e,t,i,n){this.isCollapsed=e,this.foldingStartLine=t,this.foldingEndLine=i,this.dimension=n,this.domNode=document.createElement("div"),this.domNode.style.width=`${n}px`,this.domNode.style.height=`${n}px`,this.domNode.className=ThemeIcon.asClassName(e?foldingCollapsedIcon:foldingExpandedIcon)}setVisible(e){this.domNode.style.cursor=e?"pointer":"default",this.domNode.style.opacity=e?"1":"0"}}class StickyRange{constructor(e,t){this.startLineNumber=e,this.endLineNumber=t}}class StickyElement{constructor(e,t,i){this.range=e,this.children=t,this.parent=i}}class StickyModel{constructor(e,t,i,n){this.uri=e,this.version=t,this.element=i,this.outlineProviderId=n}}var __decorate$g=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$g=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$a=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},ModelProvider;(function(o){o.OUTLINE_MODEL="outlineModel",o.FOLDING_PROVIDER_MODEL="foldingProviderModel",o.INDENTATION_MODEL="indentationModel"})(ModelProvider||(ModelProvider={}));var Status;(function(o){o[o.VALID=0]="VALID",o[o.INVALID=1]="INVALID",o[o.CANCELED=2]="CANCELED"})(Status||(Status={}));let StickyModelProvider=class extends Disposable{constructor(e,t,i,n){super(),this._editor=e,this._languageConfigurationService=t,this._languageFeaturesService=i,this._modelProviders=[],this._modelPromise=null,this._updateScheduler=this._register(new Delayer(300)),this._updateOperation=this._register(new DisposableStore);const r=new StickyModelFromCandidateOutlineProvider(i),s=new StickyModelFromCandidateSyntaxFoldingProvider(this._editor,i),a=new StickyModelFromCandidateIndentationFoldingProvider(this._editor,t);switch(n){case ModelProvider.OUTLINE_MODEL:this._modelProviders.push(r),this._modelProviders.push(s),this._modelProviders.push(a);break;case ModelProvider.FOLDING_PROVIDER_MODEL:this._modelProviders.push(s),this._modelProviders.push(a);break;case ModelProvider.INDENTATION_MODEL:this._modelProviders.push(a);break}}_cancelModelPromise(){this._modelPromise&&(this._modelPromise.cancel(),this._modelPromise=null)}update(e,t,i){return __awaiter$a(this,void 0,void 0,function*(){return this._updateOperation.clear(),this._updateOperation.add({dispose:()=>{this._cancelModelPromise(),this._updateScheduler.cancel()}}),this._cancelModelPromise(),yield this._updateScheduler.trigger(()=>__awaiter$a(this,void 0,void 0,function*(){for(const n of this._modelProviders){const{statusPromise:r,modelPromise:s}=n.computeStickyModel(e,t,i);this._modelPromise=s;const a=yield r;if(this._modelPromise!==s)return null;switch(a){case Status.CANCELED:return this._updateOperation.clear(),null;case Status.VALID:return n.stickyModel}}return null})).catch(n=>(onUnexpectedError(n),null))})}};StickyModelProvider=__decorate$g([__param$g(1,ILanguageConfigurationService),__param$g(2,ILanguageFeaturesService)],StickyModelProvider);class StickyModelCandidateProvider{constructor(){this._stickyModel=null}get stickyModel(){return this._stickyModel}_invalid(){return this._stickyModel=null,Status.INVALID}computeStickyModel(e,t,i){if(i.isCancellationRequested||!this.isProviderValid(e))return{statusPromise:this._invalid(),modelPromise:null};const n=createCancelablePromise(r=>this.createModelFromProvider(e,t,r));return{statusPromise:n.then(r=>this.isModelValid(r)?i.isCancellationRequested?Status.CANCELED:(this._stickyModel=this.createStickyModel(e,t,i,r),Status.VALID):this._invalid()).then(void 0,r=>(onUnexpectedError(r),Status.CANCELED)),modelPromise:n}}isModelValid(e){return!0}isProviderValid(e){return!0}}let StickyModelFromCandidateOutlineProvider=class extends StickyModelCandidateProvider{constructor(e){super(),this._languageFeaturesService=e}createModelFromProvider(e,t,i){return OutlineModel.create(this._languageFeaturesService.documentSymbolProvider,e,i)}createStickyModel(e,t,i,n){var r;const{stickyOutlineElement:s,providerID:a}=this._stickyModelFromOutlineModel(n,(r=this._stickyModel)===null||r===void 0?void 0:r.outlineProviderId);return new StickyModel(e.uri,t,s,a)}isModelValid(e){return e&&e.children.size>0}_stickyModelFromOutlineModel(e,t){let i;if(Iterable.first(e.children.values())instanceof OutlineGroup){const a=Iterable.find(e.children.values(),l=>l.id===t);if(a)i=a.children;else{let l="",d=-1,c;for(const[u,g]of e.children.entries()){const f=this._findSumOfRangesOfGroup(g);f>d&&(c=g,d=f,l=g.id)}t=l,i=c.children}}else i=e.children;const n=[],r=Array.from(i.values()).sort((a,l)=>{const d=new StickyRange(a.symbol.range.startLineNumber,a.symbol.range.endLineNumber),c=new StickyRange(l.symbol.range.startLineNumber,l.symbol.range.endLineNumber);return this._comparator(d,c)});for(const a of r)n.push(this._stickyModelFromOutlineElement(a,a.symbol.selectionRange.startLineNumber));return{stickyOutlineElement:new StickyElement(void 0,n,void 0),providerID:t}}_stickyModelFromOutlineElement(e,t){const i=[];for(const r of e.children.values())if(r.symbol.selectionRange.startLineNumber!==r.symbol.range.endLineNumber)if(r.symbol.selectionRange.startLineNumber!==t)i.push(this._stickyModelFromOutlineElement(r,r.symbol.selectionRange.startLineNumber));else for(const s of r.children.values())i.push(this._stickyModelFromOutlineElement(s,r.symbol.selectionRange.startLineNumber));i.sort((r,s)=>this._comparator(r.range,s.range));const n=new StickyRange(e.symbol.selectionRange.startLineNumber,e.symbol.range.endLineNumber);return new StickyElement(n,i,void 0)}_comparator(e,t){return e.startLineNumber!==t.startLineNumber?e.startLineNumber-t.startLineNumber:t.endLineNumber-e.endLineNumber}_findSumOfRangesOfGroup(e){let t=0;for(const i of e.children.values())t+=this._findSumOfRangesOfGroup(i);return e instanceof OutlineElement?t+e.symbol.range.endLineNumber-e.symbol.selectionRange.startLineNumber:t}};StickyModelFromCandidateOutlineProvider=__decorate$g([__param$g(0,ILanguageFeaturesService)],StickyModelFromCandidateOutlineProvider);class StickyModelFromCandidateFoldingProvider extends StickyModelCandidateProvider{constructor(e){super(),this._foldingLimitReporter=new RangesLimitReporter(e)}createStickyModel(e,t,i,n){const r=this._fromFoldingRegions(n);return new StickyModel(e.uri,t,r,void 0)}isModelValid(e){return e!==null}_fromFoldingRegions(e){const t=e.length,i=[],n=new StickyElement(void 0,[],void 0);for(let r=0;r<t;r++){const s=e.getParentIndex(r);let a;s!==-1?a=i[s]:a=n;const l=new StickyElement(new StickyRange(e.getStartLineNumber(r),e.getEndLineNumber(r)+1),[],a);a.children.push(l),i.push(l)}return n}}let StickyModelFromCandidateIndentationFoldingProvider=class extends StickyModelFromCandidateFoldingProvider{constructor(e,t){super(e),this._languageConfigurationService=t}createModelFromProvider(e,t,i){return new IndentRangeProvider(e,this._languageConfigurationService,this._foldingLimitReporter).compute(i)}};StickyModelFromCandidateIndentationFoldingProvider=__decorate$g([__param$g(1,ILanguageConfigurationService)],StickyModelFromCandidateIndentationFoldingProvider);let StickyModelFromCandidateSyntaxFoldingProvider=class extends StickyModelFromCandidateFoldingProvider{constructor(e,t){super(e),this._languageFeaturesService=t}isProviderValid(e){return FoldingController.getFoldingRangeProviders(this._languageFeaturesService,e).length>0}createModelFromProvider(e,t,i){const n=FoldingController.getFoldingRangeProviders(this._languageFeaturesService,e);return new SyntaxRangeProvider(e,n,()=>this.createModelFromProvider(e,t,i),this._foldingLimitReporter,void 0).compute(i)}};StickyModelFromCandidateSyntaxFoldingProvider=__decorate$g([__param$g(1,ILanguageFeaturesService)],StickyModelFromCandidateSyntaxFoldingProvider);var __decorate$f=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$f=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$9=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};class StickyLineCandidate{constructor(e,t,i){this.startLineNumber=e,this.endLineNumber=t,this.nestingDepth=i}}let StickyLineCandidateProvider=class extends Disposable{constructor(e,t,i){super(),this._languageFeaturesService=t,this._languageConfigurationService=i,this._onDidChangeStickyScroll=this._register(new Emitter$1),this.onDidChangeStickyScroll=this._onDidChangeStickyScroll.event,this._options=null,this._model=null,this._cts=null,this._stickyModelProvider=null,this._editor=e,this._sessionStore=this._register(new DisposableStore),this._updateSoon=this._register(new RunOnceScheduler(()=>this.update(),50)),this._register(this._editor.onDidChangeConfiguration(n=>{n.hasChanged(114)&&this.readConfiguration()})),this.readConfiguration()}readConfiguration(){this._stickyModelProvider=null,this._sessionStore.clear(),this._options=this._editor.getOption(114),this._options.enabled&&(this._stickyModelProvider=this._sessionStore.add(new StickyModelProvider(this._editor,this._languageConfigurationService,this._languageFeaturesService,this._options.defaultModel)),this._sessionStore.add(this._editor.onDidChangeModel(()=>{this._model=null,this._onDidChangeStickyScroll.fire(),this.update()})),this._sessionStore.add(this._editor.onDidChangeHiddenAreas(()=>this.update())),this._sessionStore.add(this._editor.onDidChangeModelContent(()=>this._updateSoon.schedule())),this._sessionStore.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(()=>this.update())),this.update())}getVersionId(){var e;return(e=this._model)===null||e===void 0?void 0:e.version}update(){var e;return __awaiter$9(this,void 0,void 0,function*(){(e=this._cts)===null||e===void 0||e.dispose(!0),this._cts=new CancellationTokenSource$1,yield this.updateStickyModel(this._cts.token),this._onDidChangeStickyScroll.fire()})}updateStickyModel(e){return __awaiter$9(this,void 0,void 0,function*(){if(!this._editor.hasModel()||!this._stickyModelProvider||this._editor.getModel().isTooLargeForTokenization()){this._model=null;return}const t=this._editor.getModel(),i=t.getVersionId(),n=yield this._stickyModelProvider.update(t,i,e);e.isCancellationRequested||(this._model=n)})}updateIndex(e){return e===-1?e=0:e<0&&(e=-e-2),e}getCandidateStickyLinesIntersectingFromStickyModel(e,t,i,n,r){if(t.children.length===0)return;let s=r;const a=[];for(let c=0;c<t.children.length;c++){const u=t.children[c];u.range&&a.push(u.range.startLineNumber)}const l=this.updateIndex(binarySearch(a,e.startLineNumber,(c,u)=>c-u)),d=this.updateIndex(binarySearch(a,e.startLineNumber+n,(c,u)=>c-u));for(let c=l;c<=d;c++){const u=t.children[c];if(!u)return;if(u.range){const g=u.range.startLineNumber,f=u.range.endLineNumber;e.startLineNumber<=f+1&&g-1<=e.endLineNumber&&g!==s&&(s=g,i.push(new StickyLineCandidate(g,f-1,n+1)),this.getCandidateStickyLinesIntersectingFromStickyModel(e,u,i,n+1,g))}else this.getCandidateStickyLinesIntersectingFromStickyModel(e,u,i,n,r)}}getCandidateStickyLinesIntersecting(e){var t,i;if(!(!((t=this._model)===null||t===void 0)&&t.element))return[];let n=[];this.getCandidateStickyLinesIntersectingFromStickyModel(e,this._model.element,n,0,-1);const r=(i=this._editor._getViewModel())===null||i===void 0?void 0:i.getHiddenAreas();if(r)for(const s of r)n=n.filter(a=>!(a.startLineNumber>=s.startLineNumber&&a.endLineNumber<=s.endLineNumber+1));return n}};StickyLineCandidateProvider=__decorate$f([__param$f(1,ILanguageFeaturesService),__param$f(2,ILanguageConfigurationService)],StickyLineCandidateProvider);var __decorate$e=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$e=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$8=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},StickyScrollController_1;let StickyScrollController=StickyScrollController_1=class extends Disposable{constructor(e,t,i,n,r,s,a){super(),this._editor=e,this._contextMenuService=t,this._languageFeaturesService=i,this._instaService=n,this._contextKeyService=a,this._sessionStore=new DisposableStore,this._foldingModel=null,this._maxStickyLines=Number.MAX_SAFE_INTEGER,this._candidateDefinitionsLength=-1,this._focusedStickyElementIndex=-1,this._enabled=!1,this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1,this._endLineNumbers=[],this._showEndForLine=null,this._stickyScrollWidget=new StickyScrollWidget(this._editor),this._stickyLineCandidateProvider=new StickyLineCandidateProvider(this._editor,i,r),this._register(this._stickyScrollWidget),this._register(this._stickyLineCandidateProvider),this._widgetState=new StickyScrollWidgetState([],[],0),this._readConfiguration();const l=this._stickyScrollWidget.getDomNode();this._register(this._editor.onDidChangeConfiguration(c=>{(c.hasChanged(114)||c.hasChanged(72)||c.hasChanged(66)||c.hasChanged(109))&&this._readConfiguration()})),this._register(addDisposableListener(l,EventType$1.CONTEXT_MENU,c=>__awaiter$8(this,void 0,void 0,function*(){this._onContextMenu(c)}))),this._stickyScrollFocusedContextKey=EditorContextKeys.stickyScrollFocused.bindTo(this._contextKeyService),this._stickyScrollVisibleContextKey=EditorContextKeys.stickyScrollVisible.bindTo(this._contextKeyService);const d=this._register(trackFocus(l));this._register(d.onDidBlur(c=>{this._positionRevealed===!1&&l.clientHeight===0?(this._focusedStickyElementIndex=-1,this.focus()):this._disposeFocusStickyScrollStore()})),this._register(d.onDidFocus(c=>{this.focus()})),this._registerMouseListeners(),this._register(addDisposableListener(l,EventType$1.MOUSE_DOWN,c=>{this._onMouseDown=!0}))}static get(e){return e.getContribution(StickyScrollController_1.ID)}_disposeFocusStickyScrollStore(){var e;this._stickyScrollFocusedContextKey.set(!1),(e=this._focusDisposableStore)===null||e===void 0||e.dispose(),this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1}focus(){if(this._onMouseDown){this._onMouseDown=!1,this._editor.focus();return}this._stickyScrollFocusedContextKey.get()!==!0&&(this._focused=!0,this._focusDisposableStore=new DisposableStore,this._stickyScrollFocusedContextKey.set(!0),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumbers.length-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}focusNext(){this._focusedStickyElementIndex<this._stickyScrollWidget.lineNumberCount-1&&this._focusNav(!0)}focusPrevious(){this._focusedStickyElementIndex>0&&this._focusNav(!1)}selectEditor(){this._editor.focus()}_focusNav(e){this._focusedStickyElementIndex=e?this._focusedStickyElementIndex+1:this._focusedStickyElementIndex-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}goToFocused(){const e=this._stickyScrollWidget.lineNumbers;this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:e[this._focusedStickyElementIndex],column:1})}_revealPosition(e){this._reveaInEditor(e,()=>this._editor.revealPosition(e))}_revealLineInCenterIfOutsideViewport(e){this._reveaInEditor(e,()=>this._editor.revealLineInCenterIfOutsideViewport(e.lineNumber,0))}_reveaInEditor(e,t){this._focused&&this._disposeFocusStickyScrollStore(),this._positionRevealed=!0,t(),this._editor.setSelection(Range$2.fromPositions(e)),this._editor.focus()}_registerMouseListeners(){const e=this._register(new DisposableStore),t=this._register(new ClickLinkGesture(this._editor,{extractLineNumberFromMouseEvent:r=>{const s=this._stickyScrollWidget.getEditorPositionFromNode(r.target.element);return s?s.lineNumber:0}})),i=r=>{if(!this._editor.hasModel()||r.target.type!==12||r.target.detail!==this._stickyScrollWidget.getId())return null;const s=r.target.element;if(!s||s.innerText!==s.innerHTML)return null;const a=this._stickyScrollWidget.getEditorPositionFromNode(s);return a?{range:new Range$2(a.lineNumber,a.column,a.lineNumber,a.column+s.innerText.length),textElement:s}:null},n=this._stickyScrollWidget.getDomNode();this._register(addStandardDisposableListener(n,EventType$1.CLICK,r=>{if(r.ctrlKey||r.altKey||r.metaKey||!r.leftButton)return;if(r.shiftKey){const d=this._stickyScrollWidget.getLineIndexFromChildDomNode(r.target);if(d===null)return;const c=new Position$1(this._endLineNumbers[d],1);this._revealLineInCenterIfOutsideViewport(c);return}if(this._stickyScrollWidget.isInFoldingIconDomNode(r.target)){const d=this._stickyScrollWidget.getLineNumberFromChildDomNode(r.target);this._toggleFoldingRegionForLine(d);return}if(!this._stickyScrollWidget.isInStickyLine(r.target))return;let l=this._stickyScrollWidget.getEditorPositionFromNode(r.target);if(!l){const d=this._stickyScrollWidget.getLineNumberFromChildDomNode(r.target);if(d===null)return;l=new Position$1(d,1)}this._revealPosition(l)})),this._register(addStandardDisposableListener(n,EventType$1.MOUSE_MOVE,r=>{if(r.shiftKey){const s=this._stickyScrollWidget.getLineIndexFromChildDomNode(r.target);if(s===null||this._showEndForLine!==null&&this._showEndForLine===s)return;this._showEndForLine=s,this._renderStickyScroll();return}this._showEndForLine!==null&&(this._showEndForLine=null,this._renderStickyScroll())})),this._register(addDisposableListener(n,EventType$1.MOUSE_LEAVE,r=>{this._showEndForLine!==null&&(this._showEndForLine=null,this._renderStickyScroll())})),this._register(t.onMouseMoveOrRelevantKeyDown(([r,s])=>{const a=i(r);if(!a||!r.hasTriggerModifier||!this._editor.hasModel()){e.clear();return}const{range:l,textElement:d}=a;if(!l.equalsRange(this._stickyRangeProjectedOnEditor))this._stickyRangeProjectedOnEditor=l,e.clear();else if(d.style.textDecoration==="underline")return;const c=new CancellationTokenSource$1;e.add(toDisposable(()=>c.dispose(!0)));let u;getDefinitionsAtPosition(this._languageFeaturesService.definitionProvider,this._editor.getModel(),new Position$1(l.startLineNumber,l.startColumn+1),c.token).then(g=>{if(!c.token.isCancellationRequested)if(g.length!==0){this._candidateDefinitionsLength=g.length;const f=d;u!==f?(e.clear(),u=f,u.style.textDecoration="underline",e.add(toDisposable(()=>{u.style.textDecoration="none"}))):u||(u=f,u.style.textDecoration="underline",e.add(toDisposable(()=>{u.style.textDecoration="none"})))}else e.clear()})})),this._register(t.onCancel(()=>{e.clear()})),this._register(t.onExecute(r=>__awaiter$8(this,void 0,void 0,function*(){if(r.target.type!==12||r.target.detail!==this._stickyScrollWidget.getId())return;const s=this._stickyScrollWidget.getEditorPositionFromNode(r.target.element);s&&(this._candidateDefinitionsLength>1&&(this._focused&&this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:s.lineNumber,column:1})),this._instaService.invokeFunction(goToDefinitionWithLocation,r,this._editor,{uri:this._editor.getModel().uri,range:this._stickyRangeProjectedOnEditor}))})))}_onContextMenu(e){const t=new StandardMouseEvent(e);this._contextMenuService.showContextMenu({menuId:MenuId.StickyScrollContext,getAnchor:()=>t})}_toggleFoldingRegionForLine(e){if(!this._foldingModel||e===null)return;const t=this._stickyScrollWidget.getStickyLineForLine(e),i=t==null?void 0:t.foldingIcon;if(!i)return;toggleCollapseState(this._foldingModel,Number.MAX_VALUE,[e]),i.isCollapsed=!i.isCollapsed;const n=(i.isCollapsed?this._editor.getTopForLineNumber(i.foldingEndLine):this._editor.getTopForLineNumber(i.foldingStartLine))-this._editor.getOption(66)*t.index+1;this._editor.setScrollTop(n),this._renderStickyScroll(e)}_readConfiguration(){const e=this._editor.getOption(114);if(e.enabled===!1){this._editor.removeOverlayWidget(this._stickyScrollWidget),this._sessionStore.clear(),this._enabled=!1;return}else e.enabled&&!this._enabled&&(this._editor.addOverlayWidget(this._stickyScrollWidget),this._sessionStore.add(this._editor.onDidScrollChange(i=>{i.scrollTopChanged&&(this._showEndForLine=null,this._renderStickyScroll())})),this._sessionStore.add(this._editor.onDidLayoutChange(()=>this._onDidResize())),this._sessionStore.add(this._editor.onDidChangeModelTokens(i=>this._onTokensChange(i))),this._sessionStore.add(this._stickyLineCandidateProvider.onDidChangeStickyScroll(()=>{this._showEndForLine=null,this._renderStickyScroll()})),this._enabled=!0);this._editor.getOption(67).renderType===2&&this._sessionStore.add(this._editor.onDidChangeCursorPosition(()=>{this._showEndForLine=null,this._renderStickyScroll()}))}_needsUpdate(e){const t=this._stickyScrollWidget.getCurrentLines();for(const i of t)for(const n of e.ranges)if(i>=n.fromLineNumber&&i<=n.toLineNumber)return!0;return!1}_onTokensChange(e){this._needsUpdate(e)&&this._renderStickyScroll(-1)}_onDidResize(){const t=this._editor.getLayoutInfo().height/this._editor.getOption(66);this._maxStickyLines=Math.round(t*.25)}_renderStickyScroll(e=1/0){var t,i;return __awaiter$8(this,void 0,void 0,function*(){const n=this._editor.getModel();if(!n||n.isTooLargeForTokenization()){this._foldingModel=null,this._stickyScrollWidget.setState(void 0,null,e);return}const r=this._stickyLineCandidateProvider.getVersionId();if(r===void 0||r===n.getVersionId())if(this._foldingModel=(i=yield(t=FoldingController.get(this._editor))===null||t===void 0?void 0:t.getFoldingModel())!==null&&i!==void 0?i:null,this._widgetState=this.findScrollWidgetState(),this._stickyScrollVisibleContextKey.set(this._widgetState.startLineNumbers.length!==0),!this._focused)this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,e);else if(this._focusedStickyElementIndex===-1)this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,e),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1,this._focusedStickyElementIndex!==-1&&this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex);else{const s=this._stickyScrollWidget.lineNumbers[this._focusedStickyElementIndex];this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,e),this._stickyScrollWidget.lineNumberCount===0?this._focusedStickyElementIndex=-1:(this._stickyScrollWidget.lineNumbers.includes(s)||(this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1),this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}})}findScrollWidgetState(){const e=this._editor.getOption(66),t=Math.min(this._maxStickyLines,this._editor.getOption(114).maxLineCount),i=this._editor.getScrollTop();let n=0;const r=[],s=[],a=this._editor.getVisibleRanges();if(a.length!==0){const l=new StickyRange(a[0].startLineNumber,a[a.length-1].endLineNumber),d=this._stickyLineCandidateProvider.getCandidateStickyLinesIntersecting(l);for(const c of d){const u=c.startLineNumber,g=c.endLineNumber,f=c.nestingDepth;if(g-u>0){const p=(f-1)*e,m=f*e,b=this._editor.getBottomForLineNumber(u)-i,_=this._editor.getTopForLineNumber(g)-i,C=this._editor.getBottomForLineNumber(g)-i;if(p>_&&p<=C){r.push(u),s.push(g+1),n=C-m;break}else m>b&&m<=C&&(r.push(u),s.push(g+1));if(r.length===t)break}}}return this._endLineNumbers=s,new StickyScrollWidgetState(r,s,n,this._showEndForLine)}dispose(){super.dispose(),this._sessionStore.dispose()}};StickyScrollController.ID="store.contrib.stickyScrollController";StickyScrollController=StickyScrollController_1=__decorate$e([__param$e(1,IContextMenuService),__param$e(2,ILanguageFeaturesService),__param$e(3,IInstantiationService),__param$e(4,ILanguageConfigurationService),__param$e(5,ILanguageFeatureDebounceService),__param$e(6,IContextKeyService)],StickyScrollController);var __awaiter$7=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};class ToggleStickyScroll extends Action2{constructor(){super({id:"editor.action.toggleStickyScroll",title:{value:localize("toggleStickyScroll","Toggle Sticky Scroll"),mnemonicTitle:localize({},"&&Toggle Sticky Scroll"),original:"Toggle Sticky Scroll"},category:Categories.View,toggled:{condition:ContextKeyExpr.equals("config.editor.stickyScroll.enabled",!0),title:localize("stickyScroll","Sticky Scroll"),mnemonicTitle:localize({},"&&Sticky Scroll")},menu:[{id:MenuId.CommandPalette},{id:MenuId.MenubarAppearanceMenu,group:"4_editor",order:3},{id:MenuId.StickyScrollContext}]})}run(e){return __awaiter$7(this,void 0,void 0,function*(){const t=e.get(IConfigurationService),i=!t.getValue("editor.stickyScroll.enabled");return t.updateValue("editor.stickyScroll.enabled",i)})}}const weight=100;class FocusStickyScroll extends EditorAction2{constructor(){super({id:"editor.action.focusStickyScroll",title:{value:localize("focusStickyScroll","Focus Sticky Scroll"),mnemonicTitle:localize({},"&&Focus Sticky Scroll"),original:"Focus Sticky Scroll"},precondition:ContextKeyExpr.and(ContextKeyExpr.has("config.editor.stickyScroll.enabled"),EditorContextKeys.stickyScrollVisible),menu:[{id:MenuId.CommandPalette}]})}runEditorCommand(e,t){var i;(i=StickyScrollController.get(t))===null||i===void 0||i.focus()}}class SelectNextStickyScrollLine extends EditorAction2{constructor(){super({id:"editor.action.selectNextStickyScrollLine",title:{value:localize("selectNextStickyScrollLine.title","Select next sticky scroll line"),original:"Select next sticky scroll line"},precondition:EditorContextKeys.stickyScrollFocused.isEqualTo(!0),keybinding:{weight,primary:18}})}runEditorCommand(e,t){var i;(i=StickyScrollController.get(t))===null||i===void 0||i.focusNext()}}class SelectPreviousStickyScrollLine extends EditorAction2{constructor(){super({id:"editor.action.selectPreviousStickyScrollLine",title:{value:localize("selectPreviousStickyScrollLine.title","Select previous sticky scroll line"),original:"Select previous sticky scroll line"},precondition:EditorContextKeys.stickyScrollFocused.isEqualTo(!0),keybinding:{weight,primary:16}})}runEditorCommand(e,t){var i;(i=StickyScrollController.get(t))===null||i===void 0||i.focusPrevious()}}class GoToStickyScrollLine extends EditorAction2{constructor(){super({id:"editor.action.goToFocusedStickyScrollLine",title:{value:localize("goToFocusedStickyScrollLine.title","Go to focused sticky scroll line"),original:"Go to focused sticky scroll line"},precondition:EditorContextKeys.stickyScrollFocused.isEqualTo(!0),keybinding:{weight,primary:3}})}runEditorCommand(e,t){var i;(i=StickyScrollController.get(t))===null||i===void 0||i.goToFocused()}}class SelectEditor extends EditorAction2{constructor(){super({id:"editor.action.selectEditor",title:{value:localize("selectEditor.title","Select Editor"),original:"Select Editor"},precondition:EditorContextKeys.stickyScrollFocused.isEqualTo(!0),keybinding:{weight,primary:9}})}runEditorCommand(e,t){var i;(i=StickyScrollController.get(t))===null||i===void 0||i.selectEditor()}}registerEditorContribution(StickyScrollController.ID,StickyScrollController,1);registerAction2(ToggleStickyScroll);registerAction2(FocusStickyScroll);registerAction2(SelectPreviousStickyScrollLine);registerAction2(SelectNextStickyScrollLine);registerAction2(GoToStickyScrollLine);registerAction2(SelectEditor);var __decorate$d=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$d=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$6=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},EditorContribution_1;class SuggestInlineCompletion{constructor(e,t,i,n,r,s){this.range=e,this.insertText=t,this.filterText=i,this.additionalTextEdits=n,this.command=r,this.completion=s}}let InlineCompletionResults=class extends RefCountedDisposable{constructor(e,t,i,n,r,s){super(r.disposable),this.model=e,this.line=t,this.word=i,this.completionModel=n,this._suggestMemoryService=s}canBeReused(e,t,i){return this.model===e&&this.line===t&&this.word.word.length>0&&this.word.startColumn===i.startColumn&&this.word.endColumn<i.endColumn&&this.completionModel.getIncompleteProvider().size===0}get items(){var e;const t=[],{items:i}=this.completionModel,n=this._suggestMemoryService.select(this.model,{lineNumber:this.line,column:this.word.endColumn+this.completionModel.lineContext.characterCountDelta},i),r=Iterable.slice(i,n),s=Iterable.slice(i,0,n);let a=5;for(const l of Iterable.concat(r,s)){if(l.score===FuzzyScore.Default)continue;const d=new Range$2(l.editStart.lineNumber,l.editStart.column,l.editInsertEnd.lineNumber,l.editInsertEnd.column+this.completionModel.lineContext.characterCountDelta),c=l.completion.insertTextRules&&l.completion.insertTextRules&4?{snippet:l.completion.insertText}:l.completion.insertText;t.push(new SuggestInlineCompletion(d,c,(e=l.filterTextLow)!==null&&e!==void 0?e:l.labelLow,l.completion.additionalTextEdits,l.completion.command,l)),a-->=0&&l.resolve(CancellationToken.None)}return t}};InlineCompletionResults=__decorate$d([__param$d(5,ISuggestMemoryService)],InlineCompletionResults);let SuggestInlineCompletions=class{constructor(e,t,i,n){this._getEditorOption=e,this._languageFeatureService=t,this._clipboardService=i,this._suggestMemoryService=n}provideInlineCompletions(e,t,i,n){var r;return __awaiter$6(this,void 0,void 0,function*(){if(i.selectedSuggestionInfo)return;const s=this._getEditorOption(88,e);if(QuickSuggestionsOptions.isAllOff(s))return;e.tokenization.tokenizeIfCheap(t.lineNumber);const a=e.tokenization.getLineTokens(t.lineNumber),l=a.getStandardTokenType(a.findTokenIndexAtOffset(Math.max(t.column-1-1,0)));if(QuickSuggestionsOptions.valueFor(s,l)!=="inline")return;let d=e.getWordAtPosition(t),c;if(d!=null&&d.word||(c=this._getTriggerCharacterInfo(e,t)),!(d!=null&&d.word)&&!c||(d||(d=e.getWordUntilPosition(t)),d.endColumn!==t.column))return;let u;const g=e.getValueInRange(new Range$2(t.lineNumber,1,t.lineNumber,t.column));if(!c&&(!((r=this._lastResult)===null||r===void 0)&&r.canBeReused(e,t.lineNumber,d))){const f=new LineContext$1(g,t.column-this._lastResult.word.endColumn);this._lastResult.completionModel.lineContext=f,this._lastResult.acquire(),u=this._lastResult}else{const f=yield provideSuggestionItems(this._languageFeatureService.completionProvider,e,t,new CompletionOptions(void 0,void 0,c==null?void 0:c.providers),c&&{triggerKind:1,triggerCharacter:c.ch},n);let p;f.needsClipboard&&(p=yield this._clipboardService.readText());const m=new CompletionModel(f.items,t.column,new LineContext$1(g,0),WordDistance.None,this._getEditorOption(117,e),this._getEditorOption(111,e),{boostFullMatch:!1,firstMatchCanBeWeak:!1},p);u=new InlineCompletionResults(e,t.lineNumber,d,m,f,this._suggestMemoryService)}return this._lastResult=u,u})}handleItemDidShow(e,t){t.completion.resolve(CancellationToken.None)}freeInlineCompletions(e){e.release()}_getTriggerCharacterInfo(e,t){var i;const n=e.getValueInRange(Range$2.fromPositions({lineNumber:t.lineNumber,column:t.column-1},t)),r=new Set;for(const s of this._languageFeatureService.completionProvider.all(e))!((i=s.triggerCharacters)===null||i===void 0)&&i.includes(n)&&r.add(s);if(r.size!==0)return{providers:r,ch:n}}};SuggestInlineCompletions=__decorate$d([__param$d(1,ILanguageFeaturesService),__param$d(2,IClipboardService),__param$d(3,ISuggestMemoryService)],SuggestInlineCompletions);let EditorContribution=EditorContribution_1=class{constructor(e,t,i,n){if(++EditorContribution_1._counter===1){const r=n.createInstance(SuggestInlineCompletions,(s,a)=>{var l;return((l=i.listCodeEditors().find(c=>c.getModel()===a))!==null&&l!==void 0?l:e).getOption(s)});EditorContribution_1._disposable=t.inlineCompletionsProvider.register("*",r)}}dispose(){var e;--EditorContribution_1._counter===0&&((e=EditorContribution_1._disposable)===null||e===void 0||e.dispose(),EditorContribution_1._disposable=void 0)}};EditorContribution._counter=0;EditorContribution=EditorContribution_1=__decorate$d([__param$d(1,ILanguageFeaturesService),__param$d(2,ICodeEditorService),__param$d(3,IInstantiationService)],EditorContribution);registerEditorContribution("suggest.inlineCompletionsProvider",EditorContribution,0);class ForceRetokenizeAction extends EditorAction{constructor(){super({id:"editor.action.forceRetokenize",label:localize("forceRetokenize","Developer: Force Retokenize"),alias:"Developer: Force Retokenize",precondition:void 0})}run(e,t){if(!t.hasModel())return;const i=t.getModel();i.tokenization.resetTokenization();const n=new StopWatch;i.tokenization.forceTokenization(i.getLineCount()),n.stop(),console.log(`tokenization took ${n.elapsed()}`)}}registerEditorAction(ForceRetokenizeAction);class ToggleTabFocusModeAction extends Action2{constructor(){super({id:ToggleTabFocusModeAction.ID,title:{value:localize({},"Toggle Tab Key Moves Focus"),original:"Toggle Tab Key Moves Focus"},precondition:void 0,keybinding:{primary:2091,mac:{primary:1323},weight:100},f1:!0})}run(){const t=!TabFocus.getTabFocusMode();TabFocus.setTabFocusMode(t),alert(t?localize("toggle.tabMovesFocus.on","Pressing Tab will now move focus to the next focusable element"):localize("toggle.tabMovesFocus.off","Pressing Tab will now insert the tab character"))}}ToggleTabFocusModeAction.ID="editor.action.toggleTabFocusMode";registerAction2(ToggleTabFocusModeAction);var __decorate$c=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$c=function(o,e){return function(t,i){e(t,i,o)}};let Link=class extends Disposable{get enabled(){return this._enabled}set enabled(e){e?(this.el.setAttribute("aria-disabled","false"),this.el.tabIndex=0,this.el.style.pointerEvents="auto",this.el.style.opacity="1",this.el.style.cursor="pointer",this._enabled=!1):(this.el.setAttribute("aria-disabled","true"),this.el.tabIndex=-1,this.el.style.pointerEvents="none",this.el.style.opacity="0.4",this.el.style.cursor="default",this._enabled=!0),this._enabled=e}constructor(e,t,i={},n){var r;super(),this._link=t,this._enabled=!0,this.el=append$1(e,$$d("a.monaco-link",{tabIndex:(r=t.tabIndex)!==null&&r!==void 0?r:0,href:t.href,title:t.title},t.label)),this.el.setAttribute("role","button");const s=this._register(new DomEmitter(this.el,"click")),a=this._register(new DomEmitter(this.el,"keypress")),l=Event.chain(a.event,u=>u.map(g=>new StandardKeyboardEvent(g)).filter(g=>g.keyCode===3)),d=this._register(new DomEmitter(this.el,EventType.Tap)).event;this._register(Gesture.addTarget(this.el));const c=Event.any(s.event,l,d);this._register(c(u=>{this.enabled&&(EventHelper.stop(u,!0),i!=null&&i.opener?i.opener(this._link.href):n.open(this._link.href,{allowCommands:!0}))})),this.enabled=!0}};Link=__decorate$c([__param$c(3,IOpenerService)],Link);var __decorate$b=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$b=function(o,e){return function(t,i){e(t,i,o)}};const BANNER_ELEMENT_HEIGHT=26;let BannerController=class extends Disposable{constructor(e,t){super(),this._editor=e,this.instantiationService=t,this.banner=this._register(this.instantiationService.createInstance(Banner))}hide(){this._editor.setBanner(null,0),this.banner.clear()}show(e){this.banner.show(Object.assign(Object.assign({},e),{onClose:()=>{var t;this.hide(),(t=e.onClose)===null||t===void 0||t.call(e)}})),this._editor.setBanner(this.banner.element,BANNER_ELEMENT_HEIGHT)}};BannerController=__decorate$b([__param$b(1,IInstantiationService)],BannerController);let Banner=class extends Disposable{constructor(e){super(),this.instantiationService=e,this.markdownRenderer=this.instantiationService.createInstance(MarkdownRenderer,{}),this.element=$$d("div.editor-banner"),this.element.tabIndex=0}getAriaLabel(e){if(e.ariaLabel)return e.ariaLabel;if(typeof e.message=="string")return e.message}getBannerMessage(e){if(typeof e=="string"){const t=$$d("span");return t.innerText=e,t}return this.markdownRenderer.render(e).element}clear(){clearNode(this.element)}show(e){clearNode(this.element);const t=this.getAriaLabel(e);t&&this.element.setAttribute("aria-label",t);const i=append$1(this.element,$$d("div.icon-container"));i.setAttribute("aria-hidden","true"),e.icon&&i.appendChild($$d(`div${ThemeIcon.asCSSSelector(e.icon)}`));const n=append$1(this.element,$$d("div.message-container"));if(n.setAttribute("aria-hidden","true"),n.appendChild(this.getBannerMessage(e.message)),this.messageActionsContainer=append$1(this.element,$$d("div.message-actions-container")),e.actions)for(const s of e.actions)this._register(this.instantiationService.createInstance(Link,this.messageActionsContainer,Object.assign(Object.assign({},s),{tabIndex:-1}),{}));const r=append$1(this.element,$$d("div.action-container"));this.actionBar=this._register(new ActionBar(r)),this.actionBar.push(this._register(new Action("banner.close","Close Banner",ThemeIcon.asClassName(widgetClose),!0,()=>{typeof e.onClose=="function"&&e.onClose()})),{icon:!0,label:!1}),this.actionBar.setFocusable(!1)}};Banner=__decorate$b([__param$b(0,IInstantiationService)],Banner);var __decorate$a=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$a=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$5=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};const warningIcon=registerIcon("extensions-warning-message",Codicon.warning,localize("warningIcon","Icon shown with a warning message in the extensions editor."));let UnicodeHighlighter=class extends Disposable{constructor(e,t,i,n){super(),this._editor=e,this._editorWorkerService=t,this._workspaceTrustService=i,this._highlighter=null,this._bannerClosed=!1,this._updateState=r=>{if(r&&r.hasMore){if(this._bannerClosed)return;const s=Math.max(r.ambiguousCharacterCount,r.nonBasicAsciiCharacterCount,r.invisibleCharacterCount);let a;if(r.nonBasicAsciiCharacterCount>=s)a={message:localize("unicodeHighlighting.thisDocumentHasManyNonBasicAsciiUnicodeCharacters","This document contains many non-basic ASCII unicode characters"),command:new DisableHighlightingOfNonBasicAsciiCharactersAction};else if(r.ambiguousCharacterCount>=s)a={message:localize("unicodeHighlighting.thisDocumentHasManyAmbiguousUnicodeCharacters","This document contains many ambiguous unicode characters"),command:new DisableHighlightingOfAmbiguousCharactersAction};else if(r.invisibleCharacterCount>=s)a={message:localize("unicodeHighlighting.thisDocumentHasManyInvisibleUnicodeCharacters","This document contains many invisible unicode characters"),command:new DisableHighlightingOfInvisibleCharactersAction};else throw new Error("Unreachable");this._bannerController.show({id:"unicodeHighlightBanner",message:a.message,icon:warningIcon,actions:[{label:a.command.shortLabel,href:`command:${a.command.id}`}],onClose:()=>{this._bannerClosed=!0}})}else this._bannerController.hide()},this._bannerController=this._register(n.createInstance(BannerController,e)),this._register(this._editor.onDidChangeModel(()=>{this._bannerClosed=!1,this._updateHighlighter()})),this._options=e.getOption(124),this._register(i.onDidChangeTrust(r=>{this._updateHighlighter()})),this._register(e.onDidChangeConfiguration(r=>{r.hasChanged(124)&&(this._options=e.getOption(124),this._updateHighlighter())})),this._updateHighlighter()}dispose(){this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),super.dispose()}_updateHighlighter(){if(this._updateState(null),this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),!this._editor.hasModel())return;const e=resolveOptions(this._workspaceTrustService.isWorkspaceTrusted(),this._options);if([e.nonBasicASCII,e.ambiguousCharacters,e.invisibleCharacters].every(i=>i===!1))return;const t={nonBasicASCII:e.nonBasicASCII,ambiguousCharacters:e.ambiguousCharacters,invisibleCharacters:e.invisibleCharacters,includeComments:e.includeComments,includeStrings:e.includeStrings,allowedCodePoints:Object.keys(e.allowedCharacters).map(i=>i.codePointAt(0)),allowedLocales:Object.keys(e.allowedLocales).map(i=>i==="_os"?new Intl.NumberFormat().resolvedOptions().locale:i==="_vscode"?language:i)};this._editorWorkerService.canComputeUnicodeHighlights(this._editor.getModel().uri)?this._highlighter=new DocumentUnicodeHighlighter(this._editor,t,this._updateState,this._editorWorkerService):this._highlighter=new ViewportUnicodeHighlighter(this._editor,t,this._updateState)}getDecorationInfo(e){return this._highlighter?this._highlighter.getDecorationInfo(e):null}};UnicodeHighlighter.ID="editor.contrib.unicodeHighlighter";UnicodeHighlighter=__decorate$a([__param$a(1,IEditorWorkerService),__param$a(2,IWorkspaceTrustManagementService),__param$a(3,IInstantiationService)],UnicodeHighlighter);function resolveOptions(o,e){return{nonBasicASCII:e.nonBasicASCII===inUntrustedWorkspace?!o:e.nonBasicASCII,ambiguousCharacters:e.ambiguousCharacters,invisibleCharacters:e.invisibleCharacters,includeComments:e.includeComments===inUntrustedWorkspace?!o:e.includeComments,includeStrings:e.includeStrings===inUntrustedWorkspace?!o:e.includeStrings,allowedCharacters:e.allowedCharacters,allowedLocales:e.allowedLocales}}let DocumentUnicodeHighlighter=class extends Disposable{constructor(e,t,i,n){super(),this._editor=e,this._options=t,this._updateState=i,this._editorWorkerService=n,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new RunOnceScheduler(()=>this._update(),250)),this._register(this._editor.onDidChangeModelContent(()=>{this._updateSoon.schedule()})),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII()){this._decorations.clear();return}const e=this._model.getVersionId();this._editorWorkerService.computedUnicodeHighlights(this._model.uri,this._options).then(t=>{if(this._model.isDisposed()||this._model.getVersionId()!==e)return;this._updateState(t);const i=[];if(!t.hasMore)for(const n of t.ranges)i.push({range:n,options:Decorations.instance.getDecorationFromOptions(this._options)});this._decorations.set(i)})}getDecorationInfo(e){if(!this._decorations.has(e))return null;const t=this._editor.getModel();if(!isModelDecorationVisible(t,e))return null;const i=t.getValueInRange(e.range);return{reason:computeReason(i,this._options),inComment:isModelDecorationInComment(t,e),inString:isModelDecorationInString(t,e)}}};DocumentUnicodeHighlighter=__decorate$a([__param$a(3,IEditorWorkerService)],DocumentUnicodeHighlighter);class ViewportUnicodeHighlighter extends Disposable{constructor(e,t,i){super(),this._editor=e,this._options=t,this._updateState=i,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new RunOnceScheduler(()=>this._update(),250)),this._register(this._editor.onDidLayoutChange(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidScrollChange(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidChangeHiddenAreas(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidChangeModelContent(()=>{this._updateSoon.schedule()})),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII()){this._decorations.clear();return}const e=this._editor.getVisibleRanges(),t=[],i={ranges:[],ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0,hasMore:!1};for(const n of e){const r=UnicodeTextModelHighlighter.computeUnicodeHighlights(this._model,this._options,n);for(const s of r.ranges)i.ranges.push(s);i.ambiguousCharacterCount+=i.ambiguousCharacterCount,i.invisibleCharacterCount+=i.invisibleCharacterCount,i.nonBasicAsciiCharacterCount+=i.nonBasicAsciiCharacterCount,i.hasMore=i.hasMore||r.hasMore}if(!i.hasMore)for(const n of i.ranges)t.push({range:n,options:Decorations.instance.getDecorationFromOptions(this._options)});this._updateState(i),this._decorations.set(t)}getDecorationInfo(e){if(!this._decorations.has(e))return null;const t=this._editor.getModel(),i=t.getValueInRange(e.range);return isModelDecorationVisible(t,e)?{reason:computeReason(i,this._options),inComment:isModelDecorationInComment(t,e),inString:isModelDecorationInString(t,e)}:null}}let UnicodeHighlighterHoverParticipant=class{constructor(e,t,i){this._editor=e,this._languageService=t,this._openerService=i,this.hoverOrdinal=5}computeSync(e,t){if(!this._editor.hasModel()||e.type!==1)return[];const i=this._editor.getModel(),n=this._editor.getContribution(UnicodeHighlighter.ID);if(!n)return[];const r=[],s=new Set;let a=300;for(const l of t){const d=n.getDecorationInfo(l);if(!d)continue;const u=i.getValueInRange(l.range).codePointAt(0),g=formatCodePointMarkdown(u);let f;switch(d.reason.kind){case 0:{isBasicASCII(d.reason.confusableWith)?f=localize("unicodeHighlight.characterIsAmbiguousASCII","The character {0} could be confused with the ASCII character {1}, which is more common in source code.",g,formatCodePointMarkdown(d.reason.confusableWith.codePointAt(0))):f=localize("unicodeHighlight.characterIsAmbiguous","The character {0} could be confused with the character {1}, which is more common in source code.",g,formatCodePointMarkdown(d.reason.confusableWith.codePointAt(0)));break}case 1:f=localize("unicodeHighlight.characterIsInvisible","The character {0} is invisible.",g);break;case 2:f=localize("unicodeHighlight.characterIsNonBasicAscii","The character {0} is not a basic ASCII character.",g);break}if(s.has(f))continue;s.add(f);const p={codePoint:u,reason:d.reason,inComment:d.inComment,inString:d.inString},m=localize("unicodeHighlight.adjustSettings","Adjust settings"),b=`command:${ShowExcludeOptions.ID}?${encodeURIComponent(JSON.stringify(p))}`,_=new MarkdownString("",!0).appendMarkdown(f).appendText(" ").appendLink(b,m);r.push(new MarkdownHover(this,l.range,[_],!1,a++))}return r}renderHoverParts(e,t){return renderMarkdownHovers(e,t,this._editor,this._languageService,this._openerService)}};UnicodeHighlighterHoverParticipant=__decorate$a([__param$a(1,ILanguageService),__param$a(2,IOpenerService)],UnicodeHighlighterHoverParticipant);function codePointToHex(o){return`U+${o.toString(16).padStart(4,"0")}`}function formatCodePointMarkdown(o){let e=`\`${codePointToHex(o)}\``;return InvisibleCharacters.isInvisibleCharacter(o)||(e+=` "${`${renderCodePointAsInlineCode(o)}`}"`),e}function renderCodePointAsInlineCode(o){return o===96?"`` ` ``":"`"+String.fromCodePoint(o)+"`"}function computeReason(o,e){return UnicodeTextModelHighlighter.computeUnicodeHighlightReason(o,e)}class Decorations{constructor(){this.map=new Map}getDecorationFromOptions(e){return this.getDecoration(!e.includeComments,!e.includeStrings)}getDecoration(e,t){const i=`${e}${t}`;let n=this.map.get(i);return n||(n=ModelDecorationOptions.createDynamic({description:"unicode-highlight",stickiness:1,className:"unicode-highlight",showIfCollapsed:!0,overviewRuler:null,minimap:null,hideInCommentTokens:e,hideInStringTokens:t}),this.map.set(i,n)),n}}Decorations.instance=new Decorations;class DisableHighlightingInCommentsAction extends EditorAction{constructor(){super({id:DisableHighlightingOfAmbiguousCharactersAction.ID,label:localize("action.unicodeHighlight.disableHighlightingInComments","Disable highlighting of characters in comments"),alias:"Disable highlighting of characters in comments",precondition:void 0}),this.shortLabel=localize("unicodeHighlight.disableHighlightingInComments.shortLabel","Disable Highlight In Comments")}run(e,t,i){return __awaiter$5(this,void 0,void 0,function*(){const n=e==null?void 0:e.get(IConfigurationService);n&&this.runAction(n)})}runAction(e){return __awaiter$5(this,void 0,void 0,function*(){yield e.updateValue(unicodeHighlightConfigKeys.includeComments,!1,2)})}}class DisableHighlightingInStringsAction extends EditorAction{constructor(){super({id:DisableHighlightingOfAmbiguousCharactersAction.ID,label:localize("action.unicodeHighlight.disableHighlightingInStrings","Disable highlighting of characters in strings"),alias:"Disable highlighting of characters in strings",precondition:void 0}),this.shortLabel=localize("unicodeHighlight.disableHighlightingInStrings.shortLabel","Disable Highlight In Strings")}run(e,t,i){return __awaiter$5(this,void 0,void 0,function*(){const n=e==null?void 0:e.get(IConfigurationService);n&&this.runAction(n)})}runAction(e){return __awaiter$5(this,void 0,void 0,function*(){yield e.updateValue(unicodeHighlightConfigKeys.includeStrings,!1,2)})}}class DisableHighlightingOfAmbiguousCharactersAction extends EditorAction{constructor(){super({id:DisableHighlightingOfAmbiguousCharactersAction.ID,label:localize("action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters","Disable highlighting of ambiguous characters"),alias:"Disable highlighting of ambiguous characters",precondition:void 0}),this.shortLabel=localize("unicodeHighlight.disableHighlightingOfAmbiguousCharacters.shortLabel","Disable Ambiguous Highlight")}run(e,t,i){return __awaiter$5(this,void 0,void 0,function*(){const n=e==null?void 0:e.get(IConfigurationService);n&&this.runAction(n)})}runAction(e){return __awaiter$5(this,void 0,void 0,function*(){yield e.updateValue(unicodeHighlightConfigKeys.ambiguousCharacters,!1,2)})}}DisableHighlightingOfAmbiguousCharactersAction.ID="editor.action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters";class DisableHighlightingOfInvisibleCharactersAction extends EditorAction{constructor(){super({id:DisableHighlightingOfInvisibleCharactersAction.ID,label:localize("action.unicodeHighlight.disableHighlightingOfInvisibleCharacters","Disable highlighting of invisible characters"),alias:"Disable highlighting of invisible characters",precondition:void 0}),this.shortLabel=localize("unicodeHighlight.disableHighlightingOfInvisibleCharacters.shortLabel","Disable Invisible Highlight")}run(e,t,i){return __awaiter$5(this,void 0,void 0,function*(){const n=e==null?void 0:e.get(IConfigurationService);n&&this.runAction(n)})}runAction(e){return __awaiter$5(this,void 0,void 0,function*(){yield e.updateValue(unicodeHighlightConfigKeys.invisibleCharacters,!1,2)})}}DisableHighlightingOfInvisibleCharactersAction.ID="editor.action.unicodeHighlight.disableHighlightingOfInvisibleCharacters";class DisableHighlightingOfNonBasicAsciiCharactersAction extends EditorAction{constructor(){super({id:DisableHighlightingOfNonBasicAsciiCharactersAction.ID,label:localize("action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters","Disable highlighting of non basic ASCII characters"),alias:"Disable highlighting of non basic ASCII characters",precondition:void 0}),this.shortLabel=localize("unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters.shortLabel","Disable Non ASCII Highlight")}run(e,t,i){return __awaiter$5(this,void 0,void 0,function*(){const n=e==null?void 0:e.get(IConfigurationService);n&&this.runAction(n)})}runAction(e){return __awaiter$5(this,void 0,void 0,function*(){yield e.updateValue(unicodeHighlightConfigKeys.nonBasicASCII,!1,2)})}}DisableHighlightingOfNonBasicAsciiCharactersAction.ID="editor.action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters";class ShowExcludeOptions extends EditorAction{constructor(){super({id:ShowExcludeOptions.ID,label:localize("action.unicodeHighlight.showExcludeOptions","Show Exclude Options"),alias:"Show Exclude Options",precondition:void 0})}run(e,t,i){return __awaiter$5(this,void 0,void 0,function*(){const{codePoint:n,reason:r,inString:s,inComment:a}=i,l=String.fromCodePoint(n),d=e.get(IQuickInputService),c=e.get(IConfigurationService);function u(p){return InvisibleCharacters.isInvisibleCharacter(p)?localize("unicodeHighlight.excludeInvisibleCharFromBeingHighlighted","Exclude {0} (invisible character) from being highlighted",codePointToHex(p)):localize("unicodeHighlight.excludeCharFromBeingHighlighted","Exclude {0} from being highlighted",`${codePointToHex(p)} "${l}"`)}const g=[];if(r.kind===0)for(const p of r.notAmbiguousInLocales)g.push({label:localize("unicodeHighlight.allowCommonCharactersInLanguage",'Allow unicode characters that are more common in the language "{0}".',p),run:()=>__awaiter$5(this,void 0,void 0,function*(){excludeLocaleFromBeingHighlighted(c,[p])})});if(g.push({label:u(n),run:()=>excludeCharFromBeingHighlighted(c,[n])}),a){const p=new DisableHighlightingInCommentsAction;g.push({label:p.label,run:()=>__awaiter$5(this,void 0,void 0,function*(){return p.runAction(c)})})}else if(s){const p=new DisableHighlightingInStringsAction;g.push({label:p.label,run:()=>__awaiter$5(this,void 0,void 0,function*(){return p.runAction(c)})})}if(r.kind===0){const p=new DisableHighlightingOfAmbiguousCharactersAction;g.push({label:p.label,run:()=>__awaiter$5(this,void 0,void 0,function*(){return p.runAction(c)})})}else if(r.kind===1){const p=new DisableHighlightingOfInvisibleCharactersAction;g.push({label:p.label,run:()=>__awaiter$5(this,void 0,void 0,function*(){return p.runAction(c)})})}else if(r.kind===2){const p=new DisableHighlightingOfNonBasicAsciiCharactersAction;g.push({label:p.label,run:()=>__awaiter$5(this,void 0,void 0,function*(){return p.runAction(c)})})}else expectNever(r);const f=yield d.pick(g,{title:localize("unicodeHighlight.configureUnicodeHighlightOptions","Configure Unicode Highlight Options")});f&&(yield f.run())})}}ShowExcludeOptions.ID="editor.action.unicodeHighlight.showExcludeOptions";function excludeCharFromBeingHighlighted(o,e){return __awaiter$5(this,void 0,void 0,function*(){const t=o.getValue(unicodeHighlightConfigKeys.allowedCharacters);let i;typeof t=="object"&&t?i=t:i={};for(const n of e)i[String.fromCodePoint(n)]=!0;yield o.updateValue(unicodeHighlightConfigKeys.allowedCharacters,i,2)})}function excludeLocaleFromBeingHighlighted(o,e){var t;return __awaiter$5(this,void 0,void 0,function*(){const i=(t=o.inspect(unicodeHighlightConfigKeys.allowedLocales).user)===null||t===void 0?void 0:t.value;let n;typeof i=="object"&&i?n=Object.assign({},i):n={};for(const r of e)n[r]=!0;yield o.updateValue(unicodeHighlightConfigKeys.allowedLocales,n,2)})}function expectNever(o){throw new Error(`Unexpected value: ${o}`)}registerEditorAction(DisableHighlightingOfAmbiguousCharactersAction);registerEditorAction(DisableHighlightingOfInvisibleCharactersAction);registerEditorAction(DisableHighlightingOfNonBasicAsciiCharactersAction);registerEditorAction(ShowExcludeOptions);registerEditorContribution(UnicodeHighlighter.ID,UnicodeHighlighter,1);HoverParticipantRegistry.register(UnicodeHighlighterHoverParticipant);var __decorate$9=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$9=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$4=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};const ignoreUnusualLineTerminators="ignoreUnusualLineTerminators";function writeIgnoreState(o,e,t){o.setModelProperty(e.uri,ignoreUnusualLineTerminators,t)}function readIgnoreState(o,e){return o.getModelProperty(e.uri,ignoreUnusualLineTerminators)}let UnusualLineTerminatorsDetector=class extends Disposable{constructor(e,t,i){super(),this._editor=e,this._dialogService=t,this._codeEditorService=i,this._isPresentingDialog=!1,this._config=this._editor.getOption(125),this._register(this._editor.onDidChangeConfiguration(n=>{n.hasChanged(125)&&(this._config=this._editor.getOption(125),this._checkForUnusualLineTerminators())})),this._register(this._editor.onDidChangeModel(()=>{this._checkForUnusualLineTerminators()})),this._register(this._editor.onDidChangeModelContent(n=>{n.isUndoing||this._checkForUnusualLineTerminators()})),this._checkForUnusualLineTerminators()}_checkForUnusualLineTerminators(){return __awaiter$4(this,void 0,void 0,function*(){if(this._config==="off"||!this._editor.hasModel())return;const e=this._editor.getModel();if(!e.mightContainUnusualLineTerminators()||readIgnoreState(this._codeEditorService,e)===!0||this._editor.getOption(90))return;if(this._config==="auto"){e.removeUnusualLineTerminators(this._editor.getSelections());return}if(this._isPresentingDialog)return;let i;try{this._isPresentingDialog=!0,i=yield this._dialogService.confirm({title:localize("unusualLineTerminators.title","Unusual Line Terminators"),message:localize("unusualLineTerminators.message","Detected unusual line terminators"),detail:localize("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`.",basename(e.uri)),primaryButton:localize({key:"unusualLineTerminators.fix",comment:["&& denotes a mnemonic"]},"&&Remove Unusual Line Terminators"),cancelButton:localize("unusualLineTerminators.ignore","Ignore")})}finally{this._isPresentingDialog=!1}if(!i.confirmed){writeIgnoreState(this._codeEditorService,e,!0);return}e.removeUnusualLineTerminators(this._editor.getSelections())})}};UnusualLineTerminatorsDetector.ID="editor.contrib.unusualLineTerminatorsDetector";UnusualLineTerminatorsDetector=__decorate$9([__param$9(1,IDialogService),__param$9(2,ICodeEditorService)],UnusualLineTerminatorsDetector);registerEditorContribution(UnusualLineTerminatorsDetector.ID,UnusualLineTerminatorsDetector,1);var __decorate$8=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$8=function(o,e){return function(t,i){e(t,i,o)}},WordHighlighterContribution_1;const ctxHasWordHighlights=new RawContextKey("hasWordHighlights",!1);function getOccurrencesAtPosition(o,e,t,i){const n=o.ordered(e);return first(n.map(r=>()=>Promise.resolve(r.provideDocumentHighlights(e,t,i)).then(void 0,onUnexpectedExternalError)),isNonEmptyArray)}class OccurenceAtPositionRequest{constructor(e,t,i){this._model=e,this._selection=t,this._wordSeparators=i,this._wordRange=this._getCurrentWordRange(e,t),this._result=null}get result(){return this._result||(this._result=createCancelablePromise(e=>this._compute(this._model,this._selection,this._wordSeparators,e))),this._result}_getCurrentWordRange(e,t){const i=e.getWordAtPosition(t.getPosition());return i?new Range$2(t.startLineNumber,i.startColumn,t.startLineNumber,i.endColumn):null}isValid(e,t,i){const n=t.startLineNumber,r=t.startColumn,s=t.endColumn,a=this._getCurrentWordRange(e,t);let l=!!(this._wordRange&&this._wordRange.equalsRange(a));for(let d=0,c=i.length;!l&&d<c;d++){const u=i.getRange(d);u&&u.startLineNumber===n&&u.startColumn<=r&&u.endColumn>=s&&(l=!0)}return l}cancel(){this.result.cancel()}}class SemanticOccurenceAtPositionRequest extends OccurenceAtPositionRequest{constructor(e,t,i,n){super(e,t,i),this._providers=n}_compute(e,t,i,n){return getOccurrencesAtPosition(this._providers,e,t.getPosition(),n).then(r=>r||[])}}class TextualOccurenceAtPositionRequest extends OccurenceAtPositionRequest{constructor(e,t,i){super(e,t,i),this._selectionIsEmpty=t.isEmpty()}_compute(e,t,i,n){return timeout(250,n).then(()=>{if(!t.isEmpty())return[];const r=e.getWordAtPosition(t.getPosition());return!r||r.word.length>1e3?[]:e.findMatches(r.word,!0,!1,!0,i,!1).map(a=>({range:a.range,kind:DocumentHighlightKind$1.Text}))})}isValid(e,t,i){const n=t.isEmpty();return this._selectionIsEmpty!==n?!1:super.isValid(e,t,i)}}function computeOccurencesAtPosition(o,e,t,i){return o.has(e)?new SemanticOccurenceAtPositionRequest(e,t,i,o):new TextualOccurenceAtPositionRequest(e,t,i)}registerModelAndPositionCommand("_executeDocumentHighlights",(o,e,t)=>{const i=o.get(ILanguageFeaturesService);return getOccurrencesAtPosition(i.documentHighlightProvider,e,t,CancellationToken.None)});class WordHighlighter{constructor(e,t,i,n){this.toUnhook=new DisposableStore,this.workerRequestTokenId=0,this.workerRequestCompleted=!1,this.workerRequestValue=[],this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,this.editor=e,this.providers=t,this.linkedHighlighters=i,this._hasWordHighlights=ctxHasWordHighlights.bindTo(n),this._ignorePositionChangeEvent=!1,this.occurrencesHighlight=this.editor.getOption(80),this.model=this.editor.getModel(),this.toUnhook.add(e.onDidChangeCursorPosition(r=>{this._ignorePositionChangeEvent||this.occurrencesHighlight&&this._onPositionChanged(r)})),this.toUnhook.add(e.onDidChangeModelContent(r=>{this._stopAll()})),this.toUnhook.add(e.onDidChangeConfiguration(r=>{const s=this.editor.getOption(80);this.occurrencesHighlight!==s&&(this.occurrencesHighlight=s,this._stopAll())})),this.decorations=this.editor.createDecorationsCollection(),this.workerRequestTokenId=0,this.workerRequest=null,this.workerRequestCompleted=!1,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1}hasDecorations(){return this.decorations.length>0}restore(){this.occurrencesHighlight&&this._run()}_getSortedHighlights(){return this.decorations.getRanges().sort(Range$2.compareRangesUsingStarts)}moveNext(){const e=this._getSortedHighlights(),i=(e.findIndex(r=>r.containsPosition(this.editor.getPosition()))+1)%e.length,n=e[i];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(n.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(n);const r=this._getWord();if(r){const s=this.editor.getModel().getLineContent(n.startLineNumber);alert(`${s}, ${i+1} of ${e.length} for '${r.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}moveBack(){const e=this._getSortedHighlights(),i=(e.findIndex(r=>r.containsPosition(this.editor.getPosition()))-1+e.length)%e.length,n=e[i];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(n.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(n);const r=this._getWord();if(r){const s=this.editor.getModel().getLineContent(n.startLineNumber);alert(`${s}, ${i+1} of ${e.length} for '${r.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}_removeDecorations(){this.decorations.length>0&&(this.decorations.clear(),this._hasWordHighlights.set(!1))}_stopAll(){this._removeDecorations(),this.renderDecorationsTimer!==-1&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),this.workerRequest!==null&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_onPositionChanged(e){if(!this.occurrencesHighlight){this._stopAll();return}if(e.reason!==3){this._stopAll();return}this._run()}_getWord(){const e=this.editor.getSelection(),t=e.startLineNumber,i=e.startColumn;return this.model.getWordAtPosition({lineNumber:t,column:i})}_run(){const e=this.editor.getSelection();if(e.startLineNumber!==e.endLineNumber){this._stopAll();return}const t=e.startColumn,i=e.endColumn,n=this._getWord();if(!n||n.startColumn>t||n.endColumn<i){this._stopAll();return}const r=this.workerRequest&&this.workerRequest.isValid(this.model,e,this.decorations);if(this.lastCursorPositionChangeTime=new Date().getTime(),r)this.workerRequestCompleted&&this.renderDecorationsTimer!==-1&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1,this._beginRenderDecorations());else{this._stopAll();const s=++this.workerRequestTokenId;this.workerRequestCompleted=!1,this.workerRequest=computeOccurencesAtPosition(this.providers,this.model,this.editor.getSelection(),this.editor.getOption(129)),this.workerRequest.result.then(a=>{s===this.workerRequestTokenId&&(this.workerRequestCompleted=!0,this.workerRequestValue=a||[],this._beginRenderDecorations())},onUnexpectedError)}}_beginRenderDecorations(){const 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;const e=[];for(const t of this.workerRequestValue)t.range&&e.push({range:t.range,options:getHighlightDecorationOptions(t.kind)});this.decorations.set(e),this._hasWordHighlights.set(this.hasDecorations());for(const t of this.linkedHighlighters())(t==null?void 0:t.editor.getModel())===this.editor.getModel()&&(t._stopAll(),t.decorations.set(e),t._hasWordHighlights.set(t.hasDecorations()))}dispose(){this._stopAll(),this.toUnhook.dispose()}}let WordHighlighterContribution=WordHighlighterContribution_1=class extends Disposable{static get(e){return e.getContribution(WordHighlighterContribution_1.ID)}constructor(e,t,i){super(),this.wordHighlighter=null,this.linkedContributions=new Set;const n=()=>{e.hasModel()&&!e.getModel().isTooLargeForTokenization()&&(this.wordHighlighter=new WordHighlighter(e,i.documentHighlightProvider,()=>Iterable.map(this.linkedContributions,r=>r.wordHighlighter),t))};this._register(e.onDidChangeModel(r=>{this.wordHighlighter&&(this.wordHighlighter.dispose(),this.wordHighlighter=null),n()})),n()}saveViewState(){return!!(this.wordHighlighter&&this.wordHighlighter.hasDecorations())}moveNext(){var e;(e=this.wordHighlighter)===null||e===void 0||e.moveNext()}moveBack(){var e;(e=this.wordHighlighter)===null||e===void 0||e.moveBack()}restoreViewState(e){this.wordHighlighter&&e&&this.wordHighlighter.restore()}dispose(){this.wordHighlighter&&(this.wordHighlighter.dispose(),this.wordHighlighter=null),super.dispose()}};WordHighlighterContribution.ID="editor.contrib.wordHighlighter";WordHighlighterContribution=WordHighlighterContribution_1=__decorate$8([__param$8(1,IContextKeyService),__param$8(2,ILanguageFeaturesService)],WordHighlighterContribution);class WordHighlightNavigationAction extends EditorAction{constructor(e,t){super(t),this._isNext=e}run(e,t){const i=WordHighlighterContribution.get(t);i&&(this._isNext?i.moveNext():i.moveBack())}}class NextWordHighlightAction extends WordHighlightNavigationAction{constructor(){super(!0,{id:"editor.action.wordHighlight.next",label:localize("wordHighlight.next.label","Go to Next Symbol Highlight"),alias:"Go to Next Symbol Highlight",precondition:ctxHasWordHighlights,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:65,weight:100}})}}class PrevWordHighlightAction extends WordHighlightNavigationAction{constructor(){super(!1,{id:"editor.action.wordHighlight.prev",label:localize("wordHighlight.previous.label","Go to Previous Symbol Highlight"),alias:"Go to Previous Symbol Highlight",precondition:ctxHasWordHighlights,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:1089,weight:100}})}}class TriggerWordHighlightAction extends EditorAction{constructor(){super({id:"editor.action.wordHighlight.trigger",label:localize("wordHighlight.trigger.label","Trigger Symbol Highlight"),alias:"Trigger Symbol Highlight",precondition:ctxHasWordHighlights.toNegated(),kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:0,weight:100}})}run(e,t,i){const n=WordHighlighterContribution.get(t);n&&n.restoreViewState(!0)}}registerEditorContribution(WordHighlighterContribution.ID,WordHighlighterContribution,0);registerEditorAction(NextWordHighlightAction);registerEditorAction(PrevWordHighlightAction);registerEditorAction(TriggerWordHighlightAction);class MoveWordCommand extends EditorCommand{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode,this._wordNavigationType=e.wordNavigationType}runEditorCommand(e,t,i){if(!t.hasModel())return;const n=getMapForWordSeparators(t.getOption(129)),r=t.getModel(),a=t.getSelections().map(l=>{const d=new Position$1(l.positionLineNumber,l.positionColumn),c=this._move(n,r,d,this._wordNavigationType);return this._moveTo(l,c,this._inSelectionMode)});if(r.pushStackElement(),t._getViewModel().setCursorStates("moveWordCommand",3,a.map(l=>CursorState$1.fromModelSelection(l))),a.length===1){const l=new Position$1(a[0].positionLineNumber,a[0].positionColumn);t.revealPosition(l,0)}}_moveTo(e,t,i){return i?new Selection$1(e.selectionStartLineNumber,e.selectionStartColumn,t.lineNumber,t.column):new Selection$1(t.lineNumber,t.column,t.lineNumber,t.column)}}class WordLeftCommand extends MoveWordCommand{_move(e,t,i,n){return WordOperations.moveWordLeft(e,t,i,n)}}class WordRightCommand extends MoveWordCommand{_move(e,t,i,n){return WordOperations.moveWordRight(e,t,i,n)}}class CursorWordStartLeft extends WordLeftCommand{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartLeft",precondition:void 0})}}class CursorWordEndLeft extends WordLeftCommand{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndLeft",precondition:void 0})}}class CursorWordLeft extends WordLeftCommand{constructor(){var e;super({inSelectionMode:!1,wordNavigationType:1,id:"cursorWordLeft",precondition:void 0,kbOpts:{kbExpr:ContextKeyExpr.and(EditorContextKeys.textInputFocus,(e=ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED,IsWindowsContext))===null||e===void 0?void 0:e.negate()),primary:2063,mac:{primary:527},weight:100}})}}class CursorWordStartLeftSelect extends WordLeftCommand{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartLeftSelect",precondition:void 0})}}class CursorWordEndLeftSelect extends WordLeftCommand{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndLeftSelect",precondition:void 0})}}class CursorWordLeftSelect extends WordLeftCommand{constructor(){var e;super({inSelectionMode:!0,wordNavigationType:1,id:"cursorWordLeftSelect",precondition:void 0,kbOpts:{kbExpr:ContextKeyExpr.and(EditorContextKeys.textInputFocus,(e=ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED,IsWindowsContext))===null||e===void 0?void 0:e.negate()),primary:3087,mac:{primary:1551},weight:100}})}}class CursorWordAccessibilityLeft extends WordLeftCommand{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityLeft",precondition:void 0})}_move(e,t,i,n){return super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue),t,i,n)}}class CursorWordAccessibilityLeftSelect extends WordLeftCommand{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityLeftSelect",precondition:void 0})}_move(e,t,i,n){return super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue),t,i,n)}}class CursorWordStartRight extends WordRightCommand{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartRight",precondition:void 0})}}class CursorWordEndRight extends WordRightCommand{constructor(){var e;super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndRight",precondition:void 0,kbOpts:{kbExpr:ContextKeyExpr.and(EditorContextKeys.textInputFocus,(e=ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED,IsWindowsContext))===null||e===void 0?void 0:e.negate()),primary:2065,mac:{primary:529},weight:100}})}}class CursorWordRight extends WordRightCommand{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordRight",precondition:void 0})}}class CursorWordStartRightSelect extends WordRightCommand{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartRightSelect",precondition:void 0})}}class CursorWordEndRightSelect extends WordRightCommand{constructor(){var e;super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndRightSelect",precondition:void 0,kbOpts:{kbExpr:ContextKeyExpr.and(EditorContextKeys.textInputFocus,(e=ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED,IsWindowsContext))===null||e===void 0?void 0:e.negate()),primary:3089,mac:{primary:1553},weight:100}})}}class CursorWordRightSelect extends WordRightCommand{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordRightSelect",precondition:void 0})}}class CursorWordAccessibilityRight extends WordRightCommand{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityRight",precondition:void 0})}_move(e,t,i,n){return super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue),t,i,n)}}class CursorWordAccessibilityRightSelect extends WordRightCommand{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityRightSelect",precondition:void 0})}_move(e,t,i,n){return super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue),t,i,n)}}class DeleteWordCommand extends EditorCommand{constructor(e){super(e),this._whitespaceHeuristics=e.whitespaceHeuristics,this._wordNavigationType=e.wordNavigationType}runEditorCommand(e,t,i){const n=e.get(ILanguageConfigurationService);if(!t.hasModel())return;const r=getMapForWordSeparators(t.getOption(129)),s=t.getModel(),a=t.getSelections(),l=t.getOption(6),d=t.getOption(11),c=n.getLanguageConfiguration(s.getLanguageId()).getAutoClosingPairs(),u=t._getViewModel(),g=a.map(f=>{const p=this._delete({wordSeparators:r,model:s,selection:f,whitespaceHeuristics:this._whitespaceHeuristics,autoClosingDelete:t.getOption(9),autoClosingBrackets:l,autoClosingQuotes:d,autoClosingPairs:c,autoClosedCharacters:u.getCursorAutoClosedCharacters()},this._wordNavigationType);return new ReplaceCommand(p,"")});t.pushUndoStop(),t.executeCommands(this.id,g),t.pushUndoStop()}}class DeleteWordLeftCommand extends DeleteWordCommand{_delete(e,t){const i=WordOperations.deleteWordLeft(e,t);return i||new Range$2(1,1,1,1)}}class DeleteWordRightCommand extends DeleteWordCommand{_delete(e,t){const i=WordOperations.deleteWordRight(e,t);if(i)return i;const n=e.model.getLineCount(),r=e.model.getLineMaxColumn(n);return new Range$2(n,r,n,r)}}class DeleteWordStartLeft extends DeleteWordLeftCommand{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartLeft",precondition:EditorContextKeys.writable})}}class DeleteWordEndLeft extends DeleteWordLeftCommand{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndLeft",precondition:EditorContextKeys.writable})}}class DeleteWordLeft extends DeleteWordLeftCommand{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordLeft",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:2049,mac:{primary:513},weight:100}})}}class DeleteWordStartRight extends DeleteWordRightCommand{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartRight",precondition:EditorContextKeys.writable})}}class DeleteWordEndRight extends DeleteWordRightCommand{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndRight",precondition:EditorContextKeys.writable})}}class DeleteWordRight extends DeleteWordRightCommand{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordRight",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:2068,mac:{primary:532},weight:100}})}}class DeleteInsideWord extends EditorAction{constructor(){super({id:"deleteInsideWord",precondition:EditorContextKeys.writable,label:localize("deleteInsideWord","Delete Word"),alias:"Delete Word"})}run(e,t,i){if(!t.hasModel())return;const n=getMapForWordSeparators(t.getOption(129)),r=t.getModel(),a=t.getSelections().map(l=>{const d=WordOperations.deleteInsideWord(n,r,l);return new ReplaceCommand(d,"")});t.pushUndoStop(),t.executeCommands(this.id,a),t.pushUndoStop()}}registerEditorCommand(new CursorWordStartLeft);registerEditorCommand(new CursorWordEndLeft);registerEditorCommand(new CursorWordLeft);registerEditorCommand(new CursorWordStartLeftSelect);registerEditorCommand(new CursorWordEndLeftSelect);registerEditorCommand(new CursorWordLeftSelect);registerEditorCommand(new CursorWordStartRight);registerEditorCommand(new CursorWordEndRight);registerEditorCommand(new CursorWordRight);registerEditorCommand(new CursorWordStartRightSelect);registerEditorCommand(new CursorWordEndRightSelect);registerEditorCommand(new CursorWordRightSelect);registerEditorCommand(new CursorWordAccessibilityLeft);registerEditorCommand(new CursorWordAccessibilityLeftSelect);registerEditorCommand(new CursorWordAccessibilityRight);registerEditorCommand(new CursorWordAccessibilityRightSelect);registerEditorCommand(new DeleteWordStartLeft);registerEditorCommand(new DeleteWordEndLeft);registerEditorCommand(new DeleteWordLeft);registerEditorCommand(new DeleteWordStartRight);registerEditorCommand(new DeleteWordEndRight);registerEditorCommand(new DeleteWordRight);registerEditorAction(DeleteInsideWord);class DeleteWordPartLeft extends DeleteWordCommand{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordPartLeft",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:769},weight:100}})}_delete(e,t){const i=WordPartOperations.deleteWordPartLeft(e);return i||new Range$2(1,1,1,1)}}class DeleteWordPartRight extends DeleteWordCommand{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordPartRight",precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:788},weight:100}})}_delete(e,t){const i=WordPartOperations.deleteWordPartRight(e);if(i)return i;const n=e.model.getLineCount(),r=e.model.getLineMaxColumn(n);return new Range$2(n,r,n,r)}}class WordPartLeftCommand extends MoveWordCommand{_move(e,t,i,n){return WordPartOperations.moveWordPartLeft(e,t,i)}}class CursorWordPartLeft extends WordPartLeftCommand{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordPartLeft",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:783},weight:100}})}}CommandsRegistry.registerCommandAlias("cursorWordPartStartLeft","cursorWordPartLeft");class CursorWordPartLeftSelect extends WordPartLeftCommand{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordPartLeftSelect",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:1807},weight:100}})}}CommandsRegistry.registerCommandAlias("cursorWordPartStartLeftSelect","cursorWordPartLeftSelect");class WordPartRightCommand extends MoveWordCommand{_move(e,t,i,n){return WordPartOperations.moveWordPartRight(e,t,i)}}class CursorWordPartRight extends WordPartRightCommand{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordPartRight",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:785},weight:100}})}}class CursorWordPartRightSelect extends WordPartRightCommand{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordPartRightSelect",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:1809},weight:100}})}}registerEditorCommand(new DeleteWordPartLeft);registerEditorCommand(new DeleteWordPartRight);registerEditorCommand(new CursorWordPartLeft);registerEditorCommand(new CursorWordPartLeftSelect);registerEditorCommand(new CursorWordPartRight);registerEditorCommand(new CursorWordPartRightSelect);class ReadOnlyMessageController extends Disposable{constructor(e){super(),this.editor=e,this._register(this.editor.onDidAttemptReadOnlyEdit(()=>this._onDidAttemptReadOnlyEdit()))}_onDidAttemptReadOnlyEdit(){const e=MessageController.get(this.editor);if(e&&this.editor.hasModel()){let t=this.editor.getOptions().get(91);t||(this.editor.isSimpleWidget?t=new MarkdownString(localize("editor.simple.readonly","Cannot edit in read-only input")):t=new MarkdownString(localize("editor.readonly","Cannot edit in read-only editor"))),e.showMessage(t,this.editor.getPosition())}}}ReadOnlyMessageController.ID="editor.contrib.readOnlyMessageController";registerEditorContribution(ReadOnlyMessageController.ID,ReadOnlyMessageController,2);class IPadShowKeyboard extends Disposable{constructor(e){super(),this.editor=e,this.widget=null,isIOS&&(this._register(e.onDidChangeConfiguration(()=>this.update())),this.update())}update(){const e=!this.editor.getOption(90);!this.widget&&e?this.widget=new ShowKeyboardWidget(this.editor):this.widget&&!e&&(this.widget.dispose(),this.widget=null)}dispose(){super.dispose(),this.widget&&(this.widget.dispose(),this.widget=null)}}IPadShowKeyboard.ID="editor.contrib.iPadShowKeyboard";class ShowKeyboardWidget extends Disposable{constructor(e){super(),this.editor=e,this._domNode=document.createElement("textarea"),this._domNode.className="iPadShowKeyboard",this._register(addDisposableListener(this._domNode,"touchstart",t=>{this.editor.focus()})),this._register(addDisposableListener(this._domNode,"focus",t=>{this.editor.focus()})),this.editor.addOverlayWidget(this)}dispose(){this.editor.removeOverlayWidget(this),super.dispose()}getId(){return ShowKeyboardWidget.ID}getDomNode(){return this._domNode}getPosition(){return{preference:1}}}ShowKeyboardWidget.ID="editor.contrib.ShowKeyboardWidget";registerEditorContribution(IPadShowKeyboard.ID,IPadShowKeyboard,3);var __decorate$7=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$7=function(o,e){return function(t,i){e(t,i,o)}},InspectTokensController_1;let InspectTokensController=InspectTokensController_1=class extends Disposable{static get(e){return e.getContribution(InspectTokensController_1.ID)}constructor(e,t,i){super(),this._editor=e,this._languageService=i,this._widget=null,this._register(this._editor.onDidChangeModel(n=>this.stop())),this._register(this._editor.onDidChangeModelLanguage(n=>this.stop())),this._register(TokenizationRegistry.onDidChange(n=>this.stop())),this._register(this._editor.onKeyUp(n=>n.keyCode===9&&this.stop()))}dispose(){this.stop(),super.dispose()}launch(){this._widget||this._editor.hasModel()&&(this._widget=new InspectTokensWidget(this._editor,this._languageService))}stop(){this._widget&&(this._widget.dispose(),this._widget=null)}};InspectTokensController.ID="editor.contrib.inspectTokens";InspectTokensController=InspectTokensController_1=__decorate$7([__param$7(1,IStandaloneThemeService),__param$7(2,ILanguageService)],InspectTokensController);class InspectTokens extends EditorAction{constructor(){super({id:"editor.action.inspectTokens",label:InspectTokensNLS.inspectTokensAction,alias:"Developer: Inspect Tokens",precondition:void 0})}run(e,t){const i=InspectTokensController.get(t);i==null||i.launch()}}function renderTokenText(o){let e="";for(let t=0,i=o.length;t<i;t++){const n=o.charCodeAt(t);switch(n){case 9:e+="→";break;case 32:e+="·";break;default:e+=String.fromCharCode(n)}}return e}function getSafeTokenizationSupport(o,e){const t=TokenizationRegistry.get(e);if(t)return t;const i=o.encodeLanguageId(e);return{getInitialState:()=>NullState,tokenize:(n,r,s)=>nullTokenize(e,s),tokenizeEncoded:(n,r,s)=>nullTokenizeEncoded(i,s)}}class InspectTokensWidget extends Disposable{constructor(e,t){super(),this.allowEditorOverflow=!0,this._editor=e,this._languageService=t,this._model=this._editor.getModel(),this._domNode=document.createElement("div"),this._domNode.className="tokens-inspect-widget",this._tokenizationSupport=getSafeTokenizationSupport(this._languageService.languageIdCodec,this._model.getLanguageId()),this._compute(this._editor.getPosition()),this._register(this._editor.onDidChangeCursorPosition(i=>this._compute(this._editor.getPosition()))),this._editor.addContentWidget(this)}dispose(){this._editor.removeContentWidget(this),super.dispose()}getId(){return InspectTokensWidget._ID}_compute(e){const t=this._getTokensAtLine(e.lineNumber);let i=0;for(let l=t.tokens1.length-1;l>=0;l--){const d=t.tokens1[l];if(e.column-1>=d.offset){i=l;break}}let n=0;for(let l=t.tokens2.length>>>1;l>=0;l--)if(e.column-1>=t.tokens2[l<<1]){n=l;break}const r=this._model.getLineContent(e.lineNumber);let s="";if(i<t.tokens1.length){const l=t.tokens1[i].offset,d=i+1<t.tokens1.length?t.tokens1[i+1].offset:r.length;s=r.substring(l,d)}reset(this._domNode,$$d("h2.tm-token",void 0,renderTokenText(s),$$d("span.tm-token-length",void 0,`${s.length} ${s.length===1?"char":"chars"}`))),append$1(this._domNode,$$d("hr.tokens-inspect-separator",{style:"clear:both"}));const a=(n<<1)+1<t.tokens2.length?this._decodeMetadata(t.tokens2[(n<<1)+1]):null;append$1(this._domNode,$$d("table.tm-metadata-table",void 0,$$d("tbody",void 0,$$d("tr",void 0,$$d("td.tm-metadata-key",void 0,"language"),$$d("td.tm-metadata-value",void 0,`${a?a.languageId:"-?-"}`)),$$d("tr",void 0,$$d("td.tm-metadata-key",void 0,"token type"),$$d("td.tm-metadata-value",void 0,`${a?this._tokenTypeToString(a.tokenType):"-?-"}`)),$$d("tr",void 0,$$d("td.tm-metadata-key",void 0,"font style"),$$d("td.tm-metadata-value",void 0,`${a?this._fontStyleToString(a.fontStyle):"-?-"}`)),$$d("tr",void 0,$$d("td.tm-metadata-key",void 0,"foreground"),$$d("td.tm-metadata-value",void 0,`${a?Color.Format.CSS.formatHex(a.foreground):"-?-"}`)),$$d("tr",void 0,$$d("td.tm-metadata-key",void 0,"background"),$$d("td.tm-metadata-value",void 0,`${a?Color.Format.CSS.formatHex(a.background):"-?-"}`))))),append$1(this._domNode,$$d("hr.tokens-inspect-separator")),i<t.tokens1.length&&append$1(this._domNode,$$d("span.tm-token-type",void 0,t.tokens1[i].type)),this._editor.layoutContentWidget(this)}_decodeMetadata(e){const t=TokenizationRegistry.getColorMap(),i=TokenMetadata.getLanguageId(e),n=TokenMetadata.getTokenType(e),r=TokenMetadata.getFontStyle(e),s=TokenMetadata.getForeground(e),a=TokenMetadata.getBackground(e);return{languageId:this._languageService.languageIdCodec.decodeLanguageId(i),tokenType:n,fontStyle:r,foreground:t[s],background:t[a]}}_tokenTypeToString(e){switch(e){case 0:return"Other";case 1:return"Comment";case 2:return"String";case 3:return"RegEx";default:return"??"}}_fontStyleToString(e){let t="";return e&1&&(t+="italic "),e&2&&(t+="bold "),e&4&&(t+="underline "),e&8&&(t+="strikethrough "),t.length===0&&(t="---"),t}_getTokensAtLine(e){const t=this._getStateBeforeLine(e),i=this._tokenizationSupport.tokenize(this._model.getLineContent(e),!0,t),n=this._tokenizationSupport.tokenizeEncoded(this._model.getLineContent(e),!0,t);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).endState;return t}getDomNode(){return this._domNode}getPosition(){return{position:this._editor.getPosition(),preference:[2,1]}}}InspectTokensWidget._ID="editor.contrib.inspectTokensWidget";registerEditorContribution(InspectTokensController.ID,InspectTokensController,4);registerEditorAction(InspectTokens);var __decorate$6=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$6=function(o,e){return function(t,i){e(t,i,o)}},HelpQuickAccessProvider_1;let HelpQuickAccessProvider=HelpQuickAccessProvider_1=class{constructor(e,t){this.quickInputService=e,this.keybindingService=t,this.registry=Registry.as(Extensions$2.Quickaccess)}provide(e){const t=new DisposableStore;return t.add(e.onDidAccept(()=>{const[i]=e.selectedItems;i&&this.quickInputService.quickAccess.show(i.prefix,{preserveValue:!0})})),t.add(e.onDidChangeValue(i=>{const n=this.registry.getQuickAccessProvider(i.substr(HelpQuickAccessProvider_1.PREFIX.length));n&&n.prefix&&n.prefix!==HelpQuickAccessProvider_1.PREFIX&&this.quickInputService.quickAccess.show(n.prefix,{preserveValue:!0})})),e.items=this.getQuickAccessProviders().filter(i=>i.prefix!==HelpQuickAccessProvider_1.PREFIX),t}getQuickAccessProviders(){return this.registry.getQuickAccessProviders().sort((t,i)=>t.prefix.localeCompare(i.prefix)).flatMap(t=>this.createPicks(t))}createPicks(e){return e.helpEntries.map(t=>{const i=t.prefix||e.prefix,n=i||"…";return{prefix:i,label:n,keybinding:t.commandId?this.keybindingService.lookupKeybinding(t.commandId):void 0,ariaLabel:localize("helpPickAriaLabel","{0}, {1}",n,t.description),description:t.description}})}};HelpQuickAccessProvider.PREFIX="?";HelpQuickAccessProvider=HelpQuickAccessProvider_1=__decorate$6([__param$6(0,IQuickInputService),__param$6(1,IKeybindingService)],HelpQuickAccessProvider);Registry.as(Extensions$2.Quickaccess).registerQuickAccessProvider({ctor:HelpQuickAccessProvider,prefix:"",helpEntries:[{description:QuickHelpNLS.helpQuickAccessActionLabel}]});class AbstractEditorNavigationQuickAccessProvider{constructor(e){this.options=e,this.rangeHighlightDecorationId=void 0}provide(e,t){var i;const n=new DisposableStore;e.canAcceptInBackground=!!(!((i=this.options)===null||i===void 0)&&i.canAcceptInBackground),e.matchOnLabel=e.matchOnDescription=e.matchOnDetail=e.sortByLabel=!1;const r=n.add(new MutableDisposable);return r.value=this.doProvide(e,t),n.add(this.onDidActiveTextEditorControlChange(()=>{r.value=void 0,r.value=this.doProvide(e,t)})),n}doProvide(e,t){var i;const n=new DisposableStore,r=this.activeTextEditorControl;if(r&&this.canProvideWithTextEditor(r)){const s={editor:r},a=getCodeEditor(r);if(a){let l=(i=r.saveViewState())!==null&&i!==void 0?i:void 0;n.add(a.onDidChangeCursorPosition(()=>{var d;l=(d=r.saveViewState())!==null&&d!==void 0?d:void 0})),s.restoreViewState=()=>{l&&r===this.activeTextEditorControl&&r.restoreViewState(l)},n.add(createSingleCallFunction(t.onCancellationRequested)(()=>{var d;return(d=s.restoreViewState)===null||d===void 0?void 0:d.call(s)}))}n.add(toDisposable(()=>this.clearDecorations(r))),n.add(this.provideWithTextEditor(s,e,t))}else n.add(this.provideWithoutTextEditor(e,t));return n}canProvideWithTextEditor(e){return!0}gotoLocation({editor:e},t){e.setSelection(t.range),e.revealRangeInCenter(t.range,0),t.preserveFocus||e.focus();const i=e.getModel();i&&"getLineContent"in i&&status(`${i.getLineContent(t.range.startLineNumber)}`)}getModel(e){var t;return isDiffEditor(e)?(t=e.getModel())===null||t===void 0?void 0:t.modified:e.getModel()}addDecorations(e,t){e.changeDecorations(i=>{const n=[];this.rangeHighlightDecorationId&&(n.push(this.rangeHighlightDecorationId.overviewRulerDecorationId),n.push(this.rangeHighlightDecorationId.rangeHighlightId),this.rangeHighlightDecorationId=void 0);const r=[{range:t,options:{description:"quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:t,options:{description:"quick-access-range-highlight-overview",overviewRuler:{color:themeColorFromId(overviewRulerRangeHighlight),position:OverviewRulerLane.Full}}}],[s,a]=i.deltaDecorations(n,r);this.rangeHighlightDecorationId={rangeHighlightId:s,overviewRulerDecorationId:a}})}clearDecorations(e){const t=this.rangeHighlightDecorationId;t&&(e.changeDecorations(i=>{i.deltaDecorations([t.overviewRulerDecorationId,t.rangeHighlightId],[])}),this.rangeHighlightDecorationId=void 0)}}class AbstractGotoLineQuickAccessProvider extends AbstractEditorNavigationQuickAccessProvider{constructor(){super({canAcceptInBackground:!0})}provideWithoutTextEditor(e){const t=localize("cannotRunGotoLine","Open a text editor first to go to a line.");return e.items=[{label:t}],e.ariaLabel=t,Disposable.None}provideWithTextEditor(e,t,i){const n=e.editor,r=new DisposableStore;r.add(t.onDidAccept(l=>{const[d]=t.selectedItems;if(d){if(!this.isValidLineNumber(n,d.lineNumber))return;this.gotoLocation(e,{range:this.toRange(d.lineNumber,d.column),keyMods:t.keyMods,preserveFocus:l.inBackground}),l.inBackground||t.hide()}}));const s=()=>{const l=this.parsePosition(n,t.value.trim().substr(AbstractGotoLineQuickAccessProvider.PREFIX.length)),d=this.getPickLabel(n,l.lineNumber,l.column);if(t.items=[{lineNumber:l.lineNumber,column:l.column,label:d}],t.ariaLabel=d,!this.isValidLineNumber(n,l.lineNumber)){this.clearDecorations(n);return}const c=this.toRange(l.lineNumber,l.column);n.revealRangeInCenter(c,0),this.addDecorations(n,c)};s(),r.add(t.onDidChangeValue(()=>s()));const a=getCodeEditor(n);return a&&a.getOptions().get(67).renderType===2&&(a.updateOptions({lineNumbers:"on"}),r.add(toDisposable(()=>a.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(r=>parseInt(r,10)).filter(r=>!isNaN(r)),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)?localize("gotoLineColumnLabel","Go to line {0} and character {1}.",t,i):localize("gotoLineLabel","Go to line {0}.",t);const n=e.getPosition()||{lineNumber:1,column:1},r=this.lineCount(e);return r>1?localize("gotoLineLabelEmptyWithLimit","Current Line: {0}, Character: {1}. Type a line number between 1 and {2} to navigate to.",n.lineNumber,n.column,r):localize("gotoLineLabelEmpty","Current Line: {0}, Character: {1}. Type a line number to navigate to.",n.lineNumber,n.column)}isValidLineNumber(e,t){return!t||typeof t!="number"?!1:t>0&&t<=this.lineCount(e)}isValidColumn(e,t,i){if(!i||typeof i!="number")return!1;const n=this.getModel(e);if(!n)return!1;const r={lineNumber:t,column:i};return n.validatePosition(r).equals(r)}lineCount(e){var t,i;return(i=(t=this.getModel(e))===null||t===void 0?void 0:t.getLineCount())!==null&&i!==void 0?i:0}}AbstractGotoLineQuickAccessProvider.PREFIX=":";var __decorate$5=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$5=function(o,e){return function(t,i){e(t,i,o)}};let StandaloneGotoLineQuickAccessProvider=class extends AbstractGotoLineQuickAccessProvider{constructor(e){super(),this.editorService=e,this.onDidActiveTextEditorControlChange=Event.None}get activeTextEditorControl(){var e;return(e=this.editorService.getFocusedCodeEditor())!==null&&e!==void 0?e:void 0}};StandaloneGotoLineQuickAccessProvider=__decorate$5([__param$5(0,ICodeEditorService)],StandaloneGotoLineQuickAccessProvider);let GotoLineAction$1=class _t extends EditorAction{constructor(){super({id:_t.ID,label:GoToLineNLS.gotoLineActionLabel,alias:"Go to Line/Column...",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.focus,primary:2085,mac:{primary:293},weight:100}})}run(e){e.get(IQuickInputService).quickAccess.show(StandaloneGotoLineQuickAccessProvider.PREFIX)}};GotoLineAction$1.ID="editor.action.gotoLine";registerEditorAction(GotoLineAction$1);Registry.as(Extensions$2.Quickaccess).registerQuickAccessProvider({ctor:StandaloneGotoLineQuickAccessProvider,prefix:StandaloneGotoLineQuickAccessProvider.PREFIX,helpEntries:[{description:GoToLineNLS.gotoLineActionLabel,commandId:GotoLineAction$1.ID}]});const NO_SCORE2=[void 0,[]];function scoreFuzzy2(o,e,t=0,i=0){const n=e;return n.values&&n.values.length>1?doScoreFuzzy2Multiple(o,n.values,t,i):doScoreFuzzy2Single(o,e,t,i)}function doScoreFuzzy2Multiple(o,e,t,i){let n=0;const r=[];for(const s of e){const[a,l]=doScoreFuzzy2Single(o,s,t,i);if(typeof a!="number")return NO_SCORE2;n+=a,r.push(...l)}return[n,normalizeMatches(r)]}function doScoreFuzzy2Single(o,e,t,i){const n=fuzzyScore(e.original,e.originalLowercase,t,o,o.toLowerCase(),i,{firstMatchCanBeWeak:!0,boostFullMatch:!0});return n?[n[0],createMatches(n)]:NO_SCORE2}function normalizeMatches(o){const e=o.sort((n,r)=>n.start-r.start),t=[];let i;for(const n of e)!i||!matchOverlaps(i,n)?(i=n,t.push(n)):(i.start=Math.min(i.start,n.start),i.end=Math.max(i.end,n.end));return t}function matchOverlaps(o,e){return!(o.end<e.start||e.end<o.start)}function queryExpectsExactMatch(o){return o.startsWith('"')&&o.endsWith('"')}const MULTIPLE_QUERY_VALUES_SEPARATOR=" ";function prepareQuery(o){typeof o!="string"&&(o="");const e=o.toLowerCase(),{pathNormalized:t,normalized:i,normalizedLowercase:n}=normalizeQuery(o),r=t.indexOf(sep)>=0,s=queryExpectsExactMatch(o);let a;const l=o.split(MULTIPLE_QUERY_VALUES_SEPARATOR);if(l.length>1)for(const d of l){const c=queryExpectsExactMatch(d),{pathNormalized:u,normalized:g,normalizedLowercase:f}=normalizeQuery(d);g&&(a||(a=[]),a.push({original:d,originalLowercase:d.toLowerCase(),pathNormalized:u,normalized:g,normalizedLowercase:f,expectContiguousMatch:c}))}return{original:o,originalLowercase:e,pathNormalized:t,normalized:i,normalizedLowercase:n,values:a,containsPathSeparator:r,expectContiguousMatch:s}}function normalizeQuery(o){let e;isWindows?e=o.replace(/\//g,sep):e=o.replace(/\\/g,sep);const t=stripWildcards(e).replace(/\s|"/g,"");return{pathNormalized:e,normalized:t,normalizedLowercase:t.toLowerCase()}}function pieceToQuery(o){return Array.isArray(o)?prepareQuery(o.map(e=>e.original).join(MULTIPLE_QUERY_VALUES_SEPARATOR)):prepareQuery(o.original)}var __decorate$4=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$4=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$3=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},AbstractGotoSymbolQuickAccessProvider_1;let AbstractGotoSymbolQuickAccessProvider=AbstractGotoSymbolQuickAccessProvider_1=class extends AbstractEditorNavigationQuickAccessProvider{constructor(e,t,i=Object.create(null)){super(i),this._languageFeaturesService=e,this._outlineModelService=t,this.options=i,this.options.canAcceptInBackground=!0}provideWithoutTextEditor(e){return this.provideLabelPick(e,localize("cannotRunGotoSymbolWithoutEditor","To go to a symbol, first open a text editor with symbol information.")),Disposable.None}provideWithTextEditor(e,t,i){const n=e.editor,r=this.getModel(n);return r?this._languageFeaturesService.documentSymbolProvider.has(r)?this.doProvideWithEditorSymbols(e,r,t,i):this.doProvideWithoutEditorSymbols(e,r,t,i):Disposable.None}doProvideWithoutEditorSymbols(e,t,i,n){const r=new DisposableStore;return this.provideLabelPick(i,localize("cannotRunGotoSymbolWithoutSymbolProvider","The active text editor does not provide symbol information.")),__awaiter$3(this,void 0,void 0,function*(){!(yield this.waitForLanguageSymbolRegistry(t,r))||n.isCancellationRequested||r.add(this.doProvideWithEditorSymbols(e,t,i,n))}),r}provideLabelPick(e,t){e.items=[{label:t,index:0,kind:14}],e.ariaLabel=t}waitForLanguageSymbolRegistry(e,t){return __awaiter$3(this,void 0,void 0,function*(){if(this._languageFeaturesService.documentSymbolProvider.has(e))return!0;const i=new DeferredPromise,n=t.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(()=>{this._languageFeaturesService.documentSymbolProvider.has(e)&&(n.dispose(),i.complete(!0))}));return t.add(toDisposable(()=>i.complete(!1))),i.p})}doProvideWithEditorSymbols(e,t,i,n){var r;const s=e.editor,a=new DisposableStore;a.add(i.onDidAccept(u=>{const[g]=i.selectedItems;g&&g.range&&(this.gotoLocation(e,{range:g.range.selection,keyMods:i.keyMods,preserveFocus:u.inBackground}),u.inBackground||i.hide())})),a.add(i.onDidTriggerItemButton(({item:u})=>{u&&u.range&&(this.gotoLocation(e,{range:u.range.selection,keyMods:i.keyMods,forceSideBySide:!0}),i.hide())}));const l=this.getDocumentSymbols(t,n);let d;const c=u=>__awaiter$3(this,void 0,void 0,function*(){d==null||d.dispose(!0),i.busy=!1,d=new CancellationTokenSource$1(n),i.busy=!0;try{const g=prepareQuery(i.value.substr(AbstractGotoSymbolQuickAccessProvider_1.PREFIX.length).trim()),f=yield this.doGetSymbolPicks(l,g,void 0,d.token);if(n.isCancellationRequested)return;if(f.length>0){if(i.items=f,u&&g.original.length===0){const p=findLast(f,m=>!!(m.type!=="separator"&&m.range&&Range$2.containsPosition(m.range.decoration,u)));p&&(i.activeItems=[p])}}else g.original.length>0?this.provideLabelPick(i,localize("noMatchingSymbolResults","No matching editor symbols")):this.provideLabelPick(i,localize("noSymbolResults","No editor symbols"))}finally{n.isCancellationRequested||(i.busy=!1)}});return a.add(i.onDidChangeValue(()=>c(void 0))),c((r=s.getSelection())===null||r===void 0?void 0:r.getPosition()),a.add(i.onDidChangeActive(()=>{const[u]=i.activeItems;u&&u.range&&(s.revealRangeInCenter(u.range.selection,0),this.addDecorations(s,u.range.decoration))})),a}doGetSymbolPicks(e,t,i,n){var r,s;return __awaiter$3(this,void 0,void 0,function*(){const a=yield e;if(n.isCancellationRequested)return[];const l=t.original.indexOf(AbstractGotoSymbolQuickAccessProvider_1.SCOPE_PREFIX)===0,d=l?1:0;let c,u;t.values&&t.values.length>1?(c=pieceToQuery(t.values[0]),u=pieceToQuery(t.values.slice(1))):c=t;let g;const f=(s=(r=this.options)===null||r===void 0?void 0:r.openSideBySideDirection)===null||s===void 0?void 0:s.call(r);f&&(g=[{iconClass:f==="right"?ThemeIcon.asClassName(Codicon.splitHorizontal):ThemeIcon.asClassName(Codicon.splitVertical),tooltip:f==="right"?localize("openToSide","Open to the Side"):localize("openToBottom","Open to the Bottom")}]);const p=[];for(let _=0;_<a.length;_++){const C=a[_],S=trim(C.name),y=`$(${SymbolKinds.toIcon(C.kind).id}) ${S}`,E=y.length-S.length;let x=C.containerName;i!=null&&i.extraContainerLabel&&(x?x=`${i.extraContainerLabel} • ${x}`:x=i.extraContainerLabel);let L,I,D,N;if(t.original.length>d){let R=!1;if(c!==t&&([L,I]=scoreFuzzy2(y,Object.assign(Object.assign({},t),{values:void 0}),d,E),typeof L=="number"&&(R=!0)),typeof L!="number"&&([L,I]=scoreFuzzy2(y,c,d,E),typeof L!="number"))continue;if(!R&&u){if(x&&u.original.length>0&&([D,N]=scoreFuzzy2(x,u)),typeof D!="number")continue;typeof L=="number"&&(L+=D)}}const F=C.tags&&C.tags.indexOf(1)>=0;p.push({index:_,kind:C.kind,score:L,label:y,ariaLabel:getAriaLabelForSymbol(C.name,C.kind),description:x,highlights:F?void 0:{label:I,description:N},range:{selection:Range$2.collapseToStart(C.selectionRange),decoration:C.range},strikethrough:F,buttons:g})}const m=p.sort((_,C)=>l?this.compareByKindAndScore(_,C):this.compareByScore(_,C));let b=[];if(l){let y=function(){C&&typeof _=="number"&&S>0&&(C.label=format(NLS_SYMBOL_KIND_CACHE[_]||FALLBACK_NLS_SYMBOL_KIND,S))},_,C,S=0;for(const E of m)_!==E.kind?(y(),_=E.kind,S=1,C={type:"separator"},b.push(C)):S++,b.push(E);y()}else m.length>0&&(b=[{label:localize("symbols","symbols ({0})",p.length),type:"separator"},...m]);return b})}compareByScore(e,t){if(typeof e.score!="number"&&typeof t.score=="number")return 1;if(typeof e.score=="number"&&typeof t.score!="number")return-1;if(typeof e.score=="number"&&typeof t.score=="number"){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=NLS_SYMBOL_KIND_CACHE[e.kind]||FALLBACK_NLS_SYMBOL_KIND,n=NLS_SYMBOL_KIND_CACHE[t.kind]||FALLBACK_NLS_SYMBOL_KIND,r=i.localeCompare(n);return r===0?this.compareByScore(e,t):r}getDocumentSymbols(e,t){return __awaiter$3(this,void 0,void 0,function*(){const i=yield this._outlineModelService.getOrCreate(e,t);return t.isCancellationRequested?[]:i.asListOfDocumentSymbols()})}};AbstractGotoSymbolQuickAccessProvider.PREFIX="@";AbstractGotoSymbolQuickAccessProvider.SCOPE_PREFIX=":";AbstractGotoSymbolQuickAccessProvider.PREFIX_BY_CATEGORY=`${AbstractGotoSymbolQuickAccessProvider_1.PREFIX}${AbstractGotoSymbolQuickAccessProvider_1.SCOPE_PREFIX}`;AbstractGotoSymbolQuickAccessProvider=AbstractGotoSymbolQuickAccessProvider_1=__decorate$4([__param$4(0,ILanguageFeaturesService),__param$4(1,IOutlineModelService)],AbstractGotoSymbolQuickAccessProvider);const FALLBACK_NLS_SYMBOL_KIND=localize("property","properties ({0})"),NLS_SYMBOL_KIND_CACHE={5:localize("method","methods ({0})"),11:localize("function","functions ({0})"),8:localize("_constructor","constructors ({0})"),12:localize("variable","variables ({0})"),4:localize("class","classes ({0})"),22:localize("struct","structs ({0})"),23:localize("event","events ({0})"),24:localize("operator","operators ({0})"),10:localize("interface","interfaces ({0})"),2:localize("namespace","namespaces ({0})"),3:localize("package","packages ({0})"),25:localize("typeParameter","type parameters ({0})"),1:localize("modules","modules ({0})"),6:localize("property","properties ({0})"),9:localize("enum","enumerations ({0})"),21:localize("enumMember","enumeration members ({0})"),14:localize("string","strings ({0})"),0:localize("file","files ({0})"),17:localize("array","arrays ({0})"),15:localize("number","numbers ({0})"),16:localize("boolean","booleans ({0})"),18:localize("object","objects ({0})"),19:localize("key","keys ({0})"),7:localize("field","fields ({0})"),13:localize("constant","constants ({0})")};var __decorate$3=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$3=function(o,e){return function(t,i){e(t,i,o)}};let StandaloneGotoSymbolQuickAccessProvider=class extends AbstractGotoSymbolQuickAccessProvider{constructor(e,t,i){super(t,i),this.editorService=e,this.onDidActiveTextEditorControlChange=Event.None}get activeTextEditorControl(){var e;return(e=this.editorService.getFocusedCodeEditor())!==null&&e!==void 0?e:void 0}};StandaloneGotoSymbolQuickAccessProvider=__decorate$3([__param$3(0,ICodeEditorService),__param$3(1,ILanguageFeaturesService),__param$3(2,IOutlineModelService)],StandaloneGotoSymbolQuickAccessProvider);class GotoSymbolAction extends EditorAction{constructor(){super({id:GotoSymbolAction.ID,label:QuickOutlineNLS.quickOutlineActionLabel,alias:"Go to Symbol...",precondition:EditorContextKeys.hasDocumentSymbolProvider,kbOpts:{kbExpr:EditorContextKeys.focus,primary:3117,weight:100},contextMenuOpts:{group:"navigation",order:3}})}run(e){e.get(IQuickInputService).quickAccess.show(AbstractGotoSymbolQuickAccessProvider.PREFIX,{itemActivation:ItemActivation.NONE})}}GotoSymbolAction.ID="editor.action.quickOutline";registerEditorAction(GotoSymbolAction);Registry.as(Extensions$2.Quickaccess).registerQuickAccessProvider({ctor:StandaloneGotoSymbolQuickAccessProvider,prefix:AbstractGotoSymbolQuickAccessProvider.PREFIX,helpEntries:[{description:QuickOutlineNLS.quickOutlineActionLabel,prefix:AbstractGotoSymbolQuickAccessProvider.PREFIX,commandId:GotoSymbolAction.ID},{description:QuickOutlineNLS.quickOutlineByCategoryActionLabel,prefix:AbstractGotoSymbolQuickAccessProvider.PREFIX_BY_CATEGORY}]});function exceptionToErrorMessage(o,e){return e&&(o.stack||o.stacktrace)?localize("stackTrace.format","{0}: {1}",detectSystemErrorMessage(o),stackToString(o.stack)||stackToString(o.stacktrace)):detectSystemErrorMessage(o)}function stackToString(o){return Array.isArray(o)?o.join(`
- `):o}function detectSystemErrorMessage(o){return o.code==="ERR_UNC_HOST_NOT_ALLOWED"?`${o.message}. Please update the 'security.allowedUNCHosts' setting if you want to allow this host.`:typeof o.code=="string"&&typeof o.errno=="number"&&typeof o.syscall=="string"?localize("nodeExceptionMessage","A system error occurred ({0})",o.message):o.message||localize("error.defaultMessage","An unknown error occurred. Please consult the log for more details.")}function toErrorMessage(o=null,e=!1){if(!o)return localize("error.defaultMessage","An unknown error occurred. Please consult the log for more details.");if(Array.isArray(o)){const t=coalesce(o),i=toErrorMessage(t[0],e);return t.length>1?localize("error.moreErrors","{0} ({1} errors in total)",i,t.length):i}if(isString$1(o))return o;if(o.detail){const t=o.detail;if(t.error)return exceptionToErrorMessage(t.error,e);if(t.exception)return exceptionToErrorMessage(t.exception,e)}return o.stack?exceptionToErrorMessage(o,e):o.message?o.message:localize("error.defaultMessage","An unknown error occurred. Please consult the log for more details.")}function countMapFrom(o){var e;const t=new Map;for(const i of o)t.set(i,((e=t.get(i))!==null&&e!==void 0?e:0)+1);return t}class TfIdfCalculator{constructor(){this.chunkCount=0,this.chunkOccurrences=new Map,this.documents=new Map}calculateScores(e,t){const i=this.computeEmbedding(e),n=new Map,r=[];for(const[s,a]of this.documents){if(t.isCancellationRequested)return[];for(const l of a.chunks){const d=this.computeSimilarityScore(l,i,n);d>0&&r.push({key:s,score:d})}}return r}static termFrequencies(e){return countMapFrom(TfIdfCalculator.splitTerms(e))}static*splitTerms(e){const t=i=>i.toLowerCase();for(const[i]of e.matchAll(new RegExp("\\b\\p{Letter}[\\p{Letter}\\d]{2,}\\b","gu"))){yield t(i);const n=i.split(new RegExp("(?<=[a-z])(?=[A-Z])","g"));if(n.length>1)for(const r of n)r.length>2&&new RegExp("\\p{Letter}{3,}","gu").test(r)&&(yield t(r))}}updateDocuments(e){var t;for(const{key:i}of e)this.deleteDocument(i);for(const i of e){const n=[];for(const r of i.textChunks){const s=TfIdfCalculator.termFrequencies(r);for(const a of s.keys())this.chunkOccurrences.set(a,((t=this.chunkOccurrences.get(a))!==null&&t!==void 0?t:0)+1);n.push({text:r,tf:s})}this.chunkCount+=n.length,this.documents.set(i.key,{chunks:n})}return this}deleteDocument(e){const t=this.documents.get(e);if(t){this.documents.delete(e),this.chunkCount-=t.chunks.length;for(const i of t.chunks)for(const n of i.tf.keys()){const r=this.chunkOccurrences.get(n);if(typeof r=="number"){const s=r-1;s<=0?this.chunkOccurrences.delete(n):this.chunkOccurrences.set(n,s)}}}}computeSimilarityScore(e,t,i){let n=0;for(const[r,s]of Object.entries(t)){const a=e.tf.get(r);if(!a)continue;let l=i.get(r);typeof l!="number"&&(l=this.computeIdf(r),i.set(r,l));const d=a*l;n+=d*s}return n}computeEmbedding(e){const t=TfIdfCalculator.termFrequencies(e);return this.computeTfidf(t)}computeIdf(e){var t;const i=(t=this.chunkOccurrences.get(e))!==null&&t!==void 0?t:0;return i>0?Math.log((this.chunkCount+1)/i):0}computeTfidf(e){const t=Object.create(null);for(const[i,n]of e){const r=this.computeIdf(i);r>0&&(t[i]=n*r)}return t}}function normalizeTfIdfScores(o){var e,t;const i=o.slice(0);i.sort((r,s)=>s.score-r.score);const n=(t=(e=i[0])===null||e===void 0?void 0:e.score)!==null&&t!==void 0?t:0;if(n>0)for(const r of i)r.score/=n;return i}var __awaiter$2=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},TriggerAction;(function(o){o[o.NO_ACTION=0]="NO_ACTION",o[o.CLOSE_PICKER=1]="CLOSE_PICKER",o[o.REFRESH_PICKER=2]="REFRESH_PICKER",o[o.REMOVE_ITEM=3]="REMOVE_ITEM"})(TriggerAction||(TriggerAction={}));function isPicksWithActive(o){const e=o;return Array.isArray(e.items)}function isFastAndSlowPicks(o){const e=o;return!!e.picks&&e.additionalPicks instanceof Promise}class PickerQuickAccessProvider extends Disposable{constructor(e,t){super(),this.prefix=e,this.options=t}provide(e,t,i){var n;const r=new DisposableStore;e.canAcceptInBackground=!!(!((n=this.options)===null||n===void 0)&&n.canAcceptInBackground),e.matchOnLabel=e.matchOnDescription=e.matchOnDetail=e.sortByLabel=!1;let s;const a=r.add(new MutableDisposable),l=()=>__awaiter$2(this,void 0,void 0,function*(){const d=a.value=new DisposableStore;s==null||s.dispose(!0),e.busy=!1,s=new CancellationTokenSource$1(t);const c=s.token,u=e.value.substr(this.prefix.length).trim(),g=this._getPicks(u,d,c,i),f=(m,b)=>{var _;let C,S;if(isPicksWithActive(m)?(C=m.items,S=m.active):C=m,C.length===0){if(b)return!1;(u.length>0||e.hideInput)&&(!((_=this.options)===null||_===void 0)&&_.noResultsPick)&&(isFunction(this.options.noResultsPick)?C=[this.options.noResultsPick(u)]:C=[this.options.noResultsPick])}return e.items=C,S&&(e.activeItems=[S]),!0},p=m=>__awaiter$2(this,void 0,void 0,function*(){let b=!1,_=!1;yield Promise.all([__awaiter$2(this,void 0,void 0,function*(){typeof m.mergeDelay=="number"&&(yield timeout(m.mergeDelay),c.isCancellationRequested)||_||(b=f(m.picks,!0))}),__awaiter$2(this,void 0,void 0,function*(){e.busy=!0;try{const C=yield m.additionalPicks;if(c.isCancellationRequested)return;let S,y;isPicksWithActive(m.picks)?(S=m.picks.items,y=m.picks.active):S=m.picks;let E,x;if(isPicksWithActive(C)?(E=C.items,x=C.active):E=C,E.length>0||!b){let L;if(!y&&!x){const I=e.activeItems[0];I&&S.indexOf(I)!==-1&&(L=I)}f({items:[...S,...E],active:y||x||L})}}finally{c.isCancellationRequested||(e.busy=!1),_=!0}})])});if(g!==null)if(isFastAndSlowPicks(g))yield p(g);else if(!(g instanceof Promise))f(g);else{e.busy=!0;try{const m=yield g;if(c.isCancellationRequested)return;isFastAndSlowPicks(m)?yield p(m):f(m)}finally{c.isCancellationRequested||(e.busy=!1)}}});return r.add(e.onDidChangeValue(()=>l())),l(),r.add(e.onDidAccept(d=>{const[c]=e.selectedItems;typeof(c==null?void 0:c.accept)=="function"&&(d.inBackground||e.hide(),c.accept(e.keyMods,d))})),r.add(e.onDidTriggerItemButton(({button:d,item:c})=>__awaiter$2(this,void 0,void 0,function*(){var u,g;if(typeof c.trigger=="function"){const f=(g=(u=c.buttons)===null||u===void 0?void 0:u.indexOf(d))!==null&&g!==void 0?g:-1;if(f>=0){const p=c.trigger(f,e.keyMods),m=typeof p=="number"?p:yield p;if(t.isCancellationRequested)return;switch(m){case TriggerAction.NO_ACTION:break;case TriggerAction.CLOSE_PICKER:e.hide();break;case TriggerAction.REFRESH_PICKER:l();break;case TriggerAction.REMOVE_ITEM:{const b=e.items.indexOf(c);if(b!==-1){const _=e.items.slice(),C=_.splice(b,1),S=e.activeItems.filter(E=>E!==C[0]),y=e.keepScrollPosition;e.keepScrollPosition=!0,e.items=_,S&&(e.activeItems=S),e.keepScrollPosition=y}break}}}}}))),r}}var __decorate$2=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$2=function(o,e){return function(t,i){e(t,i,o)}},__awaiter$1=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})},AbstractCommandsQuickAccessProvider_1,CommandsHistory_1;let AbstractCommandsQuickAccessProvider=AbstractCommandsQuickAccessProvider_1=class extends PickerQuickAccessProvider{constructor(e,t,i,n,r,s){super(AbstractCommandsQuickAccessProvider_1.PREFIX,e),this.instantiationService=t,this.keybindingService=i,this.commandService=n,this.telemetryService=r,this.dialogService=s,this.commandsHistory=this._register(this.instantiationService.createInstance(CommandsHistory)),this.options=e}_getPicks(e,t,i,n){var r,s,a,l;return __awaiter$1(this,void 0,void 0,function*(){const d=yield this.getCommandPicks(i);if(i.isCancellationRequested)return[];const c=createSingleCallFunction(()=>{const _=new TfIdfCalculator;_.updateDocuments(d.map(S=>({key:S.commandId,textChunks:[S.label+(S.commandAlias?` ${S.commandAlias}`:"")]})));const C=_.calculateScores(e,i);return normalizeTfIdfScores(C).filter(S=>S.score>AbstractCommandsQuickAccessProvider_1.TFIDF_THRESHOLD).slice(0,AbstractCommandsQuickAccessProvider_1.TFIDF_MAX_RESULTS)}),u=[];for(const _ of d){const C=(r=AbstractCommandsQuickAccessProvider_1.WORD_FILTER(e,_.label))!==null&&r!==void 0?r:void 0,S=_.commandAlias&&(s=AbstractCommandsQuickAccessProvider_1.WORD_FILTER(e,_.commandAlias))!==null&&s!==void 0?s:void 0;if(C||S)_.highlights={label:C,detail:this.options.showAlias?S:void 0},u.push(_);else if(e===_.commandId)u.push(_);else if(e.length>=3){const y=c();if(i.isCancellationRequested)return[];const E=y.find(x=>x.key===_.commandId);E&&(_.tfIdfScore=E.score,u.push(_))}}const g=new Map;for(const _ of u){const C=g.get(_.label);C?(_.description=_.commandId,C.description=C.commandId):g.set(_.label,_)}u.sort((_,C)=>{if(_.tfIdfScore&&C.tfIdfScore)return _.tfIdfScore===C.tfIdfScore?_.label.localeCompare(C.label):C.tfIdfScore-_.tfIdfScore;if(_.tfIdfScore)return 1;if(C.tfIdfScore)return-1;const S=this.commandsHistory.peek(_.commandId),y=this.commandsHistory.peek(C.commandId);if(S&&y)return S>y?-1:1;if(S)return-1;if(y)return 1;if(this.options.suggestedCommandIds){const E=this.options.suggestedCommandIds.has(_.commandId),x=this.options.suggestedCommandIds.has(C.commandId);if(E&&x)return 0;if(E)return-1;if(x)return 1}return _.label.localeCompare(C.label)});const f=[];let p=!1,m=!0,b=!!this.options.suggestedCommandIds;for(let _=0;_<u.length;_++){const C=u[_];_===0&&this.commandsHistory.peek(C.commandId)&&(f.push({type:"separator",label:localize("recentlyUsed","recently used")}),p=!0),m&&C.tfIdfScore!==void 0&&(f.push({type:"separator",label:localize("suggested","similar commands")}),m=!1),b&&C.tfIdfScore===void 0&&!this.commandsHistory.peek(C.commandId)&&(!((a=this.options.suggestedCommandIds)===null||a===void 0)&&a.has(C.commandId))&&(f.push({type:"separator",label:localize("commonlyUsed","commonly used")}),p=!0,b=!1),p&&C.tfIdfScore===void 0&&!this.commandsHistory.peek(C.commandId)&&!(!((l=this.options.suggestedCommandIds)===null||l===void 0)&&l.has(C.commandId))&&(f.push({type:"separator",label:localize("morecCommands","other commands")}),p=!1),f.push(this.toCommandPick(C,n))}return this.hasAdditionalCommandPicks(e,i)?{picks:f,additionalPicks:__awaiter$1(this,void 0,void 0,function*(){var _;const C=yield this.getAdditionalCommandPicks(d,u,e,i);if(i.isCancellationRequested)return[];const S=C.map(y=>this.toCommandPick(y,n));return m&&((_=S[0])===null||_===void 0?void 0:_.type)!=="separator"&&S.unshift({type:"separator",label:localize("suggested","similar commands")}),S})}:f})}toCommandPick(e,t){if(e.type==="separator")return e;const i=this.keybindingService.lookupKeybinding(e.commandId),n=i?localize("commandPickAriaLabelWithKeybinding","{0}, {1}",e.label,i.getAriaLabel()):e.label;return Object.assign(Object.assign({},e),{ariaLabel:n,detail:this.options.showAlias&&e.commandAlias!==e.label?e.commandAlias:void 0,keybinding:i,accept:()=>__awaiter$1(this,void 0,void 0,function*(){var r,s;this.commandsHistory.push(e.commandId),this.telemetryService.publicLog2("workbenchActionExecuted",{id:e.commandId,from:(r=t==null?void 0:t.from)!==null&&r!==void 0?r:"quick open"});try{!((s=e.args)===null||s===void 0)&&s.length?yield this.commandService.executeCommand(e.commandId,...e.args):yield this.commandService.executeCommand(e.commandId)}catch(a){isCancellationError(a)||this.dialogService.error(localize("canNotRun","Command '{0}' resulted in an error",e.label),toErrorMessage(a))}})})}};AbstractCommandsQuickAccessProvider.PREFIX=">";AbstractCommandsQuickAccessProvider.TFIDF_THRESHOLD=.5;AbstractCommandsQuickAccessProvider.TFIDF_MAX_RESULTS=5;AbstractCommandsQuickAccessProvider.WORD_FILTER=or(matchesPrefix,matchesWords,matchesContiguousSubString);AbstractCommandsQuickAccessProvider=AbstractCommandsQuickAccessProvider_1=__decorate$2([__param$2(1,IInstantiationService),__param$2(2,IKeybindingService),__param$2(3,ICommandService),__param$2(4,ITelemetryService),__param$2(5,IDialogService)],AbstractCommandsQuickAccessProvider);let CommandsHistory=CommandsHistory_1=class extends Disposable{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(e=>this.updateConfiguration(e)))}updateConfiguration(e){e&&!e.affectsConfiguration("workbench.commandPalette.history")||(this.configuredCommandsHistoryLength=CommandsHistory_1.getConfiguredCommandHistoryLength(this.configurationService),CommandsHistory_1.cache&&CommandsHistory_1.cache.limit!==this.configuredCommandsHistoryLength&&(CommandsHistory_1.cache.limit=this.configuredCommandsHistoryLength,CommandsHistory_1.saveState(this.storageService)))}load(){const e=this.storageService.get(CommandsHistory_1.PREF_KEY_CACHE,0);let t;if(e)try{t=JSON.parse(e)}catch{}const i=CommandsHistory_1.cache=new LRUCache(this.configuredCommandsHistoryLength,1);if(t){let n;t.usesLRU?n=t.entries:n=t.entries.sort((r,s)=>r.value-s.value),n.forEach(r=>i.set(r.key,r.value))}CommandsHistory_1.counter=this.storageService.getNumber(CommandsHistory_1.PREF_KEY_COUNTER,0,CommandsHistory_1.counter)}push(e){CommandsHistory_1.cache&&(CommandsHistory_1.cache.set(e,CommandsHistory_1.counter++),CommandsHistory_1.saveState(this.storageService))}peek(e){var t;return(t=CommandsHistory_1.cache)===null||t===void 0?void 0:t.peek(e)}static saveState(e){if(!CommandsHistory_1.cache)return;const t={usesLRU:!0,entries:[]};CommandsHistory_1.cache.forEach((i,n)=>t.entries.push({key:n,value:i})),e.store(CommandsHistory_1.PREF_KEY_CACHE,JSON.stringify(t),0,0),e.store(CommandsHistory_1.PREF_KEY_COUNTER,CommandsHistory_1.counter,0,0)}static getConfiguredCommandHistoryLength(e){var t,i;const r=(i=(t=e.getValue().workbench)===null||t===void 0?void 0:t.commandPalette)===null||i===void 0?void 0:i.history;return typeof r=="number"?r:CommandsHistory_1.DEFAULT_COMMANDS_HISTORY_LENGTH}};CommandsHistory.DEFAULT_COMMANDS_HISTORY_LENGTH=50;CommandsHistory.PREF_KEY_CACHE="commandPalette.mru.cache";CommandsHistory.PREF_KEY_COUNTER="commandPalette.mru.counter";CommandsHistory.counter=1;CommandsHistory=CommandsHistory_1=__decorate$2([__param$2(0,IStorageService),__param$2(1,IConfigurationService)],CommandsHistory);class AbstractEditorCommandsQuickAccessProvider extends AbstractCommandsQuickAccessProvider{constructor(e,t,i,n,r,s){super(e,t,i,n,r,s)}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:stripIcons(i.label)||i.id});return t}}var __decorate$1=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param$1=function(o,e){return function(t,i){e(t,i,o)}},__awaiter=function(o,e,t,i){function n(r){return r instanceof t?r:new t(function(s){s(r)})}return new(t||(t=Promise))(function(r,s){function a(c){try{d(i.next(c))}catch(u){s(u)}}function l(c){try{d(i.throw(c))}catch(u){s(u)}}function d(c){c.done?r(c.value):n(c.value).then(a,l)}d((i=i.apply(o,e||[])).next())})};let StandaloneCommandsQuickAccessProvider=class extends AbstractEditorCommandsQuickAccessProvider{get activeTextEditorControl(){var e;return(e=this.codeEditorService.getFocusedCodeEditor())!==null&&e!==void 0?e:void 0}constructor(e,t,i,n,r,s){super({showAlias:!1},e,i,n,r,s),this.codeEditorService=t}getCommandPicks(){return __awaiter(this,void 0,void 0,function*(){return this.getCodeEditorCommandPicks()})}hasAdditionalCommandPicks(){return!1}getAdditionalCommandPicks(){return __awaiter(this,void 0,void 0,function*(){return[]})}};StandaloneCommandsQuickAccessProvider=__decorate$1([__param$1(0,IInstantiationService),__param$1(1,ICodeEditorService),__param$1(2,IKeybindingService),__param$1(3,ICommandService),__param$1(4,ITelemetryService),__param$1(5,IDialogService)],StandaloneCommandsQuickAccessProvider);class GotoLineAction extends EditorAction{constructor(){super({id:GotoLineAction.ID,label:QuickCommandNLS.quickCommandActionLabel,alias:"Command Palette",precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.focus,primary:59,weight:100},contextMenuOpts:{group:"z_commands",order:1}})}run(e){e.get(IQuickInputService).quickAccess.show(StandaloneCommandsQuickAccessProvider.PREFIX)}}GotoLineAction.ID="editor.action.quickCommand";registerEditorAction(GotoLineAction);Registry.as(Extensions$2.Quickaccess).registerQuickAccessProvider({ctor:StandaloneCommandsQuickAccessProvider,prefix:StandaloneCommandsQuickAccessProvider.PREFIX,helpEntries:[{description:QuickCommandNLS.quickCommandHelp,commandId:GotoLineAction.ID}]});var __decorate=function(o,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(o,e,t,i);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(r=(n<3?s(r):n>3?s(e,t,r):s(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},__param=function(o,e){return function(t,i){e(t,i,o)}};let StandaloneReferencesController=class extends ReferencesController{constructor(e,t,i,n,r,s,a){super(!0,e,t,i,n,r,s,a)}};StandaloneReferencesController=__decorate([__param(1,IContextKeyService),__param(2,ICodeEditorService),__param(3,INotificationService),__param(4,IInstantiationService),__param(5,IStorageService),__param(6,IConfigurationService)],StandaloneReferencesController);registerEditorContribution(ReferencesController.ID,StandaloneReferencesController,4);class ToggleHighContrast extends EditorAction{constructor(){super({id:"editor.action.toggleHighContrast",label:ToggleHighContrastNLS.toggleHighContrast,alias:"Toggle High Contrast Theme",precondition:void 0}),this._originalThemeName=null}run(e,t){const i=e.get(IStandaloneThemeService),n=i.getColorTheme();isHighContrast(n.type)?(i.setTheme(this._originalThemeName||(isDark(n.type)?VS_DARK_THEME_NAME:VS_LIGHT_THEME_NAME)),this._originalThemeName=null):(i.setTheme(isDark(n.type)?HC_BLACK_THEME_NAME:HC_LIGHT_THEME_NAME),this._originalThemeName=n.themeName)}}registerEditorAction(ToggleHighContrast);const documentPng=""+new URL("document-biKpiHWw.png",import.meta.url).href,ocrPng=""+new URL("ocr-klQmBKns.png",import.meta.url).href,mergePng=""+new URL("merge-DVYzrZeD.png",import.meta.url).href,diffPng=""+new URL("diff-DxrvQNFi.png",import.meta.url).href,_hoisted_1={class:"document_tool"},_hoisted_2={class:"tool-page"},_hoisted_3=["onClick"],_hoisted_4={class:"tool-info"},_hoisted_5={class:"tool-name"},_hoisted_6={class:"tool-desc"},_hoisted_7=["src"],_hoisted_8={class:"check-tool-title"},_hoisted_9={class:"type-box"},_hoisted_10=["onClick"],_hoisted_11={class:"upload-content-box"},_hoisted_12={key:0,src:_imports_0},_hoisted_13={key:1,src:_imports_1},_hoisted_14={key:2,src:_imports_2},_hoisted_15={key:3,src:_imports_3},_hoisted_16={class:"buttons"},_hoisted_17={class:"uploadFile-actions"},_hoisted_18={class:"file-name-box"},_hoisted_19={class:"doc-name"},_hoisted_20={class:"out-info"},_hoisted_21={class:"out-type-box"},_hoisted_22={class:"upload-file-box"},_hoisted_23={class:"draggable-item"},_hoisted_24={class:"file-index"},_hoisted_25={class:"file-name-box"},_hoisted_26={class:"file-name"},_hoisted_27={class:"add-button"},_hoisted_28={class:"add-button"},_hoisted_29={class:"add-file-text"},_hoisted_30={class:"merge-actions"},_hoisted_31={key:0,class:"loading-text"},_hoisted_32={key:1,class:"loading-text"},_hoisted_33={key:0,class:"trans-file-status-box"},_hoisted_34={class:"status-text"},_hoisted_35={class:"trans-name-box"},_hoisted_36={class:"file-icon"},_hoisted_37={class:"doc-name"},_hoisted_38={class:"trans-actions-box"},_hoisted_39={key:1,class:"ocr-cotent-box"},_hoisted_40=["src"],_hoisted_41={class:"ocr-drag-line"},_hoisted_42={class:"ocr-type-top"},_hoisted_43={class:"ocr-content-box"},_hoisted_44={class:"result-box"},_hoisted_45={class:"result-index"},_hoisted_46={class:"result-value"},_hoisted_47={key:0,class:"no-div"},_hoisted_48={class:"ocr-type-bottom"},_hoisted_49={key:0,class:"file-upload-tips"},_hoisted_50=["innerHTML"],__default__=defineComponent({name:"DocumentTool"}),_sfc_main=Object.assign(__default__,{setup(o){const e=useUserStore();useRouter(),useRoute();const{proxy:t}=getCurrentInstance(),i="/pyapi",n=ref({label:"文档转换",checkType:["docx","pdf","xlsx"],value:"document",img:documentPng,desc:"支持PDF等多文件格式转换",message:"文件大小不能超过20M"}),r=ref("local"),s=[{label:"文档转换",checkType:["docx","pdf","xlsx"],value:"document",img:documentPng,desc:"支持PDF等多文件格式转换"},{label:"OCR识别",value:"ocr",img:ocrPng,desc:"支持通用文字信息识别"},{label:"文档合并",value:"merge",img:mergePng,desc:"PDF、Word文档快速合并"},{label:"文档对比",checkType:["docx","pdf","xlsx"],value:"diff",img:diffPng,desc:"文档智能解析对比"}],a=[{name:"图片识别",value:"image",type:"ocr",checkType:["png","jpeg","jpg"]},{name:"Word合并",value:"word",type:"merge",checkType:["docx"]},{name:"PDF合并",value:"pdf",type:"merge",checkType:["pdf"]}],l={document:[{icon:"",text:"除上传本地文件以外,还可以选择文库中文档上传"},{icon:"docx",text:"Word文件支持转换的格式:Doc、Docm、Docx、Pdf、Epub、Fb2、Txt、Html、Xml、Ott等"},{icon:"pptx",text:"PPT文件支持转换的格式:Odp、Pdf、Pdfa、Potm、Potx、Pptm等"},{icon:"xlsx",text:"Excel文件支持转换的格式:Pdf、Cvs、Ods、Ots、Pdfa、Xlsm、Xltm、Xltx等"},{icon:"",text:"还支持以下文件转换文件格式的格式:Cvs、Ppt、Txt、Xps、Xml、Fods等"}],ocr:[{icon:"",text:"除上传本地文件以外,还可以选择文库中文档上传"},{icon:"",text:"支持上传JPG、PNG、BMP等图片格式文件"},{icon:"",text:"上传图片支持大小为20M以内"}]},d=ref("image"),c={module:"/jvs-knowledge/jvs-tool/"},u={Authorization:"Bearer "+e.access_token},g=ref(!1),f=ref(1),p=ref([]),m=ref([]),b=ref(""),_=ref(0),C=ref({name:"",originalFileName:"",fileLink:""}),S=ref([]),y=ref([]),E=ref(""),x=ref(""),L=ref({}),I=ref(),D=ref(),N=ref(null),F=ref(!1),R=ref("result"),M=ref(206),W=ref(!1),V=ref("folder"),A=ref(["docx","pdf","xlsx"]),P=ref("保存位置"),k=ref(),T=ref(),U=ref(1),z=ref(0),J=ref(0),X=ref(0),ae=ref({left:0,top:0}),ve=ee=>{const Y=ee||window.event,de=Y.detail?Y.detail*-120:Y.wheelDelta;z.value+=de/2e3,z.value<-.5&&(z.value=-.5),z.value>1&&(z.value=1),U.value=1+z.value},me=ee=>{if(k.value){const Y=/Firefox/i.test(navigator.userAgent)?"DOMMouseScroll":"mousewheel";k.value.addEventListener(Y,ve,{passive:!0})}ee.noRelease||n.value!==ee.value&&(f.value>1||m.value.length>0?t.$confirm(`此操作将丢失当前${n.value.value==="merge"?"选择的文件":n.value.value==="document"?"转换文件":"识别内容"}, 是否继续`,"提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{ee.value==="ocr"?(d.value="image",A.value=a[0].checkType):(d.value="word",A.value=a.find(Y=>Y.value==="word").checkType),n.value=ee,ee.value==="document"&&(A.value=ee.checkType),Ie()}):(ee.value==="ocr"?(d.value="image",A.value=a[0].checkType):(d.value="word",A.value=a.find(Y=>Y.value==="word").checkType),ee.value==="document"&&(A.value=ee.checkType),n.value=ee,Ie()))},fe=()=>C.value.originalFileName.split(".").slice(-1)[0].toLowerCase(),xe=()=>{let ee=C.value.originalFileName.split(".").slice(-1)[0].toLowerCase();f.value=2.5,nextTick(()=>{N.value&&(N.value.destroy(),N.value=null),N.value||Me(),fileTransition({fileUrl:C.value.fileLink,outSuffix:b.value.toLowerCase(),suffix:ee}).then(Y=>{Y.code===0?(F.value=!0,L.value={fileName:C.value.originalFileName.split(".")[0],fileUrl:Y.data,suffix:b.value.toLowerCase(),isSave:!1},f.value=3):(F.value=!1,f.value=2)}).catch(Y=>{F.value=!1,f.value=2}).finally(Y=>{})})},Ie=()=>{N.value&&(N.value.destroy(),N.value=null),_.value=0,C.value={name:"",fileLink:"",originalFileName:""},U.value=1,J.value=0,X.value=0,ae.value={left:0,top:0},z.value=0,R.value="result",p.value=[],m.value=[],L.value={},f.value=1,E.value="",S.value=[],y.value=[]},De=ee=>{ee.noRelease||d.value!==ee.value&&(["word","pdf"].indexOf(d.value)!==-1&&m.value.length>0?t.$confirm(`此操作将丢失当前${n.value.value==="merge"?"选择的文件":n.value.value==="document"?"转换文件":"识别内容"}, 是否继续?`,"提示",{confirmButtonText:"确认",cancelButtonText:"取消",type:"warning"}).then(()=>{d.value=ee.value,A.value=ee.checkType,Ie()}):(d.value=ee.value,A.value=ee.checkType,Ie()))},he=(ee,Y)=>{let de=["docx","pdf","doc","xlsx","xls","txt","xml","csv","ppt","pptx","pptm","fods","ods","ots","xlsb","xlsm","xlt","xltm","xltx","fodp","odp","otp","pot","potm","potx","pps","ppsm","ppsx","djvu","docm","docxf","dot","dotm","dotx","epub","fb2","fodt","html","mht","pdt","ott","oxps","rtf","xps"],ce=["pdf","png","jpeg","gif","jpg"],be=["pdf"],Ae=["docx"],Ne=ee.name.split(".").slice(-1)[0].toLowerCase();return(n.value.value==="document"?de:n.value.value==="merge"?d.value==="pdf"?be:Ae:ce).includes(Ne)?ee.size/1024/1024>20?(t.$modal.msgWarning("文件大小不能超过20M"),!1):(Y||(f.value=1.5,g.value=!0,N.value||Me()),!0):(t.$modal.msgWarning(n.value.value==="document"?"暂时不支持其他格式转换":n.value.value==="merge"?"暂时不支持其他格式合并":"暂时不支持其他格式识别"),!1)},Me=()=>{nextTick(()=>{N.value||(N.value=lottie.loadAnimation({container:document.getElementById("loaidng-animiate"),renderer:"svg",loop:!0,autoplay:!0,animationData:loading5Data,rendererSettings:{context:"图片生成中",scaleMode:"noScale",clearCanvas:!1,progressiveLoad:!1,hideOnTransparent:!0}}))})},we=()=>{t.$modal.msgError("合并操作限制最多只能选择5个文件!")},ue=(ee,Y,de)=>{p.value=de},ke=ee=>{let Y=C.value.originalFileName.split(".").slice(-1)[0].toLowerCase();f.value=2.5,ocrRecognition({fileUrl:C.value.fileLink,isGetText:!1,suffix:Y}).then(de=>{if(de.code===0){f.value=3;let ce=JSON.parse(de.data);E.value="",x.value="";let be=0;for(let Ae=0;Ae<ce.length;Ae++)x.value+=JSON.stringify(ce[Ae])+"\r",Ae<ce.length-1?(be=ce[Ae+1][0][1],Math.abs(ce[Ae][0][1]-be)<ce[Ae][0][3]/2?E.value+=ce[Ae][1]+" ":E.value+=ce[Ae][1]+"\r"):E.value+=ce[Ae][1],S.value=E.value.split("\r").filter(Ne=>Ne),y.value=JSON.parse(JSON.stringify(S.value))}else f.value=1,Ie()}).catch(de=>{f.value=1,Ie()})},Re=(ee,Y,de)=>{g.value=!1,_.value+=1,ee.code===0&&(C.value=ee.data,n.value.value==="document"?(f.value=2,b.value=Pe(C.value.originalFileName)[0].toUpperCase()):n.value.value==="ocr"?ke():n.value.value==="merge"&&_.value>=p.value.length&&(f.value=2,m.value=[],p.value.forEach(ce=>{ce.status==="success"&&m.value.push(ce)}),nextTick(()=>{N.value&&(N.value.destroy(),N.value=null),_.value=0,p.value=[]})))},Pe=ee=>{let Y=ee.split(".").slice(-1)[0].toLowerCase(),de=[],ce=["bmp","docm","docx","docxf","dotm","dotx","epub","fb2","gif","html","jpg","odt","ott","pdf","pdfa","png","rtf","txt"],be=["bmp","csv","gif","jpg","ods","ots","pdf","pdfa","png","xlsm","xlsx","xltm","xltx"],Ae=["bmp","gif","jpg","odp","otp","pdf","pdfa","png","potm","potx","pptm","pptx"];switch(Y){case"djvu":de=["bmpt","gif","jpg","png"];break;case"docx":case"docxf":case"pdf":case"docm":case"dotm":case"dotx":case"epub":case"fb2":case"html":case"mht":case"odt":case"ott":case"rtf":case"txt":de=ce,de.splice(de.indexOf(Y),1);break;case"xps":case"xml":case"fodt":case"opxs":case"dot":case"doc":de=ce;break;case"csv":case"ods":case"ots":case"xlsm":case"xlsx":case"xltm":case"xltx":de=be,de.splice(de.indexOf(Y),1);break;case"fods":case"xls":case"xlsb":case"xlt":de=be;break;case"odp":case"otp":case"potm":case"potx":case"pptm":case"pptx":de=Ae,de.splice(de.indexOf(Y),1);break;case"fodp":case"pot":case"pps":case"ppsm":case"ppsx":case"ppt":de=Ae;break}return de},$e=()=>{g.value=!1,f.value=1},He=ee=>{m.value.splice(ee,1)},ie=()=>{t.$modal.notifyWarning(`合并操作做多支持5个文件,您已选择了${m.value.length}个,还能选${5-m.value.length}个文件`)},q=(ee,Y,de)=>{_.value+=1,ee.code===0&&_.value>=p.value.length&&(f.value=2,p.value.forEach(ce=>{ce.status==="success"&&m.value.push(ce)}),nextTick(()=>{_.value=0,p.value=[]}))},Z=()=>{r.value==="local"?r.value="cloud":r.value="local"},O=()=>{r.value==="cloud"&&(V.value="file",P.value="选择文档",nextTick(()=>{D.value.init()}))},B=()=>{if(m.value.length<2){t.$notify({title:"提示",type:"warning",message:"合并最少需要2个文件",position:"bottom-right"});return}let ee=[],Y=0,de=[];if(m.value.forEach((ce,be)=>{ce.size===0&&(Y+=1,de.push(ce.name)),ee.push(ce.response.data)}),Y){t.$notify({title:"提示",type:"warning",dangerouslyUseHTMLString:!0,message:`<div>不能合并空文件,以下为文件为空文件</br><strong>${de.join(",")}</strong></div>`,position:"bottom-right",duration:5e3});return}f.value=2.5,Me(),filesMer(ee).then(ce=>{ce.code===0?(F.value=!0,f.value=3,L.value.fileUrl=ce.data,L.value.fileName="合成文档",L.value.suffix=d.value==="word"?"docx":"pdf"):(F.value=!1,f.value=1,Ie(),t.$notify({title:"提示",message:"文件合并失败",type:"warning",position:"bottom-right"}))}).catch(ce=>{f.value=1,F.value=!1,Ie(),t.$notify({title:$t("message.prompt"),message:$t("message.message.filaMergeFiel"),type:"warning",position:"bottom-right"})})};function j(ee){if(V.value==="file")if(n.value.value!=="merge"){let Y=C.value.originalFileName;getFileNameUrl({bucketName:ee.bucketName,fileName:ee.filePath}).then(de=>{de.code===0&&(ee.name.indexOf(`.${ee.nameSuffix}`)!==-1?Y=ee.name:Y=ee.name+`.${ee.nameSuffix}`,C.value={name:Y,fileLink:de.data,originalFileName:Y},N.value&&(N.value.destroy(),N.value=null),nextTick(()=>{N.value||Me()}),n.value.value==="document"?(f.value=2,b.value=Pe(C.value.originalFileName)[0].toUpperCase()):ke())})}else m.value.push({name:ee.name,size:ee.size||0,response:{data:{bucketName:ee.bucketName,fileLink:null,fileName:ee.filePath,originalFileName:ee.name}}}),f.value=2;else if(n.value.value==="document"||n.value.value==="merge"){const Y=new FormData;Y.append("fileUrl",L.value.fileUrl),Y.append("fileName",L.value.fileName),Y.append("suffix",L.value.suffix),fileTransSave(ee.id,Y).then(de=>{de.code===0&&(L.value.isSave=!0,t.$notify({title:"提示",message:"文件保存成功",type:"success",position:"bottom-right"}))})}else{const Y=new FormData;Y.append("content",S.value.join("\r")),Y.append("fileName",C.value.originalFileName),ocrSaveContent(ee.id,Y).then(de=>{de.code===0&&t.$notify({title:"提示",message:"文件保存成功",type:"success",position:"bottom-right"})})}}const H=()=>{V.value="folder",P.value="保存位置",nextTick(()=>{D.value.init()})},ne=async()=>{const{fileUrl:ee,fileName:Y,suffix:de}=L.value;let ce=Y;!ce.includes(".")&&de&&(ce+="."+de),ce=decodeURIComponent(ce)||"download",fileBlob({url:ee}).then(async be=>{if(blobValidate(be)){const Ne=new Blob([be]);FileSaver_minExports.saveAs(Ne,ce)}else{const Ne=await be.text(),Be=JSON.parse(Ne),Ue=errorCode[Be.code]||Be.msg||errorCode.default;ElMessage.error(Ue)}}).catch(be=>{console.error(be),ElMessage.error("下载文件出现错误,请联系管理员!")})},re=()=>{const{fileUrl:ee,fileName:Y,suffix:de}=L.value;let ce=Y;!ce.includes(".")&&de&&(ce+="."+de),ce=decodeURIComponent(ce)||"download",fileBlob2({url:ee}).then(async be=>{if(blobValidate(be)){const Ne=new Blob([be]);FileSaver_minExports.saveAs(Ne,ce)}else{const Ne=await be.text(),Be=JSON.parse(Ne),Ue=errorCode[Be.code]||Be.msg||errorCode.default;ElMessage.error(Ue)}}).catch(be=>{console.error(be),ElMessage.error("下载文件出现错误,请联系管理员!")})},K=()=>{V.value="file",P.value="选择文档",nextTick(()=>{D.value.init()})},G=ee=>new Promise((Y,de)=>{let ce=new Image;ce.src=ee,ce.onload=()=>{Y({width:ce.width,height:ce.height})}});onBeforeUnmount(()=>{if(k.value){const ee=/Firefox/i.test(navigator.userAgent)?"DOMMouseScroll":"mousewheel";k.value.removeEventListener(ee,ve,{passive:!0})}});const Q=async()=>{let{width:ee,height:Y}=await G(i+C.value.fileLink);const de=/Firefox/i.test(navigator.userAgent)?"DOMMouseScroll":"mousewheel";k.value.addEventListener(de,ve,{passive:!0});let ce=ee,be=Y;const Ae=ce/be,Ne=be/ce,Be=k.value.clientWidth,Ue=k.value.clientHeight;ce>=be?(X.value=Ne*Be,X.value>Ue?(X.value=Ue,J.value=Ae*Ue):J.value=Be,ae.value.top=(Ue-X.value)/2,ae.value.left=(Be-J.value)/2):(J.value=Ue/be*ce,X.value=Ue,ae.value.left=(Be-J.value)/2)},oe=ee=>{if(k.value.onmousemove=function(Y){const de=Y||window.event;de.preventDefault(),ae.value.left+=de.movementX,ae.value.top+=de.movementY},k.value.onmouseup=function(Y){k.value.onmousemove=null,k.value.onmouseup=null},ee.preventDefault)ee.preventDefault();else return!1},le=ee=>{k.value.onmousemove=null,k.value.onmouseup=null},pe=ee=>{document.onselectstart=function(){return!1};const Y=ee.clientX,de=M.value,ce=Ae=>{M.value=de+(Ae.clientX-Y)*-1,M.value<206?M.value=206:M.value>document.getElementsByClassName("ocr-cotent-box")[0].scrollWidth-206&&(M.value=document.getElementsByClassName("ocr-cotent-box")[0].scrollWidth-206)},be=()=>{document.removeEventListener("mousemove",ce),document.removeEventListener("mouseup",be),document.onselectstart=function(){return!0}};document.addEventListener("mousemove",ce),document.addEventListener("mouseup",be)};self.MonacoEnvironment={getWorker(ee,Y){return Y==="html"?new WorkerWrapper:new WorkerWrapper$1}};const se=ref(),ye=()=>{R.value==="json"&&nextTick(()=>{editor.create(se.value,{value:x.value,theme:"CodeSampleTheme",language:"html",overviewRulerBorder:!1,disableLayerHinting:!0,automaticLayout:!0,wordWrap:"on",readOnly:!0,minimap:{enabled:!1},folding:!1,lineNumbers:"off",scrollBeyondLastLine:!1,scrollbar:{verticalScrollbarSize:4,horizontalScrollbarSize:4},contextmenu:!1})})},Le=ee=>{R.value!==ee&&(W.value?t.$confirm("此操作会丢失当前修改的识别内容,是否保存当前修改?","提示",{confirmButtonText:"确认",type:"warning"}).then(()=>{y.value=JSON.parse(JSON.stringify(S.value)),W.value=!1,R.value=ee,ye()}).catch(()=>{W.value=!1,R.value=ee,ye(),S.value=JSON.parse(JSON.stringify(y.value))}):(R.value=ee,ye()))},Se=ee=>{const Y=y.value.join(`\r
- `);switch(ee){case"download":let de=C.value.originalFileName.split(".").slice(-1)[0].toLowerCase();const ce=new Blob([Y],{type:"text/plain;charset=utf-8"}),be=URL.createObjectURL(ce),Ae=document.createElement("a");Ae.href=be,Ae.download=C.value.originalFileName.replace(de,"txt"),Ae.click(),URL.revokeObjectURL(be);break;case"copy":copyText(Y,()=>{t.$notify({title:"复制成功",type:"success",position:"bottom-right"})});break;case"edit":R.value="result",W.value=!0;break;case"refresh":ke();break;case"cancalEdit":W.value=!1;break;case"saveEdit":y.value=JSON.parse(JSON.stringify(S.value)),W.value=!1;break;case"save":V.value="folder",P.value="保存位置",nextTick(()=>{D.value.init()});break}};return(ee,Y)=>{const de=resolveComponent("el-col"),ce=resolveComponent("el-row"),be=resolveComponent("el-button"),Ae=resolveComponent("el-upload"),Ne=resolveComponent("el-tooltip"),Be=resolveComponent("el-option"),Ue=resolveComponent("el-select"),Ge=resolveComponent("el-icon"),nt=resolveComponent("el-input"),je=resolveComponent("el-scrollbar"),Qe=resolveDirective("tooltip-auto-show");return openBlock(),createElementBlock("div",_hoisted_1,[createVNode(je,null,{default:withCtx(()=>[Y[30]||(Y[30]=createBaseVNode("h6",{class:"flex",style:{"font-size":"16px"}},"文档工具",-1)),createBaseVNode("div",_hoisted_2,[createVNode(ce,{gutter:20},{default:withCtx(()=>[(openBlock(),createElementBlock(Fragment,null,renderList(s,(Te,ze)=>createVNode(de,{span:24,key:ze},{default:withCtx(()=>[createBaseVNode("div",{class:normalizeClass(["tool-item-box",[unref(n).value===Te.value&&"active"]]),onClick:it=>me(Te)},[createBaseVNode("div",_hoisted_4,[createBaseVNode("div",_hoisted_5,toDisplayString(Te.label),1),createBaseVNode("div",_hoisted_6,toDisplayString(Te.desc),1)]),createBaseVNode("img",{src:Te.img,class:"tool-img"},null,8,_hoisted_7)],10,_hoisted_3)]),_:2},1024)),64))]),_:1}),createBaseVNode("div",_hoisted_8,toDisplayString(unref(n).label),1),createBaseVNode("div",_hoisted_9,[(openBlock(),createElementBlock(Fragment,null,renderList(a,(Te,ze)=>(openBlock(),createElementBlock(Fragment,{key:ze},[Te.type===unref(n).value?(openBlock(),createElementBlock("div",{key:0,class:normalizeClass(["type-item",[unref(d)===Te.value&&"active"]]),onClick:it=>De(Te)},toDisplayString(Te.name),11,_hoisted_10)):createCommentVNode("",!0)],64))),64))]),createBaseVNode("div",{class:normalizeClass(["tool-upload-file-boxs",[unref(n).value==="ocr"&&unref(f)===3&&"ocr-finish-box"]])},[unref(f)===1&&["ocr","document","merge"].indexOf(unref(n).value)!==-1?(openBlock(),createBlock(Ae,{key:0,class:"drag-upload-box",drag:"",action:`${unref(i)}/mgr/jvs-auth/upload/jvs-public`,multiple:unref(n).value==="merge",headers:u,data:c,"show-file-list":!1,limit:5,accept:unref(n).value==="document"?".docx,.pptx,.xlsx":unref(n).value==="ocr"?".jpeg,.png,.bmp,.jpg":unref(d)==="word"?".docx":".pdf","before-upload":he,"on-exceed":we,"on-progress":ue,"on-success":Re,"on-error":$e,"file-list":unref(p)},{default:withCtx(()=>[createBaseVNode("div",_hoisted_11,[unref(n).value==="document"?(openBlock(),createElementBlock("img",_hoisted_12)):createCommentVNode("",!0),unref(n).value==="ocr"?(openBlock(),createElementBlock("img",_hoisted_13)):createCommentVNode("",!0),unref(n).value==="merge"&&unref(d)==="word"?(openBlock(),createElementBlock("img",_hoisted_14)):createCommentVNode("",!0),unref(n).value==="merge"&&unref(d)==="pdf"?(openBlock(),createElementBlock("img",_hoisted_15)):createCommentVNode("",!0),Y[15]||(Y[15]=createBaseVNode("div",{class:"tips"},"点击上传文档/文库文档或直接拖拽到这里",-1)),createBaseVNode("div",_hoisted_16,[createVNode(be,{class:"button",type:"primary"},{default:withCtx(()=>Y[13]||(Y[13]=[createTextVNode("上传文档")])),_:1}),createVNode(be,{class:"button know-button",onClick:withModifiers(K,["stop"])},{default:withCtx(()=>Y[14]||(Y[14]=[createTextVNode(" 文库文档 ")])),_:1})])])]),_:1},8,["action","multiple","accept","file-list"])):createCommentVNode("",!0),unref(f)===2&&unref(n).value==="document"?(openBlock(),createElementBlock(Fragment,{key:1},[Y[19]||(Y[19]=createBaseVNode("div",{class:"first-title"},"选择文件格式",-1)),Y[20]||(Y[20]=createBaseVNode("div",{class:"second-title"}," 选择输出格式,然后点击转换。转换将不超过1-2分钟,这取决于文件的大小和内容。 ",-1)),createBaseVNode("div",_hoisted_17,[createBaseVNode("div",_hoisted_18,[createVNode(_sfc_main$5,{class:"file-icon",type:"document_upload",nameSuffix:fe()},null,8,["nameSuffix"]),createVNode(Ne,{content:unref(C).originalFileName,effect:"light"},{default:withCtx(()=>[createBaseVNode("div",_hoisted_19,toDisplayString(unref(C).originalFileName),1)]),_:1},8,["content"])]),createBaseVNode("div",_hoisted_20,[Y[16]||(Y[16]=createBaseVNode("div",{class:"out-name"},"输出格式",-1)),createBaseVNode("div",_hoisted_21,[createVNode(Ue,{class:"select",modelValue:unref(b),"onUpdate:modelValue":Y[0]||(Y[0]=Te=>isRef(b)?b.value=Te:null)},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(Pe(unref(C).originalFileName),(Te,ze)=>(openBlock(),createBlock(Be,{key:ze,label:Te,value:Te},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])])]),createVNode(be,{class:"button",type:"primary",onClick:xe},{default:withCtx(()=>Y[17]||(Y[17]=[createTextVNode("立即转换")])),_:1}),createVNode(be,{class:"button",onClick:Ie},{default:withCtx(()=>Y[18]||(Y[18]=[createTextVNode("取消")])),_:1})])],64)):createCommentVNode("",!0),unref(n).value==="merge"&&unref(f)===2?(openBlock(),createElementBlock(Fragment,{key:2},[Y[23]||(Y[23]=createBaseVNode("div",{class:"first-title"},"文档设置",-1)),Y[24]||(Y[24]=createBaseVNode("div",{class:"second-title"}," 拖拽调整文档顺序,合并将不超过1-2分钟,这取决于文件的大小和内容。 ",-1)),createBaseVNode("div",_hoisted_22,[createVNode(unref(draggable),{modelValue:unref(m),"onUpdate:modelValue":Y[1]||(Y[1]=Te=>isRef(m)?m.value=Te:null),class:"draggable-box"},{item:withCtx(({element:Te,index:ze})=>[createBaseVNode("div",_hoisted_23,[createVNode(_sfc_main$5,{class:"file-icon",type:"document_upload",nameSuffix:unref(d)==="word"?"docx":"pdf"},null,8,["nameSuffix"]),createBaseVNode("div",_hoisted_24,[createBaseVNode("span",null,toDisplayString(ze+1),1),createVNode(Ge,{onClick:it=>He(ze)},{default:withCtx(()=>[createVNode(unref(delete_default))]),_:2},1032,["onClick"])]),withDirectives((openBlock(),createElementBlock("div",_hoisted_25,[createVNode(Ne,{content:Te.name,effect:"light"},{default:withCtx(()=>[createBaseVNode("div",_hoisted_26,toDisplayString(Te.name),1)]),_:2},1032,["content"])])),[[Qe]])])]),_:1},8,["modelValue"]),5-unref(m).length>0?(openBlock(),createElementBlock("div",{key:0,class:"draggable-item",onClick:O},[unref(r)==="local"?(openBlock(),createBlock(Ae,{key:0,class:"drag-upload-box",action:`${unref(i)}/mgr/jvs-auth/upload/jvs-public`,multiple:unref(n).value==="merge",headers:u,data:c,"show-file-list":!1,accept:unref(d)==="word"?".docx":".pdf",limit:5-unref(m).length,"before-upload":he,"on-exceed":ie,"on-progress":ue,"on-success":q,"on-error":$e,"file-list":unref(p)},{default:withCtx(()=>[createBaseVNode("div",_hoisted_27,[createVNode(__unplugin_components_0,{"class-name":"icon-plus","icon-class":"plus"})])]),_:1},8,["action","multiple","accept","limit","file-list"])):createCommentVNode("",!0),createBaseVNode("div",{class:"change-file-box",onClick:withModifiers(Z,["stop"])},[createVNode(__unplugin_components_0,{"class-name":"icon-qiehuan","icon-class":"qiehuan"})]),createBaseVNode("div",_hoisted_28,[unref(r)!=="local"?(openBlock(),createBlock(__unplugin_components_0,{key:0,"class-name":"icon-plus","icon-class":"plus"})):createCommentVNode("",!0)]),createBaseVNode("div",_hoisted_29,toDisplayString(unref(r)==="local"?"上传本地文档":"上传云端文档"),1)])):createCommentVNode("",!0)]),createBaseVNode("div",_hoisted_30,[createVNode(be,{class:"button",type:"primary",onClick:B},{default:withCtx(()=>Y[21]||(Y[21]=[createTextVNode("合并文档")])),_:1}),createVNode(be,{class:"button",onClick:Ie},{default:withCtx(()=>Y[22]||(Y[22]=[createTextVNode("取消")])),_:1})])],64)):createCommentVNode("",!0),unref(f)===2.5||unref(f)===1.5?(openBlock(),createElementBlock(Fragment,{key:3},[createBaseVNode("div",{ref_key:"loadingRef",ref:I,class:"loaidng-animiate",id:"loaidng-animiate"},null,512),unref(f)===2.5?(openBlock(),createElementBlock("div",_hoisted_31,toDisplayString(unref(n).value==="document"?"文件正在转换中":unref(n).value==="merge"?"文件正在合并中":"文件正在识别中"),1)):createCommentVNode("",!0),unref(f)===1.5?(openBlock(),createElementBlock("div",_hoisted_32,"文件上传中")):createCommentVNode("",!0)],64)):createCommentVNode("",!0),unref(f)===3?(openBlock(),createElementBlock(Fragment,{key:4},[unref(n).value!=="ocr"?(openBlock(),createElementBlock("div",_hoisted_33,[createVNode(__unplugin_components_0,{"icon-class":`${unref(F)?"chenggong":"shibai"}`},null,8,["icon-class"]),createBaseVNode("div",_hoisted_34,toDisplayString(unref(n).value==="merge"?"合并":"转换")+toDisplayString(unref(F)?"完成":"失败"),1),Y[26]||(Y[26]=createBaseVNode("div",{class:"status-tips"},"你可以选择保存文档或者下载文档!",-1)),withDirectives((openBlock(),createElementBlock("div",_hoisted_35,[createBaseVNode("div",_hoisted_36,[createVNode(_sfc_main$5,{class:"file-icon",type:"document_upload",nameSuffix:unref(L).suffix},null,8,["nameSuffix"])]),createVNode(Ne,{content:`${unref(L).fileName}.${unref(L).suffix}`,effect:"light"},{default:withCtx(()=>[createBaseVNode("div",_hoisted_37,toDisplayString(unref(L).fileName)+"."+toDisplayString(unref(L).suffix),1)]),_:1},8,["content"])])),[[Qe]]),createBaseVNode("div",_hoisted_38,[createVNode(be,{class:"button",type:"primary",onClick:H,disabled:unref(L).isSave},{default:withCtx(()=>Y[25]||(Y[25]=[createTextVNode(" 保存 ")])),_:1},8,["disabled"]),unref(n).value==="document"?(openBlock(),createElementBlock("div",{key:0,class:"button other-button",onClick:ne}," 下载 ")):createCommentVNode("",!0),unref(n).value==="merge"?(openBlock(),createElementBlock("div",{key:1,class:"button other-button",onClick:re}," 下载 ")):createCommentVNode("",!0),createBaseVNode("div",{class:"button other-button",onClick:Ie},"转换其他文档")])])):(openBlock(),createElementBlock("div",_hoisted_39,[createBaseVNode("div",{class:"ocr-left",style:normalizeStyle({width:`calc(100% - ${unref(M)}px)`}),ref_key:"ocrImgBoxRef",ref:k,onMousedown:oe,onMouseleave:le},[createBaseVNode("img",{ref_key:"ocrImgRef",ref:T,onLoad:Q,src:`${unref(i)}${unref(C).fileLink}`,style:normalizeStyle({left:unref(ae).left+"px",top:unref(ae).top+"px",width:unref(J)+"px",height:unref(X)+"px",transform:`scale(${unref(U)})`})},null,44,_hoisted_40)],36),createBaseVNode("div",_hoisted_41,[createVNode(__unplugin_components_0,{onMousedown:Y[2]||(Y[2]=Te=>pe(Te)),class:"ocr-drag-button","class-name":"icon","icon-class":"tuodong"})]),createBaseVNode("div",{class:"ocr-right",style:normalizeStyle({width:`${unref(M)}px`})},[createBaseVNode("div",_hoisted_42,[createBaseVNode("div",{class:normalizeClass(["type-item",[unref(R)==="result"&&"item-active"]]),onClick:Y[3]||(Y[3]=Te=>Le("result"))}," 识别结果 ",2),createBaseVNode("div",{class:normalizeClass(["type-item",[unref(R)==="json"&&"item-active"]]),onClick:Y[4]||(Y[4]=Te=>Le("json"))}," 原始数据 ",2)]),createBaseVNode("div",_hoisted_43,[unref(R)==="result"?(openBlock(),createBlock(je,{key:0},{default:withCtx(()=>[createBaseVNode("div",_hoisted_44,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(S),(Te,ze)=>(openBlock(),createElementBlock("div",{key:ze,class:"result-item"},[createBaseVNode("div",_hoisted_45,toDisplayString(ze+1),1),createBaseVNode("div",_hoisted_46,[unref(W)?createCommentVNode("",!0):(openBlock(),createElementBlock("div",_hoisted_47,toDisplayString(Te),1)),unref(W)?(openBlock(),createBlock(nt,{key:1,modelValue:unref(S)[ze],"onUpdate:modelValue":it=>unref(S)[ze]=it},null,8,["modelValue","onUpdate:modelValue"])):createCommentVNode("",!0)])]))),128))])]),_:1})):createCommentVNode("",!0),unref(R)==="json"?(openBlock(),createElementBlock("div",{key:1,id:"monacoEditor",ref_key:"monacoEditor",ref:se},null,512)):createCommentVNode("",!0)]),createBaseVNode("div",_hoisted_48,[unref(W)?createCommentVNode("",!0):(openBlock(),createElementBlock(Fragment,{key:0},[createVNode(Ne,{content:"重新识别",effect:"light"},{default:withCtx(()=>[createVNode(Ge,{class:"action-icon",onClick:Y[5]||(Y[5]=Te=>Se("refresh"))},{default:withCtx(()=>[createVNode(unref(refresh_default))]),_:1})]),_:1}),createVNode(Ne,{content:"编辑",effect:"light"},{default:withCtx(()=>[createVNode(Ge,{class:"action-icon",onClick:Y[6]||(Y[6]=Te=>Se("edit"))},{default:withCtx(()=>[createVNode(unref(edit_default))]),_:1})]),_:1}),createVNode(Ne,{content:"复制",effect:"light"},{default:withCtx(()=>[createVNode(Ge,{class:"action-icon",onClick:Y[7]||(Y[7]=Te=>Se("copy"))},{default:withCtx(()=>[createVNode(unref(document_copy_default))]),_:1})]),_:1}),createVNode(Ne,{content:"保存",effect:"light"},{default:withCtx(()=>[createVNode(Ge,{class:"action-icon",onClick:Y[8]||(Y[8]=Te=>Se("save"))},{default:withCtx(()=>[createVNode(unref(collection_default))]),_:1})]),_:1}),createVNode(Ne,{content:"下载",effect:"light"},{default:withCtx(()=>[createVNode(Ge,{class:"action-icon",onClick:Y[9]||(Y[9]=Te=>Se("download"))},{default:withCtx(()=>[createVNode(unref(download_default))]),_:1})]),_:1}),createVNode(Ne,{content:"关闭",effect:"light"},{default:withCtx(()=>[createVNode(Ge,{class:"action-icon",onClick:Ie},{default:withCtx(()=>[createVNode(unref(close_default))]),_:1})]),_:1})],64)),unref(W)?(openBlock(),createElementBlock(Fragment,{key:1},[createVNode(be,{type:"primary",onClick:Y[10]||(Y[10]=Te=>Se("saveEdit"))},{default:withCtx(()=>Y[27]||(Y[27]=[createTextVNode("确定")])),_:1}),createVNode(be,{onClick:Y[11]||(Y[11]=Te=>Se("cancalEdit"))},{default:withCtx(()=>Y[28]||(Y[28]=[createTextVNode("取消")])),_:1})],64)):createCommentVNode("",!0)])],4)]))],64)):createCommentVNode("",!0),unref(n).value==="diff"?(openBlock(),createBlock(FileCompare,{key:5,fileList:unref(m),"onUpdate:fileList":Y[12]||(Y[12]=Te=>isRef(m)?m.value=Te:null)},null,8,["fileList"])):createCommentVNode("",!0)],2),["document","ocr"].indexOf(unref(n).value)!==-1?(openBlock(),createElementBlock("div",_hoisted_49,[Y[29]||(Y[29]=createBaseVNode("div",{class:"title"},"文件上传说明:",-1)),(openBlock(!0),createElementBlock(Fragment,null,renderList(l[unref(n).value],(Te,ze)=>(openBlock(),createElementBlock("div",{class:"file-tips-item",key:ze},[createBaseVNode("div",{class:"text",innerHTML:Te.text},null,8,_hoisted_50)]))),128))])):createCommentVNode("",!0)])]),_:1}),createVNode(_sfc_main$4,{ref_key:"saveKnowRef",ref:D,title:unref(P),onCallBack:j,selectKnowType:unref(V),checkFileType:unref(A)},null,8,["title","selectKnowType","checkFileType"])])}}}),index=_export_sfc(_sfc_main,[["__scopeId","data-v-d60f303f"]]),index$1=Object.freeze(Object.defineProperty({__proto__:null,default:index},Symbol.toStringTag,{value:"Module"}));export{index$1 as i,monaco_editor_core_star as m,typescriptDefaults as t};
|